Pages
Contents
adr-002 β Version Pill: Layout Decision in Default Template / Theme
Status: ACCEPTED Date: 2026-03-10 Version: v1.3.0
Context
In v1.3.0 several places were introduced that display a version pill: the sidebar footer, the login footer and the info page (status pills). The question was: uniform appearance or context-dependent?
Decision
Unified format everywhere:
| VERSION: RC-V1.3.0-ABC123 |
- No
border-radius: 999px(no capsule shape) border-radius: 2pxβ square, consistent with the rest of the design system- Font:
var(--mono),10px,letter-spacing: 0.08em - Color:
var(--text-dim), hover:var(--accent2) - Border:
1px solid var(--border), hover:var(--accent2) - Content: dynamically from
version.jsonviainitVersionPills()
Technically: data-version-pill attribute on the link element.
initVersionPills() in modules/ui.js populates all elements automatically.
Locations
| Location | Element | Initialisation |
|---|---|---|
| Sidebar footer | <a data-version-pill> |
onShellMount β initVersionPills() |
| Login footer | <a data-version-pill> |
initLogin β initVersionPills() |
| Info status pills | #status-version-value |
initInfo β initVersionPills() |
Rationale
- Consistency: the user sees the same style everywhere
- Dynamic: git hash and branch from
version.jsonβ no hardcoded string - Extensible: new screens only need the
data-version-pillattribute - Design: square pills suit the mono-font-heavy dark theme better than capsules
Alternatives Rejected
- Capsule shape (
border-radius: 999px): too round for the strict grid/mono aesthetic - Text only, no border: too little visual separation from surrounding content
- Context-dependent styling: more inconsistency, no benefit
Consequences
- All previously hardcoded
v1.3.0strings in pills are replaced bydata-version-pill generate-version-dev.shand Docker build generateversion.jsonwith branch + hash- Format convention:
RC-V1.3.0-ABC123(uppercase) for RC branches