# Architecture Decisions This document records significant architectural decisions made during the development of nuka-ui, including context, reasoning, and tradeoffs. --- ## ADR-001: Variant + Intent API for components **Date:** 2026-04-03 **Status:** Accepted ### Context UI components that carry semantic meaning (danger, success, warning) need a way to express both visual weight and semantic color independently. The naive approach is flat variants: `variant="danger"`, `variant="ghost-danger"`, etc. ### Decision Separate `variant` and `intent` into distinct props: - `variant`: controls visual weight and shape (primary, secondary, outline, ghost, link) - `intent`: controls semantic color (default, danger, success, warning) All variant x intent combinations are valid. CVA `compoundVariants` handles the class composition. ### Consequences - 25 explicit compound variant definitions per component that uses this pattern - Cleaner consumer API: `