Skip to content

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

PropertyValue
DocumentDesign System
Version1.0
StatusActive
OwnerMohammed El Maachi
Last UpdatedJuly 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

TokenValueUsage
Background#FEFFFCPrimary canvas
Surface#FFFFFFCards
Surface Alt#F9FAF7Inputs
Foreground#171717Main text
Heading#2C2C2CHeadings
Body#444141Paragraphs
Muted#646464Secondary text
Border#DEE2DEBorders
Divider#ECEFECSeparators

Primary Accent

TokenValue
Primary#41A1CF

Used only for:

  • Primary CTA outlines
  • Interactive highlights
  • Links
  • Focus states

Never use it as a large background color.


Atmospheric Accent

TokenValue
Cerulean#0081C0

Reserved exclusively for:

  • Hero illustrations
  • Promotional cards
  • Feature highlights

Should occupy less than 5% of the interface.


Success

TokenValue
Success#2E8B57

Warning

TokenValue
Warning#D97706

Error

TokenValue
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

RoleSizeWeightLine Height
Display54px4001.1
Hero48px4001.1
H140px4001.1
H232px5001.2
H327px5001.3
H422px5001.3
Body16px4001.6
Small15px4001.5
Caption13px4001.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

ElementRadius
Buttons8px
Cards16px
Inputs8px
Badges999px
Hero Cards24px
Navigation999px

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

Pages

No 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
ArticleCard

Avoid 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 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 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
  • Email
  • 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

Email

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.


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.


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.


Required for:

Portfolio projects.

Articles.

Documentation.

Never use on homepage.


Pagination

Use for:

Blog.

Portfolio.

Resources.

Never paginate short lists.


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 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

DeviceWidth
Mobile0–639px
Tablet640–1023px
Laptop1024–1439px
Desktop1440–1919px
Ultrawide1920px+

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:

TypeDuration
Hover120–180 ms
Button150–200 ms
Card180–240 ms
Modal250–350 ms
Page Transition300–500 ms

Avoid slow interfaces.


Easing

Preferred easing:

text
ease-out

ease-in-out

spring

Avoid:

  • 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:

  1. Typography
  2. Layout
  3. Spacing
  4. Scale
  5. Motion
  6. 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:

  1. Determine whether an existing component can be reused.
  2. Update the design system documentation.
  3. Document variants.
  4. Document accessibility considerations.
  5. 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.



End of Document

Designed & Built with precision.