Design System
The MHMD Studio Design System is the single source of truth for every visual, interactive, and structural decision made across the platform. It defines the design language, reusable patterns, component behavior, accessibility requirements, and implementation standards.
Document Metadata
| Property | Value |
|---|---|
| Document | Design System |
| Version | 1.0 |
| Status | Active |
| Owner | Mohammed El Maachi |
| Last Updated | July 2026 |
Purpose
This document establishes every reusable visual rule used throughout MHMD Studio.
It exists to ensure:
- Visual consistency
- Faster development
- Better collaboration
- Easier maintenance
- Predictable interfaces
- Better accessibility
No UI element should be created without consulting this document.
Design Philosophy
The MHMD Studio design language can be summarized in six words:
Editorial. Technical. Calm. Intentional. Minimal. Timeless.
The interface should communicate confidence through restraint.
Users should notice the quality of execution rather than individual visual effects.
The design should feel carefully engineered instead of artistically decorated.
Core Principles
Everything in this design system follows these principles.
Typography creates hierarchy.
Color creates emphasis.
Spacing creates rhythm.
Motion creates continuity.
Components create consistency.
Content creates value.
Design Characteristics
The interface should feel:
- Editorial
- Quiet
- Premium
- Highly engineered
- Spacious
- Confident
- Professional
- Modern
- Human
Never:
- Loud
- Flashy
- Trendy
- Corporate
- Futuristic
- Overdesigned
Visual Inspiration
The overall aesthetic draws inspiration from:
- General Intelligence Company
- Linear
- Stripe
- Anthropic
- Vercel
- Notion
- Apple
These references should guide quality rather than imitation.
Color Philosophy
Color is intentionally restrained.
Hierarchy should primarily be established through:
1 Typography
2 Scale
3 Spacing
4 Layout
5 Motion
Color comes last.
Accent colors should be rare enough that users immediately recognize importance.
Color Tokens
Neutral Scale
| Token | Value | Usage |
|---|---|---|
| Background | #FEFFFC | Primary canvas |
| Surface | #FFFFFF | Cards |
| Surface Alt | #F9FAF7 | Inputs |
| Foreground | #171717 | Main text |
| Heading | #2C2C2C | Headings |
| Body | #444141 | Paragraphs |
| Muted | #646464 | Secondary text |
| Border | #DEE2DE | Borders |
| Divider | #ECEFEC | Separators |
Primary Accent
| Token | Value |
|---|---|
| Primary | #41A1CF |
Used only for:
- Primary CTA outlines
- Interactive highlights
- Links
- Focus states
Never use it as a large background color.
Atmospheric Accent
| Token | Value |
|---|---|
| Cerulean | #0081C0 |
Reserved exclusively for:
- Hero illustrations
- Promotional cards
- Feature highlights
Should occupy less than 5% of the interface.
Success
| Token | Value |
|---|---|
| Success | #2E8B57 |
Warning
| Token | Value |
|---|---|
| Warning | #D97706 |
Error
| Token | Value |
|---|---|
| Error | #DC2626 |
Color Rules
Use no more than:
- 1 primary accent
- 1 warning
- 1 success
- 1 destructive color
Avoid rainbow interfaces.
Every color should communicate information.
Typography Philosophy
Typography is the primary visual identity.
Good typography should make decoration unnecessary.
Users should understand content hierarchy before noticing colors.
Font Stack
Display Font
Primary:
PP Mondwest
Fallbacks:
- Fraunces
- Recoleta
- GT Sectra
Purpose:
Editorial headings.
Hero titles.
Large statements.
UI Font
Primary:
AF
Fallbacks:
- Inter
- Geist
- Söhne
Purpose:
Everything else.
Type Scale
| Role | Size | Weight | Line Height |
|---|---|---|---|
| Display | 54px | 400 | 1.1 |
| Hero | 48px | 400 | 1.1 |
| H1 | 40px | 400 | 1.1 |
| H2 | 32px | 500 | 1.2 |
| H3 | 27px | 500 | 1.3 |
| H4 | 22px | 500 | 1.3 |
| Body | 16px | 400 | 1.6 |
| Small | 15px | 400 | 1.5 |
| Caption | 13px | 400 | 1.4 |
Typography Rules
Never use:
- Centered paragraphs
- Justified text
- Excessive bold
- All caps for paragraphs
Prefer:
- Left alignment
- Comfortable spacing
- Moderate contrast
- Clear hierarchy
Spacing Philosophy
Whitespace is an active design element.
Every layout should breathe.
Never reduce spacing merely to fit more content.
Spacing Scale
Base unit:
4px
Scale:
4
8
12
16
20
24
32
40
48
64
80
96
128
Always use the spacing scale.
Avoid arbitrary values.
Layout Grid
Desktop:
12 columns
Maximum width:
1200px
Content width:
760–820px
Reading width:
65–75 characters
Vertical Rhythm
Sections:
96–160px
Cards:
24–40px
Groups:
16–24px
Text:
8–16px
Buttons:
8–12px
Maintain rhythm consistently.
Border Radius
| Element | Radius |
|---|---|
| Buttons | 8px |
| Cards | 16px |
| Inputs | 8px |
| Badges | 999px |
| Hero Cards | 24px |
| Navigation | 999px |
Do not invent new radius values.
Borders
Primary border:
1px solid #DEE2DE
Avoid heavy borders.
Prefer subtle separation.
Elevation
The interface should rely on spacing before shadows.
Use shadows sparingly.
Levels:
Level 0
No shadow
Level 1
Small card shadow
Level 2
Floating navigation
Level 3
Modal
No component should exceed Level 3.
Glassmorphism
Allowed only for:
- Navigation
- Hero overlays
- Floating panels
Never use glass effects for ordinary cards.
Opacity should remain subtle.
Backdrop blur:
10–20px
Responsive Breakpoints
Mobile
0–639px
Tablet
640–1023px
Laptop
1024–1439px
Desktop
1440px+
Ultrawide
1920px+
Layouts should adapt gracefully at every breakpoint.
Design Tokens
Every visual property should map to a design token.
Never hardcode colors, spacing, typography, radii, or shadows inside components.
Tokens are the single source of truth.
Implementation examples are defined later in this document.
Component Philosophy
Every component in MHMD Studio should be:
- Reusable
- Accessible
- Responsive
- Predictable
- Composable
- Easy to maintain
Components should solve one problem well.
Avoid creating components that combine unrelated responsibilities.
Whenever possible:
- Extend existing components.
- Reuse existing patterns.
- Avoid one-off implementations.
Every component should exist within the design system before being used in production.
Component Hierarchy
The interface is built using the following hierarchy:
Design Tokens
↓
Primitive Components
↓
Composite Components
↓
Sections
↓
PagesNo page should bypass the component system.
Component Naming
Use consistent naming.
Examples:
Button
IconButton
Card
Input
Textarea
Select
Badge
Avatar
Modal
Dropdown
Navigation
Hero
FeatureCard
PortfolioCard
ArticleCardAvoid names that describe appearance instead of function.
Example:
❌ BlueButton
✅ PrimaryButton
Buttons
Buttons communicate available actions.
There should be as few button variants as possible.
Primary Button
Purpose:
Primary action.
Characteristics:
- Transparent background
- 1px Primary border
- Primary text
- Rounded 8px
- Compact padding
- Arrow icon optional
Used for:
- Contact
- Get Started
- View Project
- Read Article
Secondary Button
Purpose:
Supporting actions.
Characteristics:
- Transparent
- Neutral border
- Neutral text
Filled Button
Purpose:
High emphasis.
Characteristics:
- Dark background
- White text
Used sparingly.
Never fill buttons with the accent blue.
Ghost Button
Purpose:
Low emphasis.
Characteristics:
- No border
- No fill
- Text only
Icon Button
Purpose:
Single-icon actions.
Requirements:
Minimum touch target:
44×44px
Keyboard focus required.
Accessible label required.
Button States
Every button supports:
Default
Hover
Active
Focus
Disabled
Loading
Success (optional)
Button Rules
Buttons should:
Clearly communicate clickability.
Never shift layout during loading.
Always display visible focus indicators.
Never rely only on color.
Navigation
Navigation communicates structure.
It should remain calm and predictable.
Desktop Navigation
Floating pill.
Centered.
Glassmorphism allowed.
Contains:
- Logo
- Primary links
- CTA
Mobile Navigation
Drawer.
Simple.
Keyboard accessible.
Focus trapped.
Escape closes.
Navigation Rules
Navigation should:
Remain consistent.
Never hide unexpectedly.
Avoid multiple navigation bars.
Clearly indicate current page.
Cards
Cards group related content.
Cards should never become generic containers.
Every card type has a defined purpose.
Content Card
Used for:
Text.
Resources.
Articles.
Portfolio Card
Used for:
Projects.
Preview image.
Short summary.
Metadata.
Feature Card
Used for:
Homepage features.
Capabilities.
Benefits.
Testimonial Card
Used only when genuine testimonials exist.
Avoid placeholders.
Diagram Card
Used for:
Illustrations.
Architecture diagrams.
System explanations.
Card Rules
Cards should:
Have one clear purpose.
Maintain consistent padding.
Never contain excessive nesting.
Avoid unnecessary shadows.
Inputs
Inputs prioritize readability.
Use subtle backgrounds.
Minimal borders.
Clear labels.
Accessible helper text.
Supported inputs:
- Text
- Password
- Number
- Search
- URL
Textarea
Auto-growing.
Character count optional.
Clear label required.
Select
Avoid custom selects unless necessary.
Native behavior preferred.
Checkbox
Always include:
Visible label.
Large hit area.
Keyboard support.
Radio Group
Use only when options are mutually exclusive.
Never more than seven options.
Toggle Switch
Reserved for:
Settings.
Preferences.
Enable/Disable actions.
Never use toggles for navigation.
Forms
Forms should feel effortless.
Only request necessary information.
Contact Form
Fields:
Name
Company (optional)
Project Type
Budget (optional)
Message
Validation
Validation should:
Be immediate where appropriate.
Explain problems clearly.
Never blame users.
Display success visibly.
Form Layout
Single column preferred.
Labels above inputs.
Clear spacing.
Logical grouping.
Modal
Purpose:
Temporary focused tasks.
Rules:
Focus trap required.
Escape closes.
Overlay click configurable.
Avoid nested modals.
Drawer
Used primarily on mobile.
Slides from edge.
Never cover critical navigation permanently.
Dropdown
Keep options concise.
Maximum visible items:
10
Longer lists require search.
Tooltip
Purpose:
Clarification.
Not primary content.
Delay:
150–300ms.
Keyboard accessible.
Popover
Purpose:
Rich contextual information.
More complex than tooltips.
Should not replace pages.
Accordion
Purpose:
Progressive disclosure.
Only use when content naturally groups.
Avoid deeply nested accordions.
Tabs
Use for related content.
Maximum:
Five visible tabs.
Overflow requires alternate navigation.
Breadcrumbs
Required for:
Portfolio projects.
Articles.
Documentation.
Never use on homepage.
Pagination
Use for:
Blog.
Portfolio.
Resources.
Never paginate short lists.
Search
Search should support:
Articles.
Portfolio.
Resources.
Future documentation.
Results should update quickly.
Tables
Tables should:
Support responsive behavior.
Maintain alignment.
Use subtle dividers.
Avoid excessive borders.
Badges
Purpose:
Status.
Category.
Technology.
Metadata.
Never use badges as buttons.
Tags
Purpose:
Content classification.
Should remain clickable.
Consistent spacing required.
Alerts
Types:
Information
Success
Warning
Error
Requirements:
Icon.
Clear heading.
Action if applicable.
Toast Notifications
Reserved for:
Success.
Error.
Background operations.
Auto-dismiss where appropriate.
Never stack excessively.
Empty States
Every empty state should answer:
Why is this empty?
What can the user do next?
Should include:
Illustration (optional)
Short explanation
Action
Error States
Never display raw technical errors.
Instead provide:
Simple explanation.
Recovery action.
Support contact if necessary.
Loading States
Prefer skeleton loading over spinners.
Loading indicators should preserve layout.
Avoid blank screens.
Footer
Footer should feel editorial.
Contains:
Navigation
Contact
Social Links
Copyright
Short company statement
Newsletter (future)
Icons
Use one icon library consistently.
Preferred:
Lucide
Icons should:
Use consistent stroke width.
Align to pixel grid.
Remain secondary to typography.
Images
Prefer:
Illustrations.
Mockups.
Product visuals.
Avoid generic stock photography.
Every image should reinforce the brand.
Component Rules
Every component must:
Be reusable.
Be responsive.
Be accessible.
Be documented.
Support dark mode in the future.
Avoid unnecessary props.
Follow design tokens.
Never hardcode values.
AI Implementation Rules
When generating components, AI systems must:
Use existing components before creating new ones.
Respect design tokens.
Avoid duplicate functionality.
Maintain accessibility.
Document new components.
Avoid visual inconsistency.
Prefer composition over inheritance.
Never introduce unnecessary variants.
END OF PART 2
The next section completes docs/10_design_system.md with:
- Responsive behavior
- Responsive layouts
- Motion integration
- Accessibility implementation
- Interaction states
- Micro-interactions
- Iconography
- Illustration system
- Photography rules
- Data visualization
- Design QA checklist
- Implementation standards
- CSS architecture
- Tailwind architecture
- shadcn customization
- Future evolution of the design system
- Final implementation rules
Awaiting prompt: next for Design System - Part 3 (Final).
Responsive Design
Responsive design is a core requirement.
Layouts should adapt naturally across devices without hiding important functionality.
Every experience should feel intentionally designed rather than merely resized.
Breakpoints
| Device | Width |
|---|---|
| Mobile | 0–639px |
| Tablet | 640–1023px |
| Laptop | 1024–1439px |
| Desktop | 1440–1919px |
| Ultrawide | 1920px+ |
Responsive Principles
Design mobile-first.
Scale upward.
Do not design desktop first and compress later.
Navigation, spacing, typography, and layout should be considered independently for each breakpoint.
Layout Rules
Desktop
- 12-column grid
- Maximum content width: 1200px
- Reading width: 65–75 characters
Tablet
- 8-column grid
Mobile
- 4-column grid
- Comfortable thumb interaction
- Large touch targets
Responsive Typography
Typography should scale smoothly.
Avoid dramatic jumps between breakpoints.
Maintain hierarchy while improving readability.
Responsive Spacing
Increase spacing with larger screens.
Do not simply enlarge every element.
Whitespace should scale proportionally.
Responsive Images
Images should:
- Use modern formats (AVIF, WebP)
- Support responsive sizes
- Lazy load by default
- Preserve aspect ratios
Avoid downloading oversized assets.
Motion Integration
Motion exists to explain relationships.
Every animation must have purpose.
Allowed purposes include:
- State change
- Continuity
- Hierarchy
- Feedback
- Focus
- Navigation transitions
Remove animations that provide no informational value.
Motion Timing
Recommended durations:
| Type | Duration |
|---|---|
| Hover | 120–180 ms |
| Button | 150–200 ms |
| Card | 180–240 ms |
| Modal | 250–350 ms |
| Page Transition | 300–500 ms |
Avoid slow interfaces.
Easing
Preferred easing:
ease-out
ease-in-out
springAvoid:
- Bounce
- Elastic
- Overshoot
- Cartoon-like motion
Micro-Interactions
Use subtle interactions for:
- Hover
- Focus
- Selection
- Form validation
- Navigation
- Card elevation
- Active states
Micro-interactions should feel natural rather than theatrical.
Page Transitions
Transitions should preserve context.
Users should understand where they came from and where they are going.
Avoid dramatic full-screen effects.
Scroll Behavior
Smooth scrolling is acceptable.
Avoid scroll hijacking.
Never prevent normal browser behavior.
Accessibility Implementation
Every interface must support:
- Keyboard navigation
- Screen readers
- Focus visibility
- Reduced motion
- High contrast
- Zoom up to 200%
- Semantic HTML
Accessibility should never be deferred.
Focus States
Every interactive element requires a visible focus state.
Do not remove browser focus without replacing it with a better alternative.
Reduced Motion
Respect the user's operating system preference.
When reduced motion is enabled:
- Remove unnecessary animations
- Shorten transitions
- Preserve usability
Color Contrast
Meet WCAG AA at minimum.
AAA should be used whenever practical.
Never rely solely on color to communicate meaning.
Iconography
Primary icon library:
Lucide
Icons should:
- Match stroke width
- Align to the pixel grid
- Remain visually secondary
- Never replace meaningful labels
Illustration Style
Illustrations should communicate atmosphere rather than information.
Preferred style:
- Painterly
- Editorial
- Cinematic
- Soft textures
- Limited palette
Avoid:
- Generic stock illustrations
- Cartoon mascots
- Overly abstract 3D graphics
Photography
Photography should be used sparingly.
Preferred subjects:
- Products
- Workspaces
- Devices
- Real projects
Avoid:
- Generic office stock photos
- Handshake imagery
- Artificial business scenes
Data Visualization
Charts should:
- Prioritize clarity
- Use restrained color
- Label directly when possible
- Avoid decorative effects
Do not use 3D charts.
Empty Space
Whitespace is intentional.
Never fill space simply because it exists.
Allow layouts to breathe.
Visual Hierarchy
Hierarchy should primarily come from:
- Typography
- Layout
- Spacing
- Scale
- Motion
- Color
If hierarchy depends primarily on color, redesign the layout.
Design QA Checklist
Before approving any interface verify:
Visual
- Typography follows scale
- Consistent spacing
- Correct colors
- Correct border radius
- Proper alignment
- Balanced whitespace
UX
- Clear primary action
- Predictable navigation
- No dead ends
- Good readability
- Minimal cognitive load
Accessibility
- Keyboard support
- Screen reader support
- Focus states
- Contrast
- Reduced motion
- Responsive behavior
Performance
- Optimized images
- Optimized fonts
- Minimal JavaScript
- Lazy loading
- Responsive assets
CSS Architecture
Rules:
- Use design tokens
- Avoid magic numbers
- Prefer utility-first styling
- Avoid deeply nested selectors
- Keep specificity low
Tailwind Guidelines
Use Tailwind v4.
Guidelines:
- Utility-first
- Reusable component classes
- Minimal custom CSS
- Design tokens mapped into Tailwind theme
- Avoid arbitrary values whenever possible
shadcn/ui Customization
shadcn/ui serves as a foundation, not the finished design.
Every imported component should be adapted to:
- Typography
- Color palette
- Spacing
- Motion
- Border radius
- Accessibility
- Brand identity
The final interface should not appear to use default shadcn styles.
Design System Maintenance
Whenever a new component is created:
- Determine whether an existing component can be reused.
- Update the design system documentation.
- Document variants.
- Document accessibility considerations.
- Document responsive behavior.
The design system should evolve deliberately.
Versioning
Major design changes require a version update.
Document:
- What changed
- Why it changed
- Migration considerations
- Affected components
Future Evolution
The design system should support future additions without breaking consistency.
Potential future expansions include:
- Dark mode
- Native applications
- Dashboard UI
- SaaS products
- AI interfaces
- Client portal
- Mobile applications
The foundational principles should remain stable.
Final Rules
Every interface built under MHMD Studio should satisfy the following:
- Purpose before decoration.
- Consistency before novelty.
- Accessibility before convenience.
- Performance before complexity.
- Systems before individual pages.
- Documentation before implementation.
- Quality before speed.
These rules are non-negotiable.