Skip to main content
Back to Examples

Ember Modern

Add this design system to use its color palette, typography, spacing & other tokens while creating your own designs.

Modern AI product. Warm parchment, incandescent vermillion, hard 4px borders and flat offset shadows.

12
core colors
2
typefaces
22
tokens
agent.kombai.com/kombai-inspiration-library/inspirations/ember-modern-kombai/index.html
01

Palette

primary
#FF4D00
on-primary
#FFFFFF
ink
#000000
surface
#F2EFE9
surface-card
#FFFFFF
surface-invert
#000000
on-invert
#FFFFFF
yellow
#FFD600
blue
#00D1FF
green
#00FF85
on-surface-secondary
#1F2937
on-surface-muted
#6B7280
02

Typography

displayThe quick brown fox jumps"Bricolage Grotesque", sans-serif
clamp(72px, 9vw, 128px)
headlineThe quick brown fox jumps"Bricolage Grotesque", sans-serif
60px
body-lgThe quick brown fox jumps"Space Grotesk", sans-serif
20px
labelThe quick brown fox jumps"Space Grotesk", sans-serif
14px
03

Spacing & Shape

TokenValuePreview
sm16px
md24px
lg48px
xl96px
04

Border Radius

TokenValuePreview
none0px
full9999px
05

design.md

design.mdreadable by AI agents
tokens (raw)
name: ember-modern-design
version: alpha
description: >
  A neo-brutalist SaaS canvas on warm off-white paper (#F2EFE9) with pure-black
  4px borders and chunky hard-drop offset shadows (10px 10px 0 black). The brand
  voltage is an ember orange (#FF4D00) for primary buttons, highlights and
  accents, backed by a playful secondary palette of yellow/blue/green used as
  flat decorative blocks. Type pairs an extra-bold Bricolage Grotesque display
  (uppercase, tight) with Space Grotesque body. The signatures are the
  offset-shadow "brutalist card", the black scrolling marquee bar, and a
  springy press interaction that snaps the shadow flat.
colors:
  # Brand
  primary: '#FF4D00'           # ember orange — buttons, highlights, accents
  on-primary: '#FFFFFF'
  ink: '#000000'               # borders + text (pure black, intentional)
  # Surface
  surface: '#F2EFE9'           # warm paper canvas
  surface-card: '#FFFFFF'      # cards
  surface-invert: '#000000'    # footer, marquee, dark blocks
  on-invert: '#FFFFFF'
  # Decorative secondary (flat blocks / accent fills, used sparingly)
  yellow: '#FFD600'            # badge "v4.0 is now live"
  blue: '#00D1FF'              # CTA section background, blob
  green: '#00FF85'             # decorative blob
  # Neutral
  on-surface-secondary: '#1F2937' # gray-800 body
  on-surface-muted: '#6B7280'     # gray-500 captions
typography:
  display:
    fontFamily: '"Bricolage Grotesque", sans-serif'
    fontSize: clamp(72px, 9vw, 128px) # hero (text-7xl→9xl)
    fontWeight: 800
    lineHeight: 0.9
    letterSpacing: -0.05em            # tracking-tighter, UPPERCASE
  headline:
    fontFamily: '"Bricolage Grotesque", sans-serif'
    fontSize: 60px                    # card h3/h4
    fontWeight: 900
    lineHeight: 0.95
    letterSpacing: -0.02em
  body-lg:
    fontFamily: '"Space Grotesk", sans-serif'
    fontSize: 20px
    fontWeight: 500
    lineHeight: 1.5
  label:
    fontFamily: '"Space Grotesk", sans-serif'
    fontSize: 14px
    fontWeight: 800
    letterSpacing: 0.05em             # uppercase nav / button text
rounded:
  none: 0px                           # cards/buttons are square
  full: 9999px                        # decorative blobs/dots only
spacing:
  # base unit = 4px
  sm: 16px
  md: 24px
  lg: 48px
  xl: 96px                            # section py-24/32
components:
  card-brutalist:
    background: '{colors.surface-card}'
    border: '4px solid {colors.ink}'
    rounded: '{rounded.none}'
    boxShadow: '10px 10px 0px 0px {colors.ink}'
    hover: 'translate(-4px,-4px), shadow 14px 14px 0'
    transition: 'cubic-bezier(0.175,0.885,0.32,1.275)'  # springy
  button-primary:
    background: '{colors.primary}'
    textColor: '{colors.on-primary}'
    border: '4px solid {colors.ink}'
    boxShadow: '6px 6px 0px 0px {colors.ink}'
    typography: '{typography.label}'
    padding: '16px 32px'
    active: 'translate(6px,6px), shadow 0 0 0'         # snaps flat
  button-secondary:
    background: '{colors.surface-card}'
    border: '4px solid {colors.ink}'
    boxShadow: '6px 6px 0px 0px {colors.ink}'
    hover: 'shadow none'
  badge:
    background: '{colors.yellow}'
    border: '2px solid {colors.ink}'
    rounded: '{rounded.none}'
    rotate: '2deg'                    # tilted sticker
  marquee:
    background: '{colors.ink}'
    textColor: '{colors.on-invert}'
    typography: '{typography.headline}'
    border: '4px solid {colors.ink} (top+bottom)'
motion:
  easing-spring: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)' # card pop
  duration-card: 200ms
  duration-press: 100ms
  marquee: 'marquee 20s linear infinite'
icons:
  library: font-awesome           # fa-star, fab-twitter/linkedin/github
  style: solid + brand glyphs
  colorRule: 'inherit ink; stars use {colors.yellow}; hover → {colors.primary}'

Ember Modern — "StudioFlow"

Design spec — version alpha. Source: static HTML (ember-modern.html); tokens read from :root and component CSS. Fictional AI-agency SaaS; described factually.

Overview

A confident neo-brutalist SaaS look. The canvas is warm off-white paper ({colors.surface} #F2EFE9); structure is drawn with pure-black 4px borders and hard offset drop-shadows (10px 10px 0 #000) that make every card feel like a sticker peeled off the page. The brand voltage is ember orange {colors.primary} #FF4D00 — primary buttons, highlighted words, accent fills — supported by a playful secondary palette (yellow #FFD600, blue #00D1FF, green #00FF85) used only as flat decorative blocks/blobs and the CTA background. Type is Bricolage Grotesque extra-bold/black for uppercase display and Space Grotesk for body. Signatures: the offset brutalist card (springy pop on hover), a black scrolling marquee bar, tilted sticker badges, and a press interaction where the button slides into its shadow (active: translate(6,6), shadow 0).

Colors

Brand. Ember {colors.primary} #FF4D00 is the identity — primary CTAs, highlighted spans (px-6 inline-block -rotate-1), card accent borders/icons. Black {colors.ink} #000000 is used deliberately for all borders, shadows and body headings (this theme embraces pure black).

Surfaces. Paper {colors.surface} #F2EFE9, white cards {colors.surface-card}, and inverted black blocks ({colors.surface-invert}) for the marquee, footer and emphasis tiles.

Decorative secondary. Yellow, blue, green appear as flat bordered blocks (badge, CTA section, background blobs at 20% opacity) — never as text color.

Typography

Bricolage Grotesque (800–900) for all uppercase display/headlines, tight -0.05em tracking, 0.9 line-height; Space Grotesk (500–800) for body and uppercase labels/nav.

TokenFamilySizeWeightTrackingUsage
displayBricolage Grotesqueclamp 72–128px800-0.05emHero headline (uppercase)
headlineBricolage Grotesque60px900-0.02emCard titles, CTA
body-lgSpace Grotesk20px500normalBody copy
labelSpace Grotesk14px8000.05emNav, buttons (uppercase)

Layout

Base 4px; max-w-7xl content, py-24/py-32 sections. A bordered sticky nav, centered hero with floating bordered blobs, a full-bleed black marquee, a feature section (one wide split card + a 2-up card grid), a centered testimonial, a full-color blue CTA band, and a black 4-column footer.

Elevation & Depth

The whole system is hard-shadow brutalism — no blur, no gradient. Cards carry 10px 10px 0 #000 (growing to 14px 14px 0 on hover as they lift -4px,-4px); buttons carry 6px 6px 0 and snap flat on press. Decorative blobs sit at low opacity behind content.

Shapes

Square by default — cards, buttons and tiles are sharp-cornered with 4px borders. The only round elements are decorative blobs/dots ({rounded.full}) and small status dots.

Components

  • card-brutalist — white, 4px black border, 10px offset shadow, springy hover lift.
  • button-primary — ember fill, white uppercase label, 4px border, 6px shadow, press-to-flat.
  • button-secondary — white fill, same border/shadow, hover removes shadow.
  • badge — tilted yellow sticker with 2px border.
  • marquee — full-bleed black bar of repeating Bricolage uppercase phrases scrolling left.

Motion

{motion.easing-spring} cubic-bezier(0.175,0.885,0.32,1.275) gives cards an overshoot "pop"; press states use a fast 100ms linear snap into the shadow. The marquee scrolls continuously (20s linear). Otherwise motion is minimal — the brutalist shadow shifts are the interaction language.

Iconography

Font Awesome solid + brand glyphs (fa-star, fab-twitter/linkedin/github). Icons inherit ink; rating stars use {colors.yellow}; footer/social icons hover to ember {colors.primary}.

Do's and Don'ts

  • Do keep the warm #F2EFE9 paper canvas with pure-black 4px borders.
  • Do use ember orange as the single text/CTA voltage; keep yellow/blue/green as flat blocks only.
  • Do apply hard offset shadows (no blur) and the springy hover/press behavior.
  • Do set display type in uppercase Bricolage, tight and heavy.
  • Don't round card/button corners or use soft/gradient shadows.
  • Don't color body text with the secondary palette.
  • Don't dilute the contrast — black borders stay pure black.

Known Gaps

  • Values read from the static implementation's resolved :root. Copy/imagery are sample content; the source disables transitions globally so timings reflect the authored CSS intent.