Build & Push Docker Image / build (push) Has been cancelled
Refresh the homepage around new hero/services/roadmap sections, shared design tokens, and updated brand assets. Co-authored-by: Cursor <cursoragent@cursor.com>
2.8 KiB
2.8 KiB
Hero
Hero guidelines for marketing landings. Reference implementations: components/hero-section.tsx, hero-50.tsx, hero-213.tsx.
This design system does not invent a new hero—it constrains future heroes to the same layout, token, and motion language.
First-viewport budget
Prefer:
- Brand / logo presence (via global header).
- One headline (
type.displayortype.h1). - One short supporting sentence.
- One CTA group (primary + optional secondary).
- One dominant visual (background or product image).
Avoid packing stats, schedules, address blocks, or promo chips into the first viewport.
Layout
<section className="bg-background"> {/* or bg-gradient-hero */}
<div className="relative pt-24 md:pt-36">
<Container>
<div className={typeSpacing.heroStack}>
<h1 className={type.display}>…</h1>
<p className={cn(type["body-lg"], "text-muted-foreground")}>…</p>
<div className="flex flex-wrap items-center gap-3">
<Button size="lg">…</Button>
<Button size="lg" variant="secondary">…</Button>
</div>
</div>
</Container>
</div>
</section>
Rules:
- Clearance under fixed header: at least
pt-24/md:pt-36(orlayout.sectionTopWithHeaderon simpler pages). - Content width: site
<Container>— do not inventmax-w-7xlshells for new work (legacy heroes being migrated should move toContainer). - Full-bleed background images are encouraged; foreground copy stays constrained.
- No detached floating badges/stickers on top of hero media.
Backgrounds
Allowed:
bg-gradient-heroutility.- Theme-aware
next/imagebackgrounds (dark:block/hidden dark:…). - Soft radial washes inside a clipped absolute layer.
See gradients.md. Decorative layers must not cause horizontal scroll.
Motion
- Entrance: opacity + translateY (+ optional blur) via
AnimatedGroup/TextEffect/MotionReveal. - Prefer spring or
blockEasefromlib/block-motion.ts. - Respect
prefers-reduced-motion(MotionReveal already does). - Do not animate layout width/height for entrance—use transform/opacity.
CTA rules
- Primary =
Buttondefaultsize="lg". - Secondary =
variant="secondary"oroutline. - On dark brand panels use
surface="brand".
Imagery
- Provide explicit
width/heightorfill+ sized parent to avoid CLS. - Use
sizesappropriate to viewport (100vwfor full-bleed backgrounds). object-coverfor atmospheric photos; keep focal point sensible for RTL crops.
Forbidden
- Card-wrapped heroes.
- Inset rounded media as the only hero treatment when a full-bleed treatment is the site norm.
- Extra containers that misalign with the header.