This card animates in when the page loads.
Animation & Motion
Motion tokens, micro-feedback, skeleton, View Transitions — Polished interactions.
Card entrance
Cards use @starting-style for opacity + translateY on first paint.
Cards share the same entrance animation.
Button press states
chirpui-btn — hover lift, active press. Respects prefers-reduced-motion.
Modal entrance
Modal panel scales in with @starting-style.
Dropdown entrance
Dropdown menu animates opacity + translateY when opened.
Skeleton loading
Shimmer placeholder. Respects prefers-reduced-motion.
htmx swap with View Transitions
Click to swap content. Uses hx-swap="innerHTML transition:true".
Modals use view-transition-name: none to avoid duplicate-name errors when multiple dialogs exist.
Click to load content (View Transition)
Reveal on scroll
Content animates in when scrolled into view. Uses Alpine Intersect (x-intersect.once).
Scroll down to see this card animate in.
Each block reveals when it enters the viewport.
Uses reveal_on_scroll from chirpui.
Form error shake
Fields with .chirpui-field--error get a subtle shake.