AtlasBack to workspace

Design System

Atlas UX Style Guide

A single source of truth for the Atlas Digital Asset Management workspace. It documents the grid, spacing, typography, component specifications, iconography, interaction patterns, and how the product behaves when things go wrong.

01 — Foundations

Color tokens

Every colour in Atlas is a semantic token defined in styles.css. Components never hard-code hex values — they reference tokens so light/dark and theming stay consistent.

Brand

Primary
--color-primary
Primary Soft
--color-primary-soft
Secondary
--color-secondary
Accent
--color-accent

Surfaces

Background
--color-background
Canvas
--color-canvas
Surface
--color-surface
Panel
--color-panel

Semantic

Success
--color-success
Warning
--color-warning
Info
--color-info
Destructive
--color-destructive

Radius scale

md
lg
xl
full

Elevation

sm
md
lg
2xl

02 — Typography

Type scale

Plus Jakarta Sans drives display and body copy; JetBrains Mono is reserved for code, tokens, and metadata. Keep line length under ~70 characters for readability.

Display / H136px · 800 · -0.02em
Heading / H224px · 700
Heading / H318px · 700
Body Large16px · 400 · 1.6
Body14px · 400 · 1.6
Caption12px · 400
Mono / Code12px · JetBrains Mono

03 — Grid & Spacing

Layout grid & spacing scale

Atlas uses a 12-column responsive grid on a 4px base unit. The workspace is a fixed sidebar (288px) plus a fluid content area; asset cards reflow from 1 to 4 columns across breakpoints.

12-column grid · 24px gutter

1
2
3
4
5
6
7
8
9
10
11
12

Workspace shell

Sidebar
288px

Asset grid breakpoints

Mobile < 640px1 column
sm ≥ 640px2 columns
lg ≥ 1024px3 columns
xl ≥ 1280px4 columns
Card gutter16px

Spacing scale (4px base)

4px
8px
12px
16px
24px
32px
48px

04 — Adaptive Layouts

Responsive & adaptive behaviour

Atlas is built mobile-first and reflows across four core breakpoints. Navigation, density, and the asset grid each adapt independently so the workspace stays usable from a 360px phone to an ultrawide display.

Breakpoint system

TierRangeTokenAsset gridNavigation
Mobile0 – 639pxbase1 colBottom sheet / drawer
Tablet640 – 1023pxsm / md2 colsCollapsible sidebar
Laptop1024 – 1279pxlg3 colsPinned sidebar
Desktop≥ 1280pxxl / 2xl4 colsSidebar + rail

Layout reflow across devices

Mobile · 1 col
Tablet · 2 col
Laptop · 3 col
Desktop · 4 col

Adaptive patterns

NavigationDrawer → Sidebar @ lg
ToolbarStacked → Inline @ sm
Quick ViewFull-screen → Modal @ md
AI SearchBottom sheet → Floating @ md
FiltersSheet → Inline chips @ lg

Adaptive rules

  • Mobile-first: base styles target the smallest viewport, then scale up with sm / md / lg / xl.
  • Touch targets stay ≥ 44px on touch devices; hover-only affordances get a tap fallback.
  • Content max-width caps at 1152px (max-w-6xl) so reading and grids never over-stretch.
  • Layout shifts use container space, not fixed pixels — fluid gutters scale with the viewport.

05 — Element Specs

Core UI elements

Reusable building blocks with their exact dimensions. Heights snap to the 4px grid; interactive targets keep a minimum 36px hit area for accessibility.

Buttons

Height36px (h-9)
Padding X16px
Radius8px (rounded-lg)
Font14px / 600

Inputs & search

Height36px
Focus ring2px primary/15
Border1px border token

Badges & filter chips

ImageVideo Approved In draft
Type: VideoState: Approved

Selection controls

Toggle · on
Rating · 4/5

Asset card

Image

Sanchi Stupa

sanchistupa.jpg

Aspect ratio4 : 3
Radius12px (rounded-xl)
Padding12px
Type badgetop-left
Quick viewtop-right on hover
Title14px / 700 · truncate
Filename11px mono · muted

06 — Iconography

Icon system

Atlas uses the Lucide icon library exclusively for a consistent, lightweight, stroke-based look. Icons inherit currentColor and sit on a 24px grid at 2px stroke weight.

Search
Filter
Grid view
List view
Download
Upload
Copy
Share
Delete
Quick view
Rate
Collection
Notify
Settings
Refresh
AI search

Sizes

16
20
24

Stroke

Default weight2px
ColorcurrentColor
Librarylucide-react

Usage

Pair icons with text labels in primary actions. Icon-only buttons must include an aria-label.

07 — Interactions

Interaction patterns

Motion is purposeful and quick. Transitions run 150–300ms on an ease-out curve. Hover states reveal affordances; active states confirm; loading states reassure.

Hover & focus

state: rest · transition 200ms ease-out

Loading & feedback

Skeleton + progress

Toast feedback

3 assets downloaded
Link copied to clipboard
Upload failed — retry

Motion tokens

Micro (hover/press)150ms ease-out
Standard (panels)200ms ease-out
Modal / drawer300ms ease-out-expo
Reduced motionrespects prefers-reduced

08 — Error & Empty States

Error states

Every failure mode has a designed state. Each one names what happened in plain language, reassures the user nothing is lost, and offers a clear recovery path.

No assets found

No assets match your current filters. Try removing a filter or broadening your search.

You're offline

We can't reach the asset library. Check your connection — your selections are saved locally.

Something went wrong

The workspace failed to load. This is on our end, not yours. Refresh to try again.

Inline validation

Use letters, numbers, spaces, hyphens (1–60 chars).

Bulk action partially completed

5 of 8 assets were archived. 3 failed because they're locked by another user.

Error-state principles

  • Say what happened in plain language — no codes or jargon.
  • Reassure: make clear whether data was lost or is safe.
  • Offer exactly one obvious recovery action.
  • Match tone to severity — muted for empty, red only for failures.
  • Never blame the user; own system errors.