Skip to content

The Colaberry Design System

The brand foundations, components and rules that power Colaberry — the School of Data and AI building job-ready talent since 2012. Warm, inclusive, and confident.

3brand hues
20components
289design tokens
WCAG 2.2audited

Foundations

Design principles

Five beliefs that guide every decision in this system — the “why” behind the tokens and components. When a call is ambiguous, these break the tie.

Inclusive by default

Built for every background and ability. Accessibility, plain language, and generous touch targets are requirements, not extras.

Warm, not loud

Encouraging and human. Soft shapes, gentle motion, and friendly copy — confidence without hype or noise.

Clarity over decoration

We teach data — so we respect it. Content and numbers lead; ornament earns its place or it's cut.

One system, many makers

Semantic tokens and reusable components mean a marketer, a developer, and an AI agent all produce the same brand.

Consistent & constant

The cherry accent never changes; foreground inverts with the background. Predictable rules make trustworthy products.

Get started

Use it locally & in Claude

Two ways to build with this system: chat with Claude for quick artifacts, or wire it into your own project in VS Code. Grab the brand guide any time with Download BRAND.md in the sidebar.

Claude chat

no install · anyone
  1. Open this project in Claude — or download it and attach the folder to a new chat. (Teams can publish it as the colaberry-design skill so it's one click.)

  2. Ask in plain English, always starting with the magic words:

    "Using the Colaberry design system, make a 16:9 slide that announces our Spring Data Analytics cohort."
  3. Preview, refine, download. Claude returns a live HTML artifact. Tweak it in plain words ("make the headline bigger", "use green") and export when it's right.

No hex codes or fonts needed — Claude reads them from this system. You bring the message and the format.

Local dev

VS Code · developers
  1. Download the project and open the folder in VS Code.

  2. Serve it locally so fonts & components load:

    # pick one npx serve . python3 -m http.server 8000
  3. Link the system in your HTML, then use the tokens & components:

    <link rel="stylesheet" href="styles.css"> <script src="_ds_bundle.js"></script> /* then: var(--brand-accent), window.ColaberryDesignSystem_098454 */
  4. Copy from the references — open design-system.html for tokens and ui_kits/marketing-website/ for full screens.

Full install steps (plain HTML, React/Vite/Next, tokens, dark mode) are in IMPLEMENTATION.md — or point Claude Code at this folder and BRAND.md.

Read the guides here

The full brand & developer guides, inline. Hit Copy to grab either one.

BRAND.md
Loading…
IMPLEMENTATION.md
Loading…

Foundations

Theme handling

Every color is a semantic token that re-points between light and dark. The rule: foreground inverts with the background; the cherry accent stays constant. Toggle the theme in the sidebar to see it live.

Surface

var(--surface-page) flips from white to near-black; cards, borders and sunken fills follow.

Text

var(--text-strong) / --text-muted invert for contrast on either ground.

Accent

var(--brand-accent) stays cherry red in both themes — the constant.

Foundations

Color

Cherry, Leaf and Berry over a neutral ramp. Click any swatch or token to copy it.

Cherry Red — primary

Leaf Green — secondary

Berry Blue — tertiary

Neutrals

Semantic tokens

Data visualization

We teach data — so charts are first-class. An 8-series categorical palette (ordered for maximum adjacent separation and color-blind safety) plus single-hue sequential and cherry↔leaf diverging scales. Click any swatch to copy.

Sequential
Diverging

Foundations

Typography

Roboto carries display and body; Roboto Mono handles code & data; Quicksand is reserved for the logotype.

H1 · 48 · 700Future-proof your career
H2 · 36 · 700Learn data, with people
H3 · 28 · 700Built on tenacity
Body · 18 · 400Colaberry nurtures an inclusive learning space for every background.
Mono · 16 · 500SELECT cohort, COUNT(*) FROM outcomes;
LogotypeColaberry

Foundations

Spacing & Radius

A 4px base grid and a rounded radius scale that echoes the soft cherry mark.

Spacing

Radius

Elevation

sm
md
lg
xl
brand

Foundations

Motion

Motion is functional, not decorative — it confirms an action, guides the eye, and softens change. Gentle easing, quick durations, and always a graceful fallback for reduced motion.

Purposeful

Every animation explains a change — never motion for its own sake.

Quick

140–360ms. Fast enough to feel responsive, slow enough to read.

Gentle

Ease-out by default; a soft spring only for affirmations. No linear, no harsh bounces.

Accessible

Honors prefers-reduced-motion — transitions collapse to instant.

Easing

The easing scale

ease-outenter · hover · expand
emphasizedhero reveals
springaffirmations
inexits — accelerate
in-outmove & return
ease-out is the workhorse (enter, hover, expand) · emphasized for big hero moments · spring for confirmations (a check, a toggle) · in for exits · in-out for things that move and return. Never linear or hard bounces.

Duration

Scaled to travel distance

instant · 90mstick, ripple
fast · 140mshovers, toggles
base · 220msmost transitions
slow · 360msentrances, overlays
slower · 560mshero choreography

Motion recipes

Reusable patterns — the same building blocks every component and page uses, so motion feels like one hand drew it.

EnterFade & rise

opacity 0→1 + translateY --motion-rise→0 · --dur-slow · ease-out

SequenceStagger

each child delayed --stagger (70ms) — lists, grids, hero lines

OverlayScrim + scale

scrim fades; panel scales 0.96→1 · --dur-slow · emphasized

ConfirmSpring pop

scale 0.6→1 with --ease-spring · checkmarks, toggles only

LoadingShimmer

skeleton sweep, ~1.4s loop — the one allowed continuous motion

ExitFade & fall

opacity 1→0 + slight translateY · --dur-fast · ease-in

Interactive states — hover, press & focus

Hover · card
Lifts 6px with a deeper shadow over 220ms. Click-through cards only.

Hover · press · button
Fill darkens on hover; nudges down 1px on press.

Focus · input
Berry-blue border + 3px focus ring appears instantly.

Hover this link

Hover · link
Underline wipes in from the left over 220ms.

Hover · quiet buttons
Fill in a soft sunken background — no jump.

Revealfadesupinsequence

Entrance · stagger
70ms apart, fade + rise.

What moves on each interaction

InteractionWhat changesToken
Hover — solid buttonFill steps one shade darker (red-500 → 600)140ms · ease-out
Hover — ghost / outlineSoft sunken background fills in140ms · ease-out
Hover — card (clickable)Lifts 6px, shadow deepens (sm → lg)220ms · ease-out
Hover — linkUnderline wipes in from the left220ms · ease-out
Press — buttonFill darkens again + translateY(1px)140ms · ease-out
Focus — any control3px berry-blue focus ring appearsinstant
Enter — content / overlayFade up 12–14px, stagger 70ms360ms · ease-out

Library

Components

Twenty token-driven React primitives — all live and interactive below, animated to the Motion spec. Hover, toggle, open and click them. Props live in each component's .d.ts.

Loading live components…

In practice

Example layouts

Real screens composed entirely from these tokens and components — what you get when you apply the system. Toggle dark mode to watch them adapt.

Loading example layouts…

Foundations

Accessibility

WCAG 2.2 contrast audit of core pairings — measured in both themes. Cherry red and leaf green are accent / large-text colors — for body text use --text-brand (red-700), green-800+, or dark text on a tint.

PairingSampleRatioVerdict

Beyond contrast

Contrast is necessary but not sufficient. Every component in this system is built to these four pillars — and you should hold your own UI to them too.

Keyboard

  • Everything interactive is reachable and operable with Tab / Shift+Tab / Enter / Space.
  • Dialogs & drawers trap focus (Tab cycles inside) and restore it to the trigger on close.
  • Esc closes overlays and dismisses tooltips; arrow keys drive the carousel.
  • No keyboard traps; logical, source-order focus.

Focus

  • A visible 3px berry-blue ring (--focus-ring) on every focusable element.
  • Shown on :focus-visible — keyboard users see it, mouse users aren't distracted.
  • Focus is never removed without an equally clear replacement.

Touch & targets

  • Interactive targets are at least 44×44px (--target-min) — exceeds WCAG 2.2 (24px).
  • Buttons share a 48px control height; inputs match for tidy forms.
  • Adequate spacing so neighbouring targets aren't mis-tapped.

Semantics & motion

  • Native elements first; ARIA roles/labels where needed (dialogs, switches, icon buttons).
  • State conveyed by more than color (icons, text, dots).
  • All motion respects prefers-reduced-motion and degrades to fades.
  • Images carry alt; decorative art is aria-hidden.

Brand

Logo rules

Protect the mark so it always reads as Colaberry.

Clear space & minimum size

Clear space

Keep clear space equal to the height of the cherry mark on all sides. Minimum width: 120px (horizontal lockup) / 24px (mark).

Do & Don't

Do
  • Use the full-color lockup on white or light surfaces.
  • Switch to the white lockup on photos, dark, or cherry backgrounds.
  • Keep the cherry red constant; invert only the wordmark/neutral.
  • Give the mark room — respect the clear space.
Don't
  • Recolor the cherries or apply gradients to the mark.
  • Stretch, rotate, or add shadows / outlines.
  • Set the wordmark in any font other than Quicksand.
  • Place the color mark on a low-contrast or busy background.

Resources

Asset downloads

Production-ready logo and icon exports live in assets/logo/.

horizontal.png+ white / black
mark.png+ white / black
app-icon180 / 192 / 512
favicon.ico16 / 32 / 48
square400 / 600

Tokens for tooling

All 245 tokens (+ dark overrides) as JSON — drop into Style Dictionary, Figma Tokens, or Tailwind. Plus the raw CSS token files.

tokens.json styles.css

Using the system

Hand-off & prompting

However you make things — by prompting Claude or by writing code — start with “Using the Colaberry design system, …” and describe the outcome. The system supplies the colors, fonts, logo, voice and components. Full guide in BRAND.md.

Marketing / non-technical

Describe it in plain English → get a downloadable file. No code.

“Using the Colaberry design system, create a [social post / flyer / email / slide] at [size] for [topic]. Headline: [your headline]. Add a [call-to-action] button and the logo — give me 3 options.”
  • Say what (post, flyer, email header, slide) and the size.
  • Give the words — headline, subtext, call-to-action.
  • Name the vibe / program, and ask for “3 options.”

Developers

Tokens & components are machine-readable — Claude scaffolds on-brand UI.

“Using the Colaberry design system, build [a page / a section / a component] — [describe what it does]. Use the components and semantic tokens, link styles.css, and support dark mode.”
  • Link styles.css; reference semantic tokens, never raw hex.
  • Use the bundle components via window.ColaberryDesignSystem_098454.
  • Copy full screens from ui_kits/marketing-website/.

Developer checklist

  • Link styles.css — it imports tokens (color, type, spacing) + fonts.
  • Reference semantic tokens (--surface-page, --text-strong, --brand-accent) — never raw ramp values.
  • Set data-theme="dark" on <html> for dark mode; the accent stays constant.
  • Use the React primitives from the bundle (Button, Badge, Card, Input, Checkbox, Avatar).
  • Use --text-brand / green-800+ for body text on white (see Accessibility).
  • Roboto / Roboto Mono / Quicksand are self-hosted in assets/fonts/ — no CDN requests, works offline.
  • Standardize icons on Lucide (2px stroke) to match the soft brand shape language.

What to give each person

Hand this to…What they needWhere they start
Marketing / non-technicalThis project (or the colaberry-design skill) + the prompt recipeDescribe the artifact → download the HTML file
A designerThis page + assets/logo/Skim the guide; reuse logos, color, type
A developerstyles.css, components/core/, ui_kits/, BRAND.mdLink styles.css, import components
Anyone, anywhereBRAND.md — it's self-containedRead voice, color & logo rules
Copied