novabenefits.com
AI Breakdown
Design export
# Design brief: the Nova Benefits Blog design language
Below is a complete design specification measured from a real, published web page. Use it as a design language for the user's product. It is not a page to reproduce.
## Reference images
- Full page: https://cdn.designmunk.com/2026/09/10171402/novabenefits-com-blog-featured.webp
- Above the fold: https://cdn.designmunk.com/2026/09/10171402/novabenefits-com-blog-featured.webp
- On DesignMunk: https://designmunk.com/nova-benefits-blog-page/
Study these for hierarchy, rhythm, spacing and density. Where an image and the written spec disagree, the spec wins: the tokens were read from the page's own CSS, the images are one rendering of it.
## Before you start
Ask the user what they are building, who it is for, and what brand assets they already have — name, colours, typefaces. Wait for their answers before writing anything. Everything below is then applied to their product, not to the reference.
## Design specification
# Nova Benefits: Calm Editorial Blog with Anchored Sidebar
## Overview
Nova Benefits presents an editorial-first layout aimed at HR leaders and benefits decision-makers. The tone is confident and calm: high legibility, generous whitespace, and minimal color, allowing vibrant article art to stand out. Density is moderate; content blocks breathe with 20–42px rhythm, and navigation remains in view for quick scanning.
## Colors
- Primary (#2e3749): Deep ink for headlines, body text, and primary links.
- Secondary (#0d3c4c): Dark teal accent for icons, highlights, or emphasis text in components.
- Neutral (#ffffff): Base surface for the page, cards, and inputs.
- Border (#e5e7eb): Subtle dividers, card outlines, rail separators, and input strokes.
- Brand-bongo-skin (#decf99): Warm supporting hue for illustrations or promotional banners.
- Brand-arona (#849ca4): Cool grey-blue for metadata, iconography, and muted states.
- Surface ({colors.neutral}): Default canvas for layouts and cards.
- On-surface ({colors.primary}): Default on-surface text and icon color.
## Typography
- Recoleta (headline-lg, 74px/1.2, 500, -0.04em): Display serif for marquee headings like All Articles. Source type is custom/self-hosted; agents should not assume availability. Close, obtainable substitutes: Fraunces, Playfair Display, or DM Serif Display.
- Inter (headline-md 50px/1.2, headline-sm 34px/1.21, headline-xs 23px/1.22, body-md 16px/1.5 at 500): Workhorse sans for section titles, card titles, metadata, and UI text. Inter is a Google font and can be loaded directly. Prefer weight 500 for body to match tokens; use 600–700 sparingly for emphasis.
## Layout
Spacing follows a 10–60px scale (10, 20, 30, 42, 60). Use 20px as the base gutter inside cards and between stacked items; 30–42px between major sections. The blog index composes as a two-column main content and a fixed-width left sidebar; on smaller breakpoints, stack with the sidebar collapsing above content. Keep card media aspect ratios consistent within each section, using the spacing tokens for internal padding.
## Elevation & Depth
Hierarchy is conveyed primarily through borders and spacing. Use shadow-sm for subtle lift on interactive tiles and shadow-md for spotlight/feature cards. Large shadows are disabled (lg/xl: none), so avoid heavy depth; prefer the Border token for delineation. Inner shadow provides a gentle 2px inset outline for focused inputs or active cards.
## Shapes
Corners are friendly and consistent: 6px (sm) for buttons and chips; 8px (md) for cards, input fields, and spotlight containers. Avoid mixed radii within a single component; radius signals interactivity and containment, not decoration.
## Components
- Button — Primary: 32px height, 8x12px padding inside, 6px radius, #2e3749 background with white text.
- Button — Secondary: 32px height, 8x12px padding, 6px radius, white background with #5d6a83 text; pair with Border token for outline if needed.
- Button — Link: Text-only control in #2e3749, radius 0; use for inline CTAs like Read More.
- Card: White surface, #2e3749 text, 8px radius, 16px padding; apply shadow-sm for hover or md for featured.
### Category Sidebar
- Vertical list of category items using 8px radius and Border (#e5e7eb). Active item uses on-surface text (#2e3749); spacing: 10–20px between items.
### Spotlight Feature
- Large article card with hero illustration, category tag, title in display style (Recoleta or Fraunces), author row. Card padding 16px, radius 8px, shadow-md.
### Trending Rail
- Compact list of 3–4 items: thumbnail, two-line title in Inter headline-xs (23px) or body-md for smaller screens, light dividers (#e5e7eb) between rows.
### Article Tiles (Grids)
- Two-up grid of article cards per category; consistent media aspect, title in Inter headline-xs, body/author in body-md. Use 20–30px gutters.
### Section Header with Read More
- Row with section label on left and a link-style or secondary button on right. Keep Read More as Button — Link with #2e3749.
### Newsletter Signup
- Title in Inter headline-sm or xs, email input with 8px radius and Border; success/error messages in body-md. Submit is Primary button at 32px height.
## Do's and Don'ts
- Do use #2e3749 for all core text and actionable links; reserve color accents for illustrations and tags.
- Do keep card padding at 16px and corners at 8px to match the rest of the library.
- Do prefer Border (#e5e7eb) and whitespace for separation; add shadow-md only to spotlight elements.
- Don't mix multiple radii inside a single module; controls stay at 6px, containers at 8px.
- Don't introduce new accent colors for UI states; use secondary (#0d3c4c) or brand-arona (#849ca4) for emphasis and metadata.
- Don't exceed Inter 500 for routine body copy; heavier weights are for short labels and headings only.
## Agent Prompt Guide
Quick color reference:
- Text: #2e3749
- Background: #ffffff
- Border: #e5e7eb
- Accent: #0d3c4c
1) Build a "Spotlight Feature" card
- Container: 100% width up to section max, background #ffffff, radius 8px, shadow md, padding 16px.
- Title: Fraunces 700 at 34px (use as Recoleta substitute), line-height 1.21, color #2e3749, letter-spacing -0.02em.
- Meta row: Inter 16px/1.5 500, color #849ca4.
- Primary CTA: 32px height button, padding 8px 12px, radius 6px, background #2e3749, text #ffffff.
2) Create a left Category Sidebar
- Stack of links in a white column; each item: background #ffffff, border 1px #e5e7eb, radius 8px, padding 16px, text Inter 16px/1.5 500 #2e3749, gap between items 10–20px.
- Active state: text #2e3749, border 2px #0d3c4c.
3) Trending list item
- Row: thumbnail (64–80px), title to the right in Inter 23px/1.22 500 #2e3749, max two lines; row padding 20px top/bottom; divider 1px #e5e7eb below.
- Hover: apply shadow-sm and underline on title.
4) Article Tile (grid)
- Card: background #ffffff, radius 8px, padding 16px, border 1px #e5e7eb.
- Title: Inter 23px/1.22 500 #2e3749; author/meta Inter 16px/1.5 500 #849ca4.
- Grid gap: 20–30px; section margin-top: 42px.
5) Newsletter signup row
- Heading: Inter 34px/1.21 500 #2e3749.
- Input: background #ffffff, border 1px #e5e7eb, radius 8px, padding 12–16px; focus uses inner shadow (inset 2px) per token.
- Submit: Primary button (32px height, 8px 12px, radius 6px, #2e3749 on #ffffff).
## Similar Brands
- Gusto: Similar calm editorial blog with navy text and white cards; Gusto leans warmer and uses larger iconography.
- Oscar Health: Clean health-insurance editorial with light borders; Oscar uses brighter blues and heavier sans display.
- Zenefits: HR/benefits content in a restrained palette; Zenefits employs stronger shadows and more colorful badges.
- Hiver Blog: Business/ops editorial using Inter and light dividers; Hiver's cards are denser with less vertical spacing.
## Tokens
### CSS custom properties
```css
:root {
/* Colors */
--color-primary: #2e3749;
--color-secondary: #0d3c4c;
--color-neutral: #ffffff;
--color-border: #e5e7eb;
--color-brand-bongo-skin: #decf99;
--color-brand-arona: #849ca4;
--color-surface: var(--color-neutral);
--color-on-surface: var(--color-primary);
/* Typography */
--text-headline-lg-size: 74px;
--text-headline-lg-weight: 500;
--text-headline-lg-leading: 1.2;
--text-headline-lg-tracking: -0.04em;
--text-headline-md-size: 50px;
--text-headline-md-weight: 500;
--text-headline-md-leading: 1.2;
--text-headline-sm-size: 34px;
--text-headline-sm-weight: 500;
--text-headline-sm-leading: 1.21;
--text-headline-xs-size: 23px;
--text-headline-xs-weight: 500;
--text-headline-xs-leading: 1.22;
--text-body-md-size: 16px;
--text-body-md-weight: 500;
--text-body-md-leading: 1.5;
--font-recoleta: "Recoleta";
--font-inter: "Inter";
/* Rounded */
--radius-sm: 6px;
--radius-md: 8px;
/* Spacing */
--spacing-xs: 10px;
--spacing-sm: 20px;
--spacing-md: 30px;
--spacing-lg: 42px;
--spacing-xl: 60px;
/* Components */
--button-primary-background-color: var(--color-primary);
--button-primary-text-color: var(--color-neutral);
--button-primary-rounded: var(--radius-sm);
--button-primary-padding: 8px 12px;
--button-primary-height: 32px;
--button-secondary-background-color: var(--color-neutral);
--button-secondary-text-color: #5d6a83;
--button-secondary-rounded: var(--radius-sm);
--button-secondary-padding: 8px 12px;
--button-secondary-height: 32px;
--button-link-text-color: var(--color-primary);
--button-link-rounded: 0px;
--card-background-color: var(--color-neutral);
--card-text-color: var(--color-primary);
--card-rounded: var(--radius-md);
--card-padding: 16px;
}
```
### Tailwind theme
```css
@theme {
--color-primary: #2e3749;
--color-secondary: #0d3c4c;
--color-neutral: #ffffff;
--color-border: #e5e7eb;
--color-brand-bongo-skin: #decf99;
--color-brand-arona: #849ca4;
--color-surface: #ffffff;
--color-on-surface: #2e3749;
--font-headline-lg: "Recoleta";
--font-headline-md: "Inter";
--font-headline-sm: "Inter";
--font-headline-xs: "Inter";
--font-body-md: "Inter";
--text-headline-lg: 74px;
--text-headline-md: 50px;
--text-headline-sm: 34px;
--text-headline-xs: 23px;
--text-body-md: 16px;
--tracking-headline-lg: -0.04em;
--font-weight-headline-lg: 500;
--font-weight-headline-md: 500;
--font-weight-headline-sm: 500;
--font-weight-headline-xs: 500;
--font-weight-body-md: 500;
--radius-sm: 6px;
--radius-md: 8px;
--spacing-xs: 10px;
--spacing-sm: 20px;
--spacing-md: 30px;
--spacing-lg: 42px;
--spacing-xl: 60px;
}
```
### Design tokens (DTCG)
```json
{
"$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
"color": {
"$type": "color",
"primary": {
"$value": {
"colorSpace": "srgb",
"components": [
0.18,
0.216,
0.286
],
"hex": "#2e3749"
}
},
"secondary": {
"$value": {
"colorSpace": "srgb",
"components": [
0.051,
0.235,
0.298
],
"hex": "#0d3c4c"
}
},
"neutral": {
"$value": {
"colorSpace": "srgb",
"components": [
1,
1,
1
],
"hex": "#ffffff"
}
},
"border": {
"$value": {
"colorSpace": "srgb",
"components": [
0.898,
0.906,
0.922
],
"hex": "#e5e7eb"
}
},
"brand-bongo-skin": {
"$value": {
"colorSpace": "srgb",
"components": [
0.871,
0.812,
0.6
],
"hex": "#decf99"
}
},
"brand-arona": {
"$value": {
"colorSpace": "srgb",
"components": [
0.518,
0.612,
0.643
],
"hex": "#849ca4"
}
},
"surface": {
"$value": {
"colorSpace": "srgb",
"components": [
1,
1,
1
],
"hex": "#ffffff"
}
},
"on-surface": {
"$value": {
"colorSpace": "srgb",
"components": [
0.18,
0.216,
0.286
],
"hex": "#2e3749"
}
}
},
"spacing": {
"$type": "dimension",
"xs": {
"$value": {
"value": 10,
"unit": "px"
}
},
"sm": {
"$value": {
"value": 20,
"unit": "px"
}
},
"md": {
"$value": {
"value": 30,
"unit": "px"
}
},
"lg": {
"$value": {
"value": 42,
"unit": "px"
}
},
"xl": {
"$value": {
"value": 60,
"unit": "px"
}
}
},
"rounded": {
"$type": "dimension",
"sm": {
"$value": {
"value": 6,
"unit": "px"
}
},
"md": {
"$value": {
"value": 8,
"unit": "px"
}
}
},
"typography": {
"headline-lg": {
"$type": "typography",
"$value": {
"fontFamily": "Recoleta",
"fontSize": {
"value": 74,
"unit": "px"
},
"fontWeight": 500,
"letterSpacing": {
"value": -0.04,
"unit": "em"
}
}
},
"headline-md": {
"$type": "typography",
"$value": {
"fontFamily": "Inter",
"fontSize": {
"value": 50,
"unit": "px"
},
"fontWeight": 500
}
},
"headline-sm": {
"$type": "typography",
"$value": {
"fontFamily": "Inter",
"fontSize": {
"value": 34,
"unit": "px"
},
"fontWeight": 500
}
},
"headline-xs": {
"$type": "typography",
"$value": {
"fontFamily": "Inter",
"fontSize": {
"value": 23,
"unit": "px"
},
"fontWeight": 500
}
},
"body-md": {
"$type": "typography",
"$value": {
"fontFamily": "Inter",
"fontSize": {
"value": 16,
"unit": "px"
},
"fontWeight": 500
}
}
}
}
```
## Rules
- **Fonts.** If the specification names a custom or self-hosted family, use one of the substitutes it names. Never reference a typeface you cannot actually load — it will fall back to a system font and undo the typography.
- **Colour.** Derive the palette from the user's brand. Use the token values as a guide to *relationships* — contrast, tint, how many accents carry the page — not as hex codes to paste.
- **Never reproduce** the wordmark, mascot, logo, brand name, illustrations, icon set, screenshots or any copy from the reference.
- **Never present the result as Nova Benefits Blog**, or imply any connection to it.
- If something is unspecified, choose clarity and legibility over decoration.
---
version: alpha
name: Nova Benefits
description: Discover healthcare that employees love
colors:
primary: "#2e3749"
secondary: "#0d3c4c"
neutral: "#ffffff"
border: "#e5e7eb"
brand-bongo-skin: "#decf99"
brand-arona: "#849ca4"
surface: "{colors.neutral}"
on-surface: "{colors.primary}"
typography:
headline-lg:
fontFamily: Recoleta
fontSize: 74px
fontWeight: 500
lineHeight: 1.2
letterSpacing: -0.04em
headline-md:
fontFamily: Inter
fontSize: 50px
fontWeight: 500
lineHeight: 1.2
headline-sm:
fontFamily: Inter
fontSize: 34px
fontWeight: 500
lineHeight: 1.21
headline-xs:
fontFamily: Inter
fontSize: 23px
fontWeight: 500
lineHeight: 1.22
body-md:
fontFamily: Inter
fontSize: 16px
fontWeight: 500
lineHeight: 1.5
rounded:
sm: 6px
md: 8px
spacing:
xs: 10px
sm: 20px
md: 30px
lg: 42px
xl: 60px
components:
button-primary:
backgroundColor: "{colors.primary}"
textColor: "{colors.neutral}"
rounded: "{rounded.sm}"
padding: 8px 12px
height: 32px
button-secondary:
backgroundColor: "{colors.neutral}"
textColor: "#5d6a83"
rounded: "{rounded.sm}"
padding: 8px 12px
height: 32px
button-link:
textColor: "{colors.primary}"
rounded: 0px
card:
backgroundColor: "{colors.neutral}"
textColor: "{colors.primary}"
rounded: "{rounded.md}"
padding: 16px
---
# Nova Benefits: Calm Editorial Blog with Anchored Sidebar
## Overview
Nova Benefits presents an editorial-first layout aimed at HR leaders and benefits decision-makers. The tone is confident and calm: high legibility, generous whitespace, and minimal color, allowing vibrant article art to stand out. Density is moderate; content blocks breathe with 20–42px rhythm, and navigation remains in view for quick scanning.
## Colors
- Primary (#2e3749): Deep ink for headlines, body text, and primary links.
- Secondary (#0d3c4c): Dark teal accent for icons, highlights, or emphasis text in components.
- Neutral (#ffffff): Base surface for the page, cards, and inputs.
- Border (#e5e7eb): Subtle dividers, card outlines, rail separators, and input strokes.
- Brand-bongo-skin (#decf99): Warm supporting hue for illustrations or promotional banners.
- Brand-arona (#849ca4): Cool grey-blue for metadata, iconography, and muted states.
- Surface ({colors.neutral}): Default canvas for layouts and cards.
- On-surface ({colors.primary}): Default on-surface text and icon color.
## Typography
- Recoleta (headline-lg, 74px/1.2, 500, -0.04em): Display serif for marquee headings like All Articles. Source type is custom/self-hosted; agents should not assume availability. Close, obtainable substitutes: Fraunces, Playfair Display, or DM Serif Display.
- Inter (headline-md 50px/1.2, headline-sm 34px/1.21, headline-xs 23px/1.22, body-md 16px/1.5 at 500): Workhorse sans for section titles, card titles, metadata, and UI text. Inter is a Google font and can be loaded directly. Prefer weight 500 for body to match tokens; use 600–700 sparingly for emphasis.
## Layout
Spacing follows a 10–60px scale (10, 20, 30, 42, 60). Use 20px as the base gutter inside cards and between stacked items; 30–42px between major sections. The blog index composes as a two-column main content and a fixed-width left sidebar; on smaller breakpoints, stack with the sidebar collapsing above content. Keep card media aspect ratios consistent within each section, using the spacing tokens for internal padding.
## Elevation & Depth
Hierarchy is conveyed primarily through borders and spacing. Use shadow-sm for subtle lift on interactive tiles and shadow-md for spotlight/feature cards. Large shadows are disabled (lg/xl: none), so avoid heavy depth; prefer the Border token for delineation. Inner shadow provides a gentle 2px inset outline for focused inputs or active cards.
## Shapes
Corners are friendly and consistent: 6px (sm) for buttons and chips; 8px (md) for cards, input fields, and spotlight containers. Avoid mixed radii within a single component; radius signals interactivity and containment, not decoration.
## Components
- Button — Primary: 32px height, 8x12px padding inside, 6px radius, #2e3749 background with white text.
- Button — Secondary: 32px height, 8x12px padding, 6px radius, white background with #5d6a83 text; pair with Border token for outline if needed.
- Button — Link: Text-only control in #2e3749, radius 0; use for inline CTAs like Read More.
- Card: White surface, #2e3749 text, 8px radius, 16px padding; apply shadow-sm for hover or md for featured.
### Category Sidebar
- Vertical list of category items using 8px radius and Border (#e5e7eb). Active item uses on-surface text (#2e3749); spacing: 10–20px between items.
### Spotlight Feature
- Large article card with hero illustration, category tag, title in display style (Recoleta or Fraunces), author row. Card padding 16px, radius 8px, shadow-md.
### Trending Rail
- Compact list of 3–4 items: thumbnail, two-line title in Inter headline-xs (23px) or body-md for smaller screens, light dividers (#e5e7eb) between rows.
### Article Tiles (Grids)
- Two-up grid of article cards per category; consistent media aspect, title in Inter headline-xs, body/author in body-md. Use 20–30px gutters.
### Section Header with Read More
- Row with section label on left and a link-style or secondary button on right. Keep Read More as Button — Link with #2e3749.
### Newsletter Signup
- Title in Inter headline-sm or xs, email input with 8px radius and Border; success/error messages in body-md. Submit is Primary button at 32px height.
## Do's and Don'ts
- Do use #2e3749 for all core text and actionable links; reserve color accents for illustrations and tags.
- Do keep card padding at 16px and corners at 8px to match the rest of the library.
- Do prefer Border (#e5e7eb) and whitespace for separation; add shadow-md only to spotlight elements.
- Don't mix multiple radii inside a single module; controls stay at 6px, containers at 8px.
- Don't introduce new accent colors for UI states; use secondary (#0d3c4c) or brand-arona (#849ca4) for emphasis and metadata.
- Don't exceed Inter 500 for routine body copy; heavier weights are for short labels and headings only.
## Agent Prompt Guide
Quick color reference:
- Text: #2e3749
- Background: #ffffff
- Border: #e5e7eb
- Accent: #0d3c4c
1) Build a "Spotlight Feature" card
- Container: 100% width up to section max, background #ffffff, radius 8px, shadow md, padding 16px.
- Title: Fraunces 700 at 34px (use as Recoleta substitute), line-height 1.21, color #2e3749, letter-spacing -0.02em.
- Meta row: Inter 16px/1.5 500, color #849ca4.
- Primary CTA: 32px height button, padding 8px 12px, radius 6px, background #2e3749, text #ffffff.
2) Create a left Category Sidebar
- Stack of links in a white column; each item: background #ffffff, border 1px #e5e7eb, radius 8px, padding 16px, text Inter 16px/1.5 500 #2e3749, gap between items 10–20px.
- Active state: text #2e3749, border 2px #0d3c4c.
3) Trending list item
- Row: thumbnail (64–80px), title to the right in Inter 23px/1.22 500 #2e3749, max two lines; row padding 20px top/bottom; divider 1px #e5e7eb below.
- Hover: apply shadow-sm and underline on title.
4) Article Tile (grid)
- Card: background #ffffff, radius 8px, padding 16px, border 1px #e5e7eb.
- Title: Inter 23px/1.22 500 #2e3749; author/meta Inter 16px/1.5 500 #849ca4.
- Grid gap: 20–30px; section margin-top: 42px.
5) Newsletter signup row
- Heading: Inter 34px/1.21 500 #2e3749.
- Input: background #ffffff, border 1px #e5e7eb, radius 8px, padding 12–16px; focus uses inner shadow (inset 2px) per token.
- Submit: Primary button (32px height, 8px 12px, radius 6px, #2e3749 on #ffffff).
## Similar Brands
- Gusto: Similar calm editorial blog with navy text and white cards; Gusto leans warmer and uses larger iconography.
- Oscar Health: Clean health-insurance editorial with light borders; Oscar uses brighter blues and heavier sans display.
- Zenefits: HR/benefits content in a restrained palette; Zenefits employs stronger shadows and more colorful badges.
- Hiver Blog: Business/ops editorial using Inter and light dividers; Hiver's cards are denser with less vertical spacing.
:root {
/* Colors */
--color-primary: #2e3749;
--color-secondary: #0d3c4c;
--color-neutral: #ffffff;
--color-border: #e5e7eb;
--color-brand-bongo-skin: #decf99;
--color-brand-arona: #849ca4;
--color-surface: var(--color-neutral);
--color-on-surface: var(--color-primary);
/* Typography */
--text-headline-lg-size: 74px;
--text-headline-lg-weight: 500;
--text-headline-lg-leading: 1.2;
--text-headline-lg-tracking: -0.04em;
--text-headline-md-size: 50px;
--text-headline-md-weight: 500;
--text-headline-md-leading: 1.2;
--text-headline-sm-size: 34px;
--text-headline-sm-weight: 500;
--text-headline-sm-leading: 1.21;
--text-headline-xs-size: 23px;
--text-headline-xs-weight: 500;
--text-headline-xs-leading: 1.22;
--text-body-md-size: 16px;
--text-body-md-weight: 500;
--text-body-md-leading: 1.5;
--font-recoleta: "Recoleta";
--font-inter: "Inter";
/* Rounded */
--radius-sm: 6px;
--radius-md: 8px;
/* Spacing */
--spacing-xs: 10px;
--spacing-sm: 20px;
--spacing-md: 30px;
--spacing-lg: 42px;
--spacing-xl: 60px;
/* Components */
--button-primary-background-color: var(--color-primary);
--button-primary-text-color: var(--color-neutral);
--button-primary-rounded: var(--radius-sm);
--button-primary-padding: 8px 12px;
--button-primary-height: 32px;
--button-secondary-background-color: var(--color-neutral);
--button-secondary-text-color: #5d6a83;
--button-secondary-rounded: var(--radius-sm);
--button-secondary-padding: 8px 12px;
--button-secondary-height: 32px;
--button-link-text-color: var(--color-primary);
--button-link-rounded: 0px;
--card-background-color: var(--color-neutral);
--card-text-color: var(--color-primary);
--card-rounded: var(--radius-md);
--card-padding: 16px;
}
{
"$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
"$description": "Discover healthcare that employees love",
"color": {
"$type": "color",
"primary": {
"$value": {
"colorSpace": "srgb",
"components": [
0.18,
0.216,
0.286
],
"hex": "#2e3749"
}
},
"secondary": {
"$value": {
"colorSpace": "srgb",
"components": [
0.051,
0.235,
0.298
],
"hex": "#0d3c4c"
}
},
"neutral": {
"$value": {
"colorSpace": "srgb",
"components": [
1,
1,
1
],
"hex": "#ffffff"
}
},
"border": {
"$value": {
"colorSpace": "srgb",
"components": [
0.898,
0.906,
0.922
],
"hex": "#e5e7eb"
}
},
"brand-bongo-skin": {
"$value": {
"colorSpace": "srgb",
"components": [
0.871,
0.812,
0.6
],
"hex": "#decf99"
}
},
"brand-arona": {
"$value": {
"colorSpace": "srgb",
"components": [
0.518,
0.612,
0.643
],
"hex": "#849ca4"
}
},
"surface": {
"$value": {
"colorSpace": "srgb",
"components": [
1,
1,
1
],
"hex": "#ffffff"
}
},
"on-surface": {
"$value": {
"colorSpace": "srgb",
"components": [
0.18,
0.216,
0.286
],
"hex": "#2e3749"
}
}
},
"spacing": {
"$type": "dimension",
"xs": {
"$value": {
"value": 10,
"unit": "px"
}
},
"sm": {
"$value": {
"value": 20,
"unit": "px"
}
},
"md": {
"$value": {
"value": 30,
"unit": "px"
}
},
"lg": {
"$value": {
"value": 42,
"unit": "px"
}
},
"xl": {
"$value": {
"value": 60,
"unit": "px"
}
}
},
"rounded": {
"$type": "dimension",
"sm": {
"$value": {
"value": 6,
"unit": "px"
}
},
"md": {
"$value": {
"value": 8,
"unit": "px"
}
}
},
"typography": {
"headline-lg": {
"$type": "typography",
"$value": {
"fontFamily": "Recoleta",
"fontSize": {
"value": 74,
"unit": "px"
},
"fontWeight": 500,
"letterSpacing": {
"value": -0.04,
"unit": "em"
}
}
},
"headline-md": {
"$type": "typography",
"$value": {
"fontFamily": "Inter",
"fontSize": {
"value": 50,
"unit": "px"
},
"fontWeight": 500
}
},
"headline-sm": {
"$type": "typography",
"$value": {
"fontFamily": "Inter",
"fontSize": {
"value": 34,
"unit": "px"
},
"fontWeight": 500
}
},
"headline-xs": {
"$type": "typography",
"$value": {
"fontFamily": "Inter",
"fontSize": {
"value": 23,
"unit": "px"
},
"fontWeight": 500
}
},
"body-md": {
"$type": "typography",
"$value": {
"fontFamily": "Inter",
"fontSize": {
"value": 16,
"unit": "px"
},
"fontWeight": 500
}
}
}
} @theme {
--color-primary: #2e3749;
--color-secondary: #0d3c4c;
--color-neutral: #ffffff;
--color-border: #e5e7eb;
--color-brand-bongo-skin: #decf99;
--color-brand-arona: #849ca4;
--color-surface: #ffffff;
--color-on-surface: #2e3749;
--font-headline-lg: "Recoleta";
--font-headline-md: "Inter";
--font-headline-sm: "Inter";
--font-headline-xs: "Inter";
--font-body-md: "Inter";
--text-headline-lg: 74px;
--text-headline-md: 50px;
--text-headline-sm: 34px;
--text-headline-xs: 23px;
--text-body-md: 16px;
--tracking-headline-lg: -0.04em;
--font-weight-headline-lg: 500;
--font-weight-headline-md: 500;
--font-weight-headline-sm: 500;
--font-weight-headline-xs: 500;
--font-weight-body-md: 500;
--radius-sm: 6px;
--radius-md: 8px;
--spacing-xs: 10px;
--spacing-sm: 20px;
--spacing-md: 30px;
--spacing-lg: 42px;
--spacing-xl: 60px;
} # Design brief: the Nova Benefits Blog design language
Below is a complete design specification measured from a real, published web page. Use it as a design language for the user's product. It is not a page to reproduce.
## Reference images
- Full page: https://cdn.designmunk.com/2026/09/10171402/novabenefits-com-blog-featured.webp
- Above the fold: https://cdn.designmunk.com/2026/09/10171402/novabenefits-com-blog-featured.webp
- On DesignMunk: https://designmunk.com/nova-benefits-blog-page/
Study these for hierarchy, rhythm, spacing and density. Where an image and the written spec disagree, the spec wins: the tokens were read from the page's own CSS, the images are one rendering of it.
## Before you start
Ask the user what they are building, who it is for, and what brand assets they already have — name, colours, typefaces. Wait for their answers before writing anything. Everything below is then applied to their product, not to the reference.
## Design specification
# Nova Benefits: Calm Editorial Blog with Anchored Sidebar
## Overview
Nova Benefits presents an editorial-first layout aimed at HR leaders and benefits decision-makers. The tone is confident and calm: high legibility, generous whitespace, and minimal color, allowing vibrant article art to stand out. Density is moderate; content blocks breathe with 20–42px rhythm, and navigation remains in view for quick scanning.
## Colors
- Primary (#2e3749): Deep ink for headlines, body text, and primary links.
- Secondary (#0d3c4c): Dark teal accent for icons, highlights, or emphasis text in components.
- Neutral (#ffffff): Base surface for the page, cards, and inputs.
- Border (#e5e7eb): Subtle dividers, card outlines, rail separators, and input strokes.
- Brand-bongo-skin (#decf99): Warm supporting hue for illustrations or promotional banners.
- Brand-arona (#849ca4): Cool grey-blue for metadata, iconography, and muted states.
- Surface ({colors.neutral}): Default canvas for layouts and cards.
- On-surface ({colors.primary}): Default on-surface text and icon color.
## Typography
- Recoleta (headline-lg, 74px/1.2, 500, -0.04em): Display serif for marquee headings like All Articles. Source type is custom/self-hosted; agents should not assume availability. Close, obtainable substitutes: Fraunces, Playfair Display, or DM Serif Display.
- Inter (headline-md 50px/1.2, headline-sm 34px/1.21, headline-xs 23px/1.22, body-md 16px/1.5 at 500): Workhorse sans for section titles, card titles, metadata, and UI text. Inter is a Google font and can be loaded directly. Prefer weight 500 for body to match tokens; use 600–700 sparingly for emphasis.
## Layout
Spacing follows a 10–60px scale (10, 20, 30, 42, 60). Use 20px as the base gutter inside cards and between stacked items; 30–42px between major sections. The blog index composes as a two-column main content and a fixed-width left sidebar; on smaller breakpoints, stack with the sidebar collapsing above content. Keep card media aspect ratios consistent within each section, using the spacing tokens for internal padding.
## Elevation & Depth
Hierarchy is conveyed primarily through borders and spacing. Use shadow-sm for subtle lift on interactive tiles and shadow-md for spotlight/feature cards. Large shadows are disabled (lg/xl: none), so avoid heavy depth; prefer the Border token for delineation. Inner shadow provides a gentle 2px inset outline for focused inputs or active cards.
## Shapes
Corners are friendly and consistent: 6px (sm) for buttons and chips; 8px (md) for cards, input fields, and spotlight containers. Avoid mixed radii within a single component; radius signals interactivity and containment, not decoration.
## Components
- Button — Primary: 32px height, 8x12px padding inside, 6px radius, #2e3749 background with white text.
- Button — Secondary: 32px height, 8x12px padding, 6px radius, white background with #5d6a83 text; pair with Border token for outline if needed.
- Button — Link: Text-only control in #2e3749, radius 0; use for inline CTAs like Read More.
- Card: White surface, #2e3749 text, 8px radius, 16px padding; apply shadow-sm for hover or md for featured.
### Category Sidebar
- Vertical list of category items using 8px radius and Border (#e5e7eb). Active item uses on-surface text (#2e3749); spacing: 10–20px between items.
### Spotlight Feature
- Large article card with hero illustration, category tag, title in display style (Recoleta or Fraunces), author row. Card padding 16px, radius 8px, shadow-md.
### Trending Rail
- Compact list of 3–4 items: thumbnail, two-line title in Inter headline-xs (23px) or body-md for smaller screens, light dividers (#e5e7eb) between rows.
### Article Tiles (Grids)
- Two-up grid of article cards per category; consistent media aspect, title in Inter headline-xs, body/author in body-md. Use 20–30px gutters.
### Section Header with Read More
- Row with section label on left and a link-style or secondary button on right. Keep Read More as Button — Link with #2e3749.
### Newsletter Signup
- Title in Inter headline-sm or xs, email input with 8px radius and Border; success/error messages in body-md. Submit is Primary button at 32px height.
## Do's and Don'ts
- Do use #2e3749 for all core text and actionable links; reserve color accents for illustrations and tags.
- Do keep card padding at 16px and corners at 8px to match the rest of the library.
- Do prefer Border (#e5e7eb) and whitespace for separation; add shadow-md only to spotlight elements.
- Don't mix multiple radii inside a single module; controls stay at 6px, containers at 8px.
- Don't introduce new accent colors for UI states; use secondary (#0d3c4c) or brand-arona (#849ca4) for emphasis and metadata.
- Don't exceed Inter 500 for routine body copy; heavier weights are for short labels and headings only.
## Agent Prompt Guide
Quick color reference:
- Text: #2e3749
- Background: #ffffff
- Border: #e5e7eb
- Accent: #0d3c4c
1) Build a "Spotlight Feature" card
- Container: 100% width up to section max, background #ffffff, radius 8px, shadow md, padding 16px.
- Title: Fraunces 700 at 34px (use as Recoleta substitute), line-height 1.21, color #2e3749, letter-spacing -0.02em.
- Meta row: Inter 16px/1.5 500, color #849ca4.
- Primary CTA: 32px height button, padding 8px 12px, radius 6px, background #2e3749, text #ffffff.
2) Create a left Category Sidebar
- Stack of links in a white column; each item: background #ffffff, border 1px #e5e7eb, radius 8px, padding 16px, text Inter 16px/1.5 500 #2e3749, gap between items 10–20px.
- Active state: text #2e3749, border 2px #0d3c4c.
3) Trending list item
- Row: thumbnail (64–80px), title to the right in Inter 23px/1.22 500 #2e3749, max two lines; row padding 20px top/bottom; divider 1px #e5e7eb below.
- Hover: apply shadow-sm and underline on title.
4) Article Tile (grid)
- Card: background #ffffff, radius 8px, padding 16px, border 1px #e5e7eb.
- Title: Inter 23px/1.22 500 #2e3749; author/meta Inter 16px/1.5 500 #849ca4.
- Grid gap: 20–30px; section margin-top: 42px.
5) Newsletter signup row
- Heading: Inter 34px/1.21 500 #2e3749.
- Input: background #ffffff, border 1px #e5e7eb, radius 8px, padding 12–16px; focus uses inner shadow (inset 2px) per token.
- Submit: Primary button (32px height, 8px 12px, radius 6px, #2e3749 on #ffffff).
## Tokens
### CSS custom properties
```css
:root {
/* Colors */
--color-primary: #2e3749;
--color-secondary: #0d3c4c;
--color-neutral: #ffffff;
--color-border: #e5e7eb;
--color-brand-bongo-skin: #decf99;
--color-brand-arona: #849ca4;
--color-surface: var(--color-neutral);
--color-on-surface: var(--color-primary);
/* Typography */
--text-headline-lg-size: 74px;
--text-headline-lg-weight: 500;
--text-headline-lg-leading: 1.2;
--text-headline-lg-tracking: -0.04em;
--text-headline-md-size: 50px;
--text-headline-md-weight: 500;
--text-headline-md-leading: 1.2;
--text-headline-sm-size: 34px;
--text-headline-sm-weight: 500;
--text-headline-sm-leading: 1.21;
--text-headline-xs-size: 23px;
--text-headline-xs-weight: 500;
--text-headline-xs-leading: 1.22;
--text-body-md-size: 16px;
--text-body-md-weight: 500;
--text-body-md-leading: 1.5;
--font-recoleta: "Recoleta";
--font-inter: "Inter";
/* Rounded */
--radius-sm: 6px;
--radius-md: 8px;
/* Spacing */
--spacing-xs: 10px;
--spacing-sm: 20px;
--spacing-md: 30px;
--spacing-lg: 42px;
--spacing-xl: 60px;
/* Components */
--button-primary-background-color: var(--color-primary);
--button-primary-text-color: var(--color-neutral);
--button-primary-rounded: var(--radius-sm);
--button-primary-padding: 8px 12px;
--button-primary-height: 32px;
--button-secondary-background-color: var(--color-neutral);
--button-secondary-text-color: #5d6a83;
--button-secondary-rounded: var(--radius-sm);
--button-secondary-padding: 8px 12px;
--button-secondary-height: 32px;
--button-link-text-color: var(--color-primary);
--button-link-rounded: 0px;
--card-background-color: var(--color-neutral);
--card-text-color: var(--color-primary);
--card-rounded: var(--radius-md);
--card-padding: 16px;
}
```
## Rules
- **Fonts.** If the specification names a custom or self-hosted family, use one of the substitutes it names. Never reference a typeface you cannot actually load — it will fall back to a system font and undo the typography.
- **Colour.** Derive the palette from the user's brand. Use the token values as a guide to *relationships* — contrast, tint, how many accents carry the page — not as hex codes to paste.
- **Never reproduce** the wordmark, mascot, logo, brand name, illustrations, icon set, screenshots or any copy from the reference.
- **Never present the result as Nova Benefits Blog**, or imply any connection to it.
- If something is unspecified, choose clarity and legibility over decoration.

