@bongos/core 1.19.387 → 1.19.388
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 +130 -50
- package/config/branding.neutral.json +19 -19
- package/config/design-tokens.neutral.json +31 -36
- package/docs/adr/0196-chrome-world-token-contract-and-the-landing-sheets.md +31 -0
- package/docs/adr/README.md +1 -0
- package/docs/branding-contract.md +1 -1
- package/docs/copy-inventory.md +78 -53
- package/docs/copy-registry.json +389 -120
- package/docs/file-map.md +14 -0
- package/modules/dev-box/app/assets/tray/win-alert.png +0 -0
- package/modules/dev-box/app/assets/tray/win-busy.png +0 -0
- package/modules/dev-box/app/assets/tray/win-off.png +0 -0
- package/modules/dev-box/app/assets/tray/win-on.png +0 -0
- package/modules/dev-box/app/build-resources/dmg-background.png +0 -0
- package/modules/dev-box/app/build-resources/dmg-background@2x.png +0 -0
- package/modules/dev-box/app/build-resources/icon.png +0 -0
- package/modules/dev-box/app/renderer/index.html +1 -1
- package/modules/dev-box/app/renderer/styles.css +3 -1
- package/modules/dev-box/app/renderer/theme.generated.css +13 -13
- package/modules/dev-box/app/scripts/gen-brand.js +13 -13
- package/modules/dev-box/app/scripts/gen-dmg-backdrop.py +3 -3
- package/modules/dev-box/app/scripts/gen-icons.js +3 -3
- package/modules/dev-box/app/src/brand.generated.json +1 -1
- package/modules/provisioning/routes/provisioning.js +4 -4
- package/modules/status-ui/public/explore.html +12 -6
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/public-landing/assets/cosmos.css +82 -64
- package/public-landing/assets/world/og-card.jpg +0 -0
- package/public-landing/assets/world/r2-bongos-chrome-a-cut.webp +0 -0
- package/public-landing/assets/world/r2-bongos-chrome-a-cut.webp.json +12 -0
- package/public-landing/assets/world/r2-bongos-chrome-b.jpg +0 -0
- package/public-landing/assets/world/r2-bongos-chrome-b.jpg.json +12 -0
- package/public-landing/assets/world/r2-chrome-blob-one-cut.webp +0 -0
- package/public-landing/assets/world/r2-chrome-blob-one-cut.webp.json +13 -0
- package/public-landing/assets/world/r2-chrome-blob-one.jpg +0 -0
- package/public-landing/assets/world/r2-chrome-blob-one.jpg.json +12 -0
- package/public-landing/assets/world/r2-chrome-blobs-set-cut.webp +0 -0
- package/public-landing/assets/world/r2-chrome-blobs-set-cut.webp.json +13 -0
- package/public-landing/assets/world/r2-chrome-blobs-set.jpg +0 -0
- package/public-landing/assets/world/r2-chrome-blobs-set.jpg.json +12 -0
- package/public-landing/assets/world.css +241 -0
- package/public-landing/contact.html +1 -1
- package/public-landing/index.html +1139 -580
- package/public-landing/privacy.html +1 -1
- package/public-landing/projects.html +2 -2
- package/public-landing/terms.html +1 -1
- package/src/bongos/platform-visibility-gate.js +8 -7
- package/src/bongos/stealth-gate.js +9 -8
- package/src/module-api.js +3 -1
- package/src/ui/adapters/claude-design/index.js +2 -2
- package/tests/cloud_bongos_pack.mjs +22 -18
- package/tests/cosmos_token_contrast.mjs +23 -8
- package/tests/landing_legal_pages.mjs +8 -5
- package/tests/landing_page.mjs +295 -166
- package/tests/platform_boot.mjs +3 -1
- package/tests/projects_hub.mjs +9 -5
- package/tests/projects_hub_pre_uat.mjs +3 -1
- package/tests/world_tokens.mjs +351 -0
package/.bongos-core.json
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
"artifact": "bongos-core",
|
|
3
3
|
"manifest_schema": 1,
|
|
4
4
|
"generator": "scripts/gds/package-core.js",
|
|
5
|
-
"core_version": "1.19.
|
|
6
|
-
"core_contract": "1.19.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.19.388",
|
|
6
|
+
"core_contract": "1.19.388",
|
|
7
|
+
"source_commit": "4458912ebde20d0f871c49406b22f782bb091d55",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-08-
|
|
9
|
+
"built_at": "2026-08-27T23:15:30.043Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
|
-
"docs_redacted":
|
|
12
|
+
"docs_redacted": 339,
|
|
13
13
|
"agent_docs_stubbed": 22,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 1619,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 1980,
|
|
20
|
+
"tree_sha256": "b54f206e331f024b81b8e2625069e9ba55b966cb845e06547fc11ac3e8faba85",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/blocker-review/SKILL.md",
|
|
@@ -382,12 +382,12 @@
|
|
|
382
382
|
{
|
|
383
383
|
"path": "config/branding.neutral.json",
|
|
384
384
|
"mode": "0000644",
|
|
385
|
-
"sha256": "
|
|
385
|
+
"sha256": "3a33874b9f783dd3cbf25c606d7e72679342422755c4b27e07ab4d0f97b4f345"
|
|
386
386
|
},
|
|
387
387
|
{
|
|
388
388
|
"path": "config/design-tokens.neutral.json",
|
|
389
389
|
"mode": "0000644",
|
|
390
|
-
"sha256": "
|
|
390
|
+
"sha256": "386558d2c902f81b4b9a9cb74aa41b89e7195e5cba5ec043f96fc7beab899630"
|
|
391
391
|
},
|
|
392
392
|
{
|
|
393
393
|
"path": "config/design-tokens.schema.json",
|
|
@@ -1474,10 +1474,15 @@
|
|
|
1474
1474
|
"mode": "0000644",
|
|
1475
1475
|
"sha256": "bef44bdf75d61a0e7f076b78d384c4523cb706e5a1023768daa232feee6898aa"
|
|
1476
1476
|
},
|
|
1477
|
+
{
|
|
1478
|
+
"path": "docs/adr/0196-chrome-world-token-contract-and-the-landing-sheets.md",
|
|
1479
|
+
"mode": "0000644",
|
|
1480
|
+
"sha256": "838197eef10523949529e6ca906a8b489e5a512df8915a48dc0edb15414a390e"
|
|
1481
|
+
},
|
|
1477
1482
|
{
|
|
1478
1483
|
"path": "docs/adr/README.md",
|
|
1479
1484
|
"mode": "0000644",
|
|
1480
|
-
"sha256": "
|
|
1485
|
+
"sha256": "f8fb053b786e60f3213e0038c994f10492c87fa24ec89deeb8bea66182356285"
|
|
1481
1486
|
},
|
|
1482
1487
|
{
|
|
1483
1488
|
"path": "docs/api-reference.md",
|
|
@@ -1497,7 +1502,7 @@
|
|
|
1497
1502
|
{
|
|
1498
1503
|
"path": "docs/branding-contract.md",
|
|
1499
1504
|
"mode": "0000644",
|
|
1500
|
-
"sha256": "
|
|
1505
|
+
"sha256": "673b1cf2d9ca0f658d59f04b6f972a4e8bbdb6097d7fa3b6b3332f591a195e01"
|
|
1501
1506
|
},
|
|
1502
1507
|
{
|
|
1503
1508
|
"path": "docs/branding-fill-prompt.md",
|
|
@@ -1512,12 +1517,12 @@
|
|
|
1512
1517
|
{
|
|
1513
1518
|
"path": "docs/copy-inventory.md",
|
|
1514
1519
|
"mode": "0000644",
|
|
1515
|
-
"sha256": "
|
|
1520
|
+
"sha256": "17ead5156e550c0c2f1754a6296d578e05c4185ea3eb27c4a5c7900f757e2688"
|
|
1516
1521
|
},
|
|
1517
1522
|
{
|
|
1518
1523
|
"path": "docs/copy-registry.json",
|
|
1519
1524
|
"mode": "0000644",
|
|
1520
|
-
"sha256": "
|
|
1525
|
+
"sha256": "a612166dc9f945ad0a7f32d8d13c86b1cc080f2214305d1408790f1a1ddbbe4d"
|
|
1521
1526
|
},
|
|
1522
1527
|
{
|
|
1523
1528
|
"path": "docs/design-contract.md",
|
|
@@ -1787,7 +1792,7 @@
|
|
|
1787
1792
|
{
|
|
1788
1793
|
"path": "docs/file-map.md",
|
|
1789
1794
|
"mode": "0000644",
|
|
1790
|
-
"sha256": "
|
|
1795
|
+
"sha256": "d68a8b0fd3177afadb529f65e1953efecb66c4649161858b7d62a287bb1e1483"
|
|
1791
1796
|
},
|
|
1792
1797
|
{
|
|
1793
1798
|
"path": "docs/handoff-template.md",
|
|
@@ -2922,37 +2927,37 @@
|
|
|
2922
2927
|
{
|
|
2923
2928
|
"path": "modules/dev-box/app/assets/tray/win-alert.png",
|
|
2924
2929
|
"mode": "0000644",
|
|
2925
|
-
"sha256": "
|
|
2930
|
+
"sha256": "147cc492e6b476a53c47812abe630307d7bc09da5b7e270e93f47bf05a5ed320"
|
|
2926
2931
|
},
|
|
2927
2932
|
{
|
|
2928
2933
|
"path": "modules/dev-box/app/assets/tray/win-busy.png",
|
|
2929
2934
|
"mode": "0000644",
|
|
2930
|
-
"sha256": "
|
|
2935
|
+
"sha256": "9acd0b763574404341fd46f27d325f04380067d815b7d88b34ea2f6ad2fdcfc7"
|
|
2931
2936
|
},
|
|
2932
2937
|
{
|
|
2933
2938
|
"path": "modules/dev-box/app/assets/tray/win-off.png",
|
|
2934
2939
|
"mode": "0000644",
|
|
2935
|
-
"sha256": "
|
|
2940
|
+
"sha256": "b7837bf4d07f4ae6881015b86cedc3e723b4daefbe11d48f69376a627c58741a"
|
|
2936
2941
|
},
|
|
2937
2942
|
{
|
|
2938
2943
|
"path": "modules/dev-box/app/assets/tray/win-on.png",
|
|
2939
2944
|
"mode": "0000644",
|
|
2940
|
-
"sha256": "
|
|
2945
|
+
"sha256": "2ab550b6e0e769260665c993cd46f26b099083fb8dc3ff7710c52bff5e370378"
|
|
2941
2946
|
},
|
|
2942
2947
|
{
|
|
2943
2948
|
"path": "modules/dev-box/app/build-resources/dmg-background.png",
|
|
2944
2949
|
"mode": "0000644",
|
|
2945
|
-
"sha256": "
|
|
2950
|
+
"sha256": "4a25a6cb527c55958f05df50302622c8699e3e8a3f399fb2ca745d22922ce28a"
|
|
2946
2951
|
},
|
|
2947
2952
|
{
|
|
2948
2953
|
"path": "modules/dev-box/app/build-resources/dmg-background@2x.png",
|
|
2949
2954
|
"mode": "0000644",
|
|
2950
|
-
"sha256": "
|
|
2955
|
+
"sha256": "cc5f356dce2d42addf8686755613ea9bd4881364773a3a9f7a97a39c9becaba0"
|
|
2951
2956
|
},
|
|
2952
2957
|
{
|
|
2953
2958
|
"path": "modules/dev-box/app/build-resources/icon.png",
|
|
2954
2959
|
"mode": "0000644",
|
|
2955
|
-
"sha256": "
|
|
2960
|
+
"sha256": "c0b651d0560e9d4b2d8373bcf8b9379c8a5fbb9d859bfa52c1e533ad46e336fd"
|
|
2956
2961
|
},
|
|
2957
2962
|
{
|
|
2958
2963
|
"path": "modules/dev-box/app/electron-builder.tmpl.yml",
|
|
@@ -2982,17 +2987,17 @@
|
|
|
2982
2987
|
{
|
|
2983
2988
|
"path": "modules/dev-box/app/renderer/index.html",
|
|
2984
2989
|
"mode": "0000644",
|
|
2985
|
-
"sha256": "
|
|
2990
|
+
"sha256": "f1a288c30c6c31c6d8aa9bb5baed639d9b996181bad7738b117994f41fcda233"
|
|
2986
2991
|
},
|
|
2987
2992
|
{
|
|
2988
2993
|
"path": "modules/dev-box/app/renderer/styles.css",
|
|
2989
2994
|
"mode": "0000644",
|
|
2990
|
-
"sha256": "
|
|
2995
|
+
"sha256": "d4dab0456afff72a13d525d32839c059b20011cecb3294046ef6680c9343d912"
|
|
2991
2996
|
},
|
|
2992
2997
|
{
|
|
2993
2998
|
"path": "modules/dev-box/app/renderer/theme.generated.css",
|
|
2994
2999
|
"mode": "0000644",
|
|
2995
|
-
"sha256": "
|
|
3000
|
+
"sha256": "fd5d556295d7109b39f401d363c4c80e274e465474f5e845eba444717606a4db"
|
|
2996
3001
|
},
|
|
2997
3002
|
{
|
|
2998
3003
|
"path": "modules/dev-box/app/scripts/apply-dmg-backdrop.sh",
|
|
@@ -3007,17 +3012,17 @@
|
|
|
3007
3012
|
{
|
|
3008
3013
|
"path": "modules/dev-box/app/scripts/gen-brand.js",
|
|
3009
3014
|
"mode": "0000644",
|
|
3010
|
-
"sha256": "
|
|
3015
|
+
"sha256": "5c1017af9847a0946b8d2683cc7defcc11c2aaed05db5f74aa28c4319dbb848a"
|
|
3011
3016
|
},
|
|
3012
3017
|
{
|
|
3013
3018
|
"path": "modules/dev-box/app/scripts/gen-dmg-backdrop.py",
|
|
3014
3019
|
"mode": "0000644",
|
|
3015
|
-
"sha256": "
|
|
3020
|
+
"sha256": "bc1242276dcffe414719838d44c77cc09d326321b6cabe0ca1a69eb58442ba01"
|
|
3016
3021
|
},
|
|
3017
3022
|
{
|
|
3018
3023
|
"path": "modules/dev-box/app/scripts/gen-icons.js",
|
|
3019
3024
|
"mode": "0000644",
|
|
3020
|
-
"sha256": "
|
|
3025
|
+
"sha256": "13c75937401613a3bf45df6612718949318dc5fcd96b01791adc738d7e0d10eb"
|
|
3021
3026
|
},
|
|
3022
3027
|
{
|
|
3023
3028
|
"path": "modules/dev-box/app/scripts/vendor-client.js",
|
|
@@ -3032,7 +3037,7 @@
|
|
|
3032
3037
|
{
|
|
3033
3038
|
"path": "modules/dev-box/app/src/brand.generated.json",
|
|
3034
3039
|
"mode": "0000644",
|
|
3035
|
-
"sha256": "
|
|
3040
|
+
"sha256": "17f6dca05932f642adf06f7a6682784888cc9ae4401fc1da0453626a07c01da7"
|
|
3036
3041
|
},
|
|
3037
3042
|
{
|
|
3038
3043
|
"path": "modules/dev-box/app/src/brand.js",
|
|
@@ -4817,7 +4822,7 @@
|
|
|
4817
4822
|
{
|
|
4818
4823
|
"path": "modules/provisioning/routes/provisioning.js",
|
|
4819
4824
|
"mode": "0000644",
|
|
4820
|
-
"sha256": "
|
|
4825
|
+
"sha256": "c606e7a1e21ac5fcac92949a169201d46042cfd9486ba6b11369acc08ec0fa3e"
|
|
4821
4826
|
},
|
|
4822
4827
|
{
|
|
4823
4828
|
"path": "modules/provisioning/tests/liveness.mjs",
|
|
@@ -5087,7 +5092,7 @@
|
|
|
5087
5092
|
{
|
|
5088
5093
|
"path": "modules/status-ui/public/explore.html",
|
|
5089
5094
|
"mode": "0000644",
|
|
5090
|
-
"sha256": "
|
|
5095
|
+
"sha256": "e80fc1d5f44667f82761c9732433d1b38f074321024f493be0f74d9c037973ff"
|
|
5091
5096
|
},
|
|
5092
5097
|
{
|
|
5093
5098
|
"path": "modules/status-ui/public/explore.js",
|
|
@@ -5117,12 +5122,12 @@
|
|
|
5117
5122
|
{
|
|
5118
5123
|
"path": "package-lock.json",
|
|
5119
5124
|
"mode": "0000644",
|
|
5120
|
-
"sha256": "
|
|
5125
|
+
"sha256": "11102606096b81deac5e3d59392a487905e92010e257cbaf7136a0fe059dbaa8"
|
|
5121
5126
|
},
|
|
5122
5127
|
{
|
|
5123
5128
|
"path": "package.json",
|
|
5124
5129
|
"mode": "0000644",
|
|
5125
|
-
"sha256": "
|
|
5130
|
+
"sha256": "0c4a59120f7f038cf1e01f2bc30cb083e5ac7e445a51c83961caf4c551c0c7fa"
|
|
5126
5131
|
},
|
|
5127
5132
|
{
|
|
5128
5133
|
"path": "public-docs/index.html",
|
|
@@ -5362,13 +5367,83 @@
|
|
|
5362
5367
|
{
|
|
5363
5368
|
"path": "public-landing/assets/cosmos.css",
|
|
5364
5369
|
"mode": "0000644",
|
|
5365
|
-
"sha256": "
|
|
5370
|
+
"sha256": "53cf1fba6106728c120f6dfc8cc3e3bb7495319a5886462950c39588f0f3293c"
|
|
5366
5371
|
},
|
|
5367
5372
|
{
|
|
5368
5373
|
"path": "public-landing/assets/verro-medallion.png",
|
|
5369
5374
|
"mode": "0000644",
|
|
5370
5375
|
"sha256": "f374d042a0428f956212a11ca9e86870232ab46af4010bd710a15affd374ab45"
|
|
5371
5376
|
},
|
|
5377
|
+
{
|
|
5378
|
+
"path": "public-landing/assets/world.css",
|
|
5379
|
+
"mode": "0000644",
|
|
5380
|
+
"sha256": "02b6130e39fdb20360ecc8feb0afd8343c898f17df1812c140802665eac61248"
|
|
5381
|
+
},
|
|
5382
|
+
{
|
|
5383
|
+
"path": "public-landing/assets/world/og-card.jpg",
|
|
5384
|
+
"mode": "0000644",
|
|
5385
|
+
"sha256": "e70f9096e3679931e16d90fdaa832f593bf25ab20e6b9d2a393e6876bbecb2b5"
|
|
5386
|
+
},
|
|
5387
|
+
{
|
|
5388
|
+
"path": "public-landing/assets/world/r2-bongos-chrome-a-cut.webp",
|
|
5389
|
+
"mode": "0000644",
|
|
5390
|
+
"sha256": "2e611c3b825ec0b181739b6b54c74a39b3a22d2292504a76c14b2f1c9204209c"
|
|
5391
|
+
},
|
|
5392
|
+
{
|
|
5393
|
+
"path": "public-landing/assets/world/r2-bongos-chrome-a-cut.webp.json",
|
|
5394
|
+
"mode": "0000644",
|
|
5395
|
+
"sha256": "50f221a08b09b90741029a16de495d7baf2f92f71d6533b8c59eff6da2fcfaf7"
|
|
5396
|
+
},
|
|
5397
|
+
{
|
|
5398
|
+
"path": "public-landing/assets/world/r2-bongos-chrome-b.jpg",
|
|
5399
|
+
"mode": "0000644",
|
|
5400
|
+
"sha256": "e943b15223781f521aad9ff23486fde5787b776b894b1dc0e93afe16c4b8f9e3"
|
|
5401
|
+
},
|
|
5402
|
+
{
|
|
5403
|
+
"path": "public-landing/assets/world/r2-bongos-chrome-b.jpg.json",
|
|
5404
|
+
"mode": "0000644",
|
|
5405
|
+
"sha256": "80015a04a4d79f88770da3f6bc8322be489682edac149aa8ac1a770cb886ea5e"
|
|
5406
|
+
},
|
|
5407
|
+
{
|
|
5408
|
+
"path": "public-landing/assets/world/r2-chrome-blob-one-cut.webp",
|
|
5409
|
+
"mode": "0000644",
|
|
5410
|
+
"sha256": "7c5dc65d07ccd76d112d0fd828a61877901f620c73502c21e78b7d2b423da67d"
|
|
5411
|
+
},
|
|
5412
|
+
{
|
|
5413
|
+
"path": "public-landing/assets/world/r2-chrome-blob-one-cut.webp.json",
|
|
5414
|
+
"mode": "0000644",
|
|
5415
|
+
"sha256": "1dbbeb93350dcb32907866e258f81a5c4ba59d2018c3a372c95b950013cbac08"
|
|
5416
|
+
},
|
|
5417
|
+
{
|
|
5418
|
+
"path": "public-landing/assets/world/r2-chrome-blob-one.jpg",
|
|
5419
|
+
"mode": "0000644",
|
|
5420
|
+
"sha256": "3a2450c7dec66775d204db28382c70b41a44142102a2f1be7ebf2237e7d4dc19"
|
|
5421
|
+
},
|
|
5422
|
+
{
|
|
5423
|
+
"path": "public-landing/assets/world/r2-chrome-blob-one.jpg.json",
|
|
5424
|
+
"mode": "0000644",
|
|
5425
|
+
"sha256": "9076cb78025a46739ad9d6739ba0b16f28110e5ca1f75960a8973f31c7ebc0fe"
|
|
5426
|
+
},
|
|
5427
|
+
{
|
|
5428
|
+
"path": "public-landing/assets/world/r2-chrome-blobs-set-cut.webp",
|
|
5429
|
+
"mode": "0000644",
|
|
5430
|
+
"sha256": "f7f0e783342932a84e8410f7ecfb0702f28482403be40357a7a04d6103221fa8"
|
|
5431
|
+
},
|
|
5432
|
+
{
|
|
5433
|
+
"path": "public-landing/assets/world/r2-chrome-blobs-set-cut.webp.json",
|
|
5434
|
+
"mode": "0000644",
|
|
5435
|
+
"sha256": "b60669bc65478247ea24de3e3b2ec6de0d99a89446b0b9464630ea57b685b9fa"
|
|
5436
|
+
},
|
|
5437
|
+
{
|
|
5438
|
+
"path": "public-landing/assets/world/r2-chrome-blobs-set.jpg",
|
|
5439
|
+
"mode": "0000644",
|
|
5440
|
+
"sha256": "0c337e9f193b379638a30924c651ad365a25b1d84b7f988ccf4e360ffa2ed90e"
|
|
5441
|
+
},
|
|
5442
|
+
{
|
|
5443
|
+
"path": "public-landing/assets/world/r2-chrome-blobs-set.jpg.json",
|
|
5444
|
+
"mode": "0000644",
|
|
5445
|
+
"sha256": "2a5f75efe5cbb8181852f662b70c820a1d55aaef5be5ec6ae304e75c22a929d5"
|
|
5446
|
+
},
|
|
5372
5447
|
{
|
|
5373
5448
|
"path": "public-landing/buddha.png",
|
|
5374
5449
|
"mode": "0000644",
|
|
@@ -5377,27 +5452,27 @@
|
|
|
5377
5452
|
{
|
|
5378
5453
|
"path": "public-landing/contact.html",
|
|
5379
5454
|
"mode": "0000644",
|
|
5380
|
-
"sha256": "
|
|
5455
|
+
"sha256": "f8badb9283f0ef534b291f83daa1041bbcc9b20c11223ce080bffd1976a8b6be"
|
|
5381
5456
|
},
|
|
5382
5457
|
{
|
|
5383
5458
|
"path": "public-landing/index.html",
|
|
5384
5459
|
"mode": "0000644",
|
|
5385
|
-
"sha256": "
|
|
5460
|
+
"sha256": "05079e16fc7cfa02d9b31416a25960eefe969b7522a75ae9c7a228c76ee3ca22"
|
|
5386
5461
|
},
|
|
5387
5462
|
{
|
|
5388
5463
|
"path": "public-landing/privacy.html",
|
|
5389
5464
|
"mode": "0000644",
|
|
5390
|
-
"sha256": "
|
|
5465
|
+
"sha256": "86723749e69f425aff0e2821fbef3572699f795c9de6a71cfd6f2549c6194ef0"
|
|
5391
5466
|
},
|
|
5392
5467
|
{
|
|
5393
5468
|
"path": "public-landing/projects.html",
|
|
5394
5469
|
"mode": "0000644",
|
|
5395
|
-
"sha256": "
|
|
5470
|
+
"sha256": "da2b7c197dda6f975eb660fb51c88e037a4ea94e7e4164e7282f33602e6c438e"
|
|
5396
5471
|
},
|
|
5397
5472
|
{
|
|
5398
5473
|
"path": "public-landing/terms.html",
|
|
5399
5474
|
"mode": "0000644",
|
|
5400
|
-
"sha256": "
|
|
5475
|
+
"sha256": "f52bde60845b4b9f728bfaee9fb88a8d921c5b56efd1807fef54ffa4d9c63351"
|
|
5401
5476
|
},
|
|
5402
5477
|
{
|
|
5403
5478
|
"path": "public-landing/world/assets/clouds/cloud-island-large.png",
|
|
@@ -6882,7 +6957,7 @@
|
|
|
6882
6957
|
{
|
|
6883
6958
|
"path": "src/bongos/platform-visibility-gate.js",
|
|
6884
6959
|
"mode": "0000644",
|
|
6885
|
-
"sha256": "
|
|
6960
|
+
"sha256": "46a0c76cb57b8d1b65efbcd53b46302e8d4e7ad070f67bc3f4d43c71c8d8d56b"
|
|
6886
6961
|
},
|
|
6887
6962
|
{
|
|
6888
6963
|
"path": "src/bongos/pool.js",
|
|
@@ -7002,7 +7077,7 @@
|
|
|
7002
7077
|
{
|
|
7003
7078
|
"path": "src/bongos/stealth-gate.js",
|
|
7004
7079
|
"mode": "0000644",
|
|
7005
|
-
"sha256": "
|
|
7080
|
+
"sha256": "3f105bd9c578d320a5b88cf4cebb69c63c16f7b7f81dbeb554a78d00461ca97c"
|
|
7006
7081
|
},
|
|
7007
7082
|
{
|
|
7008
7083
|
"path": "src/bongos/uptime-poller.js",
|
|
@@ -7032,7 +7107,7 @@
|
|
|
7032
7107
|
{
|
|
7033
7108
|
"path": "src/module-api.js",
|
|
7034
7109
|
"mode": "0000644",
|
|
7035
|
-
"sha256": "
|
|
7110
|
+
"sha256": "46c4b0ff4b30df23292a087eb1c4678da2706bb8f89ff0c1025b86b6ff35aadc"
|
|
7036
7111
|
},
|
|
7037
7112
|
{
|
|
7038
7113
|
"path": "src/module-loader/catalog.js",
|
|
@@ -7077,7 +7152,7 @@
|
|
|
7077
7152
|
{
|
|
7078
7153
|
"path": "src/ui/adapters/claude-design/index.js",
|
|
7079
7154
|
"mode": "0000644",
|
|
7080
|
-
"sha256": "
|
|
7155
|
+
"sha256": "69ec9f8c405987a67570aca7375e8b29951898775cdb56fa7bc68a74dfcfd10b"
|
|
7081
7156
|
},
|
|
7082
7157
|
{
|
|
7083
7158
|
"path": "src/ui/adapters/figma/index.js",
|
|
@@ -7577,7 +7652,7 @@
|
|
|
7577
7652
|
{
|
|
7578
7653
|
"path": "tests/cloud_bongos_pack.mjs",
|
|
7579
7654
|
"mode": "0000644",
|
|
7580
|
-
"sha256": "
|
|
7655
|
+
"sha256": "7aa52fa81440f628ab8daf45a71b9acd519b16435646464a7419a850773535d9"
|
|
7581
7656
|
},
|
|
7582
7657
|
{
|
|
7583
7658
|
"path": "tests/collab_page.mjs",
|
|
@@ -7627,7 +7702,7 @@
|
|
|
7627
7702
|
{
|
|
7628
7703
|
"path": "tests/cosmos_token_contrast.mjs",
|
|
7629
7704
|
"mode": "0000644",
|
|
7630
|
-
"sha256": "
|
|
7705
|
+
"sha256": "f0622c3c880e39eaa715122748aead92d746ccfa193080a8e09d24aae713082a"
|
|
7631
7706
|
},
|
|
7632
7707
|
{
|
|
7633
7708
|
"path": "tests/cost.mjs",
|
|
@@ -8622,12 +8697,12 @@
|
|
|
8622
8697
|
{
|
|
8623
8698
|
"path": "tests/landing_legal_pages.mjs",
|
|
8624
8699
|
"mode": "0000644",
|
|
8625
|
-
"sha256": "
|
|
8700
|
+
"sha256": "1005d6ea575e1fe71e41f77d227dd65ea69d7d0a6d3d8c787aee3c81154d2dab"
|
|
8626
8701
|
},
|
|
8627
8702
|
{
|
|
8628
8703
|
"path": "tests/landing_page.mjs",
|
|
8629
8704
|
"mode": "0000644",
|
|
8630
|
-
"sha256": "
|
|
8705
|
+
"sha256": "7b5f7ad4fb9863ec7b49adcff1745cca99024018e56b509e8f777f9ad7be05e9"
|
|
8631
8706
|
},
|
|
8632
8707
|
{
|
|
8633
8708
|
"path": "tests/lib_sh_resolution.mjs",
|
|
@@ -8962,7 +9037,7 @@
|
|
|
8962
9037
|
{
|
|
8963
9038
|
"path": "tests/platform_boot.mjs",
|
|
8964
9039
|
"mode": "0000644",
|
|
8965
|
-
"sha256": "
|
|
9040
|
+
"sha256": "fb28eed2a6933805d2af7dc0f8d8e966f921c6556683e1f22b440c2f4a32760d"
|
|
8966
9041
|
},
|
|
8967
9042
|
{
|
|
8968
9043
|
"path": "tests/platform_visibility_gate.mjs",
|
|
@@ -9032,12 +9107,12 @@
|
|
|
9032
9107
|
{
|
|
9033
9108
|
"path": "tests/projects_hub.mjs",
|
|
9034
9109
|
"mode": "0000644",
|
|
9035
|
-
"sha256": "
|
|
9110
|
+
"sha256": "6d2d4c0debb5fe6cc1ed5670e5f556f217b590290fbf0b95e6b4010b17aa4517"
|
|
9036
9111
|
},
|
|
9037
9112
|
{
|
|
9038
9113
|
"path": "tests/projects_hub_pre_uat.mjs",
|
|
9039
9114
|
"mode": "0000644",
|
|
9040
|
-
"sha256": "
|
|
9115
|
+
"sha256": "6a454949fbe19cc62adcba125f5e193f4ee253a8fd92ff310bd65c4d8841c19f"
|
|
9041
9116
|
},
|
|
9042
9117
|
{
|
|
9043
9118
|
"path": "tests/promote_goal_id.mjs",
|
|
@@ -9834,6 +9909,11 @@
|
|
|
9834
9909
|
"mode": "0000644",
|
|
9835
9910
|
"sha256": "367e4c9a63bc8752b94d0fc7af171d34390034adc2a75c8ec15f00b335c077ca"
|
|
9836
9911
|
},
|
|
9912
|
+
{
|
|
9913
|
+
"path": "tests/world_tokens.mjs",
|
|
9914
|
+
"mode": "0000644",
|
|
9915
|
+
"sha256": "7e9c6bc603acd7560c7d13ef792c4212b777105d058b7ff964955c72c65f2d53"
|
|
9916
|
+
},
|
|
9837
9917
|
{
|
|
9838
9918
|
"path": "tests/write_validation_gaps.mjs",
|
|
9839
9919
|
"mode": "0000644",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_note": "Cloud Bongos vanilla brand pack — customer 0, the identity Cloud Bongos itself runs on. The neutral starter every instance resolves over.
|
|
2
|
+
"_note": "Cloud Bongos vanilla brand pack — customer 0, the identity Cloud Bongos itself runs on. The neutral starter every instance resolves over. The LOOK is the chrome world (owner pick 2026-08-27, goal 1000080; built at task 1003298 and recorded in DESIGN.md): a pale grey paper in light and pure black in dark, iridescent liquid-chrome sculpture as the only atmosphere, Manrope light lowercase display type, one warm salmon accent that lights only what is pressable or live. theme.ui is injected by src/bongos/serve-internal.js (R57) as a :root override after every stylesheet: these thirteen colours are LIGHT mode; each surface's stylesheet derives its own dark tier from them (cosmos.css, public-landing/assets/world.css). backdrop is var(--bg) so the body ground follows the mode instead of pinning one. To brand a NEW instance, copy this to config/branding.json and fill it in (docs/branding-fill-prompt.md). See docs/branding-contract.md.",
|
|
3
3
|
"identity": {
|
|
4
4
|
"productName": "Cloud Bongos",
|
|
5
5
|
"worldName": "Cloud Bongos",
|
|
@@ -59,29 +59,29 @@
|
|
|
59
59
|
"mode": "cloud-bongos",
|
|
60
60
|
"ui": {
|
|
61
61
|
"colors": {
|
|
62
|
-
"bg": "#
|
|
63
|
-
"bgCard": "#
|
|
64
|
-
"bgDeep": "#
|
|
65
|
-
"bgFrame": "#
|
|
66
|
-
"ink": "#
|
|
67
|
-
"inkSoft": "#
|
|
68
|
-
"inkFaint": "#
|
|
69
|
-
"rule": "#
|
|
70
|
-
"ruleSoft": "#
|
|
71
|
-
"accent": "#
|
|
72
|
-
"accentDeep": "#
|
|
73
|
-
"sea": "#
|
|
74
|
-
"terracotta": "#
|
|
62
|
+
"bg": "#edecee",
|
|
63
|
+
"bgCard": "#fbfafc",
|
|
64
|
+
"bgDeep": "#e2e1e4",
|
|
65
|
+
"bgFrame": "#f6f5f7",
|
|
66
|
+
"ink": "#17181a",
|
|
67
|
+
"inkSoft": "#55565a",
|
|
68
|
+
"inkFaint": "#65656a",
|
|
69
|
+
"rule": "#c6c6c8",
|
|
70
|
+
"ruleSoft": "#dcdbdd",
|
|
71
|
+
"accent": "#fb9569",
|
|
72
|
+
"accentDeep": "#a3481a",
|
|
73
|
+
"sea": "#5b6fd0",
|
|
74
|
+
"terracotta": "#c9512c"
|
|
75
75
|
},
|
|
76
76
|
"fonts": {
|
|
77
|
-
"display": "\"
|
|
78
|
-
"body": "\"
|
|
77
|
+
"display": "\"Manrope\", \"Segoe UI\", system-ui, -apple-system, sans-serif",
|
|
78
|
+
"body": "\"Manrope\", \"Segoe UI\", system-ui, -apple-system, sans-serif",
|
|
79
79
|
"links": [
|
|
80
|
-
"https://fonts.googleapis.com/css2?family=
|
|
80
|
+
"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400&family=Manrope:wght@300;400;500;600&display=swap"
|
|
81
81
|
]
|
|
82
82
|
},
|
|
83
|
-
"favicon": "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><circle cx='12' cy='17' r='8' fill='%
|
|
84
|
-
"backdrop": "
|
|
83
|
+
"favicon": "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><circle cx='12' cy='17' r='8' fill='%23fb9569'/><circle cx='22' cy='17' r='6' fill='%23c9512c'/><circle cx='12' cy='17' r='3.5' fill='%23fbfafc'/><circle cx='22' cy='17' r='2.5' fill='%23fbfafc'/></svg>",
|
|
84
|
+
"backdrop": "var(--bg)"
|
|
85
85
|
}
|
|
86
86
|
},
|
|
87
87
|
"rankLabels": {
|
|
@@ -1,51 +1,46 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_note": "Cloud Bongos neutral design tokens — the baseline every instance resolves over. To override, copy values into config/design-tokens.json (the instance pack). These match config/branding.neutral.json theme.ui so a vanilla instance with no instance pack still renders correctly. See docs/design-contract.md.",
|
|
3
|
-
|
|
2
|
+
"_note": "Cloud Bongos neutral design tokens — the baseline every instance resolves over. To override, copy values into config/design-tokens.json (the instance pack). These match config/branding.neutral.json theme.ui (the chrome world, task 1003298; tests/design_tokens_sync.mjs fails on drift) so a vanilla instance with no instance pack still renders correctly. The world's derived tokens, materials and motion grammar are recorded in DESIGN.md. See docs/design-contract.md.",
|
|
4
3
|
"colors": {
|
|
5
|
-
"bg":
|
|
6
|
-
"bgCard":
|
|
7
|
-
"bgDeep":
|
|
8
|
-
"bgFrame":
|
|
9
|
-
"ink":
|
|
10
|
-
"inkSoft":
|
|
11
|
-
"inkFaint":
|
|
12
|
-
"rule":
|
|
13
|
-
"ruleSoft":
|
|
14
|
-
"accent":
|
|
15
|
-
"accentDeep": "#
|
|
16
|
-
"sea":
|
|
17
|
-
"terracotta": "#
|
|
4
|
+
"bg": "#edecee",
|
|
5
|
+
"bgCard": "#fbfafc",
|
|
6
|
+
"bgDeep": "#e2e1e4",
|
|
7
|
+
"bgFrame": "#f6f5f7",
|
|
8
|
+
"ink": "#17181a",
|
|
9
|
+
"inkSoft": "#55565a",
|
|
10
|
+
"inkFaint": "#65656a",
|
|
11
|
+
"rule": "#c6c6c8",
|
|
12
|
+
"ruleSoft": "#dcdbdd",
|
|
13
|
+
"accent": "#fb9569",
|
|
14
|
+
"accentDeep": "#a3481a",
|
|
15
|
+
"sea": "#5b6fd0",
|
|
16
|
+
"terracotta": "#c9512c"
|
|
18
17
|
},
|
|
19
|
-
|
|
20
18
|
"fonts": {
|
|
21
|
-
"display": "\"
|
|
22
|
-
"body":
|
|
23
|
-
"mono":
|
|
19
|
+
"display": "\"Manrope\", \"Segoe UI\", system-ui, -apple-system, sans-serif",
|
|
20
|
+
"body": "\"Manrope\", \"Segoe UI\", system-ui, -apple-system, sans-serif",
|
|
21
|
+
"mono": "\"JetBrains Mono\", ui-monospace, \"Cascadia Mono\", Consolas, monospace",
|
|
24
22
|
"links": [
|
|
25
|
-
"https://fonts.googleapis.com/css2?family=
|
|
23
|
+
"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400&family=Manrope:wght@300;400;500;600&display=swap"
|
|
26
24
|
]
|
|
27
25
|
},
|
|
28
|
-
|
|
29
26
|
"scale": {
|
|
30
|
-
"xs":
|
|
31
|
-
"sm":
|
|
32
|
-
"md":
|
|
33
|
-
"lg":
|
|
34
|
-
"xl":
|
|
27
|
+
"xs": "4px",
|
|
28
|
+
"sm": "8px",
|
|
29
|
+
"md": "16px",
|
|
30
|
+
"lg": "24px",
|
|
31
|
+
"xl": "40px",
|
|
35
32
|
"2xl": "64px"
|
|
36
33
|
},
|
|
37
|
-
|
|
38
34
|
"radius": {
|
|
39
|
-
"sm":
|
|
40
|
-
"md":
|
|
41
|
-
"lg":
|
|
42
|
-
"pill": "
|
|
35
|
+
"sm": "10px",
|
|
36
|
+
"md": "16px",
|
|
37
|
+
"lg": "16px",
|
|
38
|
+
"pill": "999px"
|
|
43
39
|
},
|
|
44
|
-
|
|
45
40
|
"motion": {
|
|
46
|
-
"fast":
|
|
47
|
-
"normal": "
|
|
48
|
-
"slow":
|
|
49
|
-
"easing": "cubic-bezier(0.
|
|
41
|
+
"fast": "200ms",
|
|
42
|
+
"normal": "250ms",
|
|
43
|
+
"slow": "700ms",
|
|
44
|
+
"easing": "cubic-bezier(0.16, 1, 0.3, 1)"
|
|
50
45
|
}
|
|
51
46
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# ADR 0196 — The chrome world becomes the token contract; the landing gets its own world sheet beside the hub's
|
|
2
|
+
|
|
3
|
+
- **Status:** accepted
|
|
4
|
+
- **Date:** 2026-08-27
|
|
5
|
+
- **Task:** [task 1003298](https://cloudbongos.com/builders#/task/1003298) (goal 1000080 — Apex UI pass 2; criterion `apex-landing-built-design-recorded`)
|
|
6
|
+
- **Relates to:** ADR 0062 §3/§7 (the branding contract; the core ↔ host split), ADR 0064 (the retired sunrise look), ADR 0081 (the tool-agnostic design layer: `config/design-tokens.*`), ADR 0095 (findability), task 1003296 (the world pick), task 1003297 (the composition pick and the light-mode decision), `docs/design/apex-pass-2-direction.md`, `docs/design/<redacted>.md`, `DESIGN.md` (written from the build this task lands)
|
|
7
|
+
|
|
8
|
+
## Context
|
|
9
|
+
|
|
10
|
+
The owner chose a new visual world for every apex surface (chrome-blobs, composition A; task 1003296) and, for the landing, the composition v3 "the template's page" with light mode rebuilt to the dark standard (task 1003297). The build has to make that world *real* in code that a host instance can still re-theme: every served page gets the pack's `theme.ui` spliced into `<head>` as a plain `:root` after its stylesheet (ADR 0062 §3), so the thirteen colours and two font stacks in `config/branding.neutral.json` are the only colour source the platform may rely on. The hub (`/projects`), the legal pages, the hall and the status pages all read the same pack; the hub's component sheet `public-landing/assets/cosmos.css` was tuned to the sunrise palette and carries its own ~60 derived tokens and the gate's locked space palette.
|
|
11
|
+
|
|
12
|
+
Three facts shaped the decision:
|
|
13
|
+
|
|
14
|
+
1. **The pack is one-mode.** `themeMarkup()` emits light values; dark exists only where a stylesheet writes `:root[data-mode="dark"]` and its `prefers-color-scheme` twin at (0,2,0). "Dark-first" is therefore a design stance, not a cascade order: the bare `:root` of every sheet must equal the pack's light values (the drift tests), and dark is the override.
|
|
15
|
+
2. **The world's derived vocabulary collides with the hub's.** The mock token layer (`docs/design/mocks/world/chrome-blobs/_tokens.css`) defines `--line` as a 1px width; cosmos.css defines `--line` as a hairline colour. The world's `--ok/--warn/--err` are warm accent states; the hub's are the fixed green/amber/red status vocabulary its chips depend on. Merging the two tiers into one `:root` would have silently repainted the hub's status chips and broken the strip's state marks.
|
|
16
|
+
3. **Chromium resolves `url()` inside a custom property against the document**, not the declaring stylesheet (verified in task 1003297 with a probe page). A token layer that names plates must use root-absolute paths or every route but one 404s.
|
|
17
|
+
|
|
18
|
+
## Decision
|
|
19
|
+
|
|
20
|
+
1. **The neutral pack moves to the chrome world.** `config/branding.neutral.json` `theme.ui` now carries the world's light values (`--bg #edecee`, `--bg-card #fbfafc`, `--ink #17181a`, `--accent #fb9569`, Manrope for display and body, JetBrains Mono via the same fonts link) and `config/design-tokens.neutral.json` mirrors it key for key. `--accent-deep` is **#a3481a**, not the mock's #d96a35: the mock never painted text with it, but the hub and the gate pages do, and #a3481a is the lightest burnt orange that clears 4.5:1 on all three light grounds (5.77:1 card, 5.10:1 page, 4.61:1 deep). The mock's rgba hairlines are flattened onto the page ground (`--rule #c6c6c8`, `--rule-soft #dcdbdd`) so every consumer that does hex maths still works.
|
|
21
|
+
2. **`backdrop` is `var(--bg)`.** The pack's `theme.ui.backdrop` becomes a `body{background:…}` rule that outranks every sheet in both modes; a literal there pinned the light ground under the dark page. `var(--bg)` follows the mode because the dark blocks win the token. The `.sky` layer the old landing kept to paint over that rule is gone.
|
|
22
|
+
3. **The landing gets its own world sheet, `public-landing/assets/world.css`, and `cosmos.css` stays the hub's until the hub round.** `world.css` is the world's token layer: the contract tier (equal to the pack), the derived tier for both modes (the void, glass, accent behaviours, state, ramps, halos, radii, label faces), the plate tokens as root-absolute `/assets/world/…` pairs (black plate + alpha cutout), and the reduced-motion kill switch. It carries no page composition: layout switches live on the page's own `body` rules, where every dark override is written twice. `cosmos.css` keeps the hub's components; its contract tier is synced to the pack, its dark tier moves to the world's black ground, and its derived tier is retuned so its contrast pairs clear AA on the salmon accent (dark ink on the accent fill, never white). A4 (task 1003299) rebuilds the hub on the world sheet; H1/S1 build the hall and status against `DESIGN.md` + the pack, each deriving its own tier the way `world.css` does.
|
|
23
|
+
4. **Plates ship in `public-landing/assets/world/` with provenance embedded.** The three black plates are verbatim JPEG copies (the prompt in the COM segment), the three cutouts are WebP with alpha at 1600px (85–170 KB against 1.1–2.4 MB PNG), each with a `<file>.json` sidecar naming the source render, the encoding and the mode it serves; `embed-prompt.mjs --scan` finds none missing. Plate URLs inside CSS custom properties are not covered by the server's `?v=` content stamp (it stamps `href`/`src` attributes), so a changed plate at the same path can be cached at the edge for four hours; plates change rarely and get a new filename when they do.
|
|
24
|
+
5. **Live figures are baked inside apex-only sentinels and refreshed at render time.** The hero callouts, the ledger line and rows, and the featured orbs carry real values from the public feeds (dated in the page's head comment) as the no-JS state, wrapped in `<!--apex-only:start-->…<!--apex-only:end-->` so a child instance renders an empty figure rather than the platform's number until its own feed answers; the script then fills every instance live from `/public/progress`, `/public/cost-summary`, `/public/leaderboard`, `/public/recent-shipped` and `/projects/featured`, building DOM with `createElement`/`textContent` only, keeping the baked state on any failure. Definitions are fixed here so the numbers stay honest: *tasks shipped* is the sum of `shipped_count` over every version row; *credits of value* is `total_value_credits`; *builders holding credits* is the leaderboard count with `total_credits > 0` (the world round's "6" was the ninety-day active count, a different thing); the ledger line is the first `building` version. Live titles are quoted data: em and en dashes are normalised to a comma at render time and a trailing parenthetical is dropped, so the taste ban holds without editing the ledger.
|
|
25
|
+
|
|
26
|
+
## Consequences
|
|
27
|
+
|
|
28
|
+
- Every surface that reads the pack re-themes at once: the hub, the legal pages, the hall and the status pages render on the pale grey / black grounds with Manrope before their own rounds restyle their components. That is the intended order — the token contract lands first, the surfaces follow — and the fallback-literal sites the tests pin (the claude-design adapter, the status explore page, the provisioning onboarding pages, the dev-box brand artifacts and tray icons, the two gate pages) are updated in this task so the suite stays green and no page keeps a private palette.
|
|
29
|
+
- Two sheets share one contract. The rule for any new surface: a bare `:root` equal to the pack, a derived tier of its own, dark written twice at (0,2,0), no literal accent in a dark block, no `:root` in a page. `DESIGN.md` records the world's derived recipes so a surface's derived tier is a port, not an invention.
|
|
30
|
+
- The landing no longer links `cosmos.css`; `tests/landing_page.mjs` guards `world.css` + `index.html` (the apex conditional, the stamped head, the cascade, portability, the kill switch, the live hooks) and `tests/world_tokens.mjs` measures the world sheet's pairs from the real CSS the way `tests/cosmos_token_contrast.mjs` measures the hub's.
|
|
31
|
+
- Rejected: folding the world tier into `cosmos.css` (the collisions above); keeping the pack on the sunrise and letting the landing carry its own palette (the fifteen-token rule would be dead and no host could re-theme the front door); shipping the cutouts as PNG (four to six megabytes for a first paint); a script-built ledger with no baked state (a scriptless visitor or a crawler would see an empty page); `#d96a35` as `--accent-deep` (3.3:1 on the card everywhere the hub paints text with it).
|