This design system is inspired by Greptile's clean, modern aesthetic with a focus on technical precision and readability.
--background: #f7f7f4;
--foreground: #26251e;
--card: #f7f7f4;
--card-foreground: #26251e;
--popover: #f7f7f4;
--popover-foreground: #26251e;
--primary: oklch(0.205 0 0);
--primary-foreground: #f7f7f4;
--secondary: #f2f1ed;
--secondary-foreground: oklch(0.205 0 0);
--muted: oklch(0.967 0.001 286.375);
--muted-foreground: oklch(0.552 0.016 285.938);
--accent: oklch(0.967 0.001 286.375);
--accent-foreground: oklch(0.205 0 0);
--destructive: oklch(0.577 0.245 27.325);
--destructive-foreground: #f7f7f4;
--border: oklch(0.92 0.004 286.32);
--input: oklch(0.92 0.004 286.32);
--ring: #26251e;
--radius: 0.625rem; --background: #14120b;
--foreground: #edeced;
--card: oklch(0.14 0 0);
--card-foreground: #edeced;
--popover: oklch(0.14 0 0);
--popover-foreground: #edeced;
--primary: #edeced;
--primary-foreground: oklch(0.205 0 0);
--secondary: #1b1913;
--secondary-foreground: #edeced;
--muted: oklch(0.269 0 0);
--muted-foreground: oklch(0.708 0 0);
--accent: oklch(0.269 0 0);
--accent-foreground: #edeced;
--destructive: oklch(0.704 0.191 22.216);
--destructive-foreground: #edeced;
--border: oklch(0.269 0 0);
--input: oklch(0.269 0 0);
--ring: oklch(0.439 0 0);- Primary: Inter, sans-serif
- Monospace: JetBrains Mono, monospace
/* Display */
--text-6xl: 3.75rem; /* 60px */
--text-5xl: 3rem; /* 48px */
--text-4xl: 2.25rem; /* 36px */
/* Headings */
--text-3xl: 1.875rem; /* 30px */
--text-2xl: 1.5rem; /* 24px */
--text-xl: 1.25rem; /* 20px */
--text-lg: 1.125rem; /* 18px */
/* Body */
--text-base: 1rem; /* 16px */
--text-sm: 0.875rem; /* 14px */
--text-xs: 0.75rem; /* 12px */- Light: 300
- Normal: 400
- Medium: 500
- Semi-bold: 600
- Bold: 700
- Tight: 1.25
- Snug: 1.375
- Normal: 1.5
- Relaxed: 1.625
- Loose: 2
--spacing-0: 0;
--spacing-1: 0.25rem; /* 4px */
--spacing-2: 0.5rem; /* 8px */
--spacing-3: 0.75rem; /* 12px */
--spacing-4: 1rem; /* 16px */
--spacing-5: 1.25rem; /* 20px */
--spacing-6: 1.5rem; /* 24px */
--spacing-8: 2rem; /* 32px */
--spacing-10: 2.5rem; /* 40px */
--spacing-12: 3rem; /* 48px */
--spacing-16: 4rem; /* 64px */
--spacing-20: 5rem; /* 80px */
--spacing-24: 6rem; /* 96px */
--spacing-32: 8rem; /* 128px */- Mobile: 100% width with px-4 (16px padding)
- Tablet: 100% width with px-6 (24px padding)
- Desktop: Max-width 1200px with px-8 (32px padding)
- Large: Max-width 1920px
--screen-sm: 640px;
--screen-md: 768px;
--screen-lg: 1024px;
--screen-xl: 1280px;
--screen-2xl: 1536px;- Background:
var(--primary) - Color:
var(--primary-foreground) - Border Radius: 0.375rem (6px)
- Padding: 0.5rem 1rem (8px 16px)
- Font Weight: 500
- Transition: all 200ms ease
- Background:
var(--background) - Color:
var(--foreground) - Border: 1px solid
var(--border) - Same sizing as primary
- Background:
var(--background) - Border: 1px solid
var(--border) - Border Radius: 0.5rem (8px)
- Padding: 1.5rem (24px)
- Shadow: 0 1px 3px rgba(0, 0, 0, 0.1)
- Height: 4rem (64px)
- Background:
var(--background)with backdrop blur - Border Bottom: 1px solid
var(--border) - Sticky positioning
- Fast: 150ms ease-out
- Normal: 200ms ease-out
- Slow: 300ms ease-out
.fade-in {
animation: fadeIn 200ms ease-out;
}
.slide-up {
animation: slideUp 300ms ease-out;
}
.hover-lift {
transition: transform 200ms ease-out;
}
.hover-lift:hover {
transform: translateY(-2px);
}- Outline: 2px solid
var(--ring) - Outline Offset: 2px
- Border Radius: inherit
- Minimum contrast ratio: 4.5:1 for normal text
- Minimum contrast ratio: 3:1 for large text
- All interactive elements meet WCAG AA standards
- Consistency: Use defined tokens for all colors, spacing, and typography
- Responsive: Mobile-first approach with progressive enhancement
- Accessibility: Ensure all components meet WCAG 2.1 AA standards
- Performance: Optimize for fast loading and smooth animations
- Semantic HTML: Use proper HTML elements for better accessibility