Layout & Typography
Core layout utilities, typography styles, and structural components for building pages.
Typography
Text sizes and font weights for consistent typography across your application.
Heading 1 - text-5xl
Heading 2 - text-4xl
Heading 3 - text-3xl
Heading 4 - text-2xl
Heading 5 - text-xl
Heading 6 - text-lg
Body text - text-base (default)
Small text - text-sm
Extra small - text-xs
<h1 class="text-4xl font-bold">Heading</h1>
<p class="text-gray-600">Paragraph text</p>
<p class="text-sm">Small text</p>
Grid System
Responsive grid layouts with automatic column sizing and gap control.
<div class="grid grid-cols-3 gap-4">
<div>Column 1</div>
<div>Column 2</div>
<div>Column 3</div>
</div>
Jumbo / Hero
Large banner sections for important announcements and page headers.
<div class="jumbo jumbo-lg">
<div class="jumbo-content">
<h1 class="jumbo-title">Title</h1>
<p class="jumbo-subtitle">Subtitle</p>
</div>
</div>
Cards
Content containers with optional headers, footers, and interactive states.
Basic Card
Simple card with padding and border.
Interactive Card
Hover for shadow effect.
Card with Header
Separate header section.
<div class="card card-interactive">
<div class="card-body">
<h3 class="card-title">Title</h3>
<p>Content</p>
</div>
</div>
Spacing Utilities
Margin and padding utilities for consistent spacing throughout your layout.
p-* padding, m-* margin
px-* horizontal, py-* vertical
mt-* top, mb-* bottom, ml-* left, mr-* right
Scale: 0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24
<div class="p-4 mb-6">
Padding 1rem, margin-bottom 1.5rem
</div>
<div class="px-4 py-2">
Horizontal padding 1rem
Vertical padding 0.5rem
</div>
Images
The <what-image> component handles aspect ratios and object-fit to prevent distortion.
cover (crops, no distortion)
contain (letterbox)
fill (stretches)
aspect-square
aspect-video (16:9)
contain + aspect-video
<!-- Basic usage -->
<what-image src="/photo.jpg" alt="Photo"/>
<!-- Square with cover (no distortion) -->
<what-image
src="/photo.jpg"
fit="cover"
ratio="aspect-square"
rounded="rounded"/>
<!-- 16:9 with contain -->
<what-image
src="/photo.jpg"
fit="contain"
ratio="aspect-video"/>
<!-- Props: src, alt, fit, ratio,
rounded, width, height -->
<!-- fit: cover|contain|fill|none -->