# Phase 12 Component Catalog

All public components use semantic tokens, logical CSS, one locale-independent DOM tree, and typed semantic variants. The component-lab route is development-only and guarded by `COMPONENT_FIXTURES_ENABLED=true`.

## Public component reference

| Component           | Import path                                 | Purpose                                               | Variants                                                                               | Accessibility / RTL / responsive behavior                                                                                                                        | Do not use when                                                                       |
| ------------------- | ------------------------------------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| `VisuallyHidden`    | `@/components/foundation/VisuallyHidden`    | Reusable foundational utilities primitive or pattern. | default                                                                                | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `BidiText`          | `@/components/foundation/BidiText`          | Reusable foundational utilities primitive or pattern. | default                                                                                | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `LiveRegion`        | `@/components/foundation/LiveRegion`        | Reusable foundational utilities primitive or pattern. | polite, assertive                                                                      | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Icon`              | `@/components/foundation/Icon`              | Reusable icon system primitive or pattern.            | sm, md, lg, fixed, mirror                                                              | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Button`            | `@/components/actions/Button`               | Reusable actions primitive or pattern.                | primary, conversion, secondary, tertiary, ghost, destructive, link, icon-only, loading | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `ActionLink`        | `@/components/actions/ActionLink`           | Reusable actions primitive or pattern.                | inline, navigation, standalone, button-primary, button-conversion, muted, disabled     | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `FormField`         | `@/components/forms/FormField`              | Reusable forms primitive or pattern.                  | required, optional, supporting, error                                                  | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `TextInput`         | `@/components/forms/TextInput`              | Reusable forms primitive or pattern.                  | text, email, telephone, url, search, invalid, disabled                                 | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `TextArea`          | `@/components/forms/TextInput`              | Reusable forms primitive or pattern.                  | default, character-count, invalid, disabled                                            | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Select`            | `@/components/forms/TextInput`              | Reusable forms primitive or pattern.                  | default, invalid, disabled                                                             | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Checkbox`          | `@/components/forms/ChoiceControls`         | Reusable forms primitive or pattern.                  | default, checked, invalid, disabled                                                    | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Radio`             | `@/components/forms/ChoiceControls`         | Reusable forms primitive or pattern.                  | default, checked, invalid, disabled                                                    | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Switch`            | `@/components/forms/ChoiceControls`         | Reusable forms primitive or pattern.                  | on, off, disabled                                                                      | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Fieldset`          | `@/components/forms/FormField`              | Reusable forms primitive or pattern.                  | default                                                                                | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `ErrorSummary`      | `@/components/forms/ErrorSummary`           | Reusable forms primitive or pattern.                  | error-list                                                                             | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Tabs`              | `@/components/controls/Tabs`                | Reusable selection controls primitive or pattern.     | automatic, manual, disabled-tab                                                        | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `SegmentedControl`  | `@/components/controls/SegmentedControl`    | Reusable selection controls primitive or pattern.     | selected, disabled                                                                     | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Accordion`         | `@/components/controls/Accordion`           | Reusable selection controls primitive or pattern.     | open, closed                                                                           | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Pagination`        | `@/components/controls/Pagination`          | Reusable selection controls primitive or pattern.     | current, previous, next                                                                | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Dialog`            | `@/components/overlays/Dialog`              | Reusable overlays primitive or pattern.               | modal, drawer, dismissible, non-dismissible                                            | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `DropdownMenu`      | `@/components/overlays/DropdownMenu`        | Reusable overlays primitive or pattern.               | open, closed, disabled-item, destructive-item                                          | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Tooltip`           | `@/components/overlays/Tooltip`             | Reusable overlays primitive or pattern.               | hover, focus                                                                           | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Alert`             | `@/components/feedback/Alert`               | Reusable feedback primitive or pattern.               | info, success, warning, error, inline                                                  | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Progress`          | `@/components/feedback/Progress`            | Reusable feedback primitive or pattern.               | determinate, indeterminate                                                             | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Spinner`           | `@/components/feedback/Loading`             | Reusable feedback primitive or pattern.               | loading                                                                                | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Skeleton`          | `@/components/feedback/Loading`             | Reusable feedback primitive or pattern.               | single-line, multi-line, reduced-motion                                                | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `StateMessage`      | `@/components/feedback/StateMessage`        | Reusable feedback primitive or pattern.               | empty, error, success, information                                                     | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `StatusBadge`       | `@/components/foundation/StatusBadge`       | Reusable feedback primitive or pattern.               | neutral, info, success, warning, error                                                 | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Card`              | `@/components/surfaces/Card`                | Reusable surfaces primitive or pattern.               | default, muted, elevated, strong, interactive                                          | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Panel`             | `@/components/surfaces/Card`                | Reusable surfaces primitive or pattern.               | default, muted, elevated, strong                                                       | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Callout`           | `@/components/surfaces/Callout`             | Reusable surfaces primitive or pattern.               | information                                                                            | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Heading`           | `@/components/typography/Typography`        | Reusable typography primitive or pattern.             | display, section, subheading, levels-1-6                                               | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Eyebrow`           | `@/components/typography/Typography`        | Reusable typography primitive or pattern.             | default                                                                                | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Text`              | `@/components/typography/Typography`        | Reusable typography primitive or pattern.             | lead, body, supporting, caption, label                                                 | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Quote`             | `@/components/typography/Typography`        | Reusable typography primitive or pattern.             | with-citation, without-citation                                                        | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Breadcrumbs`       | `@/components/navigation/Breadcrumbs`       | Reusable navigation primitive or pattern.             | current-page                                                                           | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `SectionNavigation` | `@/components/navigation/SectionNavigation` | Reusable navigation primitive or pattern.             | current-location, overflow                                                             | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `FooterLinkGroup`   | `@/components/navigation/FooterLinkGroup`   | Reusable navigation primitive or pattern.             | resolved, disabled                                                                     | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `MediaFrame`        | `@/components/media/MediaFrame`             | Reusable media primitive or pattern.                  | square, landscape, wide, portrait, auto, captioned, decorative                         | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `ResponsiveImage`   | `@/components/media/MediaFrame`             | Reusable media primitive or pattern.                  | meaningful, decorative, captioned                                                      | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `SectionHeader`     | `@/components/marketing/SectionHeader`      | Reusable section patterns primitive or pattern.       | start, center                                                                          | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `FeatureCard`       | `@/components/marketing/FeatureCard`        | Reusable marketing surfaces primitive or pattern.     | default, primary, muted                                                                | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `FeatureGrid`       | `@/components/marketing/SectionPatterns`    | Reusable section patterns primitive or pattern.       | responsive-grid                                                                        | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `SplitContent`      | `@/components/marketing/SectionPatterns`    | Reusable section patterns primitive or pattern.       | default, reverse                                                                       | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `MetricStrip`       | `@/components/marketing/SectionPatterns`    | Reusable section patterns primitive or pattern.       | responsive-strip                                                                       | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `LogoStripShell`    | `@/components/marketing/SectionPatterns`    | Reusable section patterns primitive or pattern.       | empty-shell, content                                                                   | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Workflow`          | `@/components/marketing/Workflow`           | Reusable workflow primitive or pattern.               | numbered, icon, stacked, horizontal                                                    | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Comparison`        | `@/components/marketing/Comparison`         | Reusable comparison primitive or pattern.             | problem-solution, stacked, two-column                                                  | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A simpler native element or layout primitive already provides the required semantics. |
| `Metric`            | `@/components/marketing/Evidence`           | Reusable evidence primitive or pattern.               | approved, pending-review, research-only, prohibited                                    | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A blocked product decision or unsupported claim would be required.                    |
| `EvidenceShell`     | `@/components/marketing/Evidence`           | Reusable evidence primitive or pattern.               | approved, pending-review, research-only, prohibited                                    | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A blocked product decision or unsupported claim would be required.                    |
| `CTA`               | `@/components/marketing/CTA`                | Reusable calls to action primitive or pattern.        | inline, card, section, primary-only, dual-action, disabled-destination                 | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A blocked product decision or unsupported claim would be required.                    |
| `ProductPreview`    | `@/components/marketing/ProductPreview`     | Reusable product previews primitive or pattern.       | illustrative, empty, responsive-table                                                  | Semantic HTML; keyboard support when interactive; visible focus; logical CSS; localized content props; content-driven reflow at compact, medium, and wide gates. | A blocked product decision or unsupported claim would be required.                    |

## Representative usage

```tsx
import { Button } from '@/components/actions/Button';
import { FeatureCard } from '@/components/marketing/FeatureCard';

<Button intent="conversion" size="large">{messages.demoLabel}</Button>
<FeatureCard title={content.title} description={content.description} icon="car" />
```

## Prohibited usage

- Do not pass raw colors, arbitrary spacing, untranslated fragments, unresolved URLs, or research-only evidence into production rendering.
- Do not use `Card` to turn every layout problem into a rectangle. Humanity has already done enough of that.
- Do not use `InteractiveCard` semantics for containers with multiple independent controls. This system intentionally does not provide that invalid abstraction.
- Do not enable the component-lab route in a public production deployment.
