opencode-skills-collection 4.1.2 → 4.1.3

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.
Files changed (68) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +9 -1
  2. package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +15 -1
  3. package/bundled-skills/deep-research-framework/SKILL.md +81 -0
  4. package/bundled-skills/five-axis-code-review/SKILL.md +78 -0
  5. package/bundled-skills/git-commit-message/SKILL.md +76 -0
  6. package/bundled-skills/idea-to-blueprint/LICENSE +21 -0
  7. package/bundled-skills/idea-to-blueprint/SKILL.md +260 -0
  8. package/bundled-skills/idea-to-blueprint/assets/AGENTS.md.template +38 -0
  9. package/bundled-skills/idea-to-blueprint/assets/CLAUDE.md.template +38 -0
  10. package/bundled-skills/idea-to-blueprint/assets/DECISIONS.md.template +14 -0
  11. package/bundled-skills/idea-to-blueprint/assets/PROGRESS.md.template +47 -0
  12. package/bundled-skills/idea-to-blueprint/assets/session-prompt.md +23 -0
  13. package/bundled-skills/idea-to-blueprint/references/architecture-decisions.md +202 -0
  14. package/bundled-skills/idea-to-blueprint/references/blueprint-template.md +259 -0
  15. package/bundled-skills/idea-to-blueprint/references/code-quality-and-review.md +216 -0
  16. package/bundled-skills/idea-to-blueprint/references/design-minimal.md +96 -0
  17. package/bundled-skills/idea-to-blueprint/references/edge-case-catalog.md +239 -0
  18. package/bundled-skills/idea-to-blueprint/references/intake-questions.md +105 -0
  19. package/bundled-skills/idea-to-blueprint/references/research-protocol.md +196 -0
  20. package/bundled-skills/idea-to-blueprint/references/session-protocol.md +133 -0
  21. package/bundled-skills/idea-to-blueprint/references/stories-ac-tests.md +194 -0
  22. package/bundled-skills/idea-to-blueprint/references/ux-writing-guide.md +128 -0
  23. package/bundled-skills/idea-to-blueprint/scripts/lint_blueprint.py +460 -0
  24. package/bundled-skills/liuguang-banlan-ui/SKILL.md +22 -18
  25. package/bundled-skills/liuguang-banlan-ui/assets/starter/launcher.css +2 -2
  26. package/bundled-skills/liuguang-banlan-ui/assets/starter/obsidian/index.html +5 -4
  27. package/bundled-skills/liuguang-banlan-ui/assets/starter/obsidian/theme-config.js +3 -10
  28. package/bundled-skills/liuguang-banlan-ui/assets/starter/obsidian/theme.css +48 -62
  29. package/bundled-skills/liuguang-banlan-ui/assets/starter/opal/index.html +5 -4
  30. package/bundled-skills/liuguang-banlan-ui/assets/starter/opal/theme-config.js +27 -35
  31. package/bundled-skills/liuguang-banlan-ui/assets/starter/opal/theme.css +48 -62
  32. package/bundled-skills/liuguang-banlan-ui/assets/starter/shared/spectral-field.js +135 -148
  33. package/bundled-skills/liuguang-banlan-ui/references/style-contract.md +26 -7
  34. package/bundled-skills/liuguang-banlan-ui/references/verification.md +19 -7
  35. package/bundled-skills/liuguang-banlan-ui/scripts/measure_preview.py +78 -47
  36. package/bundled-skills/liuguang-banlan-ui/scripts/serve_preview.py +35 -0
  37. package/bundled-skills/liuguang-banlan-ui/scripts/validate_manifest.py +34 -3
  38. package/bundled-skills/liuguang-banlan-ui/tests/test_measure_preview.py +119 -0
  39. package/bundled-skills/liuguang-banlan-ui/tests/test_serve_preview.py +38 -0
  40. package/bundled-skills/liuguang-banlan-ui/tests/test_validate_manifest.py +73 -0
  41. package/bundled-skills/loki-mode/examples/todo-app-generated/frontend/package-lock.json +12 -12
  42. package/bundled-skills/loki-mode/examples/todo-app-generated/frontend/package.json +1 -1
  43. package/bundled-skills/meeting-notes/SKILL.md +80 -0
  44. package/bundled-skills/repo-foundation/SKILL.md +166 -0
  45. package/bundled-skills/repo-foundation/references/LICENSE.md +21 -0
  46. package/bundled-skills/repo-foundation/references/bootstrap.md +63 -0
  47. package/bundled-skills/repo-foundation/references/companion.md +9 -0
  48. package/bundled-skills/repo-foundation/references/continuity.md +50 -0
  49. package/bundled-skills/repo-foundation/references/evolution.md +60 -0
  50. package/bundled-skills/repo-foundation/references/migration-examples.md +53 -0
  51. package/bundled-skills/repo-foundation/references/shared-contracts.md +48 -0
  52. package/bundled-skills/repo-foundation/references/verification.md +50 -0
  53. package/bundled-skills/repo-native-refactor/SKILL.md +225 -0
  54. package/bundled-skills/repo-native-refactor/references/LICENSE.md +21 -0
  55. package/bundled-skills/repo-native-refactor/references/deterministic-tooling.md +101 -0
  56. package/bundled-skills/repo-native-refactor/references/error-reliability.md +117 -0
  57. package/bundled-skills/repo-native-refactor/references/finding-taxonomy.md +181 -0
  58. package/bundled-skills/repo-native-refactor/references/refactor-examples.md +77 -0
  59. package/bundled-skills/repo-native-refactor/references/repository-prose.md +157 -0
  60. package/bundled-skills/repo-native-refactor/references/repository-rehabilitation.md +94 -0
  61. package/bundled-skills/repo-native-refactor/references/semantic-risk.md +187 -0
  62. package/bundled-skills/repo-native-refactor/references/shared-contracts.md +48 -0
  63. package/bundled-skills/repo-native-refactor/references/testing-integrity.md +103 -0
  64. package/bundled-skills/tech-writing-proofread/SKILL.md +78 -0
  65. package/bundled-skills/typescript-expert/scripts/ts_diagnostic.py +40 -19
  66. package/bundled-skills/youtube-summarizer/SKILL.md +3 -3
  67. package/package.json +1 -1
  68. package/skills_index.json +254 -0
@@ -1,49 +1,3 @@
1
- @supports not (color: oklch(0% 0 0)) {
2
- :root {
3
- --app-canvas: #111820;
4
- --app-wash: rgba(17, 24, 32, 0.18);
5
- --topbar-surface: rgba(19, 27, 35, 0.86);
6
- --sidebar-surface: rgba(18, 26, 34, 0.82);
7
- --band-surface: rgba(23, 32, 42, 0.82);
8
- --workbench-surface: rgba(21, 29, 39, 0.82);
9
- --pane-surface: rgba(22, 30, 40, 0.79);
10
- --panel-surface: rgba(20, 28, 37, 0.95);
11
- --button-surface: rgba(34, 44, 56, 0.66);
12
- --ink-primary: #e4e9ec;
13
- --ink-secondary: #abb8bf;
14
- --ink-tertiary: #829099;
15
- --ink-muted: #68757f;
16
- --line-subtle: rgba(222, 231, 236, 0.075);
17
- --line-default: rgba(222, 231, 236, 0.12);
18
- --line-strong: rgba(222, 231, 236, 0.22);
19
- --state-hover: rgba(201, 220, 227, 0.07);
20
- --state-selected: rgba(102, 184, 181, 0.13);
21
- --brand-mark: radial-gradient(circle at 35% 30%, #58b3ae, #29445d 43%, #402b4f);
22
- --brand-mark-detail: rgba(186, 217, 218, 0.64);
23
- --account-orb: linear-gradient(135deg, #315f61, #40314e);
24
- --status-good: #4ba885;
25
- --status-good-wash: rgba(75, 168, 133, 0.12);
26
- --active-rule: #3c9a9e;
27
- --focus-ring: #5ab2b5;
28
- --selection: rgba(70, 166, 163, 0.34);
29
- --control-accent: #4ca9a6;
30
- --primary-surface: #a5cecb;
31
- --primary-hover: #b3d8d4;
32
- --primary-border: rgba(174, 218, 216, 0.46);
33
- --primary-ink: #131c24;
34
- --scroll-thumb: rgba(216, 231, 236, 0.19);
35
- --observation-ribbon: linear-gradient(90deg, rgba(96, 166, 158, 0.78), rgba(75, 123, 153, 0.72), rgba(96, 82, 145, 0.64), rgba(145, 125, 70, 0.52));
36
- --workbench-shadow: 0 0 0 1px rgba(255, 255, 255, 0.018);
37
- --panel-shadow: -18px 0 50px rgba(0, 0, 0, 0.34);
38
- --mini-map: rgba(24, 39, 49, 0.88);
39
- --marker-cyan: #3eaaa8;
40
- --marker-rose: #a66e78;
41
- --marker-lilac: #8870a6;
42
- --marker-gold: #a58a4e;
43
- }
44
- }
45
-
46
- @supports (color: oklch(0% 0 0)) {
47
1
  :root {
48
2
  --app-canvas: oklch(9.8% 0.012 236);
49
3
  --app-wash: oklch(8.5% 0.012 238 / 0.18);
@@ -63,9 +17,9 @@
63
17
  --line-strong: oklch(92% 0.018 218 / 0.22);
64
18
  --state-hover: oklch(84% 0.028 211 / 0.07);
65
19
  --state-selected: oklch(64% 0.07 194 / 0.13);
66
- --brand-mark: radial-gradient(circle at 35% 30%, oklch(62% 0.085 180), oklch(28% 0.065 220) 43%, oklch(25% 0.06 312));
67
- --brand-mark-detail: oklch(84% 0.04 192 / 0.64);
68
- --account-orb: linear-gradient(135deg, oklch(32% 0.065 186), oklch(25% 0.055 308));
20
+ --brand-mark: var(--ink-primary);
21
+ --brand-mark-detail: oklch(15% 0.02 225 / 0.72);
22
+ --account-orb: oklch(24% 0.012 236);
69
23
  --status-good: oklch(69% 0.12 163);
70
24
  --status-good-wash: oklch(69% 0.12 163 / 0.12);
71
25
  --active-rule: oklch(69% 0.09 191);
@@ -77,7 +31,8 @@
77
31
  --primary-border: oklch(82% 0.06 190 / 0.46);
78
32
  --primary-ink: oklch(15% 0.02 225);
79
33
  --scroll-thumb: oklch(80% 0.02 220 / 0.19);
80
- --observation-ribbon: linear-gradient(90deg, oklch(48% 0.075 188 / 0.78), oklch(42% 0.065 224 / 0.72), oklch(40% 0.066 290 / 0.64), oklch(46% 0.065 78 / 0.52));
34
+ --observation-ribbon: var(--line-strong);
35
+ --fallback-alpha: 0.95;
81
36
  --workbench-shadow: 0 0 0 1px oklch(100% 0 0 / 0.018);
82
37
  --panel-shadow: -18px 0 50px oklch(0% 0 0 / 0.34);
83
38
  --mini-map: oklch(14% 0.022 220 / 0.88);
@@ -86,22 +41,53 @@
86
41
  --marker-lilac: oklch(55% 0.085 310);
87
42
  --marker-gold: oklch(58% 0.08 82);
88
43
  }
89
- }
90
44
 
91
45
  .field-fallback body {
92
- background: var(
93
- --field-fallback-background,
94
- radial-gradient(ellipse at 12% 18%, rgba(35, 89, 86, 0.70), transparent 50%),
95
- radial-gradient(ellipse at 78% 22%, rgba(54, 42, 92, 0.55), transparent 52%),
96
- radial-gradient(ellipse at 44% 82%, rgba(78, 63, 36, 0.38), transparent 56%),
97
- var(--app-canvas)
98
- );
46
+ background: var(--field-fallback-background, var(--app-canvas));
99
47
  }
100
48
 
101
- @supports (color: oklch(0% 0 0)) {
102
- @media (color-gamut: p3) {
49
+
50
+ @supports not (color: oklch(0% 0 0)) {
103
51
  :root {
104
- --observation-ribbon: linear-gradient(90deg, oklch(48% 0.09 188 / 0.78), oklch(42% 0.078 224 / 0.72), oklch(40% 0.078 290 / 0.64), oklch(46% 0.073 78 / 0.52));
52
+ --app-canvas: #111820;
53
+ --app-wash: rgba(17, 24, 32, 0.18);
54
+ --topbar-surface: rgba(19, 27, 35, 0.86);
55
+ --sidebar-surface: rgba(18, 26, 34, 0.82);
56
+ --band-surface: rgba(23, 32, 42, 0.82);
57
+ --workbench-surface: rgba(21, 29, 39, 0.82);
58
+ --pane-surface: rgba(22, 30, 40, 0.79);
59
+ --panel-surface: rgba(20, 28, 37, 0.95);
60
+ --button-surface: rgba(34, 44, 56, 0.66);
61
+ --ink-primary: #e4e9ec;
62
+ --ink-secondary: #abb8bf;
63
+ --ink-tertiary: #829099;
64
+ --ink-muted: #68757f;
65
+ --line-subtle: rgba(222, 231, 236, 0.075);
66
+ --line-default: rgba(222, 231, 236, 0.12);
67
+ --line-strong: rgba(222, 231, 236, 0.22);
68
+ --state-hover: rgba(201, 220, 227, 0.07);
69
+ --state-selected: rgba(102, 184, 181, 0.13);
70
+ --brand-mark: radial-gradient(circle at 35% 30%, #58b3ae, #29445d 43%, #402b4f);
71
+ --brand-mark-detail: rgba(186, 217, 218, 0.64);
72
+ --account-orb: linear-gradient(135deg, #315f61, #40314e);
73
+ --status-good: #4ba885;
74
+ --status-good-wash: rgba(75, 168, 133, 0.12);
75
+ --active-rule: #3c9a9e;
76
+ --focus-ring: #5ab2b5;
77
+ --selection: rgba(70, 166, 163, 0.34);
78
+ --control-accent: #4ca9a6;
79
+ --primary-surface: #a5cecb;
80
+ --primary-hover: #b3d8d4;
81
+ --primary-border: rgba(174, 218, 216, 0.46);
82
+ --primary-ink: #131c24;
83
+ --scroll-thumb: rgba(216, 231, 236, 0.19);
84
+ --observation-ribbon: linear-gradient(90deg, rgba(96, 166, 158, 0.78), rgba(75, 123, 153, 0.72), rgba(96, 82, 145, 0.64), rgba(145, 125, 70, 0.52));
85
+ --workbench-shadow: 0 0 0 1px rgba(255, 255, 255, 0.018);
86
+ --panel-shadow: -18px 0 50px rgba(0, 0, 0, 0.34);
87
+ --mini-map: rgba(24, 39, 49, 0.88);
88
+ --marker-cyan: #3eaaa8;
89
+ --marker-rose: #a66e78;
90
+ --marker-lilac: #8870a6;
91
+ --marker-gold: #a58a4e;
105
92
  }
106
93
  }
107
- }
@@ -116,10 +116,11 @@
116
116
  <article class="pane detail-pane" aria-labelledby="record-title">
117
117
  <div class="pane-head">
118
118
  <div class="tab-list" role="tablist" aria-label="记录视图">
119
- <button class="tab" type="button" role="tab" aria-selected="true" aria-controls="detail-copy" data-copy="水线后退约 1.8 米,潮池外缘出现连续盐度跃迁。样本表面保持湿润,未观察到明显扰动。建议与 18:53 的浅滩网格记录并列复核。">记录</button>
120
- <button class="tab" type="button" role="tab" aria-selected="false" aria-controls="detail-copy" data-copy="关联了 4 张现场照片、2 个水质读数与 1 条位置修正。附件校验通过,原始文件已进入只读归档队列。">附件</button>
121
- <button class="tab" type="button" role="tab" aria-selected="false" aria-controls="detail-copy" data-copy="19:47 完成盐度标签修正;20:12 补充观察者备注;21:03 进入批次复核队列。所有变更均保留原始记录。">变更</button>
119
+ <button class="tab" type="button" role="tab" aria-controls="detail-copy" aria-selected="true" data-copy="水线后退约 1.8 米,潮池外缘出现连续盐度跃迁。样本表面保持湿润,未观察到明显扰动。建议与 18:53 的浅滩网格记录并列复核。">记录</button>
120
+ <button class="tab" type="button" role="tab" aria-controls="detail-copy" aria-selected="false" data-copy="关联了 4 张现场照片、2 个水质读数与 1 条位置修正。附件校验通过,原始文件已进入只读归档队列。">附件</button>
121
+ <button class="tab" type="button" role="tab" aria-controls="detail-copy" aria-selected="false" data-copy="19:47 完成盐度标签修正;20:12 补充观察者备注;21:03 进入批次复核队列。所有变更均保留原始记录。">变更</button>
122
122
  </div>
123
+ <button class="icon-button" type="button" aria-label="更多记录操作"><svg viewBox="0 0 24 24" fill="currentColor" stroke="none"><circle cx="5" cy="12" r="1.5"/><circle cx="12" cy="12" r="1.5"/><circle cx="19" cy="12" r="1.5"/></svg></button>
123
124
  </div>
124
125
  <div class="detail-title">
125
126
  <h2 id="record-title">潮池边缘 · 样本 042</h2>
@@ -127,7 +128,7 @@
127
128
  </div>
128
129
  <div class="detail-body">
129
130
  <div class="field-notes">
130
- <p id="detail-copy" role="tabpanel">水线后退约 1.8 米,潮池外缘出现连续盐度跃迁。样本表面保持湿润,未观察到明显扰动。建议与 18:53 的浅滩网格记录并列复核。</p>
131
+ <p id="detail-copy" role="tabpanel">水线后退约 1.8 米,潮池外缘出现连续盐度跃迁。样本表面保持湿润,未观察到明显扰动。建议与 18:53 的浅滩网格记录并列复核。</p>
131
132
  <dl>
132
133
  <div class="note-rule"><dt>表面温度</dt><dd>18.6 °C · 稳定</dd></div>
133
134
  <div class="note-rule"><dt>盐度</dt><dd>31.8 PSU · 高于同批中位值 1.4</dd></div>
@@ -1,8 +1,8 @@
1
1
  window.SPECTRAL_THEME = {
2
- schemaVersion: "1.0",
2
+ schemaVersion: "1.1",
3
3
  mode: "opal",
4
4
  label: "流光溢彩白",
5
- preset: "opal-fieldnote-v1",
5
+ preset: "opal-fieldnote-v2",
6
6
  seed: 48173,
7
7
  overallColorIntensity: 0.82,
8
8
  base: {
@@ -16,38 +16,11 @@ window.SPECTRAL_THEME = {
16
16
  srgbFallback: "#f6e4eb",
17
17
  intensity: 0.48,
18
18
  peakOpacity: 0.082,
19
- lightnessBias: 0.004,
20
19
  fieldScale: 0.82,
21
20
  phase: [0.13, 0.67],
22
21
  measuredCoverage: null,
23
22
  effectiveShare: null
24
23
  },
25
- {
26
- id: "cyan",
27
- label: "海玻璃青",
28
- oklch: { l: 0.928, c: 0.043, h: 201 },
29
- srgbFallback: "#dceff0",
30
- intensity: 0.62,
31
- peakOpacity: 0.078,
32
- lightnessBias: 0.002,
33
- fieldScale: 0.94,
34
- phase: [0.78, 0.21],
35
- measuredCoverage: null,
36
- effectiveShare: null
37
- },
38
- {
39
- id: "lilac",
40
- label: "薄雾丁香",
41
- oklch: { l: 0.925, c: 0.045, h: 304 },
42
- srgbFallback: "#eee3f2",
43
- intensity: 0.54,
44
- peakOpacity: 0.076,
45
- lightnessBias: 0.003,
46
- fieldScale: 1.06,
47
- phase: [0.39, 0.86],
48
- measuredCoverage: null,
49
- effectiveShare: null
50
- },
51
24
  {
52
25
  id: "peach",
53
26
  label: "暖珠杏",
@@ -55,7 +28,6 @@ window.SPECTRAL_THEME = {
55
28
  srgbFallback: "#f6eadc",
56
29
  intensity: 0.42,
57
30
  peakOpacity: 0.071,
58
- lightnessBias: 0.005,
59
31
  fieldScale: 0.89,
60
32
  phase: [0.92, 0.58],
61
33
  measuredCoverage: null,
@@ -68,12 +40,23 @@ window.SPECTRAL_THEME = {
68
40
  srgbFallback: "#e2efe7",
69
41
  intensity: 0.46,
70
42
  peakOpacity: 0.068,
71
- lightnessBias: 0.003,
72
43
  fieldScale: 1.12,
73
44
  phase: [0.24, 0.34],
74
45
  measuredCoverage: null,
75
46
  effectiveShare: null
76
47
  },
48
+ {
49
+ id: "cyan",
50
+ label: "海玻璃青",
51
+ oklch: { l: 0.928, c: 0.043, h: 201 },
52
+ srgbFallback: "#dceff0",
53
+ intensity: 0.62,
54
+ peakOpacity: 0.078,
55
+ fieldScale: 0.94,
56
+ phase: [0.78, 0.21],
57
+ measuredCoverage: null,
58
+ effectiveShare: null
59
+ },
77
60
  {
78
61
  id: "blue",
79
62
  label: "远空蓝",
@@ -81,11 +64,22 @@ window.SPECTRAL_THEME = {
81
64
  srgbFallback: "#d9e6f8",
82
65
  intensity: 0.56,
83
66
  peakOpacity: 0.090,
84
- lightnessBias: 0.001,
85
67
  fieldScale: 0.98,
86
68
  phase: [0.63, 0.43],
87
69
  measuredCoverage: null,
88
70
  effectiveShare: null
71
+ },
72
+ {
73
+ id: "lilac",
74
+ label: "薄雾丁香",
75
+ oklch: { l: 0.925, c: 0.045, h: 304 },
76
+ srgbFallback: "#eee3f2",
77
+ intensity: 0.54,
78
+ peakOpacity: 0.076,
79
+ fieldScale: 1.06,
80
+ phase: [0.39, 0.86],
81
+ measuredCoverage: null,
82
+ effectiveShare: null
89
83
  }
90
84
  ],
91
85
  field: {
@@ -94,12 +88,10 @@ window.SPECTRAL_THEME = {
94
88
  warpStrength: 0.32,
95
89
  motionSpeed: 0.015,
96
90
  staticTime: 1.73,
97
- ditherStrength: 0.65,
98
- luminanceCap: 0.98
91
+ ditherStrength: 1
99
92
  },
100
93
  output: {
101
94
  colorSpace: "srgb",
102
- p3Enhancement: "feature-detected",
103
95
  reducedMotion: "frozen-calibrated-frame"
104
96
  }
105
97
  };
@@ -1,49 +1,3 @@
1
- @supports not (color: oklch(0% 0 0)) {
2
- :root {
3
- --app-canvas: #f7f7f4;
4
- --app-wash: rgba(247, 247, 244, 0.18);
5
- --topbar-surface: rgba(252, 252, 249, 0.76);
6
- --sidebar-surface: rgba(250, 250, 247, 0.70);
7
- --band-surface: rgba(251, 251, 248, 0.68);
8
- --workbench-surface: rgba(252, 252, 249, 0.70);
9
- --pane-surface: rgba(253, 253, 251, 0.66);
10
- --panel-surface: rgba(250, 250, 247, 0.92);
11
- --button-surface: rgba(255, 255, 255, 0.46);
12
- --ink-primary: #293341;
13
- --ink-secondary: #59616d;
14
- --ink-tertiary: #808792;
15
- --ink-muted: #9ba1aa;
16
- --line-subtle: rgba(47, 55, 68, 0.075);
17
- --line-default: rgba(47, 55, 68, 0.115);
18
- --line-strong: rgba(43, 52, 66, 0.20);
19
- --state-hover: rgba(255, 255, 255, 0.48);
20
- --state-selected: rgba(213, 229, 238, 0.48);
21
- --brand-mark: radial-gradient(circle at 35% 30%, #ffffff, #cfe5eb 42%, #e7d8ee);
22
- --brand-mark-detail: rgba(58, 72, 84, 0.46);
23
- --account-orb: linear-gradient(135deg, #cfe7e2, #e4d9ee);
24
- --status-good: #328f70;
25
- --status-good-wash: rgba(50, 143, 112, 0.13);
26
- --active-rule: #477f91;
27
- --focus-ring: #397d94;
28
- --selection: rgba(131, 174, 194, 0.42);
29
- --control-accent: #397b91;
30
- --primary-surface: #29313e;
31
- --primary-hover: #222936;
32
- --primary-border: rgba(33, 40, 52, 0.70);
33
- --primary-ink: #f7f7f4;
34
- --scroll-thumb: rgba(42, 50, 64, 0.22);
35
- --observation-ribbon: linear-gradient(90deg, rgba(221, 167, 174, 0.68), rgba(169, 216, 211, 0.72), rgba(204, 180, 220, 0.66), rgba(231, 207, 155, 0.62));
36
- --workbench-shadow: 0 1px 2px rgba(35, 44, 58, 0.035), 0 8px 24px rgba(52, 62, 77, 0.035);
37
- --panel-shadow: -12px 0 40px rgba(48, 56, 69, 0.10);
38
- --mini-map: rgba(223, 236, 241, 0.62);
39
- --marker-cyan: #6aaeb4;
40
- --marker-rose: #d5969e;
41
- --marker-lilac: #b997c5;
42
- --marker-gold: #d9bb7c;
43
- }
44
- }
45
-
46
- @supports (color: oklch(0% 0 0)) {
47
1
  :root {
48
2
  --app-canvas: oklch(98.2% 0.004 94);
49
3
  --app-wash: oklch(99% 0.003 92 / 0.18);
@@ -63,9 +17,9 @@
63
17
  --line-strong: oklch(26% 0.025 246 / 0.20);
64
18
  --state-hover: oklch(100% 0 0 / 0.48);
65
19
  --state-selected: oklch(91% 0.024 222 / 0.48);
66
- --brand-mark: radial-gradient(circle at 35% 30%, oklch(100% 0 0), oklch(88% 0.055 201) 42%, oklch(86% 0.05 318));
67
- --brand-mark-detail: oklch(40% 0.04 236 / 0.46);
68
- --account-orb: linear-gradient(135deg, oklch(87% 0.05 198), oklch(91% 0.04 315));
20
+ --brand-mark: var(--ink-primary);
21
+ --brand-mark-detail: oklch(98% 0.004 95 / 0.72);
22
+ --account-orb: oklch(90% 0.006 240);
69
23
  --status-good: oklch(58% 0.11 158);
70
24
  --status-good-wash: oklch(58% 0.11 158 / 0.13);
71
25
  --active-rule: oklch(54% 0.08 216);
@@ -77,7 +31,8 @@
77
31
  --primary-border: oklch(25% 0.025 240 / 0.70);
78
32
  --primary-ink: oklch(98% 0.004 95);
79
33
  --scroll-thumb: oklch(35% 0.02 240 / 0.22);
80
- --observation-ribbon: linear-gradient(90deg, oklch(72% 0.08 22 / 0.68), oklch(73% 0.07 193 / 0.72), oklch(72% 0.07 302 / 0.66), oklch(76% 0.07 75 / 0.62));
34
+ --observation-ribbon: var(--line-strong);
35
+ --fallback-alpha: 0.24;
81
36
  --workbench-shadow: 0 1px 2px oklch(20% 0.02 240 / 0.035), 0 8px 24px oklch(35% 0.03 240 / 0.035);
82
37
  --panel-shadow: -12px 0 40px oklch(30% 0.03 240 / 0.10);
83
38
  --mini-map: oklch(95% 0.014 204 / 0.62);
@@ -86,22 +41,53 @@
86
41
  --marker-lilac: oklch(68% 0.08 307);
87
42
  --marker-gold: oklch(72% 0.08 81);
88
43
  }
89
- }
90
44
 
91
45
  .field-fallback body {
92
- background: var(
93
- --field-fallback-background,
94
- radial-gradient(ellipse at 12% 18%, rgba(207, 229, 235, 0.72), transparent 46%),
95
- radial-gradient(ellipse at 78% 22%, rgba(239, 205, 210, 0.68), transparent 48%),
96
- radial-gradient(ellipse at 44% 82%, rgba(225, 210, 238, 0.58), transparent 54%),
97
- var(--app-canvas)
98
- );
46
+ background: var(--field-fallback-background, var(--app-canvas));
99
47
  }
100
48
 
101
- @supports (color: oklch(0% 0 0)) {
102
- @media (color-gamut: p3) {
49
+
50
+ @supports not (color: oklch(0% 0 0)) {
103
51
  :root {
104
- --observation-ribbon: linear-gradient(90deg, oklch(72% 0.095 22 / 0.68), oklch(73% 0.085 193 / 0.72), oklch(72% 0.085 302 / 0.66), oklch(76% 0.082 75 / 0.62));
52
+ --app-canvas: #f7f7f4;
53
+ --app-wash: rgba(247, 247, 244, 0.18);
54
+ --topbar-surface: rgba(252, 252, 249, 0.76);
55
+ --sidebar-surface: rgba(250, 250, 247, 0.70);
56
+ --band-surface: rgba(251, 251, 248, 0.68);
57
+ --workbench-surface: rgba(252, 252, 249, 0.70);
58
+ --pane-surface: rgba(253, 253, 251, 0.66);
59
+ --panel-surface: rgba(250, 250, 247, 0.92);
60
+ --button-surface: rgba(255, 255, 255, 0.46);
61
+ --ink-primary: #293341;
62
+ --ink-secondary: #59616d;
63
+ --ink-tertiary: #808792;
64
+ --ink-muted: #9ba1aa;
65
+ --line-subtle: rgba(47, 55, 68, 0.075);
66
+ --line-default: rgba(47, 55, 68, 0.115);
67
+ --line-strong: rgba(43, 52, 66, 0.20);
68
+ --state-hover: rgba(255, 255, 255, 0.48);
69
+ --state-selected: rgba(213, 229, 238, 0.48);
70
+ --brand-mark: radial-gradient(circle at 35% 30%, #ffffff, #cfe5eb 42%, #e7d8ee);
71
+ --brand-mark-detail: rgba(58, 72, 84, 0.46);
72
+ --account-orb: linear-gradient(135deg, #cfe7e2, #e4d9ee);
73
+ --status-good: #328f70;
74
+ --status-good-wash: rgba(50, 143, 112, 0.13);
75
+ --active-rule: #477f91;
76
+ --focus-ring: #397d94;
77
+ --selection: rgba(131, 174, 194, 0.42);
78
+ --control-accent: #397b91;
79
+ --primary-surface: #29313e;
80
+ --primary-hover: #222936;
81
+ --primary-border: rgba(33, 40, 52, 0.70);
82
+ --primary-ink: #f7f7f4;
83
+ --scroll-thumb: rgba(42, 50, 64, 0.22);
84
+ --observation-ribbon: linear-gradient(90deg, rgba(221, 167, 174, 0.68), rgba(169, 216, 211, 0.72), rgba(204, 180, 220, 0.66), rgba(231, 207, 155, 0.62));
85
+ --workbench-shadow: 0 1px 2px rgba(35, 44, 58, 0.035), 0 8px 24px rgba(52, 62, 77, 0.035);
86
+ --panel-shadow: -12px 0 40px rgba(48, 56, 69, 0.10);
87
+ --mini-map: rgba(223, 236, 241, 0.62);
88
+ --marker-cyan: #6aaeb4;
89
+ --marker-rose: #d5969e;
90
+ --marker-lilac: #b997c5;
91
+ --marker-gold: #d9bb7c;
105
92
  }
106
93
  }
107
- }