Grid System v2
The Grid System v2 governs all TED OS UI. It repeals the earlier golden-ratio (φ-based) model:
spacing, typography, and proportions are now base-8, no φ. The full directives (G1–G20) live in
the repo (knowledge/grid-system.md) and the project's Paper deck; this page is the orientation.
The X axis — variable columns, anti-stretch
- Variable columns by target width, not breakpoints. The column count is computed from the available width (clamped between 4 and 20). Reference: phone 4 · tablet 6 · laptop 10 · desktop 12 · ultra-wide / TV 20.
- Anti-stretch. More screen = more columns and more widgets, never inflated widgets. The canvas is never centered or capped.
overflow-xis forbidden (overflow-x: clipon the page chrome).
The Y axis — growth
- The canvas grows downward; scroll-y is allowed, the top origin never moves.
- Bands by volatility — constant (origin) → live → fresh (bottom edge). A band's height is its tallest group.
Groups — context always
- No widget floats loose. Every widget lives in a group (a cohesive 2D subgrid aligned to the main grid) and renders by groups at any size.
- Each group declares a contract: its column/row span (and max), priority, and hue, plus a
flexwidget that absorbs extra width and avbottomwidget that absorbs extra height.
2D packing + bounded expansion
- Greedy packing by priority + balancing — never a last band with one group when the previous band has three or more.
- Bounded expansion — distribute remaining width up to each group's max (absorbed by
flex); stretch height to the band (absorbed byflex+vbottom); the extreme remainder stays as editorial air. Norepeat(auto-fit, minmax(...))uniform stretching.
The unit, radius, and type
- Square unit — a cell is a true square at 1×1, portrait at 1×2, landscape at 2×1.
- Radii by hierarchy (R1–R5), concentric: an inner radius = the outer minus its padding.
- Base-8 typography — a fixed step scale with
clamp()by density; Geist for display, Geist Mono (tabular) for UI/data.
Carried-over rules
- Everything in
rem, one scale knob; icons inem. - Drag snaps to the grid (keyboard too); the group contract survives the drop.
- Animate only
transformandopacity— never width/height/top/left;transition: allis banned. - Accessibility is a gate, not polish — AA contrast, visible focus, state by tone + label + shape, reduced-motion respected.
Relationship to the other rules
The grid complements the foundation conventions and the engineering guardrails; on a spacing / layout conflict, the grid wins. See Foundations and Color scope.