Walter Morales

Software Engineer building products with modern web technologies.

Based in El Salvador
Cursor
Cursor Ambassador for El Salvador
WM

Overview

This design system establishes the foundation for building consistent, accessible, and maintainable UI components. It defines typography scales, color palettes, spacing systems, and component patterns used throughout the site.

Typography

Consistent typography creates hierarchy and improves readability.

Typography Scale
Use these canonical classes instead of arbitrary pixel values.

Page Title

text-3xl sm:text-4xl

Main page headings. Use with font-display.

Example Page Title

Section Title

text-xl

Section headings within pages.

Section Title

Body Text

text-sm

Default body text, summaries, and descriptions. Replaces text-[13px].

This is body text used for summaries, descriptions, and general content. It provides good readability while maintaining a clean, minimal aesthetic.

Meta Text

text-xs font-mono

Dates, tags, labels, and small metadata. Replaces text-[11px].

#tag

Small Heading

text-base font-display

Small headings, card titles, and list item titles. Replaces text-[15px].

Small Heading Example

Do

Use canonical classes:

text-xs font-mono text-sm text-base font-display

Maintain consistency:

Use the same typography classes for the same semantic purpose across all pages.

Don't

Avoid arbitrary sizes:

text-[11px] text-[13px] text-[15px]

Don't mix patterns:

Avoid using different font sizes for the same semantic role in different components.

Colors

Semantic color tokens for consistent theming.

Color Palette
Use semantic color names, not raw color values.

Accent

bg-accent

Primary actions, links, highlights, and interactive elements.

Foreground

text-foreground

Primary text color, headings, and high-contrast elements.

Muted

bg-muted

Backgrounds for cards, code blocks, and subtle UI elements.

Border

border-border

Borders, dividers, and subtle separators.

Muted Foreground

text-muted-foreground

Secondary text, descriptions, and less prominent content.

Background

bg-background

Main page background color.

Spacing

Consistent spacing creates visual rhythm and hierarchy.

Spacing Scale
Use Tailwind's spacing scale for consistent gaps and padding.

Common Spacing Values

8px
gap-2 | p-2 | space-y-2
12px
gap-3 | p-3 | space-y-3
16px
gap-4 | p-4 | space-y-4
24px
gap-6 | p-6 | space-y-6
32px
gap-8 | p-8 | space-y-8
48px
gap-12 | p-12 | space-y-12
64px
gap-16 | p-16 | space-y-16
Do

Use consistent spacing tokens like space-y-4, gap-6, and p-8.

Don't

Avoid arbitrary spacing values like gap-[13px] or p-[17px].

Components

Reusable UI components built with shadcn/ui and Tailwind CSS.

Button
Use Button component for all interactive actions.
Badge
Use Badge for tags, labels, and status indicators.
DefaultOutlineSecondary

Slides

Presentation slide primitives for the JSON-driven slides engine. These components are designed for readability at presentation distance and PDF export.

Slide Frame
The 16:9 aspect ratio canvas wrapper for slides. Uses CSS aspect-ratio for responsive sizing in preview, and fixed dimensions for PDF export.

Example Slide

16:9 aspect ratio canvas

<SlideFrame>...</SlideFrame>
Slide Typography
Typography scale optimized for presentation slides.
Headline (4xl-6xl)SlideHeadline

Bold Statement Here

Subline (xl-2xl)SlideSubline

Supporting tagline or subtitle

Body text (lg-xl)SlideBody

Body text for supporting paragraphs, readable at presentation distance.

Footnote (sm)SlideFootnote

Source: Example citation or footnote

Slide List
Bullet points and numbered lists. Max 5 items recommended for readability.
  • First bullet point with important info
  • Second point explaining a concept
  • Third point with actionable item
  • Fourth point wrapping up the list
<SlideList items={["Item 1", "Item 2"]} />
Slide Breakdown
Percentage/value breakdowns rendered as horizontal bars or stat cards. Pure CSS for PDF compatibility.

Bars variant:

Category A75%
Category B45%
Category C90%

Stats variant:

85%Metric A
62%Metric B
94%Metric C
Card Grid
Grid of content cards. 2 cards = 50/50, 3 cards = 33/33/33, 4+ cards = 2x2 grid.
Feature One
2024

Short description of the first feature.

Feature Two
2025
  • Sub-item A
  • Sub-item B
  • Sub-item C
Feature Three

Another feature with a brief explanation.

Timeline
Sequential events or milestones. Max 4 events recommended. Supports horizontal and vertical layouts.

Horizontal:

Q1

Phase 1

Initial setup

Q2

Phase 2

Development

Q3

Phase 3

Launch

Vertical:

Week 1

Step 1

Define the problem

Week 2

Step 2

Research solutions

Week 3

Step 3

Implement and test

Command Palette

Search and navigate to any route

Design System | Walter Morales | Walter Morales