6.4 KiB
Design System Inspired by Hugging Face
Category: AI & LLM ML community hub. Sunny yellow accent, monospace identity, cheerful and dense.
1. Visual Theme & Atmosphere
Hugging Face is the rare ML brand that refuses to look serious. The hub leans into a sunshine-yellow accent (#ffd21e), a cartoon hugging-face emoji as the logo, and a confident IBM Plex Mono voice that reads more like a community zine than a research lab. The page background is a clean off-white (#fafafa) with text in a deep slate (#0d1117), and the yellow appears in pull quotes, tags, "new" badges, and the model-card header strip — never as an entire surface, always as punctuation.
The typographic system is monospace-forward in a way few product brands attempt: IBM Plex Mono for headings and tags, Source Sans Pro (or Inter) for body. The mix gives every page a "config file is the README" vibe — fitting for a platform built around .gitattributes and model-card.md.
Shapes are crisp, not soft: 4–6px radii, 1px solid borders that announce themselves rather than hide. Tables are dense, with row hover in a faint gray (#f3f4f6). The brand emoji punctuates everything — chips, headings, even error states wear a 🤗 — so the system feels human even when displaying technical data.
Key Characteristics:
- Sunshine yellow
#ffd21eas the lone saturated accent - IBM Plex Mono for headings and tags; Source Sans Pro for body
- Off-white canvas (
#fafafa) with crisp 1px borders (#e5e7eb) - 4–6px radii — closer to brutalist than rounded
- Hugging-face emoji 🤗 used unironically as a system glyph
- Dense tables, minimal padding — a community hub for power users
- Color-coded model categories (NLP blue, vision green, audio purple)
2. Color Palette & Roles
Primary
- HF Yellow (
#ffd21e): Brand primary, badges, "new" pill, model-card header bar. - HF Yellow Deep (
#f59e0b): Hover/active for yellow. - HF Yellow Soft (
#fff4cc): Surface tint, callout background.
Surface & Background
- Canvas (
#ffffff): Primary page background. - Canvas Subtle (
#fafafa): Alternate section background, footer. - Canvas Inset (
#f3f4f6): Code block background, hover row. - Canvas Dark (
#0d1117): Dark theme background.
Ink & Text
- Ink Primary (
#0d1117): Primary text, headings. - Ink Secondary (
#374151): Body prose. - Ink Muted (
#6b7280): Captions, file paths, model authors. - Ink Inverse (
#f9fafb): Text on dark surface.
Category Accents (Model Tasks)
- NLP Blue (
#2563eb): Text/NLP task badges. - Vision Green (
#16a34a): Computer-vision task badges. - Audio Purple (
#9333ea): Audio/speech task badges. - Multimodal Pink (
#db2777): Multimodal/diffusion task badges. - Tabular Orange (
#ea580c): Tabular/structured task badges.
Semantic
- Success (
#16a34a): Build succeeded, deploy live. - Warning (
#f59e0b): Slow inference, rate limit. - Error (
#dc2626): Failed build, broken model. - Info (
#2563eb): Notice banner.
Border
- Border Default (
#e5e7eb): Standard 1px hairline. - Border Strong (
#d1d5db): Emphasized border on hover. - Border Subtle (
#f3f4f6): Inner divider.
3. Typography Rules
Font Family
- Display / UI / Headings / Tags:
IBM Plex Mono, with fallback:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace - Body / Prose:
Source Sans Pro, with fallback:Inter, system-ui, -apple-system, sans-serif - Editorial (rare, blog only):
Source Serif Pro, with fallback:Georgia, serif
Hierarchy
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Display | IBM Plex Mono | 48px (3rem) | 600 | 1.1 | -0.01em | Marketing hero |
| H1 | IBM Plex Mono | 32px (2rem) | 600 | 1.2 | normal | Page heading, model name |
| H2 | IBM Plex Mono | 24px (1.5rem) | 600 | 1.25 | normal | Section heading |
| H3 | IBM Plex Mono | 18px (1.125rem) | 600 | 1.3 | normal | Sub-section |
| Body Large | Source Sans Pro | 18px (1.125rem) | 400 | 1.6 | normal | Lede, blog intro |
| Body | Source Sans Pro | 15px (0.9375rem) | 400 | 1.55 | normal | Standard prose, model card |
| Caption | Source Sans Pro | 13px (0.8125rem) | 500 | 1.4 | 0.01em | Author byline, timestamp |
| Tag / Badge | IBM Plex Mono | 12px (0.75rem) | 500 | 1.2 | 0.02em | Task tags, framework chips |
| Code | IBM Plex Mono | 14px (0.875rem) | 400 | 1.55 | normal | Code blocks, inline model_id |
Principles
- Mono everywhere it matters: nav links, headings, tags, and metadata are all monospaced. Sans is reserved for paragraphs of prose.
- Weight under 600: 600 is the cap; 700 is too loud against yellow. Hierarchy is size and color.
- Tags read as code: model tags use mono so they look like the strings developers will paste into Python.
4. Component Stylings
Buttons
Primary
- Background:
#0d1117 - Text:
#ffffff - Padding: 8px 16px
- Radius: 6px
- Hover:
#374151 - Use: "Use this model", primary forms.
Yellow CTA
- Background:
#ffd21e - Text:
#0d1117 - Padding: 8px 16px
- Radius: 6px
- Hover:
#f59e0b - Use: "Pro upgrade", "Sponsor".
Outline
- Background:
#ffffff - Text:
#0d1117 - Border: 1px solid
#e5e7eb - Hover: background
#f3f4f6
Cards / Model Cards
- Background:
#ffffff - Border: 1px solid
#e5e7eb - Radius: 6px
- Padding: 16px 20px
- Header strip:
#ffd21ebackground, 4px tall, only on featured model cards.
Inputs
- Background:
#ffffff - Border: 1px solid
#e5e7eb - Radius: 6px
- Padding: 8px 12px
- Focus: border
#0d1117, ring0 0 0 3px rgba(13,17,23,0.1)
Tags / Chips (Task / Framework)
- Background: category-tinted soft (
#dbeafefor NLP,#dcfce7for vision, etc.) - Text: matching strong category color.
- Padding: 2px 8px
- Radius: 4px
- Font: IBM Plex Mono 12px / 500
Tables
- Header: background
#fafafa, border-bottom 1px#e5e7eb. - Row: border-bottom 1px
#f3f4f6, hover#f3f4f6. - Padding: 8px 16px per cell — dense by design.
5. Spacing & Layout
- Base unit: 4px. Scale: 4, 8, 12, 16, 24, 32, 48, 64.
- Container: max 1280px, 24px gutter.
- Sidebar (model browser): 280px wide.
- Section rhythm: 64–96px vertical between major sections.
6. Motion
- Duration: 120ms for hover; 200ms for menu open.
- Easing:
ease-out. - Tag pop: a 1.05× scale on hover at 120ms — the only exception to flat-on-hover.