Docs
How the library works, page by page.
11 pages in 5 groups. Read them in order for a full picture, or open the one that answers your question. Every page is also served as Markdown for agents, and every number in them is measured from a real build.
11 pages · 3 guides · every page also served as .md
Install it, and see what it adds.
Install the library, see what the integration writes into your project, and read the lifecycle every scripted component sits on.
- 01
Installation
One command, or a manual install when you want to own every line.
- 02
The integration
What `moonarc()` does to your project, and how to turn each part off.
- 03
Runtime
The lifecycle substrate every scripted component sits on, and the API you can use for your own scripts.
Tokens, presets and the theme contract.
The tokens a component resolves its curve, duration, travel and stagger from, and the theme contract the Pro sections read.
- 04
Motion tokens and presets
Five sampled springs, one attribute to switch the whole page, and the durations, travel and stagger every component resolves from, as CSS custom properties and an opt-in Tailwind v4 layer.
- 05
Theming
The Pro sections read shadcn's variable names with the base tokens as fallback.
Cost, accessibility and browser support.
The measured cost, the reduced-motion policy and the browser support behind every component, with the commands to run the same checks on your own build.
- 06
Performance
How every cost on this site is measured, and how to run the same check on your own build.
- 07
Accessibility
The reduced-motion policy every component follows, and the details screen readers care about.
- 08
Browser support
What each component needs from the browser, which engines have it, and what the others show instead, stated per component.
Navigation and forms.
Motion that survives a ClientRouter navigation, and a form that posts with JavaScript off.
- 09
View transitions
How every component survives ClientRouter navigation, and how to keep GSAP and Lenis working too.
- 10
Forms that send
One function turns a plain posting form into a fetch with a pending state, spoken status, a thanks-page record and the value back after a failure.
Coming from a React library.
What each React Bits, Aceternity, Magic UI and Framer Motion component maps to here, with the byte delta.
- 11
Migrating from React Bits and friends
Maps each React Bits, Aceternity, Magic UI, shadcn and Framer Motion component to its Moonarc equivalent and the byte delta.
3 guides, each ending at a component.
Longer answers to problems that have no good answer elsewhere.
- 2026-09-12
An AOS alternative for Astro
AOS keeps animated elements invisible until its script runs, shows elements without animating them after a ClientRouter navigation, and has had no release since October 2018.
- 2026-09-12
GSAP ScrollTrigger with Astro View Transitions
Why ScrollTrigger stops working after a ClientRouter navigation, and the adapter that sets it up on every page and cleans up before the next one.
- 2026-09-12
Lenis smooth scroll with Astro's ClientRouter
A navigation made while Lenis is still easing scrolls the next page to the old page's target.
The same docs, as plain text.
Every page has a Markdown twin at the same path, and the whole site is indexed in one file an agent can read in a single request.
llms.txt
The catalogue, the docs and the guides as one index, with each component's cost and support.
A page as Markdown
Swap the trailing slash for
.mdon any docs, guide or component page.setup.md
The whole setup page, per package manager and project type, in one file.