Complete brand guidelines for CNC Lab websites and materials
Last updated: 2025-09-18 (auto-generated)
This comprehensive style guide covers all brand elements including colors, typography, and usage guidelines for consistent implementation across all CNC Lab projects.
Color PaletteΒΆ
Below are the official brand colors defined in our design tokens (src/styles/designTokens.ts) and Tailwind configuration. Use these hex values, Tailwind utility classes, or import the design tokens directly.
#0064A4bg-primary#50C4EDbg-primary-light#263A5Dbg-primary-dark#20B2AAbg-secondary#7B61FFbg-secondary-light#2C3E50bg-neutral#F8F9FAbg-neutral-light#2563EBbg-accent#DBEAFEbg-accent-low#1E40AFbg-accent-high#10B981bg-success#F59E0Bbg-warning#EF4444bg-error#3B82F6bg-info#FFFFFFbg-background#F8F9FAbg-surface#E5E7EBbg-border#2C3E50bg-text#6B7280bg-text-secondary#9CA3AFbg-text-lightUsage in ComponentsΒΆ
Import Design Tokens (Recommended)ΒΆ
import { designTokens } from '@/styles/designTokens';
// Use in className with arbitrary values
className={`bg-[${designTokens.colors.primary}] text-[${designTokens.colors.neutralLight}]`}
// Or access nested values
const buttonColor = designTokens.colors.primaryLight;Tailwind Utility ClassesΒΆ
<!-- Semantic color classes (preferred) -->
<div class="bg-primary text-white">Primary button</div>
<div class="bg-secondary-light text-neutral-dark">Secondary button</div>
<div class="text-neutral bg-surface">Body text</div>
<!-- Status colors -->
<div class="bg-success text-white">Success message</div>
<div class="bg-warning text-neutral">Warning message</div>Usage in Tailwind ConfigurationΒΆ
// tailwind.config.js automatically imports design tokens
import { designTokens } from './src/styles/designTokens.js';
export default {
theme: {
extend: {
colors: {
primary: {
DEFAULT: designTokens.colors.primary,
light: designTokens.colors.primaryLight,
dark: designTokens.colors.primaryDark,
},
// ... other colors
}
}
}
};TypographyΒΆ
Font FamiliesΒΆ
CNC Lab uses two primary typefaces for a clean, modern, and readable experience:
Tailwind:
font-sansImport:
designTokens.fonts.primaryTailwind:
font-displayImport:
designTokens.fonts.displayFont ScaleΒΆ
Our typography scale is designed for optimal readability across devices:
// Font sizes from design tokens
const fontSizes = {
xs: '0.75rem', //
sm: '0.875rem', //
base: '1rem', // Default body
lg: '1.125rem', //
xl: '1.25rem', //
'2xl': '1.5rem', //
'3xl': '1.875rem', //
'4xl': '2.25rem', //
'5xl': '3rem', //
'6xl': '3.75rem', //
'7xl': '4.5rem', //
'8xl': '6rem', //
'9xl': '8rem', //
};Typography Usage GuidelinesΒΆ
HeadingsΒΆ
H1-H6: Use Space Grotesk (
font-display)Weight: Typically 600 (semi-bold) for strong hierarchy
Line height: Tight (1.1-1.3) for display sizes
Import:
designTokens.fonts.display
Body TextΒΆ
Default: Inter at 16px (
text-base)Weight: 400 (regular) for body, 500 (medium) for emphasis
Line height: 1.6 for optimal readability
Color:
text-neutralordesignTokens.colors.text
Small TextΒΆ
Captions/Labels: Inter at 14px (
text-sm)Fine print: Inter at 12px (
text-xs)Weight: 400-500 depending on context
Design Tokens ExportΒΆ
Complete TypeScript ExportΒΆ
Auto-generated from
src/styles/designTokens.ts- Copy-paste ready:
export const designTokens = {
colors: {
primary: '#0064A4',
primaryLight: '#50C4ED',
primaryDark: '#263A5D',
secondary: '#20B2AA',
secondaryLight: '#7B61FF',
neutral: '#2C3E50',
neutralLight: '#F8F9FA',
accent: '#2563EB',
accentLow: '#DBEAFE',
accentHigh: '#1E40AF',
success: '#10B981',
warning: '#F59E0B',
error: '#EF4444',
info: '#3B82F6',
background: '#FFFFFF',
surface: '#F8F9FA',
border: '#E5E7EB',
text: '#2C3E50',
textSecondary: '#6B7280',
textLight: '#9CA3AF',
},
fonts: {
primary: "'Inter', system-ui, -apple-system, sans-serif",
display: "'Space Grotesk', system-ui, -apple-system, sans-serif",
},
fontSizes: {
xs: '0.75rem',
sm: '0.875rem',
base: '1rem',
lg: '1.125rem',
xl: '1.25rem',
'2xl': '1.5rem',
'3xl': '1.875rem',
'4xl': '2.25rem',
'5xl': '3rem',
'6xl': '3.75rem',
'7xl': '4.5rem',
'8xl': '6rem',
'9xl': '8rem',
},
lineHeights: {
tight: 1.1,
normal: 1.4,
relaxed: 1.6,
}
} as const;SynchronizationΒΆ
Quick ReferenceΒΆ
Design Tokens:
src/styles/designTokens.tsTailwind Config:
tailwind.config.js(auto-imports tokens)Global Styles:
src/index.cssSelf-hosted Fonts:
/public/fonts/Sync Command:
npm run sync-style-guide