Mirror av ms-ai-architect playground-arkitektur, tilpasset llm-security:
- 4 overflater (onboarding/home/catalog/project) med surface-router
- IndexedDB persistens (llm-security-playground-v1) + localStorage fallback
- Theme-bootstrap med FOUC-prevention og localStorage-persist
- 20 kommandoer i CATALOG (5 kategorier: discover/posture/findings-ops/
hardening/adversarial/mcp-ops) med full input_fields + report_archetype
- 5-gruppers onboarding (organisasjon/scope/profil/plattform/compliance)
med form-progress sidebar
- Home: 3 tracks + fleet-grid prosjektliste + tom-state med demo-data
- Katalog: ekspanderbare grupper med live-søk og forhåndsvisning
- Prosjekt-stub: 4 screen-tabs + 6 kategori-tabs + per-kommando
skjema/paste-import/rapport-soner
- Demo-state: Direktoratet for digital tjenesteutvikling med 2 prosjekter
- Eksport/import (JSON envelope), action-handlers (35), modal-portal
PARSERS + RENDERERS er tomme routing-objekter — fylles i Fase 2 (10 høy-prio
kommandoer) og Fase 3 (resterende 10). Paste-import viser «parser ikke
implementert»-guide-panel for kommandoer uten parser, og lagrer rå markdown
i state for fremtidig parsing.
Vendor: 27 filer synket fra shared/playground-design-system/
(MANIFEST.json sjekksum-låst, source_commit 487f7ae).
Verifisert: node --check OK (2737 linjer, 113733 char inline JS),
HTML-tag-balanse OK. Manuell smoke-test gjenstår.
Docs (plugin README, CLAUDE.md, rot-README) bumpes ved Fase 3-fullføring
sammen med plugin.json v7.5.0. Derfor [skip-docs] her.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
5.1 KiB
playground-design-system — CHANGELOG
0.3.0 — 2026-05-04
Added — Playground/report-page foundation primitives (sections 13-25 in tier3-supplement)
Generiske mønstre som tidligere ble definert inline i plugin-playgrounds (først i ms-ai-architect v1.10) er hoisted hit slik at alle 5 plugin-konsumenter (ms-ai-architect, okr, llm-security, ultraplan-local, config-audit) kan dele samme vokabular og visuelle profil.
.eyebrowutility — uppercase 11px monospace label med 0.08em letter-spacing. Bruk over seksjons-titler..page__*page-shell (.page__header,.page__header-main,.page__header-aside,.page__eyebrow,.page__title,.page__lede,.page__meta) — standard rapport-side-header med eyebrow → h1 → lede → meta + verdict-slot side-by-side. Responsiv: kollapser til én kolonne under 720px..key-stats/.key-stat— 2-5-kolonne responsivt grid av store tall-metrikker.font-variant-numeric: tabular-nums,font-size-2xlbold. Severity-modifiers (.key-stat--critical/high/medium/low/positive/info) tinter value-fargen..verdict-pill-lg5-band utvidelse — eksisterende.verdict-pill-lgaksepterer nå alle 5 severity-bånd:critical/extreme/high/medium/low/positive+ neutraln-a/info/neutral. Bakoverkompatibel med eksisterendeblock/warning/allow..tab-list/.tab/.tab-panel— generisk faneflate-komponent. ARIA-paritet:role="tablist",role="tab",aria-current="true"..tab__countfor badge-tall,.tab-panel[hidden]for skjuling..top-risks/.top-risk[data-severity]— severity-ordnet liste over topp-risikoer med rank/desc/score-kolonner. Severity-attribut driver venstre-border + score-pill-bakgrunn..recommendation-card[data-severity]— emphasized advisory-callout med label + body. 6 severity-modifiers..card__*subkomponenter — komponerbare tillegg til eksisterende.card(base.css):.card__head,.card__title,.card__desc,.card__id,.card__meta,.card__hint,.card__actions,.card__pill. Pluss.card--severity-{level}for 4px venstre-border-modifier.- Form patterns —
.field-row(vertikal flex),.field-label(medium weight),.field-help(xs tertiary),.required-mark(severity-critical asterisk),.multi-select(fieldset reset),.checkbox-row(inline-flex med hover). Mirrors Aksel/Digdir form-konvensjoner. - Section-spacing utilities —
.stack-lg(margin-block: var(--space-8)),.stack-md(var(--space-5)),.stack-sm(var(--space-3)). Anvendes på parent for å gi konsistent vertikal rytme mellom barn-elementer. .pyramide-tier-detail— utvidbar<details>-blokk under.pyramide-visualisering. Custom chevron, ingen native marker. Brukes av AI Act-klassifiserings-renderer..scenario-card-grid/.scenario-card[data-status="winner"]— auto-fit grid (minmax 240px) av scenario/alternativ-cards. Vinnerstatus får success-tinted bakgrunn + grønn count-pill..app-shell/.app-shell--wide/.app-shell--narrow— sentralisert max-width page-wrapper. 1200/1400/880px varianter.
Notes for vendor consumers
Versjon 0.3.0 er rent additiv — ingen eksisterende selector er endret eller fjernet. Alle eksisterende klasser (.btn, .card, .expansion, .kanban-*, .mat-ladder, .read-more, .suppressed, .pair-before-after, .verdict-pill-lg osv.) fungerer uendret.
For å adoptere v0.3:
- Re-sync via
node scripts/sync-design-system.mjs <plugin-name>(kreves--forcehvis eksisterende drift) - Oppdater plugin HTML til å bruke nye klasser i stedet for inline CSS
- Andre plugins kan vente med adopsjon — eksisterende DS-bruk fortsetter å fungere
Førsteadopter: ms-ai-architect v1.11.0 (planlagt 2026-05-04).
0.2.0 — 2026-05-04
Added
[data-theme="light"]-blokk itokens.css(Aksel-aligned, WCAG AA-validert). Full mirror av dark-blokken (26 vars) — alle theme-overridable tokens som finnes i dark-blokken finnes nå også i light-blokken, slik at renderers ikke faller gjennom til udefinerte verdier ved theme-switch.color-schemeCSS-property satt eksplisitt på:root,[data-theme="light"]og[data-theme="dark"]for korrekt native form-controls/scrollbar-styling.
Notes for vendor consumers
Andre plugins som vendrer design-systemet
(okr, llm-security, ultraplan-local, config-audit) får tilgang til
light-tokens etter neste re-sync. Adopsjon er valgfri — eksisterende dark-only
oppførsel er bakoverkompatibel siden ingen eksisterende verdi er endret.
For å adoptere light-mode i en konsument:
- Re-sync via
node scripts/sync-design-system.mjs <plugin-name> - Legg til en synkron
<script>-IIFE i<head>før CSS-load som leserlocalStorageog setterdata-theme+colorSchemepådocumentElement. - Eksponere theme-toggle i UI som setter
documentElement.dataset.theme+ persisterer ilocalStorage.
0.1.0 — 2026-04 (initial)
- Tier 1+2+3 design-system med Aksel/Digdir-aligned tokens, base, components.
- Dark mode default +
[data-theme="dark"]-overrides. - Self-hosted Inter, JetBrains Mono, Source Serif 4 fonts.
- Schemas for renderers + commands.