// STYLE GUIDE

Sections & elements, broken down

A reference for the building blocks that make up this site: the colour and type foundations, the reusable UI elements, and every named section pattern with where it’s used.

// FOUNDATIONS: COLOUR

Colour palette

Orange is a structural accent only. Surfaces stay near-black; text steps down through four greys.

Accent
Web Blend Orange #FA5900 Primary accent: CTAs, links, highlights
Orange Hover #ff7733 Button hover state
Surfaces
Page var(--bg) Base background / heroes
Section var(--bg-2) Alternating sections
Card var(--bg-3) Card / hover surface
Borders
Hairline var(--border) Subtle dividers / guide lines
Border var(--border-2) Default borders
Muted var(--border-3) Circle nodes / num boxes
Text
Heading var(--text) Headings / strong
Body var(--text-2) Body copy
Muted var(--text-3) Secondary text
Faint var(--text-4) Meta / placeholders
Status
Green #4ade80 System online / success / "Added"

// FOUNDATIONS: TYPE

Typography

Bai Jamjuree

Headings

Animate Astro fast

Inter

Body

The quick brown fox jumps over the lazy dog.

JetBrains Mono

Eyebrows / code / meta

npm install @astroanimate/core

H1Heading one
H2Heading two
H3Heading three
BodyBody copy at 17px / 1.7 line-height.
Eyebrow// SECTION LABEL

// ELEMENTS

UI elements

Buttons

Primary (orange fill), secondary (outline), and the nav install pill.

INSTALL VIA NPM VIEW DOCS INSTALL

Eyebrow label

Monospace, uppercase, orange, prefixed with //. Opens nearly every section.

// HOW IT WORKS

Badges & tags

The NEW badge (sidebar/components), pill tag chips (blog/showcase), and numbered index.

NEW PERFORMANCE SaaS 01

Status pills

Colour-coded states used on the changelog and roadmap.

Added Changed Fixed Shipped In Progress

Status pulse

The live pulsing indicator from @astroanimate/core/Loader.

// SYSTEM ONLINE

Accordion

Native disclosure with an animated +/− marker. Used on the FAQ.

Does AstroAnimate ship JavaScript?

Not by default. CSS-first components add zero runtime JS. Only opt-in components load JavaScript.

Card

The base surface: hairline border, near-black fill, orange border + lift on hover.

02

CSS-first by default

Core animations render from CSS with no client runtime unless you opt in.

// LIBRARY COMPONENTS

Real @astroanimate/core components in use

The site uses the actual animation library in two places, shown live below.

TypewriterText + copy card
NPM
$
Loader (pulse)

// SECTION PATTERNS

Named sections

Every recurring block on the site, named, described, and shown with a miniature live example. Click “View live” to see it in context.

01

Sticky Nav Bar

Top navigation with logo, version dropdown, links, social icons, INSTALL button, and a mobile hamburger.

View live →
EXAMPLE
VER 0.1.2 ▾
INSTALL
02

Split Hero

Two-column homepage hero: status pill, headline, feature list, CTAs on the left; badges + code card on the right; glow video behind.

View live →
EXAMPLE
// SYSTEM ONLINE ●

Astro Animation Library

Built for Astro

INSTALLDOCS
NPM
$ npm install @astroanimate/core
03

Page Hero

Eyebrow + headline + lead paragraph over a star-field. The standard top of every interior page.

View live →
EXAMPLE
// ABOUT

An animation library for Astro

CSS-first motion, no runtime JS unless you opt in.

04

Status Pill

"// SYSTEM ONLINE" label with a pulsing green Loader. Signals a live state.

View live →
EXAMPLE
// SYSTEM ONLINE
05

Code Block Card

Terminal-style card with an orange accent bar, a typewriter command, and a copy button.

View live →
EXAMPLE
NPM
$
06

How It Works

Bordered container with corner accents, an embedded demo video, and a 3-up numbered steps grid.

View live →
EXAMPLE
▶ demo video
01Install
02Import
03Apply
07

Comparison Table

Feature-by-feature table contrasting AstroAnimate with alternatives, using check / cross / warn icons.

View live →
EXAMPLE
FeatureAstroAnimateOthers
Zero runtime JS
Islands-aware~
08

Performance / Architecture Grids

Icon + stat + caption cards laid out on a hairline grid.

View live →
EXAMPLE
0KBruntime JS
~5KBcore size
100Lighthouse
09

Use-case & Doc-structure Tabs

Tabbed panels that swap content in place to show different scenarios.

View live →
EXAMPLE
MarketingDocsApp
Tab panel content swaps in place.
10

Open-source Panel

Two-column block: prose on the left, a stacked key/value badge column (LICENSE, SIZE, RUNTIME) on the right.

View live →
EXAMPLE

Free, MIT-licensed, and developed in the open on GitHub.

LICENSEMIT
RUNTIME0KB
11

Principle / Feature Grid

Numbered cards (01–06) on a hairline grid describing values or features.

View live →
EXAMPLE
01CSS-first

No runtime unless opt-in.

02Accessible

Respects reduced motion.

12

Docs Layout

Three-column app shell: collapsible grouped sidebar, centered reading column, right "in this page" TOC.

View live →
EXAMPLE
IN THIS PAGE
13

Right TOC (scroll-spy)

"IN THIS PAGE" rail that highlights the active heading as you scroll.

View live →
EXAMPLE
14

Component Card Grid

Catalog of components grouped by category, each card with name, NEW badge, description, and subpath import.

View live →
EXAMPLE
TypewriterText
@astroanimate/core/TypewriterText
CountUp NEW
@astroanimate/core/CountUp
15

Blog Listing

A large featured-post card above a 3-up grid of post cards with tag, date, and read time.

View live →
EXAMPLE
PERFORMANCEAnimating Astro Islands…Read more →
Why CSS-first
View Transitions
16

Article Layout

Constrained prose column with headings, code blocks, a pull-quote, and a related-posts footer.

View live →
EXAMPLE
Animating Astro Islands Jun 18 · 7 min · PERFORMANCE

Where motion belongs in an Islands architecture…

<FadeInText delay={120} />
17

FAQ Accordion

Questions grouped by category, each a native disclosure with an animated +/− marker.

View live →
EXAMPLE
Does AstroAnimate ship JavaScript?

Not by default. CSS-first components add zero runtime JS.

18

Showcase Grid

Cards with a gradient placeholder thumbnail, tags, name, description, and a visit link.

View live →
EXAMPLE
A/
Nova Portfolio
A/
Driftwave SaaS
19

Changelog Timeline

Vertical timeline with version dots and Added / Changed / Fixed change tags per release.

View live →
EXAMPLE
v0.1.2AddedCountUp component
v0.1.1ChangedDefault easing curves
20

Roadmap Columns

Status-grouped columns (Shipped, In Progress, Planned, Exploring) of feature cards with status pills.

View live →
EXAMPLE
Shipped
Core engine
In Progress
Scroll triggers
21

Support Channels

Grid of channel cards plus a numbered "good bug report" checklist and quick links.

View live →
EXAMPLE
DOCSDocumentationRead →
BUGGitHub IssuesOpen →
22

Contact Form

Demo form (no backend) beside a column of contact-method cards.

View live →
EXAMPLE
EMAIL
MESSAGE
SEND MESSAGE
GitHub Issuesastroanimate/astroanimate
23

Final CTA Block

Centered eyebrow + headline + button pair over a star-field, closing a page.

View live →
EXAMPLE
// GET STARTED Install and start animating
INSTALLDOCS
24

Footer

Five-column footer with newsletter signup and a bottom bar showing a live UTC clock.

View live →
EXAMPLE

// COMPONENTS & PATTERNS

Components & patterns

Additional building blocks, several are interactive, so try them right here.

01

Pricing

Three-tier pricing with a highlighted recommended plan, feature lists, and CTAs.

EXAMPLE
Core
$0/forever

Open source, MIT licensed.

  • All CSS-first components
  • TypeScript types
  • Community support
Get started
POPULAR Pro
$12/mo

For production sites & teams.

  • Everything in Core
  • Premium UI components
  • Priority support
  • Figma kit
Choose Pro
Team
$49/mo

For agencies & studios.

  • Everything in Pro
  • Up to 10 seats
  • Shared license
Contact sales
02

Popup promo

A modal promotion built on the native <dialog> element. It opens over a dimmed backdrop, closes on the ✕ or a backdrop click.

INTERACTIVE
// LIMITED TIME

Get 30% off Pro

Upgrade this week and lock in launch pricing, forever.

03

Gallery

A responsive thumbnail grid with hover captions. Click any tile to open it in a lightbox.

INTERACTIVE
04

Tabs

Tabbed panels that swap content in place. Click a tab to switch.

INTERACTIVE
AstroAnimate adds CSS-first motion to Astro components, no runtime JS unless you opt in.
Run npm install @astroanimate/core, then import a component by its subpath.
Every component is fully typed. Props control timing, easing, delay, and direction.
05

Folders

A collapsible file tree built from nested <details>: folders expand and collapse, no JavaScript.

INTERACTIVE
src
components
NavBar.astro
Footer.astro
DocsLayout.astro
pages
index.astro
styleguide.astro
global.css
06

Toggle content

A switch that reveals or hides a block of content. CSS-only, using :has().

INTERACTIVE
Advanced options are only shown when the toggle is on, handy for progressive disclosure in settings, filters, or long forms.
07

FAQ: expanded by default

The accordion pattern with every item open on load (set the open attribute). Collapse any you don’t need.

View live →
INTERACTIVE
Does AstroAnimate ship JavaScript?

Not by default. CSS-first components add zero runtime JS. Only opt-in components load JavaScript.

Is it free to use?

Yes. MIT licensed and free for commercial and open-source projects.

Does it respect reduced motion?

Yes, automatically. Animations are minimised when prefers-reduced-motion is set.

08

Contact form

A labelled form with focus states and a demo submit (no backend attached).

View live →
INTERACTIVE
09

Breadcrumbs

A path trail showing the visitor’s location, with the current page un-linked. Rendered by components/Breadcrumbs.astro, which takes the same items array the page hands to breadcrumb() for its BreadcrumbList schema.

EXAMPLE

// ANIMATION SHOWCASE

Animation showcase

Seven motion patterns the site reaches for, CSS-first where possible, with JavaScript added only where it earns its place. Each respects reduced-motion and degrades cleanly without script.

01

Bento grid

An asymmetric mosaic of feature tiles with varying column and row spans, each carrying a subtle gradient and a lift on hover. Pure CSS, no JavaScript.

CSS ONLY
CORE CSS-first engine
ISLANDS Hydration-aware
A11Y Reduced-motion safe
TRANSITIONS View Transitions ready
SIZE ~5KB, tree-shakable
02

Infinite marquee

A seamlessly looping track of component names built from a duplicated row and a single CSS keyframe. Hover anywhere to pause. CSS-only, and frozen for reduced-motion.

CSS ONLY
03

Statement / word reveal

A display sentence where each word fades and rises in sequence using staggered CSS animation delays. Replay restarts the sequence; reduced-motion shows the words instantly.

CSS + JS

MotionthatfitsthewayAstroalreadyworks.

04

Animated stat counters

Three figures that count up the first time the band scrolls into view, driven by IntersectionObserver. The final value lives in the markup, so it reads correctly with JavaScript disabled.

CSS + JS
100 Lighthouse performance
12K+ Projects animated
~5KB Core, gzipped
05

Sticky scroll-story

A two-column block: the left visual stays pinned while the right column scrolls through steps. A scroll-spy (IntersectionObserver) highlights the active step and crossfades the pinned card to match.

CSS + JS
01 Install the core
02 Import a component
03 Apply and ship
01

Install the core

Add @astroanimate/core. Zero runtime JS ships until you opt in to an engine.

02

Import a component

Pull in a component by its subpath. Everything is fully typed out of the box.

03

Apply and ship

Drop it into your markup. Motion renders from CSS in fully static builds.

06

Before / after slider

Two stacked panels with a draggable divider. A range input drives a CSS variable that clips the top panel, so the control stays keyboard-accessible while the handle tracks the split.

CSS + JS
AFTER
BEFORE
07

Hover-reveal work list

A list of large project rows. Hovering a row scales and colours it, and floats a gradient thumbnail that follows the cursor. Without JavaScript the rows still highlight. The thumbnail simply stays hidden.

CSS + JS
  • Nova Portfolio Hero reveal
  • Driftwave SaaS Scroll fade
  • Ember Docs Typewriter
  • Verdant Store Count up

// DEV-TOOL & DOCS

Dev-tool & docs

The interactive surface a developer actually operates: command palette, callouts, API reference, integrations, and the small feedback affordances that make docs feel alive. Every example below is live; try them right here.

01

Command palette (⌘K)

A native <dialog> overlay opened by button or ⌘K / Ctrl+K. Typing filters the grouped result list live; Escape or a backdrop click closes it.

INTERACTIVE
Pages
Components
Actions
navigate select esc close
02

Callout / admonition boxes

Four tinted variants (Note, Tip, Warning, Danger), each with a left accent rail, an icon, a bold label, and a single body line. Pure CSS.

EXAMPLE
Note

Components are imported by subpath, one import per component.

Tip

CSS-first components ship zero runtime JS, so they render on static markup.

Warning

Named (barrel) imports from the package root are not supported.

Danger

Removing a client directive from an opt-in island disables its motion entirely.

03

API reference block

A method pill plus monospace path, a description, a params table, and a request/response area with cURL / JSON tabs that switch on click.

INTERACTIVE
GET /api/v1/components/typewriter-text

Returns the prop schema and defaults for the TypewriterText component.

NameTypeRequiredDescription
text string yes The string to animate in.
speed number no Characters per second. Defaults to 30.
delay number no Milliseconds before the animation starts.
cursor boolean no Show the blinking caret. Defaults to true.
curl https://api.astroanimate.dev/v1/components/typewriter-text \
  -H "Authorization: Bearer $AA_TOKEN"
{
  "name": "TypewriterText",
  "props": {
    "text":   { "type": "string",  "required": true },
    "speed":  { "type": "number",  "default": 30 },
    "cursor": { "type": "boolean", "default": true }
  }
}
04

Integration grid

Filter chips above a grid of integration tiles. Selecting a chip shows or hides tiles live by data-category.

INTERACTIVE
React Frameworks
Vue Frameworks
Svelte Frameworks
Next.js Frameworks
Vite Tooling
Node Tooling
Tailwind Tooling
GitHub Platform
05

Announcement bar

A faux top banner with a short message, an inline link, and a ✕ dismiss. Dismissing hides the bar and reveals a small reset link for the demo.

INTERACTIVE
v0.1.2 is out. CountUp and scroll triggers have landed. Read the changelog →
06

Theme switcher

A segmented control: System / Light / Dark. Toggling it restyles only the sample card below, not the page.

INTERACTIVE
// PREVIEW

Animate Astro fast

This card previews the selected theme. The rest of the site stays untouched.

Get started
07

“Was this helpful?”

A small docs-footer card. Clicking 👍 or 👎 swaps the card to a thank-you state.

INTERACTIVE
Was this page helpful?

// SOCIAL PROOF & CONVERSION

Social proof & conversion

The blocks that build trust and move visitors to act: logo walls, testimonials, case studies, capture forms, and the reassurance bars that sit beside a CTA.

01

Logo cloud / “trusted by” strip

A muted row of company wordmarks under a small label. Marquees slowly and pauses on hover.

EXAMPLE

Trusted by teams at

NebulaDriftwaveCoreframeLumenNorthpeakVantaNebulaDriftwaveCoreframeLumenNorthpeakVanta
02

Testimonial wall

A multi-column masonry of quote cards: quote, initials avatar, name and role. Static.

EXAMPLE
“We dropped Framer Motion and shipped the same hero reveal with zero runtime JS. Lighthouse went from 82 to 100 overnight.”
AO Ada Okafor Lead Engineer @ Nebula
“The Islands-aware approach is exactly what Astro was missing. Motion that never forces a hydration I did not ask for.”
ML Marcus Lee Founder @ Driftwave
“CSS-first by default just makes sense. Our bundle barely moved.”
PN Priya Nair Frontend @ Coreframe
“prefers-reduced-motion handled for us out of the box. One less accessibility checkbox I have to chase every release.”
SH Sven Holt Accessibility Eng @ Lumen
“Tree-shakable, typed, and the docs are honest about what ships JS and what does not. Rare combination.”
YT Yuki Tanaka Staff Eng @ Northpeak
“Composes cleanly with View Transitions. Page changes feel native now.”
ER Elena Rossi Tech Lead @ Vanta
03

Quote slider

One large rotating testimonial. Prev / next buttons and dots advance it; it also auto-advances every 6s.

INTERACTIVE

“AstroAnimate let us delete an entire animation runtime and still ship motion our designers were proud of. It is the first library that respects how Astro actually works.”

Jordan Ellis VP Engineering, Northpeak

“We rebuilt our marketing site on Astro and AstroAnimate in a weekend. The static-first story finally has motion that does not undermine it.”

Sofia Mendez Head of Web, Driftwave

“The accessibility defaults alone justified the switch. Reduced-motion is handled, focus order is intact, and nothing hydrates by surprise.”

Daniel Kim Principal Engineer, Lumen
04

Newsletter / waitlist capture

An inline email capture that swaps to a success state on submit (demo only). The same block also opens in a native <dialog>.

INTERACTIVE

Get release notes in your inbox

New components, breaking changes, and the occasional deep dive.

Join 4,200+ devs. No spam, unsubscribe anytime.

// JOIN THE WAITLIST

Get release notes in your inbox

New components, breaking changes, and the occasional deep dive.

Join 4,200+ devs. No spam, unsubscribe anytime.

05

Video demo modal

A 16:9 thumbnail with a circular play button. Clicking opens a placeholder video frame in a native <dialog>.

INTERACTIVE
▶ product demo
06

Customer case-study cards

A three-up grid: wordmark, a headline metric, a one-line summary, an industry chip, and a read-story link. Static (CSS hover).

EXAMPLE
+38%conversions

Rebuilt the landing hero with CSS-first reveals and cut time-to-interactive in half.

SaaS Read story →
−92%animation JS

Replaced a 60KB motion runtime with zero-JS components across the marketing site.

Agency Read story →
100Lighthouse

Shipped scroll and transition motion while holding a perfect performance score.

Docs Read story →
07

Trust / guarantee bar

A row of four icon + label reassurances, the kind that sits just beside a final CTA. Static.

EXAMPLE
MIT licensed Free, forever
0KB runtime JS only when opt-in
Accessible Respects reduced motion
Open source Built in public

// BLOG & CONTENT

Blog & content

The editorial building blocks (bylines, related reading, progress, filtering, and pull quotes) that make up an AstroAnimate article and its surrounding blog index.

01

Author byline + bio card

A compact byline strip at the top of a post and a fuller author bio card to close it out.

EXAMPLE
AstroAnimate Team Core maintainers · Animation & DX

We build the CSS-first animation toolkit for Astro and write about keeping motion cheap, accessible, and out of the hydration budget.

Follow GitHub X RSS
03

Reading-progress bar

A progress bar pinned to the top of a scroll container that fills as you read inside the box.

INTERACTIVE

Scroll this box to watch the bar fill. The progress is measured against this container’s scroll position, not the window’s.

Astro’s whole pitch is shipping less JavaScript. So the moment you reach for animation, there’s a tension: most motion libraries assume a hydrated, client-rendered tree.

The fix is to express the common cases (entry, reveal, and transition animations) in CSS and the Web Animations API, which run on statically rendered markup. No directive, no island, no runtime.

A typewriter heading or a fade-up on a hero doesn’t need a framework. With AstroAnimate it’s a single subpath import and a component, and it renders in a fully static build.

Some effects really do need a runtime: spring physics, gesture tracking, timeline orchestration. Those belong on an island, and only there.

The mental model: CSS-first for presentation motion, islands for interaction. Most sites are 90% the former.

Whatever approach you choose, honour prefers-reduced-motion. AstroAnimate does this automatically. When a visitor opts out, motion is minimised.

Motion and Astro’s performance goals aren’t at odds, as long as you let CSS do the ordinary work and save hydration for the parts that are genuinely interactive.

04

Tag / category filter

A chip row that live-filters the post list below by category. Click a chip to filter.

INTERACTIVE
  • Animating Astro Islands without hurting hydration PERFORMANCE 7 min
  • A field guide to scroll-triggered reveals GUIDE 9 min
  • AstroAnimate 0.1.2: CountUp & easing presets RELEASE 3 min
  • prefers-reduced-motion, done properly ACCESSIBILITY 5 min
  • Measuring animation cost in a static build PERFORMANCE 6 min
05

Trending / most-popular list

A ranked list with oversized numerals and an optional view-count meta line.

06

Series / chapter nav

A “Part 2 of 5” bar with titled previous/next arrows and a thin progress indicator.

07

Pull quote

An oversized, offset quote block with a large quotation mark, accent rule, and attribution.

EXAMPLE
If an animation can be expressed in CSS, expressing it in JavaScript is a tax you pay on every page load.
AstroAnimate Team · Animating Astro Islands

// NAVIGATION & WAYFINDING

Navigation & wayfinding

How a visitor moves through a site and knows where they are: menus, paging, multi-step progress, and the small controls that switch views in place.

01

Mega menu

A wide multi-column dropdown for sites with deep navigation. Click the trigger to open it.

02

Pagination

Numbered page controls with previous / next, an active page, and a truncation gap.

INTERACTIVE
03

Stepper / wizard progress

A horizontal step indicator for multi-step flows: completed, current, and upcoming states.

EXAMPLE
  1. Account
  2. 2 Project
  3. 3 Plan
  4. 4 Review
04

Segmented control

A compact pill toggle for switching between a few mutually exclusive views. Click a segment.

INTERACTIVE
Rendered preview of the component.
05

Back-to-top button

A floating control that appears once the user scrolls down, then jumps them back up. Scroll the box.

INTERACTIVE

Scroll down inside this box…

The button fades in after you pass the first screen of content.

It anchors to the bottom-right of the scroll container.

Keep scrolling, almost there.

This is the end. Click the ↑ button to return to the top.

06

Sticky action bar

A persistent bottom bar (common on mobile) pairing a summary with the primary call to action. Click activate, then scroll the page area. It stays pinned to the bottom.

INTERACTIVE

This panel mimics a page. The action bar below sits fixed to the bottom of this frame…

…so it stays in view while the content behind it scrolls. Common for pricing pages, carts, and mobile CTAs.

Scroll down. The bar doesn’t move with the text.

It only takes over the bottom edge, never the whole screen.

Tap the ✕ on the bar to dismiss it.

Pro plan $12/mo · cancel anytime
07

Actions menu

A kebab / overflow menu that reveals contextual actions. Click the ⋯ to toggle it.

INTERACTIVE

// FORMS & INPUTS

Forms & inputs

The full input toolkit: fields and their states, choice controls, ranged inputs, autocomplete, multi-step flows, file upload, and consent.

01

Input field library

Text, select, and textarea with label, helper text, and the default / focus / error / disabled states.

EXAMPLE
As it appears on your account.
Enter a valid email address.
Read-only.
02

Choice controls

Checkboxes, radio group, and an on/off switch, the three ways to capture a boolean or a pick.

INTERACTIVE
Checkboxes
Radio group
Switch
03

Range & number

A slider with a live value read-out and a stepper number input with − / + controls.

INTERACTIVE
04

Search with autocomplete

A search input that filters a suggestion list as you type. Try typing “text” or “scroll”.

INTERACTIVE
  • TypewriterText
  • FadeInText
  • CountUp
  • ScrollReveal
  • ParallaxImage
  • GlassCard
05

Multi-step form

A wizard that advances through panels with Back / Next, keeping the rest hidden. Click Next.

INTERACTIVE
Step 1 of 3
06

File upload / dropzone

A drag-and-drop target with a browse fallback and a list of selected files.

EXAMPLE

Drag files here or browse

PNG, JPG, or SVG up to 5MB

IMGhero-mockup.png1.2 MB
SVGlogo.svg8 KB
07

Cookie consent

A consent banner with accept / reject and a link to preferences. Click a button to dismiss it.

INTERACTIVE

// FEEDBACK & STATUS

Feedback & status

How the interface talks back: transient toasts, inline alerts, tooltips, and the placeholders shown while content is empty or loading.

01

Toast notifications

Transient messages that stack in a corner and auto-dismiss. Click to fire one.

INTERACTIVE
02

Alert banners

Inline status messages in four intents: info, success, warning, and error.

EXAMPLE

Heads up. A new version of the docs is available.

Saved. Your changes are live.

!

Careful. This action can’t be undone.

Failed. Couldn’t reach the server. Try again.

03

Tooltip

A small label that appears on hover or focus to explain a control. Hover the items.

INTERACTIVE
Hover meCSS-first, zero runtime JS What’s this?Respects prefers-reduced-motion ?Imported by subpath, fully typed
04

Empty state

The placeholder shown when there’s no data yet: an icon, a line of guidance, and an action.

EXAMPLE

No projects yet

Create your first project to start animating.

05

Skeleton loader

Shimmering placeholders that mirror the shape of content while it loads.

EXAMPLE
06

Spinners & progress

An indeterminate spinner, a determinate bar, and a circular ring for loading states.

EXAMPLE
Spinner
64%, determinate
72%
Ring
07

Confirmation dialog

A focused modal that asks the user to confirm a destructive action. Click to open it.

INTERACTIVE

Delete “Nova Portfolio”?

This permanently removes the project and all its assets. This can’t be undone.

// DATA DISPLAY

Data display

Ways to show numbers and structured records: metric cards, sortable tables, spec sheets, billing toggles, simple charts, and activity feeds.

01

KPI / metric cards

Dashboard stat tiles with a label, a big number, and a trend delta coloured by direction.

EXAMPLE
Weekly installs 48.2k ▲ +12.4%
Avg. bundle size 4.9 KB ▲ −0.3 KB
Open issues 23 ▼ +5
Lighthouse 100 ▲ 0
02

Sortable data table

A zebra-striped table with sortable headers. Click a column header to re-sort.

INTERACTIVE
Component Downloads Size (KB) Updated
TypewriterText 18,420 1.2 Jun 18
CountUp 12,880 0.9 Jun 21
ScrollReveal 9,560 1.6 Jun 12
GlassCard 6,240 2.1 May 30
03

Pricing billing toggle

A monthly / annual switch that swaps the displayed prices in place. Toggle it.

INTERACTIVE
Monthly Annual −20%
Pro$12/month
Team$49/month
04

Spec / definition list

A two-column key/value sheet for technical specs, metadata, or property tables.

EXAMPLE
Runtime JS
0 KB (CSS-first core)
Dependencies
None
License
MIT
Framework
Astro 4+
TypeScript
First-class, fully typed
05

Horizontal bar chart

A lightweight, CSS-only comparison chart: labelled rows with proportional fills.

EXAMPLE
Astro
92%
React
64%
Svelte
41%
Vue
28%
06

Activity feed / timeline

A vertical, dotted timeline of recent events with a relative timestamp and a type tag.

EXAMPLE
  1. Released v0.1.2 with CountUp Release2h ago
  2. Merged easing-presets PR #142 MergeYesterday
  3. Opened discussion on scroll triggers Discuss3 days ago

// COMMERCE & PRODUCT

Commerce & product

The retail building blocks: product cards, ratings and reviews, cart summaries, faceted filters, urgency timers, and avatar groups.

01

Product card

A shoppable card with image, badge, title, rating, price (with strike-through), and add-to-cart.

INTERACTIVE
SALE A/
Motion Pro Kit ★★★★
$39 $59
NEW A/
Figma UI Pack ★★★★
$24
A/
Template Bundle ★★★★
$79 $120
02

Star rating & review

An aggregate rating summary with a distribution breakdown beside an individual review card.

EXAMPLE
4.6 ★★★★ 328 reviews
5
4
3
2
1
JM
Jordan M.★★★★★
✓ Verified

“Dropped the kit into an Astro site and shipped the same day. Zero runtime JS and the motion feels great.”

03

Cart / order summary

A checkout-side summary: line items, a promo field, the totals breakdown, and the pay button.

EXAMPLE
Order summary
Motion Pro Kit $39
Figma UI Pack $48
Subtotal$87
Tax$0
Total$87
04

Filter sidebar

A faceted filter rail: category checkboxes, a price range, and active filter chips you can clear.

EXAMPLE
Category
Max price
$0$80
Active
Templates ✕ Under $80 ✕
05

Countdown timer

An urgency timer for sales and launches, ticking down in days / hours / minutes / seconds.

INTERACTIVE
Launch sale ends in
02days
06hrs
45min
12sec
06

Avatar group & social proof

Stacked, overlapping avatars with an overflow count, the “join 2,000+ others” cue.

EXAMPLE
AT JM SD RK +2k

2,000+ developers ship motion with AstroAnimate.

// MEDIA & LAYOUT

Media & layout

Blocks built around imagery and arrangement: carousels, captioned figures, video heroes, alternating feature rows, team grids, and responsive embeds.

01

Image carousel

A single-slide carousel with prev / next arrows and dot indicators. Click to advance.

INTERACTIVE
02

Figure with caption

An image block with a number tag and a typeset caption, for docs, articles, and case studies.

EXAMPLE
A/
Fig 1 A fade-up reveal sequenced across a three-card grid, staggered by 80ms.
03

Video background hero

A full-bleed hero with a looping video (or gradient) behind a darkening scrim and the headline.

EXAMPLE
// SHOWREEL

Motion that loads instantly

04

Alternating feature row

The classic zig-zag: image and copy swapping sides down the page to keep a rhythm.

EXAMPLE
A/
// CSS-FIRST

No runtime unless you ask

Entry, reveal, and transition motion renders from CSS, shipped in a static build with zero hydration cost.

B/
// ISLANDS-AWARE

Opt in where it matters

Gesture and physics-driven effects load only on the island that needs them, never site-wide.

05

Team / people grid

A grid of people cards with avatar, name, role, and social links, for about and careers pages.

EXAMPLE
AT Ada Turner Maintainer
JM Jules Moreau DX & docs
SD Sam Diaz Motion design
RK Rae Kim Performance
06

Responsive embed

A fixed-ratio container for video, maps, or iframes that scales cleanly at any width.

EXAMPLE
16 : 9 embed placeholder