Avionics Design System
Design Philosophy
The ASDLC.io design system abandons the generic, ephemeral aesthetic of modern tech startups in favor of a "Timeless Industrial" vision. Inspired by the high-precision engineering of Dieter Rams' Braun designs, classic Kodak packaging, and aerospace flight manuals, the interface is built to feel authoritative, tactile, and meticulously engineered. We treat Agentic SDLC not as a fleeting trend, but as an established, rigorous discipline. This maturity is reflected through a brutalist, specification-sheet aesthetic that values structural clarity and utilitarian purpose, framing the site not as a blog, but as a definitive "Flight Manual" for machine intelligence.
To execute this "Avionics" aesthetic, the system is rooted in a highly deliberate, constrained set of typographic and color choices. The typography pairs the commanding, wide-stanced Archivo sans-serif with B612 Mono—a monospace font originally engineered for Airbus cockpits—ensuring that every code block and data table feels like a critical manifest entry. The "International Safety" color palette rejects harsh digital whites and clinical blues, opting instead for a warm, physical paper background (#F4F4F0) and a soft, toner-like black (#111111). Punctuated by a single, high-visibility Safety Orange (#F04E30), these elements work together to transform standard web documentation into a robust, heavy-industry control panel.
Color Palette
The Avionics palette is built around International Safety colors—high-contrast, immediately recognizable, and functional.
Background & Structure
--c-bg-page#f4f4f0--c-bg-surface#ebebe6--c-border#d1d1c7Text
--c-text-primary#111111--c-text-secondary#585855Brand
--c-brand#f04e30--c-brand-hover#d13a1eStatus Indicators
--c-success#00703c--c-warning#ffb400--c-error#cc0000Background Colors
--c-bg-page: #f4f4f0; /* Warm, off-white concrete/paper */
--c-bg-surface: #ebebe6; /* Slightly darker, for cards or headers */
--c-border: #d1d1c7; /* Visible, structural grey */ Usage: --c-bg-page for main page background, --c-bg-surface for cards and headers, --c-border for borders and dividers.
Text Colors
--c-text-primary: #111111; /* Soft black, like high-quality toner */
--c-text-secondary: #585855; /* Muted grey for secondary information */ Brand Colors
--c-brand: #f04e30; /* Safety Orange */
--c-brand-hover: #d13a1e; /* Darker orange for hover states */ Status Indicators
/* Success (DIN Standard Green) */
--c-success: #00703c;
/* Warning (Signal Yellow) */
--c-warning: #ffb400;
/* Error (Switch Red) */
--c-error: #cc0000; Typography
The Avionics typography system uses two carefully selected typefaces to create a technical, authoritative feel.
Font Families
--f-sans: "Archivo", sans-serif; /* Variable font with industrial character */
--f-mono: "B612 Mono", monospace; /* Aviation-grade monospace */ Archivo is a variable font designed for industrial and technical applications. B612 Mono was designed by Airbus for cockpit displays.
Heading Styles
All headings use uppercase transformation and expanded width for maximum impact:
h1, h2, h3 {
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.02em;
font-variation-settings: "wdth" 110; /* Expanded width */
} | Element | Size | Usage |
|---|---|---|
h1 | 2.5rem (40px) | Page titles, main headings (one per page) |
h2 | 1.5rem (24px) | Major sections, chapter headings |
h3 | 1.125rem (18px) | Subsections, technical labels (uses monospace) |
Layout System
The Avionics layout system uses a sophisticated CSS Grid approach for responsive, content-focused layouts. Every page shares the same .grid-layout applied to <main> in BaseLayout.astro.
Prose Contexts
We distinguish between generic prose and article content:
.prose: Generic typography styles for any text block. Usesdisplay: contentsso children participate directly in the parent grid..content-prose: Enhanced styles for long-form articles, including specific spacing for headings and lists.
Spacing Tokens
--s-grid-unit: 0.5em; /* Fundamental grid unit */
--s-gutter-min: var(--s-grid-unit); /* Minimum gutter width */
--s-gutter-max: 9.7ch; /* Maximum gutter width */
--s-content-max: 67ch; /* Optimal reading width */
--s-grid: 24px; /* Base grid unit (components) */
--s-gap: 1.5rem; /* Standard gap between elements */ Content Grid
The .grid-layout class defines a 6-column symmetric grid with three named content zones. This is the backbone of every page.
.grid-layout {
display: grid;
grid-template-columns:
[full-start] minmax(var(--s-gutter-min), 1fr)
[breakout-start] minmax(var(--s-gutter-min), var(--s-gutter-max))
[content-start] min(100% - 4 * var(--s-grid-unit), var(--s-content-max))
[content-end]
minmax(var(--s-gutter-min), var(--s-gutter-max)) [breakout-end]
minmax(var(--s-gutter-min), 1fr) [full-end];
} Column Map
Zone Widths
| Zone | Named lines | Width | Use case |
|---|---|---|---|
content | content-start / content-end | max 67ch | Body text, headings, lists — optimal reading measure |
breakout | breakout-start / breakout-end | content + 2 × 9.7ch gutters | Tables, figures, code blocks, diagrams |
full | full-start / full-end | 100% viewport | Hero sections, full-bleed backgrounds |
Default Placement
All direct children of .grid-layout default to the content column. Opt in to wider zones with utility classes:
.grid-layout > * { grid-column: content; } /* default */
.grid-layout > .breakout { grid-column: breakout; }
.grid-layout > .full { grid-column: full; width: 100%; } Live Demo
The bars below are placed inside the page's .grid-layout to show real column boundaries:
Automatic Breakout
Some elements break out automatically via CSS rules in prose.css and grid.css — no class needed:
tableinside.prose→breakoutfigureinside.prose→breakout
Prose & Grid Integration
The .prose class uses display: contents, which makes its children direct grid participants. This is what allows markdown-rendered content (headings, paragraphs, tables) to align to named grid columns without extra wrapper markup:
.grid-layout > .prose { display: contents; }
.prose > * { grid-column: content; }
.prose > table { grid-column: breakout !important; } Spec Grid
A responsive grid for card collections (Concepts, Patterns, Practices):
.spec-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: var(--s-gap);
} Components
Border Box
Isolate →A utility class for bordered containers:
.border-box {
border: 1px solid var(--c-border);
padding: var(--s-gap);
}Status Badge
Isolate →Monospace badges for status indicators:
<StatusBadge status="Live" />Spec Card (Article Card)
Isolate →Card component for index pages representing a single article item. Includes an optional description snippet.
<SpecCard
title="Context Engineering"
description="A set of practices designed to optimize what an AI agent 'sees'..."
url="/concepts/context-engineering"
meta="Oct 12, 2026"
status="Live"
tags={["context", "agentic-sdlc"]}
/>Spec List Item
Isolate →Dense row component for directory listings. Designed for use in status-grouped lists where items need to be scanned quickly by title.
Each row renders as a single semantic <a> tag with a title and optional description. Status, tags, and dates are intentionally omitted — status is communicated by the parent grouping; everything else lives on the detail page.
- Root element: Semantic
<a>tag — the entire row is clickable. - Context: Must be placed inside a
<li>within a<ul class="spec-list">for correct list semantics. - Description: Optional secondary text for disambiguation when titles are similar.
<ul class="spec-list">
<li>
<SpecListItem
title="Living Specs"
url="/practices/living-specs"
description="A practice for maintaining specifications..."
/>
</li>
</ul>Spec Header
Isolate →Standardized header for specification pages (Concepts, Patterns, Practices). Supports data-driven metadata rendering.
Example Specification
<SpecHeader
data={articleSchema.parse({
title: "Example Specification",
description: "A standardized header component...",
status: "Live",
lastUpdated: new Date(),
tags: ["example"]
})}
/>Warning Banner
Isolate →Used for critical system-wide alerts (e.g., Alpha Release warning).
<div class="banner-warning">
SYSTEM ALERT: EXAMPLE WARNING BANNER
</div>Article References
Isolate →Structured reference component for citing external sources in APA-inspired format. Supports 7 reference types: website, paper, book, podcast, video, repository, and standard.
References
- (2024).
OpenAI Best Practices for Prompt Engineering
.
Accessed January 8, 2026.
Foundational guidance on structuring prompts for LLMs, covering prompt engineering techniques and best practices.
- (2022).
Constitutional AI: Harmlessness from AI Feedback
.
Introduces the constitutional training methodology underpinning Claude's behavior and safety constraints.
- (2003).
Domain-Driven Design: Tackling Complexity in the Heart of Software
.
ISBN: 978-0321125217.
Seminal work on modeling complex domains in software through strategic design patterns.
<ArticleReferences references={[
{
type: "website",
title: "OpenAI Best Practices for Prompt Engineering",
url: "https://platform.openai.com/docs/guides/prompt-engineering",
author: "OpenAI",
published: new Date("2024-01-15"),
accessed: new Date("2026-01-08"),
annotation: "Foundational guidance on structuring prompts..."
},
// ... more references
]} />Features:
- APA-inspired citation format: Author (Year). Title. Metadata.
- Semantic HTML with
<cite>,<ol>, and proper accessibility - Automatic handling of missing optional fields
- External links with
rel="external noopener" - Required
accesseddate for website references (validated in schema)
Accessibility
The Avionics design system is built with accessibility as a core principle:
Color Contrast
All text colors meet WCAG AA standards:
- Primary text on page background: 14.5:1 (AAA)
- Secondary text on page background: 6.8:1 (AA)
- Brand color on page background: 4.7:1 (AA for large text)
Semantic HTML
- Proper heading hierarchy (H1 → H2 → H3)
- Semantic elements (
<article>,<nav>,<main>) - ARIA labels where appropriate
Best Practices
Do's
- ✅ Use CSS custom properties for all colors and spacing
- ✅ Follow the grid layout system for consistent spacing
- ✅ Use semantic HTML elements
- ✅ Maintain heading hierarchy (one H1 per page)
- ✅ Use monospace font for technical/metadata content
Don't's
- ❌ Don't use arbitrary color values—use design tokens
- ❌ Don't skip heading levels (H1 → H3)
- ❌ Don't use multiple H1s on a single page
- ❌ Don't override font families without good reason
- ❌ Don't create layouts outside the grid system
Diagrams
Mermaid diagrams use the Avionics palette for visual consistency. Diagrams are authored in markdown and generated to SVG.
Theme Variables
Key mermaid theme variables mapped to design tokens:
primaryColor: #f04e30 /* --c-brand (nodes) */
clusterBkg: #ebebe6 /* --c-bg-surface (subgraphs) */
clusterBorder: #d1d1c7 /* --c-border */
textColor: #111111 /* --c-text-primary */
fontFamily: "B612 Mono" /* --f-mono */ Generation Workflow
- Write
```mermaidblock in markdown article - Run
pnpm diagramsto generate SVG - Script outputs to
public/mermaid/{slug}-fig-{n}.svg - Script adds
<figure>reference after mermaid block
Example Flowchart
```mermaid
flowchart LR
subgraph "Input Layer"
A["Source"]
end
subgraph "Processing"
B["Transform"]
C["Validate"]
B --> C
end
A --> B
C --> D["Output"]
``` Result: Nodes use Safety Orange (#f04e30), subgraphs use warm grey (#ebebe6), text uses primary black (#111111).
File References
The design system is implemented across these files:
ds/index.css- Design System entrypointds/tokens.css- Design tokensds/base.css- Base stylesds/pre-flight.css- Modern resetds/typography.css- Typography rulesds/prose.css- Generic prose stylesds/content-prose.css- Article-specific prose stylesds/layouts/grid.css- Main grid layoutds/layouts/spec-grid.css- Card grid layoutds/components/*.css- Component stylesmermaid.json- Mermaid diagram theme configuration