Component showcase

Heroes

Landing hero effects (theme.json effect). Click to load: each one starts WebGL or heavy motion. 27 variants, 26 rendered live.

product-3d

herounusedOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/product-3d/Hero.astro
  • src/effects/product-3d/client.ts
How to pin
{
  "effect": "product-3d"
}

yes: theme.json effect="product-3d" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
unused
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
theme.json extras productShape (knife|gear|bottle|mattress|box|chair|tool|jar|cards) or model3dUrl (GLB); stills per shape in effects/product-3d/stills; cards = photo ring

product-showcase

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/product-showcase/Hero.astro
  • src/effects/product-showcase/client.ts
How to pin
{
  "effect": "product-showcase"
}

yes: theme.json effect="product-showcase" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
cuchilloselchaja, rosarioagroindustrial
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
extras productShape/model3dUrl/showcase{finish,parts}; scroll runway reveal/explode/overview; largest Hero (510 lines)

panorama-360

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/panorama-360/Hero.astro
  • src/effects/panorama-360/client.ts
How to pin
{
  "effect": "panorama-360"
}

yes: theme.json effect="panorama-360" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
bellevue
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
extras panoramaUrl (AI outpaint, cli/src/ai-360-outpaint.ts) else ring of site photos; THREE_HEROES exception (no object still)

food-reveal

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/food-reveal/Hero.astro
  • src/effects/food-reveal/client.ts
How to pin
{
  "effect": "food-reveal"
}

yes: theme.json effect="food-reveal" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
francescoristorante
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
extras plates (CLI plate-photos.ts; needs >= MIN_PLATES dish photos else CLI reseeds to another effect unless --effect forced); forces services=menu only if the services section is menu-like

shader-gradient

herounusedOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/shader-gradient/Hero.astro
  • src/effects/shader-gradient/client.ts
How to pin
{
  "effect": "shader-gradient"
}

yes: theme.json effect="shader-gradient" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
unused
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
raw WebGL shader (shaders.ts/palette.ts), not three; forces stats=emphasis

parallax-layers

herounusedOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/parallax-layers/Hero.astro
  • src/effects/parallax-layers/client.ts
How to pin
{
  "effect": "parallax-layers"
}

yes: theme.json effect="parallax-layers" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
unused
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
floating frames with depth parallax; one of two effects without a style block

kinetic-type

herounusedOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/kinetic-type/Hero.astro
  • src/effects/kinetic-type/client.ts
How to pin
{
  "effect": "kinetic-type"
}

yes: theme.json effect="kinetic-type" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
unused
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
giant business-name word sized to viewport; lines.ts

filmstrip

herounusedOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/filmstrip/Hero.astro
  • src/effects/filmstrip/client.ts
How to pin
{
  "effect": "filmstrip"
}

yes: theme.json effect="filmstrip" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
unused
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
contact-sheet frames with parallax

card-stack

herounusedOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/card-stack/Hero.astro
  • src/effects/card-stack/client.ts
How to pin
{
  "effect": "card-stack"
}

yes: theme.json effect="card-stack" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
unused
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
photo pile, hero photo on top

split-curtain

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/split-curtain/Hero.astro
  • src/effects/split-curtain/client.ts
How to pin
{
  "effect": "split-curtain"
}

yes: theme.json effect="split-curtain" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
donmario
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
curtain reveal, uses sharper original (donmario)

clinic-scan

herounusedOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/clinic-scan/Hero.astro
  • src/effects/clinic-scan/client.ts
How to pin
{
  "effect": "clinic-scan"
}

yes: theme.json effect="clinic-scan" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
unused
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
ClinicHeroCopy + ScanFrame; also usable inside an internal-page inset hero via theme.json pageEffects[slug]=clinic-scan

dental-3d

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/dental-3d/Hero.astro
  • src/effects/dental-3d/client.ts
How to pin
{
  "effect": "dental-3d"
}

yes: theme.json effect="dental-3d" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
losvallessalud
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
signature: molar in sectioned jaw; own ui.ts (220 lines)+client+badges, NOT the b3 family; stills tooth-intro/parts

bass-3d

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/bass-3d/Hero.astro
  • src/effects/bass-3d/client.ts
How to pin
{
  "effect": "bass-3d"
}

yes: theme.json effect="bass-3d" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
jlopezluthier
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
signature; owns the shared b3 base (ui.ts 381 lines, still.ts, timeline createPose) that 10 other maker heroes import

weight-3d

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/weight-3d/Hero.astro
  • src/effects/weight-3d/client.ts
How to pin
{
  "effect": "weight-3d"
}

yes: theme.json effect="weight-3d" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
dolzhnos
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
calibration weight; b3 family

brick-3d

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/brick-3d/Hero.astro
  • src/effects/brick-3d/client.ts
How to pin
{
  "effect": "brick-3d"
}

yes: theme.json effect="brick-3d" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
juguetesrasti
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
studded-brick car; b3 family

wicker-3d

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/wicker-3d/Hero.astro
  • src/effects/wicker-3d/client.ts
How to pin
{
  "effect": "wicker-3d"
}

yes: theme.json effect="wicker-3d" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
artesanias-delta
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
woven armchair; b3 family

scull-3d

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/scull-3d/Hero.astro
  • src/effects/scull-3d/client.ts
How to pin
{
  "effect": "scull-3d"
}

yes: theme.json effect="scull-3d" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
cucchiettiboats
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
racing single scull; b3 family

pine-3d

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/pine-3d/Hero.astro
  • src/effects/pine-3d/client.ts
How to pin
{
  "effect": "pine-3d"
}

yes: theme.json effect="pine-3d" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
muebleriaheredia
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
plank-top coffee table; b3 family; light band on light sites (band.ts)

candelabra-3d

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/candelabra-3d/Hero.astro
  • src/effects/candelabra-3d/client.ts
How to pin
{
  "effect": "candelabra-3d"
}

yes: theme.json effect="candelabra-3d" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
sialle
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
alpaca candelabrum; b3 family

mate-3d

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/mate-3d/Hero.astro
  • src/effects/mate-3d/client.ts
How to pin
{
  "effect": "mate-3d"
}

yes: theme.json effect="mate-3d" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
gonzalezorfebre
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
silver copa mate; b3 family

barrel-3d

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/barrel-3d/Hero.astro
  • src/effects/barrel-3d/client.ts
How to pin
{
  "effect": "barrel-3d"
}

yes: theme.json effect="barrel-3d" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
dolium
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
underground cellar cutaway; stills named barrique-*; b3 family

parrilla-3d

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/parrilla-3d/Hero.astro
  • src/effects/parrilla-3d/client.ts
How to pin
{
  "effect": "parrilla-3d"
}

yes: theme.json effect="parrilla-3d" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
parrisur
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
forged parrilla door; b3 family

pump-3d

heroin useOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/pump-3d/Hero.astro
  • src/effects/pump-3d/client.ts
How to pin
{
  "effect": "pump-3d"
}

yes: theme.json effect="pump-3d" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
emag
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
lobe pump exploded view; b3 family

mosaic-zoom

herounusedOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/mosaic-zoom/Hero.astro
  • src/effects/mosaic-zoom/client.ts
How to pin
{
  "effect": "mosaic-zoom"
}

yes: theme.json effect="mosaic-zoom" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
unused
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
headline that repeats the name carries the subtitle instead

shutter-blinds

herounusedOpen live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/shutter-blinds/Hero.astro
  • src/effects/shutter-blinds/client.ts
How to pin
{
  "effect": "shutter-blinds"
}

yes: theme.json effect="shutter-blinds" (unknown id warns, falls back to presets[vertical].effect). No separate hero-layout knob exists

Reads
hero (content.hero, not a section) | content.hero{title,subtitle,image,cta,secondaryCta,dishes,spares} + page-wide photo ledger (allContentImages/collectPhotos in lib/site-data.ts)
Used by
unused
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json `effect` (EffectId, effects/registry.ts). CLI seeds it: signature subject classification -> SIGNATURE_EFFECTS, else pickEffect(vertical, host seed) among [preset.effect,...alternates]; `--effect` flag overrides
Notes
stacked photo layers rotate away; last photo static

hero copy components

hero-supportin use

not rendered: support components that render inside the maker heroes (see the 3D heroes above)

Files
  • src/components/hero/MakerHeroCopy.astro
  • src/components/hero/ClinicHeroCopy.astro
  • src/components/hero/HeroCtas.astro
  • src/components/hero/ShapeStill.astro
  • src/components/hero/SplitHeading.astro
How to pin

no

Reads
hero | content.hero cta/secondaryCta; contact channels deduped via contact-parts.heroChannelKeys (SINGLE_CTA_EFFECTS)
Used by
not tracked (layout is seeded per site)
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
imported by effect Heros: MakerHeroCopy by the 11 b3-family heroes; ClinicHeroCopy by clinic-scan+dental-3d; HeroCtas by 12 effects

laptop-3d

herolead-only (lead-webexpress)Open live
desktop preview
desktop 1280px
mobile preview
mobile 390px
Files
  • src/effects/laptop-3d/Hero.astro
  • src/effects/laptop-3d/client.ts
  • src/effects/laptop-3d/scene.ts
  • src/effects/laptop-3d/laptop.ts
  • src/effects/laptop-3d/screen.ts
  • src/effects/laptop-3d/copy.ts
  • src/effects/laptop-3d/parts.ts
How to pin
{
  "effect": "laptop-3d"
}

yes on lead-webexpress: theme.json effect="laptop-3d" (unknown on main, falls back to the vertical preset)

Reads
hero (content.hero) | content.hero + business name (wordmark on the laptop screen) + the site's own sentences for the part cards (resolveLaptopCards)
Used by
web-express (lead-webexpress branch only)
Quality gates
5 codes

hero: isolated-effect hero-image-repeat hero-plate-mismatch repeated-photo (hero effect counts as one place) no-visual

Selected by
theme.json effect (EffectId on the lead branch only); web-express uses it
Notes
Open laptop that builds a web page in layers, peeled into a parts view; shares the b3 base with bass-3d. The branch also edits MakerHeroCopy, FAQ intro, landingNav (one-page menus) and the contact heading/intro.