Direction B · Zero-Bundle Fluidity · live 21st.dev

The Zero-Bundle Field Guide

Mobile-first, fluid by default. This edition focuses on Direction B — CSS View Transitions, WAAPI, Tailwind, Popmotion — and ships a live 21st.dev registry search powered by the official API. Thirty combinations and a twenty-row synergy matrix remain on tap when you need to branch out.

30
stack combinations
20
synergy-matrix rows
Live
21st.dev search
B
default direction
Five approaches · Five worlds

The Stack
Showcase

Five skill-stack combinations, each rendered as its own aesthetic universe. Scroll to enter each world. Every chapter demonstrates a distinct approach to motion, interaction, and design intelligence.

CHAPTER 01Dark · Volumetric · Cinematic

Where Numbers Become Light

GSAP feeds raw numbers to Three.js. The render loop never touches the DOM. This is the industry standard for immersive 3D — cinematic, GPU-bound, limitless.

GSAPThree.jsScrollTrigger 10/10
$ npx skills add greensock/gsap-skills --skill gsap-core
CHAPTER 02Warm · Airy · Native

The Browser, Unburdened

CSS View Transitions snapshot the old DOM and morph it into the new — zero JavaScript, hardware-composited. WAAPI adds native timeline control. The lightest stack that still feels alive.

View TransitionsWAAPITailwind 4 9/10
$ npx skills add vercel-labs/agent-skills --skill web-design-guidelines
CHAPTER 03Vibrant · Springy · Tactile

Touch at 120 Hertz

Rive packs an entire state machine into a binary file smaller than a Lottie JSON. The runtime interpolates at 120Hz. Your code just flips a trigger. Near-zero CPU, game-like tactility.

RiveTailwindCustom JS 9/10
$ npx skills add nextlevelbuilder/ui-ux-pro-max-skill --skill ui-ux-pro-max
CHAPTER 04Generative · Neon · Futurist

Silicon Dreams

WGSL shaders compile directly on the GPU. Millions of particles at locked 120fps on mid-range mobile. No library, no abstraction — just raw hardware speaking its native tongue.

WebGPUWGSL ShadersVanilla Canvas 10/10
$ npx skills add anthropics/skills --skill frontend-design
CHAPTER 05Cinematic · Letterboxed · Theatrical

The Director's Cut

Theatre.js injects a studio timeline over your dev server. Scrub cameras, keyframe lights, direct the scene visually. Hit save — it exports clean production JSON. Cinema, in the browser.

Theatre.jsReact Three FiberLenis 9/10
FRAME 000
$ npx skills add google-labs-code/stitch-skills --skill stitch-design
09 — component lab

The Lab

Live components, rendered in real frames. Not screenshots — interactive. Each built to the brand system: mobile-first, accessible, motion that never blocks intent.

Pin List

Mobile-first animated pin-list · 56px touch targets · a11y · spring physics

v1.0.0 · @marktantongco
9:41

Settings

Pinned · 2

Account security
2FA, password, sessions
2FA
Notifications
Email, push, SMS
3

All items · 4

Payment methods
Cards, banks, wallets
Profile
Name, photo, bio
Email preferences
Marketing, product, security
Bookmarks
48 saved

Try it

  • Tap any row to pin/unpin
  • Type in search to filter live
  • Right-click a pinned item to quick-unpin
  • Keyboard: Tab to focus, Enter to toggle

Built with

motion/reactlucide-reactTailwind 4TypeScript

Brand alignment

56px touch targets (mobile-first). 150ms micro feedback on pin. Spring physics that never block user intent. WCAG AA contrast. Clear, competent, empathetic — never smug.

Rendered live. Not a screenshot.

Act 3 — the system

Three layers, one signal

Components feed the dashboard. The dashboard feeds the controls. The controls persist to the database. Every arrow is a real data flow.

consumesconfigurespersistsComponentsPin List · Palette · ToastDashboardKPIs · Charts · TableControlsSettings · Config · Persist
10 — data viz lab

The Dashboard

A live analytics surface that consumes the Component Lab — Toast fires on data updates, Command Palette switches metrics (⌘K), Pin List favorites KPIs. This is the system, not the list.

Updated 12s ago
Loading KPIs from backend…

Trend

30D

Loading chart…

Favorite metrics

Click to pin/unpin. Pinned metrics sort to top.

Orders by day

Recent invoices

InvoiceCustomerAmountStatus
INV-001Acme Corp$4,200Paid
INV-002Globex Inc$1,800Pending
INV-003Initech$12,400Paid
INV-004Umbrella Ltd$3,200Overdue
INV-005Hooli$8,900Paid
INV-006Soylent Co$2,100Pending

This is the system

This dashboard consumes three components from the Lab: Toast (fires on data updates every 12s), Command Palette (⌘K to switch metrics + ranges), Pin List (favorite KPIs sort to top). The portfolio is no longer a list of components — it's a system where each component earns its keep by serving a real surface.

11 — settings lab

The Controls

Configure the Dashboard above. Toggle KPIs, set defaults, control refresh. Changes persist to localStorage — refresh the page, your settings survive. This is the third factory: it consumes the Dashboard.

Dashboard title

Auto-saves 600ms after you stop typing.

Visible KPIs

Toggle which metrics appear on the Dashboard. At least one must stay on.

Revenue
Active users
Orders
Conversion

Default time range

Which range the Dashboard loads with on first visit.

Real-time refresh interval

12s

How often the Dashboard fires "data updated" toasts. 0 = disabled.

Off15s30s

Dashboard surfaces

Show or hide sections of the Dashboard.

Data table
Recent invoices with status badges
Bar chart
Orders by day of week

Three layers, one system

This is the third factory. It consumes the Dashboard (writes config to a shared Zustand store) and the Component Lab (Toast fires on every save). The portfolio is now a 3-layer system: Components → Dashboard → Controls. Each layer proves the previous one was built right — because it can be composed, configured, and extended.

Act 4 — the research

The Field Guide

30 skill-stack combinations, 20 synergy-matrix rows, 23 verified skills, 12 install commands. One tabbed interface. Search it, filter it, copy it.

#NameStackSynergy
1The Legendary PairGSAP + Three.js10/10
2Declarative 3D UIThree.js + Framer Motion (via R3F)8/10
3120Hz Micro-TactionsRive + Tailwind + Custom JS9/10
4Cinematic ScrollytellingTheatre.js + React Three Fiber9/10
5Buttery ScrollGSAP ScrollTrigger + Lenis9/10
6Kinetic Type over UIGSAP SplitText + Framer Motion (isolated)7/10
7Compressed 3DThree.js + glTF + DRACO8/10
8State-Machine OnboardingRive + React State Machine8/10
9Shape MorphingGSAP + MorphSVG8/10
10Minimal 3D FootprintOGL + GSAP7/10
11Native SPA TransitionsCSS View Transitions + Tailwind9/10
12Native C++ TimelineWAAPI + CSS Custom Properties8/10
13Framework-Agnostic PhysicsPopmotion + Vanilla JS7/10
14Tactile Drag PhysicsReact Spring + HTML Canvas8/10
15Staggered Micro-InteractionsAnime.js v4 + CSS Variables7/10
16App Layout RoutingTailwind + Framer Motion (UI only)8/10
17Native Scroll AnimationsCSS @scroll-timeline + position: sticky8/10
18Card-to-Modal MorphView Transitions + Shared Element9/10
19Reveal-on-Scroll, Zero DepsWAAPI + IntersectionObserver8/10
20Utility-First VelocityHype React + Tailwind6/10
21Raw GPU ComputeWebGPU Shaders (WGSL) + Vanilla Canvas10/10
22Rapid 3D InteractiveSpline + React (Spline Runtime)8/10
23Spatial VR/AR PipelineBlender + glTF + WebXR8/10
242D Physics PlaygroundPixiJS + Matter.js8/10
25Vector Explainer, Low MemoryLottie-Light + Skia/Canvas7/10
26iOS Native SpatialSwiftUI Motion + Metal9/10
27Cinema-Grade SpatialCinema4D / Blender + glTF + WebXR8/10
28Cinematic Post-FXThree.js + Postprocessing (bloom/DOF)8/10
29Declarative 3D UI SuiteReact Three Fiber + Drei + Framer Motion 3D9/10
30The Full ToolkitGSAP + Three.js (imperative) + Lenis10/10

Act 5 — the call

The system is live.
Use it. Fork it. Ship it.

A 5-layer SaaS: components → dashboard → controls → backend → auth. Built on Next.js 16, Prisma, Neon Postgres, NextAuth.js. Every layer consumes the previous. Every interaction is real.

Quick start
Built in Manila 🇵🇭 · Deployed globally · Next.js 16 · Prisma · Neon · Vercel · NextAuth