Kodza

Sticky Cards

Cards that stack as you scroll, each covered card stepping back and darkening. Plain position: sticky and a few lines of JS. No GSAP.

Cards No dependencies scrollcardstickystack Added Oct 2025
/anim/sticky-cards/ Fullscreen

With your AI

Just ask.

Say it to your AI. It gets the exact code below, not its best guess, and knows where it goes.

Stack my testimonials as Kodza Sticky Cards.

Not plugged in yet?
claude mcp add -t http kodza https://kodza.dev/api/mcp
Also in Codex, Cursor and VS Code.
kodza-sticky-cards.html
<div class="kodza-stack">
  <article class="kodza-stack__card">
    <div class="kodza-stack__media"><img src="https://kodza.dev/media/kz-steps-2400.webp" alt="A concrete staircase that climbs nine steps and stops in mid-air" loading="lazy" /></div>
    <div class="kodza-stack__body">
      <p class="kodza-stack__index">01</p>
      <h3 class="kodza-stack__title">Copy</h3>
      <p class="kodza-stack__text">Find the effect, open the code, take what you need. No account, no paywall.</p>
    </div>
  </article>
  <article class="kodza-stack__card">
    <div class="kodza-stack__media"><img src="https://kodza.dev/media/kz-block-2400.webp" alt="A tall concrete slab standing alone, its long shadow stretching toward the viewer" loading="lazy" /></div>
    <div class="kodza-stack__body">
      <p class="kodza-stack__index">02</p>
      <h3 class="kodza-stack__title">Paste</h3>
      <p class="kodza-stack__text">One HTML block, one CSS file, a few lines of JS. It drops into any page or theme.</p>
    </div>
  </article>
  <article class="kodza-stack__card">
    <div class="kodza-stack__media"><img src="https://kodza.dev/media/kz-columns-2400.webp" alt="A row of square concrete pillars under a flat roof, casting striped shadows" loading="lazy" /></div>
    <div class="kodza-stack__body">
      <p class="kodza-stack__index">03</p>
      <h3 class="kodza-stack__title">Tweak</h3>
      <p class="kodza-stack__text">Colors, sizes and timings are CSS variables. Make it yours in thirty seconds.</p>
    </div>
  </article>
  <article class="kodza-stack__card">
    <div class="kodza-stack__media"><img src="https://kodza.dev/media/kz-float-2400.webp" alt="A concrete block hovering above the ground, over its own shadow" loading="lazy" /></div>
    <div class="kodza-stack__body">
      <p class="kodza-stack__index">04</p>
      <h3 class="kodza-stack__title">Ship</h3>
      <p class="kodza-stack__text">Push it live, close the laptop, and go home early.</p>
    </div>
  </article>
</div>

Checked

Checked before you paste.

Robots poked at it before you did. Every component goes through the same checks, and again each time it changes.

What ranLast run
Accessibilityaxe-core 4.10.2: the WCAG 2.1 A and AA rules, plus best practices. 0 issues
KeyboardThe Tab key gets there, and the focus ring shows when it does. Passed
Reduced motionTurn on reduced motion and what moved just appears. Nothing loops. Passed
Light and darkThe same checks on both themes, contrast included. Passed
WordPressPasted into Twenty Twenty-Five, Twenty Twenty-One, Astra, Blocksy, GeneratePress, Hello Elementor, Kadence and OceanWP. Nothing to flag. 8 / 8 themes
Robots checked this. A human with VoiceOver hasn't yet.

More like this

More in Cards