Skip to content

Commit 046e015

Browse files
Copilotsyed-reza98
andcommitted
Implement comprehensive design system based on modern design principles
Co-authored-by: syed-reza98 <71028588+syed-reza98@users.noreply.github.com>
1 parent 6b2aaaa commit 046e015

14 files changed

Lines changed: 1581 additions & 72 deletions

File tree

docs/design-principles.md

Lines changed: 262 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,262 @@
1+
# Design Principles for CodeStorm Hub Portfolio
2+
3+
## Executive Summary
4+
5+
This document outlines comprehensive design principles for the CodeStorm Hub portfolio website, based on research of modern design engineering practices from Vercel, Radix UI, Storybook, and Tailwind CSS. These principles emphasize consistency, accessibility, performance, and scalability.
6+
7+
## Core Design Engineering Principles
8+
9+
### 1. Design-Engineering Collaboration
10+
- **Unified Design System**: Maintain a single source of truth for design tokens, components, and patterns
11+
- **Component-Driven Development**: Build modular, reusable components that scale across the application
12+
- **Design-to-Code Fidelity**: Ensure pixel-perfect implementation of designs
13+
- **Cross-functional Integration**: Foster collaboration between design and engineering teams
14+
15+
### 2. Performance-First Design
16+
- **Optimized Loading**: Prioritize critical content and progressive enhancement
17+
- **Efficient Typography**: Use system fonts and optimized web fonts (Geist)
18+
- **Minimal Bundle Size**: Implement tree-shaking and code splitting
19+
- **Progressive Enhancement**: Ensure core functionality works without JavaScript
20+
21+
### 3. Accessibility by Default
22+
- **WCAG 2.1 AA Compliance**: Meet accessibility standards from the ground up
23+
- **Semantic HTML**: Use proper HTML elements for content structure
24+
- **Keyboard Navigation**: Ensure all interactive elements are keyboard accessible
25+
- **Screen Reader Support**: Provide appropriate ARIA labels and descriptions
26+
27+
## Typography System
28+
29+
### Font Selection
30+
- **Primary Font**: Geist Sans (Modern, readable, optimized for web)
31+
- **Monospace Font**: Geist Mono (For code blocks and technical content)
32+
- **Font Loading Strategy**: Use `font-display: swap` for better performance
33+
34+
### Typography Scale
35+
```css
36+
/* Font Sizes (rem) */
37+
--text-xs: 0.75rem; /* 12px */
38+
--text-sm: 0.875rem; /* 14px */
39+
--text-base: 1rem; /* 16px */
40+
--text-lg: 1.125rem; /* 18px */
41+
--text-xl: 1.25rem; /* 20px */
42+
--text-2xl: 1.5rem; /* 24px */
43+
--text-3xl: 1.875rem; /* 30px */
44+
--text-4xl: 2.25rem; /* 36px */
45+
--text-5xl: 3rem; /* 48px */
46+
--text-6xl: 3.75rem; /* 60px */
47+
```
48+
49+
### Typography Guidelines
50+
- **Hierarchy**: Use consistent heading levels (H1-H6) for proper content structure
51+
- **Line Height**: Maintain 1.5x line height for body text, 1.2x for headings
52+
- **Letter Spacing**: Use tight tracking for headings, normal for body text
53+
- **Text Alignment**: Left-align body text, center-align marketing content selectively
54+
55+
## Color System
56+
57+
### Color Philosophy
58+
Based on Radix UI Colors for scientific color design:
59+
- **Semantic Color Usage**: Colors convey meaning and state
60+
- **Accessibility**: All color combinations meet WCAG contrast requirements
61+
- **Dark Mode Support**: Automatic theme switching based on system preference
62+
63+
### Primary Color Palette
64+
```css
65+
/* Light Theme */
66+
--gray-1: #fcfcfc; /* Background */
67+
--gray-12: #1d1d1d; /* Foreground */
68+
--blue-9: #0070f3; /* Primary brand */
69+
--red-9: #e5484d; /* Error/destructive */
70+
--green-9: #30a46c; /* Success */
71+
--amber-9: #f59e0b; /* Warning */
72+
73+
/* Dark Theme */
74+
--gray-1: #111111; /* Background */
75+
--gray-12: #eeeeee; /* Foreground */
76+
--blue-9: #0091ff; /* Primary brand */
77+
--red-9: #ff6369; /* Error/destructive */
78+
--green-9: #3dd68c; /* Success */
79+
--amber-9: #ffb224; /* Warning */
80+
```
81+
82+
### Color Usage Guidelines
83+
- **60-30-10 Rule**: 60% neutral, 30% primary, 10% accent colors
84+
- **Consistent States**: Use semantic colors for success, error, warning states
85+
- **Brand Consistency**: Maintain brand colors across all touchpoints
86+
87+
## Component Design Principles
88+
89+
### 1. Composition over Configuration
90+
- Build small, focused components that can be composed together
91+
- Use compound component patterns for complex UI elements
92+
- Leverage Radix UI primitives for accessible, unstyled components
93+
94+
### 2. Consistent API Design
95+
- Use consistent prop naming conventions across components
96+
- Implement polymorphic components with `asChild` prop pattern
97+
- Provide sensible defaults while allowing customization
98+
99+
### 3. Responsive Design
100+
- **Mobile-First Approach**: Design for mobile screens first, then enhance for larger screens
101+
- **Fluid Typography**: Use `clamp()` for responsive font sizes
102+
- **Container Queries**: Use container queries for component-based responsive design
103+
104+
### Component Categories
105+
106+
#### Base Components
107+
- Button (Primary, Secondary, Outline, Ghost, Link variants)
108+
- Input (Text, Email, Password, Search, Textarea)
109+
- Card (Header, Content, Footer)
110+
- Container (Max-width responsive wrapper)
111+
112+
#### Composite Components
113+
- Navigation (Header, Footer, Menu)
114+
- Dialog/Modal (Overlay, Content, Actions)
115+
- Form (Field groups, validation states)
116+
- Data Display (Tables, Lists, Grids)
117+
118+
#### Layout Components
119+
- Grid (CSS Grid-based responsive layouts)
120+
- Flex (Flexbox utility components)
121+
- Stack (Vertical/horizontal spacing)
122+
- Separator (Visual dividers)
123+
124+
## Layout and Spacing System
125+
126+
### Spacing Scale
127+
Based on 8px grid system:
128+
```css
129+
--space-1: 0.25rem; /* 4px */
130+
--space-2: 0.5rem; /* 8px */
131+
--space-3: 0.75rem; /* 12px */
132+
--space-4: 1rem; /* 16px */
133+
--space-5: 1.25rem; /* 20px */
134+
--space-6: 1.5rem; /* 24px */
135+
--space-8: 2rem; /* 32px */
136+
--space-10: 2.5rem; /* 40px */
137+
--space-12: 3rem; /* 48px */
138+
--space-16: 4rem; /* 64px */
139+
--space-20: 5rem; /* 80px */
140+
--space-24: 6rem; /* 96px */
141+
```
142+
143+
### Layout Principles
144+
- **Consistent Spacing**: Use the 8px grid system for all spacing decisions
145+
- **Logical Properties**: Use logical CSS properties for international support
146+
- **Container Constraints**: Maximum content width of 1200px for optimal readability
147+
148+
## UI/UX Patterns
149+
150+
### Navigation Patterns
151+
- **Primary Navigation**: Horizontal navigation bar with clear hierarchy
152+
- **Mobile Navigation**: Collapsible hamburger menu for mobile devices
153+
- **Breadcrumbs**: For deep navigation structures
154+
- **Pagination**: For content-heavy sections
155+
156+
### Interaction Patterns
157+
- **Hover States**: Subtle feedback on interactive elements
158+
- **Focus States**: Clear keyboard focus indicators
159+
- **Loading States**: Skeleton screens and progress indicators
160+
- **Empty States**: Helpful messaging when content is unavailable
161+
162+
### Content Patterns
163+
- **Progressive Disclosure**: Show essential information first
164+
- **Scannable Content**: Use headings, lists, and white space effectively
165+
- **Consistent Imagery**: Maintain consistent aspect ratios and style
166+
167+
## Responsive Strategy
168+
169+
### Breakpoints
170+
```css
171+
/* Mobile First Breakpoints */
172+
--screen-sm: 640px; /* Small tablets */
173+
--screen-md: 768px; /* Large tablets */
174+
--screen-lg: 1024px; /* Laptops */
175+
--screen-xl: 1280px; /* Desktops */
176+
--screen-2xl: 1536px; /* Large desktops */
177+
```
178+
179+
### Responsive Techniques
180+
- **Fluid Grids**: Use CSS Grid and Flexbox for adaptive layouts
181+
- **Flexible Images**: Implement responsive images with `srcset` and `sizes`
182+
- **Touch Targets**: Minimum 44px touch targets for mobile devices
183+
- **Readable Text**: Minimum 16px font size on mobile devices
184+
185+
## Performance Considerations
186+
187+
### Optimization Strategies
188+
- **Critical CSS**: Inline critical styles for above-the-fold content
189+
- **Font Loading**: Use `font-display: swap` and preload key fonts
190+
- **Image Optimization**: WebP format with fallbacks, lazy loading
191+
- **Code Splitting**: Load components and pages on demand
192+
193+
### Core Web Vitals
194+
- **Largest Contentful Paint (LCP)**: < 2.5 seconds
195+
- **First Input Delay (FID)**: < 100 milliseconds
196+
- **Cumulative Layout Shift (CLS)**: < 0.1
197+
198+
## Accessibility Guidelines
199+
200+
### WCAG 2.1 AA Compliance
201+
- **Color Contrast**: Minimum 4.5:1 for normal text, 3:1 for large text
202+
- **Keyboard Navigation**: All interactive elements accessible via keyboard
203+
- **Screen Readers**: Proper semantic markup and ARIA labels
204+
- **Motion Preferences**: Respect `prefers-reduced-motion` settings
205+
206+
### Implementation Checklist
207+
- [ ] Use semantic HTML elements
208+
- [ ] Provide alt text for images
209+
- [ ] Ensure proper heading hierarchy
210+
- [ ] Include focus indicators
211+
- [ ] Test with screen readers
212+
- [ ] Validate with accessibility tools
213+
214+
## Implementation Roadmap
215+
216+
### Phase 1: Foundation (Week 1-2)
217+
- [ ] Implement design token system
218+
- [ ] Set up base typography styles
219+
- [ ] Create color system with dark mode
220+
- [ ] Build core UI components
221+
222+
### Phase 2: Components (Week 3-4)
223+
- [ ] Develop composite components
224+
- [ ] Implement responsive navigation
225+
- [ ] Create layout components
226+
- [ ] Add interaction states
227+
228+
### Phase 3: Patterns (Week 5-6)
229+
- [ ] Implement UI/UX patterns
230+
- [ ] Optimize for performance
231+
- [ ] Conduct accessibility audit
232+
- [ ] Test responsive behavior
233+
234+
### Phase 4: Documentation (Week 7-8)
235+
- [ ] Create component documentation
236+
- [ ] Build style guide
237+
- [ ] Write usage guidelines
238+
- [ ] Set up design system maintenance
239+
240+
## Tools and Resources
241+
242+
### Development Tools
243+
- **Next.js 15**: React framework with App Router
244+
- **Tailwind CSS 4**: Utility-first CSS framework
245+
- **Radix UI**: Accessible component primitives
246+
- **TypeScript**: Type-safe development
247+
248+
### Design Tools
249+
- **Figma**: Design collaboration and prototyping
250+
- **Storybook**: Component documentation and testing
251+
- **Chromatic**: Visual regression testing
252+
253+
### Testing Tools
254+
- **axe-core**: Accessibility testing
255+
- **Lighthouse**: Performance and accessibility auditing
256+
- **Percy**: Visual testing and regression detection
257+
258+
## Conclusion
259+
260+
These design principles provide a comprehensive foundation for building a modern, accessible, and performant portfolio website for CodeStorm Hub. By following these guidelines, we can create a consistent user experience that scales effectively and maintains high standards of quality.
261+
262+
The implementation should be iterative, with regular design reviews and user testing to ensure the principles are effectively applied and meet user needs.

0 commit comments

Comments
 (0)