Builder 26 Design System
The interface language for the CardSnacks card builder — warm, playful, professional. A single source of truth for tokens, components and patterns that the team will use to ship Builder 26 to production.
Principles
Six principles that set the tone for every screen in Builder 26 — from the eco-footer to the colourful stickers.
Warm, never naive
Mint radii, pastel gradients, no harsh shadows. The interface should feel like a card held in your hand.
The celebration lives inside the card
Saturated colour, animations and illustrations belong on the card canvas. The UI chassis stays calm and quiet.
Step by step
Every complex flow (Pages → Envelope → Gift → Music → Send) is broken into clear, bite-sized steps. No overload.
Works for an 8-year-old and an HR director
The same system runs B2C gifting and B2B admin. Tone is friendly; copy is human.
Eco in the details
The forest footer, soft tree illustrations and pastel palette quietly remind users that an e-card replaces a paper one.
Fast without feeling rough
Motion stays between 120–320ms, no scroll springs. The UI feels alive, but predictable.
Brand & Logo
The logo is the word “CardSnacks” set in Avenir Next Semibold, in our signature mint #26B2A4.
Clear space & minimum size
Keep clear space around the logo equal to the height of the capital “C”. Minimum wordmark size is 24px — below that, use the C-mark on its own.
Color
Mint teal is the only primary. Warm honey-yellow carries celebration and seasonal moments. A precise greyscale built on #3F3F3F handles structure. Red survives only as the Warning semantic.
Brand palette
Source of truth — the exact colours every screen should sample from. Four families: mint (the only primary), honey (warm accent & celebration), red (warning only — use sparingly), greyscale (text, surfaces, borders).
Primary — Brand Mint
#26B2A4 — the base 500. Hover step is 600 (#1FA092). Step 50 (#ECFEFF) powers soft backgrounds and hover fills.
Signature gradient
The single brand gradient — mint → sky → cream on a 135° axis. Used as the default surface for hero blocks, modals, stages, cards and panels. Avoid alternative pastel gradients; this is the one.
--signature-gradient · #E8F7F5 → #F0F9FF → #FFF7ED--surface-gradient · aliasfooter · forest (only exception)Semantic tokens
Greyscale
Typography
Avenir Next everywhere: 400, 500, 600, 700. JetBrains Mono for code. Web fallback is Nunito Sans — the closest free stand-in by geometry and metrics.
Scale
Weights
Usage rules
DO
- Display / H1 — 800 with tightened letter-spacing (−2…−3%).
- UI-labels, buttons, inputs — 500–600.
- Body — 400, 16px, line-height 1.55.
- Always use
text-wrap: prettyon headlines.
DON'T
- Don't mix more than two type families on a single screen.
- Don't use weights below 400 — Avenir gets too thin.
- Don't stretch or condense the type.
- Don't use ALL-CAPS on body copy.
Radius
Core: 8, 16, 32. Secondary: 4, 12. Rare: 2. Pill (999) for CTAs and chips.
Spacing
A 4px base grid. Tight densities inside blocks (16/24), generous rhythm between them (48/64/80).
Elevation
Four shadow steps to separate layers. Tints run slightly cool — bluish, never black.
Motion
Light and warm, no rubber-band bounce. The base curve is cubic-bezier(.2,.8,.2,1).
Hover, focus, press — instant feedback.
Menus opening, popovers, tabs.
Stepper transitions, slide-up modals.
Core patterns
/* Slide up (bottom sheets, floating panels) */ @keyframes slideUp { from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .animate-slide-up { animation: slideUp 0.3s ease-out forwards; } /* Button press */ .btn:active { transform: translateY(1px); }
Buttons
A single type style — 600. Pills for primary CTAs and navigation. Rounded r-12 squares for secondary actions in forms and toolbars.
Variants
Sizes
Icon & pill group
Usage
DO
- One primary per screen — it drives the main step (Send / Next).
- Use outline for reverse or secondary actions.
- Icon on the left for Back, on the right for Next / Send.
DON'T
- Don't build a primary ghost button.
- Don't drop-shadow outline buttons.
- Don't shrink CTAs below 32px — that's the floor.
Inputs & Forms
Inputs are 44px tall with r-12 corners and a soft focus ring of --primary-soft at 3px wide.
Toggles & Checks
Switch — to turn a mode on or off (Preview mode, Auto-send). Checkbox and radio are for list selection.
Switch
Checkbox
Radio
Chips & Badges
Chips — category filters (Birthday / Belated / Love…). Badges — statuses and metadata.
Chips
Badges
Stepper
The builder's main axis: Pages → Envelope → Gift → Music → Send.
States
Step
- Default: icon
ink-400, labelfg-muted. - Active: primary + label primary (600).
- Done: icon
ink-700, the rail behind it is primary. - Error: icon and label in danger.
Rules
- Steps are only clickable up to and including the current one.
- On mobile the stepper flips vertical.
- The rail is 40px on desktop, 28px on tablet.
Builder toolbar
The floating panel next to the canvas — it adds elements onto the card page.
Anatomy
- Container:
bg-white,r-16, shadow-md, padding 8. - Tool: 40px tall,
r-8, icon 18 + label 14/500. - Hover / active —
primary-softbackground +primarytext. - On mobile the toolbar collapses to icons only — no labels.
Modals & Popovers
A centered modal over a dim surface; a popover with shadow-lg and r-16.
Send to Sam?
Your card will be delivered via SMS right away. You can still schedule it for later.
Cute Color Picker
The signature picker — pastel presets, an SV area, a hue bar and hex / RGB fields. Drag by the header to move it.
Rules
- Presets stay soft — no neons.
- The active preset gets a primary ring with a 1px gap.
- Hex / RGB — always lowercase.
- Trigger: 36–48px, pill, with the color chip set inside.
Action panel
Right-side editor panel. Used to configure any selected element — button, image, sticker, gift card.
Action Button
Anatomy
- Width 360px, slides in from the right edge.
- Header 56px, title 16/600, close button 32px.
- Body padding 24px, fields stacked with gap 20px.
- Micro-labels in caps (11/600, ink-500) for color groups.
- Segmented control (Pill / Rounded / Square) for binary-ish choices.
Date & time picker
Schedule a card for later. Calendar in a popover, time as a separate input.
Pattern
Day cells are 36px circles. Today gets a primary outline. Selected day is a solid primary disc with white text. Adjacent-month days drop to ink-300.
Music list
List of soundtracks. Glassmorphism over a soft mint backdrop. Cover art uses a 48px square with playful blob gradients. Currently-selected row gets a mint fill with a teal stroke.
Contacts table
My contacts — multi-select with checkboxes, tag chips, search, footer actions.
| NAME | PHONE NUMBER | |||
|---|---|---|---|---|
Matthew Jones | +1 (206) 559-5180 | matthew.jones@outlook.com | ⋮ | |
Robert Rodriguez | +1 (415) 880-5409 | robert.rodriguez@outlook.com | ⋮ | |
Angela Lee | +1 (305) 807-2973 | — | ⋮ | |
Tyler Davis | +1 (305) 238-3205 | tyler.davis@icloud.com | ⋮ |
Gift card panel
Modal for picking a gift amount. Card preview on the left, amount chips on the right. Sits over the same soft mint backdrop as the music list.
Your Gift
Ulta Beauty
These are the cookies that get you hooked and keep you asking for more…
Billing
Pay step — toggle credit card vs CardSnacksCash, list a saved card or enter a new one.