Skip to content
BaseLayer Themes

Docs

Hero 21

Rounded solid frame + 3D dual vertical image strips

Live preview

Portrait in soft light
Workspace detail
Architectural study
Product still
Editorial portrait
Interior detail
Lifestyle still
Portrait study
Available for freelance & contract

I build websites that work as hard as you do!

Full-stack web development for brands that need speed, clarity, and craft. Astro, React, headless CMS, and everything in between.

File: src/blocks/hero/Hero21.astro

Like Hero19 — inset rounded solid frame — with dual vertical image strips on the right in a 3D “laying down” plane (stripsPerspective, stripsRotateX/Y/Z). On small screens the strips dim and a solid overlay (mixed from backgroundColor) keeps copy readable.

Depends on ScrollerImageStripTrack.astro + ScrollerScript.astro (shared script; each strip uses withScript={false}).

Config (blocks.tshero21)

hero21: {
  width: "full",
  contentWidth: "wide",
  backgroundColor: "oklch(22% 0.025 260)",
  contentTone: "light",
  height: "md",
  textPlacement: "center",
  textAlign: "left",
  radius: "2xl",
  stripAImages: [/* … */],
  stripBImages: [/* … */],
  stripADirection: "up",
  stripBDirection: "down",
  stripsPerspective: 1800,
  stripsRotateX: 16,
  stripsRotateY: -12,
  stripsRotateZ: 5,
  // …scroller motion / gap / radius props
},

Add to a page

---
import Hero21 from "@/blocks/hero/Hero21.astro";
---

<Hero21 />
<Hero21
  contentTone="light"
  stripsRotateY={-8}
  stripsPerspective={2000}
/>

Props

Prop Config key Type / values Default / notes
width hero21.width narrow | standard | wide | full Frame max-width; full keeps gutter
contentWidth hero21.contentWidth standard | narrow | wide Inner copy max-width
backgroundColor hero21.backgroundColor CSS color Also used for small-screen overlay
contentTone hero21.contentTone light | dark light = light text on dark fill
height hero21.height auto | sm | md | lg | full Frame min-height
textPlacement hero21.textPlacement top | center | bottom
textAlign hero21.textAlign left | center | right
radius hero21.radius none | md | lg | xl | 2xl
stripAImages / stripBImages same ScrollerImageItem[] Prefer photos.*
stripADirection / stripBDirection same up | down Opposite directions by default
stripsMotion / stripsSpeed / stripsPauseOnHover / stripsGap same Scroller controls
stripsPerspective hero21.stripsPerspective number (px) 3D perspective distance
stripsRotateX / Y / Z same number (deg) Tip / yaw / roll of the strip plane
imageRadius hero21.imageRadius radius token Strip image corners
Border props same as Hero19

← Hero versions · Blocks overview · Images