lion-make 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/footer/Disclosure.d.ts +3 -2
- package/dist/components/footer/DisclosureToggleOpen.d.ts +13 -0
- package/dist/components/footer/LegalLinks.d.ts +16 -0
- package/dist/components/footer/LinksAndSocial.d.ts +25 -0
- package/dist/components/general/AccordionBlock.d.ts +15 -0
- package/dist/components/general/AllBlogsPostBlock.d.ts +21 -0
- package/dist/components/general/BackgroundColorBlock.d.ts +12 -0
- package/dist/components/general/BasicContentBlock.d.ts +18 -0
- package/dist/components/general/BodyTextCopyBlock.d.ts +12 -0
- package/dist/components/general/ContentImageBlock.d.ts +15 -0
- package/dist/components/general/CrossSellCardBlock.d.ts +18 -0
- package/dist/components/general/DecorativeListBlock.d.ts +13 -0
- package/dist/components/general/EmailCalloutBlock.d.ts +14 -0
- package/dist/components/general/EmbeddedVideoBlock.d.ts +15 -0
- package/dist/components/general/FullSizeImageWithHighlightBox.d.ts +21 -0
- package/dist/components/general/HorizontalRule.d.ts +13 -0
- package/dist/components/general/HotJobsBlock.d.ts +21 -0
- package/dist/components/general/InlineMessage.d.ts +14 -0
- package/dist/components/general/LastChanceBlock.d.ts +15 -0
- package/dist/components/general/MultiStepLeadForm.d.ts +19 -0
- package/dist/components/general/MultiTestimonial.d.ts +19 -0
- package/dist/components/general/OptIn.d.ts +16 -0
- package/dist/components/general/ProductBlock.d.ts +17 -0
- package/dist/components/general/PullQuote.d.ts +12 -0
- package/dist/components/general/RTBDescriptive.d.ts +18 -0
- package/dist/components/general/RTBDynamic.d.ts +21 -0
- package/dist/components/general/RTBHighlight.d.ts +18 -0
- package/dist/components/general/RecentBlogPostsBlock.d.ts +22 -0
- package/dist/components/general/ResourceSpotlight.d.ts +18 -0
- package/dist/components/general/SideMenuExplorer.d.ts +16 -0
- package/dist/components/general/SimpleCTABlock.d.ts +15 -0
- package/dist/components/general/SpacingBlock.d.ts +12 -0
- package/dist/components/general/SpeedBump.d.ts +16 -0
- package/dist/components/general/TableBlock.d.ts +13 -0
- package/dist/components/general/WAHFU.d.ts +15 -0
- package/dist/components/header/HeaderCTA.d.ts +9 -0
- package/dist/components/header/HeaderLogo.d.ts +10 -0
- package/dist/components/header/HeaderProduct.d.ts +10 -0
- package/dist/components/header/HeaderSectionNavigation.d.ts +12 -0
- package/dist/components/header/HeaderSectionTitle.d.ts +8 -0
- package/dist/components/header/HeaderUnderwriter.d.ts +9 -0
- package/dist/components/header/TopLevelNavigation.d.ts +13 -0
- package/dist/components/hero/CTAHeroBlock.d.ts +24 -0
- package/dist/components/hero/HeroBlock.d.ts +18 -0
- package/dist/components/hero/MultiHero.d.ts +25 -0
- package/dist/components/hero/NotAvailableHeroBlock.d.ts +22 -0
- package/dist/index.d.ts +92 -2
- package/dist/lion-make.js +1855 -545
- package/dist/lion-make.umd.cjs +10 -10
- package/guidelines/Guidelines.md +46 -50
- package/guidelines/composition/constraints.md +40 -8
- package/guidelines/composition/zones.md +49 -11
- package/guidelines/content-types/footer/anklet.md +62 -0
- package/guidelines/content-types/footer/compliance.md +49 -0
- package/guidelines/content-types/footer/disclaimers.md +48 -0
- package/guidelines/content-types/footer/disclosure-toggle-open.md +51 -0
- package/guidelines/content-types/footer/disclosures.md +50 -0
- package/guidelines/content-types/footer/legal-links.md +59 -0
- package/guidelines/content-types/footer/links-and-social.md +94 -0
- package/guidelines/content-types/footer/overview.md +73 -16
- package/guidelines/content-types/general/accordion-block.md +42 -0
- package/guidelines/content-types/general/all-blogs-post-block.md +52 -0
- package/guidelines/content-types/general/background-color-block.md +42 -0
- package/guidelines/content-types/general/basic-content-block.md +43 -0
- package/guidelines/content-types/general/body-text-copy-block.md +38 -0
- package/guidelines/content-types/general/content-image-block.md +37 -0
- package/guidelines/content-types/general/cross-sell-card-block.md +45 -0
- package/guidelines/content-types/general/decorative-list-block.md +40 -0
- package/guidelines/content-types/general/email-callout-block.md +38 -0
- package/guidelines/content-types/general/embedded-video-block.md +36 -0
- package/guidelines/content-types/general/full-size-image-with-highlight-box.md +52 -0
- package/guidelines/content-types/general/horizontal-rule.md +35 -0
- package/guidelines/content-types/general/hot-jobs-block.md +52 -0
- package/guidelines/content-types/general/inline-message.md +36 -0
- package/guidelines/content-types/general/last-chance-block.md +40 -0
- package/guidelines/content-types/general/multi-step-lead-form.md +60 -0
- package/guidelines/content-types/general/multi-testimonial.md +49 -0
- package/guidelines/content-types/general/opt-in.md +42 -0
- package/guidelines/content-types/general/overview.md +134 -24
- package/guidelines/content-types/general/product-block.md +43 -0
- package/guidelines/content-types/general/pull-quote.md +36 -0
- package/guidelines/content-types/general/recent-blog-posts-block.md +48 -0
- package/guidelines/content-types/general/resource-spotlight.md +44 -0
- package/guidelines/content-types/general/rtb-descriptive.md +53 -0
- package/guidelines/content-types/general/rtb-dynamic.md +55 -0
- package/guidelines/content-types/general/rtb-highlight.md +50 -0
- package/guidelines/content-types/general/side-menu-explorer.md +62 -0
- package/guidelines/content-types/general/simple-cta-block.md +44 -0
- package/guidelines/content-types/general/spacing-block.md +40 -0
- package/guidelines/content-types/general/speed-bump.md +45 -0
- package/guidelines/content-types/general/table-block.md +55 -0
- package/guidelines/content-types/general/wahfu.md +66 -0
- package/guidelines/content-types/header/header-cta.md +41 -0
- package/guidelines/content-types/header/header-logo.md +45 -0
- package/guidelines/content-types/header/header-product.md +45 -0
- package/guidelines/content-types/header/header-section-navigation.md +55 -0
- package/guidelines/content-types/header/header-section-title.md +43 -0
- package/guidelines/content-types/header/header-underwriter.md +46 -0
- package/guidelines/content-types/header/overview.md +61 -15
- package/guidelines/content-types/header/top-level-navigation.md +70 -0
- package/guidelines/content-types/hero/cta-hero-block.md +70 -0
- package/guidelines/content-types/hero/hero-block.md +56 -0
- package/guidelines/content-types/hero/multi-hero.md +78 -0
- package/guidelines/content-types/hero/not-available-hero-block.md +64 -0
- package/guidelines/content-types/hero/overview.md +53 -18
- package/guidelines/content-types/overview.md +86 -29
- package/guidelines/discovery.md +158 -0
- package/guidelines/setup.md +90 -16
- package/package.json +1 -1
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Simple CTA Block
|
|
2
|
+
|
|
3
|
+
**Zone:** General — Primary Column, Sideburn, Outro.
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
A lightweight call-to-action block with a headline, optional subtext, and a single primary button. Distinct from `CTA` (the inline CTA element) — `SimpleCTABlock` is a standalone section block with its own container and background treatment.
|
|
8
|
+
|
|
9
|
+
Use for mid-page conversion nudges that don't need the full weight of a Hero.
|
|
10
|
+
|
|
11
|
+
## Props
|
|
12
|
+
|
|
13
|
+
| Prop | Type | Required | Default | Description |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| `heading` | `string` | Yes | — | Block headline |
|
|
16
|
+
| `subtext` | `string` | No | — | Supporting copy, displayed below the heading |
|
|
17
|
+
| `ctaLabel` | `string` | Yes | — | Button text |
|
|
18
|
+
| `ctaHref` | `string` | Yes | — | Button destination |
|
|
19
|
+
| `ctaVariant` | `'primary' \| 'secondary'` | No | `'primary'` | Button style |
|
|
20
|
+
| `background` | `'white' \| 'gray' \| 'brand'` | No | `'white'` | Block background color |
|
|
21
|
+
| `alignment` | `'left' \| 'center'` | No | `'center'` | Text alignment |
|
|
22
|
+
| `className` | `string` | No | — | Additional CSS class |
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
import { SimpleCTABlock } from 'lion-make'
|
|
28
|
+
|
|
29
|
+
<SimpleCTABlock
|
|
30
|
+
heading="Ready to protect your family?"
|
|
31
|
+
subtext="Takes less than 5 minutes. No medical exam required."
|
|
32
|
+
ctaLabel="Get a free quote"
|
|
33
|
+
ctaHref="/quote"
|
|
34
|
+
background="gray"
|
|
35
|
+
/>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Design Tokens
|
|
39
|
+
|
|
40
|
+
- Background `gray`: `var(--color-gray-lightest)`
|
|
41
|
+
- Background `brand`: `var(--color-brand)`, text `var(--color-white)`
|
|
42
|
+
- Heading: `var(--h2-font-size)`, `var(--font-weight-700)`
|
|
43
|
+
- Subtext: `var(--body-font-size)`, `var(--font-weight-400)`
|
|
44
|
+
- Padding: `var(--padding-large-v)` vertical
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Spacing Block
|
|
2
|
+
|
|
3
|
+
**Zone:** General — Primary Column, Sideburn, Outro.
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
An invisible structural block that inserts vertical whitespace between other content types. Use to control rhythm and breathing room without wrapping content in a full Container.
|
|
8
|
+
|
|
9
|
+
Renders as an empty `<div>` with a configurable height — no visible output.
|
|
10
|
+
|
|
11
|
+
## Props
|
|
12
|
+
|
|
13
|
+
| Prop | Type | Required | Default | Description |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl'` | No | `'md'` | Vertical height of the space |
|
|
16
|
+
| `className` | `string` | No | — | Additional CSS class |
|
|
17
|
+
|
|
18
|
+
## Size Reference
|
|
19
|
+
|
|
20
|
+
| Size | Rendered height |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `xs` | `var(--spacing-xs)` — 0.8rem |
|
|
23
|
+
| `sm` | `var(--spacing-sm)` — 1.6rem |
|
|
24
|
+
| `md` | `var(--spacing-md)` — 3.2rem |
|
|
25
|
+
| `lg` | `var(--spacing-lg)` — 6.4rem |
|
|
26
|
+
| `xl` | `var(--spacing-xl)` — 9.6rem |
|
|
27
|
+
|
|
28
|
+
## Usage
|
|
29
|
+
|
|
30
|
+
```tsx
|
|
31
|
+
import { SpacingBlock } from 'lion-make'
|
|
32
|
+
|
|
33
|
+
<SpacingBlock size="lg" />
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## When to use vs Container padding
|
|
37
|
+
|
|
38
|
+
- Use `SpacingBlock` between two sibling content types that each render in their own Container.
|
|
39
|
+
- Use Container `padding` props when you need to control space inside a single Container's top/bottom.
|
|
40
|
+
- Do not use `SpacingBlock` inside a Container — that creates double-spacing artifacts.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Speed Bump
|
|
2
|
+
|
|
3
|
+
**Zone:** General — Primary Column, Outro only. Not valid in Sideburn.
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
A full-width interstitial block used to interrupt content flow and redirect user attention before they continue scrolling. Typically presents a single focused question or confirmation step — "Before you go, are you sure you're covered?" — with one or two action paths.
|
|
8
|
+
|
|
9
|
+
Use sparingly: no more than one Speed Bump per page, and only when the user decision is significant.
|
|
10
|
+
|
|
11
|
+
## Props
|
|
12
|
+
|
|
13
|
+
| Prop | Type | Required | Default | Description |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| `heading` | `string` | Yes | — | Primary question or statement |
|
|
16
|
+
| `subtext` | `string` | No | — | Supporting copy |
|
|
17
|
+
| `primaryCtaLabel` | `string` | Yes | — | Primary action label |
|
|
18
|
+
| `primaryCtaHref` | `string` | Yes | — | Primary action destination |
|
|
19
|
+
| `secondaryCtaLabel` | `string` | No | — | Secondary/dismiss action label |
|
|
20
|
+
| `secondaryCtaHref` | `string` | No | — | Secondary action destination (if omitted, acts as dismiss) |
|
|
21
|
+
| `background` | `'brand' \| 'dark' \| 'light'` | No | `'brand'` | Block background treatment |
|
|
22
|
+
| `className` | `string` | No | — | Additional CSS class |
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
import { SpeedBump } from 'lion-make'
|
|
28
|
+
|
|
29
|
+
<SpeedBump
|
|
30
|
+
heading="Not sure which plan is right for you?"
|
|
31
|
+
subtext="Talk to an agent — no sales pressure, just answers."
|
|
32
|
+
primaryCtaLabel="Chat with an agent"
|
|
33
|
+
primaryCtaHref="/contact/chat"
|
|
34
|
+
secondaryCtaLabel="Continue browsing"
|
|
35
|
+
background="brand"
|
|
36
|
+
/>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Design Tokens
|
|
40
|
+
|
|
41
|
+
- Background `brand`: `var(--color-brand)`, all text `var(--color-white)`
|
|
42
|
+
- Background `dark`: `var(--color-gray-darkest)`, all text `var(--color-white)`
|
|
43
|
+
- Background `light`: `var(--color-gray-lightest)`, text `var(--color-text)`
|
|
44
|
+
- Heading: `var(--h2-font-size)`, `var(--font-weight-700)`
|
|
45
|
+
- Padding: `var(--padding-large-v)` vertical, `var(--edge-padding)` horizontal
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Table Block
|
|
2
|
+
|
|
3
|
+
**Zone:** General — Primary Column, Outro only. Not valid in Sideburn (column too narrow).
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
A structured data table for comparing products, coverage levels, or feature matrices. Supports column highlighting, sticky header, and optional footnote row. Renders as a semantic `<table>` with accessible markup.
|
|
8
|
+
|
|
9
|
+
## Props
|
|
10
|
+
|
|
11
|
+
| Prop | Type | Required | Default | Description |
|
|
12
|
+
|---|---|---|---|---|
|
|
13
|
+
| `headers` | `string[]` | Yes | — | Column header labels |
|
|
14
|
+
| `rows` | `TableRow[]` | Yes | — | Data rows |
|
|
15
|
+
| `caption` | `string` | No | — | Accessible `<caption>` (also used as visible heading if `showCaption` is true) |
|
|
16
|
+
| `showCaption` | `boolean` | No | `false` | Render caption visibly above the table |
|
|
17
|
+
| `highlightColumn` | `number` | No | — | Zero-based index of a column to visually highlight |
|
|
18
|
+
| `stickyHeader` | `boolean` | No | `false` | Fix the header row on scroll |
|
|
19
|
+
| `footnote` | `string` | No | — | Legal or explanatory note below the table |
|
|
20
|
+
| `className` | `string` | No | — | Additional CSS class |
|
|
21
|
+
|
|
22
|
+
### TableRow
|
|
23
|
+
|
|
24
|
+
| Prop | Type | Description |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| `label` | `string` | Row header (first column) |
|
|
27
|
+
| `cells` | `(string \| React.ReactNode)[]` | Values for remaining columns |
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
import { TableBlock } from 'lion-make'
|
|
33
|
+
|
|
34
|
+
<TableBlock
|
|
35
|
+
caption="Term life coverage comparison"
|
|
36
|
+
showCaption
|
|
37
|
+
headers={['Feature', '10-Year Term', '20-Year Term', '30-Year Term']}
|
|
38
|
+
highlightColumn={2}
|
|
39
|
+
rows={[
|
|
40
|
+
{ label: 'Starting premium', cells: ['$12/mo', '$18/mo', '$26/mo'] },
|
|
41
|
+
{ label: 'Coverage amount', cells: ['$250k–$1M', '$250k–$1M', '$250k–$1M'] },
|
|
42
|
+
{ label: 'Premium changes', cells: ['Never', 'Never', 'Never'] },
|
|
43
|
+
{ label: 'Medical exam required', cells: ['No', 'No', 'Varies'] },
|
|
44
|
+
]}
|
|
45
|
+
footnote="Premiums shown are illustrative. Actual rates depend on age, health, and coverage selected."
|
|
46
|
+
/>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Design Tokens
|
|
50
|
+
|
|
51
|
+
- Header row: `var(--color-brand)` background, `var(--color-white)` text, `var(--font-weight-600)`
|
|
52
|
+
- Highlighted column header: `var(--color-teal)` background
|
|
53
|
+
- Row border: `var(--border-width-thin)` solid `var(--color-line)`
|
|
54
|
+
- Alternating rows: `var(--color-gray-lightest)` on odd rows
|
|
55
|
+
- Footnote: `var(--h6-font-size)`, `var(--color-gray)`
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# WAHFU (We Are Here For You)
|
|
2
|
+
|
|
3
|
+
**Zone:** General — Primary Column, Outro only. Not valid in Sideburn.
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
An empathy and support block for sensitive pages (claims, bereavement, illness). Acknowledges the user's situation and surfaces human support options (phone, chat, agent finder). The tone is warm and non-transactional.
|
|
8
|
+
|
|
9
|
+
"WAHFU" is the internal shorthand — do not expose this acronym in UI copy.
|
|
10
|
+
|
|
11
|
+
## Props
|
|
12
|
+
|
|
13
|
+
| Prop | Type | Required | Default | Description |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| `heading` | `string` | No | `'We're here for you'` | Block headline |
|
|
16
|
+
| `body` | `string` | No | — | Empathy statement (1–2 sentences) |
|
|
17
|
+
| `channels` | `WAHFUChannel[]` | Yes | — | List of support contact options |
|
|
18
|
+
| `background` | `'white' \| 'teal' \| 'brand'` | No | `'teal'` | Block background |
|
|
19
|
+
| `className` | `string` | No | — | Additional CSS class |
|
|
20
|
+
|
|
21
|
+
### WAHFUChannel
|
|
22
|
+
|
|
23
|
+
| Prop | Type | Required | Description |
|
|
24
|
+
|---|---|---|---|
|
|
25
|
+
| `type` | `'phone' \| 'chat' \| 'agent' \| 'email'` | Yes | Channel category (controls icon) |
|
|
26
|
+
| `label` | `string` | Yes | Display label |
|
|
27
|
+
| `href` | `string` | Yes | Link destination |
|
|
28
|
+
| `detail` | `string` | No | Hours of availability or context (e.g., "Mon–Fri 8am–8pm CT") |
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
import { WAHFU } from 'lion-make'
|
|
34
|
+
|
|
35
|
+
<WAHFU
|
|
36
|
+
heading="We're here when you need us most"
|
|
37
|
+
body="Filing a claim during a difficult time shouldn't add stress. Our team is ready to help."
|
|
38
|
+
background="teal"
|
|
39
|
+
channels={[
|
|
40
|
+
{
|
|
41
|
+
type: 'phone',
|
|
42
|
+
label: 'Call us',
|
|
43
|
+
href: 'tel:18006952654',
|
|
44
|
+
detail: 'Mon–Fri 7am–7pm CT',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
type: 'chat',
|
|
48
|
+
label: 'Chat with us',
|
|
49
|
+
href: '/chat',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
type: 'agent',
|
|
53
|
+
label: 'Find a local agent',
|
|
54
|
+
href: '/agent-finder',
|
|
55
|
+
},
|
|
56
|
+
]}
|
|
57
|
+
/>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Design Tokens
|
|
61
|
+
|
|
62
|
+
- Background `teal`: `var(--color-teal)`, text `var(--color-white)`
|
|
63
|
+
- Background `brand`: `var(--color-brand)`, text `var(--color-white)`
|
|
64
|
+
- Heading: `var(--h2-font-size)`, `var(--font-weight-700)`
|
|
65
|
+
- Channel label: `var(--h5-font-size)`, `var(--font-weight-600)`
|
|
66
|
+
- Detail: `var(--h6-font-size)`, `var(--font-weight-400)`
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Header — Call to Action
|
|
2
|
+
|
|
3
|
+
**Zone:** Header only.
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
A CTA element placed within the header bar — typically "Get a Quote", "Log In", or "Chat with us". Distinct from the general zone `CTA` and `SimpleCTABlock` components, which live in the page body.
|
|
8
|
+
|
|
9
|
+
The header CTA renders as a styled anchor. Use `variant="button"` for primary conversion actions and `variant="link"` for secondary utility links (e.g., log in).
|
|
10
|
+
|
|
11
|
+
## Props
|
|
12
|
+
|
|
13
|
+
| Prop | Type | Required | Default | Description |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| `label` | `string` | Yes | — | Button or link text |
|
|
16
|
+
| `href` | `string` | Yes | — | Destination URL |
|
|
17
|
+
| `variant` | `'button' \| 'link' \| 'phone'` | No | `'button'` | Visual treatment |
|
|
18
|
+
| `className` | `string` | No | — | Additional CSS class |
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import { Section, HeaderCTA } from 'lion-make'
|
|
24
|
+
|
|
25
|
+
<Section zone="header">
|
|
26
|
+
<HeaderCTA label="Get a quote" href="/quote" variant="button" />
|
|
27
|
+
<HeaderCTA label="Log in" href="/login" variant="link" />
|
|
28
|
+
</Section>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Placement Rules
|
|
32
|
+
|
|
33
|
+
- Header zone only. Never place in Hero, General, or Footer zones.
|
|
34
|
+
- Typically placed inside a `GlobalHeaderBar` alongside `TopLevelNavigation`.
|
|
35
|
+
- Limit to 1–2 CTAs per header to avoid visual clutter.
|
|
36
|
+
|
|
37
|
+
## Design Tokens
|
|
38
|
+
|
|
39
|
+
- Button variant: `var(--color-brand)` background, `var(--color-white)` text
|
|
40
|
+
- Link variant: `var(--color-white)` text, underline on hover
|
|
41
|
+
- Font: `var(--h5-font-size)`, `var(--font-weight-600)`
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Header — Logo
|
|
2
|
+
|
|
3
|
+
**Zone:** Header only.
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
The brand or product logo displayed in the header bar. Renders as a linked image that navigates to the homepage (or a specified destination). Every page must have exactly one `HeaderLogo`.
|
|
8
|
+
|
|
9
|
+
## Props
|
|
10
|
+
|
|
11
|
+
| Prop | Type | Required | Default | Description |
|
|
12
|
+
|---|---|---|---|---|
|
|
13
|
+
| `src` | `string` | Yes | — | Image URL |
|
|
14
|
+
| `alt` | `string` | Yes | — | Alt text (use the brand name, e.g., "Mutual of Omaha") |
|
|
15
|
+
| `href` | `string` | No | `'/'` | Link destination |
|
|
16
|
+
| `width` | `number` | No | — | Explicit image width (px) |
|
|
17
|
+
| `height` | `number` | No | — | Explicit image height (px) |
|
|
18
|
+
| `className` | `string` | No | — | Additional CSS class |
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import { Section, HeaderLogo } from 'lion-make'
|
|
24
|
+
|
|
25
|
+
<Section zone="header">
|
|
26
|
+
<HeaderLogo
|
|
27
|
+
src="/img/logo-mutual.svg"
|
|
28
|
+
alt="Mutual of Omaha"
|
|
29
|
+
href="/"
|
|
30
|
+
width={180}
|
|
31
|
+
height={40}
|
|
32
|
+
/>
|
|
33
|
+
</Section>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Placement Rules
|
|
37
|
+
|
|
38
|
+
- Header zone only.
|
|
39
|
+
- One per page — do not render multiple `HeaderLogo` instances.
|
|
40
|
+
- Typically the leftmost element inside `CorporateUniversalHeader` or `GlobalHeaderBar`.
|
|
41
|
+
|
|
42
|
+
## Design Tokens
|
|
43
|
+
|
|
44
|
+
- No background — logo file must include sufficient padding or transparent background.
|
|
45
|
+
- Wrapper link outline: `var(--color-brand)` on focus (keyboard navigation).
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Header — Product
|
|
2
|
+
|
|
3
|
+
**Zone:** Header only.
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
Displays the name (and optionally the logo and tagline) of the specific product line being featured on the page. Used on product DLPs (detail landing pages) where the header needs to identify which product the user is exploring.
|
|
8
|
+
|
|
9
|
+
Distinct from `HeaderLogo` (which is always the master brand) — `HeaderProduct` is the product-level identity layer within the same header.
|
|
10
|
+
|
|
11
|
+
## Props
|
|
12
|
+
|
|
13
|
+
| Prop | Type | Required | Default | Description |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| `name` | `string` | Yes | — | Product name (e.g., "Term Life Insurance") |
|
|
16
|
+
| `logoSrc` | `string` | No | — | Product-specific logo or lockup |
|
|
17
|
+
| `logoAlt` | `string` | No | `''` | Logo alt text |
|
|
18
|
+
| `href` | `string` | No | — | Link destination (e.g., product overview page) |
|
|
19
|
+
| `tagline` | `string` | No | — | Short descriptor below the product name |
|
|
20
|
+
| `className` | `string` | No | — | Additional CSS class |
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```tsx
|
|
25
|
+
import { Section, HeaderProduct } from 'lion-make'
|
|
26
|
+
|
|
27
|
+
<Section zone="header">
|
|
28
|
+
<HeaderProduct
|
|
29
|
+
name="Term Life Insurance"
|
|
30
|
+
tagline="Affordable coverage, guaranteed premiums"
|
|
31
|
+
href="/term-life"
|
|
32
|
+
/>
|
|
33
|
+
</Section>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Placement Rules
|
|
37
|
+
|
|
38
|
+
- Header zone only.
|
|
39
|
+
- Use on product DLPs. Not required on general marketing or homepage.
|
|
40
|
+
- Appears inside `GlobalHeaderBar`, typically between `HeaderLogo` and `TopLevelNavigation`.
|
|
41
|
+
|
|
42
|
+
## Design Tokens
|
|
43
|
+
|
|
44
|
+
- Name: `var(--h4-font-size)`, `var(--font-weight-700)`, `var(--color-white)`
|
|
45
|
+
- Tagline: `var(--h6-font-size)`, `var(--font-weight-400)`, `var(--color-white-opaque)`
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Header — Section Navigation
|
|
2
|
+
|
|
3
|
+
**Zone:** Header only.
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
A secondary navigation bar that lists the sub-sections of the current page or product area. Renders as a horizontal link list with an active state indicator for the current page. Used on section hubs and multi-page product areas to give users a persistent orientation layer.
|
|
8
|
+
|
|
9
|
+
Distinct from `TopLevelNavigation` (global, across all products) — Section Navigation is scoped to the current section or product.
|
|
10
|
+
|
|
11
|
+
## Props
|
|
12
|
+
|
|
13
|
+
| Prop | Type | Required | Default | Description |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| `items` | `SectionNavItem[]` | Yes | — | Navigation links |
|
|
16
|
+
| `ariaLabel` | `string` | No | `'Section navigation'` | Accessible label for the `<nav>` element |
|
|
17
|
+
| `className` | `string` | No | — | Additional CSS class |
|
|
18
|
+
|
|
19
|
+
### SectionNavItem
|
|
20
|
+
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
|---|---|---|---|
|
|
23
|
+
| `label` | `string` | Yes | Link text |
|
|
24
|
+
| `href` | `string` | Yes | Destination URL |
|
|
25
|
+
| `isActive` | `boolean` | No | Marks the current page link |
|
|
26
|
+
|
|
27
|
+
## Usage
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
import { Section, HeaderSectionNavigation } from 'lion-make'
|
|
31
|
+
|
|
32
|
+
<Section zone="header">
|
|
33
|
+
<HeaderSectionNavigation
|
|
34
|
+
ariaLabel="Life insurance navigation"
|
|
35
|
+
items={[
|
|
36
|
+
{ label: 'Term Life', href: '/life/term', isActive: true },
|
|
37
|
+
{ label: 'Whole Life', href: '/life/whole' },
|
|
38
|
+
{ label: 'Universal Life', href: '/life/universal' },
|
|
39
|
+
{ label: 'Compare plans', href: '/life/compare' },
|
|
40
|
+
]}
|
|
41
|
+
/>
|
|
42
|
+
</Section>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Placement Rules
|
|
46
|
+
|
|
47
|
+
- Header zone only. Renders below `GlobalHeaderBar` when used.
|
|
48
|
+
- Optional — only include when the page belongs to a multi-page section.
|
|
49
|
+
- Active link should match the current page URL exactly.
|
|
50
|
+
|
|
51
|
+
## Design Tokens
|
|
52
|
+
|
|
53
|
+
- Background: `var(--color-gray-lightest)` or transparent over header background
|
|
54
|
+
- Link: `var(--h5-font-size)`, `var(--font-weight-400)`, `var(--color-text)`
|
|
55
|
+
- Active link: `var(--font-weight-600)`, bottom border `var(--border-width-thick)` solid `var(--color-brand)`
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Header — Section Title
|
|
2
|
+
|
|
3
|
+
**Zone:** Header only.
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
Displays the title of the current section or page within the header area. Used on section index pages or campaign pages where the header itself needs to carry a clear identity heading (separate from the Hero).
|
|
8
|
+
|
|
9
|
+
Not a substitute for a `Hero` — `HeaderSectionTitle` is a compact, inline header element; the Hero is the full-width content zone below the header.
|
|
10
|
+
|
|
11
|
+
## Props
|
|
12
|
+
|
|
13
|
+
| Prop | Type | Required | Default | Description |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| `title` | `string` | Yes | — | Section or page title |
|
|
16
|
+
| `subtitle` | `string` | No | — | Short supporting line |
|
|
17
|
+
| `as` | `'h1' \| 'h2' \| 'p'` | No | `'h1'` | Semantic heading level |
|
|
18
|
+
| `className` | `string` | No | — | Additional CSS class |
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import { Section, HeaderSectionTitle } from 'lion-make'
|
|
24
|
+
|
|
25
|
+
<Section zone="header">
|
|
26
|
+
<HeaderSectionTitle
|
|
27
|
+
title="Life Insurance"
|
|
28
|
+
subtitle="Coverage that protects what matters most"
|
|
29
|
+
as="h1"
|
|
30
|
+
/>
|
|
31
|
+
</Section>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Placement Rules
|
|
35
|
+
|
|
36
|
+
- Header zone only.
|
|
37
|
+
- Use `as="h1"` when no other `<h1>` exists on the page (no Hero with an `<h1>`).
|
|
38
|
+
- If a Hero is present and carries the `<h1>`, use `as="h2"` or `as="p"` here.
|
|
39
|
+
|
|
40
|
+
## Design Tokens
|
|
41
|
+
|
|
42
|
+
- Title: `var(--h3-font-size)`, `var(--font-weight-700)`, `var(--color-white)`
|
|
43
|
+
- Subtitle: `var(--h5-font-size)`, `var(--font-weight-400)`, `var(--color-white-opaque)`
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Header — Underwriter
|
|
2
|
+
|
|
3
|
+
**Zone:** Header only.
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
Displays the underwriting company attribution — e.g., "Underwritten by United of Omaha Life Insurance Company." Required on product pages where insurance regulatory compliance mandates that the underwriter is disclosed at the page level.
|
|
8
|
+
|
|
9
|
+
Renders as a small text strip (optionally linked and optionally with a logo). Not the same as the `ComplianceBlock` in the footer — the footer compliance block handles Item Numbers and Material IDs; this is the brand-level underwriter identity.
|
|
10
|
+
|
|
11
|
+
## Props
|
|
12
|
+
|
|
13
|
+
| Prop | Type | Required | Default | Description |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| `text` | `string` | Yes | — | Underwriter attribution text |
|
|
16
|
+
| `logoSrc` | `string` | No | — | Underwriter logo URL |
|
|
17
|
+
| `logoAlt` | `string` | No | `''` | Logo alt text |
|
|
18
|
+
| `href` | `string` | No | — | Optional link (e.g., to underwriter's About page) |
|
|
19
|
+
| `className` | `string` | No | — | Additional CSS class |
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
import { Section, HeaderUnderwriter } from 'lion-make'
|
|
25
|
+
|
|
26
|
+
<Section zone="header">
|
|
27
|
+
<HeaderUnderwriter
|
|
28
|
+
text="Underwritten by United of Omaha Life Insurance Company"
|
|
29
|
+
logoSrc="/img/logo-united-of-omaha.svg"
|
|
30
|
+
logoAlt="United of Omaha Life Insurance Company"
|
|
31
|
+
/>
|
|
32
|
+
</Section>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Placement Rules
|
|
36
|
+
|
|
37
|
+
- Header zone only.
|
|
38
|
+
- Typically placed inside `CorporateUniversalHeader` (the top thin bar).
|
|
39
|
+
- Required on all product DLPs where a specific underwriting entity applies.
|
|
40
|
+
- Consult legal/compliance for exact required phrasing per product line.
|
|
41
|
+
|
|
42
|
+
## Design Tokens
|
|
43
|
+
|
|
44
|
+
- Text: `var(--h6-font-size)`, `var(--font-weight-400)`, `var(--color-white)`
|
|
45
|
+
- Logo height: 24px max within the bar
|
|
46
|
+
- Background inherits from `CorporateUniversalHeader`: `var(--color-blue-dark)`
|
|
@@ -2,33 +2,79 @@
|
|
|
2
2
|
|
|
3
3
|
**Zone rule:** These content types can only be placed in the Header zone. Never use them in Hero, General, or Footer zones.
|
|
4
4
|
|
|
5
|
-
The Header zone is
|
|
5
|
+
The Header zone is composed of two structural bars (`CorporateUniversalHeader` and `GlobalHeaderBar`) that act as containers. The 7 header content types are the individual elements placed inside those bars.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
---
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
|
12
|
-
|
|
13
|
-
|
|
|
9
|
+
## Content Types
|
|
10
|
+
|
|
11
|
+
| Content type | Component | Required | Typical bar |
|
|
12
|
+
|---|---|---|---|
|
|
13
|
+
| Call to Action | `HeaderCTA` | No | GlobalHeaderBar |
|
|
14
|
+
| Logo | `HeaderLogo` | Yes — one per page | CorporateUniversalHeader or GlobalHeaderBar |
|
|
15
|
+
| Product | `HeaderProduct` | No — product DLPs only | GlobalHeaderBar |
|
|
16
|
+
| Section Navigation | `HeaderSectionNavigation` | No | Below GlobalHeaderBar |
|
|
17
|
+
| Section Title | `HeaderSectionTitle` | No | GlobalHeaderBar |
|
|
18
|
+
| Top Level Navigation | `TopLevelNavigation` | Yes — one per page | GlobalHeaderBar |
|
|
19
|
+
| Underwriter | `HeaderUnderwriter` | Varies — required by compliance on product pages | CorporateUniversalHeader |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Header Structure
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
Header zone
|
|
27
|
+
├── CorporateUniversalHeader ← thin top bar
|
|
28
|
+
│ ├── HeaderLogo (brand logo)
|
|
29
|
+
│ └── HeaderUnderwriter (underwriter attribution, if required)
|
|
30
|
+
└── GlobalHeaderBar ← main nav bar
|
|
31
|
+
├── HeaderLogo (or HeaderProduct on product DLPs)
|
|
32
|
+
├── TopLevelNavigation (global nav with optional dropdowns)
|
|
33
|
+
├── HeaderSectionTitle (if applicable)
|
|
34
|
+
├── HeaderCTA (1–2 CTAs, e.g. "Get a quote", "Log in")
|
|
35
|
+
└── HeaderSectionNavigation (below the bar, on section hubs)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
14
39
|
|
|
15
40
|
## Placement Example
|
|
16
41
|
|
|
17
42
|
```tsx
|
|
18
|
-
import {
|
|
43
|
+
import {
|
|
44
|
+
Section,
|
|
45
|
+
CorporateUniversalHeader,
|
|
46
|
+
GlobalHeaderBar,
|
|
47
|
+
HeaderLogo,
|
|
48
|
+
HeaderUnderwriter,
|
|
49
|
+
TopLevelNavigation,
|
|
50
|
+
HeaderCTA,
|
|
51
|
+
} from 'lion-make'
|
|
19
52
|
|
|
20
53
|
<Section zone="header">
|
|
21
|
-
<CorporateUniversalHeader
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
54
|
+
<CorporateUniversalHeader>
|
|
55
|
+
<HeaderLogo src="/img/logo.svg" alt="Mutual of Omaha" href="/" />
|
|
56
|
+
<HeaderUnderwriter text="Underwritten by United of Omaha Life Insurance Company" />
|
|
57
|
+
</CorporateUniversalHeader>
|
|
58
|
+
<GlobalHeaderBar>
|
|
59
|
+
<TopLevelNavigation items={navItems} />
|
|
60
|
+
<HeaderCTA label="Get a quote" href="/quote" variant="button" />
|
|
61
|
+
<HeaderCTA label="Log in" href="/login" variant="link" />
|
|
62
|
+
</GlobalHeaderBar>
|
|
28
63
|
</Section>
|
|
29
64
|
```
|
|
30
65
|
|
|
66
|
+
---
|
|
67
|
+
|
|
31
68
|
## Files in This Section
|
|
32
69
|
|
|
70
|
+
- [header-cta.md](./header-cta.md)
|
|
71
|
+
- [header-logo.md](./header-logo.md)
|
|
72
|
+
- [header-product.md](./header-product.md)
|
|
73
|
+
- [header-section-navigation.md](./header-section-navigation.md)
|
|
74
|
+
- [header-section-title.md](./header-section-title.md)
|
|
75
|
+
- [top-level-navigation.md](./top-level-navigation.md)
|
|
76
|
+
- [header-underwriter.md](./header-underwriter.md)
|
|
77
|
+
|
|
78
|
+
Legacy structural components (bars, not content types):
|
|
33
79
|
- [corporate-universal-header.md](./corporate-universal-header.md)
|
|
34
80
|
- [global-header-bar.md](./global-header-bar.md)
|