Minimal Template
A compact personal site layout with centered bordered header and footer. Content panels span full width.
Preview
Structure
- Header — Centered, bordered container with logo and nav (max-w-4xl)
- Content — Full-width area with ip-panel grid
- Footer — Centered, bordered container matching header style
Key Characteristics
- Header and footer use
border border-secondaryinstead of border-b/border-t - Header and footer constrained with
max-w-4xl mx-auto - Page has padding (
p-4) instead of edge-to-edge - Content panels span full width for contrast with tight header/footer
- Ideal for personal sites, portfolios, and compact applications
Patterns Used
This template uses the following patterns from the Layouts & Patterns documentation:
- Minimal Layout — Centered bordered header/footer pattern
- Card Grid — 2-column responsive grid for content panels
Source Code
minimal.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Minimal Template</title>
<!-- Core CSS -->
<link rel="stylesheet" href="./css/styles.css">
<link rel="stylesheet" href="./css/themes/planetary.css" id="theme-css">
<link rel="stylesheet" href="./css/fonts/terminal.css" id="font-css">
<script src="./js/theme.js"></script>
</head>
<body class="bg-primary text-secondary font-body text-xs min-h-screen p-4">
<!-- Header -->
<header class="border border-secondary p-3 max-w-4xl mx-auto">
<div class="flex items-center justify-between">
<a href="#" class="font-display text-sm text-accent uppercase">Site Name</a>
<div class="flex items-center gap-4">
<nav class="ip-nav-list">
<a href="#" class="active">Home</a>
<a href="#">Blog</a>
<a href="#">Projects</a>
</nav>
<button onclick="themeManager.toggle()" class="ip-btn-icon">
<span class="ip-btn-icon-content">◐</span>
</button>
</div>
</div>
</header>
<!-- Main Content -->
<main class="py-4">
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div class="ip-panel" data-minimizable>
<div class="ip-panel-header">
<span>About</span>
<button class="ip-btn-icon"><span class="ip-btn-icon-content">−</span></button>
</div>
<div class="ip-panel-body">
<div class="ip-title">About</div>
<p class="text-secondary mt-2">Content here...</p>
</div>
</div>
<!-- More panels... -->
</div>
</main>
<!-- Footer -->
<footer class="border border-secondary p-3 max-w-4xl mx-auto">
<div class="flex items-center justify-between">
<div class="font-nav text-xs text-secondary/50 uppercase">© 2025</div>
<nav class="ip-nav-list">
<a href="#">Contact</a>
<a href="#">RSS</a>
</nav>
</div>
</footer>
<script src="./js/window.js"></script>
</body>
</html>