page ProductHerocomponent { seo { title = "ProductHero component" description = "Reusable product hero component." } view {
W WRNexusJS
layout component

ProductHero

Reusable product hero component.

@wrnexus/ui 0.3.25 props1 slots0 events

Usage

Components are auto-discovered. Use the component directly in any .wrn view:

<ProductHero
  eyebrow="eyebrow"
  title="title"
  description="description"
  align="start"
/>

Legacy mount name: data-component="ProductHero".

Props and attributes

PropTypeRequirementDefault
eyebrowstringOptional""
titlestringOptional""
descriptionstringOptional""
alignstringOptional"start"
classstringOptional""

Slots

  • default

Events

This component does not declare a custom event.

Source contract

Installed source: components/ProductHero.wrn

component ProductHero {
  props {
    eyebrow = ""
    title = ""
    description = ""
    align = "start"
    class = ""
  }

  view {
        <section
      class=" relative isolate overflow-hidden bg-[var(--wire-color-bg,#ffffff)] px-4 py-14 sm:px-6 sm:py-18 lg:px-8 lg:py-20 {class} "
    >
        <div class="pointer-events-none absolute inset-0 -z-10 opacity-80" style="background: radial-gradient(circle at 16% 0%, color-mix(in srgb, var(--wire-color-primary, #059669) 16%, transparent), transparent 36%);" aria-hidden="true" >
        </div>
        <div class="mx-auto w-full max-w-7xl">
        <div
          class="max-w-4xl"
          class:mx-auto='{align === "center"}'
          class:text-center='{align === "center"}'
        >
          {#if eyebrow}
          <p
            class="mb-4 text-xs font-bold uppercase tracking-[0.18em] text-[var(--wire-color-primary,#059669)] sm:text-sm"
          >
            {eyebrow}
          </p>
          {/if}

          {#if title}
          <h1
            class="m-0 max-w-[18ch] text-4xl font-semibold leading-[1.05] tracking-[-0.045em] text-[var(--wire-color-text,#0f172a)] sm:text-5xl lg:text-6xl"
            class:mx-auto='{align === "center"}'
          >
            {title}
          </h1>
          {/if}

          {#if description}
          <p
            class="mt-6 max-w-3xl text-base leading-8 text-[var(--wire-color-muted,#64748b)] sm:text-lg"
            class:mx-auto='{align === "center"}'
          >
            {description}
          </p>
          {/if}
        </div>
        <div class="mt-10 space-y-10">
        <slot />
        </div>
        </div>
        </section>
    }
}
} }