X Enterprises
nuxt-x-cards

Hero Cards

Full-viewport and split-layout hero components for above-the-fold sections.

Hero Cards

Hero components designed for above-the-fold impact. Both components respect globally configured filter and overlay defaults from useXCards(), while allowing per-instance overrides.

Components

<XCardHeroFullscreen />

A full-viewport hero card that places a background image behind a gradient overlay, with bottom-justified editorial text and optional CTA buttons. The gradient overlay is the primary contrast layer — no heavy blur panels are used on the text content. Supports cinematic image filters and multiple overlay styles.

<XCardHeroFullscreen
  title="Move in perfect silence."
  title-accent="Every step recorded."
  subtitle="Advanced health tracking designed around your life, not the other way around."
  pretitle="Introducing Gen 4"
  image-url="/images/hero-product.jpg"
  filter="cinematic"
  overlay="bottom-fade"
  theme="dark"
  height="full"
  :primary-cta="{ label: 'Shop Now', to: '/shop' }"
  :secondary-cta="{ label: 'Learn More', to: '/about' }"
/>

Props

PropTypeDefaultDescription
titlestringMain headline text (required)
titleAccentstringAccent line rendered below title in serif italic style
subtitlestringSupporting paragraph below the headline
pretitlestringSmall badge label rendered above the headline
imageUrlstringBackground image URL (required)
imageAltstringAlt text for the background image
theme'dark' | 'light''dark'Controls text color — dark uses white, light uses neutral-950
filter'cinematic' | 'moody' | 'golden' | 'cool' | 'dramatic' | 'none'global defaultCSS filter applied to the background image
overlay'bottom' | 'bottom-fade' | 'top' | 'full' | 'cinematic' | 'oura' | 'none'global defaultGradient overlay style for text contrast
height'full' | 'tall' | 'medium''full'Minimum height: full = 100vh, tall = 85vh, medium = 65vh
primaryCta{ label: string; to: string }Primary button (solid, pill style)
secondaryCta{ label: string; to: string }Secondary button (outline, pill style)

<XCardHeroSplit />

A split two-column hero that places an image on one side and editorial text on the other. The image column supports zoom-in on hover and cinematic filters. Useful for editorial landing sections where breathing room around the text matters.

<XCardHeroSplit
  title="Engineered for"
  title-accent="every body."
  description="The most advanced health sensor we've ever built, wrapped in the most comfortable form we've ever designed."
  pretitle="The Science"
  image-url="/images/hero-split.jpg"
  variant="left-image"
  filter="golden"
  theme="light"
  :cta="{ label: 'Explore the research', to: '/science' }"
/>

Props

PropTypeDefaultDescription
titlestringMain headline text (required)
titleAccentstringAccent line rendered below title in serif italic style
descriptionstringBody paragraph below the headline
pretitlestringSmall section-label text above the headline
imageUrlstringImage URL (required)
imageAltstringAlt text for the image
variant'left-image' | 'right-image''left-image'Which column the image occupies
filter'cinematic' | 'moody' | 'golden' | 'cool' | 'dramatic' | 'none'global defaultCSS filter applied to the image
cta{ label: string; to: string }Single CTA button (outline, pill style)
theme'dark' | 'light''light'Background and text color scheme

AI Context

package: "nuxt-x-cards"
prefix: XCard
components:
  - XCardHeroFullscreen
  - XCardHeroSplit
use-when: >
  Use XCardHeroFullscreen for full-screen cinematic landing hero sections.
  Use XCardHeroSplit for editorial split-screen layouts where image and text
  share equal visual weight. Both components fall back to global filter and
  overlay defaults from useXCards() when those props are omitted.
notes:
  - titleAccent renders in a serif italic style for brand emphasis
  - pretitle renders as a small blurred badge above the headline
  - filter and overlay props are optional — omit to use layer-wide defaults
Copyright © 2026