@cyberskill/design 2.7.0 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DESIGN.md +8 -8
- package/README.md +15 -9
- package/SECURITY.md +4 -4
- package/SKILL.md +1 -1
- package/THIRD-PARTY-NOTICES.md +1 -1
- package/VERSION +1 -1
- package/_ds_bundle.js +2 -2
- package/_ds_bundle.js.map +1 -1
- package/_ds_manifest.json +210 -200
- package/_esm/cs.mjs +2 -2
- package/base/a11y.css +18 -2
- package/base/ai.css +2 -2
- package/base/collections.css +6 -2
- package/base/components.css +107 -20
- package/base/controls.css +59 -31
- package/base/data.css +17 -5
- package/base/feedback.css +8 -0
- package/base/forms.css +7 -4
- package/base/glass.css +95 -0
- package/base/navigation.css +9 -1
- package/base/responsive.css +9 -4
- package/components/contracts.json +202 -62
- package/components/css-index.json +145 -41
- package/components/data/data.card.html +1 -1
- package/components/prompt-api.json +2 -2
- package/components/release-compatibility.json +1 -1
- package/components/specifications.json +204 -64
- package/components/static-html-reference.json +20 -20
- package/dist/esm/build.json +1 -1
- package/dist/styles.css +389 -89
- package/dist/styles.min.css +1 -1
- package/docs/UPSTREAM.md +3 -6
- package/docs/benchmark-rubric.md +1 -1
- package/docs/browser-support.md +1 -1
- package/docs/component-api.md +1 -1
- package/docs/consuming.md +1 -1
- package/docs/contrast-report.md +8 -8
- package/docs/conventions.md +5 -5
- package/docs/decisions.md +3 -3
- package/docs/deploy.md +2 -2
- package/docs/design-styles.md +9 -8
- package/docs/doctrine.md +1 -1
- package/docs/four-axes.md +3 -3
- package/docs/quality-gates.md +3 -1
- package/docs/reference-catalog.json +59 -59
- package/docs/release-notes.md +30 -2
- package/docs/static-html-reference.md +18 -18
- package/docs/storybook.md +1 -1
- package/docs/template-inventory.json +35 -35
- package/docs/vi/UPSTREAM.md +3 -6
- package/docs/vi/benchmark-rubric.md +1 -1
- package/docs/vi/browser-support.md +1 -1
- package/docs/vi/component-api.md +1 -1
- package/docs/vi/consuming.md +1 -1
- package/docs/vi/contrast-report.md +8 -8
- package/docs/vi/conventions.md +5 -5
- package/docs/vi/decisions.md +3 -3
- package/docs/vi/deploy.md +2 -2
- package/docs/vi/design-styles.md +9 -8
- package/docs/vi/doctrine.md +1 -1
- package/docs/vi/entrypoints/CONTRIBUTING.md +9 -2
- package/docs/vi/entrypoints/DESIGN.md +8 -8
- package/docs/vi/entrypoints/README.md +15 -9
- package/docs/vi/entrypoints/SKILL.md +1 -1
- package/docs/vi/entrypoints/llms.txt +1 -1
- package/docs/vi/four-axes.md +3 -3
- package/docs/vi/quality-gates.md +3 -1
- package/docs/vi/release-notes.md +30 -2
- package/docs/vi/static-html-reference.md +18 -18
- package/docs/vi/storybook.md +1 -1
- package/guidance/agent-contract.json +3 -3
- package/guidelines/atomic-view.html +7 -7
- package/guidelines/brand-imagery.html +1 -1
- package/guidelines/colors-surfaces.html +4 -4
- package/guidelines/colors-text.html +4 -4
- package/guidelines/elements-components.html +3 -3
- package/guidelines/elements-concept.html +1 -1
- package/guidelines/guideline-language.js +1 -1
- package/guidelines/motion.html +4 -4
- package/guidelines/responsive-bilingual.html +4 -4
- package/llms.txt +1 -1
- package/package.json +11 -10
- package/styles/components/manifest.json +184 -140
- package/styles.layered.css +245 -59
- package/styles.layered.provenance.json +16 -16
- package/templates/_vendor/doc-export.js +8 -1
- package/templates/ai-cluster-demo.html +2 -2
- package/templates/app-shell/AppShell.dc.html +2 -2
- package/templates/bod-deck/BodDeck.dc.html +3 -3
- package/templates/bod-investor-update/BodInvestorUpdate.dc.html +1 -1
- package/templates/dashboard/Dashboard.dc.html +2 -2
- package/templates/delivery-qbr-deck/DeliveryQbrDeck.dc.html +2 -2
- package/templates/delivery-status-email/DeliveryStatusEmail.dc.html +1 -1
- package/templates/email/Email-VN-standalone.html +2 -2
- package/templates/email-safe/email-announcement.html +5 -5
- package/templates/email-safe/email-dunning.html +5 -5
- package/templates/email-safe/email-investor.html +5 -5
- package/templates/email-safe/email-launch.html +5 -5
- package/templates/email-safe/email-newsletter.html +6 -6
- package/templates/email-safe/email-status.html +5 -5
- package/templates/email-safe/email-transactional.html +5 -5
- package/templates/kitchen-sink.html +10 -6
- package/templates/marketing-newsletter/MarketingNewsletter.dc.html +4 -4
- package/templates/marketing-page/MarketingPage.dc.html +4 -2
- package/templates/playground.html +5 -4
- package/templates/sales-proposal-deck/SalesProposalDeck.dc.html +5 -5
- package/tokens/colors.css +1 -1
- package/tokens/declarations.json +1851 -1355
- package/tokens/element-seeds.json +1 -1
- package/tokens/elements.css +40 -10
- package/tokens/elevation.css +2 -2
- package/tokens/modes/dark__default__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__default__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__default__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__default__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-lava__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-lava__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-lava__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-plasma__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-plasma__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim-steel__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim-steel__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim-steel__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim-steel__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim-titanium__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim-titanium__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim-titanium__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc-bamboo__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc-bamboo__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc-forest__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc-forest__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc-forest__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc-forest__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho-clay__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho-clay__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho-clay__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho-clay__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho-sand__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho-sand__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho-sand__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho-sand__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-mist__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-mist__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-mist__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-ocean__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-ocean__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy__compact__standard.dtcg.json +1 -1
- package/tokens/modes/index.json +275 -275
- package/tokens/modes/light__default__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__default__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__default__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__default__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa-lava__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa-lava__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa-lava__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa-lava__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa-plasma__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa-plasma__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa-plasma__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim-steel__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__kim-steel__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim-steel__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__kim-steel__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim-titanium__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__kim-titanium__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim-titanium__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__kim-titanium__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__kim__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__kim__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc-bamboo__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc-bamboo__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__moc-bamboo__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc-forest__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__moc-forest__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc-forest__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__moc-forest__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__moc__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__moc__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho-clay__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__tho-clay__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho-clay__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__tho-clay__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho-sand__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__tho-sand__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho-sand__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__tho-sand__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__tho__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__tho__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy-mist__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy-mist__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy-mist__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy-mist__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy-ocean__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy-ocean__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy-ocean__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__default__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__default__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__default__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__default__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-lava__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-lava__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-lava__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-plasma__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-plasma__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-steel__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-steel__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-steel__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-steel__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-titanium__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-titanium__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-titanium__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-bamboo__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-bamboo__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-forest__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-forest__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-forest__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-forest__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-clay__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-clay__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-clay__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-clay__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-sand__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-sand__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-sand__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-sand__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-mist__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-mist__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-mist__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-ocean__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-ocean__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__default__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__default__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__default__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__default__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-lava__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-lava__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-lava__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-lava__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-plasma__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-plasma__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-plasma__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-steel__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-steel__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-steel__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-steel__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-titanium__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-titanium__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-titanium__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-titanium__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-bamboo__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-bamboo__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-bamboo__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-forest__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-forest__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-forest__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-forest__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-clay__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-clay__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-clay__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-clay__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-sand__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-sand__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-sand__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-sand__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-mist__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-mist__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-mist__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-mist__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-ocean__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-ocean__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-ocean__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy__compact__standard.dtcg.json +1 -1
- package/tokens/native/CSModes.kt +129 -125
- package/tokens/native/CSModes.swift +129 -125
- package/tokens/native/CSTokens.kt +8 -8
- package/tokens/native/CSTokens.swift +8 -8
- package/tokens/native/cs_modes.dart +129 -125
- package/tokens/native/cs_tokens.dart +8 -8
- package/tokens/native/mode-provenance.json +11 -11
- package/tokens/provenance.json +6 -6
- package/tokens/styles.css +8 -4
- package/tokens/tokens.dtcg.json +26 -26
- package/tokens/tokens.js +12 -12
- package/tokens/tokens.json +11 -11
- package/tokens/variables.css +48 -15
- package/tokens/viewer.html +1 -0
- package/ui_kits/status-hub/login.html +3 -3
- package/ui_kits/status-hub/project.html +4 -6
- package/ui_kits/status-hub/settings.html +2 -3
- package/ui_kits/status-hub/status.css +24 -15
- package/ui_kits/website/careers.html +10 -17
- package/ui_kits/website/chat.html +14 -3
- package/ui_kits/website/site.css +21 -21
- package/ui_kits/website/work.html +4 -10
package/tokens/variables.css
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
--cs-color-text-primary: #45210E;
|
|
9
9
|
--cs-color-text-inverse: #FFFFFF;
|
|
10
10
|
--cs-color-text-accent: #6E3B0E;
|
|
11
|
-
--cs-color-text-muted: #
|
|
11
|
+
--cs-color-text-muted: #5E4436;
|
|
12
12
|
--cs-color-semantic-success: #166534;
|
|
13
13
|
--cs-color-semantic-danger: #B42318;
|
|
14
14
|
--cs-color-semantic-warning: #92400E;
|
|
@@ -176,9 +176,9 @@
|
|
|
176
176
|
--cs-glass-heavy-blur: 24px; --cs-glass-heavy-saturate: 180%; --cs-glass-heavy-opacity: 90%;
|
|
177
177
|
--cs-shadow-xs: 0 1px 2px rgba(69, 33, 14, 0.06);
|
|
178
178
|
--cs-shadow-sm: 0 1px 3px rgba(69, 33, 14, 0.04), 0 8px 24px rgba(69, 33, 14, 0.06);
|
|
179
|
-
--cs-shadow-md: 0 12px 30px rgba(
|
|
179
|
+
--cs-shadow-md: 0 12px 30px rgba(69, 33, 14, 0.14);
|
|
180
180
|
--cs-shadow-lg: 0 20px 60px rgba(69, 33, 14, 0.18);
|
|
181
|
-
--cs-shadow-xl: 0 24px 80px rgba(
|
|
181
|
+
--cs-shadow-xl: 0 24px 80px rgba(69, 33, 14, 0.24);
|
|
182
182
|
}
|
|
183
183
|
[data-theme="dark"] {
|
|
184
184
|
--cs-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.40);
|
|
@@ -278,7 +278,7 @@
|
|
|
278
278
|
/* Source: tokens/elements.css */
|
|
279
279
|
:root {
|
|
280
280
|
--cs-accent: #F4BA17;
|
|
281
|
-
--cs-accent-strong: #
|
|
281
|
+
--cs-accent-strong: #A4631E;
|
|
282
282
|
--cs-accent-bright: #F4BA17;
|
|
283
283
|
--cs-accent-on: #45210E;
|
|
284
284
|
--cs-accent-on-strong: #FFFFFF;
|
|
@@ -305,7 +305,7 @@
|
|
|
305
305
|
--_cs-dark-color-text-inverse: #1a1108;
|
|
306
306
|
--_cs-light-color-text-accent: #6E3B0E;
|
|
307
307
|
--_cs-dark-color-text-accent: #FECD5D;
|
|
308
|
-
--_cs-light-color-text-muted: #
|
|
308
|
+
--_cs-light-color-text-muted: #5E4436;
|
|
309
309
|
--_cs-dark-color-text-muted: #E9D6C2;
|
|
310
310
|
--_cs-light-color-semantic-success: #166534;
|
|
311
311
|
--_cs-dark-color-semantic-success: #4ADE80;
|
|
@@ -357,16 +357,16 @@
|
|
|
357
357
|
--_cs-dark-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.40);
|
|
358
358
|
--_cs-light-shadow-sm: 0 1px 3px rgba(69, 33, 14, 0.04), 0 8px 24px rgba(69, 33, 14, 0.06);
|
|
359
359
|
--_cs-dark-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.34), 0 8px 24px rgba(0, 0, 0, 0.42);
|
|
360
|
-
--_cs-light-shadow-md: 0 12px 30px rgba(
|
|
360
|
+
--_cs-light-shadow-md: 0 12px 30px rgba(69, 33, 14, 0.14);
|
|
361
361
|
--_cs-dark-shadow-md: 0 12px 30px rgba(0, 0, 0, 0.50);
|
|
362
362
|
--_cs-light-shadow-lg: 0 20px 60px rgba(69, 33, 14, 0.18);
|
|
363
363
|
--_cs-dark-shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.55);
|
|
364
|
-
--_cs-light-shadow-xl: 0 24px 80px rgba(
|
|
364
|
+
--_cs-light-shadow-xl: 0 24px 80px rgba(69, 33, 14, 0.24);
|
|
365
365
|
--_cs-dark-shadow-xl: 0 24px 80px rgba(0, 0, 0, 0.62);
|
|
366
366
|
--_cs-light-accent: #F4BA17;
|
|
367
367
|
--_cs-dark-accent: #F4BA17;
|
|
368
|
-
--_cs-light-accent-strong: #
|
|
369
|
-
--_cs-dark-accent-strong: #
|
|
368
|
+
--_cs-light-accent-strong: #A4631E;
|
|
369
|
+
--_cs-dark-accent-strong: #A4631E;
|
|
370
370
|
--_cs-light-accent-bright: #F4BA17;
|
|
371
371
|
--_cs-dark-accent-bright: #F4BA17;
|
|
372
372
|
--_cs-light-accent-on: #45210E;
|
|
@@ -421,6 +421,8 @@
|
|
|
421
421
|
--_cs-dark-color-text-accent: #F9E5AE;
|
|
422
422
|
--_cs-light-color-link: #695300;
|
|
423
423
|
--_cs-dark-color-link: #F9E5AE;
|
|
424
|
+
--_cs-light-color-text-muted: #5E4436;
|
|
425
|
+
--_cs-dark-color-text-muted: #EBD8C4;
|
|
424
426
|
--_cs-light-color-link-hover: #45210E;
|
|
425
427
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
426
428
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -439,8 +441,8 @@
|
|
|
439
441
|
[data-cs-element="tho"] {
|
|
440
442
|
--_cs-light-accent: #F4BA17;
|
|
441
443
|
--_cs-dark-accent: #E9B321;
|
|
442
|
-
--_cs-light-accent-strong: #
|
|
443
|
-
--_cs-dark-accent-strong: #
|
|
444
|
+
--_cs-light-accent-strong: #A4631E;
|
|
445
|
+
--_cs-dark-accent-strong: #7D480C;
|
|
444
446
|
--_cs-light-accent-bright: #F4BA17;
|
|
445
447
|
--_cs-dark-accent-bright: #FDD378;
|
|
446
448
|
--_cs-light-accent-on: #45210E;
|
|
@@ -459,8 +461,10 @@
|
|
|
459
461
|
--_cs-dark-accent-grad-b: #C4B78F;
|
|
460
462
|
--_cs-light-color-text-accent: #6E3B0E;
|
|
461
463
|
--_cs-dark-color-text-accent: #FFD57A;
|
|
462
|
-
--_cs-light-color-link: #
|
|
464
|
+
--_cs-light-color-link: #744000;
|
|
463
465
|
--_cs-dark-color-link: #FFD57A;
|
|
466
|
+
--_cs-light-color-text-muted: #5E4436;
|
|
467
|
+
--_cs-dark-color-text-muted: #E9D6C2;
|
|
464
468
|
--_cs-light-color-link-hover: #45210E;
|
|
465
469
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
466
470
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -472,7 +476,7 @@
|
|
|
472
476
|
--_cs-light-color-border-default: color-mix(in oklab, var(--_cs-light-accent) 40%, #E7D9C6);
|
|
473
477
|
--_cs-dark-color-border-default: color-mix(in oklab, var(--_cs-dark-accent) 40%, #4a3a2c);
|
|
474
478
|
--_cs-light-component-button-primary-bg: #45210E;
|
|
475
|
-
--_cs-dark-component-button-primary-bg: #
|
|
479
|
+
--_cs-dark-component-button-primary-bg: #7D480C;
|
|
476
480
|
--_cs-light-component-button-primary-fg: #FFFFFF;
|
|
477
481
|
--_cs-dark-component-button-primary-fg: #FFFFFF;
|
|
478
482
|
}
|
|
@@ -501,6 +505,8 @@
|
|
|
501
505
|
--_cs-dark-color-text-accent: #FFD2AF;
|
|
502
506
|
--_cs-light-color-link: #462402;
|
|
503
507
|
--_cs-dark-color-link: #FFD2AF;
|
|
508
|
+
--_cs-light-color-text-muted: #442B1E;
|
|
509
|
+
--_cs-dark-color-text-muted: #E9D6C2;
|
|
504
510
|
--_cs-light-color-link-hover: #45210E;
|
|
505
511
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
506
512
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -541,6 +547,8 @@
|
|
|
541
547
|
--_cs-dark-color-text-accent: #FDDDDE;
|
|
542
548
|
--_cs-light-color-link: #714B4D;
|
|
543
549
|
--_cs-dark-color-link: #FDDDDE;
|
|
550
|
+
--_cs-light-color-text-muted: #5E4436;
|
|
551
|
+
--_cs-dark-color-text-muted: #E9D6C2;
|
|
544
552
|
--_cs-light-color-link-hover: #45210E;
|
|
545
553
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
546
554
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -581,6 +589,8 @@
|
|
|
581
589
|
--_cs-dark-color-text-accent: #FFD1BA;
|
|
582
590
|
--_cs-light-color-link: #793609;
|
|
583
591
|
--_cs-dark-color-link: #FFD1BA;
|
|
592
|
+
--_cs-light-color-text-muted: #5E4436;
|
|
593
|
+
--_cs-dark-color-text-muted: #E9D6C2;
|
|
584
594
|
--_cs-light-color-link-hover: #45210E;
|
|
585
595
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
586
596
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -621,6 +631,8 @@
|
|
|
621
631
|
--_cs-dark-color-text-accent: #FDD0CA;
|
|
622
632
|
--_cs-light-color-link: #550306;
|
|
623
633
|
--_cs-dark-color-link: #FDD0CA;
|
|
634
|
+
--_cs-light-color-text-muted: #422A1D;
|
|
635
|
+
--_cs-dark-color-text-muted: #E9D6C2;
|
|
624
636
|
--_cs-light-color-link-hover: #45210E;
|
|
625
637
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
626
638
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -661,6 +673,8 @@
|
|
|
661
673
|
--_cs-dark-color-text-accent: #A6F8F6;
|
|
662
674
|
--_cs-light-color-link: #116060;
|
|
663
675
|
--_cs-dark-color-link: #A6F8F6;
|
|
676
|
+
--_cs-light-color-text-muted: #5E4436;
|
|
677
|
+
--_cs-dark-color-text-muted: #EBD8C4;
|
|
664
678
|
--_cs-light-color-link-hover: #45210E;
|
|
665
679
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
666
680
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -701,6 +715,8 @@
|
|
|
701
715
|
--_cs-dark-color-text-accent: #79EDFF;
|
|
702
716
|
--_cs-light-color-link: #0D535C;
|
|
703
717
|
--_cs-dark-color-link: #79EDFF;
|
|
718
|
+
--_cs-light-color-text-muted: #5E4436;
|
|
719
|
+
--_cs-dark-color-text-muted: #E9D6C2;
|
|
704
720
|
--_cs-light-color-link-hover: #45210E;
|
|
705
721
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
706
722
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -741,6 +757,8 @@
|
|
|
741
757
|
--_cs-dark-color-text-accent: #AFE2FA;
|
|
742
758
|
--_cs-light-color-link: #003142;
|
|
743
759
|
--_cs-dark-color-link: #AFE2FA;
|
|
760
|
+
--_cs-light-color-text-muted: #452D1F;
|
|
761
|
+
--_cs-dark-color-text-muted: #E9D6C2;
|
|
744
762
|
--_cs-light-color-link-hover: #45210E;
|
|
745
763
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
746
764
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -781,6 +799,8 @@
|
|
|
781
799
|
--_cs-dark-color-text-accent: #DCF0B1;
|
|
782
800
|
--_cs-light-color-link: #4A5B02;
|
|
783
801
|
--_cs-dark-color-link: #DCF0B1;
|
|
802
|
+
--_cs-light-color-text-muted: #5E4436;
|
|
803
|
+
--_cs-dark-color-text-muted: #EBD8C4;
|
|
784
804
|
--_cs-light-color-link-hover: #45210E;
|
|
785
805
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
786
806
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -821,6 +841,8 @@
|
|
|
821
841
|
--_cs-dark-color-text-accent: #B2EC9E;
|
|
822
842
|
--_cs-light-color-link: #24570B;
|
|
823
843
|
--_cs-dark-color-link: #B2EC9E;
|
|
844
|
+
--_cs-light-color-text-muted: #5E4436;
|
|
845
|
+
--_cs-dark-color-text-muted: #E9D6C2;
|
|
824
846
|
--_cs-light-color-link-hover: #45210E;
|
|
825
847
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
826
848
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -861,6 +883,8 @@
|
|
|
861
883
|
--_cs-dark-color-text-accent: #B0E7C3;
|
|
862
884
|
--_cs-light-color-link: #04361D;
|
|
863
885
|
--_cs-dark-color-link: #B0E7C3;
|
|
886
|
+
--_cs-light-color-text-muted: #452D1F;
|
|
887
|
+
--_cs-dark-color-text-muted: #E9D6C2;
|
|
864
888
|
--_cs-light-color-link-hover: #45210E;
|
|
865
889
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
866
890
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -901,6 +925,8 @@
|
|
|
901
925
|
--_cs-dark-color-text-accent: #D6E9FD;
|
|
902
926
|
--_cs-light-color-link: #3D5670;
|
|
903
927
|
--_cs-dark-color-link: #D6E9FD;
|
|
928
|
+
--_cs-light-color-text-muted: #5E4436;
|
|
929
|
+
--_cs-dark-color-text-muted: #EBD8C4;
|
|
904
930
|
--_cs-light-color-link-hover: #45210E;
|
|
905
931
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
906
932
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -941,6 +967,8 @@
|
|
|
941
967
|
--_cs-dark-color-text-accent: #E5DBBA;
|
|
942
968
|
--_cs-light-color-link: #564B27;
|
|
943
969
|
--_cs-dark-color-link: #E5DBBA;
|
|
970
|
+
--_cs-light-color-text-muted: #5E4436;
|
|
971
|
+
--_cs-dark-color-text-muted: #E9D6C2;
|
|
944
972
|
--_cs-light-color-link-hover: #45210E;
|
|
945
973
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
946
974
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -981,6 +1009,8 @@
|
|
|
981
1009
|
--_cs-dark-color-text-accent: #C8DBFD;
|
|
982
1010
|
--_cs-light-color-link: #1B2E4C;
|
|
983
1011
|
--_cs-dark-color-link: #C8DBFD;
|
|
1012
|
+
--_cs-light-color-text-muted: #442B1E;
|
|
1013
|
+
--_cs-dark-color-text-muted: #E9D6C2;
|
|
984
1014
|
--_cs-light-color-link-hover: #45210E;
|
|
985
1015
|
--_cs-dark-color-link-hover: #f5ead9;
|
|
986
1016
|
--_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
|
|
@@ -1052,6 +1082,9 @@
|
|
|
1052
1082
|
[data-cs-style="liquid-glass"] {
|
|
1053
1083
|
--cs-style-pack: liquid-glass;
|
|
1054
1084
|
}
|
|
1085
|
+
[data-cs-style="matte-paper"] {
|
|
1086
|
+
--cs-style-pack: matte-paper;
|
|
1087
|
+
}
|
|
1055
1088
|
/* Source: tokens/theme-attributes.css */
|
|
1056
1089
|
:root {
|
|
1057
1090
|
--cs-density-space-1: var(--cs-space-1);
|
|
@@ -1166,14 +1199,14 @@
|
|
|
1166
1199
|
--cs-term-dot: #5b4331;
|
|
1167
1200
|
--cs-term-bg: #1a1108;
|
|
1168
1201
|
--cs-term-fg: #f5ead9;
|
|
1169
|
-
--cs-term-muted: #
|
|
1202
|
+
--cs-term-muted: #e9d6c2;
|
|
1170
1203
|
}
|
|
1171
1204
|
/* Source: base/collections.css */
|
|
1172
1205
|
.cs-code {
|
|
1173
1206
|
--cs-code-bg: #2b1e14;
|
|
1174
1207
|
--cs-code-fg: #f5ead9;
|
|
1175
1208
|
--cs-code-border: #4a3a2c;
|
|
1176
|
-
--cs-code-muted: #
|
|
1209
|
+
--cs-code-muted: #e9d6c2;
|
|
1177
1210
|
}
|
|
1178
1211
|
/* Source: base/shell.css */
|
|
1179
1212
|
/* Source: base/glass.css */
|
package/tokens/viewer.html
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
.chips button[aria-pressed="true"]{background:var(--_cs-light,var(--cs-color-brand-umber)) var(--_cs-dark,var(--cs-color-brand-ochre));color:var(--_cs-light,var(--cs-color-text-inverse)) var(--_cs-dark,var(--cs-color-brand-umber));border-color:var(--_cs-light,var(--cs-color-brand-umber)) var(--_cs-dark,var(--cs-color-brand-ochre))}
|
|
25
25
|
.chips :is(.n,.num){font-family:var(--cs-font-family-mono);font-size:12px;opacity:.85;margin-inline-start:4px}
|
|
26
26
|
.panel{flex:1;min-height:0;min-width:0;max-width:100%;overflow:auto}
|
|
27
|
+
#tablePanel{padding-block-end:20px}
|
|
27
28
|
.panel.hide{display:none}
|
|
28
29
|
table{width:100%;border-collapse:collapse;font-size:13px}
|
|
29
30
|
th,td{text-align:start;padding:8px 12px;border-block-end:1px solid var(--cs-color-border-default);vertical-align:top}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
.fine { text-align: center; font-size: 13px; color: var(--cs-color-text-muted); margin-top: 4px; }
|
|
30
30
|
.state-bar { max-width: calc(100% - 96px); position: fixed; left: 20px; bottom: 20px; z-index: 60; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 10px 12px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border-radius: 12px; box-shadow: var(--cs-shadow-xs); font-size: 13px; }
|
|
31
31
|
.state-bar label { flex-wrap: wrap; display: flex; align-items: center; gap: 6px; color: var(--cs-color-text-muted); }
|
|
32
|
-
.state-bar select { font: inherit; }
|
|
32
|
+
.state-bar select { font: inherit; border: 1px solid var(--cs-component-textfield-border-default, var(--cs-color-border-default)); border-radius: var(--cs-radius-sm); background: var(--cs-color-surface-page); color: var(--cs-color-text-primary); padding: 4px 8px; }
|
|
33
33
|
[hidden] { display: none !important; }
|
|
34
34
|
@media (max-width: 820px) { .state-bar { position: static; margin: 0 76px 20px 20px; } .login { grid-template-columns: minmax(0, 1fr); } .pane-brand { display: none; } }
|
|
35
35
|
</style>
|
|
@@ -80,13 +80,13 @@
|
|
|
80
80
|
</select>
|
|
81
81
|
</label>
|
|
82
82
|
</div>
|
|
83
|
-
<button id="themeToggle" aria-label="Toggle theme" data-vi-aria-label="Đổi giao diện" style="position:fixed;right:20px;bottom:20px;z-index:60;border:1px solid var(--cs-color-border-default);background:var(--cs-color-surface-panel);color:var(--cs-color-text-primary);width:44px;height:44px;border-radius:999px;cursor:pointer;box-shadow:var(--cs-shadow-md)"
|
|
83
|
+
<button id="themeToggle" type="button" aria-label="Toggle theme" data-vi-aria-label="Đổi giao diện" style="position:fixed;right:20px;bottom:20px;z-index:60;border:1px solid var(--cs-color-border-default);background:var(--cs-color-surface-panel);color:var(--cs-color-text-primary);width:44px;height:44px;border-radius:999px;cursor:pointer;box-shadow:var(--cs-shadow-md);display:grid;place-items:center"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path id="themeTogglePath" d="M20 13.5A8 8 0 1 1 10.5 4a6.5 6.5 0 0 0 9.5 9.5z"/></svg></button>
|
|
84
84
|
<script>
|
|
85
85
|
document.querySelector("form").addEventListener("submit", function (event) { event.preventDefault(); });
|
|
86
86
|
document.getElementById("themeToggle").addEventListener("click", function () {
|
|
87
87
|
var el = document.documentElement, dark = el.getAttribute("data-theme") === "dark";
|
|
88
88
|
el.setAttribute("data-theme", dark ? "light" : "dark");
|
|
89
|
-
|
|
89
|
+
document.getElementById("themeTogglePath").setAttribute("d", dark ? "M20 13.5A8 8 0 1 1 10.5 4a6.5 6.5 0 0 0 9.5 9.5z" : "M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zM12 2v2M12 20v2M2 12h2M20 12h2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M19.1 4.9l-1.4 1.4M6.3 17.7l-1.4 1.4");
|
|
90
90
|
});
|
|
91
91
|
function applyState(state) {
|
|
92
92
|
var banner = document.getElementById("errBanner");
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
.crumb { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--cs-color-text-muted); margin: 18px 0 16px; flex-wrap: wrap; }
|
|
18
18
|
.crumb a { color: var(--cs-color-text-muted); text-decoration: none; white-space: nowrap; }
|
|
19
19
|
.crumb a:hover { color: var(--cs-color-text-accent); }
|
|
20
|
-
.crumb .sep { color: var(--cs-color-
|
|
20
|
+
.crumb .sep { color: var(--cs-color-text-muted); }
|
|
21
21
|
.crumb .cur { color: var(--cs-color-text-primary); font-weight: 600; }
|
|
22
22
|
.pd-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 8px; }
|
|
23
23
|
.pd-head h1 { font-size: 30px; font-weight: 800; letter-spacing: -.02em; margin: 0 0 6px; }
|
|
@@ -34,7 +34,6 @@
|
|
|
34
34
|
.task:first-of-type { border-top: 0; }
|
|
35
35
|
.task .mono { font-family: var(--cs-font-family-mono); font-size: 12.5px; color: var(--cs-color-text-primary); }
|
|
36
36
|
.task .nm { flex: 1; font-size: 14px; }
|
|
37
|
-
.toggle { position: fixed; right: 20px; bottom: 20px; z-index: 60; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); width: 44px; height: 44px; border-radius: 999px; cursor: pointer; box-shadow: var(--cs-shadow-xs); display: grid; place-items: center; }
|
|
38
37
|
@media (max-width: 820px) { .pd-grid { grid-template-columns: 1fr; } }
|
|
39
38
|
@container cs (max-width: 768px) { .pd-grid { grid-template-columns: 1fr; } }
|
|
40
39
|
</style>
|
|
@@ -48,7 +47,7 @@
|
|
|
48
47
|
<span class="hd-mark"><img src="../../assets/logo-mark.svg" alt="" /></span>
|
|
49
48
|
<div><h1>Status Hub</h1><p class="hd-sub" data-vi="CyberSkill · chi tiết dự án">CyberSkill · project detail</p></div>
|
|
50
49
|
</div>
|
|
51
|
-
<div class="hd-side"><
|
|
50
|
+
<div class="hd-side"><p class="hd-meta"><span data-vi="Dữ liệu minh họa">Sample data</span><br /><span data-vi="2 giờ trước · An Le">2h ago · An Le</span></p><button type="button" class="btn ghost" style="width:auto;padding:0 12px;font-weight:700;font-size:13px" data-preview-language-toggle>Tiếng Việt</button><button type="button" class="btn ghost" id="themeToggle" aria-label="Toggle theme" data-vi-aria-label="Đổi giao diện"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path id="themeTogglePath" d="M20 13.5A8 8 0 1 1 10.5 4a6.5 6.5 0 0 0 9.5 9.5z"/></svg></button></div>
|
|
52
51
|
</div>
|
|
53
52
|
</header>
|
|
54
53
|
|
|
@@ -81,7 +80,7 @@
|
|
|
81
80
|
<div class="stat"><div class="l" data-vi="Tiến độ">Progress</div><div class="v">72%</div></div>
|
|
82
81
|
<div class="stat"><div class="l" data-vi="Công việc">Tasks</div><div class="v">18</div></div>
|
|
83
82
|
<div class="stat"><div class="l" data-vi="Đã ra mắt">Shipped</div><div class="v">13</div></div>
|
|
84
|
-
<div class="stat"><div class="l" data-vi="Mục tiêu">Target</div><div class="v" style="font-size:
|
|
83
|
+
<div class="stat"><div class="l" data-vi="Mục tiêu">Target</div><div class="v" style="font-size:21px;padding-top:4px" data-vi="Tuần này">This week</div></div>
|
|
85
84
|
</div>
|
|
86
85
|
|
|
87
86
|
<div style="margin:8px 0 22px">
|
|
@@ -129,13 +128,12 @@
|
|
|
129
128
|
</div>
|
|
130
129
|
</main>
|
|
131
130
|
</div>
|
|
132
|
-
<button class="toggle" id="themeToggle" aria-label="Toggle theme" data-vi-aria-label="Đổi giao diện">☾</button>
|
|
133
131
|
<script>
|
|
134
132
|
document.getElementById("themeToggle").addEventListener("click", function () {
|
|
135
133
|
var el = document.documentElement;
|
|
136
134
|
var dark = el.getAttribute("data-theme") === "dark";
|
|
137
135
|
el.setAttribute("data-theme", dark ? "light" : "dark");
|
|
138
|
-
|
|
136
|
+
document.getElementById("themeTogglePath").setAttribute("d", dark ? "M20 13.5A8 8 0 1 1 10.5 4a6.5 6.5 0 0 0 9.5 9.5z" : "M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zM12 2v2M12 20v2M2 12h2M20 12h2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M19.1 4.9l-1.4 1.4M6.3 17.7l-1.4 1.4");
|
|
139
137
|
});
|
|
140
138
|
</script>
|
|
141
139
|
<script src="static-locale.js"></script>
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
<span class="hd-mark"><img src="../../assets/logo-mark.svg" alt="" /></span>
|
|
38
38
|
<div><h1 data-vi="Cài đặt">Settings</h1><p class="hd-sub" data-vi="CyberSkill · không gian làm việc và tùy chọn">CyberSkill · workspace & preferences</p></div>
|
|
39
39
|
</div>
|
|
40
|
-
<div class="hd-side"><div class="hd-meta"><span data-vi="Hồ sơ minh họa">Sample profile</span><br />an@cyberskill.world</div></div>
|
|
40
|
+
<div class="hd-side"><div class="hd-meta"><span data-vi="Hồ sơ minh họa">Sample profile</span><br />an@cyberskill.world</div><button type="button" class="btn ghost" id="themeToggle" aria-label="Toggle theme" data-vi-aria-label="Đổi giao diện"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path id="themeTogglePath" d="M20 13.5A8 8 0 1 1 10.5 4a6.5 6.5 0 0 0 9.5 9.5z"/></svg></button></div>
|
|
41
41
|
</div>
|
|
42
42
|
</header>
|
|
43
43
|
|
|
@@ -93,13 +93,12 @@
|
|
|
93
93
|
</form>
|
|
94
94
|
</main>
|
|
95
95
|
</div>
|
|
96
|
-
<button id="themeToggle" aria-label="Toggle theme" data-vi-aria-label="Đổi giao diện" style="position:fixed;right:20px;bottom:20px;z-index:60;border:1px solid var(--cs-color-border-default);background:var(--cs-color-surface-panel);color:var(--cs-color-text-primary);width:44px;height:44px;border-radius:999px;cursor:pointer;box-shadow:var(--cs-shadow-md)">☾</button>
|
|
97
96
|
<script>
|
|
98
97
|
document.querySelector("form").addEventListener("submit", function (event) { event.preventDefault(); });
|
|
99
98
|
document.getElementById("themeToggle").addEventListener("click", function () {
|
|
100
99
|
var el = document.documentElement, dark = el.getAttribute("data-theme") === "dark";
|
|
101
100
|
el.setAttribute("data-theme", dark ? "light" : "dark");
|
|
102
|
-
|
|
101
|
+
document.getElementById("themeTogglePath").setAttribute("d", dark ? "M20 13.5A8 8 0 1 1 10.5 4a6.5 6.5 0 0 0 9.5 9.5z" : "M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zM12 2v2M12 20v2M2 12h2M20 12h2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M19.1 4.9l-1.4 1.4M6.3 17.7l-1.4 1.4");
|
|
103
102
|
});
|
|
104
103
|
|
|
105
104
|
document.getElementById("appearance-theme").addEventListener("click", function(){ document.getElementById("themeToggle").click(); });
|
|
@@ -56,7 +56,7 @@ html, body { overflow-x: clip; }
|
|
|
56
56
|
.hd-mark img { width: 42px; height: 42px; display: block; }
|
|
57
57
|
.hd h1 { margin: 0; font-size: 24px; letter-spacing: .2px; line-height: var(--cs-font-lineHeight-heading); }
|
|
58
58
|
.hd-sub { margin: 2px 0 0; font-size: 13.5px; opacity: .8; }
|
|
59
|
-
.hd-side { display: flex; align-items: center; gap: var(--cs-space-4); }
|
|
59
|
+
.hd-side { display: flex; align-items: center; gap: var(--cs-space-4); flex-wrap: wrap; }
|
|
60
60
|
.hd-meta { margin: 0; font-size: 12.5px; opacity: .75; text-align: right; }
|
|
61
61
|
|
|
62
62
|
/* buttons */
|
|
@@ -65,7 +65,11 @@ html, body { overflow-x: clip; }
|
|
|
65
65
|
font: inherit; font-size: 13.5px; font-weight: 600; }
|
|
66
66
|
.btn:hover { border-color: var(--cs-color-brand-ochre); }
|
|
67
67
|
.hd .btn.ghost { background: transparent; border-color: var(--cs-status-ghost-border);
|
|
68
|
-
color: var(--cs-status-header-fg); width: 38px; height: 38px; padding: 0; display:
|
|
68
|
+
color: var(--cs-status-header-fg); width: 38px; height: 38px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
|
|
69
|
+
.hd .btn.ghost:hover { border-color: var(--cs-color-brand-ochre); }
|
|
70
|
+
@media (pointer: coarse) {
|
|
71
|
+
.hd .btn.ghost { min-width: 44px; min-height: 44px; }
|
|
72
|
+
}
|
|
69
73
|
|
|
70
74
|
/* deck */
|
|
71
75
|
.deck { margin: var(--cs-space-6) 0 var(--cs-space-4); display: grid; gap: var(--cs-space-4);
|
|
@@ -93,10 +97,10 @@ html, body { overflow-x: clip; }
|
|
|
93
97
|
.dot { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
|
|
94
98
|
.spark { display: flex; align-items: flex-end; gap: 6px; height: 96px; margin-top: var(--cs-space-2); }
|
|
95
99
|
.spark a { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; align-items: center;
|
|
96
|
-
gap: 4px; text-decoration: none; color: var(--cs-color-text-muted); font-size:
|
|
100
|
+
gap: 4px; text-decoration: none; color: var(--cs-color-text-muted); font-size: 11px; }
|
|
97
101
|
.spark i { display: block; width: 100%; background: var(--cs-color-brand-ochre); border-radius: 4px 4px 0 0; min-height: 3px; }
|
|
98
102
|
.spark a:hover i { background: var(--cs-color-text-accent); }
|
|
99
|
-
.spark b { font-size:
|
|
103
|
+
.spark b { font-size: 11.5px; color: var(--cs-color-text-primary); font-weight: 600; }
|
|
100
104
|
|
|
101
105
|
/* now shipping */
|
|
102
106
|
.now { background: var(--cs-color-surface-raised); border: 1px solid var(--cs-color-brand-ochre);
|
|
@@ -112,6 +116,7 @@ html, body { overflow-x: clip; }
|
|
|
112
116
|
border: 1px solid var(--cs-color-border-default); border-radius: 14px;
|
|
113
117
|
padding: var(--cs-space-3) var(--cs-space-4); margin-bottom: var(--cs-space-4); }
|
|
114
118
|
@media (prefers-reduced-transparency: reduce) { .bar { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--cs-color-surface-page); } }
|
|
119
|
+
[data-cs-style="matte-paper"] .bar { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--cs-color-surface-panel); box-shadow: var(--cs-shadow-xs); }
|
|
115
120
|
.bar-top { display: flex; gap: var(--cs-space-3); align-items: center; flex-wrap: wrap; }
|
|
116
121
|
.srch { flex: 1 1 340px; display: flex; align-items: center; gap: var(--cs-space-2);
|
|
117
122
|
background: var(--cs-color-surface-panel); border: 1px solid var(--cs-component-textfield-border-default);
|
|
@@ -125,21 +130,21 @@ html, body { overflow-x: clip; }
|
|
|
125
130
|
.ln { border: 0; background: transparent; border-radius: var(--cs-radius-full); padding: 7px 15px;
|
|
126
131
|
font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; color: var(--cs-color-text-accent); }
|
|
127
132
|
.ln[aria-selected="true"] { background: var(--_cs-light, var(--cs-color-brand-umber)) var(--_cs-dark, var(--cs-color-brand-ochre)); color: var(--_cs-light, var(--cs-color-text-inverse)) var(--_cs-dark, var(--cs-status-on-ochre)); }
|
|
128
|
-
.facet { display: inline-flex; align-items: center; gap:
|
|
133
|
+
.facet { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--cs-color-text-muted); }
|
|
129
134
|
.facet select { background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary);
|
|
130
|
-
border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-
|
|
131
|
-
font-family: inherit; font-size: 13px; }
|
|
135
|
+
border: 1px solid var(--cs-component-textfield-border-default, var(--cs-color-border-default)); border-radius: var(--cs-radius-full); min-height: 36px; padding: 0 12px;
|
|
136
|
+
font-family: inherit; font-size: 13px; cursor: pointer; }
|
|
132
137
|
.cnt { margin-left: auto; font-size: 12.5px; color: var(--cs-color-text-muted); }
|
|
133
138
|
|
|
134
139
|
/* pills + chips */
|
|
135
|
-
.pill { display: inline-block; font-size:
|
|
140
|
+
.pill { display: inline-block; font-size: 11.5px; font-weight: 700; padding: 2px 8px; border-radius: var(--cs-radius-full);
|
|
136
141
|
text-transform: uppercase; letter-spacing: .04em; }
|
|
137
142
|
.pill.done { background: var(--cs-color-semantic-success); color: var(--cs-status-on-fill); }
|
|
138
143
|
.pill.active { background: var(--cs-color-brand-ochre); color: var(--cs-status-on-ochre); }
|
|
139
144
|
.pill.hold { background: var(--cs-color-semantic-danger); color: var(--cs-status-on-fill); }
|
|
140
145
|
.pill.todo { background: var(--cs-color-border-default); color: var(--cs-color-text-accent); }
|
|
141
146
|
.task-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: var(--cs-space-2); }
|
|
142
|
-
.chip { font-size:
|
|
147
|
+
.chip { font-size: 11.5px; font-weight: 600; padding: 3px 7px;
|
|
143
148
|
border-radius: 6px; cursor: pointer; background: var(--cs-color-surface-raised); color: var(--cs-color-text-accent);
|
|
144
149
|
border: 1px solid var(--cs-color-border-default); }
|
|
145
150
|
.chip:hover { border-color: var(--cs-color-brand-ochre); }
|
|
@@ -150,9 +155,9 @@ html, body { overflow-x: clip; }
|
|
|
150
155
|
/* board */
|
|
151
156
|
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: var(--cs-space-4); }
|
|
152
157
|
.card { background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default);
|
|
153
|
-
border-radius: 14px; padding: var(--cs-space-4); cursor: pointer; text-align: left; font: inherit; color: inherit; }
|
|
158
|
+
border-radius: 14px; padding: var(--cs-space-4); cursor: pointer; text-align: left; font: inherit; color: inherit; box-shadow: var(--cs-shadow-xs); }
|
|
154
159
|
.card:hover { border-color: var(--cs-color-brand-ochre); }
|
|
155
|
-
.card.hot { border-
|
|
160
|
+
.card.hot { border-inline-start: 3px solid var(--cs-color-brand-ochre); }
|
|
156
161
|
.card-h { display: flex; align-items: baseline; justify-content: space-between; gap: var(--cs-space-2); }
|
|
157
162
|
.card-h h3 { margin: 0; font-size: 15px; line-height: var(--cs-font-lineHeight-heading); }
|
|
158
163
|
.card-h .pct { font-size: 12.5px; color: var(--cs-color-text-muted); white-space: nowrap; }
|
|
@@ -166,7 +171,7 @@ html, body { overflow-x: clip; }
|
|
|
166
171
|
background: var(--cs-color-surface-panel); }
|
|
167
172
|
table.tbl { border-collapse: collapse; width: 100%; font-size: 13px; }
|
|
168
173
|
.tbl th, .tbl td { text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--cs-color-border-default); vertical-align: top; }
|
|
169
|
-
.tbl thead th { background: var(--cs-color-surface-raised); font-size:
|
|
174
|
+
.tbl thead th { background: var(--cs-color-surface-raised); font-size: 12px; text-transform: uppercase;
|
|
170
175
|
letter-spacing: .06em; color: var(--cs-color-text-muted); white-space: nowrap; }
|
|
171
176
|
.tbl tbody tr { cursor: pointer; }
|
|
172
177
|
.tbl tbody tr:hover { background: var(--cs-color-surface-raised); }
|
|
@@ -183,7 +188,7 @@ table.tbl { border-collapse: collapse; width: 100%; font-size: 13px; }
|
|
|
183
188
|
.rel.now .tick { background: var(--cs-color-brand-ochre); color: var(--cs-status-on-ochre); }
|
|
184
189
|
.rel-h { display: flex; align-items: baseline; gap: var(--cs-space-3); flex-wrap: wrap; }
|
|
185
190
|
.rel-h b { font-size: 17px; font-family: var(--cs-font-family-mono); }
|
|
186
|
-
.rel-sec h4 { margin: var(--cs-space-3) 0 var(--cs-space-1); font-size:
|
|
191
|
+
.rel-sec h4 { margin: var(--cs-space-3) 0 var(--cs-space-1); font-size: 12px; text-transform: uppercase;
|
|
187
192
|
letter-spacing: .07em; color: var(--cs-color-text-muted); }
|
|
188
193
|
.rel-sec ul { margin: 0; padding-left: 18px; font-size: 13.5px; }
|
|
189
194
|
.rel-sec li { margin: 3px 0; }
|
|
@@ -206,7 +211,7 @@ table.tbl { border-collapse: collapse; width: 100%; font-size: 13px; }
|
|
|
206
211
|
.dw-b { overflow: auto; padding: var(--cs-space-5); flex: 1; }
|
|
207
212
|
.meta { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--cs-space-3);
|
|
208
213
|
margin: 0 0 var(--cs-space-4); }
|
|
209
|
-
.meta dt { font-size:
|
|
214
|
+
.meta dt { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--cs-color-text-muted); }
|
|
210
215
|
.meta dd { margin: 2px 0 0; font-size: 13.5px; }
|
|
211
216
|
.sect h3 { margin: var(--cs-space-5) 0 var(--cs-space-2); font-size: 12px; text-transform: uppercase;
|
|
212
217
|
letter-spacing: .08em; color: var(--cs-color-text-muted); }
|
|
@@ -218,8 +223,12 @@ table.tbl { border-collapse: collapse; width: 100%; font-size: 13px; }
|
|
|
218
223
|
.ft { margin: var(--cs-space-12) 0 var(--cs-space-16); text-align: center; font-size: 12px; color: var(--cs-color-text-muted); }
|
|
219
224
|
|
|
220
225
|
/* Viewport fallback. */
|
|
221
|
-
@media (max-width: 768px), (min-width: 1024px) { .pill, .chip, .tbl thead th, .rel-sec h4, .meta dt, .spark a, .spark b { font-size: 12px; } }
|
|
222
226
|
@media (max-width: 900px) { .deck { grid-template-columns: 1fr; } .hd-meta { text-align: left; } }
|
|
227
|
+
@media (max-width: 480px) {
|
|
228
|
+
.wrap, .hd-in { padding-inline: var(--cs-space-4); }
|
|
229
|
+
.hd-in { gap: var(--cs-space-3); }
|
|
230
|
+
.hd-side { gap: var(--cs-space-2); }
|
|
231
|
+
}
|
|
223
232
|
/* G1 / TASK-IMP-025 — deck + board card grid from `.wrap` container width. */
|
|
224
233
|
@container cs (max-width: 768px) {
|
|
225
234
|
.deck { grid-template-columns: 1fr; }
|
|
@@ -12,30 +12,24 @@
|
|
|
12
12
|
<style>
|
|
13
13
|
/* hero: banner */
|
|
14
14
|
html, body { margin: 0; }
|
|
15
|
-
|
|
16
|
-
.car-hero + .sec { padding-top: 84px; }
|
|
17
|
-
.roles { gap: 28px; }
|
|
18
|
-
.role { padding: 36px 28px; }
|
|
19
|
-
}
|
|
20
|
-
.car-hero { background: var(--cs-color-brand-umber); color: #fff; padding: 88px 0 64px; position: relative; overflow: hidden; }
|
|
15
|
+
.car-hero { background: var(--cs-color-brand-umber); color: #fff; padding: 76px 0 56px; position: relative; overflow: hidden; }
|
|
21
16
|
.car-hero::before { content: ""; position: absolute; inset: 0; background-image: url("../../assets/aurora-tho.webp"); background-size: cover; background-position: center; opacity: .32; }
|
|
22
17
|
.car-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26,17,8,.28), rgba(26,17,8,.78)); }
|
|
23
18
|
.car-hero .container { position: relative; z-index: 1; }
|
|
24
19
|
.car-hero h1 { font-size: clamp(36px, 5vw, 54px); font-weight: 800; letter-spacing: -.02em; color: var(--cs-color-brand-ochre); margin: 12px 0 6px; }
|
|
25
20
|
.car-hero p { font-size: 18px; opacity: .92; max-width: 600px; margin: 0; }
|
|
26
|
-
.vals { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
|
|
27
|
-
.val { border-top: 3px solid var(--cs-color-brand-ochre); padding-top:
|
|
28
|
-
.sec .eyebrow { margin-bottom:
|
|
21
|
+
.vals { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 24px; }
|
|
22
|
+
.val { border-top: 3px solid var(--cs-color-brand-ochre); padding-top: 14px; }
|
|
23
|
+
.sec .eyebrow { margin-bottom: 8px; }
|
|
29
24
|
.val h3 { margin: 0 0 6px; font-size: 18px; }
|
|
30
25
|
.val p { margin: 0; color: var(--cs-color-text-muted); font-size: 14px; line-height: 1.5; }
|
|
31
|
-
.roles { display: grid; gap:
|
|
32
|
-
.role { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding:
|
|
33
|
-
.role:hover { border-color: var(--cs-color-brand-ochre); }
|
|
26
|
+
.roles { display: grid; gap: 14px; margin-top: 24px; }
|
|
27
|
+
.role { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 22px 24px; border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); background: var(--cs-color-surface-panel); box-shadow: var(--cs-shadow-xs); transition: border-color var(--cs-duration-fast) var(--cs-ease-standard); flex-wrap: wrap; }
|
|
28
|
+
.role:hover { border-color: var(--cs-color-brand-ochre); box-shadow: var(--cs-shadow-sm); }
|
|
34
29
|
.role h3 { margin: 0 0 4px; font-size: 19px; }
|
|
35
30
|
.role .meta { color: var(--cs-color-text-muted); font-size: 14px; display: flex; gap: 14px; flex-wrap: wrap; }
|
|
36
31
|
@media (max-width: 760px) { .vals { grid-template-columns: 1fr 1fr; } .nav { display: none; } }
|
|
37
|
-
|
|
38
|
-
.ft { padding-bottom: 84px; }
|
|
32
|
+
@media (max-width: 480px) { .vals { grid-template-columns: 1fr; } }
|
|
39
33
|
</style>
|
|
40
34
|
</head>
|
|
41
35
|
<body>
|
|
@@ -45,7 +39,7 @@
|
|
|
45
39
|
<div class="container hdr-in">
|
|
46
40
|
<a class="brand" href="index.html"><img src="../../assets/logo-mark.svg" alt="" />CyberSkill</a>
|
|
47
41
|
<nav class="nav"><a href="index.html#services" data-vi="Dịch vụ">Services</a><a href="work.html" data-vi="Dự án">Work</a><a href="careers.html" data-vi="Tuyển dụng">Careers</a><a href="index.html#contact" data-vi="Liên hệ">Contact</a></nav>
|
|
48
|
-
<div class="hdr-side"><a class="mini" href="#" id="langToggle" aria-label="Switch to Tiếng Việt" data-vi-aria-label="Chuyển sang English">Tiếng Việt</a><a class="mini" style="background:var(--cs-color-brand-umber);color:#fff;border-color:transparent" href="index.html#top" data-vi="Trò chuyện với Lumi">Talk to Lumi</a></div>
|
|
42
|
+
<div class="hdr-side"><a class="mini" href="#" id="langToggle" aria-label="Switch to Tiếng Việt" data-vi-aria-label="Chuyển sang English">Tiếng Việt</a><button id="themeToggle" type="button" class="mini icon" aria-label="Toggle theme" data-vi-aria-label="Đổi giao diện"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path id="themeTogglePath" d="M20 13.5A8 8 0 1 1 10.5 4a6.5 6.5 0 0 0 9.5 9.5z"/></svg></button><a class="mini" style="background:var(--cs-color-brand-umber);color:#fff;border-color:transparent" href="index.html#top" data-vi="Trò chuyện với Lumi">Talk to Lumi</a></div>
|
|
49
43
|
</div>
|
|
50
44
|
</header>
|
|
51
45
|
|
|
@@ -102,12 +96,11 @@
|
|
|
102
96
|
</div>
|
|
103
97
|
</footer>
|
|
104
98
|
</div>
|
|
105
|
-
<button id="themeToggle" aria-label="Toggle theme" data-vi-aria-label="Đổi giao diện" style="position:fixed;right:20px;bottom:20px;z-index:60;border:1px solid var(--cs-color-border-default);background:var(--cs-color-surface-panel);color:var(--cs-color-text-primary);width:44px;height:44px;border-radius:999px;cursor:pointer;box-shadow:var(--cs-shadow-md)">☾</button>
|
|
106
99
|
<script>
|
|
107
100
|
document.getElementById("themeToggle").addEventListener("click", function () {
|
|
108
101
|
var el = document.documentElement, dark = el.getAttribute("data-theme") === "dark";
|
|
109
102
|
el.setAttribute("data-theme", dark ? "light" : "dark");
|
|
110
|
-
|
|
103
|
+
document.getElementById("themeTogglePath").setAttribute("d", dark ? "M20 13.5A8 8 0 1 1 10.5 4a6.5 6.5 0 0 0 9.5 9.5z" : "M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zM12 2v2M12 20v2M2 12h2M20 12h2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M19.1 4.9l-1.4 1.4M6.3 17.7l-1.4 1.4");
|
|
111
104
|
});
|
|
112
105
|
</script>
|
|
113
106
|
<script>
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
html, body { margin: 0; height: 100%; }
|
|
14
14
|
.lumi-page { display: grid; grid-template-columns: 288px 1fr; height: 100vh; background: var(--cs-color-surface-page); font-family: var(--cs-font-family-ui); color: var(--cs-color-text-primary); }
|
|
15
15
|
.lumi-side { border-right: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); display: flex; flex-direction: column; padding: 16px 14px; gap: 4px; }
|
|
16
|
+
.lumi-side .cs-sidebar { inline-size: 100%; padding: 0; border-inline-end: 0; background: transparent; }
|
|
17
|
+
.lumi-theme { width: 44px; padding-inline: 0; justify-content: center; }
|
|
16
18
|
.lumi-brand { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 17px; color: var(--cs-color-text-primary); padding: 6px 10px 14px; }
|
|
17
19
|
.lumi-brand img { width: 30px; height: 30px; }
|
|
18
20
|
.lumi-new { margin: 0 4px 12px; }
|
|
@@ -33,9 +35,11 @@
|
|
|
33
35
|
.lumi-page .cs-suggest button { color: var(--cs-color-text-primary); }
|
|
34
36
|
.lumi-page .cs-suggest button, .lumi-page .cs-button--sm, .lumi-page .cs-nav-item { min-height: 44px; }
|
|
35
37
|
@media (prefers-reduced-transparency: reduce) { .lumi-top { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--cs-color-surface-panel); } }
|
|
38
|
+
[data-cs-style="matte-paper"] .lumi-top { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--cs-color-surface-panel); }
|
|
36
39
|
.lumi-answer-card p { margin: 0; font-size: 15px; line-height: 1.6; }
|
|
37
40
|
.lumi-answer-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
|
|
38
41
|
@media (max-width: 820px) { .lumi-page { grid-template-columns: 1fr; } .lumi-side { display: none; } .lumi-mobile-new { display: inline-flex; } }
|
|
42
|
+
@media (max-width: 480px) { .lumi-top { padding: 12px 16px; gap: 8px; } .lumi-thread { padding: 18px 16px; } .lumi-compose { padding: 14px 16px 18px; } }
|
|
39
43
|
</style>
|
|
40
44
|
<script src="../../_vendor/react/react.production.min.js"></script>
|
|
41
45
|
<script src="../../_vendor/react/react-dom.production.min.js"></script>
|
|
@@ -47,7 +51,7 @@
|
|
|
47
51
|
|
|
48
52
|
<div id="root"></div>
|
|
49
53
|
<script type="text/babel">
|
|
50
|
-
const CS = window[Object.keys(window).find(k
|
|
54
|
+
const CS = window[Object.keys(window).find(k=>k.startsWith("CyberSkillDesignSystem_"))] || {};
|
|
51
55
|
const { LumiAvatar, PromptInput, PromptSuggestions, ChatMessage, TypingIndicator, CitationList, AIDisclosureBadge, ConfidenceMeter, Button, Sidebar, NavItem, Badge } = CS;
|
|
52
56
|
const { useState, useRef, useEffect } = React;
|
|
53
57
|
|
|
@@ -63,7 +67,7 @@ const CHAT_COPY = {
|
|
|
63
67
|
details: "This fixed sample illustrates the interface. No model or human review is involved; confidence and references are illustrative.",
|
|
64
68
|
services: "Services", process: "Process", citations: "Sample references", what: "What we build", arc: "The arc of a wish",
|
|
65
69
|
handoff: "Demo only — no handoff", refine: "Keep refining", placeholder: "Make a wish…", send: "Send",
|
|
66
|
-
hint: "Scripted preview; does not send your wish to a model or the team."
|
|
70
|
+
hint: "Scripted preview; does not send your wish to a model or the team.", theme: "Toggle theme"
|
|
67
71
|
},
|
|
68
72
|
vi: {
|
|
69
73
|
skip: "Bỏ qua đến nội dung", newWish: "Điều ước mới", recent: "Hội thoại minh họa",
|
|
@@ -76,12 +80,18 @@ const CHAT_COPY = {
|
|
|
76
80
|
details: "Mẫu cố định này minh họa giao diện. Không có mô hình hay người kiểm duyệt tham gia; độ tin cậy và tài liệu chỉ để minh họa.",
|
|
77
81
|
services: "Dịch vụ", process: "Quy trình", citations: "Tài liệu minh họa", what: "Những gì chúng tôi xây", arc: "Hành trình của điều ước",
|
|
78
82
|
handoff: "Bản mẫu — chưa chuyển giao", refine: "Tiếp tục điều chỉnh", placeholder: "Kể một điều ước…", send: "Gửi",
|
|
79
|
-
hint: "Bản xem trước theo kịch bản; chưa gửi điều ước đến mô hình hay đội ngũ."
|
|
83
|
+
hint: "Bản xem trước theo kịch bản; chưa gửi điều ước đến mô hình hay đội ngũ.", theme: "Đổi giao diện"
|
|
80
84
|
}
|
|
81
85
|
};
|
|
82
86
|
|
|
83
87
|
function LumiPage() {
|
|
84
88
|
const [loc, setLoc] = useState("en"), t = CHAT_COPY[loc];
|
|
89
|
+
const [isDark, setIsDark] = useState(() => document.documentElement.getAttribute("data-theme") === "dark");
|
|
90
|
+
function toggleTheme() {
|
|
91
|
+
const next = document.documentElement.getAttribute("data-theme") === "dark" ? "light" : "dark";
|
|
92
|
+
document.documentElement.setAttribute("data-theme", next);
|
|
93
|
+
setIsDark(next === "dark");
|
|
94
|
+
}
|
|
85
95
|
const [draft, setDraft] = useState("");
|
|
86
96
|
const pending = useRef(new Set());
|
|
87
97
|
const composerRef = useRef(null);
|
|
@@ -142,6 +152,7 @@ function LumiPage() {
|
|
|
142
152
|
<LumiAvatar src="../../assets/lumi-poster.webp" size="md" ring />
|
|
143
153
|
<div><h1>Lumi</h1><div className="sub">{t.subtitle}</div></div>
|
|
144
154
|
<button type="button" className="cs-button cs-button--secondary cs-button--sm lumi-language" style={{ marginLeft: "auto" }} onClick={() => setLoc(loc === "en" ? "vi" : "en")}>{loc === "en" ? "Tiếng Việt" : "English"}</button>
|
|
155
|
+
<button type="button" className="cs-button cs-button--secondary cs-button--sm lumi-theme" aria-label={t.theme} onClick={toggleTheme}><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.9" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true"><path d={isDark ? "M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zM12 2v2M12 20v2M2 12h2M20 12h2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M19.1 4.9l-1.4 1.4M6.3 17.7l-1.4 1.4" : "M20 13.5A8 8 0 1 1 10.5 4a6.5 6.5 0 0 0 9.5 9.5z"} /></svg></button>
|
|
145
156
|
<Badge variant="info">{t.badge}</Badge>
|
|
146
157
|
<button type="button" className="cs-button cs-button--secondary cs-button--sm lumi-mobile-new" onClick={newWish}>✦ {t.newWish}</button>
|
|
147
158
|
</header>
|