0
Motion Menu

Motion Menu / Live specimen shelf

Every pattern, running.

The working shelf behind the catalogue — 596 specimens, each the exact code a pattern page ships. Not a homepage.

596Live specimens

18Page roles

4Frameworks

⌘ K Search 596 patterns

Library / live index

Frontier first.
Everything else on demand.

182motion systems

47WebGPU / WebGL

4framework outputs

Output target

Every item below ships in the selected format. GLSL and WGSL stay native.

Refine the library Page role · technology · cost · verification
Where it goes
What it is
Built with
Cost
Verified
Original sections A–AD
collection / frontier · 6

Start here

Six light, useful moves for type, navigation, feedback and finish. Spatial scenes live deeper in the lab, after the page has earned the load.

05

Film grain

CSS/SVG
worksReact ↗

Say: "keep 05 on everything" — animated noise at ~6% opacity. The cheapest way to kill the "flat digital" look.

12

Outline → fill hover

CSS
worksReact ↗
Hover me

Say: "big nav words are 12" — hollow stroke type that floods with color on hover.

44

SVG line draw

SVGScrollTrigger
worksReact ↗

Say: "underline/diagram draws with 44" — strokes draw themselves as you scroll. Scroll up and down over this card.

75

Elastic tabs

GSAP
unauditedReact ↗

Say: "filters snap with 75" — the highlight pill overshoots and settles like it has mass.

179

Stroke-fill scrub

ScrollTrigger
worksReact ↗
FILLEDFILLED

scroll — the outline floods with color

Say: "headlines flood with 179" — hollow type filling as you scroll past. The SOTD hero staple.

collection / spatial · 46

Spatial & shader

WebGPU, WebGL, Three.js and shader work. The heavy end your ordinary component library does not ship.

27

Particle field

Three.jsshader
worksReact ↗

Say: "hero atmosphere = 27" — thousands of drifting points, additive glow, reacts to the cursor.

28

Glass / transmission

Three.jsphysical
unauditedReact ↗

Say: "hero object in 28" — real refractive glass with chromatic dispersion. The Lusion look.

29

Iridescent metal

Three.jsphysical
unauditedReact ↗

Say: "product finish like 29" — oil-slick thin-film sheen shifting as it turns.

30

Hologram rim

Three.jsGLSL
unauditedReact ↗

Say: "accent object = 30" — fresnel edge-glow with scanlines. Sci-fi, restrained.

31

Scroll-driven 3D

Three.jsScrollTrigger
unauditedReact ↗

Say: "showcase spins with 31" — the object's rotation is welded to your scrollbar. Scroll up and down over this card.

32

Morphing blob

Three.jsGLSL
unauditedReact ↗

Say: "living shape = 32" — organic vertex-displaced form, endlessly breathing.

33

Instanced swarm

Three.jsinstancing
unauditedReact ↗

Say: "background depth = 33" — hundreds of objects in one draw call, orbiting as a school.

34

Displacement hover

GLSL
worksReact ↗

hover to melt between images

Say: "gallery images swap with 34" — one image liquefies into another through a noise map. The signature Codrops hover.

35

Ripple on click

GLSL
worksReact ↗

click anywhere in the frame

Say: "hero reacts with 35" — clicks send water rings warping through the surface.

36

Glitch burst

GLSL
unauditedReact ↗

hover to force a burst

Say: "transitions spike with 36" — RGB split + slice tearing in short bursts. Aggressive; use in moments, not constantly.

37

Dither field

GLSL
unauditedReact ↗

Say: "background texture = 37" — ordered-dither shading, the retro-print look that's everywhere on 2026 Awwwards.

40

Shader fog

GLSL
unauditedReact ↗

Say: "atmosphere behind hero = 40" — slow procedural smoke. Deeper than 06, cheaper than 27.

79

Infinite tunnel

Three.js
unauditedReact ↗

Say: "intro flies through 79" — endless forward motion through recycling geometry. Openers and 404s.

82

Wireframe build

Three.jsScrollTrigger
unauditedReact ↗

scroll — it constructs itself

Say: "product constructs via 82" — the mesh draws itself into existence as you scroll.

84

Cloth wave

Three.jsGLSL
worksReact ↗

hover to stir the fabric

Say: "images drape with 84" — imagery on rippling fabric. Lookbooks and campaign heroes.

93

Pixelation transition

GLSL
worksReact ↗

Say: "images swap via 93" — mosaic up, resolve into the next image. Retro-digital section cuts.

94

CRT treatment

GLSL
unauditedReact ↗

Say: "archive footage = 94" — scanlines, barrel curve, rolling band, phosphor flicker. Full broadcast nostalgia.

96

Depth parallax photo

GLSL
worksReact ↗

move your cursor — flat image, fake 3D

Say: "product shots get 96" — depth-map parallax makes flat photography lean like a hologram.

100

Image tube

Three.js
worksReact ↗

Say: "collection flythrough = 100" — a tunnel of imagery you travel through. Peak lookbook energy.

101

3D configurator

Three.jsreal
unauditedReact ↗
$249

Say: "product page runs 101" — live material and finish switching with the price following. This one is fully working.

110

Stylized water

Three.jsGLSL
unauditedReact ↗

Say: "product floats on 110" — a living water surface with sun glint and moving light. Campaign-hero material.

114

LYGIA shaders

lygia.xyz
unauditedReact ↗
resolving lygia includes…

Say: "use 114's library" — this noise field is built from LYGIA's shader functions, fetched and resolved live. Hundreds of ready shader parts for E/F/K work.

115

WebGPU (three r184)

WebGPUr184
worksReact ↗
checking WebGPU…

Say: "go WebGPU" — the post-WebGL era: compute shaders, 100M particles, TSL. This card runs three r184's WebGPU renderer beside our r170 stack.

150

Velocity image bend

Three.jsLenis
worksReact ↗

scroll fast — the image bows with your momentum

Say: "galleries bend with 150" — THE Awwwards gallery signature: imagery that curves with scroll inertia and settles flat.

155

Galaxy generator

Three.js20k points
unauditedReact ↗
branches spin

Say: "cosmos = 155" — a parameterized spiral galaxy you can reshape live. The most-loved demo in the three.js world.

156

Reaction-diffusion

GLSLping-pong
unauditedReact ↗

draw on it — organisms grow from your touch

Say: "living texture = 156" — Turing patterns growing in real time. Chemistry, not animation.

162

Kinetic 3D type

Three.js
unauditedReact ↗

Say: "words orbit with 162" — typography as geometry: text wrapped on a rotating drum. The image tube's louder sibling.

174

Gaussian splats

Sparkreal
unauditedReact ↗
photoreal radiance-field capture — the jewelry-grade 3D format

Say: "products become 174" — phone-captured photoreal 3D with true view-dependent light. The WB endgame for product pages.

189

Ribbon trail

Three.js
unauditedReact ↗

move your cursor — a ribbon chases it

Say: "the cursor trails 189" — a glossy 3D ribbon flowing behind the pointer. Lusion signature.

190

God rays

GLSL
unauditedReact ↗

Say: "light shafts via 190" — volumetric beams raking through the scene. Cathedral mood on demand.

191

Points morph

Three.js
unauditedReact ↗

Say: "forms become forms with 191" — a cloud of points flowing between sphere, torus and helix.

192

Painterly filter

GLSL
worksReact ↗

Say: "imagery painted via 192" — live oil-paint stylization over the picture. Editorial art direction, zero Photoshop.

193

Velocity aberration

GLSLLenis
worksReact ↗

scroll hard — the channels split

Say: "speed splits color via 193" — RGB channels separate with scroll velocity and snap back at rest.

198

Terrain flyover

Three.js
unauditedReact ↗

Say: "cruise over 198" — endless procedural landscape sliding under the camera, fog to the horizon.

199

Portal window

render target
unauditedReact ↗

Say: "another world via 199" — a framed window showing a second live scene inside the first.

200

Jelly blob

soft body
unauditedReact ↗

poke it

Say: "products wobble via 200" — a mesh with spring physics: poke it and it jiggles like it has mass.

201

Mirror floor

Three.js
unauditedReact ↗

Say: "showroom floor = 201" — the product doubled in a soft reflection. Instant premium staging.

230

Exploded assembly

Three.js
worksReact ↗
assembledexploded

Say: "the product comes apart with 230" — every component drifts to its exploded position on the slider. Flat-pack honesty as a hero moment.

231

3D hotspots

Three.js
unauditedReact ↗
1
oak veneer top · AA-grade
2
powder-coated steel legs
3
ships flat · 12-min assembly

the dots ride the object — click one

Say: "specs live on the object — 231" — annotations pinned to 3D anchor points, fading as they rotate out of view. Occlusion-aware.

232

Showroom walkthrough

Three.jsscroll
worksReact ↗

scroll in here — you walk the room to the lit doorway

Say: "walk the room via 232" — a camera on a spline path through a furnished interior, scrubbed by scroll. The Igloo Inc. archetype.

233

Day / night room

Three.js
unauditedReact ↗

Say: "give it evenings — 233" — one click and the sun hands off to the lamps: every light, color and shadow lerps. Nothing snaps.

234

Compute particles

WebGPUreal
worksReact ↗
checking WebGPU…

Say: "a hundred-thousand-particle budget: 234" — position and velocity never leave the GPU. TSL compute shaders, the 2026 differentiator.

235

SDF 3D type

troika
unauditedReact ↗

Say: "type is geometry — 235" — crisp signed-distance-field text in WebGL, sharp at any zoom. Type your own headline into the scene.

239

Upholstery touch

Three.js
unauditedReact ↗

run your cursor over the fabric — it gives, then recovers

Say: "let them touch the fabric — 239" — a velvet swatch that dents under the pointer and springs back. Sheen, nap, give: tactility on a screen.

242

Scene blend

Three.jsrender targets
unauditedReact ↗
scene Ascene B

Say: "acts dissolve through 242" — both scenes render to textures; a noisy edge blends them. How award pipelines hand one world to the next.

245

Device tier gate

realfallback
unauditedReact ↗
reading device…
static poster — same story, zero GPU

Say: "majors degrade with 245" — GPU string + memory + cores pick the tier; the centerpiece falls back to CSS, then to a poster. Never just reduced-motion.

collection / choreography · 108

Motion direction

GSAP timelines, scroll systems, type movement and interaction physics — tuned as sequences, not isolated effects.

01

Lenis smooth scroll

Lenis
unauditedReact ↗
0.00
live scroll velocity — this whole page runs on it

Say: "the whole site scrolls like 01" — inertia + eased wheel. Non-negotiable base layer.

02

Custom cursor

JS lerp
unauditedReact ↗

it's already following you (desktop)

Say: "add 02" — dot tracks tight, ring lags behind. Hides itself on touch devices.

03

Preloader

GSAP
unauditedReact ↗

Say: "open with 03" — counter climbs 0→100 while assets load, curtain lifts, page breathes in.

04

Page transition

GSAP
unauditedReact ↗

Say: "pages change with 04" — colored slabs sweep the screen between routes. No hard cuts, ever.

06

Gradient mesh background

GSAPCSS
worksReact ↗

Say: "background = 06" — slow drifting color field behind content. Calm, expensive-feeling ambience.

07

Char cascade

GSAP
worksReact ↗

Letters arrive

Say: "headline enters with 07" — each character rises with a tiny rotation, staggered. The classic hero move.

08

Line mask reveal

GSAP
unauditedReact ↗
Lines slide up from behind an invisible mask

Say: "paragraphs use 08" — quieter than 07. Editorial, Studio-Freight energy.

09

Scramble decode

JS
unauditedReact ↗
SIGNAL LOCKED

Say: "labels decode with 09" — glyph noise resolves into words. Tech/lab flavor; use sparingly.

13

Counter tick-up

GSAPScrollTrigger
unauditedReact ↗
0%
animates every time it scrolls into view

Say: "stats section uses 13" — numbers roll up when they enter the viewport.

14

Reveal on scroll

ScrollTrigger
worksReact ↗
Every block on this page enters like this.
Slide up + fade, 40px, power3.out.
Reverses when you scroll back past it.

Say: "default entrance = 14" — the workhorse. Everything that doesn't have a fancier entrance gets this.

15

Parallax layers

ScrollTrigger
unauditedReact ↗

Say: "hero layers move with 15" — depths drift at different speeds while you scroll. Instant dimensionality.

19

Image clip reveal

GSAPScrollTrigger
worksReact ↗

Say: "images unveil with 19" — the image is uncovered like a curtain rather than fading in.

20

Zoom-out settle

ScrollTrigger
worksReact ↗

Say: "gallery images use 20" — image starts oversized and settles to 1:1 as it scrolls through view.

21

Scroll progress bar

ScrollTrigger
worksReact ↗

look at the very top edge of this page —
the green line is your position in the document

Say: "add 21" — thin bar tracking read progress. Pairs well with long editorial pages.

22

Magnetic button

GSAP
unauditedReact ↗

Say: "all CTAs are 22" — buttons pull toward the cursor, then elastic-snap back. Bonhomme signature.

23

3D tilt card

JSCSS 3D
unauditedReact ↗
move your cursor over me

Say: "product cards get 23" — perspective tilt following the cursor, with a moving light sheen.

24

Image trail

GSAP
unauditedReact ↗

sweep your cursor around in here

Say: "gallery hero uses 24" — images bloom along the cursor's path and melt away.

38

ASCII render

canvas
unauditedReact ↗

Say: "easter egg in 38" — scenes drawn in live type. Terminal-core; pairs with 09.

42

Inertia drag slider

JS physics
unauditedReact ↗

grab and throw it

Say: "collection slider is 42" — flick it and it glides with momentum, rubber-bands at the ends.

43

FLIP shuffle

GSAP Flip
unauditedReact ↗

Say: "filters animate with 43" — items glide to their new positions instead of snapping. Essential for product filtering.

45

Shape morph

SVGGSAP
worksReact ↗

Say: "brand mark breathes with 45" — vector shapes flow between forms. Logos, icons, section dividers.

46

Odometer digits

GSAP
unauditedReact ↗

Say: "prices/stats roll with 46" — each digit is a slot-machine column. Richer than 13.

47

View Transitions

native CSS
unauditedReact ↗

Say: "grid-to-detail morphs with 47" — click a tile: the browser itself morphs it into the featured slot. Zero-library page transitions.

49

Velocity skew

LenisGSAP
unauditedReact ↗
Scroll fast and I lean into it

Say: "type leans with 49" — text shears with your scroll speed and settles when you stop. Pure feel.

51

Search by vibe

embeddings
simReact ↗
simulation

Say: "search is 51" — semantic search: "something my mother would wear to a wedding" returns the right products, not keyword misses.

53

Adaptive page

personalization
simReact ↗
simulation

Say: "homepage adapts with 53" — hero, copy, and CTA re-rank per visitor context. One page, many faces.

58

Circular text

SVG
worksReact ↗
est. 2026 · motion menu · point at a number ·

Say: "badge/stamp = 58" — rotating ring of type. Corner badges, seals, section markers.

59

Text on a path

SVGScrollTrigger
worksReact ↗
scroll moves me →

Say: "caption rides 59" — words travel along a drawn curve as you scroll. Scroll up and down over this card.

61

Blur-in reveal

GSAP
unauditedReact ↗

Focus arrives late

Say: "soft entrances use 61" — characters sharpen out of a blur. Dreamier than 07.

63

Word rotator

GSAP
unauditedReact ↗
Built for taste

Say: "hero line rotates with 63" — one slot in the sentence flips through your value props.

65

Wave text

GSAP
worksReact ↗
Undulate

Say: "playful accent = 65" — letters ride a standing wave. Loaders, empty states, footers.

66

Gravity letters

JS physics
unauditedReact ↗
GRAVITY

Say: "404 page does 66" — the headline lets go, bounces on the floor, reassembles. Personality in one click.

71

Before / after

JS
unauditedReact ↗
before after

Say: "proof section = 71" — drag the divider between two states. Refurb work, retouching, redesigns.

73

Deck swipe

GSAPdrag
unauditedReact ↗

throw the top card left or right

Say: "browse mode = 73" — swipeable card stack. Lookbooks, product discovery, yes/no curation.

74

Fullscreen menu

GSAP
unauditedReact ↗

Say: "nav opens with 74" — the whole screen becomes the menu, links cascading in. Small sites feel massive.

76

Toast stack

GSAP
unauditedReact ↗

Say: "notifications = 76" — events slide in, stack, and excuse themselves. Cart adds, saves, agent updates.

78

Theme flip

GSAPclip-path
worksReact ↗
Dark by defaultthe whole page can do this
Light on demandthe whole page can do this

Say: "theme switch = 78" — the new theme floods outward in a circle from the toggle. No hard swap.

95

Physics letters

JS physicsdrag
unauditedReact ↗

pick them up and throw them

Say: "headline is 95" — every letter is a rigid body. Visitors can't resist playing with it.

97

Gooey cursor trail

SVG filter
unauditedReact ↗

drag your cursor through

Say: "cursor drips with 97" — a liquid blob chases the pointer and melts away.

98

Infinite drag field

JS physics
unauditedReact ↗

drag any direction — it never ends

Say: "explore mode = 98" — the page as an endless desk you pan across. Moodboards, archives, collections.

103

Gift finder quiz

quiz → picks
simReact ↗
simulation

Say: "gifting funnel = 103" — 3 taps → curated picks. The single best documented ROI in jewelry e-comm (+64% gift conversion).

105

Live presence

realtime
simReact ↗
simulation
4 viewing this piece

Say: "add 105" — other shoppers visible as ghost cursors + live counts. Social proof you can feel. (Supabase Realtime in production.)

106

Agentic storefront

MCP2026
simReact ↗
simulation

Say: "wire 106" — your catalog answering inside ChatGPT/Gemini via MCP tools. The new free distribution channel; checkout stays yours.

107

Generative UI

AI SDK
simReact ↗
simulation

Say: "chat answers as 107" — the assistant replies with real product cards, not paragraphs. Upgrade path for 50 + 103.

111

Rive animation

Rive runtimereal
unauditedReact ↗

designer-authored, state-machine animation (sample asset)

Say: "living logo via 111" — Rive files react and idle like game characters at a fraction of Lottie's size. This plays Rive's official sample; a WB mark needs one design session in their editor.

112

GSAP pro pack

GSAP 3.13free now
unauditedReact ↗
SplitText
Real line splitting,
masked like the pros do it.
ScrambleText
DECODE ME
MorphSVG

Say: "use the pro pack" — SplitText, ScrambleText, MorphSVG, Inertia, DrawSVG: all formerly paid, now free and wired into this stack. Patterns 07/09/44/45 have pro-grade versions on request.

113

VFX-JS treatments

@vfx-js/core
unauditedReact ↗
Any element

Say: "treat sections with 113" — drop-in WebGL effects on ordinary DOM elements, no shader writing. Section F powers, applied site-wide in minutes.

116

Spline scene

@splinetool
unauditedReact ↗
loading scene…

Say: "embed via 116" — interactive 3D authored in a design tool, embedded like an image. Fastest idea-to-3D when code isn't the point. (Sample scene; ours needs a Spline account.)

117

SaaS pricing table

SaaS
unauditedReact ↗
monthly annual save 20%

Say: "pricing = 117" — tiered table with billing toggle and rolling prices. The SaaS conversion workhorse.

118

Fabric & finish picker

furnituredecor
unauditedReact ↗
Bouclé · Cloudlead 2 wk · $1,240

Say: "PDPs get 118" — the Herman Miller / HAY move: swatches swap material, price and lead time live. Sells the custom order.

119

Quote builder

procurement
unauditedReact ↗

Say: "trade page runs 119" — line items, quantities, trade discount, live totals. The DAF procurement intake, as a component.

120

Moodboard composer

interior design
unauditedReact ↗
tap pieces to compose the room →
tap again to remove

Say: "clients play with 120" — shop-the-room in reverse: visitors compose their space from your catalog. Engagement that converts to carts.

121

Spec comparison

furnitureSaaS
unauditedReact ↗

Say: "compare with 121" — side-by-side specs where the differences light up. Kills choice paralysis at the decision moment.

128

Project calculator

procurementreal
unauditedReact ↗
8

Say: "intake = 128" — dimensions in, costed plan out, live. The DAF brief as an instrument instead of a form.

130

Trade portal gate

B2B
simReact ↗
simulation
🔒 wholesale pricing is gated

Say: "trade gate = 130" — the login wall that unlocks dealer pricing. Commitment signal in, repeat business out.

131

Project timeline

procurement
unauditedReact ↗

Say: "delivery clarity via 131" — phases on a week grid with a live today-line. Tap a bar. Answers "when" before it's asked.

132

Dimension diagrams

furniture
worksReact ↗
1400 mm 700 clearance 750 mm

Say: "specs draw with 132" — interactive footprints and clearance zones. Herman-Miller-depth PDPs.

133

Sample request

furniture
simReact ↗
simulation

Say: "swatches ship via 133" — pick three, address, done. The physical-touch bridge for fabric-sensitive orders.

136

Assembly player

furniture
unauditedReact ↗
step 1 / 4

Say: "guides via 136" — stepped assembly with a parts checklist. Pre-purchase confidence, post-purchase calm.

138

Integration wall

SaaS
unauditedReact ↗
pattern demo

Say: "ecosystem via 138" — the filterable logo wall. Instant credibility for Nimos or any platform surface.

139

Changelog feed

SaaS
unauditedReact ↗

Say: "alive-ness via 139" — a living what's-new feed. Watch it: entries keep arriving. Pairs with The Signet.

141

Financing callout

e-comm
unauditedReact ↗
$1,240
or from $104/mo — 0% for 12 months

Say: "reframe with 141" — $1,240 becomes $104/mo at the exact hesitation moment. Standard on Burrow, Floyd, and fine jewelry.

142

Education-first price

DAFcanon
worksReact ↗
Sit-stand desk 140 · walnut
$984
why this price ▾
supplier list $820
+ 20% dealer margin, shown openly — it covers sourcing, QC and warranty handling
→ learn: how dealer pricing works

Say: "DAF cards use 142" — every price opens its own explanation and links to a lesson. Transparency as the differentiator.

143

Costed plan preview

DAF
simReact ↗
simulation

Say: "plans render as 143" — the DAF signature artifact: a costed plan with the margin visible, not hidden. In production this reads the live catalog.

144

Service lifecycle

DAF
unauditedReact ↗

Say: "services read as 144" — design through decommission as one continuum. Clients see the whole relationship, not a transaction.

149

Command palette

⌘Kwired live
unauditedReact ↗

it indexes every pattern on this page () —
type a name or number, Enter jumps you there

Say: "add 149" — the defining SaaS interaction. This one actually navigates the menu: try "glass" or "128".

152

Dynamic Island pill

GSAP spring
unauditedReact ↗
idle

Say: "status lives in 152" — one pill fluidly morphing between states: order placed, shipping, arrived. Watch it cycle.

153

Split-flap board

CSS 3D
unauditedReact ↗

Say: "departures via 153" — Solari-board mechanics for headlines, stats, drop announcements.

154

Progressive blur

CSS mask
unauditedReact ↗

Say: "edges melt with 154" — the Apple look: content dissolving into directional blur instead of hard clips.

157

SVG organics

feTurbulence
worksReact ↗

Say: "blobs breathe with 157" — living shapes from SVG filter chemistry alone. No canvas, no WebGL.

158

Directional hover pack

JSCSS
unauditedReact ↗

Say: "hovers know direction via 158" — fills that enter where your cursor entered, plus the macOS dock magnify.

161

Zoom portal

scroll
unauditedReact ↗
you're inside — section two

scroll in here — you dive through the image

Say: "chapters dive via 161" — scroll zooms INTO the image until it becomes the next section. The Apple transition.

163

Observer swipe + MotionPath

GSAP
unauditedReact ↗

wheel / swipe inside the box — full-frame slide flips

Say: "one-pager runs 163" — unified wheel/touch section-swiping plus elements riding drawn paths. Both GSAP plugins, both free now.

164

Commerce micro pack

conversion
unauditedReact ↗
🛒0
Luna cuff — $128
drop ends in 02:14:07 · 31 left

Say: "cart moments = 164" — the product flies an arc into the cart, confetti on landing, live drop countdown with a draining stock bar.

166

CSS 3D diorama

pure CSS 3D
unauditedReact ↗

move your cursor — it's all divs, no canvas

Say: "tiny world via 166" — a whole room in stacked CSS transforms. Story scenes without a single polygon.

167

Anchor morph dialog

FLIP
unauditedReact ↗

Say: "dialogs grow from 167" — the panel morphs out of the button you pressed, and returns into it. No teleporting modals.

170

Reasoning chat

2026 AI-UI
simReact ↗
simulation

Say: "chat anatomy = 170" — collapsible thinking, tool-call chips, hoverable citations. The UI standard our section H predates.

172

SQL in the browser

SQLite WASMreal
unauditedReact ↗
a full SQL engine, client-side — the Nimos offline core

Say: "172 powers the dashboards" — real SQLite compiled to WASM. Edit the query — it's live.

175

Idle attract mode

JS
unauditedReact ↗

stop moving for 4 seconds…

Say: "the site performs 175" — when the visitor goes still, the page starts a self-running show. Museum-mode; any movement hands control back.

177

Reading progress

real
unauditedReact ↗
0%
of this very page read

Say: "long reads get 177" — live percent-read and time-left. This one measures the actual menu as you scroll it.

181

Hand-drawn annotations

SVG
unauditedReact ↗

The one number that matters,
with the rest underlined by hand.

Say: "mark it up with 181" — marker circles and underlines that draw themselves. Human warmth on digital pages.

182

Column speed grid

scroll
unauditedReact ↗

scroll inside — columns move at different speeds

Say: "galleries drift with 182" — center column slow, edges fast. Instant depth for image grids.

183

Infinite loop scroll

scroll
unauditedReact ↗

keep scrolling — it never ends, in either direction

Say: "the page wraps via 183" — no top, no bottom. Collections and showreels as a loop.

185

Context cursor labels

cursor
unauditedReact ↗
artwork
gallery

Say: "the cursor speaks with 185" — hovering media, the cursor grows and says what a click will do.

186

Click ripple

Material
unauditedReact ↗

Say: "taps ripple via 186" — the press radiates from the exact touch point. Tactile confirmation.

187

Icon morphs

MorphSVG
unauditedReact ↗

Say: "icons transform via 187" — play becomes pause, plus becomes close, hearts pop full. Click each.

188

Hold to confirm

JS
unauditedReact ↗

Say: "destructive actions use 188" — press and hold; the ring fills; letting go cancels. Friction exactly where it belongs.

194

Drag reorder grid

dragFLIP
unauditedReact ↗

drag a tile over another — they trade places

Say: "boards reorder via 194" — pick up, hover, drop; neighbors glide aside. Kanban physics.

195

Stagger playground

GSAP
unauditedReact ↗

Say: "waves ripple from 195" — the same grid, four different stagger origins. Choreography vocabulary in one card.

207

Booking slots

scheduling
unauditedReact ↗

Say: "consults book via 207" — the cal.com pattern: pick a day, pick a slot, done in two taps.

211

Wishlist burst

micro
unauditedReact ↗

Say: "saves feel good via 211" — the heart pops with particles. Dopamine at the save moment.

215

Punch list

procurement
simReact ↗
simulation

Say: "handover runs 215" — the install punch list, items resolving live until sign-off unlocks.

218

Budget vs actual

procurement
unauditedReact ↗

Say: "money honest via 218" — paired bars per category, variance called out. Trust through numbers that move.

221

Refurb ROI

DAFcalculator
unauditedReact ↗

Say: "refurb sells via 221" — desks you own vs replacement cost, savings counted live. The lifecycle pitch as an instrument.

228

Card stack scroll

scroll
worksReact ↗
01 · DESIGN
02 · PROCURE
03 · INSTALL
04 · REFURBISH

scroll in here — each chapter climbs onto the last

Say: "sections stack via 228" — panels pile up and settle as you scroll; the one beneath dims and recedes. The Apple keynote scroll.

236

dotLottie

Lottiereal
unauditedReact ↗
loading…

Say: "motion graphics drop in via 236" — After Effects animation playing on a wasm renderer. The designer's tool, Rive's older sibling.

237

Gallery expand

GSAP Flip
unauditedReact ↗
lounge · walnut
credenza · oak
task seating
brass detail
boucle swatch
terrazzo top

click a tile — it morphs to fill the frame

Say: "gallery breathes with 237" — a thumbnail FLIPs into the full frame and back, siblings hold their ground, backdrop blurs.

240

Velocity-adaptive seam

pacing
unauditedReact ↗
ACT I
ACT II
scroll in here — cross the middle slow, then fast

Say: "seams breathe with 240" — rush and the transition cuts short; linger and it plays full. Juries score this pacing explicitly.

241

Shared-element handoff

scrollseam
unauditedReact ↗
act I · the work
same object — now the hero of act II

scroll — the thumbnail travels into the next act and becomes its hero

Say: "carry it across via 241" — one element persists through the seam, scrubbed and reversible. The single-continuous-surface trick.

243

No false floors

UX law
unauditedReact ↗

ACT I

CONTINUES

ACT II

KEEP GOING

ACT III

every act ends mid-sentence — the next one peeks, type straddles the edge, idle gets a nudge

Say: "no dead ends — 243" — NN/g's false-floor fix: if a section ever looks finished, people stop. Cut-off type + peek + idle nudge.

246

Virtual scroll stage

input
unauditedReact ↗
SEGMENT 01
SEGMENT 02
SEGMENT 03

wheel or drag inside — there is no native scroll, only an eased value

Say: "own the scroll via 246" — wheel and touch feed a virtual value; everything eases toward it. How ZERO-class narratives are driven.

247

Iris seam

scrollseam
unauditedReact ↗
ACT II
ACT I

scroll — act I closes like an iris around your cursor

Say: "close the act with 247" — a clip-path iris scrubbed by scroll, centered on the pointer. A seam that feels aimed at you.

10 · WORD-BY-WORD SCROLL SCRUB — keep scrolling, the sentence lights up with you

Each word of this sentence brightens as you scroll, so the reader literally cannot skim past your best line — the scroll bar becomes the narrator's voice.

Say: "manifesto paragraph gets 10".

11 · VELOCITY MARQUEE — scroll fast and watch it speed up

EndlessMarqueeReacts toYour Scroll EndlessMarqueeReacts toYour Scroll

Say: "divider strips are 11" — infinite ticker whose speed is tied to scroll velocity.

16 · PINNED SCRUB SCENE — the screen holds while the story plays
pinned object

Scroll owns the timeline.

The section stays pinned…

…until the story completes. Then the page releases.

Say: "product story is 16" — scrub-driven scene while the viewport holds. The backbone of every Apple-style product page.

17

HORIZONTAL SCROLL — vertical wheel, sideways travel

Panel B

each panel is a full slide

Panel C

great for timelines / collections

Exit →

then the page continues down

Say: "collection browses with 17".

18 · Sticky stacking cards

Cards pile on top of each other as you scroll — each one shrinking slightly as the next arrives.

Card one

sticks at the top…

Card two

…slides over it…

Card three

…and completes the deck.

Say: "services/features section = 18".

collection / generative · 29

Generative canvas & SVG

Procedural fields, drawing systems, simulations and vector work that stay sharp without an asset pipeline.

39

Gooey metaballs

canvasCSS filter
unauditedReact ↗

move your cursor — they follow

Say: "blobby accents = 39" — shapes that merge like liquid when they touch. Organic, playful.

41

Particles form text

canvas
unauditedReact ↗

click to explode · they find their way home

Say: "logo assembles with 41" — a thousand particles scatter and reform your wordmark.

48

Scroll-scrub canvas

canvasScrollTrigger
unauditedReact ↗

scroll — the scrollbar is the play-head

Say: "product assembles with 48" — a frame sequence scrubbed by scroll. The Apple AirPods technique (in production: rendered image frames).

56

Agentic back-office

Agent SDKNimos
unauditedReact ↗
HUB inv ord sup fin

Say: "Nimos runs 56" — agents watching inventory, triaging orders, drafting supplier mail — reporting to one hub. The business runs while you sleep.

70

Dot grid repel

canvas
unauditedReact ↗

Say: "section background = 70" — a field of dots that flinches away from the cursor and springs back.

80

Starfield warp

canvas
unauditedReact ↗

Say: "loading jump = 80" — stars streak past at warp. Cheap, hypnotic, works everywhere.

81

Points globe

canvas
unauditedReact ↗

Say: "global reach = 81" — a rotating sphere of dots. Shipping maps, presence, network stories.

83

Flow field

canvas
unauditedReact ↗

Say: "living background = 83" — particles tracing invisible wind. The most organic ambience per kilobyte.

91

Fluid ink

simulation
worksReact ↗

stir it with your cursor

Say: "hero is 91" — ink that swirls and settles like liquid. (Full GPU Navier-Stokes = the WebGPU upgrade on radar.)

92

Text dissolve

canvas
unauditedReact ↗

Say: "words exit with 92" — type disintegrates into wind-blown particles and re-forms. Watch the loop.

99

Audio-reactive

WebAudio
unauditedReact ↗

Say: "visuals hear with 99" — real frequency analysis driving the graphics. This demo synthesizes its own beat.

104

Generative art seed

canvasreal
unauditedReact ↗
seed #0000

Say: "backgrounds are 104" — algorithmic one-of-ones; every visitor (or product) gets art nobody else has.

108

Sequence scrub

canvasScrollTriggerreal
unauditedReact ↗

scroll — 80 pre-rendered frames under your thumb

Say: "launch page = 108" — the true Apple mechanism: a rendered frame sequence scrubbed by scroll. In production the frames come from the desktop GPU render rig.

123

360° viewer

jewelrydrag
unauditedReact ↗

drag to spin · flick for momentum

Say: "PDPs spin with 123" — the multi-angle inspection jewelry buyers demand. Production feeds it a photo turntable or our GLBs.

124

Engraving preview

jewelryreal
unauditedReact ↗
YOURS
$146silver + engraving $18

Say: "personalize with 124" — live engraving + metal preview with the price following. The +30–50% AOV tool. Type in it.

126

Product motion loop

canvas
unauditedReact ↗

stand-in loop — production uses rendered footage from the desktop rig

Say: "pieces move with 126" — 6-second light-play loops on PDPs. +15–25% documented buy lift over $200.

159

Voronoi shatter

canvas
worksReact ↗

click the image — it breaks where you strike

Say: "transitions break with 159" — imagery fractures into shards from your click point, then heals.

160

Slime mold

simulation
worksReact ↗

Say: "living veins = 160" — thousands of agents finding paths like Physarum. Organic infrastructure, growing live.

173

Webcam ring try-on

MediaPipereal
unauditedReact ↗
hand tracking runs locally; nothing leaves your device

Say: "try-on = 173" — the census's #1 boutique conversion item: a ring rendered on your actual finger, live, in-browser.

184

Hover preview rows

canvas
unauditedReact ↗

Say: "indexes preview via 184" — list rows that play a live preview only while hovered. Agency-index energy.

197

Embedding map

semantic space
unauditedReact ↗

drag to pan — products cluster by meaning

Say: "the catalog as a galaxy = 197" — items positioned by semantic similarity. Browse by neighborhood, not category.

213

Stone comparer

jewelry
unauditedReact ↗

Say: "stones explain via 213" — cut, clarity and glow compared visually, not in a spec table.

216

Delivery route

logistics
unauditedReact ↗

Say: "freight visible via 216" — the shipment tracing its route with live position. Calm through visibility.

225

Worker rendering

OffscreenCanvasreal
unauditedReact ↗

this animation renders on a worker thread — the page can't jank it

Say: "heavy charts via 225" — rendering moved off the main thread entirely. Dashboards that never stutter.

282

Generic logo wall

testimoniallogostrust
unauditedReact ↗

Say: "proof is <n>" — a wall of generic marks, ready to swap for real client logos; reach for it when the point is breadth, not one voice.

289

Sparkline row

statssparklinesvg
unauditedReact ↗
Metric label 128
Metric label 36
Metric label 4.9

Say: "stats are <n>" — a figure with its own trend line inline; reach for it when the shape of the number matters as much as the number.

352

Audio player row with waveform

mediaaudiowaveform
unauditedReact ↗
1:04 / 3:20

Say: "audio player is <n>" — a play control beside an inline SVG waveform and a time readout; reach for it for a podcast clip or voice note preview.

416

Keyboard hint bar

chromesearchcss
unauditedReact ↗

Say: "add a keyboard hint bar" — a search trigger with a kbd-styled shortcut badge, ⌘K, sitting at the end.

458

Form with inline validation states

formvalidationfeedback
unauditedReact ↗

Say: "show inline validation" — one field in its valid state, one in its error state, each with an icon and a message; reach for it to demonstrate real-time field feedback.

collection / native · 19

Browser-native

View transitions, sensors, share, speech and modern platform APIs with honest capability gates.

85

CSS scroll-driven animation

pure CSS
worksReact ↗
scroll this little panel —
each row animates in…
…driven by CSS alone.
zero JavaScript. zero GSAP.
animation-timeline: view()

Say: "cheap reveals via 85" — scroll-linked animation with no JS at all. The free-performance version of 14.

86

Corner shapes

pure CSS
unauditedReact ↗
squircle

Say: "cards wear 86" — squircles, scoops, notches, bevels. The anti-default corner language.

87

Native carousel

scroll-snap
unauditedReact ↗

Say: "sliders = 87" — browser-native snap carousel, momentum and physics included. Drag/swipe it.

88

Anchored tooltip

CSS anchor
unauditedReact ↗
tethered to my anchor — I follow it anywhere

Say: "tooltips via 88" — elements that tether themselves to an anchor. Kills positioning libraries.

89

Living text fill

CSS clip
worksReact ↗
Alive

Say: "masthead = 89" — huge letters filled with a moving color field (or video, in production). One CSS property.

90

Snap chapters

scroll-snap
worksReact ↗

01

each chapter owns the frame

02

snap, don't scrolljack

03

dots know where you are

Say: "story mode = 90" — full-frame chapters with position dots. Decks, manifestos, product tours.

102

AR model-viewer

web componentreal
worksReact ↗

Say: "products get 102" — drag to inspect; on a phone this places the object in your room via AR. Feeds from our GLB pipeline.

168

Speculation rules

nativereal
worksReact ↗
visit the annex — it's already prerendered

this page speculatively prerenders the annex in the background —
the navigation is 0ms when you click

Say: "instant nav via 168" — one script tag in the head. The cheapest expensive-feeling upgrade on the entire menu.

202

Sticky-state styling

scroll-state()
unauditedReact ↗

Say: "headers know via 202" — the bar restyles itself the moment it sticks. Zero JS where supported; scroll the box.

203

:has() magic

pure CSS
worksReact ↗

the button unlocks itself — CSS watches the checkbox, no JS

Say: "forms self-aware via 203" — parents styled by their children's state. The selector that changed CSS architecture.

204

Container queries

pure CSS
worksReact ↗
Luna cuffreshapes by its OWN width

Say: "components adapt via 204" — drag the slider: the card restyles by its container, not the viewport. Design-system-grade responsiveness.

205

text-wrap intelligence

pure CSS
worksReact ↗

The quiet upgrade nobody notices until it is gone

Say: "headlines breathe via 205" — text-wrap: balance kills orphan words. The cheapest typography tell of a cared-for site.

209

EyeDropper

native APIreal
unauditedReact ↗

Say: "sample reality via 209" — the native color picker that reaches OUTSIDE the browser. Configurators that match your wall paint.

222

Compression Streams

nativereal
unauditedReact ↗
native gzip, ~5 lines of code, zero dependencies

Say: "exports shrink via 222" — browser-native compression for CSV/JSON downloads. Boring, Baseline, free.

223

Web Share

nativereal
worksReact ↗

Say: "sharing native via 223" — the OS share sheet, not a row of social icons. One API call.

224

Device signals

nativereal
unauditedReact ↗

Say: "the page adapts via 224" — battery, connection speed, memory, cores: real signals for serving lighter experiences when it matters.

226

File save

nativereal
unauditedReact ↗
generated in-page, saved like a desktop app

Say: "deliverables export via 226" — plans, quotes and spec sheets leaving the browser as real files.

227

Rich clipboard

nativereal
unauditedReact ↗
paste into email/Notion — formatting survives

Say: "copy beautifully via 227" — rich HTML hits the clipboard, not mangled plain text.

244

Same-doc View Transition

nativereal
unauditedReact ↗
01
02
03
04
05
06

Say: "variants swap via 244" — document.startViewTransition morphs any DOM change natively. The atelier's variant switcher runs on this.

collection / systems · 24

AI & delivery systems

Agent interfaces, backend primitives and the delivery layer that turns a demo into something another system can use.

50

Concierge chat

Claude APIstreaming
simReact ↗
simulation

Say: "add 50" — a styling/product advisor that streams answers, knows the catalog, and hands off to checkout.

52

Generative imagery

pipeline
simReact ↗
simulation
generating scene…

Say: "staging pipeline = 52" — product shots re-staged into lifestyle scenes at scale. Passes the 4K bar or doesn't ship.

54

Copy at scale

Claude API
simReact ↗
simulation

Say: "catalog copy via 54" — every product page gets voice-consistent descriptions generated from specs, reviewed by gate.

55

Voice interface

Web Speech
unauditedReact ↗

Say: "add 55" — spoken answers and voice-driven browsing. This demo really speaks — the button uses your browser's own voice engine.

140

Prompt playground

AItokens
simReact ↗
output simulated · token math real
0 tokens · Haiku $0 · Sonnet $0

Say: "playground = 140" — visitors feel the product before signup. Live token/cost math builds AI-product trust.

171

In-browser AI search

transformers.jsreal
unauditedReact ↗
real neural embeddings — no server, no API cost

Say: "vibe search for real = 171" — the actual model from 51's simulation, running in the page. Type a feeling, get ranked products with similarity scores.

196

Shimmer resolve

AI-UI
simReact ↗
simulation

Say: "answers resolve via 196" — skeleton shimmer crystallizing into words, line by line. How 2026 AI products feel fast.

208

Speech input

Web Speechreal
unauditedReact ↗
your words appear here — recognition runs in the browser

Say: "voice input via 208" — hold the button, speak, watch it transcribe. The input side of 55.

248

Server-sent stream

realSSE
unauditedReact ↗
a serverless function pushes progress events as they happen — no polling

Say: "progress streams via 248" — Server-Sent Events from a live function. The primitive under every AI typing effect and build log.

249

Edge vs region race

realinfra
unauditedReact ↗
edge
node · region
two runtimes, same repo: an edge function near you vs a regional serverless function

Say: "show the wire with 249" — live round-trip times to both runtimes, with the regions they answered from.

251

Live guestbook

realSupabase
unauditedReact ↗
loading from Postgres…
writes go through row-level security: anon may insert ≤140 chars and read — nothing else

Say: "visitors persist via 251" — a real Postgres table behind RLS policies. State that survives the tab.

252

Live presence

realrealtime
unauditedReact ↗
connecting to the realtime channel… open this page in a second tab and watch the count move

Say: "the room breathes with 252" — websocket presence: who's here right now, joining and leaving live.

253

Cold start, visible

realinfra
unauditedReact ↗
serverless instances are born on demand and reused while warm — watch it happen

Say: "explain serverless via 253" — first hit boots an instance (cold), second reuses it (warm), with real timings and the region.

254

Passkeys

realWebAuthn
unauditedReact ↗
2026's auth standard: your device's authenticator, no password anywhere. Ceremony is real; this demo verifies client-side.

Say: "login is a fingerprint — 254" — real WebAuthn create/assert against your platform authenticator. Shipping without this is security debt now.

255

Webhook signatures

realHMAC
unauditedReact ↗
the server recomputes the HMAC over the raw body and compares in constant time — Stripe/Shopify style

Say: "trust the hooks via 255" — payload signed client-side, verified server-side; flip one byte and watch it get rejected.

256

Cache layers, live

realCDN
unauditedReact ↗
s-maxage=10, stale-while-revalidate=30 — watch MISS become HIT, age climb, then STALE serve instantly while revalidating

Say: "speed is a header — 256" — the CDN caching dance shown with real responses. Why fast sites feel free to run.

257

Server-drawn image

realog:image
worksReact ↗
Rendered social card appears here after using the render button

Say: "links unfurl via 257" — a function draws the social card on demand: one endpoint, infinite personalized images.

258

The menu's MCP server

realagentic
unauditedReact ↗
this menu IS an MCP server — any AI agent can order from it:
claude mcp add --transport http motion-menu https://motion-menu-two.vercel.app/api/mcp

Say: "agents shop the menu — 258" — 2026's rule: without an MCP surface your systems are invisible to AI. The catalog serves humans AND agents.

259

Durable workflow

simulationlabeled
simReact ↗
Inngest/Trigger.dev-style: every step checkpointed, only the failed step retries, nothing restarts from zero

Say: "jobs survive via 259" — durable execution, the 2026 default for AI pipelines. Simulated here; the real engines wire in from one SDK.

260

Sync engine

simulationlabeled
simReact ↗

CLIENT A — types here

CLIENT B — receives

Say: "it feels local via 260" — optimistic writes, server reconciliation, offline queue that flushes. The Linear feel, the 2026 category.

261

Idempotency

simulationlabeled
simReact ↗
retries and double-clicks happen — an idempotency key makes the operation safe to repeat

Say: "charge once via 261" — the same spam of clicks, with and without an idempotency key. Why nobody gets billed twice.

262

Queue backpressure

simulationlabeled
simReact ↗
producer4/s
consumer drains a fixed 6/s · queued: 0 · dropped: 0

Say: "absorb the spike via 262" — push the producer past the consumer and watch the queue fill, then overflow. Every outage post-mortem, one slider.

263

JWT anatomy

real crypto
unauditedReact ↗
header.payload.signature — signed and verified in this tab with real WebCrypto HMAC-SHA256
sign it, then change the secret (or sub) and verify again

Say: "sessions decoded via 263" — the token every API checks, taken apart live: tamper with any part and verification fails.

264

Row-level security

simulationlabeled
simReact ↗
logged in as
ownerdocument
benQ3 margin model
danasupplier shortlist
bencosted plan #1042
omarinstall schedule
policy: using (owner = auth.uid()) — the DATABASE filters, not the app. Card 251's guestbook runs the real thing.

Say: "the DB is the bouncer — 264" — row-level security visualized: switch users, rows vanish. Forget a WHERE clause and nothing leaks.

collection / foundations · 364

Page architecture

The quieter CSS page blocks: structure, typography, commerce and content. Useful foundations, intentionally filed after the frontier work.

26

Fill sweep button

CSS
worksReact ↗

Say: "secondary buttons are 26" — a color wave rises through the button on hover.

57

Variable-font proximity

variable font
unauditedReact ↗
WEIGHT

move your cursor across the letters

Say: "headline breathes with 57" — letter weight swells near the cursor. Needs a variable font; Inter is already loaded.

60

Typewriter

JS
unauditedReact ↗

Say: "tagline types with 60" — writes, pauses, deletes, rewrites. Simple and endlessly watchable.

62

Shine sweep text

CSS
worksReact ↗
Polished

Say: "metallic type = 62" — a light band sweeps through the letters forever. Zero JS.

67

Burger morph

CSS
worksReact ↗

Say: "menu icon = 67" — three lines fold into an X. The detail everyone notices without noticing.

68

Spotlight reveal

CSS mask
worksReact ↗
move your light around
hidden layer found

Say: "secret layer via 68" — content only visible inside a torch beam that follows the cursor.

69

Border beam

CSS @property
worksReact ↗
a light orbits this card forever

Say: "featured card wears 69" — a comet circles the border. Marks the one thing you want eyes on.

72

Accordion columns

CSS
unauditedReact ↗

Say: "category strip = 72" — columns that yawn open on hover. Five categories, one elegant row.

77

Skeleton shimmer

CSS
worksReact ↗
The Luna cuff — hammered silver
$128 · ships in 2 days
★★★★★ 214 reviews

Say: "loading states use 77" — content shape shimmers before data lands. This one loads on a loop.

109

Cross-page morph

View Transitionsreal
worksReact ↗
109

click the badge — it morphs onto a whole different page

Say: "pages morph with 109" — real multi-page navigation where shared elements fly between pages. Zero JS, zero router.

122

Lead-time board

procurementlive
simReact ↗
simulation

Say: "availability = 122" — live stock and lead-time status per line. In production this reads supplier feeds through Nimos.

125

Sizing tool

jewelryreal
unauditedReact ↗
match a bank card's width
ring size 7 US · 54¾ EU
ø 17.3 mm — shown true-size

Say: "sizing = 125" — calibrate against a bank card, then sizes render at TRUE physical scale. The returns-killer.

127

Provenance badges

trust
unauditedReact ↗

Say: "certs via 127" — recycled metal, lab-grown, chain-of-custody — expandable at the decision point. Tap them.

129

Spec sheet

procurementreal
unauditedReact ↗

Say: "submittals via 129" — branded spec sheets generated on the spot, print-ready. Non-negotiable in contract furniture.

134

Volume pricing

B2B
unauditedReact ↗
qty3

Say: "tiers shown via 134" — buyers watch themselves unlock the next discount. Self-qualification without a sales call.

135

Shop the room

decor
unauditedReact ↗

Say: "editorial sells with 135" — tap the pulsing dots inside the scene. Photography becomes a storefront.

137

Bento grid

SaaS
worksReact ↗
Costed plansfrom brief to budget
in minutes
Agent opsruns overnight
4K assetsor nothing
One platformcatalog → quote → install, one thread
Trade pricingtransparent tiers

Say: "features = 137" — the 2026 SaaS standard: mixed-size capability cards that read in five seconds.

145

Lifeware card

DAFcanon
worksReact ↗
$499
once. not a subscription.
  • full workspace assessment
  • costed refresh plan
  • priority sourcing for 12 months

Say: "Lifeware presents as 145" — the one-time framing is the product. The card leads with it.

146

Coordinated install

DAFhonest copy
simReact ↗
simulation
Delivery & install, coordinated — we arrange quotes from vetted logistics partners; you approve before anything moves.
request
quotes in
you approve
installed

Say: "install section = 146" — the compliant referral pattern: no named partner, no fake live booking, just the honest flow.

147

Brief starter

DAFconversion
unauditedReact ↗
1,200 ft²
continue the brief → davidandrewfurniture.com

Say: "every page funnels to 147" — three inputs of momentum, then a warm handoff to the real /procurement intake.

148

Learn hub

DAFeducation
worksReact ↗
How dealer pricing worksthe 20% explained, line by line 7 min
Lead times, honestlywhy 8 weeks is 8 weeks 5 min
Refurb vs replacewhen your desks are worth saving 6 min
Ergonomics 101what actually matters at a desk 8 min

Say: "/learn is 148" — the education-first spine: every price on the site links into one of these.

151

Footer curtain

CSS sticky
worksReact ↗
scroll me — the page lifts away…
THE END ↓

Say: "site ends with 151" — the page rises off a fixed footer. Half of all award sites end this way; ~10 lines of CSS.

165

CSS natives pack

2026 CSS
unauditedReact ↗
sibling-index()
@starting-style
native top-layer popover — animated entry, light dismiss
interpolate-size
details that glide open

height animates to auto — the thing CSS couldn't do for 25 years.

Say: "go native with 165" — hover the bars, pop the popover, open the details. Zero JavaScript in any of them.

169

Sound design layer

WebAudioopt-in
unauditedReact ↗

once on: every button on this page gets a hover blip,
and opening a section plays a soft whoosh. always opt-in.

Say: "the site hums with 169" — the missing sensory channel (~70% of award winners ship audio). Off by default, always.

176

Ambient media glow

CSS
worksReact ↗

Say: "media glows via 176" — the YouTube ambient trick: imagery leaks its colors into the room around it.

178

Selection & scrollbar

CSS
worksReact ↗

Select some of this text — the highlight is branded, not browser-blue. And this box scrolls with a styled scrollbar: thin, dark, accent thumb. Two details almost every site forgets, both pure CSS, both part of feeling intentional. Keep dragging to see the scrollbar work. The default UA chrome is the last place unbranded pixels hide.

Say: "brand the chrome with 178" — selection color + scrollbar styling. The cheapest polish nobody skips on award sites.

180

Font flicker

JS
unauditedReact ↗
RANSOM

hover the letters

Say: "chaos type = 180" — letters cycle through typefaces like a ransom note, then settle. Playful, editorial.

206

Order tracker

e-comm
simReact ↗
simulation

Say: "orders narrate via 206" — the Domino's pattern: a living stepper from placed to at-your-door.

210

Gift wrap selector

boutique
unauditedReact ↗

Say: "gifting closes with 210" — wrap, ribbon and a handwritten note preview. AOV up, returns down.

212

UGC gallery wall

social proof
unauditedReact ↗
pattern demo

Say: "worn by real people = 212" — the as-seen-on wall, hover to see who. Social proof as texture.

214

Care ritual

post-purchase
unauditedReact ↗

Say: "aftercare = 214" — a stepped care ritual that makes owning the piece feel like membership.

217

Warranty flow

service
unauditedReact ↗

Say: "claims resolve via 217" — photo, issue, resolution path in three taps. Service as a product feature.

219

Margin what-if

DAFeducation
unauditedReact ↗

Say: "teach the 20% via 219" — a slider showing what different margins would do to service quality. Radical transparency as a lesson.

220

Supplier scorecard

DAF
simReact ↗
simulation

Say: "suppliers ranked via 220" — lead-time reliability, QC pass rate, freight damage — the vetting made visible.

229

Liquid glass

CSS
unauditedReact ↗
motion is the product
the menu is the spec
596 patterns and counting
point at a number
order by number
⌘K  search the menu

drag the pill — the edge lenses what passes under it

Say: "nav wears glass — 229" — the 2026 Apple material: near-clear center, heavy refraction at the rim, specular top edge. Pure CSS.

238

Floorplan dropper

working tool
unauditedReact ↗

Say: "plan the floor with 238" — clients drop furniture onto their floorplan and watch the budget build. A brief that draws itself.

250

Intake validation

client-sidesafe
unauditedReact ↗
local validation demo — no data leaves your browser

Say: "validate intake with 250" — clear required-field feedback without sending visitor data anywhere.

265

Verification code entry

authform2fa
unauditedReact ↗

Enter your code

Six digits, sent to your email.

Didn’t arrive? Send again

Say: "code entry is boxed" — six separated digits with a focus ring. The step everyone builds badly.

266

Magic-link sign-in

authformsign-in
unauditedReact ↗

Sign in

We’ll email you a link. No password to remember.

Demo only — this form is not connected to an auth provider.

Say: "sign-in is a magic link" — one field, no password. The visual only; wire it to your own auth.

267

Horizontal bar comparison

statscomparisonbars
unauditedReact ↗
Label A
62
Label B
40
Label C
85

Say: "stats are <n>" — three horizontal bars with one emphasised; reach for it when the story is relative size, not absolute figures.

268

Before/after credibility pairing

testimonialcomparisoncraft
unauditedReact ↗

Before

A line about the starting point.

After

A line about where it landed.

Say: "proof is <n>" — a plain panel next to a refined one; reach for it when the credibility argument is craft, not a number.

269

Bento grid, one metric emphasised

statsbentogrid
unauditedReact ↗
128Metric label
36Metric label
4.9Metric label

Say: "stats are <n>" — an asymmetric grid with one figure emphasised; reach for it when one metric matters more than the others and should read first.

270

Counter row with unit labels

statscounterjs
unauditedReact ↗
0unitMetric label
0unitMetric label
0unitMetric label

Say: "stats are <n>" — three counters that count up once and stop, each with its own unit tag; reach for it when the motion should register once, not loop.

271

Credential ledger

testimonialcredentialstrust
unauditedReact ↗
  • Credential nameIssuing body · Year
  • Credential nameIssuing body · Year
  • Credential nameIssuing body · Year

Say: "proof is <n>" — a short ledger of credentials with a seal mark; reach for it when the trust argument is who signed off, not who spoke.

272

Inline-field CTA

ctaformcapture
unauditedReact ↗

Get the next one

No cadence promised. Unsubscribe any time.

Say: "one field and go" — a single input with the submit sitting inside it. The lowest-friction ask there is.

273

Split CTA

ctalayoutcss
unauditedReact ↗

Ready when you are

Send the space

One line about what happens next.

Say: "split the ask" — copy on the left, the action on the right, hairline between. Reads as calm, converts like a banner.

274

Statement CTA

ctatypeeditorial
unauditedReact ↗

Start the brief

Begin

Say: "the ask is a statement" — one full-bleed line and an arrow link. No box, no button, no noise.

275

As-featured-in strip

testimonialpressmarquee
unauditedReact ↗

As featured in

Say: "proof is <n>" — a slow continuous strip of press-style marks; reach for it as a quiet trust signal above the fold, not a hero claim.

276

Figure/label ledger

statsledgerlist
unauditedReact ↗
01128
Metric label
0236
Metric label
034.9
Metric label
0412
Metric label

Say: "stats are <n>" — figures and labels in a two-column ledger; reach for it when you have more rows than a four-up strip can hold.

277

Big-ask closer

footertypeeditorial
unauditedReact ↗

Next

Let's make
something

hello@example.com

Say: "end on the big ask" — oversized closing line with the address as the only link. A visible ending shortens the perceived middle.

278

Marquee-edge footer

footermarqueemotion
unauditedReact ↗
Available for work·Available for work· Available for work·Available for work·
STUDIO© 2026

Say: "footer rides a marquee" — a slow ticker strip seals the page, compact bar underneath.

279

Sign-off rule footer

footerminimalcss
unauditedReact ↗
All systems normal© 2026

Say: "close it with the sign-off rule" — hairline, wordmark, links, a live status dot. The quietest possible ending.

280

Sitemap footer

footersitemapcss
unauditedReact ↗

Say: "give me a real sitemap footer" — a brand column plus grouped link lists, for pages with enough to actually list.

281

Four-up metric row

statsmetricsrow
unauditedReact ↗
128Metric label
4.9Metric label
36Metric label
12Metric label

Say: "stats are <n>" — four figures in a row, divided by hairlines; reach for it as the default metrics strip above a fold or footer.

283

Hero number with caption

statsnumberhero
unauditedReact ↗
128

Metric label — a line about the number goes here.

Say: "stats are <n>" — one number filling the space, a caption underneath; reach for it when a single figure is the entire argument.

284

Credential list

testimonialproofprovenance
unauditedReact ↗

Provenance

  • CredentialDetail line
  • CredentialDetail line
  • CredentialDetail line

Say: "proof is a credential list" — plain rows of what is verifiable. Reads honest precisely because it is not styled like a boast.

285

Pull-quote with rule

testimonialprooftype
unauditedReact ↗
A single sentence of praise, set large enough that it carries the section on its own.

Client nameRole, Company

Say: "proof is one pull quote" — oversized quote, hairline, attribution. One strong quote beats a wall of three.

286

Pull quote with rule

testimonialquoteeditorial
unauditedReact ↗
A line about the work — short enough to read in one breath, specific enough to feel true.
Client name Role, Company

Say: "proof is <n>" — a single oversized quote with a rule accent; reach for it when one strong line carries more weight than a wall of three.

287

Quote with gradient portrait

testimonialquoteportrait
unauditedReact ↗
A line about the work — the kind of note that reads better in the client's own words than in a brief.
Client nameRole, Company

Say: "proof is <n>" — a quote paired with a gradient avatar instead of a photo; reach for it when you want a face-shaped anchor without a real headshot.

288

Three-up quote grid

testimonialquotesgrid
unauditedReact ↗
A line about the work, kept to one sentence.
Client nameRole, Company
A line about the work, kept to one sentence.
Client nameRole, Company
A line about the work, kept to one sentence.
Client nameRole, Company

Say: "proof is <n>" — three short quotes side by side; reach for it when you have more than one voice and want them read together, not stacked.

290

Four-up metric row

statsmetricscss
unauditedReact ↗
12Metric label
340kMetric label
98%Metric label
6Metric label

Say: "four numbers on a rule" — hairline-separated figures with unit labels. Replace the placeholders with real figures.

291

Hero figure

statstypeeditorial
unauditedReact ↗
Metric label
248 ▲ 12

A short line explaining what the figure counts and over what period.

Say: "one number, enormous" — a single figure carrying the whole section, with a delta chip. Use it when one number IS the story.

292

Account-created confirmation

authcssconfirmation
unauditedReact ↗

Account created

Your account is ready. A confirmation has been sent to the email on file.

Say: "account created" — an off-centre check mark and a calm confirmation line instead of a full-screen celebration; reach for it as the last step of a signup flow.

293

Provider button stack

authcssoauth
unauditedReact ↗

Continue with

or
Use email instead

Say: "provider stack" — a borderless stack of generic provider buttons above an email fallback; swap the generic marks for real providers once the integration exists.

294

Passkey prompt card

authcsspasskey
unauditedReact ↗
visual demo

Continue with a passkey

Use this device's biometric or screen lock instead of a password.

Say: "passkey prompt" — a biometric-style prompt with a pulsing ring, labelled as a visual demo; use it to show a passkey option exists before it's actually wired up.

295

Magic-link split

authcssemail
unauditedReact ↗

Sign in with a link

No password — a one-time link goes to your inbox.

Say: "magic-link split" — copy on one side, a single email field on the other, no password field at all; reach for it for a lower-friction, passwordless entry point.

296

Session gate card

authcssgate
unauditedReact ↗

Session required

Sign in to view this page.

Say: "session gate" — blurred generic content behind a lock and a sign-in prompt; reach for it wherever a page needs to say you're logged out without leaking what's behind it.

297

Sign-in card

authcssform
unauditedReact ↗

Welcome back

Sign in

Forgot password?

Say: "sign-in card" — an email-and-password card with generous spacing and a quiet accent on focus; the default when a client just needs a login screen.

298

Two-factor code entry

authcss2fa
unauditedReact ↗

Two-factor verification

Enter the 6-digit code

Say: "2FA code boxes" — six separated digit boxes with a resend link and nothing else competing for attention; reach for it right after a sign-in card.

299

Card CTA with rule

ctacardcss
unauditedReact ↗

Ready when you are.

A short line about the offer goes here.


Get in touch

Say: "CTA in a card, with a rule" — heading, a hairline, then an arrow link that slides on hover.

300

Full-bleed statement CTA

ctastatementcss
unauditedReact ↗

Open for work

Let's build something
worth talking about.

Say: "give me a statement CTA" — one big claim, full width, a single filled button underneath.

301

Inline form CTA

ctaformscss
unauditedReact ↗

Get the occasional update

Say: "CTA with one field" — a heading over a pill-shaped email capture, button built into the field.

302

Quiet text-link CTA

ctaeditorialcss
unauditedReact ↗

Enjoyed this? There's more where that came from.

Read the next piece

Say: "quiet CTA to close an article" — a hairline, a soft line of copy, one understated arrow link.

303

Split CTA

ctasplitcss
unauditedReact ↗

Have a brief?

Send the details and hear back within two days.

or book a call

Say: "split the CTA" — copy on the left, a divider, the button stack on the right.

304

Sticky CTA bar

ctastickycss
unauditedReact ↗
Free consult this week — limited slots

Say: "give me a sticky CTA bar" — a floating pill with copy and a button, shadowed like it's sitting above the page.

305

Horizon curtain footer

footereditorialcss
unauditedReact ↗

See you on
the next page.

Say: "end on a horizon" — the sign-off line sinks into a glowing line at the base, like the page is setting.

306

Legal status bar

footerlegalcss
unauditedReact ↗

Say: "just a legal bar" — one thin row: copyright and terms on one side, a status dot on the other.

307

Let's-talk closer

footereditorialcss
unauditedReact ↗

Say: "end the page on a big let's-talk" — the type does the selling; one line, one link, one accent word.

308

Ticker strip footer

footertickercss
unauditedReact ↗
Studio Say hello ↗

Say: "footer with a ticker strip" — a clipped, oversized headline band above a plain nav row; static, not scrolling — the type carries the motion cue.

309

Minimal sign-off footer

footerminimalcss
unauditedReact ↗

Say: "close it out with a minimal sign-off" — a hairline rule, a wordmark, three links, nothing competing for attention.

310

Newsletter inline footer

footernewsletterforms
unauditedReact ↗

Occasional notes, no spam.

One email a month, unsubscribe anytime.

Say: "footer needs a signup field" — copy on top, an underline-style email field with no visible box, in keeping with the rest of the page.

311

Outline wordmark footer

footerwordmarkcss
unauditedReact ↗

Say: "put the wordmark in the footer, huge" — an outlined giant mark behind a plain three-link nav.

312

Breadcrumb with cut chevrons

navcssbreadcrumb
unauditedReact ↗

Say: "chevron breadcrumb" — a trail separated by a sliced arrow shape instead of a plain ">"; reach for it on deep catalogue or docs hierarchies.

313

Centered wordmark bar

navcssminimal
unauditedReact ↗

a balanced flank on either side of the mark

Say: "centered wordmark nav" — a minimal top bar with the mark dead-centre and matched flanks either side; reach for it when the brand mark should read as the anchor, not a corner logo.

314

Icon rail

navcssicons
unauditedReact ↗

Say: "icon rail nav" — a compact vertical stack of icon-only buttons with a current-page marker; reach for it when space is tight and labels can go in a tooltip instead.

315

Segmented pill switcher

navcsstoggle
unauditedReact ↗

a real switch — click a segment

Say: "segmented pill switcher" — a real three-way radio control with a pill that slides to the checked option; reach for it for view toggles, not page navigation.

316

Sidebar nav with sliding marker

navcsssidebar
unauditedReact ↗

Say: "sidebar marker nav" — a vertical rail where a thin accent bar tracks the hovered or focused item; reach for it on dashboards and account settings panels.

317

Tab bar with sliding fill

navcsstabs
unauditedReact ↗

Say: "sliding tab bar" — a filled tab background that glides between sections on hover or focus; reach for it for a secondary nav under a page header.

318

Underline-slide nav

navcsshover
unauditedReact ↗

hover any item — the rule slides, it doesn't jump

Say: "underline-slide nav" — a single rule that glides beneath whichever link is hovered or focused; reach for it on a marketing nav where restraint is the point.

319

Aurora drift

backgroundgradientambient
unauditedReact ↗

Say: "aurora behind the hero" — slow colour fields that never repeat visibly. Costs nothing; no canvas, no GL.

320

Diagonal scan lines

backgroundtextureambient
unauditedReact ↗

Say: "diagonal scan behind it" — a fine rule texture that drifts. Reads technical without reading retro.

321

Dot matrix fade

backgrounddotsambient
unauditedReact ↗

Say: "dot matrix behind the section" — a quiet texture that gives flat panels somewhere to sit.

322

Hairline grid field

backgroundgridambient
unauditedReact ↗
structure

Say: "put the hairline grid behind it" — a drafting-table grid that reads as structure, not decoration.

323

Horizon glow

backgroundgradientambient
unauditedReact ↗

Say: "horizon glow under the fold" — a single light source at the base. The cheapest way to stop a black section reading as empty.

324

FAQ disclosure

contentfaqnative
unauditedReact ↗
A question someone actually asks

A direct answer in one or two sentences, without a preamble.

A second question

Another direct answer.

A third question

And another.

Say: "FAQ as disclosures" — native <details>, no JS, keyboard-accessible for free. The rows animate open on modern browsers.

325

Lede with rule

contenteditorialtype
unauditedReact ↗

Section

An opening paragraph set larger than the body, carrying the one idea the rest of the section explains.

Say: "open the section with the lede" — eyebrow, rule, oversized opening paragraph. The editorial entry point.

326

Spec ledger

contentspectable
unauditedReact ↗

Specification

Attribute
Value
Attribute
Value
Attribute
Value
Attribute
Value

Say: "spec it as a ledger" — label/value rows on hairlines. What a datasheet looks like when someone cared.

327

Numbered step ladder

contentprocesslist
unauditedReact ↗
01
First step

What happens, in one line.

02
Second step

What happens next.

03
Third step

And the outcome.

Say: "explain it as a step ladder" — numbered rows on a rule. For process, onboarding, or how-it-works.

328

Two-column with margin note

contenteditoriallayout
unauditedReact ↗

A subheading

Body copy sits in the wide column. The narrow column beside it carries a note, a definition, or a figure — the thing a footnote would have buried.

Say: "body copy with a margin note" — the printed-page move: a narrow annotation column beside the text.

329

Corner meta

chromemetalayout
unauditedReact ↗
Index / 04 2026 49°53′N Live

Say: "put the meta in the corners" — coordinates, status, index. The frame around the work that says a person set this.

330

Scroll cue

chromeaffordancemotion
unauditedReact ↗
Scroll

Say: "add the scroll cue" — a travelling dot on a hairline. NN/g: every act needs a visible continuation cue or it reads as the end.

331

Booking date and slot picker

formbookingcalendar
unauditedReact ↗

Say: "booking picker is <n>" — a week strip with one day selected above a grid of time slots; static and visual, wire real availability yourself.

332

File-drop zone

formuploaddropzone
unauditedReact ↗

Drag files here

or - up to 10MB

Say: "file drop zone is <n>" — a dashed drop target with an upload glyph and a browse fallback; visual only, wire the real upload yourself.

333

Multi-step form, progress rule

formmultistepprogress
unauditedReact ↗

Step 02 / 03

Project details

Say: "multi-step form is <n>" — step 2 of 3 with a segmented progress rule above the fields; reach for it when a long form needs to feel like a short one.

334

Newsletter form with consent line

formnewsletterconsent
unauditedReact ↗

Occasional notes.

Say: "newsletter with consent is <n>" — a short signup field with an inline opt-in line beneath; reach for it wherever a footer capture needs to look deliberate about consent, not bolted on.

335

Search field with filter chips

formsearchfilter
unauditedReact ↗

Say: "search with chips is <n>" — a search field with a row of togglable filter chips underneath; reach for it on any listing or catalog page.

336

Segmented choice picker

formsegmentedradio
unauditedReact ↗
Plan

Say: "segmented picker is <n>" — a pill-shaped radio group that reads as one control; reach for it instead of a dropdown when there are 2-4 real choices.

337

Split contact form with rule

formcontactsplit
unauditedReact ↗

Contact

Tell us what you're building.

A short line about response time goes here.

Say: "contact form is <n>" — a short pitch column beside a compact two-field form, divided by a single rule; reach for it when a contact block needs to feel considered, not bolted on.

338

Stacked brief intake form

formintakebrief
unauditedReact ↗

Project brief

Say: "intake form is <n>" — a vertically stacked brief form with a full-width textarea; reach for it when the ask is open-ended and needs room to write.

339

Feature with thumbs

gallerylayoutproduct
unauditedReact ↗

Say: "one big, four small" — the product-page arrangement. The thumbs mark the current frame.

340

Hairline quad grid

gallerygridlayout
unauditedReact ↗
01
02
03
04

Say: "four up on hairlines" — a 2×2 grid divided by rules, not gaps. Swap the gradient cells for real imagery.

341

Offset pair

galleryeditoriallayout
unauditedReact ↗
Caption line
Caption line

Say: "offset the pair" — two panels at different heights with a caption between. Reads composed rather than tiled.

342

Snap strip

galleryscrollnative
unauditedReact ↗
01
02
03
04

Say: "browse it as a snap strip" — native CSS scroll-snap, no carousel library, works with a trackpad and a thumb.

343

Hero with bordered spec panel

heropanelspec
unauditedReact ↗

Precision-built
for production.

Say: "give me a hero with a spec panel" — headline on one side, a bordered key/value panel on the other; reach for it when the product has facts worth stating up front, not just a claim.

344

Centred statement hero

herocenteredstatement
unauditedReact ↗

New — version two

One platform.
Every workflow.

Get started

Say: "give me a centred statement hero" — an eyebrow, one bold claim, a single CTA; reach for it when the product needs one clear sentence and nothing competing with it.

345

Hero with clipped line reveal

herorevealclip
unauditedReact ↗

Every pixel considered. Every detail shipped.

Say: "give me a hero with a clipped reveal" — each line of the headline slides up out of its own clipped row on load, staggered, CSS only; reach for it when the entrance itself should feel considered.

346

Minimal hero, one hairline

herominimaltype
unauditedReact ↗

Clarity first.

Everything else is a distraction.

Say: "give me a minimal hero" — type and a single hairline, nothing else; reach for it when the brand's confidence is the point and every extra element is noise.

347

Asymmetric hero, offset caption

heroasymmetriceditorial
unauditedReact ↗
Selected work — 2026

Interiors that hold their shape.

A line about the work, kept short.

Say: "give me an asymmetric hero" — a vertical caption run up the edge, the headline pushed off-centre; reach for it when the layout should feel art-directed, not centred-by-default.

348

Outlined wordmark hero

herowordmarkstroke
unauditedReact ↗
Studio

ATLAS

A line about the work, kept short.

Say: "give me an outlined wordmark hero" — a stroked, unfilled name fills the space, tag and caption underneath; reach for it when the brand's own name is the visual.

349

Hero with scrolling kicker strip

heromarqueekicker
unauditedReact ↗

Built for teams
who ship.

Say: "give me a hero with a kicker strip" — a thin, continuously scrolling label strip above the headline; reach for it when the page wants one line of motion without touching the type.

350

Split editorial hero

heroeditorialsplit
unauditedReact ↗

Design,
engineered
for scale.

Field
Product design
Based
Remote
Status
Open for work

Say: "give me a split editorial hero" — oversized type on one side, a hairline rule and meta list on the other; reach for it when the headline should read like a magazine opener, not a landing page.

351

Ambient glow media frame

mediaglowambient
unauditedReact ↗
Ambient preview

Say: "glow frame is <n>" — a media placeholder haloed by a slow-breathing ambient glow; reach for it when a single piece of media needs to feel premium, not just placed.

353

Media card with duration pill

mediacardduration
unauditedReact ↗
12:04

Episode title goes here


Series name · Part 3

Say: "media card is <n>" — a thumbnail card with a duration pill and a hairline under the title; reach for it in a video or course listing.

354

Editorial figure with caption

mediaeditorialfigure
unauditedReact ↗

Fig. 01A line describing what's shown, set like a photo credit.

Say: "editorial figure is <n>" — a tall image placeholder with a caption set underneath a hairline, like a print photo credit; reach for it in a long-form or case-study layout.

355

16:9 embed frame with chrome bar

mediaembedframe
unauditedReact ↗
yourproject.app/demo

Say: "embed frame is <n>" — a 16:9 panel with a faux browser chrome bar on top; reach for it to preview an embedded doc, map, or app without looking like a bare iframe.

356

Full-bleed media band with overlay title

mediafullbleedoverlay
unauditedReact ↗

Featured work

A project worth a longer look.

Say: "media band is <n>" — a full-width gradient band with a dark scrim and a large overlay title; reach for it as a section break between denser content.

357

Media grid with feature cell

mediagridgallery
unauditedReact ↗
Featured

Say: "media grid is <n>" — four placeholder cells where one spans double width as the feature; reach for it as a lightweight gallery or portfolio teaser.

358

Video frame with play affordance

mediavideoposter
unauditedReact ↗
2:41

A short walkthrough

One line about what's in the clip.

Say: "video block is <n>" — a gradient poster frame with a play button and a caption row; drop in a real video element later, the layout is the point.

359

Compact price strip

pricingstripsticky-bar
unauditedReact ↗

Full library, one price

$249

View plans

Say: "give me a compact price strip" — a thin bar with a label, price and one link; reach for it in a footer or a sticky bar where the price is a reminder, not the pitch.

360

Comparison table, hairline grid

pricingcomparisontable
unauditedReact ↗
FeatureBasicPro
Seats3Unlimited
Storage10GB500GB
API access

Say: "give me a pricing comparison table" — a hairline-ruled table of two plans across a few features; reach for it when the buyer needs to see the delta, not a headline number.

361

What's included checklist panel

pricingchecklistincluded
unauditedReact ↗

What's included

  • Unlimited projects
  • Team collaboration
  • Priority support
  • Custom exports

$79 one-time

Say: "give me a what's-included panel" — a checked list of what the price covers, with the number underneath; reach for it when the sell is completeness, not comparison.

362

Price with open breakdown disclosure

pricingdetailsdisclosure
unauditedReact ↗

$1,850 per project

See the breakdown
  • Materials$620
  • Labour$980
  • Margin$250

Say: "give me a price with a breakdown disclosure" — a headline price with a native, JS-free details toggle underneath that opens a line-item breakdown; reach for it when the number needs to defend itself on demand, not by default.

363

Quote panel with line-item breakdown

pricingquoteestimate
unauditedReact ↗

Estimate

#0142
  • Design$1,200
  • Build$2,400
  • Install$600
Total$4,200

Say: "give me a quote breakdown panel" — a numbered estimate with line items and a totalled amount; reach for it for services or project-based pricing rather than a subscription.

364

Single-price statement panel

pricingstatementsingle-plan
unauditedReact ↗

One plan. Everything included.

$39/month

Billed monthly. Cancel anytime.

Say: "give me a single-price panel" — one plan, one number, stated plainly; reach for it when there is nothing to compare and the offer is intentionally simple.

365

Three-tier pricing row

pricingtierscards
unauditedReact ↗

Starter

$19/mo

  • Core features
  • Email support
Most popular

Growth

$49/mo

  • Everything in Starter
  • Priority support

Scale

$99/mo

  • Everything in Growth
  • Dedicated support

Say: "give me a three-tier pricing row" — three plans side by side, the middle one raised and bordered in the accent; reach for it as the default pricing section when there's a clear plan to push.

366

Monthly/annual toggle, pure CSS

pricingtogglecheckbox-hack
unauditedReact ↗
Monthly Annual

$29/mo $290/yr

Annual saves two months.

Say: "give me a monthly/annual toggle" — a switch flips the displayed price between monthly and annual, built on a hidden checkbox with no JavaScript; reach for it when the plan itself doesn't change, only the billing period.

367

Labelled rule seam

seamdividertype
unauditedReact ↗
Next · the work

Say: "divide the acts with a labelled rule" — names the next act, which is what stops a long page feeling lost.

368

Sweeping rule seam

seamdividermotion
unauditedReact ↗

Say: "sweep a rule between acts" — a light travels the divider once. A seam you notice only if you look for it.

369

Alternating line stack

typelayouteditorial
unauditedReact ↗
Design the whole thing

Say: "stack the lines alternating" — left, right, left. Asymmetry does the work no centred block can.

370

Drop-cap lede

typeeditorialprint
unauditedReact ↗

Print set the first letter three lines deep for six hundred years, and the web spent twenty years pretending it could not. It can — initial-letter and a float both do it, and it still reads as care.

Say: "give the opening a drop cap" — the oldest signal that a page was set, not generated.

371

Rotating word headline

typemotioncss
unauditedReact ↗

Made for designersbuildersstudios

Say: "rotate the noun" — one headline, a word that cycles. Pure CSS keyframes, no JS, no layout shift.

372

Stroke headline

typedisplayeditorial
unauditedReact ↗

Built properly

Say: "outline the headline, fill one word" — hollow display type with a single solid word carrying the emphasis.

373

Noise wash

backgroundtexturegrain
unauditedReact ↗

Say: "wash it with noise" — an SVG turbulence grain over a gradient. The thing that stops flat colour looking cheap.

374

Topographic rings

backgroundpatternambient
unauditedReact ↗

Say: "topographic rings behind it" — concentric contours, like a survey map. Depth without a single image.

375

Vignette frame

backgroundframeambient
unauditedReact ↗

Say: "frame it with a vignette" — an inset hairline and a soft darkened edge. Makes any panel feel deliberate.

376

Callout band

contentcallouteditorial
unauditedReact ↗
Important

The one sentence in this section a reader must not skim past, set apart so they cannot.

Say: "pull it out as a callout band" — a bordered aside for the sentence that must not be skimmed past.

377

Definition pair

contentglossaryeditorial
unauditedReact ↗
A term
What it means, in one plain sentence.
Another term
Its meaning, equally plainly.

Say: "set the terms as definition pairs" — term and meaning, hung on a rule. For glossaries and explainers.

378

Timeline rail

contenttimelineprocess
unauditedReact ↗

An entry describing what happened.

The next entry.

Where things stand.

Say: "run it down a timeline rail" — dated entries on a vertical line. History, roadmap, or process.

379

Log and activity feed

dashboardactivitylog
unauditedReact ↗
  • Event description

    Just now
  • Event description

    2m ago
  • Event description

    1h ago

Say: "activity feed is <n>" — a timestamped list of events on a hairline timeline; reach for it as a log or audit panel on a dashboard. Layout only — no live events.

380

Notification and alert stack

dashboardalertnotification
unauditedReact ↗

Notice title

A short line of context.

Notice title

A short line of context.

Say: "alert stack is <n>" — a vertical stack of dismissible-looking alert cards, edge-marked by severity; reach for it as a notification panel on a dashboard.

381

Empty-state panel

dashboardempty-statecss
unauditedReact ↗

Nothing here yet

A line about what will show up once there's something to show.

Say: "empty state is <n>" — a dashed-frame panel with a mark, a line of copy, and one action; reach for it wherever a dashboard list has nothing in it yet.

382

Job queue list with state pills

dashboardqueuejobs
unauditedReact ↗
  • #001Job nameRunning
  • #002Job nameQueued
  • #003Job nameDone
  • #004Job nameFailed

Say: "job queue is <n>" — a stacked list of queued jobs each carrying its own state pill; reach for it for a worker or task-queue panel. Layout only — no live jobs.

383

KPI header row with filter bar

dashboardkpifilter
unauditedReact ↗
MetricMetric label
MetricMetric label
MetricMetric label

Say: "KPI header is <n>" — a row of metric tiles over a hairline filter bar; reach for it as the top of a dashboard page, above the working view. Layout only — wire real numbers in.

384

Settings form panel, grouped rows

dashboardsettingsform
unauditedReact ↗

General

Setting name

A short note on what it does.

Setting name

A short note on what it does.

Say: "settings panel is <n>" — a labelled group of setting rows, each with a control aligned right; reach for it as an account or config screen inside a dashboard.

385

Compact sidebar and content shell

dashboardsidebarshell
unauditedReact ↗

Panel title

Content goes here — the shell only frames it.

Say: "sidebar shell is <n>" — a narrow nav rail beside a content pane, hairline-divided; reach for it as the outer frame of a dashboard page before anything is dropped inside.

386

Data table with status column

dashboardtablestatus
unauditedReact ↗
Item nameOwnerStatus
Item nameOwnerActive
Item nameOwnerPending
Item nameOwnerPaused

Say: "status table is <n>" — a hairline-ruled table with a status-pill column; reach for it as the working list view of a dashboard. Layout only — no live rows.

387

Usage meter row with bars

dashboardusagemeter
unauditedReact ↗
Resource labelValue
Resource labelValue
Resource labelValue

Say: "usage meters are <n>" — a stack of labelled bar meters with a value readout; reach for it for quota or capacity panels. Layout only — no live measurement.

388

Hover-reveal caption

galleryhovermicro
unauditedReact ↗
Piece oneDetail line
Piece twoDetail line

Say: "captions arrive on hover" — the frame stays clean until someone looks closer.

389

Masonry three-column

gallerymasonrylayout
unauditedReact ↗

Say: "masonry it three across" — native CSS columns, uneven heights, no JS layout pass.

390

Quote over media frame

mediaeditorialoverlay
unauditedReact ↗
A line worth putting over a picture.Attribution

Say: "set the quote over the frame" — type on imagery with a legibility scrim, done properly.

391

Anchor list with progress

navindexchrome
unauditedReact ↗

Say: "index the page down the side" — anchors with an active marker. Orientation is what stops long pages feeling long.

392

Mega-menu columns

navmenulayout
unauditedReact ↗
FeaturedA highlighted destination

Say: "open a mega menu" — grouped columns with a featured cell. What a real catalogue navigation looks like.

393

Lead-time and availability strip

productavailabilitylead-time
unauditedReact ↗
Status label
Value Lead time

Say: "availability strip is <n>" — a thin status line with a pulse dot and a lead-time readout; reach for it under the price to set delivery expectations.

394

What's in the box, itemised panel

productunboxingitemised
unauditedReact ↗

What's in the box

  1. Item name
  2. Item name
  3. Item name
  4. Item name

Say: "in the box is <n>" — a numbered itemised list of what ships, each line with a quantity; reach for it right after the buy button to set expectations before checkout.

395

Two-option comparison panel

productcomparisoncss
unauditedReact ↗

Option A

AttributeValue
AttributeValue
vs

Option B

AttributeValue
AttributeValue

Say: "compare two panel is <n>" — two options side by side split by a centre rule, each with its own short spec stack; reach for it when a buyer is choosing between exactly two things.

396

Product detail accordion

productaccordiondetails
unauditedReact ↗
Description

A line about the work — what it is, not why it's special.

Materials

A short note on what it's made from.

Care

A short note on upkeep.

Say: "product accordion is <n>" — native <details> panels for spec sections, no JS, keyboard and screen-reader correct by default; reach for it when there's more product copy than fits flat.

397

Feature callout row, hairline numbering

productfeaturesnumbered
unauditedReact ↗
01

Feature name

A short line about it.

02

Feature name

A short line about it.

03

Feature name

A short line about it.

Say: "feature row is <n>" — three callouts numbered on a hairline, no icons required; reach for it to state what the product does in short claims.

398

Product hero with spec sidebar

productherospec
unauditedReact ↗

Product name

Item name
in two lines

A line about the work — what it is, not why it's special.

Say: "product hero with spec sidebar" — a large product statement on the left, a hairline-ruled spec column on the right; reach for it as the top of a single-product page.

399

Materials and finish list with swatch chips

productmaterialsfinish
unauditedReact ↗

Materials

  • Material namePrimary
  • Material nameFrame
  • Material nameHardware

Say: "materials list is <n>" — a stacked list of materials, each with a small swatch chip and a value; reach for it to spell out what a thing is made of.

400

Size and dimension selector

productsizedimensions
unauditedReact ↗
Width
Value
Depth
Value
Height
Value

Say: "size selector is <n>" — a row of size buttons over a live dimension readout, radio inputs only; reach for it wherever a product ships in more than one size.

401

Variant swatch picker

productvariantswatch
unauditedReact ↗

Finish — Walnut

Say: "swatch picker is <n>" — a colour/finish choice as real radio inputs with no JS; reach for it wherever a product has variants to choose between.

402

Angled slash divider

seamdividercss
unauditedReact ↗
Act 01
Act 02

Say: "cut the seam on an angle" — two acts split by a diagonal clip-path, with a thin accent stroke tracing the cut.

403

Arc curve divider

seamdividercss
unauditedReact ↗
AboutSection one ends here
ServicesSection two begins

Say: "curve the seam" — the next section rises as a smooth dome over the one above it, a single border-radius ellipse, no SVG.

404

Plan gate

authgateupgrade
unauditedReact ↗

Available on a paid plan

This section is part of the full library. Your current plan does not include it.

Say: "gate it by plan" — a locked panel that says exactly what unlocks it. Honest gating, not a tease.

405

Back-to-top affordance

chromenavigationcss
unauditedReact ↗

Say: "add back-to-top" — a floating round button with an up-chevron, the kind that only appears once you have scrolled.

406

Corner glow pair

backgroundgradientambient
unauditedReact ↗

Say: "light the two corners" — opposing soft sources. Gives a flat panel a direction without a shape in it.

407

Perspective floor

backgroundgriddepth
unauditedReact ↗

Say: "put a perspective floor under it" — a receding grid plane. Depth from two gradients and a transform.

408

Checklist panel

contentlistpanel
unauditedReact ↗

What this covers

  • A first item
  • A second item
  • A third item
  • Not included

Say: "list it as a checklist" — ticked rows in a bordered panel. For scope, inclusions, or requirements.

409

Quote break

contentquoteeditorial
unauditedReact ↗

A sentence lifted out of the body copy and set at three times its size.

Say: "break the copy with a quote" — a full-width interruption between paragraphs. Resets the reader's attention.

410

Two-up content cards

contentcardslayout
unauditedReact ↗
Guide

A title

One line about what it covers.

Read →
Note

A title

One line about what it covers.

Read →

Say: "two content cards side by side" — a pair of bordered panels with a kicker, a title and a link.

411

Floating status pill

chromestatuscss
unauditedReact ↗
EditorUntitled draft
All changes saved

Say: "float a status pill" — a small pinned badge with a pulsing dot for save state, connection state, or build state.

413

Gradient fade-out band

seamfadecss
unauditedReact ↗

Say: "fade the section out" — content dissolves into the page background before the next act starts clean.

414

Hanging punctuation quote

typequotecss
unauditedReact ↗
Good typography is invisible until it is missing, and then it is the only thing anyone notices.
— a line about the work

Say: "hang the quote mark" — the opening quotation mark sits outside the text block instead of eating into the first line.

415

Justified two-column text

typecolumnscss
unauditedReact ↗
Notes on materials
Considered work rarely announces itself. It shows up in the width of a margin, the weight of a rule, the number of columns a paragraph is allowed to run before it feels crowded. None of it is loud, and that is rather the point of it entirely.

Say: "set the body in two justified columns" — a magazine-style column split with a hairline rule between them.

417

Theme switcher pill row

chromeswitchercss
unauditedReact ↗

Say: "add a theme switcher pill" — three icon options in a segmented pill with a sliding accent behind the active one.

418

Marked phrase, gradient underline

typehighlightcss
unauditedReact ↗

Most rebuilds fail for a boring reason: nobody wrote down the actual goal, so the new version repeats the same drift.

Say: "mark a phrase in the text" — one phrase gets a gradient underline instead of a full highlight box.

419

Aspect ratio row

medialayoutgrid
unauditedReact ↗

Say: "mix the aspect ratios" — portrait, square, landscape in one row. Rhythm instead of a uniform grid.

420

Split media and caption

mediaeditoriallayout
unauditedReact ↗
Figure 01

A caption that explains what is being shown rather than repeating the headline.

Say: "media left, caption right" — the editorial pairing, with the caption doing real work.

421

Mono label / display pairing

typelabelcss
unauditedReact ↗
Field notes / 04

Design as a decision log, not a deliverable.

Say: "pair a mono label with a display line" — a small uppercase eyebrow over a large display headline, the standard editorial stack.

422

Command hint bar

navsearchchrome
unauditedReact ↗

Say: "hint the command palette" — a fake-input bar advertising ⌘K. The cheapest discoverability there is.

423

Numbered act marker

seamdividercss
unauditedReact ↗
Act
02 / 07
Materials & finishes

Say: "mark the act on the rule" — a numbered pill (02 / 07) riding an otherwise plain hairline, placed off-centre.

424

Numbered pull statement

typestatementcss
unauditedReact ↗

Every screen starts from the same six-column grid, so nothing on the page is placed by feel.

Say: "pull a numbered statement" — an oversized index numeral beside a short claim, the editorial way to call out one idea.

425

Overlapping panel seam

seamoverlapcss
unauditedReact ↗
OverviewFull-width section content sits here, calm and unhurried.
Next upCase studies

Say: "let the next section peek up" — a raised card for the next act overlaps the bottom of the one above it.

426

Oversized glyph graphic

typegraphiccss
unauditedReact ↗
DesignBuild

Say: "put an oversized glyph behind the text" — a giant ampersand or numeral used as background texture, not as a letterform.

427

Numbered quote pair

testimonialproofeditorial
unauditedReact ↗
01

A short line of praise, kept to one sentence.

Client name · Role
02

A second line, equally short.

Client name · Role

Say: "two numbered quotes" — indexed like footnotes. Reads as record rather than marketing.

428

Reading progress bar

chromeprogresscss
unauditedReact ↗
Article — Section 362%

Say: "add a reading progress bar" — a hairline that fills as the page is read, with a percentage readout.

429

Side page index

chromenavigationcss
unauditedReact ↗

Say: "add a side page index" — a vertical rail of dots and labels down the edge, the active section shown larger and lit.

430

Delta rows

statsmetricstable
unauditedReact ↗
Metric label1,204▲ 4.2%
Metric label318▼ 1.1%
Metric label96▲ 0.8%

Say: "show the movement, not just the number" — value plus its change, on hairlines.

431

Ring gauge

statsgaugesvg
unauditedReact ↗
72%
Metric label

Say: "show it as a ring gauge" — a conic-gradient dial with the figure inside. One number, one glance.

432

Stepped edge seam

seamdividercss
unauditedReact ↗
Feature grid
Pricing

Say: "step the seam" — a stacked, stepped edge between two backgrounds instead of a straight line, like a ticket stub.

433

Organisation switcher

authaccountmenu
unauditedReact ↗
Signed in as
AOrganisation oneOwner
BOrganisation twoMember

Say: "switch organisations" — the account menu every multi-tenant product needs and most get wrong.

434

Announcement strip with dismiss

chromeannouncementbanner
unauditedReact ↗

UpdateNew features shipped this week, see what changed.

Say: "put the announcement strip up top" — a dismissible bar for one piece of real news; reach for it over a banner ad when there is something worth surfacing without demanding a click.

435

Breadcrumb and share row

chromebreadcrumbshare
unauditedReact ↗

Say: "breadcrumb and share row is <n>" — trail on the left, copy-link and share on the right; reach for it on any deep content page that needs both orientation and a way out.

436

Cookie consent bar

chromeconsentcookies
unauditedReact ↗

This site uses cookies for analytics and to remember your preferences. Choose what you are comfortable with.

Say: "cookie bar is <n>" — a plain-language consent notice with accept-all and necessary-only weighted the same; reach for it when the site needs a real cookie notice, not a dark pattern.

437

Corner social link cluster

chromelinkscorner
unauditedReact ↗

Say: "corner link cluster is <n>" — a vertical stack of generic icon buttons pinned to a corner; reach for it for email, profile, and outbound links without borrowing anyone's brand mark.

438

Footer-anchored contact pill

chromecontactanchored
unauditedReact ↗

Say: "anchor a contact pill" — a small pill pinned to the corner with a message icon; reach for it as a lighter-weight alternative to a full chat widget.

439

Skip-to-content link

chromeaccessibilityfocus
unauditedReact ↗
Skip to main content

Hidden off-screen by default, appears on keyboard focus. Shown here for preview.

Say: "wire up skip to content" — off-screen until keyboard focus, then it snaps into view; reach for it on any page with real navigation chrome above the main content.

440

Sticky section header

chromestickynavigation
unauditedReact ↗
02Materials and finishNext: Process →

Say: "give me the sticky section header" — a slim pinned bar naming the current section with a thin progress rule beneath; reach for it on long single-page documents so a reader always knows where they are.

441

Saved and syncing status chip

chromestatusfeedback
unauditedReact ↗
Syncing changesAll changes saved

Say: "add the sync status chip" — a small pill for syncing and saved states, a pulsing dot on one, a check on the other; reach for it anywhere a person edits something and needs to trust it was kept.

442

Comparison columns

contentcomparelayout
unauditedReact ↗

This way

What it gives you.

What it costs.

That way

What it gives you.

What it costs.

Say: "put them side by side" — two columns, one rule, no winner declared. Let the reader decide.

443

CTA with availability line

ctaavailabilitystatus
unauditedReact ↗
Available for new work

Have something in mind?

Say: "give me a CTA with an availability line" — a small pulsing status dot and a plain availability line sit above the ask; reach for it when the CTA should feel like a real person answering, not a form.

444

Boxed book-a-call CTA

ctacallbox
unauditedReact ↗

Book a call

Twenty minutes, no deck, just the project.

Say: "give me a boxed book-a-call CTA" — an icon, a heading and one button sit inside a bordered card; reach for it when booking a call is the single next step you want on the page.

445

Bordered panel CTA with two actions

ctapanelactions
unauditedReact ↗

Two ways to start.

Pick whichever fits how you like to work.

Say: "give me a CTA panel with two actions" — a bordered card holding one filled and one outlined button side by side; reach for it when visitors split roughly evenly between two next steps.

446

CTA with what-happens-next checklist

ctachecklistprocess
unauditedReact ↗

What happens after you send it

  • A short reply confirming we received it
  • A call to talk through scope and fit
  • A written plan, priced, for you to review

Say: "give me a CTA with a next-steps checklist" — a short numbered list of what happens after someone clicks, then the button; reach for it when the ask is unfamiliar and the visitor needs to see the path before they'll commit.

447

Full-width slab CTA

ctaslabfullwidth
unauditedReact ↗

Bring the brief. We'll bring the plan.

Say: "give me a full-width slab CTA" — a bordered band runs edge to edge with the statement and button sitting inside it; reach for it when the CTA needs to read as a hard stop in the page, not a soft close.

448

CTA over a gradient band

ctagradientband
unauditedReact ↗

Open collaboration

Let's shape the next one together.

Say: "give me a CTA on a gradient band" — the ask sits inside a full-width rounded band built from the accent colours; reach for it when the CTA should look like its own coloured module, not another text block.

449

CTA with countdown-style meta line

ctametacss
unauditedReact ↗

Next cohort

A line about when the next round starts.

Say: "give me a CTA with a countdown line" — a monospace digit readout under the heading, styled like a timer without claiming real urgency; reach for it when the ask needs a ticking visual, not a scarcity claim.

450

Minimal arrow-link CTA row

ctaminimallinks
unauditedReact ↗

Say: "give me a minimal arrow CTA row" — just two understated arrow links side by side, no button, no card; reach for it when the page has already made its case and the close should be quiet.

451

CTA with phone and email pair

ctacontactcss
unauditedReact ↗

Prefer to talk it through?

CallAdd your number Emailhello@example.com

Say: "give me a CTA with phone and email" — a phone slot and a direct email link sit side by side with a hairline between them; drop your own number in and reach for it when the fastest path to a reply is just handing it over.

452

CTA with quiet secondary link

ctasecondarycss
unauditedReact ↗

Ready to start?

Tell us about the space and the timeline.

or see how it works first

Say: "give me a CTA with a quiet second link" — a filled primary button with an understated text link underneath for the less committed visitor; reach for it when you want one clear default without closing the door on browsing first.

453

Diff summary

dashboarddiffops
unauditedReact ↗
path/to/file.ts+42−7
path/to/other.css+9−31
path/to/third.json+3−0

Say: "summarise the diff" — files changed with added/removed counts. The row every review starts from.

454

Run timeline

dashboardtimelineops
unauditedReact ↗
build0.9s
test1.8s
deploy1.2s

Say: "show the run as a timeline" — stage bars on a shared scale. Where the time actually went.

455

Two-tone split footer

footerlayoutcontrast
unauditedReact ↗
Get in touchhello@example.com

Say: "split the footer in two tones" — a contact half and a legal half, divided by a rule.

456

Address form, grouped fields

formaddressshipping
unauditedReact ↗

Shipping address

Say: "address form is <n>" — street on its own row, city and state paired, postal and country paired; reach for it for shipping or billing address capture.

457

Compact two-field row with submit

formcompactcontact
unauditedReact ↗

Say: "compact two-field row is <n>" — name and email inline with a trailing button; reach for it as the smallest contact ask that still gets a name.

459

Payment card form (visual only)

formpaymentcheckout
unauditedReact ↗

Preview only, no payment is processed here

•••• •••• •••• 0000CARDHOLDER NAME00/00

Say: "payment card is <n>" — a card-face preview above number, expiry, and CVC fields, clearly marked as a visual only; reach for it to block out a checkout step before real payment wiring exists.

460

Rating scale input row

formratingsurvey
unauditedReact ↗
How likely are you to recommend this?
Not likely
Very likely

Say: "rating scale is <n>" — a numbered 1-to-5 row between two end labels, built on real radio inputs; reach for it for an NPS-style question.

461

Tag and keyword chip input

formtagschips
unauditedReact ↗
Keywords
EditorialMinimalDark mode

Say: "tag input is <n>" — removable keyword chips with a trailing text field; reach for it wherever someone builds a list of their own terms.

462

Centre-rule diptych

gallerylayouteditorial
unauditedReact ↗

Say: "split it into a diptych with a centre rule" — two frames divided by a hairline instead of a gap, reads as one composed pair.

463

Corner index frame

gallerylayoutdetail
unauditedReact ↗
Fig. 01

Say: "tag the corner with a figure index" — a single frame with a museum-label tab hanging off its top edge.

464

Filmstrip with scrub rail

gallerymotioncss
unauditedReact ↗

Say: "run it as a filmstrip with a scrub rail" — a row of frames over a rail whose marker drifts, visual only, no dragging.

465

Full-bleed quad band

gallerylayoutgrid
unauditedReact ↗

Say: "run four across, full bleed" — no side padding, no gaps, four equal frames butted edge to edge.

466

Mixed orientation pair

gallerylayouteditorial
unauditedReact ↗

Say: "pair a portrait with a landscape" — deliberately different aspect ratios sitting on the same baseline.

467

Scattered frame stack

gallerylayouthover
unauditedReact ↗

Say: "scatter them like a photo pile" — three overlapping frames at small rotations, one lifts on hover.

468

Span-cell grid

gallerygridlayout
unauditedReact ↗

Say: "let one cell span two columns" — a three-column grid where a single frame breaks the rhythm on purpose.

469

Diagonal split hero

herosplitdiagonal
unauditedReact ↗
Studio

Built at
an angle.

A line about the work, kept short.

Say: "give me a diagonal split hero" — two colour panels meet on a diagonal seam instead of a straight column; reach for it when a plain left/right split feels too safe.

470

Hero with inline email capture

herocaptureemail
unauditedReact ↗

Get the next drop first.

A line about what you'll get, kept short.

Say: "give me a hero with an email capture" — the headline sits directly above a pill-shaped signup field; reach for it when the hero's whole job is the first conversion, not just the pitch.

471

Full-bleed gradient hero

herogradientcentered
unauditedReact ↗

Field notes

Built in colour,
not just code.

A line about the work, kept short.

Say: "give me a full-bleed gradient hero" — a slow-drifting colour field fills the whole section behind centred type; reach for it when the brand has a strong palette and the background should carry some of the energy.

472

Hero with oversized numeral

heronumeraleditorial
unauditedReact ↗

The first
principle.

A line about the work, kept short.

Say: "give me a hero with a big numeral" — a huge low-opacity number sits behind the headline like a section mark; reach for it when the page is part of a numbered series.

473

Hero with bottom meta row

herometafooter-row
unauditedReact ↗

Independent studio,
open for briefs.

City, Region Since — Open for work

Say: "give me a hero with a bottom meta row" — the headline sits alone up top, a small divided row of location/date/status runs along the bottom; reach for it when the hero should read like a masthead.

474

Hero with offset image panel

heroimageoffset
unauditedReact ↗

Space, considered
before it's built.

A line about the work, kept short.

Say: "give me a hero with an offset image panel" — a placeholder image frame sits offset from the copy, overlapping its grid line; reach for it when the layout needs a photo but should still feel art-directed.

475

Hero with rotating word line

herorotatorcss
unauditedReact ↗

Built for

Say: "give me a hero with a rotating word" — one word in the headline cycles through a short list on a CSS loop, no JS; reach for it when the product serves more than one audience and the headline should say so.

476

Stacked type-pairing hero

herotypographyeditorial
unauditedReact ↗

SECTION — 01 / STUDY

Form follows
a quieter logic.

Editorial · Typography · Layout

Say: "give me a hero with a serif/mono pairing" — an italic display line stacked between two small monospace labels; reach for it when the typography itself should carry the editorial tone.

477

Hero with booking status strip

herostatusbooking
unauditedReact ↗
Now booking — new projects

Studio time,
on your schedule.

Say: "give me a hero with a booking status strip" — a small boxed pill with a live-looking status dot sits above the headline; reach for it when availability is part of the pitch.

478

Hero with two-line mask reveal

herorevealmask
unauditedReact ↗

Quiet on the surface. Precise underneath.

Say: "give me a hero with a mask reveal" — two lines wipe into view from behind a clip-path mask on load, CSS only; reach for it when the entrance should feel like a curtain, not a slide-up.

479

Media chapter list

mediavideolist
unauditedReact ↗
00:00Opening
02:14The middle part
07:41Closing

Say: "chapter the video" — timestamps beside titles. Turns a long recording into something navigable.

480

Compact nav bar with divider

navbarminimal
unauditedReact ↗

Say: "one bar, divided" — mark on the left, links right, a hairline under. The default that never looks wrong.

481

Per-seat calculator layout

pricingseatscalculator
unauditedReact ↗

Per-seat pricing

$9/seat/mo×12seats=$108/mo

Adjust seats to see the total scale, billed monthly, cancel anytime.

Say: "per-seat calculator is <n>" — rate times seat count equals total, laid out as a formula with a seat slider beneath; reach for it for any per-user SaaS price.

482

Care instructions

productspeclist
unauditedReact ↗

Care

  • A plain instruction line
  • A second instruction
  • A third, with the caveat

Say: "spell out the care" — symbols and plain rules. The page a buyer returns to after the sale.

483

Provenance chain

productprovenancetrust
unauditedReact ↗
OriginWhere it starts
MadeWhere it is built
CheckedBefore it ships

Say: "show the chain" — origin to delivery as linked stages. Where a claim about sourcing becomes checkable.

484

Rating summary

testimonialproofrating
unauditedReact ↗
4.8/ 5

Based on a placeholder count of reviews

Say: "summarise the rating" — a score, a scale, and a count. Generic placeholders; swap in your real figures.

485

Chevron notch seam

seamdividerdetail
unauditedReact ↗

Say: "notch the seam with a chevron" — a downward chevron sitting on the rule, marking the break without a label.

486

Continues-below descend cue

seammotionscroll
unauditedReact ↗

Say: "cue that it continues below" — a short line and a drifting chevron pointing down, the scroll invitation that isn't an animated bounce.

487

Double hairline with centred dot

seamdividerminimal
unauditedReact ↗

Say: "run two hairlines with a dot between" — a quieter seam than one rule, for a break that shouldn't shout.

488

Rotated stamp-tag seam

seamdividerdetail
unauditedReact ↗
Next

Say: "stamp a rotated tag on the seam" — a small angled label sitting on the rule like a marginal note.

489

Tone-shift band seam

seamdividerlayout
unauditedReact ↗
Section tone shifts

Say: "shift the tone at the seam" — the section background itself changes across the band, not just a rule.

490

Progress ladder

statsprogresslist
unauditedReact ↗
Label one78
Label two52
Label three31

Say: "ladder the progress" — labelled bars stacked on a shared scale, so the comparison is the point.

491

Headline with footnote annotation

typeeditorialdetail
unauditedReact ↗

The room, reconsidered1

1 A note about the approach, not a stat.

Say: "put a footnote mark on the headline" — a superscript reference and its note, the kind of detail that reads as set, not generated.

492

Numbered chapter heading

typeeditoriallayout
unauditedReact ↗
03
Chapter

The build phase

Say: "give it a chapter number" — a big set numeral, a kicker, and the title, the way a printed section opener reads.

493

Gradient-filled word

typegradientcss
unauditedReact ↗

Every plan starts grounded, then gets ambitious.

Say: "fill one word with the gradient" — background-clip:text on a single word inside a plain sentence, built from the two accent tokens.

494

Hanging-indent paragraph set

typeeditorialprint
unauditedReact ↗

01Start with the constraint, not the mood board.

02Every screen earns its place on the page or it doesn't ship.

Say: "set it with a hanging indent" — numbered lines whose wrapped text tucks under the mark, a citation-list rhythm.

495

Two-size stacked lockup

typedisplayeditorial
unauditedReact ↗
Studio for people who build things

Say: "stack a huge word over a tiny one" — a display-size word with a mono caption underneath, the ratio doing the hierarchy.

496

Vertical label beside headline

typelayouteditorial
unauditedReact ↗
Chapter 01

Built for the long project

Say: "run a vertical tag beside the headline" — a rotated writing-mode label doing the job a kicker usually does, without eating a line.

497

Weighted clause line

typeeditorialcss
unauditedReact ↗

Most of what we do is invisible — this is the part that isn't.

Say: "weight one clause, not the size" — a single sentence where the emphasis clause jumps in font-weight, not size, so the page stays quiet.

498

Wide letter-spaced label row

typelabelcss
unauditedReact ↗
Design Build Ship Repeat

Say: "spread the labels edge to edge" — a bordered row of words at maximum letter-spacing, justified to the full width.

499

Print header

chromeprintdocument
unauditedReact ↗
Document titleREF-0001
Prepared forClient name2026

Say: "give it a print header" — document title, reference and date on a rule. For quotes, specs and anything a client saves as a PDF.

500

Section counter

chromeorientationmeta
unauditedReact ↗
03/07Pricing

Say: "count the sections" — current over total, fixed in a corner. Orientation is what stops a page feeling endless.

502

Inline-label rows

formlayoutcompact
unauditedReact ↗

Say: "labels on the same line" — a dense form that still reads. For settings and short intakes.

503

Question opener

herotypeeditorial
unauditedReact ↗

Who actually handles this?

The answer, stated plainly and without a preamble, in one line.

Start here →

Say: "open with the question they came with" — their problem in their words, answered underneath.

504

Currency and region switcher row

pricingcurrencyregion
unauditedReact ↗

$42/mo

Prices shown in your selected currency, billed monthly.

Say: "currency switcher row is <n>" — a pill group for currency choice above the price it affects; reach for it for pricing pages that serve more than one region.

505

Enterprise talk-to-us panel beside two tiers

pricingenterprisetiers
unauditedReact ↗

Starter

$29/mo

  • Core features
  • Single workspace

Team

$79/mo

  • Everything in Starter
  • Shared workspaces

Enterprise

Custom pricing

  • Volume seats
  • Dedicated support

Say: "enterprise panel is <n>" — two priced tiers beside a dashed talk-to-us panel with no number in it; reach for it when the top tier is a conversation, not a price.

506

Fee transparency

pricingtrustbreakdown
unauditedReact ↗
Supplier cost$820
Our fee 20%$164
You pay$984

Say: "show the fee openly" — cost, margin and total, stated rather than buried. Education-first pricing.

507

One-off versus subscription pair

pricingsubscriptioncomparison
unauditedReact ↗

One-time

$249once

Own it outright, no renewals.

or

Subscription

$19/mo

Lower upfront cost, cancel anytime.

Say: "one-off versus subscription is <n>" — two offers either side of a plain or; reach for it whenever a buyer can pay once or pay monthly for the same thing.

508

Price with struck-through comparison

pricingcomparisoncss
unauditedReact ↗

Plan price

$40/mo$28/mo

Example only, swap in your own current and previous rate.

Say: "struck price comparison is <n>" — a struck-through figure beside the current one, labelled as an example to fill in; reach for it as the template for a real price change, not a fabricated sale.

509

Usage-tier ladder

pricingusagemetered
unauditedReact ↗

Usage-based pricing

  • 0 to 1,000 requestsFree
  • 1,001 to 10,000$0.01 / req
  • 10,001 to 100,000$0.006 / req
  • 100,000+Talk to us

Say: "usage ladder is <n>" — a vertical rail of usage bands from free up to a custom top rung; reach for it for metered or consumption-based pricing.

510

Inline mention line

testimonialprooftype
unauditedReact ↗

Used by a placeholder number of teams to do the thing this product does.

Say: "mention it inline" — proof folded into a sentence rather than boxed out. The least salesy form there is.

511

Stepped seam

seamdividergeometric
unauditedReact ↗

Say: "step down into the next act" — a staircase edge. Geometry instead of a straight line.

512

Stitched rule

seamdividertexture
unauditedReact ↗

Say: "stitch the seam" — a dashed rule with a solid centre run. Reads bound rather than cut.

513

Comparison pair

statscomparemetrics
unauditedReact ↗
Before18
After4

Say: "put the two numbers head to head" — before and after with the gap between them stated.

514

Marker underline

typehighlighteditorial
unauditedReact ↗

A sentence where this specific phrase is what you want remembered.

Say: "mark the phrase" — a hand-drawn-feeling underline under the words that matter.

515

Focus ring

chromea11yfocus
unauditedReact ↗

Tab through these

Link

Say: "make the focus ring visible" — the accessibility detail almost everyone deletes. Tab into it and see.

516

Progress CTA

ctaprogressform
unauditedReact ↗

Three questions left

Say: "show them how far in they are" — a progress rule above the ask. Nearly-done is the strongest reason to finish.

517

One question at a time

formconversationalintake
unauditedReact ↗
02 →

Press Enter ↵

Say: "ask one question at a time" — the typeform shape. Less intimidating than a wall of fields.

518

Index-card hero

heroeditorialmeta
unauditedReact ↗
A project titleREF / 001
DisciplinePlaceholder
Year2026
StatusActive

Say: "open like an index card" — title, ref, and three meta rows. Archival rather than promotional.

519

Marquee band hero

heromarqueemotion
unauditedReact ↗
Make it move·Make it move·

A single line underneath doing the explaining.

Say: "run the title as a band" — the headline itself travels. Loud, and it earns the noise by being the only motion.

520

What changes by tier

pricingcompareclarity
unauditedReact ↗
SoloStudio
Seats15
PublishYes
SupportEmailPriority

Say: "show only what CHANGES between tiers" — the rows that are identical are noise. Cut them.

521

Case strip

testimonialproofcase
unauditedReact ↗
Case
WhatA placeholder engagement
ChangeWhat moved
OverA period

Say: "strip the case study down" — what, what changed, over how long. Three facts beat three paragraphs.

522

Inset corner seam

seamgeometricdivider
unauditedReact ↗
Next

Say: "notch the corner" — the next panel steps in from one edge. A seam with a direction.

523

Share split bar

statsproportionchart
unauditedReact ↗
Label A 46%Label B 31%Label C 23%

Say: "split one bar by share" — proportions in a single rule, legend underneath. Clearer than a pie, always.

524

Lead and dek

typeeditorialhierarchy
unauditedReact ↗

A heavy opening line

A lighter second line, longer and set smaller, carrying the detail the first line deliberately left out.

Say: "set a lead and a dek" — the newspaper pairing: a heavy line, then a lighter one that carries the detail.

525

New device sign-in approval

authsecuritydevice
unauditedReact ↗

New sign-in detected

DeviceValue
LocationValue
TimeValue

Say: "device approval is <n>" — a new-sign-in card with device rows and Approve/Deny; the visual only, wire it to your own session security.

526

Organisation invite accept card

authinviteorganisation
unauditedReact ↗

Person name invited you to join Organisation name

Role — Member

Say: "invite accept card is <n>" — an avatar-led banner naming who invited you and to where, with Accept/Decline; the visual only, wire it to your own invite system.

527

Account lockout cooldown notice

authlockoutsecurity
unauditedReact ↗

Too many attempts

For your security, sign-in is paused. Try again in 4:32.

Contact support instead

Say: "lockout notice is <n>" — a too-many-attempts card with a static cooldown readout and a depleting bar; the visual only, wire it to your own rate-limit state.

528

Multistep signup with step indicator

authsignupsteps
unauditedReact ↗
  1. Account
  2. Profile
  3. Confirm

Say: "multistep signup is <n>" — a three-step indicator over the current step's field; the visual only, wire it to your own signup flow.

529

Password field with strength meter

authpasswordstrength
unauditedReact ↗

Strong

  • At least 8 characters
  • Contains a number
  • Contains a symbol

Say: "strength meter is <n>" — a segmented strength bar and a requirements checklist under a password field; a static visual demo, wire it to your own validation.

530

Recovery codes with checkbox reveal

authrecoverybackup-codes
unauditedReact ↗

Recovery codes

7F2K-9QRT 3H8D-XN41 L05C-VT2M 9WQZ-E6BJ

Say: "recovery codes are <n>" — a blurred code grid that sharpens when a checkbox is checked, pure CSS via :has(); reach for it wherever backup codes need a deliberate look-before-you-copy step.

531

Account type selection cards

authonboardingcards
unauditedReact ↗

Say: "role select cards are <n>" — three radio-driven cards for choosing an account type, no JS; reach for it as the step right after signup, before the workspace exists.

532

Scrollable terms consent gate

authconsentterms
unauditedReact ↗

A block of terms copy would sit here — long enough to need scrolling, short enough for a demo.

A second paragraph continuing the same placeholder text so the box has enough content to scroll.

A third paragraph, so the fade at the bottom edge has something to fade against.

Say: "terms consent gate is <n>" — a fixed-height scrollable terms box with a fade edge, gating a dimmed Continue button until the checkbox is checked, via :has(); reach for it wherever agreement has to come before access.

533

Blockout collage

backgroundgeometriceditorial
unauditedReact ↗

Say: "block it out like a collage" — three solid rectangles overlapped at low opacity, one rule crossing through. Bauhaus, not gradient.

534

Conic spoke wheel

backgroundconic-gradientambient
unauditedReact ↗

Say: "spin a spoke wheel behind it" — repeating-conic-gradient spokes turning once a minute. Reads as machined, not decorative.

535

Corner register marks

backgroundtechnicalframe
unauditedReact ↗
align

Say: "put registration marks in the corners" — a print-shop crosshair and four bracket corners. Structure without a single gradient.

536

Facet shard cluster

backgroundclip-pathgeometric
unauditedReact ↗

Say: "scatter some facets behind it" — five clip-path shards at odd angles, low opacity, like broken glass caught in low light.

537

Halftone dither

backgrounddotstexture
unauditedReact ↗

Say: "dither it like halftone" — two dot grids at different scales, each masked to its own corner, so density itself does the shading.

538

Orbit rings

backgroundringsmotion
unauditedReact ↗

Say: "put an orbit behind it" — three bordered rings and a single point circling them, like a diagram of a very small solar system.

539

Ridge silhouette

backgroundclip-pathdepth
unauditedReact ↗

Say: "lay a ridge line behind it" — three clip-path horizons stacked for depth, the furthest drifting almost too slow to notice.

540

Sheen sweep

backgroundgradientmotion
unauditedReact ↗
01 · horizon

Say: "pass a sheen through it" — one hard-edged band of light crossing the panel on a loop, like brushed metal catching a window.

541

Diagonal split content panel

contentcomparelayout
unauditedReact ↗
The problem

One plain sentence naming what is broken today.

The fix

One plain sentence naming what changes.

Say: "cut the content on a diagonal" — a clip-path wedge sets one statement apart from the next, without a straight rule down the middle.

542

Annotated diagram pins

contentdiagramsvg
unauditedReact ↗
  • 1 Where the input enters
  • 2 Where it gets checked
  • 3 Where it exits
  • 4 Where it can branch off

Say: "pin the diagram and list it" — an inline SVG connects numbered points to a plain-text legend. For anything that needs a labelled part more than a caption.

543

Drop-cap column feature

contenteditorialcolumns
unauditedReact ↗

Feature

Sentence starting with a big letter that drops through several lines while the text wraps around it, the way a printed feature opens a spread.

A second paragraph carries on in the same columns, breaking wherever the column width runs out rather than at a fixed line.

Say: "run it in drop-cap columns" — real multi-column text with a magazine-style oversized first letter. For an opening feature, not a whole page of body copy.

544

Filmstrip content scroller

contentscrollcards
unauditedReact ↗
01

First item

One line about it.

02

Second item

One line about it.

03

Third item

One line about it.

04

Fourth item

One line about it.

Say: "run the content as a filmstrip" — native horizontal scroll-snap, no JS, edges fade to hint there is more. For related items that outgrow a fixed row.

545

Margin line-numbered clauses

contentlegaleditorial
unauditedReact ↗

Terms — clause 4

  1. The work covers everything listed in the attached scope and nothing beyond it.
  2. Any change to that scope is agreed in writing before it starts.
  3. Delivery dates move only by the number of days the change actually costs.

Say: "number the clauses down the margin" — a real ordered list with CSS-counter line numbers hung in the gutter, the way a contract or spec reads. Not a ledger — flowing sentences, not label/value pairs.

546

Corkboard note wall

contentnotesgrid
unauditedReact ↗

A quick note pinned to the board.

Another one, slightly askew.

A third, longer note that wraps onto two lines here.

Short.

Say: "pin it to a corkboard" — a dense grid of slightly rotated note cards, uneven on purpose. For loose observations that should not look like a tidy list.

547

Sticky index scroll pane

contentliststicky
unauditedReact ↗

Included

Sourcing and landed-cost pricing

Supplier coordination

Delivery scheduling

Add-on

Install and placement

Post-install adjustments

Not included

Structural changes

Say: "pin the group labels as it scrolls" — position:sticky category headers inside their own scroll pane, the iOS-contacts move. For scope lists long enough to need it.

548

Tabbed content switch

contenttabsinteractive
unauditedReact ↗

What this section covers, in a couple of plain sentences.

The specifics a reader came to check — dimensions, materials, whatever applies.

A note that did not fit the other two panels.

Say: "switch the content in tabs" — real radio inputs and :has(), no JS, so one panel of copy replaces another on click. For overview/specs/notes style content.

549

Activity heatmap grid

dashboardheatmapactivity
unauditedReact ↗
Activity LessMore

Say: "heatmap grid is <n>" — a grid of cells shaded by intensity with a Less-to-More legend; reach for it as a contribution-style activity panel. Illustrative pattern only, not live data.

550

Period comparison split

dashboardcomparisonmetric
unauditedReact ↗
This period Metric
Last period Metric

Say: "comparison split is <n>" — two centred figures either side of an arrow, this period against last; reach for it wherever a dashboard needs one number set against another. Layout only — wire real figures in.

551

Nested file tree list

dashboardtreefiles
unauditedReact ↗
Folder name
  • File name
  • File name
Folder name
  • File name

Say: "file tree is <n>" — native <details> folders holding indented file rows, keyboard-operable with no JS; reach for it as a compact file or resource browser inside a dashboard.

552

Onboarding checklist with progress ring

dashboardonboardingchecklist
unauditedReact ↗
  • Step label
  • Step label
  • Step label
  • Step label
  • Step label

Say: "onboarding ring is <n>" — a conic-gradient progress ring beside a step checklist; reach for it as a setup-completion card. Layout only — wire real step state in.

553

Page header with breadcrumb and actions

dashboardheaderbreadcrumb
unauditedReact ↗

Page title

Say: "page header is <n>" — breadcrumb and title on the left, a secondary and primary action on the right, on a shared hairline; reach for it as the top bar of a dashboard working page.

554

Permission matrix table

dashboardpermissionstable
unauditedReact ↗
Admin Editor Viewer
Permission
Permission
Permission

Say: "permission matrix is <n>" — roles across the top, permissions down the side, dots at the intersections; reach for it as a roles-and-access settings screen. Layout only — no live grants.

555

Reorderable list with drag handles

dashboardreorderlist
unauditedReact ↗
  • Item name1
  • Item name2
  • Item name3
  • Item name4

Say: "reorder list is <n>" — rows carrying a six-dot drag handle and an order badge; a static illustration of the affordance, wire real drag-and-drop in yourself.

556

Segmented tab panel switcher

dashboardtabsradio
unauditedReact ↗

Layout only — panel content goes here once it's wired up.

A second panel's placeholder content.

A third panel's placeholder content.

Say: "tab switcher is <n>" — a segmented-control tab row swapping the panel below via radio inputs, no JS; reach for it to switch between Overview/Details/Logs style views inside one dashboard card. Layout only.

557

Accordion sitemap footer

footersitemapnative
unauditedReact ↗

Say: "collapse the sitemap into an accordion" — real <details> groups, no JS, the mobile-footer move. First group shown open, the rest close to one row.

558

Bento contact footer

footergridcontact
unauditedReact ↗

Say: "lay the footer out as a bento" — asymmetric grid-template-areas cells for contact, social, location and legal instead of equal columns.

559

Diagonal band footer

footerctacss
unauditedReact ↗

Say: "cut the closer on a diagonal" — an accent-coloured clip-path wedge carries the closing line and CTA above a plain link row.

560

Expanding column footer

footerhovercolumns
unauditedReact ↗

Say: "let a footer column expand on hover" — flex-grow transition widens whichever column the cursor is on; shown here with Work pre-expanded.

561

Orbit badge footer

footerctamotion
unauditedReact ↗
STUDIO © 2026 — all rights reserved

Say: "put the CTA in a spinning seal" — a conic-gradient dashed ring rotates slowly around a plain-language contact badge.

562

Tabbed footer panels

footertabsinteractive
unauditedReact ↗

Say: "give the footer its own tabs" — radio inputs and :has() switch between Contact, Sitemap and Legal without leaving the footer.

564

Torn-edge footer

footereditorialcss
unauditedReact ↗

Say: "tear the top edge of the footer" — a repeating mask cuts a ticket-stub scallop along the top of the footer surface, plain sign-off underneath.

565

Asymmetric bento

gallerygridbento
unauditedReact ↗

Say: "lay it out as an asymmetric bento" — named grid areas instead of a span, so one tall cell and one wide cell can both break the rhythm at once.

566

Flip card pair

gallery3dhover
unauditedReact ↗
Piece one — detail on flip
Piece two — detail on flip

Say: "flip them to reveal a caption" — a real 3D rotateY flip on hover or focus, caption on the back face, no overlay trick.

567

Hex cluster

galleryclip-pathhoneycomb
unauditedReact ↗

Say: "cluster them as hexagons" — three clip-path hexagons interlocked like a honeycomb, instead of another rectangle grid.

568

Marquee loop row

gallerymotionloop
unauditedReact ↗

Say: "run it as a marquee" — small frames scrolling in an unbroken loop, the set duplicated once so the seam never shows.

569

Radial orbit thumbs

galleryradialthumbs
unauditedReact ↗

Say: "orbit the thumbs around the main frame" — four small frames at compass points around a centre piece, instead of a row underneath it.

570

Stair-step row

gallerylayoutrhythm
unauditedReact ↗

Say: "step them down like stairs" — four frames in a plain flex row, each one sitting a little lower than the last. No overlap, no rotation.

571

Torn-edge strip

galleryclip-pathtexture
unauditedReact ↗

Say: "tear the edges where they overlap" — a zigzag clip-path on the trailing edge of each frame, like torn perforated sheets fanned out.

572

Vertical rail strip

galleryverticalindex
unauditedReact ↗

Say: "index them down a rail" — frames stacked vertically off a single connecting line, each one marked by a dot rather than a number.

573

Diagonal notch caption

mediaclip-patheditorial
unauditedReact ↗
02Case study

Say: "cut a notch for the caption" — the media panel loses a diagonal corner and the caption sits in exactly the space it gave up.

574

Folded index card

mediacardeditorial
unauditedReact ↗
IDX·03
Contact sheet frame

Say: "file it as an index card" — a media frame with a small filed tab above it, like a contact sheet pulled from a drawer.

575

Peel corner reveal

mediaclip-pathhover
unauditedReact ↗

Say: "peel the corner" — a lifted paper-corner fold over a media frame that curls further on hover, revealing the layer underneath.

576

Picture-in-picture overlay

mediaoverlaylayout
unauditedReact ↗

Say: "drop a picture-in-picture on it" — a small inset frame overlapping the main media's corner, the way a webcam sits on a screen share.

577

Radial progress ring

mediaconic-gradientvideo
unauditedReact ↗
62%watched

Say: "ring the play button with progress" — a conic-gradient arc showing how much has been watched, wrapped around the resume control.

578

Scrub bar with chapter marks

mediavideocontrols
unauditedReact ↗

Say: "show the scrub marks" — a play frame over a progress rail with tick marks at the chapter breaks and a thumb sitting mid-scrub.

579

Subtitle track bar

mediacaptionsvideo
unauditedReact ↗
CC

A line of dialogue appears here, timed to the clip.

00:42

Say: "give it a caption track" — a solid subtitle plate fixed under the frame with a CC chip and a timecode, not a scrim over the image.

580

Vertical frame with action rail

mediaverticallayout
unauditedReact ↗
2.4k
184
56

Say: "give it a vertical frame and a rail" — a tall 9:16 media panel with stacked counters beside it, the short-form clip layout.

581

Scroll-snap chip rail

navfilterscroll
unauditedReact ↗

Say: "let the categories scroll and snap" — a horizontal row of filter chips with native scroll-snap, edges faded to show there is more. For catalogues with too many categories for one row.

582

Corner-anchored nav

navlayoutasymmetric
unauditedReact ↗

Say: "anchor the nav in the corner" — mark top-left, links stacked top-right, a status line bottom-left; no bar, no rule, the page corner does the organising.

583

Disclosure drawer nav

navmobilenative
unauditedReact ↗
Menu

native <details> — no JS, collapses on click

Say: "make it a native drawer" — a real <details> element as the menu toggle, no JS, keyboard-operable for free. Shown open here; it collapses to one row on click.

584

Index dot scrollspy nav

navindexpagination
unauditedReact ↗

Say: "index the sections as dots" — numbered dot pagination on a connecting line, current section enlarged; a horizontal alternative to a side anchor list.

585

Marquee alert bar nav

navmarqueemotion
unauditedReact ↗

Say: "put a scrolling alert above the nav" — a thin ticker strip carries one line of status, the plain link row sits underneath it.

586

Preview flyout nav

navhoverpreview
unauditedReact ↗

Selected projects, filtered by year.

Who we are and how we work.

Notes on process, published occasionally.

One line, one email, no form.

Say: "flyout a preview under the link" — a small panel with a pointer sits under the current item and swaps to whichever link is hovered. Shown open under the current page.

587

Skewed tab deck nav

navtabscss
unauditedReact ↗

Say: "cut the tabs on a skew" — interlocking parallelogram tabs built from a skewed pseudo-element, not a clip-path chevron; reach for it on a secondary section nav that wants an edge.

588

Two-tier utility nav

navlayoututility
unauditedReact ↗

Say: "give it a utility row above the nav" — a thin status/support strip stacked over the main bar, split by a hairline. For a nav that needs to say one more thing before the links.

589

Sticky buy bar

productbuy-barsticky
unauditedReact ↗
Item namePrice
1

Say: "buy bar is <n>" — a horizontal bar with the item, a quantity stepper, and add-to-cart, meant to pin to the viewport; reach for it once the price is scrolled out of view but the decision isn't made yet.

590

Certification badge grid

productcertificationbadges
unauditedReact ↗
Certification name
Certification name
Certification name
Certification name

Say: "certification grid is <n>" — abstract seal marks over a caption, laid out two-up; reach for it to state compliance or standards a product meets without borrowing a real mark you don't hold.

591

Downloadable resources list

productdownloadsdocuments
unauditedReact ↗

Say: "downloads list is <n>" — a hairline-divided list of documents with a filetype tag and a download arrow; reach for it for spec sheets, assembly guides, or warranty cards attached to a product.

592

Live configurator, options drive a shared preview

productconfiguratorradio
unauditedReact ↗

Finish — Option AOption BOption C

Say: "live configurator is <n>" — one row of radio options updates a preview swatch AND a caption elsewhere on the page, pure CSS, no JS; reach for it wherever a choice should visibly change more than one thing at once.

593

Spec list with hover-defined terms

productspecglossary
unauditedReact ↗
Grade A A line defining the term in plain words. Value
Density A line defining the term in plain words. Value
Finish class A line defining the term in plain words. Value

Say: "glossary spec list is <n>" — spec rows with a small marker that reveals a plain-words definition on hover or focus; reach for it when a spec sheet uses jargon a buyer shouldn't have to look up elsewhere.

594

360 spin viewer, static illustration

productspin360
unauditedReact ↗

Drag to rotate

Say: "spin viewer is <n>" — a slow-turning ring and a drag hint standing in for a 360 product viewer; a static illustration of the affordance, wire the actual frame-swap in yourself.

595

Tabbed spec groups

producttabsspec
unauditedReact ↗

A line about what it is, not why it's special.

A short note on what it's made from.

A short note on upkeep.

Say: "tabbed specs are <n>" — radio-driven CSS-only tabs switching between spec categories, no JS; reach for it as an alternative to an accordion when the sections are peers, not a stack.

596

Trust badge row

producttrustshipping
unauditedReact ↗
ShippingA line about the policy.
ReturnsA line about the policy.
WarrantyA line about the policy.

Say: "trust row is <n>" — three hairline-divided policy items with a mark and a line each; reach for it right under the buy button to answer shipping, returns, and warranty before the buyer has to ask.