Design Direction
This is a system for a brand that takes chicken seriously but does not take itself seriously. It belongs in the world of neighborhood restaurants, meal kit boxes, and food apps where appetite is the first design priority. Nothing here is precious. The canvas texture suggests a linen tablecloth or kraft paper bag. The layered elevation gives cards a slightly physical quality, like menu inserts you can pick up and handle.
Colour Strategy
The primary is a deep roasted-skin amber, the kind that reads unmistakably as hot food. The secondary shifts toward a warm golden yellow, holding the analogous relationship and reinforcing the sense of a meal coming out of the oven. The accent is a punchy terracotta-paprika red that adds appetite tension without breaking the warmth of the palette. All three sit at high saturation because this is not a restrained brand. It is a loud, honest kitchen.
Typography Strategy
Alfa Slab One at its default weight (400) delivers the heaviness of a hand-painted restaurant sign without needing to be bolded further. Slab serifs carry a food-service legacy that feels printed, physical, and confident. Cabin as the body font keeps things warm and humanist, easy to read on a menu card or a mobile screen. The 1.333 ratio gives clear size jumps between heading levels, useful when you are scanning for a dish name.
Colour Palette
primary
#dd873c
secondary
#d5b844
accent
#ed522c
neutral
#918c88
success
#78c520
warning
#d49a11
error
#c52e20
info
#2081c5
Typography
Design is intelligence made visible
Great typography is the foundation of great design. The pairing of heading and body typefaces creates a visual hierarchy that guides the reader through content with clarity and purpose, while expressing personality at every level.
Selection colour · highlighted text looks like this · try selecting any text on this page
Spacing
4px base unit · balanced density
Border radius
none
0px
sm
4px
md
10px
lg
18px
xl
28px
full
9999px
Elevation
Shadows
0 1px 3px rgba(221, 135, 60, 0.08), 0 1px 2px rgba(221, 135, 60, 0.06)
0 4px 6px -1px rgba(221, 135, 60, 0.1), 0 2px 4px -2px rgba(221, 135, 60, 0.08)
0 20px 25px -5px rgba(221, 135, 60, 0.12), 0 8px 10px -6px rgba(221, 135, 60, 0.08)
Texture
canvas · opacity 1 · normal blend
Grid
balanced · 12 columns · 24px gutter · 40px margin · 1280px max
Motion
Hover, click, and interact to see the motion tokens in action.
80ms
150ms
300ms
450ms
600ms
Easings
Hover states, colour changes, most transitions
cubic-bezier(0.4, 0, 0.2, 1)
Elements appearing - modals, dropdowns, toasts
cubic-bezier(0, 0, 0.2, 1)
Elements leaving - dismissals, close animations
cubic-bezier(0.4, 0, 1, 1)
Playful feedback - toggles, badges, confirmations
cubic-bezier(0.34, 1.4, 0.64, 1)
Physics-based - drag, gestures, elastic effects
cubic-bezier(0.25, 1.1, 0.5, 1)
Iconography
Icon style derived from the system's personality, mood, and visual tokens.
Recommended library
Material Symbols
Comprehensive icon system with variable weight and fill
Browse Material Symbols ↗Also consider Lucide — Clean geometric icons with consistent stroke weight
Stroke weight
1.5px
Matches border width (1px)
Corner rounding
4px
Use for icon containers
Icon set preview (default) — 1.5px stroke
Size scale
xs
12px
sm
16px
md
20px
lg
24px
xl
32px
On colour
primary
secondary
accent
muted
error
success
ComponentsPro
Component showcase is a Pro feature
Upgrade to see fully themed buttons, inputs, cards, badges, and more - all wired to this system's tokens.
PatternsPro
Patterns are a Pro feature
Upgrade to see fully themed form layouts, empty states, loading skeletons, and error handling - all built with this system's tokens.
Export
:root {
/* ─── Colors: Primary ─── */
--color-primary-50: #f9f7f6;
--color-primary-100: #f1ede9;
--color-primary-200: #ecddd0;
--color-primary-300: #eec4a0;
--color-primary-400: #e7aa74;
--color-primary-500: #dd873c;
--color-primary-600: #c36d22;
--color-primary-700: #a05a1c;
--color-primary-800: #69482b;
--color-primary-900: #41352a;
--color-primary-950: #2b231c;
/* ─── Colors: Secondary ─── */
--color-secondary-50: #f9f8f6;
--color-secondary-100: #f1efea;
--color-secondary-200: #eae5d1;
--color-secondary-300: #eadca4;
--color-secondary-400: #e1cc7a;
--color-secondary-500: #d5b844;
--color-secondary-600: #bb9e2a;
--color-secondary-700: #9a8223;
--color-secondary-800: #665b2e;
--color-secondary-900: #403c2b;
--color-secondary-950: #2a281d;
/* ─── Colors: Accent ─── */
--color-accent-50: #f9f6f5;
--color-accent-100: #f2eae9;
--color-accent-200: #efd4cd;
--color-accent-300: #f6ab98;
--color-accent-400: #f28469;
--color-accent-500: #ed522c;
--color-accent-600: #d33912;
--color-accent-700: #ae2f0f;
--color-accent-800: #6f3425;
--color-accent-900: #432d28;
--color-accent-950: #2d1e1b;
/* ─── Colors: Neutral ─── */
--color-neutral-50: #f8f7f7;
--color-neutral-100: #eeedec;
--color-neutral-200: #dfdedd;
--color-neutral-300: #c9c7c5;
--color-neutral-400: #b1adaa;
--color-neutral-500: #918c88;
--color-neutral-600: #77726e;
--color-neutral-700: #625e5b;
--color-neutral-800: #4d4a47;
--color-neutral-900: #383533;
--color-neutral-950: #252422;
/* ─── Colors: Semantic ─── */
--color-success: #78c520;
--color-success-light: #f2f6ef;
--color-warning: #d49a11;
--color-warning-light: #f7f4ee;
--color-error: #c52e20;
--color-error-light: #f6efef;
--color-info: #2081c5;
--color-info-light: #eff3f6;
/* ─── Colors: Surface ─── */
--color-background: #fafafa;
--color-foreground: #1c1917;
--color-card: #FFFFFF;
--color-card-foreground: #1c1917;
--color-muted: #f3f2f2;
--color-muted-foreground: #6b6661;
--color-border: #e7e6e4;
--color-input: #e2e1df;
--color-ring: #d18847;
/* ─── Typography ─── */
--font-heading: Alfa Slab One, serif;
--font-body: Cabin, sans-serif;
--font-mono: JetBrains Mono, monospace;
/* ─── Spacing ─── */
--space-lg: 24px;
--space-md: 16px;
--space-sm: 8px;
--space-xl: 32px;
--space-xs: 4px;
--space-2xl: 48px;
--space-3xl: 64px;
--space-4xl: 96px;
/* ─── Border Radius ─── */
--radius-lg: 18px;
--radius-md: 10px;
--radius-sm: 4px;
--radius-xl: 28px;
--radius-full: 9999px;
--radius-none: 0px;
/* ─── Shadows ─── */
--shadow-low: 0 1px 3px rgba(221, 135, 60, 0.08), 0 1px 2px rgba(221, 135, 60, 0.06);
--shadow-mid: 0 4px 6px -1px rgba(221, 135, 60, 0.1), 0 2px 4px -2px rgba(221, 135, 60, 0.08);
--shadow-high: 0 20px 25px -5px rgba(221, 135, 60, 0.12), 0 8px 10px -6px rgba(221, 135, 60, 0.08);
/* ─── Motion ─── */
--duration-micro: 80ms;
--duration-fast: 150ms;
--duration-normal: 300ms;
--duration-slow: 450ms;
--duration-glacial: 600ms;
--easing-default: cubic-bezier(0.4, 0, 0.2, 1);
--easing-entrance: cubic-bezier(0, 0, 0.2, 1);
--easing-exit: cubic-bezier(0.4, 0, 1, 1);
--easing-bounce: cubic-bezier(0.34, 1.4, 0.64, 1);
--easing-spring: cubic-bezier(0.25, 1.1, 0.5, 1);
/* ─── Elevation ─── */
--elevation-sunken: #f0f0ef;
--elevation-base: #fafafa;
--elevation-raised: #FFFFFF;
--elevation-floating: #FFFFFF;
--elevation-overlay: #fdfcfc;
/* ─── Component Scale (balanced) ─── */
--comp-padding-x: 16px;
--comp-padding-y: 10px;
--comp-gap: 10px;
--comp-border-width: 1px;
--comp-font-size: 14px;
--comp-input-height: 40px;
--comp-button-height: 40px;
--comp-icon-size: 16px;
/* ─── Grid (balanced) ─── */
--grid-columns: 12;
--grid-gutter: 24px;
--grid-margin: 40px;
--grid-max-width: 1280px;
/* ─── Selection ─── */
--selection-bg: #ecddd0;
--selection-fg: #41352a;
}Brand Guidelines
Standalone HTML, print to PDF. Colours, typography, spacing, all in one page.
Presentation Deck
PPTX template with palette, typography, and blank slides in your brand.
Figma Tokens
JSON for Tokens Studio plugin. Import colours, type, spacing straight into Figma.
PDF Brand Guide
Full brand guidelines as a real PDF file. Colours and typography rendered exactly.
AI Skill
System prompt you can paste into Cursor or any AI tool to generate on-brand UI instantly.