@bongos/core 1.19.726 → 1.19.727
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/.bongos-core.json +176 -491
- package/.devcontainer/Dockerfile +1 -1
- package/.devcontainer/devcontainer.json +2 -2
- package/.devcontainer/healthcheck.sh +1 -1
- package/.devcontainer/init-firewall.sh +1 -1
- package/.devcontainer/post-create.sh +2 -2
- package/.env.local.example +1 -1
- package/Dockerfile +1 -1
- package/docs/copy-inventory.md +1 -1
- package/docs/copy-registry.json +9 -9
- package/docs/module-api-changelog.md +2 -0
- package/docs/recipes/devbox-app-release.md +4 -4
- package/modules/dev-box/app/scripts/dmgbuild-settings.py +5 -5
- package/modules/dev-box/app/scripts/gen-brand.js +1 -1
- package/modules/dev-box/app/src/brand.js +1 -1
- package/modules/dev-box/app/test/unit.mjs +16 -16
- package/modules/dev-box/box-access.js +1 -1
- package/modules/dev-box/routes/box.js +1 -1
- package/modules/discord/discord-approvals.js +1 -1
- package/modules/grading/grader-model.js +1 -1
- package/modules/grading/grader-prompt.js +1 -1
- package/modules/grading/grader-workers/quality.js +1 -1
- package/modules/hall-ui/module.json +1 -1
- package/modules/hall-ui/public/brand-apply.js +1 -1
- package/modules/hall-ui/public/shell.js +1 -1
- package/modules/hall-ui/public/work.js +1 -1
- package/modules/lifecycle/conflict-resolve.js +1 -1
- package/modules/lifecycle/db-analytics.js +1 -1
- package/modules/lifecycle/routes/analytics.js +1 -1
- package/modules/onboarding/approval-broadcast.js +1 -1
- package/modules/onboarding/onboarding.js +1 -1
- package/modules/provisioning/tests/liveness.mjs +1 -1
- package/modules/public-landing/public/index.html +1 -1
- package/modules/public-landing/public/projects-floor.states.json +2 -2
- package/modules/public-landing/public/projects.probes.json +4 -4
- package/modules/public-landing/public/projects.states.json +2 -2
- package/modules/status-ui/module.json +1 -1
- package/modules/status-ui/public/status.js +4 -4
- package/modules/status-ui/public/style.css +1 -1
- package/modules/ui-design/kit/fixtures/cost-summary.json +1 -1
- package/modules/ui-design/kit/fixtures/featured-hub.json +1 -1
- package/modules/ui-design/kit/fixtures/featured.json +1 -1
- package/modules/ui-design/kit/fixtures/leaderboard.json +1 -1
- package/modules/ui-design/kit/fixtures/my-projects.json +1 -1
- package/modules/ui-design/kit/fixtures/progress.json +1 -1
- package/modules/ui-design/kit/fixtures/recent-shipped.json +1 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/scripts/cron/style_guide_audit.sh +1 -1
- package/scripts/discord/lib.js +1 -1
- package/scripts/discord/post.js +1 -1
- package/scripts/gds/audit-authorship.sh +1 -1
- package/scripts/gds/audit-replay.sh +29 -2
- package/scripts/gds/audit-ships.js +1 -1
- package/scripts/gds/backfill-sessions.js +2 -2
- package/scripts/gds/cf-tunnel.js +4 -4
- package/scripts/gds/claude-materialize.js +2 -2
- package/scripts/gds/cli-lib.js +6 -6
- package/scripts/gds/cutover-codemod.js +1 -1
- package/scripts/gds/dev-lib.js +2 -2
- package/scripts/gds/diagnose-achievements.js +2 -2
- package/scripts/gds/fitness-checks-identity.js +6 -4
- package/scripts/gds/gen-diagrams.js +1 -1
- package/scripts/gds/leak-scan-allowlist.js +293 -0
- package/scripts/gds/learning-capture.js +1 -1
- package/scripts/gds/linkify-refs.js +2 -2
- package/scripts/gds/local-preview-lib.js +1 -1
- package/scripts/gds/mirror-lineage-check.js +1 -1
- package/scripts/gds/mirror-redact.js +17 -2
- package/scripts/gds/newcomer-floor.templates.json +1 -1
- package/scripts/gds/package-core.js +18 -1
- package/scripts/gds/paste-token.js +1 -1
- package/scripts/gds/provision-units.js +2 -2
- package/scripts/gds/publish-manifest.js +15 -0
- package/scripts/gds/repo-metrics.js +1 -1
- package/scripts/gds/sandbox-stage.js +1 -1
- package/scripts/gds/seed-bongos-coreB-tranche1-tasks.js +1 -1
- package/scripts/gds/seed-bongos-coreB-tranche2-tasks.js +1 -1
- package/scripts/gds/seed-bongos-goal-hierarchy-tasks.js +1 -1
- package/scripts/gds/seed-bongos-tasks.js +2 -2
- package/scripts/gds/seed-gds-v4-tasks.js +1 -1
- package/scripts/gds/seed-medusa-tasks.js +10 -10
- package/scripts/gds/seed-module-upstreaming.js +1 -1
- package/scripts/gds/seed-productization-tasks.js +6 -6
- package/scripts/gds/seed-provisioning-tasks.js +2 -2
- package/scripts/gds/seed-staging.sh +19 -6
- package/scripts/gds/ship-deploy-target.js +1 -1
- package/scripts/gds/ship-flow.js +1 -1
- package/scripts/gds/smoke-gds.js +1 -1
- package/scripts/status-probe.mjs +2 -2
- package/src/bongos/auth-discord.js +2 -2
- package/src/bongos/live-channel.js +1 -1
- package/src/bongos/pool.js +1 -1
- package/src/bongos/routes/auth.js +11 -11
- package/src/bongos/routes/security.js +1 -1
- package/src/bongos/routes.js +1 -1
- package/src/branding.js +1 -1
- package/src/devbox-downloads.js +1 -1
- package/src/instance-config.js +2 -2
- package/src/module-api.js +1 -1
- package/src/module-loader/provenance.js +2 -2
- package/tests/art_stage.mjs +2 -2
- package/tests/auth_anthropic_identity.mjs +1 -1
- package/tests/auth_duplicate_cookie.mjs +1 -1
- package/tests/auth_error_brand.mjs +1 -1
- package/tests/auth_inactive_builder.mjs +1 -1
- package/tests/backup_cli.mjs +4 -4
- package/tests/bongos_box_connect.mjs +2 -2
- package/tests/bongos_downloads.mjs +2 -2
- package/tests/bongos_login.mjs +5 -5
- package/tests/box_connect_e2e.mjs +2 -2
- package/tests/box_dns_repoint.mjs +10 -10
- package/tests/box_host_keys.mjs +1 -1
- package/tests/box_onboard.mjs +9 -9
- package/tests/box_scope_session.mjs +1 -1
- package/tests/box_terminal_ssrf.mjs +7 -7
- package/tests/boxes.mjs +9 -9
- package/tests/branding.mjs +2 -2
- package/tests/bump_version.mjs +2 -2
- package/tests/cf_tunnel.mjs +40 -40
- package/tests/cli_token_reissue.mjs +7 -7
- package/tests/cloud_bongos_pack.mjs +1 -1
- package/tests/currency_label.mjs +8 -8
- package/tests/dev_lib.mjs +4 -4
- package/tests/devbox_dmg_backdrop.mjs +1 -1
- package/tests/devbox_downloads.mjs +2 -2
- package/tests/devbox_icons.mjs +1 -1
- package/tests/discord_approvals.mjs +1 -1
- package/tests/discord_oauth.mjs +2 -2
- package/tests/executed_closure.mjs +6 -1
- package/tests/first_admin_bootstrap.mjs +1 -1
- package/tests/gate_approvals.mjs +5 -5
- package/tests/grade_aggregates_unavailable.mjs +1 -1
- package/tests/hook_user_agents.mjs +2 -2
- package/tests/init.mjs +6 -6
- package/tests/instance_config.mjs +1 -1
- package/tests/instance_manifest.mjs +5 -5
- package/tests/instance_mismatch_guard.mjs +13 -13
- package/tests/leak_scan_allowlist.mjs +94 -0
- package/tests/migrate_root_resolution.mjs +4 -4
- package/tests/mirror_redact.mjs +28 -4
- package/tests/module_catalog.mjs +5 -5
- package/tests/module_submissions.mjs +3 -3
- package/tests/package_core.mjs +1 -1
- package/tests/parallel-load.mjs +6 -6
- package/tests/projects_hub.mjs +2 -2
- package/tests/provision.mjs +50 -50
- package/tests/provisioning_github_app_routes.mjs +1 -1
- package/tests/provisioning_onboard_mode.mjs +2 -2
- package/tests/publish_reconciler.mjs +4 -4
- package/tests/sandbox_stage.mjs +1 -1
- package/tests/scrubber_corpus.mjs +3 -3
- package/tests/search_isolation.mjs +1 -1
- package/tests/session_records.mjs +1 -1
- package/tests/ship_card.mjs +6 -6
- package/tests/ship_ci_deploy.mjs +1 -1
- package/tests/single_host_hall.mjs +9 -9
- package/tests/smoke_preflight.mjs +1 -1
- package/tests/smoke_target.mjs +1 -1
- package/tests/status-probe.mjs +1 -1
- package/tests/status_mirror_sync.mjs +1 -1
- package/docs/adr/0004-amazonprimea-name-and-trademark-acceptance.md +0 -45
- package/docs/design/mocks/_schemes.css +0 -604
- package/docs/design/mocks/component-sheet.html +0 -428
- package/docs/design/mocks/hall/_tokens.css +0 -370
- package/docs/design/mocks/hall/board/v1.html +0 -846
- package/docs/design/mocks/hall/board/v2.html +0 -858
- package/docs/design/mocks/hall/board/v3.html +0 -884
- package/docs/design/mocks/hall/goals/v1.html +0 -1212
- package/docs/design/mocks/hall/goals/v2.html +0 -1192
- package/docs/design/mocks/hall/goals/v3.html +0 -1205
- package/docs/design/mocks/hall/hall-sheet.html +0 -244
- package/docs/design/mocks/hall/reading/v1.html +0 -1125
- package/docs/design/mocks/hall/reading/v2.html +0 -1177
- package/docs/design/mocks/hall/reading/v3.html +0 -1150
- package/docs/design/mocks/hall/settings/v1.html +0 -1238
- package/docs/design/mocks/hall/settings/v2.html +0 -1235
- package/docs/design/mocks/hall/settings/v3.html +0 -1299
- package/docs/design/mocks/hall/task/v1.html +0 -633
- package/docs/design/mocks/hall/task/v2.html +0 -646
- package/docs/design/mocks/hall/task/v3.html +0 -647
- package/docs/design/mocks/hub/assets/r3-space-deepfield-half.jpg +0 -0
- package/docs/design/mocks/hub/assets/r3-space-deepfield-half.jpg.json +0 -13
- package/docs/design/mocks/hub/assets/r3-space-dust-half.jpg +0 -0
- package/docs/design/mocks/hub/assets/r3-space-dust-half.jpg.json +0 -13
- package/docs/design/mocks/hub/assets/r3-space-nebula-half.jpg +0 -0
- package/docs/design/mocks/hub/assets/r3-space-nebula-half.jpg.json +0 -13
- package/docs/design/mocks/hub/assets/r3-space-starfield-half.jpg +0 -0
- package/docs/design/mocks/hub/assets/r3-space-starfield-half.jpg.json +0 -13
- package/docs/design/mocks/hub/hub-sheet.html +0 -192
- package/docs/design/mocks/hub/mine.html +0 -465
- package/docs/design/mocks/hub/picker.html +0 -421
- package/docs/design/mocks/hub/planets.html +0 -356
- package/docs/design/mocks/hub/v1.html +0 -1209
- package/docs/design/mocks/hub/v2.html +0 -1257
- package/docs/design/mocks/hub/v3.html +0 -1496
- package/docs/design/mocks/hub/wizard.html +0 -421
- package/docs/design/mocks/landing/landing-sheet.html +0 -131
- package/docs/design/mocks/landing/v1.html +0 -956
- package/docs/design/mocks/landing/v2.html +0 -708
- package/docs/design/mocks/landing/v3.html +0 -911
- package/docs/design/mocks/landing-page-mock.html +0 -687
- package/docs/design/mocks/landing-palettes.html +0 -103
- package/docs/design/mocks/projects-hub-mock.html +0 -991
- package/docs/design/mocks/projects-hub-variants.html +0 -146
- package/docs/design/mocks/projects-page-mock.html +0 -167
- package/docs/design/mocks/world/blue-hud/_tokens.css +0 -246
- package/docs/design/mocks/world/blue-hud/hall.html +0 -595
- package/docs/design/mocks/world/blue-hud/landing.html +0 -424
- package/docs/design/mocks/world/blue-hud/status.html +0 -410
- package/docs/design/mocks/world/chrome-blobs/_tokens.css +0 -479
- package/docs/design/mocks/world/chrome-blobs/hall.html +0 -553
- package/docs/design/mocks/world/chrome-blobs/landing-b.html +0 -581
- package/docs/design/mocks/world/chrome-blobs/landing.html +0 -328
- package/docs/design/mocks/world/chrome-blobs/status.html +0 -416
- package/docs/design/mocks/world/natgeo-editorial/_tokens.css +0 -377
- package/docs/design/mocks/world/natgeo-editorial/hall.html +0 -649
- package/docs/design/mocks/world/natgeo-editorial/landing-b.html +0 -743
- package/docs/design/mocks/world/natgeo-editorial/landing.html +0 -475
- package/docs/design/mocks/world/natgeo-editorial/status.html +0 -437
- package/docs/design/mocks/world/organic-cards/_tokens.css +0 -462
- package/docs/design/mocks/world/organic-cards/hall.html +0 -625
- package/docs/design/mocks/world/organic-cards/landing-b.html +0 -736
- package/docs/design/mocks/world/organic-cards/landing.html +0 -420
- package/docs/design/mocks/world/organic-cards/status.html +0 -458
- package/docs/design/mocks/world/world-sheet.html +0 -156
|
@@ -1,370 +0,0 @@
|
|
|
1
|
-
/* The builders' hall in the chrome world - the candidate token tier for the composition round
|
|
2
|
-
(task 1003302, goal 1000081). This file is what the round proposes should become the token tier of
|
|
3
|
-
modules/hall-ui/public/style.css when task 1003303 builds the shell; the fifteen mocks under
|
|
4
|
-
docs/design/mocks/hall/ all link it, so a steer here moves all fifteen at once.
|
|
5
|
-
|
|
6
|
-
It is DESIGN.md's "Reuse: the hall and the status ledger" recipe, followed literally:
|
|
7
|
-
1. open on a bare :root carrying the pack's LIGHT values, exactly as config/branding.neutral.json
|
|
8
|
-
has them (drift-tested), and no others;
|
|
9
|
-
2. add a derived tier below it REUSING THE WORLD'S NAMES - void*, glass*, accent-ink, accent-lift,
|
|
10
|
-
accent-tint, accent-on, accent-glow, focus, type-halo, label-face, line, radius*, top-h - with
|
|
11
|
-
the recipes from DESIGN.md's frontmatter, so an agent moving between the landing, the hub and
|
|
12
|
-
the hall is in one world;
|
|
13
|
-
3. write the dark block twice at (0,2,0), pinning no accent literal;
|
|
14
|
-
4. keep composition out of it - every layout switch lives on the page's own body.
|
|
15
|
-
|
|
16
|
-
THREE THINGS THIS FILE DOES THAT world.css DOES NOT, each one a hall problem the landing never had:
|
|
17
|
-
|
|
18
|
-
a. THE STATUS VOCABULARY IS FIXED, AND IT IS THE ONE SANCTIONED EXCEPTION TO THE FIFTEEN RULE.
|
|
19
|
-
DESIGN.md: "Status colours are the exception. This world's ok / warn / err are warm accent-derived
|
|
20
|
-
states for a marketing surface. A surface that renders VERIFICATION state - the hall's chips, the
|
|
21
|
-
status ledger's pillars, CI marks - keeps its own fixed green / amber / red vocabulary and must not
|
|
22
|
-
adopt these." A grade that failed must not be salmon on a page whose primary door is also salmon.
|
|
23
|
-
They are literal hexes on purpose; they are the only ones in this file; they live HERE rather than
|
|
24
|
-
in any mock's own <style> (which tests/hall_audit.mjs would fail for redeclaring a pack var, and
|
|
25
|
-
check-mock.js would fail for the literal); and DESIGN.md is what licenses them.
|
|
26
|
-
|
|
27
|
-
THREE OF THE FOUR HAD TO MOVE, and that is a finding of this round, not a preference. style.css
|
|
28
|
-
tuned them against the hall's retired ground (--bg #f5f6f8, --bg-card #ffffff). The chrome world's
|
|
29
|
-
paper is darker (--bg #edecee), and measured against it the shipped values FAIL AA:
|
|
30
|
-
ok #1a7f4b 4.27:1 on --bg warn #9a6700 4.13:1 on --bg
|
|
31
|
-
info var(--sea) 3.85:1 on --bg and 4.36:1 on --bg-card, and 4.19:1 on dark --bg-card.
|
|
32
|
-
So ok and warn are darkened, and info becomes a color-mix of the contract's --sea rather than the
|
|
33
|
-
raw token: 86% over black in light, 91% over white in dark. Every pair now clears 4.5:1 on BOTH of
|
|
34
|
-
its grounds in BOTH modes with about nine percent of headroom, the margin DESIGN.md sets for its
|
|
35
|
-
own thinnest pair. --danger was already clear at 5.58:1 and is untouched. Task 1003303 should carry
|
|
36
|
-
these values, not style.css's.
|
|
37
|
-
|
|
38
|
-
b. THE HALL KEEPS BOTH MODES. The apex went dark only (ADR 0204) and light is now "the builders'
|
|
39
|
-
hall's alone, its own hall-theme switch, untouched". The hall's switch writes html[data-theme],
|
|
40
|
-
NOT html[data-mode] - so the dark tier below is written FOUR times, not twice: the world's two
|
|
41
|
-
(data-mode + prefers-color-scheme, which is what check-mock.js measures and what the landing and
|
|
42
|
-
the hub use) and the hall's own two (data-theme + prefers-color-scheme on :not([data-theme])),
|
|
43
|
-
which is the selector shell.js actually sets. Task 1003303 may collapse this to the hall's pair
|
|
44
|
-
once the mocks are done being read by the kit; the duplication is the round's, not the build's.
|
|
45
|
-
|
|
46
|
-
c. --line IS A WIDTH HERE, NOT A COLOUR. DESIGN.md warns: "--line is a 1px WIDTH here and a hairline
|
|
47
|
-
COLOUR in the hub's sheet; check the name before you port a rule." The hall follows world.css:
|
|
48
|
-
--line is 1px, and the hairline's colour is --rule / --rule-soft. */
|
|
49
|
-
|
|
50
|
-
:root {
|
|
51
|
-
color-scheme: light;
|
|
52
|
-
|
|
53
|
-
/* ---- the contract tier: the thirteen colours and two faces a host pack overrides, and nothing
|
|
54
|
-
else. Values are config/branding.neutral.json theme.ui exactly (serve-internal.js COLOR_VARS
|
|
55
|
-
re-declares these from the pack AFTER every stylesheet, so a host still wins). ---- */
|
|
56
|
-
--bg: #edecee;
|
|
57
|
-
--bg-card: #fbfafc;
|
|
58
|
-
--bg-deep: #e2e1e4;
|
|
59
|
-
--bg-frame: #f6f5f7;
|
|
60
|
-
--ink: #17181a;
|
|
61
|
-
--ink-soft: #55565a;
|
|
62
|
-
--ink-faint: #65656a;
|
|
63
|
-
--rule: #c6c6c8;
|
|
64
|
-
--rule-soft: #dcdbdd;
|
|
65
|
-
--accent: #fb9569;
|
|
66
|
-
--accent-deep: #a3481a;
|
|
67
|
-
--sea: #5b6fd0;
|
|
68
|
-
--terracotta: #c9512c;
|
|
69
|
-
--font-display: "Manrope", "Segoe UI", system-ui, -apple-system, sans-serif;
|
|
70
|
-
--font-body: "Manrope", "Segoe UI", system-ui, -apple-system, sans-serif;
|
|
71
|
-
|
|
72
|
-
/* ---- derived: the third face. Mono is where the hall quotes the machine - task ids, column heads,
|
|
73
|
-
eyebrows, the rank label, a credit figure's unit. ---- */
|
|
74
|
-
--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
|
|
75
|
-
|
|
76
|
-
/* ---- derived: the void. The hall has no hero, so the void is only what a control needs when it sits
|
|
77
|
-
over the plate in v3 - the one version that puts a rendered ground behind the shell. ---- */
|
|
78
|
-
--void: #050508;
|
|
79
|
-
--void-ink: #ffffff;
|
|
80
|
-
--void-ink-soft: rgba(255, 255, 255, .70);
|
|
81
|
-
--void-edge: rgba(23, 24, 26, .12);
|
|
82
|
-
--void-pill: rgba(0, 0, 0, .5);
|
|
83
|
-
--void-glass: rgba(23, 24, 26, .05);
|
|
84
|
-
--void-glass-strong: rgba(23, 24, 26, .09);
|
|
85
|
-
|
|
86
|
-
/* ---- derived: glass. Blur is a token because light glass over paper is a tint, not a frost. ---- */
|
|
87
|
-
--glass: rgba(23, 24, 26, .05);
|
|
88
|
-
--glass-strong: rgba(23, 24, 26, .08);
|
|
89
|
-
--glass-edge: rgba(23, 24, 26, .12);
|
|
90
|
-
--glass-blur: 0px;
|
|
91
|
-
|
|
92
|
-
/* ---- derived: the skeleton tone. A hall problem the landing never had, because every hall page
|
|
93
|
-
loads and the landing does not. The obvious choice, --bg-deep, is WRONG in dark: DESIGN.md
|
|
94
|
-
says "in dark, deep collapses back to black", so --bg-deep and --bg are the same value and a
|
|
95
|
-
skeleton painted with it is invisible on the black ground. This mix reads in BOTH modes and
|
|
96
|
-
needs no dark twin, because both of its terms already flip. Found by the task archetype's
|
|
97
|
-
build during this round; every archetype had solved it privately, so it is promoted here
|
|
98
|
-
rather than left for 27 pages to reinvent. ---- */
|
|
99
|
-
--skeleton: color-mix(in srgb, var(--ink) 10%, var(--bg-card));
|
|
100
|
-
|
|
101
|
-
/* ---- derived: the reading measure. THE ch UNIT IS NOT A CHARACTER, and on this face the gap is
|
|
102
|
-
large enough to have already shipped a bug. A ch is the width of the font's ZERO glyph, and
|
|
103
|
-
Manrope's zero is much wider than its average lowercase, so 58ch renders about 72 characters.
|
|
104
|
-
DESIGN.md asks for "max 56 to 62ch" for body copy; read as CSS ch that is roughly 70 to 77
|
|
105
|
-
characters, well outside the measure it means. The live primer is the worked example:
|
|
106
|
-
primer.css:138 sets `max-width: 72ch` under a comment reading "Roughly 60-72ch at 17px body",
|
|
107
|
-
and it renders about 90 characters, which is the biggest reading defect on the page today.
|
|
108
|
-
This token is MEASURED, not declared: 48ch renders ~60 characters at the hall's body size on
|
|
109
|
-
Manrope. A surface wanting a different measure should re-measure rather than do the ch maths.
|
|
110
|
-
Found by the reading archetype's build during this round. ---- */
|
|
111
|
-
--measure: 48ch;
|
|
112
|
-
|
|
113
|
-
/* ---- derived: accent behaviours. The One Warm Thing Rule holds in the hall too: the accent lights
|
|
114
|
-
only what is pressable or live - the claim button, the current nav item, the active tab, the
|
|
115
|
-
lit lifecycle step, a focus ring. A credit figure is data, not live, so it is ink. ---- */
|
|
116
|
-
--accent-ink: color-mix(in srgb, var(--accent) 45%, #240e00);
|
|
117
|
-
--accent-lift: color-mix(in srgb, var(--accent) 58%, #ffffff);
|
|
118
|
-
--accent-tint: color-mix(in srgb, var(--accent) 30%, #fffdf9);
|
|
119
|
-
--accent-on: #2a1305;
|
|
120
|
-
--accent-glow: 0 0 0 0 transparent;
|
|
121
|
-
|
|
122
|
-
/* ---- the status vocabulary: FIXED, not pack-driven, not accent-derived. See note (a) above:
|
|
123
|
-
ok, warn and info are RE-MEASURED against the chrome world's paper, not style.css's values. ---- */
|
|
124
|
-
--ok: #187444;
|
|
125
|
-
--ok-weak: color-mix(in srgb, #187444 12%, var(--bg-card));
|
|
126
|
-
--warn: #895c00;
|
|
127
|
-
--warn-weak: color-mix(in srgb, #895c00 14%, var(--bg-card));
|
|
128
|
-
--danger: #b42318;
|
|
129
|
-
--danger-weak: color-mix(in srgb, #b42318 10%, var(--bg-card));
|
|
130
|
-
--info: color-mix(in srgb, var(--sea) 86%, #000000);
|
|
131
|
-
--info-weak: color-mix(in srgb, var(--sea) 11%, var(--bg-card));
|
|
132
|
-
|
|
133
|
-
/* ---- derived: focus. The world's two-tone ring - a 2px accent-derived outline at 3px offset inside
|
|
134
|
-
an 8px --bg halo, so the indicator keeps its own edge over whatever it lands on. ---- */
|
|
135
|
-
--focus: color-mix(in srgb, var(--accent-deep) 82%, #3a1400);
|
|
136
|
-
|
|
137
|
-
/* ---- derived: the label face flips. Mono caps read as precise on paper and thin on black, so light
|
|
138
|
-
takes JetBrains Mono and dark takes the body face. Take the token, never the family. ---- */
|
|
139
|
-
--label-face: var(--font-mono);
|
|
140
|
-
--label-size: 11px;
|
|
141
|
-
--label-space: .12em;
|
|
142
|
-
--label-case: uppercase;
|
|
143
|
-
|
|
144
|
-
/* ---- derived: type halo. Only v3 writes type over a plate; in light there is nothing behind. ---- */
|
|
145
|
-
--type-halo: none;
|
|
146
|
-
|
|
147
|
-
/* ---- structure. --line is a WIDTH (see note c). ---- */
|
|
148
|
-
--line: 1px;
|
|
149
|
-
--radius: 16px;
|
|
150
|
-
--radius-sm: 10px;
|
|
151
|
-
--radius-pill: 999px;
|
|
152
|
-
|
|
153
|
-
/* ---- the shell's metrics. Names kept from style.css so task 1003303 ports rather than rewrites.
|
|
154
|
-
--topbar-h stays under the kit's 80px top-bar floor. ---- */
|
|
155
|
-
--top-h: 56px;
|
|
156
|
-
--topbar-h: 56px;
|
|
157
|
-
--sidebar-w: 240px;
|
|
158
|
-
--sidebar-w-rail: 64px;
|
|
159
|
-
--content-max: 1120px;
|
|
160
|
-
|
|
161
|
-
/* ---- spacing. DESIGN.md's rhythm (6 / 10 / 14 / 22 / 34 / 52) replaces style.css's four-step
|
|
162
|
-
--space-* scale; the old names alias onto it so no ported rule breaks. ---- */
|
|
163
|
-
--sp-hair: 6px;
|
|
164
|
-
--sp-xs: 10px;
|
|
165
|
-
--sp-sm: 14px;
|
|
166
|
-
--sp-md: 22px;
|
|
167
|
-
--sp-lg: 34px;
|
|
168
|
-
--sp-xl: 52px;
|
|
169
|
-
--space-1: var(--sp-hair);
|
|
170
|
-
--space-2: var(--sp-xs);
|
|
171
|
-
--space-3: var(--sp-sm);
|
|
172
|
-
--space-4: var(--sp-md);
|
|
173
|
-
|
|
174
|
-
/* ---- the z ladder, unchanged from style.css ---- */
|
|
175
|
-
--z-topbar: 30;
|
|
176
|
-
--z-sidebar: 40;
|
|
177
|
-
--z-scrim: 140;
|
|
178
|
-
--z-drawer: 150;
|
|
179
|
-
|
|
180
|
-
/* ---- the hall's own plate. DESIGN.md: "another surface adds its own and does not borrow these -
|
|
181
|
-
the hall's forest plate, for instance, is the hall's." Round 1 shot it; only v3 renders it,
|
|
182
|
-
and only in dark, where a black-ground plate composites with lighten and leaves no seam. ---- */
|
|
183
|
-
--plate: none;
|
|
184
|
-
--plate-blend: lighten;
|
|
185
|
-
--plate-veil: none;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
/* ---- dark, written for the world's switch (what check-mock.js and the kit measure) ---- */
|
|
189
|
-
:root[data-mode="dark"] {
|
|
190
|
-
color-scheme: dark;
|
|
191
|
-
--bg: #000000;
|
|
192
|
-
--bg-card: #101012;
|
|
193
|
-
--bg-deep: #000000;
|
|
194
|
-
--bg-frame: #08080a;
|
|
195
|
-
--ink: #ffffff;
|
|
196
|
-
--ink-soft: #c0c0c0;
|
|
197
|
-
--ink-faint: #a8a8a8;
|
|
198
|
-
--rule: rgba(255, 255, 255, .16);
|
|
199
|
-
--rule-soft: rgba(255, 255, 255, .08);
|
|
200
|
-
--void: #000000;
|
|
201
|
-
--void-ink: var(--ink);
|
|
202
|
-
--void-ink-soft: var(--ink-soft);
|
|
203
|
-
--void-edge: rgba(255, 255, 255, .16);
|
|
204
|
-
--void-glass: rgba(255, 255, 255, .075);
|
|
205
|
-
--void-glass-strong: rgba(255, 255, 255, .14);
|
|
206
|
-
--glass: rgba(255, 255, 255, .11);
|
|
207
|
-
--glass-strong: rgba(255, 255, 255, .17);
|
|
208
|
-
--glass-edge: rgba(255, 255, 255, .13);
|
|
209
|
-
--glass-blur: 18px;
|
|
210
|
-
--accent-ink: var(--accent);
|
|
211
|
-
--accent-tint: color-mix(in srgb, var(--accent) 22%, #0b0a09);
|
|
212
|
-
--accent-glow: 0 8px 28px color-mix(in srgb, var(--accent) 38%, transparent);
|
|
213
|
-
--ok: #4ade80;
|
|
214
|
-
--ok-weak: color-mix(in srgb, #4ade80 14%, var(--bg-card));
|
|
215
|
-
--warn: #fbbf24;
|
|
216
|
-
--warn-weak: color-mix(in srgb, #fbbf24 14%, var(--bg-card));
|
|
217
|
-
--danger: #f87171;
|
|
218
|
-
--danger-weak: color-mix(in srgb, #f87171 14%, var(--bg-card));
|
|
219
|
-
--info: color-mix(in srgb, var(--sea) 91%, #ffffff);
|
|
220
|
-
--info-weak: color-mix(in srgb, var(--sea) 18%, var(--bg-card));
|
|
221
|
-
--focus: var(--accent);
|
|
222
|
-
--label-face: var(--font-body);
|
|
223
|
-
--label-size: 11.5px;
|
|
224
|
-
--label-space: .1em;
|
|
225
|
-
--type-halo: 0 2px 18px rgba(0, 0, 0, .94), 0 0 54px rgba(0, 0, 0, .72);
|
|
226
|
-
--plate-veil: linear-gradient(to bottom, rgba(0, 0, 0, .82), rgba(0, 0, 0, .93));
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
@media (prefers-color-scheme: dark) {
|
|
230
|
-
:root:not([data-mode="light"]) {
|
|
231
|
-
color-scheme: dark;
|
|
232
|
-
--bg: #000000;
|
|
233
|
-
--bg-card: #101012;
|
|
234
|
-
--bg-deep: #000000;
|
|
235
|
-
--bg-frame: #08080a;
|
|
236
|
-
--ink: #ffffff;
|
|
237
|
-
--ink-soft: #c0c0c0;
|
|
238
|
-
--ink-faint: #a8a8a8;
|
|
239
|
-
--rule: rgba(255, 255, 255, .16);
|
|
240
|
-
--rule-soft: rgba(255, 255, 255, .08);
|
|
241
|
-
--void: #000000;
|
|
242
|
-
--void-ink: var(--ink);
|
|
243
|
-
--void-ink-soft: var(--ink-soft);
|
|
244
|
-
--void-edge: rgba(255, 255, 255, .16);
|
|
245
|
-
--void-glass: rgba(255, 255, 255, .075);
|
|
246
|
-
--void-glass-strong: rgba(255, 255, 255, .14);
|
|
247
|
-
--glass: rgba(255, 255, 255, .11);
|
|
248
|
-
--glass-strong: rgba(255, 255, 255, .17);
|
|
249
|
-
--glass-edge: rgba(255, 255, 255, .13);
|
|
250
|
-
--glass-blur: 18px;
|
|
251
|
-
--accent-ink: var(--accent);
|
|
252
|
-
--accent-tint: color-mix(in srgb, var(--accent) 22%, #0b0a09);
|
|
253
|
-
--accent-glow: 0 8px 28px color-mix(in srgb, var(--accent) 38%, transparent);
|
|
254
|
-
--ok: #4ade80;
|
|
255
|
-
--ok-weak: color-mix(in srgb, #4ade80 14%, var(--bg-card));
|
|
256
|
-
--warn: #fbbf24;
|
|
257
|
-
--warn-weak: color-mix(in srgb, #fbbf24 14%, var(--bg-card));
|
|
258
|
-
--danger: #f87171;
|
|
259
|
-
--danger-weak: color-mix(in srgb, #f87171 14%, var(--bg-card));
|
|
260
|
-
--info: color-mix(in srgb, var(--sea) 91%, #ffffff);
|
|
261
|
-
--info-weak: color-mix(in srgb, var(--sea) 18%, var(--bg-card));
|
|
262
|
-
--focus: var(--accent);
|
|
263
|
-
--label-face: var(--font-body);
|
|
264
|
-
--label-size: 11.5px;
|
|
265
|
-
--label-space: .1em;
|
|
266
|
-
--type-halo: 0 2px 18px rgba(0, 0, 0, .94), 0 0 54px rgba(0, 0, 0, .72);
|
|
267
|
-
--plate-veil: linear-gradient(to bottom, rgba(0, 0, 0, .82), rgba(0, 0, 0, .93));
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
/* ---- dark again, for the hall's OWN switch: shell.js writes html[data-theme], not [data-mode].
|
|
272
|
-
See note (b): these two blocks are what the shipped hall would actually use. ---- */
|
|
273
|
-
html[data-theme="dark"] {
|
|
274
|
-
color-scheme: dark;
|
|
275
|
-
--bg: #000000;
|
|
276
|
-
--bg-card: #101012;
|
|
277
|
-
--bg-deep: #000000;
|
|
278
|
-
--bg-frame: #08080a;
|
|
279
|
-
--ink: #ffffff;
|
|
280
|
-
--ink-soft: #c0c0c0;
|
|
281
|
-
--ink-faint: #a8a8a8;
|
|
282
|
-
--rule: rgba(255, 255, 255, .16);
|
|
283
|
-
--rule-soft: rgba(255, 255, 255, .08);
|
|
284
|
-
--void: #000000;
|
|
285
|
-
--void-ink: var(--ink);
|
|
286
|
-
--void-ink-soft: var(--ink-soft);
|
|
287
|
-
--void-edge: rgba(255, 255, 255, .16);
|
|
288
|
-
--void-glass: rgba(255, 255, 255, .075);
|
|
289
|
-
--void-glass-strong: rgba(255, 255, 255, .14);
|
|
290
|
-
--glass: rgba(255, 255, 255, .11);
|
|
291
|
-
--glass-strong: rgba(255, 255, 255, .17);
|
|
292
|
-
--glass-edge: rgba(255, 255, 255, .13);
|
|
293
|
-
--glass-blur: 18px;
|
|
294
|
-
--accent-ink: var(--accent);
|
|
295
|
-
--accent-tint: color-mix(in srgb, var(--accent) 22%, #0b0a09);
|
|
296
|
-
--accent-glow: 0 8px 28px color-mix(in srgb, var(--accent) 38%, transparent);
|
|
297
|
-
--ok: #4ade80;
|
|
298
|
-
--ok-weak: color-mix(in srgb, #4ade80 14%, var(--bg-card));
|
|
299
|
-
--warn: #fbbf24;
|
|
300
|
-
--warn-weak: color-mix(in srgb, #fbbf24 14%, var(--bg-card));
|
|
301
|
-
--danger: #f87171;
|
|
302
|
-
--danger-weak: color-mix(in srgb, #f87171 14%, var(--bg-card));
|
|
303
|
-
--info: color-mix(in srgb, var(--sea) 91%, #ffffff);
|
|
304
|
-
--info-weak: color-mix(in srgb, var(--sea) 18%, var(--bg-card));
|
|
305
|
-
--focus: var(--accent);
|
|
306
|
-
--label-face: var(--font-body);
|
|
307
|
-
--label-size: 11.5px;
|
|
308
|
-
--label-space: .1em;
|
|
309
|
-
--type-halo: 0 2px 18px rgba(0, 0, 0, .94), 0 0 54px rgba(0, 0, 0, .72);
|
|
310
|
-
--plate-veil: linear-gradient(to bottom, rgba(0, 0, 0, .82), rgba(0, 0, 0, .93));
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
@media (prefers-color-scheme: dark) {
|
|
314
|
-
html:not([data-theme]) {
|
|
315
|
-
color-scheme: dark;
|
|
316
|
-
--bg: #000000;
|
|
317
|
-
--bg-card: #101012;
|
|
318
|
-
--bg-deep: #000000;
|
|
319
|
-
--bg-frame: #08080a;
|
|
320
|
-
--ink: #ffffff;
|
|
321
|
-
--ink-soft: #c0c0c0;
|
|
322
|
-
--ink-faint: #a8a8a8;
|
|
323
|
-
--rule: rgba(255, 255, 255, .16);
|
|
324
|
-
--rule-soft: rgba(255, 255, 255, .08);
|
|
325
|
-
--void: #000000;
|
|
326
|
-
--void-ink: var(--ink);
|
|
327
|
-
--void-ink-soft: var(--ink-soft);
|
|
328
|
-
--void-edge: rgba(255, 255, 255, .16);
|
|
329
|
-
--void-glass: rgba(255, 255, 255, .075);
|
|
330
|
-
--void-glass-strong: rgba(255, 255, 255, .14);
|
|
331
|
-
--glass: rgba(255, 255, 255, .11);
|
|
332
|
-
--glass-strong: rgba(255, 255, 255, .17);
|
|
333
|
-
--glass-edge: rgba(255, 255, 255, .13);
|
|
334
|
-
--glass-blur: 18px;
|
|
335
|
-
--accent-ink: var(--accent);
|
|
336
|
-
--accent-tint: color-mix(in srgb, var(--accent) 22%, #0b0a09);
|
|
337
|
-
--accent-glow: 0 8px 28px color-mix(in srgb, var(--accent) 38%, transparent);
|
|
338
|
-
--ok: #4ade80;
|
|
339
|
-
--ok-weak: color-mix(in srgb, #4ade80 14%, var(--bg-card));
|
|
340
|
-
--warn: #fbbf24;
|
|
341
|
-
--warn-weak: color-mix(in srgb, #fbbf24 14%, var(--bg-card));
|
|
342
|
-
--danger: #f87171;
|
|
343
|
-
--danger-weak: color-mix(in srgb, #f87171 14%, var(--bg-card));
|
|
344
|
-
--info: color-mix(in srgb, var(--sea) 91%, #ffffff);
|
|
345
|
-
--info-weak: color-mix(in srgb, var(--sea) 18%, var(--bg-card));
|
|
346
|
-
--focus: var(--accent);
|
|
347
|
-
--label-face: var(--font-body);
|
|
348
|
-
--label-size: 11.5px;
|
|
349
|
-
--label-space: .1em;
|
|
350
|
-
--type-halo: 0 2px 18px rgba(0, 0, 0, .94), 0 0 54px rgba(0, 0, 0, .72);
|
|
351
|
-
--plate-veil: linear-gradient(to bottom, rgba(0, 0, 0, .82), rgba(0, 0, 0, .93));
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
/* ---- THE RAIL SWITCH DELIBERATELY DOES NOT LIVE HERE. style.css collapses the sidebar to 64px at
|
|
356
|
-
1024px today, and an earlier draft of this file carried that as
|
|
357
|
-
`@media (max-width:1024px){ :root { --sidebar-w: var(--sidebar-w-rail); } }`. That is broken,
|
|
358
|
-
and the way it breaks is worth writing down because task 1003303 will be tempted to re-add it:
|
|
359
|
-
the mock contract requires a page to declare its tokens on `body`, and a `body` declaration
|
|
360
|
-
beats an INHERITED `:root` value at every width, so a page that sets --sidebar-w at all
|
|
361
|
-
silently defeats the query. It is also rule 4 of the recipe in this file's own header, which
|
|
362
|
-
the draft broke: composition belongs on the page's body, and the rail breakpoint is
|
|
363
|
-
composition. Each version therefore states its own rail and drawer breakpoints on `body`,
|
|
364
|
-
which is also what lets v3 hold the rail at every width instead of only under 1024. Found by
|
|
365
|
-
the board archetype's build during this round. ---- */
|
|
366
|
-
|
|
367
|
-
/* ---- The Kill Switch Rule. Nothing escapes it, and no motion is authored in JavaScript. ---- */
|
|
368
|
-
@media (prefers-reduced-motion: reduce) {
|
|
369
|
-
*, *::before, *::after { animation: none !important; transition: none !important; }
|
|
370
|
-
}
|