# WorkRoot IT Solutions — Design System **Version:** 1.0.0 **Last Updated:** 2026-03-21 **Stack:** Astro v4 + Tailwind CSS v3 + Plus Jakarta Sans + JetBrains Mono --- ## Table of Contents 1. [Design Principles](#1-design-principles) 2. [Color Palette](#2-color-palette) 3. [Typography Scale](#3-typography-scale) 4. [Spacing System](#4-spacing-system) 5. [Elevation & Shadows](#5-elevation--shadows) 6. [Border Radius](#6-border-radius) 7. [Animation & Motion](#7-animation--motion) 8. [Button Styles](#8-button-styles) 9. [Form Elements](#9-form-elements) 10. [Component Patterns](#10-component-patterns) 11. [Layout System](#11-layout-system) 12. [Icon System](#12-icon-system) 13. [Accessibility](#13-accessibility) 14. [Implementation Notes](#14-implementation-notes) --- ## 1. Design Principles ### Brand Identity WorkRoot IT Solutions is a **professional B2B tech agency** targeting enterprise and startup clients. The visual language must communicate: | Principle | Application | |-----------|-------------| | **Trust** | Consistent, predictable layouts; clear hierarchy | | **Capability** | Polished micro-interactions; precise typography | | **Innovation** | Gradient accents; modern glassmorphism-lite | | **Clarity** | Generous whitespace; high contrast ratios | ### Design Decision Framework 1. **Mobile-first** — All breakpoints start at `sm` and scale up 2. **Performance-first** — Prefer CSS-only animations over JS 3. **Accessibility-first** — WCAG AA minimum for all interactive elements 4. **Consistency** — Use design tokens, never magic numbers --- ## 2. Color Palette ### Primary — Cyan (`#0891b2`) The core action color. Used for CTAs, links, highlights, icon backgrounds, focus rings. | Token | Value | Usage | |-------|-------|-------| | `primary-50` | `#ecfeff` | Subtle tinted backgrounds, badge backgrounds | | `primary-100` | `#cffafe` | Hover backgrounds on light surfaces | | `primary-200` | `#a5f3fc` | — | | `primary-300` | `#67e8f9` | Light mode decorative elements | | `primary-400` | `#22d3ee` | Focus rings, gradient midpoints | | `primary-500` / DEFAULT | `#0891b2` | **Main brand color** — buttons, icons | | `primary-600` | `#0e7490` | Button hover states | | `primary-700` | `#155e75` | Dark text on light backgrounds | | `primary-800` | `#164e63` | — | | `primary-900` | `#083344` | Dark sections / hero gradient end | ### Secondary — Slate (`#1e293b`) Neutral palette for text, backgrounds, borders. The backbone of the design. | Token | Value | Usage | |-------|-------|-------| | `secondary-50` | `#f8fafc` | Page backgrounds, subtle section backgrounds | | `secondary-100` | `#f1f5f9` | Card backgrounds, input backgrounds | | `secondary-200` | `#e2e8f0` | Borders, dividers | | `secondary-300` | `#cbd5e1` | Disabled states, placeholder text | | `secondary-400` | `#94a3b8` | Muted text, icons | | `secondary-500` | `#64748b` | Secondary text | | `secondary-600` | `#475569` | Body text on light backgrounds | | `secondary-700` | `#334155` | Strong body text | | `secondary-800` / DEFAULT | `#1e293b` | **Main text color** | | `secondary-900` | `#0f172a` | Headings, hero/CTA dark sections | ### Accent — Amber (`#f59e0b`) Used sparingly for trust signals, testimonials, star ratings, and call-out badges. | Token | Value | Usage | |-------|-------|-------| | `accent-50` | `#fffbeb` | Badge backgrounds (testimonials, stats) | | `accent-400` | `#fbbf24` | Star ratings, gradient endpoints | | `accent-500` / DEFAULT | `#f59e0b` | **Accent color** — stars, highlights | | `accent-600` | `#d97706` | Accent button hover | | `accent-700` | `#b45309` | Accent text on light backgrounds | ### Semantic Colors (Tailwind defaults) | Purpose | Color | Token | |---------|-------|-------| | Error/Danger | Red 500 | `text-red-500`, `border-red-500` | | Success | Green 500 | `bg-green-500` (toast) | | Warning | Amber (use accent) | `text-accent-600` | | Info | Primary | `bg-primary-50 text-primary-700` | ### Color Combinations — Key Patterns ``` Dark Hero Sections: Background: bg-gradient-to-br from-secondary-900 via-secondary-800 to-primary-900 Text: text-white / text-secondary-200 / text-secondary-300 Badges: bg-primary-400/20 text-primary-300 Light Sections: Background: bg-white Alternate: bg-secondary-50 / bg-gradient-to-b from-secondary-50 to-white Text: text-secondary-900 (headings) / text-secondary-600 (body) Badges: bg-primary-50 text-primary-700 Cards: Background: bg-white rounded-2xl/3xl border-2 border-secondary-100 Hover: hover:border-primary/30 hover:shadow-2xl CTA Dark Sections: Background: bg-gradient-to-br from-secondary-900 via-primary-900 to-primary-800 ``` --- ## 3. Typography Scale ### Font Families | Role | Font | Weights | Usage | |------|------|---------|-------| | **Display / Body** | Plus Jakarta Sans | 200–800 | All UI text, headings | | **Monospace** | JetBrains Mono | 100–800 | Code blocks, pre elements | Load via Google Fonts: ``` https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap ``` ### Type Scale | Step | Size (Mobile) | Size (Desktop) | Weight | Use Case | |------|--------------|----------------|--------|----------| | **Display XL** | `text-5xl` (3rem) | `text-8xl` (6rem) | `font-bold` | Hero headlines | | **Display LG** | `text-4xl` (2.25rem) | `text-7xl` (4.5rem) | `font-bold` | Sub-hero | | **H1** | `text-4xl` | `text-6xl` | `font-bold` | Page titles | | **H2** | `text-3xl` / `text-4xl` | `text-5xl` | `font-bold` | Section titles | | **H3** | `text-2xl` | `text-2xl` | `font-bold` | Card titles | | **H4** | `text-xl` | `text-xl` | `font-bold` / `font-semibold` | Subheadings | | **Body LG** | `text-xl` | `text-2xl` | `font-normal` | Lead paragraphs | | **Body** | `text-base` | `text-lg` | `font-normal` | Standard body | | **Body SM** | `text-sm` | `text-base` | `font-normal` | Supporting text | | **Caption** | `text-xs` | `text-sm` | `font-medium` | Labels, badges | | **Code** | `text-sm` | `text-sm` | `font-normal` | Inline code | ### Responsive Typography Patterns ```html
```
### Line Heights
| Context | Class | Value |
|---------|-------|-------|
| Headings | `leading-[1.1]` or `leading-tight` | 1.1–1.25 |
| Subheadings | `leading-snug` | 1.375 |
| Body | `leading-relaxed` | 1.625 |
| Long-form prose | `leading-loose` | 2 |
---
## 4. Spacing System
Tailwind default 4px base unit. Key spacing values in use:
| Scale | px | rem | Use Case |
|-------|----|-----|----------|
| 1 | 4px | 0.25rem | Micro gaps |
| 2 | 8px | 0.5rem | Icon-to-text gaps |
| 3 | 12px | 0.75rem | Tight form elements |
| 4 | 16px | 1rem | Standard gaps, padding |
| 5 | 20px | 1.25rem | — |
| 6 | 24px | 1.5rem | Section sub-gaps |
| 8 | 32px | 2rem | Card padding |
| 10 | 40px | 2.5rem | Large card padding |
| 12 | 48px | 3rem | CTA button padding |
| 16 | 64px | 4rem | — |
| 20 | 80px | 5rem | Section padding (mobile) |
| 24 | 96px | 6rem | **Standard section padding** |
### Section Padding Convention
```html