Canvas
--background
A compact visual language for trustworthy, data-rich products — with the chat, agent-trace and tool-permission surfaces AI products need.
Chat
Agent trace
Tool permission
01 token source · 75 primitives · 2×8 themes
Live configuration
Appearance
Choose the canvas mode.
Accent color
A full ramp powers actions, focus, charts, and washes.
Every value resolves from semantic tokens.
Gumdrop is built to make interfaces feel coherent without making them identical. The system handles the recurring decisions, so teams can focus on the content, workflows, and moments that make each product distinct.
Hierarchy, content, and purpose lead. Visual detail earns its place by making the interface easier to understand.
Primitives provide reliable parts without forcing every product into the same layout or expression.
Contrast, focus, touch targets, and reduced motion are foundational behavior—not a final review step.
A semantic layer keeps themes and brands flexible while every component speaks the same visual language.
Neutral surfaces and deep ink carry the interface. Accent appears only when it communicates action, selection, or focus; status families stay fixed so their meaning never changes with the brand.
--background
--foreground
--border
--primary
--accent
--success-wash
--warning-wash
--destructive-wash
Each brand supplies a complete ramp. Components keep their semantic roles while the accent identity changes in one place.
Instrument Sans carries every interface role, from compact data to page landmarks. A restrained scale, purposeful weights, and tabular numerals keep dense information easy to scan.
Interface family
Aa Gg
Open counters stay legible at compact sizes, while a consistent silhouette keeps navigation, labels, and long-form copy calm.
Numeric family
67,421.30
Value
2.41T
Change
+2.41%
Updated
14:32
Fixed-width figures align values vertically. Signs, precision, and units preserve meaning before color enters the system.
Type scale
Size / line height · weight
Bold weight is reserved for headings and orientation.
Regular weight protects density and comparison.
Tabular figures make columns stable and scannable.
A capped grid controls horizontal alignment. A finite spacing scale controls vertical rhythm. Together they keep dense interfaces orderly at every width.
Column grid
Use twelve columns with 24px gutters on wide screens, eight columns with 16px gutters at intermediate widths, and four columns with 16px gutters on narrow screens.
Spacing scale
8px separates peers, 16px groups a module, 24px forms broad gutters, and 32px marks a change in task.
Radius says what a thing is. Small corners are marks, medium corners are things you press, large corners hold other things, and only the pill is round. A component takes the corner of its role, never one it prefers.
--radius-xs
Progress tracks, tiny marks, inline code.
--radius-sm
Badges, keyboard keys, the inset of a swatch.
--radius-input
Inputs, selects, the thumb of a segmented control.
--radius-md
Buttons, menus, tabs, rows that you press.
--radius-card
Cards, panels, anything that holds other things.
--radius-lg
Dialogs, sheets and popovers that float.
--radius-pill
Avatars, status dots and counts only.
Pressable things carry a hard lip that closes when you push them. Cards sit flat on a hairline. A soft shadow is reserved for the few surfaces that detach from the page, so depth always means something.
--shadow-card-edge
A card at rest: a 1px edge, no lift.
--shadow-raised-neutral-xs
Chosen, not pressed: a switch thumb, a selected segment, a checked box.
--shadow-raised-neutral
A control you press. On press the lip compresses into a seam.
--shadow-raised-primary
The one action per view, in the brand's own deep edge.
--shadow-pressed-seam
The same slab, pushed in: the lip drawn inset so nothing shifts.
--shadow-lifted
Popovers, menus, dialogs: detached from the page, so they alone are soft.
Components are shown as live controls, not static inventory. Each row carries seven production-shaped specimens so variants, core props, overlays, and composition patterns can be compared under real interface pressure.
Actions · variants and sizes
ButtonOne raised commitment, quieter alternatives, and contextual danger.
Variants
Sizes
State
Selection · fields and options
Input · SelectFields share geometry, focus behavior, and semantic surfaces.
Live updates
Refresh every 30 seconds.
Choice · control states
Checkbox · SwitchLabels and helper copy keep compact controls understandable.
Beyond threshold.
Mixed by workspace.
Select an owner first.
Owner requirement.
Enabled
2
Mixed
1
Locked
1
Navigation · active state
Tabs · BadgeLocal navigation keeps related views in one stable frame.
Overlay · focused task
DialogOpen the live overlay to inspect focus, hierarchy, and actions.
Delete saved view?
Regional review · 8 custom fields
Feedback · semantic states
AlertVariant, semantics, action, custom icon, and dismissal behavior.
Forms · content entry
TextareaLong-form fields keep guidance, count, and error state together.
Measures · continuous values
Progress · SliderFinite progress and adjustable ranges use one numeric rhythm.
Identity · presence and help
Avatar group · TooltipStable identity depths separate people without asserting status.
Avery Chen
Final review
Noor Patel
Validation
Mateo Silva
Source check
Loading · stable geometry
SkeletonLoading placeholders preserve the final layout without a shimmer sweep.
Data · continuous comparison
Table · Dropdown menuIdentity, classification, lifecycle status, and row-level actions in one ruled surface.
| Entity | Actions |
|---|---|
Northwind Studio Northwind Studio ENT-1048 Active | |
Atlas Research Atlas Research ENT-0921 Review | |
Juniper Works Juniper Works ENT-0814 Active | |
Meridian Group Meridian Group ENT-0732 Blocked |
Disclosure · optional detail
AccordionOptional controls expand vertically without changing the container width.
Format
CSV
Delivery
Mon · 09:00 UTC
View mode · grouped choice
Toggle groupRelated choices share one surface while retaining keyboard navigation.
Density
Visible fields
Preference preview
3 columnsLabels · semantic classification
BadgeCompact labels classify records without competing with primary actions.
Semantic roles
Compact · 18px
Default · 24px
Regional review
Updated 14:32 UTC
Source validation
2 records require attention
Scheduled export
Policy prevents delivery
Wayfinding · hierarchy and overflow
BreadcrumbLong paths remain concise while the current page stays explicit.
Current destination
Regional review
Updated 14:32 UTC · 12,842 records
Actions · segmented clusters
Button groupAdjacent actions share seams, labels, and one keyboard focus order.
Presentation
Page size
Export actions
Forms · platform picker
Native selectNative pickers suit long lists and dense mobile workflows.
Choice · single selection
Radio groupOne choice stays explicit with labels, descriptions, and disabled states.
Send after validation.
Bundle recent activity.
Deliver at 09:00 UTC.
Available on Team plans.
Compact range
Validation
Select a review mode.
Empty state · recovery action
EmptyFactual guidance explains what is missing and what to do next.
Widen the value range or clear the Region North filter to see more results.
Commands · keyboard discoverability
KbdCompact key groups keep frequent commands discoverable.
Loading · indeterminate work
SpinnerSpinners mark unknown waits; determinate work uses progress.
Fetching records
Region North · live source
Validating schema
18 of 25 sources queued
Gumdrop moves with purpose: immediate focus, short tactile feedback, and no animation that could be mistaken for a change in the data itself.
Ready on scroll. The four recipes advance automatically while this section is visible.
Canonical response
One curve, four state changes
01
Press response
02
Scale in
03
State change
04
Bounded loading
The raised slab travels into its own edge to confirm direct input.
150ms · translateY(4px)
Value
67,421
A focused surface settles into place without overshoot or bounce.
2s demo · scale(.86 → 1)
Live updates
Refresh automatically
Color and position move together so a control reads as one event.
150ms · standard easing
Ambient motion is reserved for work whose completion is unresolved.
1200ms · progress only
Item A value
67,421.30
68,105.44
A number replaces itself. Nothing travels between two values, so nothing implies a direction.
0ms · transition: none
Ambient motion claims something is unresolved. When it resolves, the loop stops competing for attention.
1200ms · while pending only
same final frame
Motion off removes the journey, never the destination. No meaning lives in skipped frames.
prefers-reduced-motion: reduce
Focus and live values tell the truth without delay.
Motion connects a direct action to its visible result.
No ambient loops compete with scanning or comparison.
Reduced motion preserves every final state and meaning.
Everything above is inventory—tokens, type, grid, components, motion. This is what they add up to. Each panel below is a live route from the screen library, embedded as itself: same tokens, same primitives, same theme you are reading in. Read the numbers, sign someone in, ask a model, edit an entry, change the plan, open a record—one language across a whole session.
Loads into its own skeleton, then KPI, trend, and activity with search and notification states.
These six are a sample. The library carries 60 built screens across 13 groups—every one of them a route in this repository, on these tokens.
Browse the screen libraryStart with the shared rules, then spend your judgment where the product is distinct. The system should remove repeated decisions—not remove design thinking.
Application path
Four decisions · in order
Name the content, decision, and status before choosing a component or visual treatment.
Intent and hierarchy
Start with the smallest reliable primitives and let the product workflow determine the layout.
Flexible composition
Map every surface, line, action, and state to a semantic token instead of a local value.
Theme-ready interface
Check keyboard flow, contrast, overflow, touch targets, themes, and reduced motion together.
Production confidence