Unit test coverage
Coverage shows how much code the unit tests executed in this run.
991 / 991 unit tests passed in this run.
CI report · version 1.0.0 ·
Revision fbe82aab· the working copy has uncommitted changes.
Coverage includes components, utilities, icon-name resolution and tokens. E2E, visual comparisons and Axe run separately. Type declarations, generated catalogues, manifest metadata and re-export entry points are excluded.
What is checked
| Check | What it checks |
|---|---|
| Vitest + Vue Test Utils | Component contracts, states, events, utilities and behaviour branches. The percentages above refer to these unit tests. |
| Playwright | Interactions, keyboard, focus and overlays in Chromium, Firefox, WebKit and mobile Chromium. |
| Visual baselines | Desktop and mobile in Gavia, Gavia Dark, Classic, Classic Dark and Newspaper. Gavia and Gavia Dark load Gavia Sans; classic baselines use Arial/Consolas. |
| Axe | Visible pages and open lists/dialogs in five themes, WCAG 2.2 AA rules in Chromium. Keyboard scenarios are checked separately. |
| Public contract | Declarations and an existing Vue consumer are compared with a saved snapshot: removals and contract narrowing fail the check. |
| Package archive | Built tarball: ESM import, types, example SFCs, SSR and hydration, files and licences, and application size with one button. |
The table lists check coverage. See GitHub Actions for a specific run's results. A local coverage report does not confirm CI results. PNG changes are accepted after reviewing expected/actual/diff.
Browsers and Vue
| Environment | Target range |
|---|---|
| Chrome / Edge | 111+; matching Android Chromium versions |
| Firefox | 121+; matching Android Firefox versions |
| Safari / iOS Safari | 16.4+ |
| Vue | 3.4+; Vue remains the only required peer |
The browser range is based on support for ES2020, CSS Layers, :has(), color-mix and container queries. Automated checks use pinned Playwright versions; the full suite has not been run separately on every historical minimum version.
WebKit checks the engine and does not replace a separate Safari/iOS run. IE and old WebViews are unsupported. CSS is imported explicitly; the library installs no global polyfills.
Accessibility and SSR
Application accessibility
The target is WCAG 2.2 AA. Axe checks ARIA names and relationships, contrast and visible DOM, including open lists and dialogs in five themes.
An automated scan does not establish full WCAG conformance. Integration requires manual keyboard, zoom, NVDA and VoiceOver checks. These runs are outside the unit coverage shown here.
SSR and overlays
Vue SSR and hydration are checked for preserved DOM and identifiers. In Vue 3.4, synchronous server-tree and hydration order must match; asynchronous branch order is not separately guaranteed.
Overlays use Teleport to body: the server inserts context.teleports.body at the start of body before the application root. If your framework supports only its own teleport target, use its ClientOnly for overlays and check integration. Verify Nuxt and module integration in your application.
Versions and compatibility
All components share one Gavia UI version. “Since” in the catalogue marks a component's first release; later changes are listed in the changelog.
Patch
Fixes preserve the public contract and existing consumer code.
Minor and major
Minor adds capabilities. In 0.x, a necessary incompatible change is allowed only in a minor release with an explicit Breaking changes notice and migration guide. After 1.0, it requires a major release.
The public contract includes props, events and payloads, slots, v-model, exposed methods, exports, CSS classes, data-wl, tokens and pt sections. Type checks protect the API shape; unit/E2E tests check behaviour. A migration note alone does not disable compatibility checks.