Skip to content
BaseLayer Themes

Docs

Hero 19

Rounded solid frame — background color, height, width gutter

Live preview

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/Hero19.astro

Inset rounded hero with a solid background (no slider). Frame never goes flush to the viewport — even width="full" keeps a gutter.

Config (blocks.tshero19)

hero19: {
    width: "full",
    contentWidth: "wide",
    eyebrow: "Available for freelance & contract",
    heading: "I build websites that work as hard as you do!",
    subheading:
      "Full-stack web development for brands that need speed, clarity, and craft. Astro, React, headless CMS, and everything in between.",
    primaryCta: "View my work",
    primaryCtaUrl: "/work/",
    secondaryCta: "Get in touch",
    secondaryCtaUrl: "/contact/",
    backgroundColor: "oklch(94% 0.012 260)",
    contentTone: "dark",
    height: "md",
    textPlacement: "center",
    textAlign: "left",
    radius: "2xl",
    borderBottom: false,
    borderThickness: "sm",
    borderColor: "soft",
  },

Add to a page

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

<Hero19 />

Props override matching keys from config:

<Hero19
  width="wide"
  backgroundColor="var(--color-brand)"
  contentTone="light"
  height="lg"
  textAlign="center"
/>

Props

Prop Config key Type / values Default / notes
width hero19.width narrow | standard | wide | full Frame max-width; full still keeps viewport gutter
contentWidth hero19.contentWidth standard | narrow | wide Inner copy wrapper max-width
eyebrow hero19.eyebrow string
heading hero19.heading string
subheading hero19.subheading string
primaryCta hero19.primaryCta string
primaryCtaUrl hero19.primaryCtaUrl string
secondaryCta hero19.secondaryCta string
secondaryCtaUrl hero19.secondaryCtaUrl string
backgroundColor hero19.backgroundColor CSS color string Prefer a fixed color (e.g. oklch(22% 0.025 260)) or brand (var(--color-brand)). Text tokens like --color-strong / --color-brand-fg can match the page in dark mode
contentTone hero19.contentTone light | dark light = light text on dark fill; dark = dark text on light fill
height hero19.height auto | sm | md | lg | full Viewport min-height of the frame
textPlacement hero19.textPlacement top | center | bottom Vertical placement of copy
textAlign hero19.textAlign left | center | right Horizontal justification of copy + CTAs
radius hero19.radius none | md | lg | xl | 2xl Frame border radius
borderBottom hero19.borderBottom boolean Show a bottom border under the section
borderThickness hero19.borderThickness sm (1px) | md (2px) | lg (4px)
borderColor hero19.borderColor soft | medium | hard

Notes: Pass real CSS colors / theme vars for backgroundColor — not Tailwind class names. See Images for theme tokens used as var(--color-*).

← Hero versions · Blocks overview · Images