# RentalDriveGo Decision Log v12.0

Date: 2026-06-25  
Scope: Phase 12 reusable component-system implementation

## D12-001: Preserve the Phase 11 styling architecture

Status: Accepted.

Phase 12 uses CSS Modules and Phase 11 semantic tokens exclusively. No utility CSS framework, CSS-in-JS runtime, or arbitrary raw brand-color API was added.

## D12-002: Prefer native platform semantics

Status: Accepted.

Buttons, links, form controls, `details`, `progress`, and `dialog` remain native elements. Custom behavior is added only where keyboard state, focus return, browser APIs, or controlled composition require it.

## D12-003: Guard the component workbench

Status: Accepted.

`/[locale]/component-lab` is the Storybook-equivalent fixture route. It is available only when `COMPONENT_FIXTURES_ENABLED=true`, is marked noindex, and uses deterministic fictional content.

## D12-004: Keep the dependency graph unchanged

Status: Accepted.

The component system uses React, browser primitives, and the existing stack. No icon, overlay, form, animation, class-merging, or state-management dependency was added. A small internal SVG icon map avoids shipping an entire icon library for several symbols.

## D12-005: Use semantic, constrained component APIs

Status: Accepted.

Public APIs expose intent, status, density, alignment, or meaningful variants. Arbitrary colors and large Boolean prop collections are prohibited. Link and button semantics remain distinct.

## D12-006: Treat RTL as component behavior, not a global mirror

Status: Accepted.

CSS logical properties and document direction control layout. Directional icons opt into mirroring; brands, media, vehicle imagery, process chronology, and universal media controls remain fixed unless explicitly specified.

## D12-007: Suppress unresolved production evidence and destinations

Status: Accepted.

Claims, metrics, customer evidence, testimonials, pricing, CRM transmission, login destinations, sales destinations, and final media remain typed blocked states, disabled treatments, or development fixtures tied to existing issue IDs. Compilation is not product approval.

## D12-008: Keep server rendering as the default

Status: Accepted.

Only stateful controls and browser-dependent utilities create client boundaries. Static surfaces, typography, media shells, evidence structures, workflow patterns, comparison patterns, and section patterns remain server-compatible.

## D12-009: Record runtime evidence without laundering environment failures

Status: Accepted.

Static validation, formatting, lint, strict type checking, unit tests, production build, and direct HTTP route checks are recorded as executed. Browser navigation, visual baselines, frozen pnpm installation, audit, Node 24 verification, and manual assistive-technology checks remain explicit gates.
