) uses fluorescent green: `#39ff14` - Creates terminal-like appearance\n\n**Code Elements:**\n- `--text-comment: #6a9955` - Comment text color\n\n### macOS Window Dots\n\n**Terminal Window Controls:**\n- `--dot-red: #ff5f57` - Close button (macOS red)\n- `--dot-yellow: #febc2e` - Minimize button (macOS yellow)\n- `--dot-green: #28c840` - Maximize button (macOS green)\n\n### Color Usage Guidelines\n\n**Primary Color (#cc7a60) Usage:**\n- Command keywords in navigation\n- Prompt symbols (`>`)\n- Active states and highlights\n- Focus rings\n- Hover borders\n- Primary buttons when active\n- Chart lines and data visualization\n\n**Fluorescent Green (#39ff14) Usage:**\n- Command prefix (` terminal-ui-design-system · Skills-SI Market ) - creates authentic terminal feel\n- Only used for dollar signs, never for other elements\n\n**Green (#22c55e) Usage:**\n- Success indicators\n- Status dots (online/ready)\n- String literals in code\n- Positive actions\n\n**Blue (#3b82f6) Usage:**\n- Command keywords (cd, watch, man, api)\n- Code keywords (const, let, var)\n- Links and interactive elements\n\n## Typography System\n\n### Font Families\n\n**Primary Font Stack:**\n```css\n--font-mono: \"JetBrains Mono\", \"JetBrains Mono Fallback\", 'Fira Code', 'Consolas', monospace;\n```\n- **Primary**: JetBrains Mono (400-800 weights)\n- **Fallbacks**: Fira Code, Consolas, system monospace\n- Used for: All UI text, navigation, buttons, code blocks\n\n**Sans-serif Fallback:**\n```css\n--font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n```\n- Used as fallback only, monospace is preferred\n\n### Font Size Scale\n\n**Base Unit System:**\n- `--text-xs: 0.75rem` (12px) - Small labels, hints, window status\n- `--text-sm: 0.875rem` (14px) - Secondary text, descriptions\n- `--text-base: 1rem` (16px) - Body text, default size\n- `--text-lg: 1.125rem` (18px) - Slightly emphasized text\n- `--text-xl: 1.25rem` (20px) - Subheadings\n- `--text-2xl: 1.5rem` (24px) - Section titles\n- `--text-3xl: 1.875rem` (30px) - Large numbers, stats\n- `--text-4xl: 2.25rem` (36px) - Hero numbers\n- `--text-5xl: 3rem` (48px) - Large headings\n- `--text-6xl: 3.75rem` (60px) - Extra large headings\n\n**Font Weights:**\n- `--font-weight-normal: 400` - Body text\n- `--font-weight-medium: 500` - Medium emphasis\n- `--font-weight-semibold: 600` - Semibold (keywords, labels)\n- `--font-weight-bold: 700` - Bold (headings, important text)\n- `--font-weight-extrabold: 800` - Extra bold (hero text)\n\n**Line Heights:**\n- `--leading-tight: 1.25` - Tight spacing for headings\n- `--leading-relaxed: 1.625` - Relaxed spacing for body text\n\n### Typography Usage\n\n**Headings:**\n- Hero titles: 3.5rem, weight 700, line-height 1.1\n- Section titles: 2.5rem, weight 700\n- FAQ titles: 2rem, weight 700\n\n**Body Text:**\n- Default: 1rem, weight 400, line-height 1.5\n- Secondary: 0.875rem, color `--text-secondary`\n- Muted: 0.75rem, color `--text-muted`\n\n**Code/Command Text:**\n- Always use monospace font\n- Command prefix: fluorescent green (#39ff14)\n- Keywords: primary color (#cc7a60) or blue (#3b82f6)\n- Flags/arguments: default foreground color\n\n## Spacing System\n\n**Base Unit:** `--spacing: 0.25rem` (4px)\n\n**Spacing Scale:**\n- `--spacing-xs: 4px` (0.25rem) - Tight spacing, icon padding\n- `--spacing-sm: 8px` (0.5rem) - Small gaps, button padding\n- `--spacing-md: 16px` (1rem) - Standard spacing, card padding\n- `--spacing-lg: 24px` (1.5rem) - Large gaps, section spacing\n- `--spacing-xl: 32px` (2rem) - Extra large gaps, major sections\n- `--spacing-2xl: 48px` (3rem) - Maximum spacing, page sections\n\n**Usage Guidelines:**\n- Use consistent spacing multiples (4px base)\n- Card padding: `--spacing-md` to `--spacing-lg`\n- Section margins: `--spacing-xl` to `--spacing-2xl`\n- Button padding: `--spacing-sm` to `--spacing-md`\n- Gap between related elements: `--spacing-sm` to `--spacing-md`\n\n## Border Radius System\n\n**Radius Scale:**\n- `--radius-xs: 2px` (0.125rem) - Minimal rounding\n- `--radius-sm: 4px` (0.25rem) - Small elements\n- `--radius-md: 6px` (0.375rem) - Buttons, inputs\n- `--radius-lg: 8px` (0.5rem) - Cards, windows (most common)\n- `--radius-xl: 12px` (0.75rem) - Large cards\n- `--radius-2xl: 16px` (1rem) - Extra large elements\n- `--radius: 10px` (0.625rem) - Default radius\n\n**Usage:**\n- Terminal windows: `--radius-lg` (8px)\n- Buttons: `--radius-lg` (8px)\n- Cards: `--radius-lg` (8px)\n- Inputs: `--radius-md` (6px)\n- Avatar: `9999px` (fully rounded)\n\n## Shadow System\n\n**Shadow Scale:**\n- `--shadow-sm: 0 1px 2px rgba(0,0,0,0.05)` - Subtle elevation\n- `--shadow-md: 0 4px 6px rgba(0,0,0,0.07)` - Medium elevation (cards on hover)\n- `--shadow-lg: 0 10px 25px rgba(0,0,0,0.1)` - Large elevation (floating buttons)\n\n**Usage:**\n- Default cards: `--shadow-sm`\n- Hover states: `--shadow-md`\n- Floating elements: `--shadow-lg`\n- Primary-colored shadows: `rgba(204, 122, 96, 0.1)` for primary-themed elements\n\n## Component Specifications\n\n### Terminal Window Component\n\n**Structure:**\n```html\n\u003cdiv class=\"terminal-window\">\n \u003cdiv class=\"window-header\">\n \u003cdiv class=\"window-dots\">\n \u003cspan class=\"dot red\">\u003c/span>\n \u003cspan class=\"dot yellow\">\u003c/span>\n \u003cspan class=\"dot green\">\u003c/span>\n \u003c/div>\n \u003cspan class=\"window-title\">filename.ext\u003c/span>\n \u003cspan class=\"window-status\">ready\u003c/span>\n \u003c/div>\n \u003cdiv class=\"window-content\">\n \u003c!-- Content -->\n \u003c/div>\n\u003c/div>\n```\n\n**Styling:**\n- Background: `--bg-card` (#fff)\n- Border: `1px solid --border` (#8b929e)\n- Border radius: `--radius-lg` (8px)\n- Box shadow: `--shadow-sm`\n- Header background: `--bg-code` (#fafafa)\n- Header border-bottom: `1px solid --border-light` (#e5e7eb)\n- Header padding: `--spacing-sm --spacing-md` (8px 16px)\n- Content padding: `--spacing-lg` (24px)\n\n**Window Dots:**\n- Size: `12px × 12px`\n- Gap: `6px`\n- Colors: Red (#ff5f57), Yellow (#febc2e), Green (#28c840)\n- Fully rounded (border-radius: 50%)\n\n**Window Title:**\n- Font size: `0.85rem`\n- Color: `--text-secondary` (#666666)\n- Font: Monospace\n\n**Window Status:**\n- Font size: `0.75rem`\n- Color: `--text-muted` (#5b6370)\n- Position: Right side of header\n\n### Navigation Bar\n\n**Structure:**\n```html\n\u003cnav class=\"navbar\">\n \u003cdiv class=\"navbar-container\">\n \u003cdiv class=\"navbar-content\">\n \u003c!-- Logo, commands, actions -->\n \u003c/div>\n \u003c/div>\n\u003c/nav>\n```\n\n**Styling:**\n- Position: `sticky`, `top: 0`\n- Background: `rgba(255, 255, 255, 0.8)` with `backdrop-filter: blur(8px)`\n- Border-bottom: `1px solid --border`\n- Height: `64px` (desktop), `56px` (mobile)\n- Max width: `80rem` (1280px), centered\n\n**Logo:**\n- Status indicator: Green dot (8px) + \"ready\" text\n- Path prefix: `~/` in primary color (#cc7a60)\n- Path name: Bold, foreground color\n- Cursor blink: 2px width, primary color, animated\n\n**Navigation Commands:**\n- Display: Flex, gap `--spacing-md`\n- Button style: Monospace font, small padding (6px 12px)\n- Border: `1px solid --border`\n- Border radius: `--radius-lg`\n- Active state: Primary border color with pulse animation\n- Hover: Border color changes to primary with 50% opacity\n\n**Command Button Structure:**\n```html\n\u003cbutton class=\"nav-cmd\">\n \u003cspan class=\"cmd-prefix\">$\u003c/span>\n \u003cspan class=\"cmd-keyword\">ai\u003c/span>\n \u003cspan class=\"cmd-flag\">--search\u003c/span>\n\u003c/button>\n```\n\n**Command Colors:**\n- Prefix (` terminal-ui-design-system · Skills-SI Market ): Fluorescent green (#39ff14)\n- Keyword: Primary color (#cc7a60) or blue (#3b82f6)\n- Flag: Default foreground color\n\n### Card Components\n\n**Skill Card:**\n- Background: `--bg-card` (#fff in light, #111 in dark)\n- Border: `1px solid --border`\n- Border radius: `--radius-xl` (12px)\n- Height: `100%` with flex column layout\n- Hover: Border changes to primary with 50% opacity, shadow increases (`0 25px 50px -12px rgba(204, 122, 96, 0.1)`), `translateY(-4px)`\n- Active: `translateY(0) scale(0.99)`\n- Transition: `all 0.3s ease`\n- **Line Numbers**: Absolute positioned on left, `2rem` width, subtle background\n- **Avatar**: 24px × 24px, bordered, scales on hover\n- **Star Icon**: 10px × 10px, warning color\n- **Like Button**: SVG heart icon, changes color on hover\n\n**Category Card:**\n- Same base styling as skill card\n- **Color Themes**: Cyan, Blue, Purple, Amber variants\n- **Folder Icon**: SVG icon, color varies by theme, scales on hover\n- **Category Dot**: Small indicator dot, changes on hover\n- **Arrow Icon**: Appears on hover, positioned bottom-right\n- **JSON Display**: Key-value pairs with theme-colored hover effects\n- **Command Line**: Footer with command-style text\n\n**Mention Card:**\n- Same base styling\n- Blockquote styling with quotation marks\n- Source attribution with border-top separator\n\n### Button Components\n\n**Primary Button (Active):**\n- Background: `--primary` (#cc7a60)\n- Color: `--primary-foreground` (#fff)\n- Border: `1px solid --primary`\n- Border radius: `--radius-lg`\n- Padding: `6px 12px` (small) or `--spacing-md --spacing-lg` (medium)\n- Font: Monospace, `--text-xs` or `--text-sm`\n\n**Secondary Button:**\n- Background: `--bg-card`\n- Border: `1px solid --border`\n- Color: `--foreground`\n- Hover: Border color changes to primary with 50% opacity\n- Active: `transform: scale(0.95)`\n\n**Icon Button:**\n- Square or rounded\n- Padding: `6px 12px`\n- Icon size: `14px` or `16px`\n- Same hover/active states as secondary button\n\n### Input Components\n\n**Search Input:**\n- Background: Transparent\n- Border: None\n- Font: Monospace\n- Placeholder: `--text-muted` color\n- Focus: No visible border (minimal design)\n\n**Text Input:**\n- Background: `--bg-card`\n- Border: `1px solid --border`\n- Border radius: `--radius-sm` or `--radius-md`\n- Padding: `--spacing-sm`\n- Font: Monospace\n\n### Code Display Components\n\n**Code Block:**\n- Background: `rgba(255, 255, 255, 0.5)` with backdrop blur\n- Border: `1px solid --border`\n- Border radius: `--radius-lg`\n- Padding: `--spacing-md`\n- Font: Monospace\n- Line height: `--leading-relaxed`\n\n**Code Line:**\n- Display: Flex, align baseline\n- Gap: `--spacing-sm`\n- Syntax colors applied to different elements\n\n**Description Block (Comment Style):**\n- Border-left: `4px solid rgba(204, 122, 96, 0.5)`\n- Background: `rgba(204, 122, 96, 0.05)`\n- Padding-left: `--spacing-md`\n- Border-radius: Right side only (`--radius-lg`)\n- Font: Monospace\n\n### Grid Layouts\n\n**Skills Grid:**\n- Display: Grid\n- Columns: `repeat(3, 1fr)` (desktop), `repeat(2, 1fr)` (tablet), `1fr` (mobile)\n- Gap: `--spacing-lg` (24px)\n\n**Categories Grid:**\n- Display: Grid\n- Columns: `repeat(4, 1fr)` (desktop), `repeat(2, 1fr)` (tablet), `1fr` (mobile)\n- Gap: `--spacing-lg`\n\n**Mentions Grid:**\n- Display: Grid\n- Columns: `1fr 1fr` (desktop), `1fr` (mobile)\n- Gap: `--spacing-lg`\n\n## Animation System\n\n### Transitions\n\n**Default Transition:**\n- Duration: `0.15s` or `0.2s`\n- Timing: `cubic-bezier(.4,0,.2,1)` (ease-in-out)\n- Properties: `all` or specific properties\n\n**Common Transitions:**\n- Hover states: `all 0.2s ease`\n- Active states: `transform 0.2s ease`\n- Color changes: `color 0.2s ease` or `background-color 0.2s ease`\n\n### Keyframe Animations\n\n**Blink Animation (Cursor):**\n```css\n@keyframes blink {\n 0%, 50% { opacity: 1; }\n 51%, 100% { opacity: 0; }\n}\n```\n- Duration: `1s`\n- Iteration: `infinite`\n- Used for: Cursor blink effect\n\n**Pulse Border Animation:**\n```css\n@keyframes pulse-border {\n 0%, 100% { border-color: rgba(204, 122, 96, 0.5); }\n 50% { border-color: var(--ring); }\n}\n```\n- Duration: `2s`\n- Timing: `ease-in-out`\n- Iteration: `infinite`\n- Used for: Active navigation items\n\n**Fade In Up Animation:**\n```css\n@keyframes fadeInUp {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n```\n- Duration: `0.5s`\n- Timing: `ease`\n- Used for: Card entrance animations\n- Staggered delays: 0.1s increments for grid items\n\n### Interactive States\n\n**Hover States:**\n- Buttons: Border color changes, background lightens\n- Cards: Border changes to primary, shadow increases, slight lift\n- Links: Color changes to primary\n- Scale: No scaling on hover (maintains stability)\n\n**Active States:**\n- Buttons: `transform: scale(0.95)` - subtle press effect\n- Duration: `0.2s`\n\n**Focus States:**\n- Outline: `2px solid --ring` with `2px` offset\n- Used for: Accessibility, keyboard navigation\n\n## Background Patterns\n\n### Grid Pattern (Page Background)\n\n```css\nbackground-image: \n linear-gradient(rgba(0, 0, 0, 0.02) 1px, transparent 1px),\n linear-gradient(90deg, rgba(0, 0, 0, 0.02) 1px, transparent 1px);\nbackground-size: 20px 20px;\n```\n\n- Very subtle grid (2% opacity black)\n- 20px × 20px grid cells\n- Creates texture without distraction\n- Applied to `body` background\n\n### Gradient Backgrounds\n\n**Avatar Gradient:**\n```css\nbackground: linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%);\n```\n- Warm peach gradient\n- 135-degree angle\n- Used for: User avatars\n\n**Chart Gradient:**\n```css\nlinearGradient: #cc7a60 with opacity stops (0%: 0.6, 100%: 0)\n```\n- Primary color gradient\n- Used for: Area charts, data visualization\n\n## Responsive Design\n\n### Breakpoints\n\n**Mobile:** `\u003c 640px`\n- Single column layouts\n- Reduced font sizes\n- Simplified navigation\n- Stacked grids\n\n**Tablet:** `640px - 1024px`\n- Two column layouts\n- Medium font sizes\n- Collapsed navigation menu\n\n**Desktop:** `1024px - 1200px`\n- Three column layouts\n- Full navigation visible\n- Standard spacing\n\n**Large Desktop:** `> 1200px`\n- Four column layouts (where applicable)\n- Maximum content width: `1400px`\n- Generous spacing\n\n### Responsive Adjustments\n\n**Navigation:**\n- Desktop (>1024px): Full command menu visible\n- Tablet/Mobile: Hamburger menu, simplified layout\n- Status indicator: Hidden on mobile, visible on tablet+\n\n**Hero Section:**\n- Desktop: Two column grid (text + chart)\n- Mobile: Single column, stacked\n\n**Grids:**\n- Skills: 3 → 2 → 1 columns\n- Categories: 4 → 2 → 1 columns\n- Mentions: 2 → 1 columns\n\n**Typography:**\n- Hero title: 3.5rem → 2.5rem (mobile)\n- Section titles: 2.5rem → 2rem (mobile)\n- Body text: Maintains readability\n\n## Implementation Guidelines\n\n### CSS Variable Usage\n\n**Always use CSS variables** for:\n- Colors (never hardcode hex values)\n- Spacing (use spacing scale)\n- Typography (use text size scale)\n- Border radius (use radius scale)\n- Shadows (use shadow scale)\n\n**Example:**\n```css\n.button {\n background: var(--bg-card);\n color: var(--foreground);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--border);\n border-radius: var(--radius-lg);\n box-shadow: var(--shadow-sm);\n}\n```\n\n### Component Structure\n\n**Terminal Window Pattern:**\n1. Container with border and radius\n2. Header with dots, title, status\n3. Content area with padding\n4. Consistent spacing throughout\n\n**Command-Line Pattern:**\n1. Prefix (` terminal-ui-design-system · Skills-SI Market ) in fluorescent green\n2. Keyword in primary or blue\n3. Flags/arguments in default color\n4. Monospace font throughout\n\n### Color Application Rules\n\n**Primary Color (#cc7a60):**\n- Use for: Active states, highlights, keywords, prompts\n- Avoid: Large background areas (too intense)\n- Opacity variants: Use `rgba(204, 122, 96, 0.5)` for borders, `rgba(204, 122, 96, 0.05)` for backgrounds\n\n**Fluorescent Green (#39ff14):**\n- Use ONLY for: Command prefix (` terminal-ui-design-system · Skills-SI Market )\n- Never use for: Other text, backgrounds, or accents\n\n**Green (#22c55e):**\n- Use for: Success states, positive indicators, string literals\n- Avoid: Primary actions (use primary color instead)\n\n### Typography Rules\n\n**Always use monospace font** for:\n- Navigation elements\n- Buttons\n- Code blocks\n- Command-line interfaces\n- Window titles\n- Status text\n\n**Font weight guidelines:**\n- Body text: 400 (normal)\n- Labels/keywords: 600 (semibold)\n- Headings: 700 (bold)\n- Hero text: 700-800 (bold-extrabold)\n\n### Spacing Consistency\n\n**Use spacing scale:**\n- Never use arbitrary values (e.g., `13px`, `27px`)\n- Stick to: 4px, 8px, 16px, 24px, 32px, 48px\n- For gaps between related items: `--spacing-sm` to `--spacing-md`\n- For section separation: `--spacing-xl` to `--spacing-2xl`\n\n### Animation Best Practices\n\n**Keep animations subtle:**\n- Duration: 0.15s - 0.3s maximum\n- Easing: Use provided cubic-bezier curves\n- Avoid: Bouncy animations, long durations\n- Prefer: Fade, translate, scale (small amounts)\n\n**Performance:**\n- Use `transform` and `opacity` for animations (GPU accelerated)\n- Avoid animating `width`, `height`, `margin`, `padding`\n\n## Common Patterns\n\n### Terminal Window Card\n\n```html\n\u003cdiv class=\"terminal-window\">\n \u003cdiv class=\"window-header\">\n \u003cdiv class=\"window-dots\">\n \u003cspan class=\"dot red\">\u003c/span>\n \u003cspan class=\"dot yellow\">\u003c/span>\n \u003cspan class=\"dot green\">\u003c/span>\n \u003c/div>\n \u003cspan class=\"window-title\">filename.ext\u003c/span>\n \u003cspan class=\"window-status\">ready\u003c/span>\n \u003c/div>\n \u003cdiv class=\"window-content\">\n \u003c!-- Content here -->\n \u003c/div>\n\u003c/div>\n```\n\n### Command Button\n\n```html\n\u003cbutton class=\"nav-cmd\">\n \u003cspan class=\"cmd-prefix\">$\u003c/span>\n \u003cspan class=\"cmd-keyword\">command\u003c/span>\n \u003cspan class=\"cmd-flag\">--flag\u003c/span>\n\u003c/button>\n```\n\n### Code Block Display\n\n```html\n\u003cdiv class=\"stats-code-block\">\n \u003cdiv class=\"code-line\">\n \u003cspan class=\"keyword\">const\u003c/span>\n \u003cspan class=\"variable-name\">variable\u003c/span>\n \u003cspan class=\"operator\">=\u003c/span>\n \u003cspan class=\"number\">123\u003c/span>\n \u003cspan class=\"operator\">;\u003c/span>\n \u003c/div>\n \u003cdiv class=\"code-comment\">\n \u003cspan class=\"comment-symbol\">// \u003c/span>Comment text\n \u003c/div>\n\u003c/div>\n```\n\n### Description Block (Comment Style)\n\n```html\n\u003cdiv class=\"description-block\">\n \u003cdiv class=\"comment-start\">/**\u003c/div>\n \u003cdiv class=\"comment-text\">\n \u003cspan class=\"comment-asterisk\"> * \u003c/span>Description text\n \u003c/div>\n \u003cdiv class=\"comment-end\"> */\u003c/div>\n\u003c/div>\n```\n\n## Accessibility Considerations\n\n**Color Contrast:**\n- Primary text (#111827) on white: WCAG AAA compliant\n- Secondary text (#666666) on white: WCAG AA compliant\n- Primary color (#cc7a60) on white: WCAG AA compliant for large text\n\n**Focus States:**\n- All interactive elements have visible focus indicators\n- Focus ring: 2px solid primary color with 2px offset\n\n**Keyboard Navigation:**\n- All interactive elements are keyboard accessible\n- Tab order follows visual hierarchy\n- Enter/Space activate buttons\n\n**Screen Readers:**\n- Semantic HTML structure\n- ARIA labels where needed\n- Status indicators use appropriate roles\n\n## Dark Mode Implementation\n\nThe design system includes a complete dark mode implementation using `[data-theme=\"dark\"]` attribute selector. Dark mode is fully integrated with smooth transitions and maintains all design principles.\n\n### Dark Mode Color System\n\n**Primary Colors (Dark Mode):**\n- `--primary: #d99178` - Lighter terracotta for better contrast on dark backgrounds\n- `--primary-foreground: #0a0a0a` - Dark text on primary backgrounds\n- `--primary-dark: #c57f66` - Darker shade for hover states\n- `--primary-light: #e5a890` - Lighter shade for subtle accents\n- `--ring: #d99178` - Focus ring color (lighter primary)\n\n**Backgrounds (Dark Mode):**\n- `--background: #0a0a0a` - Deep black for main backgrounds\n- `--bg-main: #0a0a0a` - Dark background with subtle white grid pattern\n- `--bg-card: #111` - Slightly lighter black for card components\n- `--bg-code: #18181b` - Dark gray for code blocks and window headers\n- `--secondary: #1a1a1a` - Dark gray for secondary backgrounds\n- `--muted: #262626` - Muted dark gray for subtle backgrounds\n\n**Text Colors (Dark Mode):**\n- `--foreground: #ededed` - Light gray for primary text\n- `--text-primary: #ededed` - Primary text color\n- `--text-secondary: #a3a3a3` - Medium gray for secondary text\n- `--text-muted: #a3a3a3` - Muted gray for less important text\n- `--muted-foreground: #a3a3a3` - Foreground on muted backgrounds\n\n**Borders (Dark Mode):**\n- `--border: #606068` - Lighter gray for visibility on dark backgrounds\n- `--border-light: #27272a` - Subtle dark gray for dividers\n\n**Syntax Highlighting (Dark Mode):**\n- `--syntax-keyword: #d99178` - Lighter primary for keywords\n- `--syntax-string: #22c55e` - Green (same as light mode)\n- `--syntax-number: #d99178` - Lighter primary for numbers\n- `--syntax-comment: #6a9955` - Muted green (same as light mode)\n- Blue keywords: `#60a5fa` (blue-400) - Brighter blue for better contrast\n- Purple keywords: `#c084fc` (purple-400) - Brighter purple for better contrast\n\n**Shadows (Dark Mode):**\n- `--shadow-sm: 0 1px 2px rgba(0,0,0,0.3)` - Stronger shadows for depth\n- `--shadow-md: 0 4px 6px rgba(0,0,0,0.4)` - Medium shadows\n- `--shadow-lg: 0 10px 25px rgba(0,0,0,0.5)` - Large shadows\n\n### Dark Mode Background Pattern\n\nDark mode uses a subtle white grid pattern instead of black:\n\n```css\n[data-theme=\"dark\"] body {\n background-image: \n linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),\n linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);\n}\n```\n\n### Theme Toggle Implementation\n\n**HTML Structure:**\n```html\n\u003cbutton class=\"theme-toggle-btn theme-toggle\" title=\"切换主题\" aria-label=\"切换主题\">\n \u003csvg class=\"icon-sun theme-icon\">\u003c!-- Sun icon -->\u003c/svg>\n \u003csvg class=\"icon-moon theme-icon\" style=\"display: none;\">\u003c!-- Moon icon -->\u003c/svg>\n\u003c/button>\n```\n\n**JavaScript Implementation:**\n- Uses `localStorage` to persist theme preference\n- Detects system preference on first load\n- Smoothly transitions between themes\n- Updates icon visibility (sun/moon)\n- Listens to system theme changes (when no manual preference set)\n\n**Key Features:**\n- Automatic system preference detection\n- Manual override with localStorage persistence\n- Smooth CSS transitions (0.2s ease-in-out)\n- Icon state management (sun for light, moon for dark)\n\n### Dark Mode Component Adaptations\n\n**Navigation Bar:**\n- Background: `rgba(10, 10, 10, 0.8)` with backdrop blur\n- Status indicator: Darker background with adjusted border\n\n**Terminal Windows:**\n- Card background: `#111` (slightly lighter than main background)\n- Window headers: `rgba(38, 38, 38, 0.3)` for subtle contrast\n- All borders use darker mode colors\n\n**Skill Cards:**\n- Line numbers background: `rgba(38, 38, 38, 0.2)`\n- Footer background: `rgba(38, 38, 38, 0.2)`\n- Hover effects maintain same behavior with adjusted colors\n\n**Category Cards:**\n- Each category has theme-specific hover colors:\n - Cyan: `#22d3ee` (dark) vs `#06b6d4` (light)\n - Blue: `#60a5fa` (dark) vs `#3b82f6` (light)\n - Purple: `#c084fc` (dark) vs `#a855f7` (light)\n - Amber: `#fbbf24` (dark) vs `#f59e0b` (light)\n\n**Charts:**\n- Grid lines: `#27272a` with 0.5 opacity\n- Chart container: `rgba(17, 17, 17, 0.3)`\n- All text colors adapt to dark mode\n\n**FAB Button:**\n- Light mode: Dark background `#1a1a1a` with white icon\n- Dark mode: White background with dark icon (inverted)\n\n### Dark Mode Best Practices\n\n**Color Contrast:**\n- All text maintains WCAG AA compliance in dark mode\n- Primary color is lightened for better visibility\n- Borders are lighter for clear definition\n\n**Transitions:**\n- All color changes use `transition: color 0.2s ease-in-out`\n- Background changes use `transition: background-color 0.2s ease-in-out`\n- Smooth theme switching without jarring changes\n\n**Implementation Pattern:**\n```css\n/* Light mode (default) */\n.component {\n background: var(--bg-card);\n color: var(--foreground);\n}\n\n/* Dark mode */\n[data-theme=\"dark\"] .component {\n background: var(--bg-card); /* Automatically uses dark value */\n color: var(--foreground); /* Automatically uses dark value */\n}\n```\n\n**Maintains:**\n- Same spacing system\n- Same typography scale\n- Same component structure\n- Same animation timing\n- Enhanced shadows for depth perception\n\n## Performance Optimization\n\n**CSS Variables:**\n- All colors/spacing use CSS variables for easy theming\n- Variables defined in `:root` for global access\n\n**Animations:**\n- Use `transform` and `opacity` (GPU accelerated)\n- Avoid layout-triggering properties\n- Keep durations short (0.15s - 0.3s)\n\n**Font Loading:**\n- Preconnect to Google Fonts\n- Use `font-display: swap` for better performance\n- Provide fallback fonts in stack\n\n## Browser Support\n\n**Modern Browsers:**\n- Chrome/Edge: Full support\n- Firefox: Full support\n- Safari: Full support (with `-webkit-` prefixes for backdrop-filter)\n\n**Features Used:**\n- CSS Grid: Full support in modern browsers\n- CSS Variables: Full support\n- Backdrop Filter: Requires `-webkit-` prefix for Safari\n- Flexbox: Full support\n\n## Design Tokens Summary\n\n**Quick Reference:**\n\n```css\n/* Colors - Light Mode */\nPrimary: #cc7a60\nFluorescent Green: #39ff14 (command prefix only)\nSuccess: #22c55e\nBlue: #3b82f6\nForeground: #111827\nBorder: #8b929e\n\n/* Colors - Dark Mode */\nPrimary: #d99178\nForeground: #ededed\nBackground: #0a0a0a\nCard: #111\nBorder: #606068\nBlue: #60a5fa (brighter for contrast)\n\n/* Spacing */\nxs: 4px, sm: 8px, md: 16px, lg: 24px, xl: 32px, 2xl: 48px\n\n/* Typography */\nFont: JetBrains Mono\nSizes: 0.75rem - 3.75rem scale\nWeights: 400, 500, 600, 700, 800\n\n/* Radius */\nxs: 2px, sm: 4px, md: 6px, lg: 8px, xl: 12px, 2xl: 16px\n\n/* Shadows - Light Mode */\nsm: 0 1px 2px rgba(0,0,0,0.05)\nmd: 0 4px 6px rgba(0,0,0,0.07)\nlg: 0 10px 25px rgba(0,0,0,0.1)\n\n/* Shadows - Dark Mode */\nsm: 0 1px 2px rgba(0,0,0,0.3)\nmd: 0 4px 6px rgba(0,0,0,0.4)\nlg: 0 10px 25px rgba(0,0,0,0.5)\n```\n\n## Theme Toggle JavaScript Implementation\n\n**Complete Implementation:**\n```javascript\n(function() {\n const themeToggles = document.querySelectorAll('.theme-toggle');\n const html = document.documentElement;\n \n // Get initial theme from localStorage or system preference\n function getInitialTheme() {\n const savedTheme = localStorage.getItem('theme');\n if (savedTheme) {\n return savedTheme;\n }\n // Check system preference\n if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n return 'light';\n }\n \n // Set theme and update icons\n function setTheme(theme) {\n if (theme === 'dark') {\n html.setAttribute('data-theme', 'dark');\n document.querySelectorAll('.icon-sun').forEach(icon => {\n icon.style.display = 'none';\n });\n document.querySelectorAll('.icon-moon').forEach(icon => {\n icon.style.display = 'block';\n });\n } else {\n html.removeAttribute('data-theme');\n document.querySelectorAll('.icon-sun').forEach(icon => {\n icon.style.display = 'block';\n });\n document.querySelectorAll('.icon-moon').forEach(icon => {\n icon.style.display = 'none';\n });\n }\n localStorage.setItem('theme', theme);\n }\n \n // Toggle theme\n function toggleTheme() {\n const currentTheme = html.getAttribute('data-theme');\n const newTheme = currentTheme === 'dark' ? 'light' : 'dark';\n setTheme(newTheme);\n }\n \n // Initialize\n const initialTheme = getInitialTheme();\n setTheme(initialTheme);\n \n // Add event listeners\n themeToggles.forEach(button => {\n button.addEventListener('click', toggleTheme);\n });\n \n // Listen to system theme changes (only if no manual preference)\n if (window.matchMedia) {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n mediaQuery.addEventListener('change', (e) => {\n if (!localStorage.getItem('theme')) {\n setTheme(e.matches ? 'dark' : 'light');\n }\n });\n }\n})();\n```\n\n**Key Features:**\n- Persists theme preference in localStorage\n- Detects system preference on first load\n- Smoothly transitions between themes\n- Updates icon visibility automatically\n- Listens to system theme changes (when no manual override)\n\n## Usage Examples\n\nWhen implementing this design system:\n\n1. **Start with CSS variables** - Import or define all color/spacing variables (including dark mode)\n2. **Use terminal window pattern** - Wrap content in terminal-window component\n3. **Apply monospace font** - Use JetBrains Mono for all UI text\n4. **Follow spacing scale** - Use defined spacing values consistently\n5. **Use semantic colors** - Apply colors based on meaning, not appearance\n6. **Implement theme toggle** - Add theme toggle button and JavaScript\n7. **Maintain consistency** - Reuse component patterns throughout\n8. **Test responsiveness** - Ensure layouts work at all breakpoints\n9. **Test both themes** - Verify light and dark modes work correctly\n10. **Optimize animations** - Keep transitions smooth and performant\n\nThis design system creates a cohesive, developer-friendly interface that feels both modern and familiar to users comfortable with terminal interfaces. The complete dark mode implementation ensures the interface works beautifully in any lighting condition.\n","licenseDocuments":[]}}
Die Oberfläche ist lokalisiert; Skill-Beschreibungen und -Dokumente werden per KI automatisch in Ihre Sprache übersetzt. Code, Befehle, Pfade und Fachbegriffe bleiben im Original, maßgeblich ist das Dokument des Autors.
Skills entdecken
Dokumente · SKILL.md

terminal-ui-design-system

terminal-ui-design-system

Create terminal-inspired UI interfaces with macOS-style window decorations, monospace typography, and a warm color palette. Use this skill when building developer tools, code marketplaces, technical documentation sites, or any interface that benefits from a terminal/command-line aesthetic. Provides complete design system specifications including color palet…

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill-Dokumentation

GitHub

name: terminal-ui-design-system description: Create terminal-inspired UI interfaces with macOS-style window decorations, monospace typography, and a warm color palette. Use this skill when building developer tools, code marketplaces, technical documentation sites, or any interface that benefits from a terminal/command-line aesthetic. Provides complete design system specifications including color palette, typography, spacing, components, and CSS implementation details.

Terminal UI Design System

A comprehensive design system for creating terminal-inspired user interfaces with macOS-style window decorations, monospace typography, and a warm, developer-friendly color palette. This design system is optimized for developer tools, code marketplaces, technical documentation, and any interface that benefits from a command-line aesthetic.

Design Philosophy

Core Principles:

  • Terminal Aesthetic: Mimics macOS terminal windows with colored dots, monospace fonts, and command-line syntax
  • Developer-First: Uses syntax highlighting colors, code-like structures, and terminal metaphors
  • Warm & Approachable: Warm terracotta primary color (#cc7a60) creates a friendly, non-intimidating feel
  • High Contrast: Clear visual hierarchy with distinct text colors and backgrounds
  • Functional Beauty: Every design element serves a purpose while maintaining visual appeal

Color System

Primary Palette

Main Brand Color:

  • --primary: #cc7a60 - Warm terracotta/orange-brown, used for primary actions, accents, and highlights
  • --primary-foreground: #fff - White text on primary backgrounds
  • --primary-dark: #b56850 - Darker shade for hover states
  • --primary-light: #d8907a - Lighter shade for subtle accents
  • --ring: #cc7a60 - Focus ring color (same as primary)

Warm Accent:

  • --warm-red: #c85a3f - Used for code block borders and warm accents

Semantic Colors

Backgrounds:

  • --background: #fff - Pure white for main backgrounds
  • --bg-main: #f8f8f8 - Light gray for page background (with subtle grid pattern)
  • --bg-card: #fff - White for card components
  • --bg-code: #fafafa - Very light gray for code blocks and window headers
  • --secondary: #f9fafb - Light gray for secondary backgrounds
  • --muted: #f3f4f6 - Muted gray for subtle backgrounds

Text Colors:

  • --foreground: #111827 - Near-black for primary text (excellent readability)
  • --text-primary: #111827 - Primary text color
  • --text-secondary: #666666 - Medium gray for secondary text
  • --text-muted: #5b6370 - Muted gray for less important text
  • --muted-foreground: #5b6370 - Foreground on muted backgrounds

Borders:

  • --border: #8b929e - Medium gray for main borders
  • --border-light: #e5e7eb - Light gray for subtle dividers
  • --input: #8b929e - Input border color

Status Colors:

  • --success: #22c55e - Green for success states
  • --warning: #f59e0b - Amber for warnings
  • --danger: #ef4444 - Red for errors/destructive actions
  • --accent: #f59e0b - Amber accent color

Syntax Highlighting Colors

Code Syntax:

  • --syntax-keyword: #cc7a60 - Primary color for keywords (const, export, etc.)
  • --syntax-string: #22c55e - Green for strings
  • --syntax-number: #cc7a60 - Primary color for numbers
  • --syntax-comment: #6a9955 - Muted green for comments
  • --syntax-function: #dcdcaa - Light yellow for function names

Command Prefix:

  • Command prefix ($) uses fluorescent green: #39ff14 - Creates terminal-like appearance

Code Elements:

  • --text-comment: #6a9955 - Comment text color

macOS Window Dots

Terminal Window Controls:

  • --dot-red: #ff5f57 - Close button (macOS red)
  • --dot-yellow: #febc2e - Minimize button (macOS yellow)
  • --dot-green: #28c840 - Maximize button (macOS green)

Color Usage Guidelines

Primary Color (#cc7a60) Usage:

  • Command keywords in navigation
  • Prompt symbols (>)
  • Active states and highlights
  • Focus rings
  • Hover borders
  • Primary buttons when active
  • Chart lines and data visualization

Fluorescent Green (#39ff14) Usage:

  • Command prefix ($) - creates authentic terminal feel
  • Only used for dollar signs, never for other elements

Green (#22c55e) Usage:

  • Success indicators
  • Status dots (online/ready)
  • String literals in code
  • Positive actions

Blue (#3b82f6) Usage:

  • Command keywords (cd, watch, man, api)
  • Code keywords (const, let, var)
  • Links and interactive elements

Typography System

Font Families

Primary Font Stack:

--font-mono: "JetBrains Mono", "JetBrains Mono Fallback", 'Fira Code', 'Consolas', monospace;
  • Primary: JetBrains Mono (400-800 weights)
  • Fallbacks: Fira Code, Consolas, system monospace
  • Used for: All UI text, navigation, buttons, code blocks

Sans-serif Fallback:

--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  • Used as fallback only, monospace is preferred

Font Size Scale

Base Unit System:

  • --text-xs: 0.75rem (12px) - Small labels, hints, window status
  • --text-sm: 0.875rem (14px) - Secondary text, descriptions
  • --text-base: 1rem (16px) - Body text, default size
  • --text-lg: 1.125rem (18px) - Slightly emphasized text
  • --text-xl: 1.25rem (20px) - Subheadings
  • --text-2xl: 1.5rem (24px) - Section titles
  • --text-3xl: 1.875rem (30px) - Large numbers, stats
  • --text-4xl: 2.25rem (36px) - Hero numbers
  • --text-5xl: 3rem (48px) - Large headings
  • --text-6xl: 3.75rem (60px) - Extra large headings

Font Weights:

  • --font-weight-normal: 400 - Body text
  • --font-weight-medium: 500 - Medium emphasis
  • --font-weight-semibold: 600 - Semibold (keywords, labels)
  • --font-weight-bold: 700 - Bold (headings, important text)
  • --font-weight-extrabold: 800 - Extra bold (hero text)

Line Heights:

  • --leading-tight: 1.25 - Tight spacing for headings
  • --leading-relaxed: 1.625 - Relaxed spacing for body text

Typography Usage

Headings:

  • Hero titles: 3.5rem, weight 700, line-height 1.1
  • Section titles: 2.5rem, weight 700
  • FAQ titles: 2rem, weight 700

Body Text:

  • Default: 1rem, weight 400, line-height 1.5
  • Secondary: 0.875rem, color --text-secondary
  • Muted: 0.75rem, color --text-muted

Code/Command Text:

  • Always use monospace font
  • Command prefix: fluorescent green (#39ff14)
  • Keywords: primary color (#cc7a60) or blue (#3b82f6)
  • Flags/arguments: default foreground color

Spacing System

Base Unit: --spacing: 0.25rem (4px)

Spacing Scale:

  • --spacing-xs: 4px (0.25rem) - Tight spacing, icon padding
  • --spacing-sm: 8px (0.5rem) - Small gaps, button padding
  • --spacing-md: 16px (1rem) - Standard spacing, card padding
  • --spacing-lg: 24px (1.5rem) - Large gaps, section spacing
  • --spacing-xl: 32px (2rem) - Extra large gaps, major sections
  • --spacing-2xl: 48px (3rem) - Maximum spacing, page sections

Usage Guidelines:

  • Use consistent spacing multiples (4px base)
  • Card padding: --spacing-md to --spacing-lg
  • Section margins: --spacing-xl to --spacing-2xl
  • Button padding: --spacing-sm to --spacing-md
  • Gap between related elements: --spacing-sm to --spacing-md

Border Radius System

Radius Scale:

  • --radius-xs: 2px (0.125rem) - Minimal rounding
  • --radius-sm: 4px (0.25rem) - Small elements
  • --radius-md: 6px (0.375rem) - Buttons, inputs
  • --radius-lg: 8px (0.5rem) - Cards, windows (most common)
  • --radius-xl: 12px (0.75rem) - Large cards
  • --radius-2xl: 16px (1rem) - Extra large elements
  • --radius: 10px (0.625rem) - Default radius

Usage:

  • Terminal windows: --radius-lg (8px)
  • Buttons: --radius-lg (8px)
  • Cards: --radius-lg (8px)
  • Inputs: --radius-md (6px)
  • Avatar: 9999px (fully rounded)

Shadow System

Shadow Scale:

  • --shadow-sm: 0 1px 2px rgba(0,0,0,0.05) - Subtle elevation
  • --shadow-md: 0 4px 6px rgba(0,0,0,0.07) - Medium elevation (cards on hover)
  • --shadow-lg: 0 10px 25px rgba(0,0,0,0.1) - Large elevation (floating buttons)

Usage:

  • Default cards: --shadow-sm
  • Hover states: --shadow-md
  • Floating elements: --shadow-lg
  • Primary-colored shadows: rgba(204, 122, 96, 0.1) for primary-themed elements

Component Specifications

Terminal Window Component

Structure:

<div class="terminal-window">
  <div class="window-header">
    <div class="window-dots">
      <span class="dot red"></span>
      <span class="dot yellow"></span>
      <span class="dot green"></span>
    </div>
    <span class="window-title">filename.ext</span>
    <span class="window-status">ready</span>
  </div>
  <div class="window-content">
    <!-- Content -->
  </div>
</div>

Styling:

  • Background: --bg-card (#fff)
  • Border: 1px solid --border (#8b929e)
  • Border radius: --radius-lg (8px)
  • Box shadow: --shadow-sm
  • Header background: --bg-code (#fafafa)
  • Header border-bottom: 1px solid --border-light (#e5e7eb)
  • Header padding: --spacing-sm --spacing-md (8px 16px)
  • Content padding: --spacing-lg (24px)

Window Dots:

  • Size: 12px × 12px
  • Gap: 6px
  • Colors: Red (#ff5f57), Yellow (#febc2e), Green (#28c840)
  • Fully rounded (border-radius: 50%)

Window Title:

  • Font size: 0.85rem
  • Color: --text-secondary (#666666)
  • Font: Monospace

Window Status:

  • Font size: 0.75rem
  • Color: --text-muted (#5b6370)
  • Position: Right side of header

Navigation Bar

Structure:

<nav class="navbar">
  <div class="navbar-container">
    <div class="navbar-content">
      <!-- Logo, commands, actions -->
    </div>
  </div>
</nav>

Styling:

  • Position: sticky, top: 0
  • Background: rgba(255, 255, 255, 0.8) with backdrop-filter: blur(8px)
  • Border-bottom: 1px solid --border
  • Height: 64px (desktop), 56px (mobile)
  • Max width: 80rem (1280px), centered

Logo:

  • Status indicator: Green dot (8px) + "ready" text
  • Path prefix: ~/ in primary color (#cc7a60)
  • Path name: Bold, foreground color
  • Cursor blink: 2px width, primary color, animated

Navigation Commands:

  • Display: Flex, gap --spacing-md
  • Button style: Monospace font, small padding (6px 12px)
  • Border: 1px solid --border
  • Border radius: --radius-lg
  • Active state: Primary border color with pulse animation
  • Hover: Border color changes to primary with 50% opacity

Command Button Structure:

<button class="nav-cmd">
  <span class="cmd-prefix">lt;/span>
  <span class="cmd-keyword">ai</span>
  <span class="cmd-flag">--search</span>
</button>

Command Colors:

  • Prefix ($): Fluorescent green (#39ff14)
  • Keyword: Primary color (#cc7a60) or blue (#3b82f6)
  • Flag: Default foreground color

Card Components

Skill Card:

  • Background: --bg-card (#fff in light, #111 in dark)
  • Border: 1px solid --border
  • Border radius: --radius-xl (12px)
  • Height: 100% with flex column layout
  • Hover: Border changes to primary with 50% opacity, shadow increases (0 25px 50px -12px rgba(204, 122, 96, 0.1)), translateY(-4px)
  • Active: translateY(0) scale(0.99)
  • Transition: all 0.3s ease
  • Line Numbers: Absolute positioned on left, 2rem width, subtle background
  • Avatar: 24px × 24px, bordered, scales on hover
  • Star Icon: 10px × 10px, warning color
  • Like Button: SVG heart icon, changes color on hover

Category Card:

  • Same base styling as skill card
  • Color Themes: Cyan, Blue, Purple, Amber variants
  • Folder Icon: SVG icon, color varies by theme, scales on hover
  • Category Dot: Small indicator dot, changes on hover
  • Arrow Icon: Appears on hover, positioned bottom-right
  • JSON Display: Key-value pairs with theme-colored hover effects
  • Command Line: Footer with command-style text

Mention Card:

  • Same base styling
  • Blockquote styling with quotation marks
  • Source attribution with border-top separator

Button Components

Primary Button (Active):

  • Background: --primary (#cc7a60)
  • Color: --primary-foreground (#fff)
  • Border: 1px solid --primary
  • Border radius: --radius-lg
  • Padding: 6px 12px (small) or --spacing-md --spacing-lg (medium)
  • Font: Monospace, --text-xs or --text-sm

Secondary Button:

  • Background: --bg-card
  • Border: 1px solid --border
  • Color: --foreground
  • Hover: Border color changes to primary with 50% opacity
  • Active: transform: scale(0.95)

Icon Button:

  • Square or rounded
  • Padding: 6px 12px
  • Icon size: 14px or 16px
  • Same hover/active states as secondary button

Input Components

Search Input:

  • Background: Transparent
  • Border: None
  • Font: Monospace
  • Placeholder: --text-muted color
  • Focus: No visible border (minimal design)

Text Input:

  • Background: --bg-card
  • Border: 1px solid --border
  • Border radius: --radius-sm or --radius-md
  • Padding: --spacing-sm
  • Font: Monospace

Code Display Components

Code Block:

  • Background: rgba(255, 255, 255, 0.5) with backdrop blur
  • Border: 1px solid --border
  • Border radius: --radius-lg
  • Padding: --spacing-md
  • Font: Monospace
  • Line height: --leading-relaxed

Code Line:

  • Display: Flex, align baseline
  • Gap: --spacing-sm
  • Syntax colors applied to different elements

Description Block (Comment Style):

  • Border-left: 4px solid rgba(204, 122, 96, 0.5)
  • Background: rgba(204, 122, 96, 0.05)
  • Padding-left: --spacing-md
  • Border-radius: Right side only (--radius-lg)
  • Font: Monospace

Grid Layouts

Skills Grid:

  • Display: Grid
  • Columns: repeat(3, 1fr) (desktop), repeat(2, 1fr) (tablet), 1fr (mobile)
  • Gap: --spacing-lg (24px)

Categories Grid:

  • Display: Grid
  • Columns: repeat(4, 1fr) (desktop), repeat(2, 1fr) (tablet), 1fr (mobile)
  • Gap: --spacing-lg

Mentions Grid:

  • Display: Grid
  • Columns: 1fr 1fr (desktop), 1fr (mobile)
  • Gap: --spacing-lg

Animation System

Transitions

Default Transition:

  • Duration: 0.15s or 0.2s
  • Timing: cubic-bezier(.4,0,.2,1) (ease-in-out)
  • Properties: all or specific properties

Common Transitions:

  • Hover states: all 0.2s ease
  • Active states: transform 0.2s ease
  • Color changes: color 0.2s ease or background-color 0.2s ease

Keyframe Animations

Blink Animation (Cursor):

@keyframes blink {
  0%, 50% { opacity: 1; }
  51%, 100% { opacity: 0; }
}
  • Duration: 1s
  • Iteration: infinite
  • Used for: Cursor blink effect

Pulse Border Animation:

@keyframes pulse-border {
  0%, 100% { border-color: rgba(204, 122, 96, 0.5); }
  50% { border-color: var(--ring); }
}
  • Duration: 2s
  • Timing: ease-in-out
  • Iteration: infinite
  • Used for: Active navigation items

Fade In Up Animation:

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
  • Duration: 0.5s
  • Timing: ease
  • Used for: Card entrance animations
  • Staggered delays: 0.1s increments for grid items

Interactive States

Hover States:

  • Buttons: Border color changes, background lightens
  • Cards: Border changes to primary, shadow increases, slight lift
  • Links: Color changes to primary
  • Scale: No scaling on hover (maintains stability)

Active States:

  • Buttons: transform: scale(0.95) - subtle press effect
  • Duration: 0.2s

Focus States:

  • Outline: 2px solid --ring with 2px offset
  • Used for: Accessibility, keyboard navigation

Background Patterns

Grid Pattern (Page Background)

background-image: 
  linear-gradient(rgba(0, 0, 0, 0.02) 1px, transparent 1px),
  linear-gradient(90deg, rgba(0, 0, 0, 0.02) 1px, transparent 1px);
background-size: 20px 20px;
  • Very subtle grid (2% opacity black)
  • 20px × 20px grid cells
  • Creates texture without distraction
  • Applied to body background

Gradient Backgrounds

Avatar Gradient:

background: linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%);
  • Warm peach gradient
  • 135-degree angle
  • Used for: User avatars

Chart Gradient:

linearGradient: #cc7a60 with opacity stops (0%: 0.6, 100%: 0)
  • Primary color gradient
  • Used for: Area charts, data visualization

Responsive Design

Breakpoints

Mobile: < 640px

  • Single column layouts
  • Reduced font sizes
  • Simplified navigation
  • Stacked grids

Tablet: 640px - 1024px

  • Two column layouts
  • Medium font sizes
  • Collapsed navigation menu

Desktop: 1024px - 1200px

  • Three column layouts
  • Full navigation visible
  • Standard spacing

Large Desktop: > 1200px

  • Four column layouts (where applicable)
  • Maximum content width: 1400px
  • Generous spacing

Responsive Adjustments

Navigation:

  • Desktop (>1024px): Full command menu visible
  • Tablet/Mobile: Hamburger menu, simplified layout
  • Status indicator: Hidden on mobile, visible on tablet+

Hero Section:

  • Desktop: Two column grid (text + chart)
  • Mobile: Single column, stacked

Grids:

  • Skills: 3 → 2 → 1 columns
  • Categories: 4 → 2 → 1 columns
  • Mentions: 2 → 1 columns

Typography:

  • Hero title: 3.5rem → 2.5rem (mobile)
  • Section titles: 2.5rem → 2rem (mobile)
  • Body text: Maintains readability

Implementation Guidelines

CSS Variable Usage

Always use CSS variables for:

  • Colors (never hardcode hex values)
  • Spacing (use spacing scale)
  • Typography (use text size scale)
  • Border radius (use radius scale)
  • Shadows (use shadow scale)

Example:

.button {
  background: var(--bg-card);
  color: var(--foreground);
  padding: var(--spacing-sm) var(--spacing-md);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

Component Structure

Terminal Window Pattern:

  1. Container with border and radius
  2. Header with dots, title, status
  3. Content area with padding
  4. Consistent spacing throughout

Command-Line Pattern:

  1. Prefix ($) in fluorescent green
  2. Keyword in primary or blue
  3. Flags/arguments in default color
  4. Monospace font throughout

Color Application Rules

Primary Color (#cc7a60):

  • Use for: Active states, highlights, keywords, prompts
  • Avoid: Large background areas (too intense)
  • Opacity variants: Use rgba(204, 122, 96, 0.5) for borders, rgba(204, 122, 96, 0.05) for backgrounds

Fluorescent Green (#39ff14):

  • Use ONLY for: Command prefix ($)
  • Never use for: Other text, backgrounds, or accents

Green (#22c55e):

  • Use for: Success states, positive indicators, string literals
  • Avoid: Primary actions (use primary color instead)

Typography Rules

Always use monospace font for:

  • Navigation elements
  • Buttons
  • Code blocks
  • Command-line interfaces
  • Window titles
  • Status text

Font weight guidelines:

  • Body text: 400 (normal)
  • Labels/keywords: 600 (semibold)
  • Headings: 700 (bold)
  • Hero text: 700-800 (bold-extrabold)

Spacing Consistency

Use spacing scale:

  • Never use arbitrary values (e.g., 13px, 27px)
  • Stick to: 4px, 8px, 16px, 24px, 32px, 48px
  • For gaps between related items: --spacing-sm to --spacing-md
  • For section separation: --spacing-xl to --spacing-2xl

Animation Best Practices

Keep animations subtle:

  • Duration: 0.15s - 0.3s maximum
  • Easing: Use provided cubic-bezier curves
  • Avoid: Bouncy animations, long durations
  • Prefer: Fade, translate, scale (small amounts)

Performance:

  • Use transform and opacity for animations (GPU accelerated)
  • Avoid animating width, height, margin, padding

Common Patterns

Terminal Window Card

<div class="terminal-window">
  <div class="window-header">
    <div class="window-dots">
      <span class="dot red"></span>
      <span class="dot yellow"></span>
      <span class="dot green"></span>
    </div>
    <span class="window-title">filename.ext</span>
    <span class="window-status">ready</span>
  </div>
  <div class="window-content">
    <!-- Content here -->
  </div>
</div>

Command Button

<button class="nav-cmd">
  <span class="cmd-prefix">lt;/span>
  <span class="cmd-keyword">command</span>
  <span class="cmd-flag">--flag</span>
</button>

Code Block Display

<div class="stats-code-block">
  <div class="code-line">
    <span class="keyword">const</span>
    <span class="variable-name">variable</span>
    <span class="operator">=</span>
    <span class="number">123</span>
    <span class="operator">;</span>
  </div>
  <div class="code-comment">
    <span class="comment-symbol">// </span>Comment text
  </div>
</div>

Description Block (Comment Style)

<div class="description-block">
  <div class="comment-start">/**</div>
  <div class="comment-text">
    <span class="comment-asterisk"> * </span>Description text
  </div>
  <div class="comment-end"> */</div>
</div>

Accessibility Considerations

Color Contrast:

  • Primary text (#111827) on white: WCAG AAA compliant
  • Secondary text (#666666) on white: WCAG AA compliant
  • Primary color (#cc7a60) on white: WCAG AA compliant for large text

Focus States:

  • All interactive elements have visible focus indicators
  • Focus ring: 2px solid primary color with 2px offset

Keyboard Navigation:

  • All interactive elements are keyboard accessible
  • Tab order follows visual hierarchy
  • Enter/Space activate buttons

Screen Readers:

  • Semantic HTML structure
  • ARIA labels where needed
  • Status indicators use appropriate roles

Dark Mode Implementation

The design system includes a complete dark mode implementation using [data-theme="dark"] attribute selector. Dark mode is fully integrated with smooth transitions and maintains all design principles.

Dark Mode Color System

Primary Colors (Dark Mode):

  • --primary: #d99178 - Lighter terracotta for better contrast on dark backgrounds
  • --primary-foreground: #0a0a0a - Dark text on primary backgrounds
  • --primary-dark: #c57f66 - Darker shade for hover states
  • --primary-light: #e5a890 - Lighter shade for subtle accents
  • --ring: #d99178 - Focus ring color (lighter primary)

Backgrounds (Dark Mode):

  • --background: #0a0a0a - Deep black for main backgrounds
  • --bg-main: #0a0a0a - Dark background with subtle white grid pattern
  • --bg-card: #111 - Slightly lighter black for card components
  • --bg-code: #18181b - Dark gray for code blocks and window headers
  • --secondary: #1a1a1a - Dark gray for secondary backgrounds
  • --muted: #262626 - Muted dark gray for subtle backgrounds

Text Colors (Dark Mode):

  • --foreground: #ededed - Light gray for primary text
  • --text-primary: #ededed - Primary text color
  • --text-secondary: #a3a3a3 - Medium gray for secondary text
  • --text-muted: #a3a3a3 - Muted gray for less important text
  • --muted-foreground: #a3a3a3 - Foreground on muted backgrounds

Borders (Dark Mode):

  • --border: #606068 - Lighter gray for visibility on dark backgrounds
  • --border-light: #27272a - Subtle dark gray for dividers

Syntax Highlighting (Dark Mode):

  • --syntax-keyword: #d99178 - Lighter primary for keywords
  • --syntax-string: #22c55e - Green (same as light mode)
  • --syntax-number: #d99178 - Lighter primary for numbers
  • --syntax-comment: #6a9955 - Muted green (same as light mode)
  • Blue keywords: #60a5fa (blue-400) - Brighter blue for better contrast
  • Purple keywords: #c084fc (purple-400) - Brighter purple for better contrast

Shadows (Dark Mode):

  • --shadow-sm: 0 1px 2px rgba(0,0,0,0.3) - Stronger shadows for depth
  • --shadow-md: 0 4px 6px rgba(0,0,0,0.4) - Medium shadows
  • --shadow-lg: 0 10px 25px rgba(0,0,0,0.5) - Large shadows

Dark Mode Background Pattern

Dark mode uses a subtle white grid pattern instead of black:

[data-theme="dark"] body {
  background-image: 
    linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
}

Theme Toggle Implementation

HTML Structure:

<button class="theme-toggle-btn theme-toggle" title="切换主题" aria-label="切换主题">
  <svg class="icon-sun theme-icon"><!-- Sun icon --></svg>
  <svg class="icon-moon theme-icon" style="display: none;"><!-- Moon icon --></svg>
</button>

JavaScript Implementation:

  • Uses localStorage to persist theme preference
  • Detects system preference on first load
  • Smoothly transitions between themes
  • Updates icon visibility (sun/moon)
  • Listens to system theme changes (when no manual preference set)

Key Features:

  • Automatic system preference detection
  • Manual override with localStorage persistence
  • Smooth CSS transitions (0.2s ease-in-out)
  • Icon state management (sun for light, moon for dark)

Dark Mode Component Adaptations

Navigation Bar:

  • Background: rgba(10, 10, 10, 0.8) with backdrop blur
  • Status indicator: Darker background with adjusted border

Terminal Windows:

  • Card background: #111 (slightly lighter than main background)
  • Window headers: rgba(38, 38, 38, 0.3) for subtle contrast
  • All borders use darker mode colors

Skill Cards:

  • Line numbers background: rgba(38, 38, 38, 0.2)
  • Footer background: rgba(38, 38, 38, 0.2)
  • Hover effects maintain same behavior with adjusted colors

Category Cards:

  • Each category has theme-specific hover colors:
    • Cyan: #22d3ee (dark) vs #06b6d4 (light)
    • Blue: #60a5fa (dark) vs #3b82f6 (light)
    • Purple: #c084fc (dark) vs #a855f7 (light)
    • Amber: #fbbf24 (dark) vs #f59e0b (light)

Charts:

  • Grid lines: #27272a with 0.5 opacity
  • Chart container: rgba(17, 17, 17, 0.3)
  • All text colors adapt to dark mode

FAB Button:

  • Light mode: Dark background #1a1a1a with white icon
  • Dark mode: White background with dark icon (inverted)

Dark Mode Best Practices

Color Contrast:

  • All text maintains WCAG AA compliance in dark mode
  • Primary color is lightened for better visibility
  • Borders are lighter for clear definition

Transitions:

  • All color changes use transition: color 0.2s ease-in-out
  • Background changes use transition: background-color 0.2s ease-in-out
  • Smooth theme switching without jarring changes

Implementation Pattern:

/* Light mode (default) */
.component {
  background: var(--bg-card);
  color: var(--foreground);
}

/* Dark mode */
[data-theme="dark"] .component {
  background: var(--bg-card); /* Automatically uses dark value */
  color: var(--foreground); /* Automatically uses dark value */
}

Maintains:

  • Same spacing system
  • Same typography scale
  • Same component structure
  • Same animation timing
  • Enhanced shadows for depth perception

Performance Optimization

CSS Variables:

  • All colors/spacing use CSS variables for easy theming
  • Variables defined in :root for global access

Animations:

  • Use transform and opacity (GPU accelerated)
  • Avoid layout-triggering properties
  • Keep durations short (0.15s - 0.3s)

Font Loading:

  • Preconnect to Google Fonts
  • Use font-display: swap for better performance
  • Provide fallback fonts in stack

Browser Support

Modern Browsers:

  • Chrome/Edge: Full support
  • Firefox: Full support
  • Safari: Full support (with -webkit- prefixes for backdrop-filter)

Features Used:

  • CSS Grid: Full support in modern browsers
  • CSS Variables: Full support
  • Backdrop Filter: Requires -webkit- prefix for Safari
  • Flexbox: Full support

Design Tokens Summary

Quick Reference:

/* Colors - Light Mode */
Primary: #cc7a60
Fluorescent Green: #39ff14 (command prefix only)
Success: #22c55e
Blue: #3b82f6
Foreground: #111827
Border: #8b929e

/* Colors - Dark Mode */
Primary: #d99178
Foreground: #ededed
Background: #0a0a0a
Card: #111
Border: #606068
Blue: #60a5fa (brighter for contrast)

/* Spacing */
xs: 4px, sm: 8px, md: 16px, lg: 24px, xl: 32px, 2xl: 48px

/* Typography */
Font: JetBrains Mono
Sizes: 0.75rem - 3.75rem scale
Weights: 400, 500, 600, 700, 800

/* Radius */
xs: 2px, sm: 4px, md: 6px, lg: 8px, xl: 12px, 2xl: 16px

/* Shadows - Light Mode */
sm: 0 1px 2px rgba(0,0,0,0.05)
md: 0 4px 6px rgba(0,0,0,0.07)
lg: 0 10px 25px rgba(0,0,0,0.1)

/* Shadows - Dark Mode */
sm: 0 1px 2px rgba(0,0,0,0.3)
md: 0 4px 6px rgba(0,0,0,0.4)
lg: 0 10px 25px rgba(0,0,0,0.5)

Theme Toggle JavaScript Implementation

Complete Implementation:

(function() {
  const themeToggles = document.querySelectorAll('.theme-toggle');
  const html = document.documentElement;
  
  // Get initial theme from localStorage or system preference
  function getInitialTheme() {
    const savedTheme = localStorage.getItem('theme');
    if (savedTheme) {
      return savedTheme;
    }
    // Check system preference
    if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
      return 'dark';
    }
    return 'light';
  }
  
  // Set theme and update icons
  function setTheme(theme) {
    if (theme === 'dark') {
      html.setAttribute('data-theme', 'dark');
      document.querySelectorAll('.icon-sun').forEach(icon => {
        icon.style.display = 'none';
      });
      document.querySelectorAll('.icon-moon').forEach(icon => {
        icon.style.display = 'block';
      });
    } else {
      html.removeAttribute('data-theme');
      document.querySelectorAll('.icon-sun').forEach(icon => {
        icon.style.display = 'block';
      });
      document.querySelectorAll('.icon-moon').forEach(icon => {
        icon.style.display = 'none';
      });
    }
    localStorage.setItem('theme', theme);
  }
  
  // Toggle theme
  function toggleTheme() {
    const currentTheme = html.getAttribute('data-theme');
    const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
    setTheme(newTheme);
  }
  
  // Initialize
  const initialTheme = getInitialTheme();
  setTheme(initialTheme);
  
  // Add event listeners
  themeToggles.forEach(button => {
    button.addEventListener('click', toggleTheme);
  });
  
  // Listen to system theme changes (only if no manual preference)
  if (window.matchMedia) {
    const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
    mediaQuery.addEventListener('change', (e) => {
      if (!localStorage.getItem('theme')) {
        setTheme(e.matches ? 'dark' : 'light');
      }
    });
  }
})();

Key Features:

  • Persists theme preference in localStorage
  • Detects system preference on first load
  • Smoothly transitions between themes
  • Updates icon visibility automatically
  • Listens to system theme changes (when no manual override)

Usage Examples

When implementing this design system:

  1. Start with CSS variables - Import or define all color/spacing variables (including dark mode)
  2. Use terminal window pattern - Wrap content in terminal-window component
  3. Apply monospace font - Use JetBrains Mono for all UI text
  4. Follow spacing scale - Use defined spacing values consistently
  5. Use semantic colors - Apply colors based on meaning, not appearance
  6. Implement theme toggle - Add theme toggle button and JavaScript
  7. Maintain consistency - Reuse component patterns throughout
  8. Test responsiveness - Ensure layouts work at all breakpoints
  9. Test both themes - Verify light and dark modes work correctly
  10. Optimize animations - Keep transitions smooth and performant

This design system creates a cohesive, developer-friendly interface that feels both modern and familiar to users comfortable with terminal interfaces. The complete dark mode implementation ensures the interface works beautifully in any lighting condition.

Gespeicherte Skills