Hazel Design System
Hazel is a friendly, slightly hand-made business UI kit. A near-black nav bar sits over a pale-blue hero, and big bold Space Grotesk headlines are framed by marker-pen doodles: a blue scribbled ellipse, black zig-zag waves, a dark half-circle bleeding off the edge, and scattered dots. The rest is crisp and white, with a vivid dodger-blue band and rows of page previews.
The published home is a "Welcome" index of the kit: groups of page screenshots (Landings, Company, Case Study) with a bold black label under each. Inner pages reuse the same parts: pale-blue headers with a brush-stroke blue shape on the right, white bodies and the dark footer.
Four signatures make it recognisable:
- Hand-drawn doodles. Loose marker scribbles (a blue looped ellipse top-left, black wavy lines, dot sprays) sit on the corners of hero and header bands, often half off the edge.
- Pale-blue hero, bright-blue band. The hero is tint #E0F0FF; directly below it a full-width accent #3898EC band holds three white circles of about 90px with line icons and centred white copy.
- Square-cornered button pair. A soft steel-blue (#A1C4E4) Purchase Hazel button next to a near-black (#121217) Landings ▾ dropdown button, both 58px tall with only a 4px radius.
- Black nav, black footer. The 80px nav bar and the footer are both #121217 with white bold links, so the white page is bracketed by dark bars.
Colors
Surfaces
#FFFFFFPage background and the preview sections
#EEF7FFLighter blue tint (--alice-blue) for cards and panels on inner pages
#FFFFFFInputs; the border turns primary on hover
#29335C · 15%With field: Inputs; the border turns primary on hover
#333333Typed text in inputs
#121217Footer and its CTA
Ink
#FFFFFFText on primary
#FFFFFFText on secondary
#FFFFFFText on accent
#000000Headlines, preview labels, links
#121217Default body colour (--black-2)
#000000Paragraphs (base p is #000 at weight 600); same as ink
#414147Hero lead and section subtitles (--dim-grey), placeholders, checkbox labels
#FFFFFFText on inverse-canvas
#FFFFFF · 70%Copyright and Hazel by Deni Bozo
Action
#A1C4E4Main filled button (--light-steel-blue), search button, nav underline
#3898EC.button-primary:hover and .search-button:hover
#121217Dark dropdown button (Landings ▾), back-to-top square
#3898ECFeature band, blockquotes, white-button text, field hover text
Lines & effects
#E0F0FFHero band (--alice-blue-section)
#29335C · 10%1px frames around preview cards
#121217Nav bar (inside a #000000 sticky wrapper)
#111111Dropdown-link hover fill on the dark menu
#000000 · 5%The soft shadow under the white feature-icon circles
Typography
Space Grotesk · display-hero
The quick brown fox jumpsSee the power behind Hazel template. 70px · 700 · 0.96
Space Grotesk · headline-lg
The quick brown fox jumpsGroup titles: Landings, Company, Case Study. 42px · 700 · 1.17
Space Grotesk · title-lg
The quick brown fox jumpsHero lead and group subtitles in ink-subtle. 24px · 500 · 1.17
Space Grotesk · body-lg
The quick brown fox jumpsFeature-band copy in white (hazel-title). 19px · 600 · 1.16
Space Grotesk · label
The quick brown fox jumpsButtons and nav links. 17px · 700 · 1.18
Space Grotesk · caption
The quick brown fox jumpsInputs and checkbox labels. 14px · 600 · 1.5
Spacing & shape
| Purpose | Value |
|---|---|
| Container | max 1130px, centred |
| Section rhythm | 100px top and bottom (.section); 80px at ≤767 and 60px at ≤479 |
| Breakpoints | 991px, 767px and 479px |
Spacing scale
| Token | Value | Preview |
|---|---|---|
xs | 7px | |
sm | 12px | |
md | 16px | |
lg | 30px | |
xl | 40px | |
2xl | 50px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
column-gap | 50px | |
band-top | 70px | |
band-bottom | 80px | |
nav-height | 80px | |
section | 100px | |
hero | 105px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Button and link hover | CSS transition: all 0.3s; buttons change colour, footer links fade to 60% |
| Nav link hover | transition: all 0.2s; the 2px underline grows with a 300ms ease size change |
| Scroll fade-in | Scroll into view: opacity 0 → 1 over 1000ms outQuart, moving back to 0 |
| Dropdown open | Arrow rotates 300ms ease; the list fades in over 300–350ms ease |
| Scroll-linked drift | Scroll-linked moves of up to y: -100px (500ms) |
| Menu button | Bar moves of y: ±6px over 300–500ms |
Do’s and don’ts
- Bracket pages with the #121217 nav and footer, with a pale-blue tint #E0F0FF hero under the nav.
- Centre group titles in headline-lg (42px, 700) black with a 24px weight-500 #414147 subtitle.
- Pair a primary #A1C4E4 button with a #121217 dark button, both 58px tall with a 4px radius.
- Keep button labels at 17px weight 700: white on #A1C4E4 is only about 1.8:1, and the #3898EC hover and the white button with #3898EC text are about 3:1. These are the template's real colours.
- Add one or two hand-drawn doodles (blue scribble, black waves, dot spray) to hero corners, partly off the edge.
- Frame previews and cards with a 1px #29335C1A border and a 5px radius.
- Use #3898EC for the bright band and pull quotes, with text at 19px semibold or larger.
- Round buttons beyond 4px or make pill buttons.
- Use DM Sans or Kalam; nothing on the page is set in them.
- Put blue text on white for paragraphs, or white text on #A1C4E4 below 17px bold.
- Add heavy shadows; the only one is the 5% black 0 15px 25px under icon circles.
- Use more than one bright-blue band in a row, or put doodles on every section.
- Use uppercase, letter spacing or weights below 500.
Example prompt
Any page in the Hazel style
More design systems like this
Business design systems, the same colors first.
Bring any of them to your AI tool
All Access unlocks all 398 design systems, ready for Claude, ChatGPT, Gemini, Cursor, v0 and Lovable, plus 400+ templates on all 5 platforms.
Get All AccessUpgrade to All AccessHow to use the Hazel design system
Pick a file to see what it’s for and where it goes.
What it is
The whole design system in one markdown file, written for AI: every color, type style, spacing value, component and motion rule, plus do's, don'ts and a ready prompt.
Best for
Claude, ChatGPT, Gemini, Cursor and v0, or any other AI tool that builds pages or code.
How to use it
- Put
DESIGN.mdin your project and mention it in your request, or save it as.cursor/rules/hazel.mdc - For the rule file, start it with a front-matter block that sets
alwaysApply: true, so every chat uses it - Ask: “Build a pricing page using DESIGN.md.” Cursor follows the colors, fonts, spacing and rules
- Put
DESIGN.mdin the project root - Add one line to
CLAUDE.md: “Follow DESIGN.md for all UI.” - Ask for any page or component; Claude reads the file first
- Attach
DESIGN.mdto the chat (or paste it in) - Ask: “Build a landing page in this design system.”
- Keep the file in the chat or project knowledge, so follow-up pages stay on style
What it is
Every token as data, in the W3C Design Tokens format: colors with their roles, type styles, radius, spacing, and component tokens that point at them.
Best for
Figma (Tokens Studio), Style Dictionary and other design-token tools, and build scripts.
How to use it
- In Figma, open Tokens Studio, choose Import, and pick
tokens.json - Or point Style Dictionary’s
sourceat it to generate tokens for any platform - In code, import it like any JSON file
What it is
A Tailwind CSS v4 theme: every color, font, type style, radius and spacing value becomes a Tailwind utility, like bg-canvas, text-headline-lg or rounded-md.
Best for
Tailwind v4 projects, and AI builders that write Tailwind (v0, Lovable, Bolt).
How to use it
- Save
theme.cssnext to your main CSS file - Import it after Tailwind:
@import "tailwindcss"; @import "./theme.css"; - Use the classes:
bg-canvas text-ink rounded-md p-lg
What it is
The same tokens as plain CSS variables on :root. Component values point at the color variables, so changing one color updates everything that uses it.
Best for
Any website: plain CSS, Webflow custom code, Framer, WordPress.
How to use it
- Add it to your stylesheet, or in Webflow paste it into Site settings → Custom code inside a
<style>tag - Use the variables anywhere:
color: var(--color-ink) - Change a token once and every place that uses it follows






