All motion recipes

Interface motion / CSS

Shared-element tabs

An underline travels between tabs without rebuilding the whole tab row.

Shared-element tabsPrompt recipe · preview pending

Prompt recipe; no reproduced preview yet. You can use the prompt now; this recipe has not yet been reproduced for the gallery.

Make it fit your project.

Your brief stays in this browser. Preparing a prompt does not send it to a server.

Implement the ARIA tabs keyboard pattern. Measure the selected tab and animate one absolutely positioned underline to its left offset and width over 180ms. Update measurements after resize or font loading, and keep panel content stable during the transition.

Build and check.

  1. Confirm the supplied content, target environment, and required assets before implementing.
  2. Implement the ARIA tabs keyboard pattern. Measure the selected tab and animate one absolutely positioned underline to its left offset and width over 180ms. Update measurements after resize or font loading, and keep panel content stable during the transition.
  3. Implement idle, active, keyboard, touch, reduced-motion, and failure states as relevant.
  4. Inspect the opening, midpoint, and final state at desktop and mobile sizes; report any dependency or output limitation.

Know the limits.

  • Selection must still work when animation is disabled and when labels wrap.
  • The prompt guides a coding agent; output quality depends on its implementation and review.

Want us to build it?

Send an optional project brief. We’ll receive your contact details, project description, and this recipe’s ID.

By sending this brief, you agree to our privacy policy. Prefer a conversation? Book a strategy call.

Catalog 2026-10-22.a82e12098f76 · Source revision sha256:dfbe6519cbc4fc84acc4cbf926d8a01c7f2e248dd46cedd67a9112b0e928c2ba