natca-ui-shell

ADR-001: Wrap Vuetify Rather Than Replace It

Status

Accepted

Date

2026-04-09

Context

All MyNATCA apps (Hub, BID, DMS, Pay, GATS) use Vuetify 3 as their component library. The UI Shell design system started as standalone CSS (Phase 1) and needs to evolve into a shared Vue component package (Phase 2).

Two approaches were considered:

  1. Replace Vuetify — build a fully custom component library from scratch using only NATCA design tokens
  2. Wrap Vuetify — keep Vuetify as the component foundation, export a shared theme preset and higher-level components that wrap Vuetify internally

Decision

Wrap Vuetify. UI Shell exports:

Apps continue to use Vuetify components directly for standard UI (buttons, forms, dialogs, data tables). They use ui-shell components for shell layout and cross-app patterns.

Consequences

Positive

Negative

Mitigations