Kit validation
The last all-kit browser and integrity results, from when Tectra lived in cosmiklabs/brand, are recorded in reference validation. The 23 October 2026 run supersedes the historical browser-execution blocker below. Approval and supplied assets are described in the family guide.
0.6.1 — 26 October 2026#
Licence update and foundation re-vendored from cosmiklabs/brand v0.16.1 (4da5ba28b1c32cf6b717ca1cb579b6c6d237ec3d); no token value, mark or control change. Run on macOS with Node.js 24.22.0: npm run build, npm run check and node scripts/build.mjs --check from the release commit pass; vendor.mjs verify vendor/brand --release passes. No visual change, so no new browser run; the 0.6.0 measurements stand.
0.6.0 — 26 October 2026#
Foundation re-vendored from cosmiklabs/brand v0.16.0 (160f73268fb2307156e580d6fa30c99ef93a2e39), with Tectra's dark glass tint lowered to 38 %. Run on macOS with Node.js 24.22.0: npm run build, node scripts/build.mjs --check from the release commit and npm run check pass (family.mjs check . with 146 pairs, now over any backdrop, 36 tests); vendor.mjs verify vendor/brand --release passes. Token-check worst cases over 4,913 backdrops through each tone's filter: dark text 7.09:1, muted 5.33:1, pressed text 4.63:1, focus/selection 4.56:1; light text 7.46:1, muted 5.21:1, focus/selection 3.11:1. Measured from pixels in headless Chrome for Testing 156 (Tectra tokens and the foundation's controls, .c-glass over white, black, the primaries, mid grey and Tectra's teals, both themes): dark text 7.06:1, muted 5.30:1, focus 4.54:1 (worst over white); light text 7.46:1, muted 5.21:1, focus 3.11:1 (worst over black). Composite luminance behind the glass: dark 0.008–0.083, light 0.462–1.0. specimen.html has no glass and renders unchanged at 1280 px in both themes.
0.5.2 — 25 October 2026#
Selection returned to Tectra's teal. Run on macOS with Node.js 24.22.0: npm run build, node scripts/build.mjs --check from the release commit and npm run check pass (family.mjs check . with 146 pairs, 31 tests); vendor.mjs verify vendor/brand --release passes. Selected pairs: on-selected 5.86:1 light and 10.47:1 dark; selected against bg, surface and raised 5.20–6.38:1 light and 7.84–10.47:1 dark; against glass over each tone's band 3.12:1 light and 4.79:1 dark. Rendered in the Tectra app at 1440 px in both themes and at 320 px touch (light): selected tools, camera mode and segment options read as teal fills with their bar.
0.5.1 — 25 October 2026#
Foundation re-vendored from cosmiklabs/brand v0.15.1 (31cd0202eb0691c32e0c08b81a94c209c9a1c2b4), with Tectra's pressed roles corrected. Run on macOS with Node.js 24.22.0: npm run build, node scripts/build.mjs --check from the release commit and npm run check pass (family.mjs check . with 146 pairs including the new state ramps, 31 tests); vendor.mjs verify vendor/brand --release passes. With 0.5.0's pressed values the new state pairs fail for the dark secondary, dark primary and light secondary ramps.
0.5.0 — 25 October 2026#
Foundation re-vendored from cosmiklabs/brand v0.15.0 (240edbe4bf69f1af36be30c60dc80aa35f29b56d), with Tectra sheen colours. Run on macOS with Node.js 24.22.0: npm run build, node scripts/build.mjs --check from the release commit and npm run check pass (vendor.mjs verify vendor/brand, family.mjs check . with 132 contrast pairs, 31 tests); vendor.mjs verify vendor/brand --release against the v0.15.0 checkout passes. The foundation's component reference was rendered with tokens/tectra.css and data-family="tectra" at 1280 px in both themes: the sheen reads as light on the rim in both tones and text and selection stay clear.
0.4.0 — 25 October 2026#
Foundation re-vendored from cosmiklabs/brand v0.14.0 (e5259977583505abb4f593012571a71eaa39ef0a), with Tectra glass tones. Run on macOS with Node.js 24.22.0: npm run build, node scripts/build.mjs --check from the release commit and npm run check pass (vendor.mjs verify vendor/brand, family.mjs check . with 136 contrast pairs, 31 tests); vendor.mjs verify vendor/brand --release against the v0.14.0 checkout passes. Glass over each tone's band: dark (luminance 0–0.25) text 7.46:1, muted 5.60:1, focus 4.79:1, boundary 3.20:1; light (0.15–1) text 7.48:1, muted 5.23:1, focus 3.12:1, boundary 3.46:1. The foundation's component reference was rendered with tokens/tectra.css and data-family="tectra" at 1280 px in both themes; both tones read clearly over light and dark busy content and the content visibly shows through.
0.3.0 — 25 October 2026#
Foundation re-vendored from cosmiklabs/brand v0.13.0 (9985a274113c74bdf8b80d5011f9045634cfd31e), with Tectra glass roles. Run on macOS with Node.js 24.22.0: npm run build, node scripts/build.mjs --check from the release commit and npm run check pass (vendor.mjs verify vendor/brand, family.mjs check . with 136 contrast pairs including the 16 glass pairs, 31 tests); vendor.mjs verify vendor/brand --release against the v0.13.0 checkout passes. Glass over any of 4,913 backdrops: dark text 8.81:1, muted 5.22:1, focus 5.67:1, boundary 3.08:1; light text 10.52:1, muted 4.89:1, focus 4.39:1, boundary 3.18:1. The foundation's component reference was rendered with tokens/tectra.css and data-family="tectra" at 1280 px in both themes and its glass row inspected: the toolbar, buttons, select, segmented control and hint read clearly over white, black, saturated colours, stripes and a checker, and the dark glass matches the mineral surfaces. The review board does not load the controls layer, so it was not re-rendered. Generated tokens otherwise differ only in the version and provenance.
0.2.6 — 25 October 2026#
Foundation re-vendored from cosmiklabs/brand v0.12.2 (91ecddeab47f9380a6e6727b3c0611a3073ad520). Run on macOS with Node.js 24.22.0: npm run build, node scripts/build.mjs --check from the release commit and npm run check pass (vendor.mjs verify vendor/brand, family.mjs check . with 120 contrast pairs, 31 tests); vendor.mjs verify vendor/brand --release against the v0.12.2 checkout passes. Generated tokens differ from 0.2.5 only in the version and the provenance header. The review board does not load the controls layer, so it was not re-rendered.
0.2.5 — 25 October 2026#
Foundation re-vendored from cosmiklabs/brand v0.12.1 (71fcd97f6342090f7b189e333a04a94af0d32d02). Run on macOS with Node.js 24.22.0: npm run build, node scripts/build.mjs --check from the release commit and npm run check pass (vendor.mjs verify vendor/brand, family.mjs check . with 120 contrast pairs, 31 tests); vendor.mjs verify vendor/brand --release against the v0.12.1 checkout passes. Generated tokens differ from 0.2.4 only in the version and the provenance header. The review board does not load the controls layer, so it was not re-rendered.
0.2.4 — 25 October 2026#
Foundation re-vendored from cosmiklabs/brand v0.12.0 (5c62fc7e1bd012a89061142d87ad64947ae6edd9). Run on macOS with Node.js 24.22.0:
npm run build,node scripts/build.mjs --checkfrom the release commit andnpm run checkpass:vendor.mjs verify vendor/brand(36 files),family.mjs check .(contract,extends, outputs and 120 contrast pairs) and 31 tests;vendor.mjs verify vendor/brand --releaseagainst the v0.12.0 checkout passes.Generated tokens differ from 0.2.3 only in the version and the provenance header; the SVGs are byte-identical. The review board does not load the controls layer, so it was not re-rendered. The new toolbar, icon button and segmented controls are checked in the foundation's browser checks and in the Tectra app's viewport.
0.2.3 — 24 October 2026#
Foundation re-vendored from cosmiklabs/brand v0.11.0 (1a7d5c392dd6926eaa8625c496a707de1a4b4d1b). Run on macOS with Node.js 24.22.0:
npm run build,node scripts/build.mjs --checkfrom the release commit andnpm run checkpass:vendor.mjs verify vendor/brand(36 files),family.mjs check .(contract,extends, outputs and 120 contrast pairs) and 31 tests.Generated tokens differ from 0.2.2 only in the version and the provenance header; the SVGs are byte-identical. The review board does not load the controls layer, so it was not re-rendered. The new dense status label is checked in the foundation's browser checks.
0.2.2 — 24 October 2026#
Foundation re-vendored from cosmiklabs/brand v0.10.0 (c3bf1a7b2e34ff764a069e96c5c86ff29316f7b4). Run on macOS with Node.js 24.22.0:
npm run build,node scripts/build.mjs --checkfrom the release commit andnpm run checkpass:vendor.mjs verify vendor/brand(36 files),family.mjs check .(contract,extends, outputs and 120 contrast pairs) and 31 tests.Generated tokens differ from 0.2.1 only in the version and the provenance header; the SVGs are byte-identical. The review board does not load the controls layer, so it was not re-rendered. The changed controls are checked in the foundation's browser checks.
0.2.1 — 24 October 2026#
Foundation re-vendored from cosmiklabs/brand v0.9.1 (48afb82b1edd5f9a7ce01eedbd52b5e3484c3c69) with its vendor.mjs; the manifest moved to the shared brand and distribution shape. Run on macOS with Node.js 24.22.0:
npm run build,node scripts/build.mjs --checkfrom the release commit andnpm run checkpass:vendor.mjs verify vendor/brand(36 files),family.mjs check .(contract,extends, outputs and 120 contrast pairs) and 31 tests, including syncing a release of this repository into a scratch consumer and verifying both layers with--release.Generated tokens differ from 0.2.0 only in the version, the provenance header and the corrected
proposalstext. The ten SVGs are byte-identical. No CSS, font or specimen byte changed, so the board was not re-rendered; the split-time rendering below still applies.
Repository split — 24 October 2026#
Split from cosmiklabs/brand at v0.8.0 with the foundation vendored from tag v0.8.0 (e416514a291fb71844280f7cf1e2759d195b7a4d). No mark, palette or token value changed.
vendor.mjs verify vendor/brandpasses for 36 files, and with--releaseagainst a localcosmiklabs/brandcheckout, proving the lock against the tag.family.mjs check .passes: contract,extends, generated outputs and 120 contrast pairs. Regenerated tokens differ from v0.7.0 only in the provenance header line oftectra.css,tectra.tokens.jsonandtectra_tokens.rs;tectra.jsonis byte-identical. The ten regenerated SVGs are byte-identical.29 tests pass: the ported accessibility, asset and family-contract cases, plus vendored-lock, manifest and reference-path tests.
Rendered
specimen.htmlfrom a file URL in Chrome with the page in dark and light at 1280 and 390 CSS px. All four declared font faces (Inter 400/500/600, IBM Plex Mono 400) loaded fromvendor/brand/fonts/web/, both Latch images loaded, there was no horizontal overflow and no console or request error. The screenshots were inspected; no broken style, missing font or missing image was found.
The board-level browser regressions that cosmiklabs/brand ran (200% text, text spacing, 768/320 px, forced colours) are not ported to this repository and were not re-run here; the 23 October results below and in the reference validation stand as the last run. Actual browser zoom and assistive technology remain manual checks.
Historical source review — 17 October 2026#
Base: cosmiklabs/brand main at 24fd4bf49bc57d9af4add52aea60900a390cfb68. Owner approved the theme and publication to the brand repository on 17 October 2026. No product release or deployment is included.
Generator resolves 37 semantic roles in each mode. All 112 Tectra baseline/extension contrast pairs pass. Lowest Tectra text ratio is 4.986:1 and essential boundary ratio 3.517:1.
Full kit build and check pass: 402 contrast pairs across three kits; original baseline and HPLX output files unchanged; manifest and 11 existing asset/font tests passed at initial build (15 total tests after the accessibility additions below).
Local HTML static checks cover existing stylesheet/font references, unique IDs, internal targets, and referenced CSS variables. The review board uses no JavaScript or network resources.
Browser regression coverage was extended to three-kit selection and nested Tectra themes. Execution is blocked by the environment's Chromium process/socket permissions; those checks have not passed here. No screenshots or rendered visual acceptance are claimed.
Before consumer rollout: render the offline board in current browsers, check 320/390/768/1280 px widths and 200% text size, keyboard and forced-colour behavior, nested dark/light scoping, and real consumer examples. Run BRAND_BROWSER=<browser> node scripts/check-browser.mjs in an environment that supports Chromium. Product-specific accessibility remains separate.
The angle-only Latch symbol and matching outlined Inter lockup were added after owner approval on 17 October 2026. Exact source paths are regression-tested. Optical icons, banners, print proofs and consumer rollout are not included; rendered accessibility QA remains pending.
Positioning update#
Public copy leads with creative benefits and intended workflow. Implementation architecture and repository plans are excluded. Pricing, access and launch claims require separate approval; no workflow completion is asserted. Palette and interface rules are unchanged.
Accessibility review and fixes — 17 October 2026#
A second, independent source reviewer audited the palette and preview. This review uses WCAG 2.2 criteria as a reference; it is not a WCAG conformance certification. The palette and font families did not need replacement. No parent Cosmik or HPLX token changed.
Measured colour results#
All 112 Tectra contrast pairs pass. Ratios below are displayed to three decimals; pass/fail uses unrounded values.
| Pair | Dark | Light |
|---|---|---|
| Main text / page | 16.281:1 | 14.033:1 |
| Muted text / raised surface (weakest text pair) | 7.221:1 | 4.986:1 |
| Primary button text / normal | 10.467:1 | 6.382:1 |
| Primary button text / hover | 12.430:1 | 7.987:1 |
| Primary button text / pressed | 7.329:1 | 10.033:1 |
| Essential border / raised surface | 4.614:1 | 3.517:1 |
| Focus / raised surface | 7.843:1 | 5.195:1 |
Checks cover text/link states, primary/secondary action states, selection, input/placeholder, disabled and neutral status roles, focus, boundaries and accent. Additional tests check illustration strokes against both diagram fills. Decorative dividers and swatch fills are not presented as readable text or sole information cues. Labels name swatches; relationship information has text, nodes and dashed/solid lines, rather than relying on hue.
Typography and layout fixes#
Replaced 12-unit SVG labels, which could shrink to about 5.6 CSS px on a narrow screen, with wrapping HTML legends at the inherited 14 px label size. Text now responds to root-size and user text-spacing changes. SVG title/description agrees with the visible legend.
Raised 12 px palette-code and status labels to 14 px. Body remains 17 px / 1.55, controls 15 px / 1.4, labels 14 px / 1.5, and headings Inter 600. No thin font weights or new typeface required. These sizes are readability choices, not a claim that WCAG specifies a minimum font size.
Removed nonwrapping draft text and allowed flex rows to wrap, with bounded children and no fixed text-container heights. Reading copy is bounded by the inherited 65-character measure.
Preserved the 44 px minimum control height and added the same minimum width. Added a skip link and retained the visible 2 px focus outline with 2 px offset.
Added explicit pressed styles, system-colour forced-colours treatment and non-scaling diagram strokes; kept reduced-motion suppression. No motion is required to understand the board.
Verified and outstanding#
Verified: full generation; all 402 kit contrast checks; manifest hashes; 15 regression tests (11 existing plus four Tectra accessibility/source tests); static IDs, links, font references and CSS-variable checks; JavaScript syntax and diff whitespace checks. The colour ratios and source safeguards above were inspected/calculated, not inferred from screenshots.
The browser suite now explicitly navigates to specimens/tectra.html after the component tests. It includes 1280/768/390/320 CSS-pixel viewports at 100% and 200% root text size, each with standard and WCAG text-spacing overrides (line height 1.5, paragraph spacing 2em, letter spacing .12em, word spacing .16em), target bounds, focus and forced-colours checks. These new browser checks are written but not executed successfully here because Chromium cannot create its process socket. A 320 CSS-pixel viewport models the reflow width at 400% zoom on a 1280-pixel window; it does not establish actual browser-zoom behavior. Actual 200% text, 400% browser zoom, keyboard order/visibility, screen-reader output, forced colours and cross-browser rendering remain manual acceptance checks. The earlier cloud-browser preview was also unreachable; no rendered QA is claimed.
Primary references consulted#
WCAG 2.2 1.4.3 Contrast (Minimum): normal text 4.5:1; large text 3:1.
1.4.11 Non-text Contrast: essential graphics/control cues 3:1 against adjacent colours.
1.4.1 Use of Color: meaning must not depend solely on colour.
1.4.4 Resize Text, 1.4.10 Reflow, and 1.4.12 Text Spacing: preserve content/function with resizing, narrow viewport and specified user spacing.
2.5.8 Target Size (Minimum): AA 24 CSS-pixel target minimum with exceptions; this board uses the stronger inherited 44 px control dimension.
2.4.13 Focus Appearance: AAA focus guidance, not an AA requirement or a claim of AAA compliance.