Migrated from design-system-swarm with fresh git history.
Old project history preserved in /home/overbits/apps/design-system-swarm
Core components:
- MCP Server (Python FastAPI with mcp 1.23.1)
- Claude Plugin (agents, commands, skills, strategies, hooks, core)
- DSS Backend (dss-mvp1 - token translation, Figma sync)
- Admin UI (Node.js/React)
- Server (Node.js/Express)
- Storybook integration (dss-mvp1/.storybook)
Self-contained configuration:
- All paths relative or use DSS_BASE_PATH=/home/overbits/dss
- PYTHONPATH configured for dss-mvp1 and dss-claude-plugin
- .env file with all configuration
- Claude plugin uses ${CLAUDE_PLUGIN_ROOT} for portability
Migration completed: $(date)
🤖 Clean migration with full functionality preserved
247 lines
8.8 KiB
CSS
247 lines
8.8 KiB
CSS
/**
|
|
* DSS Design Tokens - Layer 1
|
|
*
|
|
* Design decisions expressed as CSS custom properties.
|
|
* These tokens can be:
|
|
* 1. Generated from Figma using DSS extraction tools
|
|
* 2. Manually defined in a design-tokens.json file
|
|
* 3. Use the fallback defaults defined here
|
|
*
|
|
* Format follows W3C Design Tokens specification.
|
|
* All values include fallbacks for bootstrap scenario.
|
|
*/
|
|
|
|
:root {
|
|
/* ==========================================================================
|
|
Color Tokens - HSL Format
|
|
========================================================================== */
|
|
|
|
/* Primary Colors */
|
|
--ds-color-primary-h: 220;
|
|
--ds-color-primary-s: 14%;
|
|
--ds-color-primary-l: 10%;
|
|
--ds-color-primary: hsl(var(--ds-color-primary-h) var(--ds-color-primary-s) var(--ds-color-primary-l));
|
|
--ds-color-primary-foreground: hsl(0 0% 100%);
|
|
|
|
/* Secondary Colors */
|
|
--ds-color-secondary-h: 220;
|
|
--ds-color-secondary-s: 9%;
|
|
--ds-color-secondary-l: 46%;
|
|
--ds-color-secondary: hsl(var(--ds-color-secondary-h) var(--ds-color-secondary-s) var(--ds-color-secondary-l));
|
|
--ds-color-secondary-foreground: hsl(0 0% 100%);
|
|
|
|
/* Accent Colors */
|
|
--ds-color-accent-h: 220;
|
|
--ds-color-accent-s: 9%;
|
|
--ds-color-accent-l: 96%;
|
|
--ds-color-accent: hsl(var(--ds-color-accent-h) var(--ds-color-accent-s) var(--ds-color-accent-l));
|
|
--ds-color-accent-foreground: hsl(220 14% 10%);
|
|
|
|
/* Background Colors */
|
|
--ds-color-background: hsl(0 0% 100%);
|
|
--ds-color-foreground: hsl(220 14% 10%);
|
|
|
|
/* Surface Colors */
|
|
--ds-color-surface-0: hsl(0 0% 100%);
|
|
--ds-color-surface-1: hsl(220 14% 98%);
|
|
--ds-color-surface-2: hsl(220 9% 96%);
|
|
--ds-color-surface-3: hsl(220 9% 94%);
|
|
|
|
/* Muted Colors */
|
|
--ds-color-muted: hsl(220 9% 96%);
|
|
--ds-color-muted-foreground: hsl(220 9% 46%);
|
|
|
|
/* Border Colors */
|
|
--ds-color-border: hsl(220 9% 89%);
|
|
--ds-color-border-strong: hsl(220 9% 80%);
|
|
|
|
/* State Colors */
|
|
--ds-color-success: hsl(142 76% 36%);
|
|
--ds-color-success-foreground: hsl(0 0% 100%);
|
|
--ds-color-warning: hsl(38 92% 50%);
|
|
--ds-color-warning-foreground: hsl(0 0% 0%);
|
|
--ds-color-error: hsl(0 84% 60%);
|
|
--ds-color-error-foreground: hsl(0 0% 100%);
|
|
--ds-color-info: hsl(199 89% 48%);
|
|
--ds-color-info-foreground: hsl(0 0% 100%);
|
|
|
|
/* Ring/Focus Color */
|
|
--ds-color-ring: hsl(220 14% 10%);
|
|
|
|
/* ==========================================================================
|
|
Spacing Scale
|
|
========================================================================== */
|
|
|
|
--ds-space-0: 0;
|
|
--ds-space-px: 1px;
|
|
--ds-space-0-5: 0.125rem; /* 2px */
|
|
--ds-space-1: 0.25rem; /* 4px */
|
|
--ds-space-1-5: 0.375rem; /* 6px */
|
|
--ds-space-2: 0.5rem; /* 8px */
|
|
--ds-space-2-5: 0.625rem; /* 10px */
|
|
--ds-space-3: 0.75rem; /* 12px */
|
|
--ds-space-3-5: 0.875rem; /* 14px */
|
|
--ds-space-4: 1rem; /* 16px */
|
|
--ds-space-5: 1.25rem; /* 20px */
|
|
--ds-space-6: 1.5rem; /* 24px */
|
|
--ds-space-7: 1.75rem; /* 28px */
|
|
--ds-space-8: 2rem; /* 32px */
|
|
--ds-space-9: 2.25rem; /* 36px */
|
|
--ds-space-10: 2.5rem; /* 40px */
|
|
--ds-space-11: 2.75rem; /* 44px */
|
|
--ds-space-12: 3rem; /* 48px */
|
|
--ds-space-14: 3.5rem; /* 56px */
|
|
--ds-space-16: 4rem; /* 64px */
|
|
--ds-space-20: 5rem; /* 80px */
|
|
--ds-space-24: 6rem; /* 96px */
|
|
|
|
/* ==========================================================================
|
|
Typography - Font Sizes
|
|
========================================================================== */
|
|
|
|
--ds-font-size-xs: 0.75rem; /* 12px */
|
|
--ds-font-size-sm: 0.875rem; /* 14px */
|
|
--ds-font-size-base: 1rem; /* 16px */
|
|
--ds-font-size-lg: 1.125rem; /* 18px */
|
|
--ds-font-size-xl: 1.25rem; /* 20px */
|
|
--ds-font-size-2xl: 1.5rem; /* 24px */
|
|
--ds-font-size-3xl: 1.875rem; /* 30px */
|
|
--ds-font-size-4xl: 2.25rem; /* 36px */
|
|
--ds-font-size-5xl: 3rem; /* 48px */
|
|
|
|
/* ==========================================================================
|
|
Typography - Font Weights
|
|
========================================================================== */
|
|
|
|
--ds-font-weight-thin: 100;
|
|
--ds-font-weight-extralight: 200;
|
|
--ds-font-weight-light: 300;
|
|
--ds-font-weight-normal: 400;
|
|
--ds-font-weight-medium: 500;
|
|
--ds-font-weight-semibold: 600;
|
|
--ds-font-weight-bold: 700;
|
|
--ds-font-weight-extrabold: 800;
|
|
--ds-font-weight-black: 900;
|
|
|
|
/* ==========================================================================
|
|
Typography - Line Heights
|
|
========================================================================== */
|
|
|
|
--ds-line-height-none: 1;
|
|
--ds-line-height-tight: 1.25;
|
|
--ds-line-height-snug: 1.375;
|
|
--ds-line-height-normal: 1.5;
|
|
--ds-line-height-relaxed: 1.625;
|
|
--ds-line-height-loose: 2;
|
|
|
|
/* ==========================================================================
|
|
Typography - Letter Spacing
|
|
========================================================================== */
|
|
|
|
--ds-letter-spacing-tighter: -0.05em;
|
|
--ds-letter-spacing-tight: -0.025em;
|
|
--ds-letter-spacing-normal: 0;
|
|
--ds-letter-spacing-wide: 0.025em;
|
|
--ds-letter-spacing-wider: 0.05em;
|
|
--ds-letter-spacing-widest: 0.1em;
|
|
|
|
/* ==========================================================================
|
|
Typography - Font Families
|
|
========================================================================== */
|
|
|
|
--ds-font-family-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
--ds-font-family-serif: Georgia, Cambria, 'Times New Roman', Times, serif;
|
|
--ds-font-family-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;
|
|
|
|
/* ==========================================================================
|
|
Border Radius
|
|
========================================================================== */
|
|
|
|
--ds-radius-none: 0;
|
|
--ds-radius-sm: 0.125rem; /* 2px */
|
|
--ds-radius-md: 0.375rem; /* 6px */
|
|
--ds-radius-lg: 0.5rem; /* 8px */
|
|
--ds-radius-xl: 0.75rem; /* 12px */
|
|
--ds-radius-2xl: 1rem; /* 16px */
|
|
--ds-radius-full: 9999px;
|
|
|
|
/* ==========================================================================
|
|
Shadows
|
|
========================================================================== */
|
|
|
|
--ds-shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
|
--ds-shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
|
|
--ds-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
|
|
--ds-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
|
|
--ds-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
|
|
--ds-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
|
|
--ds-shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
|
|
--ds-shadow-none: 0 0 #0000;
|
|
|
|
/* ==========================================================================
|
|
Transitions
|
|
========================================================================== */
|
|
|
|
--ds-transition-fast: 150ms;
|
|
--ds-transition-normal: 200ms;
|
|
--ds-transition-slow: 300ms;
|
|
--ds-transition-slower: 500ms;
|
|
|
|
--ds-ease-linear: linear;
|
|
--ds-ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
--ds-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
--ds-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
|
|
/* ==========================================================================
|
|
Z-Index Scale
|
|
========================================================================== */
|
|
|
|
--ds-z-0: 0;
|
|
--ds-z-10: 10;
|
|
--ds-z-20: 20;
|
|
--ds-z-30: 30;
|
|
--ds-z-40: 40;
|
|
--ds-z-50: 50;
|
|
--ds-z-auto: auto;
|
|
|
|
/* ==========================================================================
|
|
App-Specific Structural Tokens
|
|
========================================================================== */
|
|
|
|
--app-header-height: 60px;
|
|
--app-sidebar-width: 240px;
|
|
--app-sidebar-width-tablet: 200px;
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Dark Mode Tokens
|
|
========================================================================== */
|
|
|
|
[data-theme="dark"],
|
|
.dark {
|
|
--ds-color-primary-h: 220;
|
|
--ds-color-primary-s: 14%;
|
|
--ds-color-primary-l: 90%;
|
|
--ds-color-primary: hsl(var(--ds-color-primary-h) var(--ds-color-primary-s) var(--ds-color-primary-l));
|
|
--ds-color-primary-foreground: hsl(220 14% 10%);
|
|
|
|
--ds-color-background: hsl(220 14% 10%);
|
|
--ds-color-foreground: hsl(220 9% 94%);
|
|
|
|
--ds-color-surface-0: hsl(220 14% 10%);
|
|
--ds-color-surface-1: hsl(220 14% 14%);
|
|
--ds-color-surface-2: hsl(220 14% 18%);
|
|
--ds-color-surface-3: hsl(220 14% 22%);
|
|
|
|
--ds-color-muted: hsl(220 14% 18%);
|
|
--ds-color-muted-foreground: hsl(220 9% 60%);
|
|
|
|
--ds-color-border: hsl(220 14% 22%);
|
|
--ds-color-border-strong: hsl(220 14% 30%);
|
|
|
|
--ds-color-accent: hsl(220 14% 18%);
|
|
--ds-color-accent-foreground: hsl(220 9% 94%);
|
|
|
|
--ds-color-ring: hsl(220 9% 80%);
|
|
}
|