You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This design system is the single source of truth for the Tradazone platform. It defines the visual language, interaction patterns, component specifications, and governance model that ensure consistency, quality, and velocity across every area of the product.
1.2 Design Philosophy
Tradazone follows four core design principles:
Principle
Definition
Clarity
Every element communicates its purpose without ambiguity. Interfaces are scannable, information-dense, and silent where silence serves the user.
Precision
Pixel-level consistency. No approximations. Spacing, typography, and alignment follow the system — never ad-hoc values.
Composability
Components are atomic, self-contained, and composable. A button behaves identically whether it lives in a dashboard, a modal, or a marketing page.
Durability
Decisions are made for the long term. Every token, component, and pattern is built to scale across products, themes, and platforms without architectural rewrites.
Inter is loaded via CDN: https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap
2.2.2 Type Scale
Name
Size
Line Height
Weight
Usage
Display
48px
1.1
700 (Bold)
Wallet balance, hero metrics
Heading 1
20px
1.4
500 (Medium)
Page titles ("Welcome to Tradazone")
Heading 2
16px
1.5
600 (Semibold)
Card section titles, nav group headers
Body
14px
1.5
400 (Regular)
Default body text, descriptions, form labels
Body Strong
14px
1.5
600 (Semibold)
Nav items (active), table header cells
Small
13px
1.4
500 (Medium)
Transaction descriptions, list items
Caption
12px
1.4
400 (Regular)
Timestamps, stat labels, helper text
Micro
11px
1.3
400 (Regular)
Dates under transactions, secondary metadata
Overline
10px
1.4
500 (Medium)
Badges, smallest labels
2.2.3 Typography Rules
Never skip heading levels. H1 → H2 → Body is acceptable. H1 → Caption is not.
Numbers are always tabular-nums for right-aligned columns (amounts, dates).
Currency labels (e.g., "STRK") use one weight lighter than the numeric value beside them.
Truncation: Use text-ellipsis + overflow-hidden for single-line truncation. Never truncate numeric values or dates.
2.3 Spacing System
2.3.1 Base Unit
All spacing derives from an 8px base unit.
Token
Value
Common Usage
0.5
4px
Tight inner gaps (icon-to-text in small badges)
1
8px
Minimum gap between related elements
1.5
12px
Input inner padding (vertical)
2
16px
Standard inner padding, gap between form fields
3
24px
Card inner padding, section title to content
4
32px
Main content padding (desktop), gap between cards
5
40px
Large section spacing
6
48px
Section-to-section vertical spacing
8
64px
Page-level vertical rhythm
2.3.2 Layout Dimensions
Token
Value
Usage
sidebar
250px
Fixed sidebar width (desktop)
header
72px
Fixed header height
2.3.3 Grid System
Property
Value
Columns
2-column grid for dashboard cards
Column Gap
24px (gap-6)
Row Gap
24px (gap-6)
Max Content Width
1100px
Breakpoint
lg (1024px) — switches from single to multi-column
2.3.4 Spacing Rules
Caution
Never use arbitrary pixel values. Use the 8px scale exclusively.
The only exceptions are the fixed layout dimensions (sidebar, header) which are design constants.
Margin between card sections must be consistent (mb-6 = 24px) throughout the product.
2.4 Elevation, Shadows & Borders
2.4.1 Border Radius
Caution
ZERO BORDER RADIUS — NON-NEGOTIABLE RULE
All border radius across the entire Tradazone product is 0px. No exceptions. This applies to every component: cards, buttons, inputs, dropdowns, modals, alerts, search bars, containers, progress bars, and any future component added to the system.
This is an intentional architectural decision. Tradazone's visual identity is defined by sharp, geometric edges. Rounded corners are explicitly prohibited.
Token
Value
Usage
none
0px
Explicit zero radius
sm
0px
Overridden — no small radius
DEFAULT
0px
Overridden — no default radius
md
0px
Overridden — no medium radius
lg
0px
Overridden — no large radius
xl
0px
Overridden — no extra-large radius
2xl
0px
Overridden — no 2xl radius
3xl
0px
Overridden no 3xl radius
card
0px
Card components
full
9999px
ONLY exception circular elements: avatars, status dots
Warning
rounded-full is the ONLY border-radius permitted anywhere in the product. It is reserved exclusively for elements that must be circles (avatars, status indicator dots, icon badges). Using rounded-lg, rounded-xl, rounded-md, or any other radius class on any component is a design system violation.
These overrides are enforced at the tailwind.config.js level, meaning any rounded-* class (except rounded-full) will automatically resolve to 0px — even in newly created components.
The system is architected to support future themes without refactoring:
Layer
Light Theme (Current)
Dark Theme (Future)
page
#F5F6FA
#0F172A
white (surfaces)
#FFFFFF
#1E293B
t-primary
#1E293B
#F1F5F9
t-secondary
#5A6B80
#94A3B8
border.DEFAULT
#E2E8F0
#334155
brand.DEFAULT
#3C3CEF
#5A5AF5
Tip
When dark mode is implemented, swap token values at the config level. Component code should NEVER reference theme-specific values directly — only token names.
3.4 Versioning Strategy
Version Type
When
Example
Patch (1.0.x)
Token value adjustments, bug fixes
Adjusting t-muted from #94A3B8 to #8B9BB5
Minor (1.x.0)
New tokens, new components, non-breaking additions
Adding brand.subtle token
Major (x.0.0)
Breaking changes: token renames, component API changes
Renaming t-primary → text.primary
3.5 Token Update Guidelines
Caution
Before modifying any token:
Search the codebase for all usages of the token (grep_search or equivalent).
Assess impact across all products consuming the design system.
Deprecate before removing — add the new token alongside the old one for one release cycle.
Never change semantic meaning — if error means "destructive/negative," it must always mean that.
4. Component Library
4.1 Component Documentation Standard
Every component in the library must include:
Section
Content
Purpose
One-line description of when and why to use this component
graph LR
A[Identify Need] --> B[Open Proposal]
B --> C[Design Review]
C --> D{Approved?}
D -->|Yes| E[Implement]
D -->|No| F[Revise]
F --> C
E --> G[Code Review]
G --> H[Documentation]
H --> I[Release]
Loading
6.2 Review & Approval Workflow
Stage
Owner
Criteria
Proposal
Contributor
Problem statement, proposed solution, affected products
All products consume the same foundational components:
Layer
Scope
Examples
Core
Never overridden per product
Buttons, Inputs, Alerts, Typography
Layout
Configurable per product
Header (logo/color), Sidebar (nav items)
Domain
Product-specific
Invoice components, checkout flows
Rules for Shared Components
Core components must not contain product-specific logic
Configuration (colors, labels, icons) is passed via props, not hardcoded
Layout components accept children — they define structure, not content
Domain components may import Core components but never the reverse
7.3 Theming Flexibility Per Product
Each product can override specific tokens while inheriting the rest:
// Base design system tokens (shared)constbaseTokens={brand: {DEFAULT: '#3C3CEF',dark: '#2E2ED4'},page: '#F5F6FA',// ...all other tokens};// Product-specific override (example)consttradazoneOverrides={// Tradazone uses the base tokens as-is};constfutureProductOverrides={brand: {DEFAULT: '#00B894',dark: '#00A885'},// Inherits all other tokens from base};
Important
Product overrides may ONLY change token values. They must NEVER change token names, component APIs, or spacing scale.
7.4 Legacy UI Migration Plan
For existing products that predate this design system:
Phase
Action
Timeline
Audit
Catalog all deviations from the design system
Week 1–2
Prioritize
Rank deviations by visibility and impact
Week 2
Tokenize
Replace hardcoded values with design tokens
Week 3–4
Component Swap
Replace custom components with system components
Week 4–6
Validate
Visual regression testing across all pages
Week 6–7
Sign-off
Design lead approves compliance
Week 7
Appendix
A. File Structure
tailwind.config.js � Design tokens (source of truth)
src/
index.css � Base styles, font import, resets
components/
layout/
Header.jsx � Global header
Sidebar.jsx � Global sidebar navigation
Layout.jsx � Page shell (header + sidebar + content)
BottomNav.jsx � Mobile bottom navigation
ui/
Logo.jsx � Brand logo component
EmptyState.jsx � Reusable empty state pattern
WelcomeModal.jsx � Onboarding modal
forms/ � Form-specific components
tables/ � Table components
pages/ � Route-level page components
context/ � State management (Auth, Data)
DESIGN_SYSTEM.md � This document
B. Changelog
Version
Date
Changes
1.0.1
2026-03-22
Fixed WCAG AA color contrast failures. Updated t-muted from #94A3B8 to #6B7FA0 (3.04:1 → 4.9:1) and t-secondary from #64748B to #5A6B80 (4.54:1 → 6.2:1) on white backgrounds. Affects auth pages, form labels, hints, and disabled states.
1.0.0
2026-02-22
Initial design system documentation. Established all foundations, tokens, component specs, and governance model. Border radius set to 0px globally.