@nurix/etna 0.19.2 → 0.19.4

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 (122) hide show
  1. package/data/harness-index.json +1 -1
  2. package/data/harnesses/code/CLAUDE.md +2 -2
  3. package/data/harnesses/code/harness.json +2 -2
  4. package/data/harnesses/code/rules/frontend.md +3 -3
  5. package/data/harnesses/code/skills/design/SKILL.md +20 -8
  6. package/data/harnesses/code/skills/design/data/catalog/rules.csv +10 -5
  7. package/data/harnesses/code/skills/design/data/combinations/Readme.md +8 -4
  8. package/data/harnesses/code/skills/design/data/combinations/accent-presets.md +113 -0
  9. package/data/harnesses/code/skills/design/data/combinations/fonts-known.json +11 -0
  10. package/data/harnesses/code/skills/design/data/combinations/manifest.json +57 -10
  11. package/data/harnesses/code/skills/design/data/combinations/motion.csv +10 -0
  12. package/data/harnesses/code/skills/design/data/combinations/palettes.csv +92 -49
  13. package/data/harnesses/code/skills/design/data/combinations/styles.csv +67 -54
  14. package/data/harnesses/code/skills/design/data/combinations/typography.csv +64 -61
  15. package/data/harnesses/code/skills/design/data/design-md/library/expo.md +4 -4
  16. package/data/harnesses/code/skills/design/data/design-md/library/lovable.md +5 -5
  17. package/data/harnesses/code/skills/design/data/design-md/library/minimax.md +6 -6
  18. package/data/harnesses/code/skills/design/data/design-md/library/notion.md +4 -4
  19. package/data/harnesses/code/skills/design/data/design-md/library/runwayml.md +4 -4
  20. package/data/harnesses/code/skills/design/data/design-md/library/sentry.md +2 -2
  21. package/data/harnesses/code/skills/design/data/design-md/library/slack.md +6 -6
  22. package/data/harnesses/code/skills/design/data/design-md/library/webflow.md +5 -5
  23. package/data/harnesses/code/skills/design/data/design-md/nurix.md +11 -7
  24. package/data/harnesses/code/skills/design/data/design-tokens/SCHEMA.md +256 -141
  25. package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.tokens.json +309 -1
  26. package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.tokens.json +309 -1
  27. package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.tokens.json +309 -1
  28. package/data/harnesses/code/skills/design/data/design-tokens/apple/design.tokens.json +309 -1
  29. package/data/harnesses/code/skills/design/data/design-tokens/binance/design.tokens.json +309 -1
  30. package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.tokens.json +309 -1
  31. package/data/harnesses/code/skills/design/data/design-tokens/cal/design.tokens.json +313 -1
  32. package/data/harnesses/code/skills/design/data/design-tokens/clay/design.tokens.json +309 -1
  33. package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.tokens.json +309 -1
  34. package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.tokens.json +309 -1
  35. package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.tokens.json +309 -1
  36. package/data/harnesses/code/skills/design/data/design-tokens/composio/design.tokens.json +309 -1
  37. package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.tokens.json +309 -1
  38. package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.tokens.json +313 -1
  39. package/data/harnesses/code/skills/design/data/design-tokens/expo/design.tokens.json +309 -1
  40. package/data/harnesses/code/skills/design/data/design-tokens/figma/design.tokens.json +313 -1
  41. package/data/harnesses/code/skills/design/data/design-tokens/framer/design.tokens.json +309 -1
  42. package/data/harnesses/code/skills/design/data/design-tokens/goldens.json +123 -123
  43. package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.tokens.json +309 -1
  44. package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.tokens.json +309 -1
  45. package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.tokens.json +309 -1
  46. package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.tokens.json +313 -1
  47. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.resolver.json +1 -1
  48. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.dark.json +10 -0
  49. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.json +309 -1
  50. package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.tokens.json +313 -1
  51. package/data/harnesses/code/skills/design/data/design-tokens/meta/design.tokens.json +313 -1
  52. package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.tokens.json +309 -1
  53. package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.tokens.json +309 -1
  54. package/data/harnesses/code/skills/design/data/design-tokens/miro/design.tokens.json +313 -1
  55. package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.tokens.json +309 -1
  56. package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.tokens.json +313 -1
  57. package/data/harnesses/code/skills/design/data/design-tokens/notion/design.tokens.json +309 -1
  58. package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.tokens.json +307 -2
  59. package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.tokens.json +309 -1
  60. package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.tokens.json +309 -1
  61. package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.tokens.json +309 -1
  62. package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.tokens.json +309 -1
  63. package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.tokens.json +309 -1
  64. package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.tokens.json +309 -1
  65. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.resolver.json +1 -1
  66. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.dark.json +10 -0
  67. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.json +309 -1
  68. package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.tokens.json +309 -1
  69. package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.tokens.json +310 -2
  70. package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.tokens.json +313 -1
  71. package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.tokens.json +309 -1
  72. package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.tokens.json +309 -1
  73. package/data/harnesses/code/skills/design/data/design-tokens/slack/design.tokens.json +309 -1
  74. package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.tokens.json +309 -1
  75. package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.tokens.json +313 -1
  76. package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.tokens.json +313 -1
  77. package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.tokens.json +309 -1
  78. package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.tokens.json +313 -1
  79. package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.tokens.json +309 -1
  80. package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.tokens.json +309 -1
  81. package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.tokens.json +313 -1
  82. package/data/harnesses/code/skills/design/data/design-tokens/uber/design.tokens.json +309 -1
  83. package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.tokens.json +309 -1
  84. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.resolver.json +1 -1
  85. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.dark.json +10 -0
  86. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.json +309 -1
  87. package/data/harnesses/code/skills/design/data/design-tokens/warp/design.tokens.json +309 -1
  88. package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.tokens.json +309 -1
  89. package/data/harnesses/code/skills/design/data/design-tokens/wired/design.tokens.json +309 -1
  90. package/data/harnesses/code/skills/design/data/design-tokens/wise/design.tokens.json +309 -1
  91. package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.tokens.json +309 -1
  92. package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.tokens.json +309 -1
  93. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/command-center.tsx +25 -25
  94. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/create-edit.tsx +18 -18
  95. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/dashboard.tsx +82 -105
  96. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/entity-detail.tsx +97 -93
  97. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/list-detail.tsx +16 -15
  98. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/log-stream.tsx +34 -34
  99. package/data/harnesses/code/skills/design/data/operator-pack/surface-catalog.md +5 -5
  100. package/data/harnesses/code/skills/design/references/create.md +49 -7
  101. package/data/harnesses/code/skills/design/references/diagnosis.md +3 -3
  102. package/data/harnesses/code/skills/design/references/hard-rules.md +25 -3
  103. package/data/harnesses/code/skills/design/references/improve.md +32 -3
  104. package/data/harnesses/code/skills/design/references/interaction.md +3 -3
  105. package/data/harnesses/code/skills/design/references/introspect.md +1 -1
  106. package/data/harnesses/code/skills/design/references/lifecycle.md +2 -2
  107. package/data/harnesses/code/skills/design/references/personality.md +280 -133
  108. package/data/harnesses/code/skills/design/references/structure.md +22 -1
  109. package/data/harnesses/code/skills/design/scripts/convert-design-md.mjs +306 -26
  110. package/data/harnesses/code/skills/design/scripts/derive-personality.mjs +596 -104
  111. package/data/harnesses/code/skills/design/scripts/lib/checks.mjs +200 -11
  112. package/data/harnesses/code/skills/design/scripts/lib/vocabulary.mjs +65 -0
  113. package/data/harnesses/code/skills/design/scripts/phase-gate.mjs +95 -11
  114. package/data/harnesses/code/skills/design/scripts/preship-sweep.mjs +50 -5
  115. package/data/harnesses/code/skills/design/scripts/render-rung.mjs +214 -14
  116. package/data/harnesses/code/skills/design/scripts/scaffold.mjs +242 -25
  117. package/data/harnesses/code/skills/design/scripts/self-integrity.mjs +81 -6
  118. package/data/harnesses/code/skills/design/scripts/snapshot-goldens.mjs +101 -5
  119. package/data/harnesses/code/skills/design/scripts/validate-combinations.mjs +142 -17
  120. package/data/harnesses/etna/CLAUDE.md +1 -1
  121. package/data/harnesses/etna/harness.json +2 -2
  122. package/package.json +1 -1
@@ -2,11 +2,12 @@
2
2
  "$description": "Vercel — stark ink-on-near-white developer-platform operator design\n[verbosity] derived: Vercel's product chrome is clean but labelled, not terse-expert\n[feedback] derived: understated, functional feedback matches the calm system\n[density-tier] derived: Vercel's product reads clean and engineered, not dense-technical; a standard operator tier",
3
3
  "$extensions": {
4
4
  "com.nurix.design": {
5
- "schema": "design-tokens/v1",
5
+ "schema": "design-tokens/v2",
6
6
  "dtcg": "2025.10",
7
7
  "product": "Vercel",
8
8
  "provenance": "library",
9
9
  "sourced": "2026-07-04",
10
+ "theme-default": "light",
10
11
  "product-traits": [
11
12
  "dev-tools",
12
13
  "deployment-dashboard",
@@ -186,6 +187,14 @@
186
187
  }
187
188
  }
188
189
  },
190
+ "stagger-unit": {
191
+ "$type": "duration",
192
+ "$value": {
193
+ "value": 30,
194
+ "unit": "ms"
195
+ },
196
+ "$description": "derived: v1→v2 migration — the 30ms default stagger base (0–60ms legal)"
197
+ },
189
198
  "contrast-boost": {
190
199
  "$type": "number",
191
200
  "$value": 1,
@@ -573,6 +582,16 @@
573
582
  }
574
583
  }
575
584
  },
585
+ "surface-raised": {
586
+ "$type": "color",
587
+ "$value": "{color.card}",
588
+ "$description": "derived: v1→v2 migration — light aliases card; dark looks carry the surface-lightness ladder"
589
+ },
590
+ "surface-overlay": {
591
+ "$type": "color",
592
+ "$value": "{color.popover}",
593
+ "$description": "derived: v1→v2 migration — light aliases popover; dark looks carry the surface-lightness ladder"
594
+ },
576
595
  "popover": {
577
596
  "$type": "color",
578
597
  "$value": {
@@ -982,6 +1001,295 @@
982
1001
  "letterSpacing": 0
983
1002
  },
984
1003
  "$description": "technical label, section eyebrow"
1004
+ },
1005
+ "display": {
1006
+ "$type": "typography",
1007
+ "$value": {
1008
+ "fontFamily": "{typography.family.heading}",
1009
+ "fontSize": {
1010
+ "value": 42,
1011
+ "unit": "px"
1012
+ },
1013
+ "lineHeight": 1.3,
1014
+ "fontWeight": "{primitive.font-weight-strong}",
1015
+ "letterSpacing": "{primitive.heading-tracking}"
1016
+ },
1017
+ "$description": "derived: v1→v2 migration — provisional display step (h1 × 1.75, strong weight)",
1018
+ "$extensions": {
1019
+ "com.nurix.design": {
1020
+ "hint": "display step unset — resolve from the product's design.md or leave for budget-time"
1021
+ }
1022
+ }
1023
+ }
1024
+ }
1025
+ },
1026
+ "elevation": {
1027
+ "sm": {
1028
+ "$type": "shadow",
1029
+ "$value": [
1030
+ {
1031
+ "color": {
1032
+ "colorSpace": "srgb",
1033
+ "components": [
1034
+ 0.05882,
1035
+ 0.0902,
1036
+ 0.16471
1037
+ ],
1038
+ "hex": "#0f172a",
1039
+ "alpha": 0.1
1040
+ },
1041
+ "offsetX": {
1042
+ "value": 0,
1043
+ "unit": "px"
1044
+ },
1045
+ "offsetY": {
1046
+ "value": 1,
1047
+ "unit": "px"
1048
+ },
1049
+ "blur": {
1050
+ "value": 3,
1051
+ "unit": "px"
1052
+ },
1053
+ "spread": {
1054
+ "value": 0,
1055
+ "unit": "px"
1056
+ }
1057
+ },
1058
+ {
1059
+ "color": {
1060
+ "colorSpace": "srgb",
1061
+ "components": [
1062
+ 0.05882,
1063
+ 0.0902,
1064
+ 0.16471
1065
+ ],
1066
+ "hex": "#0f172a",
1067
+ "alpha": 0.1
1068
+ },
1069
+ "offsetX": {
1070
+ "value": 0,
1071
+ "unit": "px"
1072
+ },
1073
+ "offsetY": {
1074
+ "value": 1,
1075
+ "unit": "px"
1076
+ },
1077
+ "blur": {
1078
+ "value": 2,
1079
+ "unit": "px"
1080
+ },
1081
+ "spread": {
1082
+ "value": -1,
1083
+ "unit": "px"
1084
+ }
1085
+ }
1086
+ ],
1087
+ "$description": "derived: v1 shadow-intensity migration",
1088
+ "$extensions": {
1089
+ "com.nurix.design": {
1090
+ "css": "0 1px 3px 0 rgb(15 23 42 / calc(0.10 * var(--shadow-intensity))), 0 1px 2px -1px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity)))"
1091
+ }
1092
+ }
1093
+ },
1094
+ "md": {
1095
+ "$type": "shadow",
1096
+ "$value": [
1097
+ {
1098
+ "color": {
1099
+ "colorSpace": "srgb",
1100
+ "components": [
1101
+ 0.05882,
1102
+ 0.0902,
1103
+ 0.16471
1104
+ ],
1105
+ "hex": "#0f172a",
1106
+ "alpha": 0.1
1107
+ },
1108
+ "offsetX": {
1109
+ "value": 0,
1110
+ "unit": "px"
1111
+ },
1112
+ "offsetY": {
1113
+ "value": 4,
1114
+ "unit": "px"
1115
+ },
1116
+ "blur": {
1117
+ "value": 6,
1118
+ "unit": "px"
1119
+ },
1120
+ "spread": {
1121
+ "value": -1,
1122
+ "unit": "px"
1123
+ }
1124
+ },
1125
+ {
1126
+ "color": {
1127
+ "colorSpace": "srgb",
1128
+ "components": [
1129
+ 0.05882,
1130
+ 0.0902,
1131
+ 0.16471
1132
+ ],
1133
+ "hex": "#0f172a",
1134
+ "alpha": 0.1
1135
+ },
1136
+ "offsetX": {
1137
+ "value": 0,
1138
+ "unit": "px"
1139
+ },
1140
+ "offsetY": {
1141
+ "value": 2,
1142
+ "unit": "px"
1143
+ },
1144
+ "blur": {
1145
+ "value": 4,
1146
+ "unit": "px"
1147
+ },
1148
+ "spread": {
1149
+ "value": -2,
1150
+ "unit": "px"
1151
+ }
1152
+ }
1153
+ ],
1154
+ "$description": "derived: v1 shadow-intensity migration",
1155
+ "$extensions": {
1156
+ "com.nurix.design": {
1157
+ "css": "0 4px 6px -1px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity))), 0 2px 4px -2px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity)))"
1158
+ }
1159
+ }
1160
+ },
1161
+ "lg": {
1162
+ "$type": "shadow",
1163
+ "$value": [
1164
+ {
1165
+ "color": {
1166
+ "colorSpace": "srgb",
1167
+ "components": [
1168
+ 0.05882,
1169
+ 0.0902,
1170
+ 0.16471
1171
+ ],
1172
+ "hex": "#0f172a",
1173
+ "alpha": 0.1
1174
+ },
1175
+ "offsetX": {
1176
+ "value": 0,
1177
+ "unit": "px"
1178
+ },
1179
+ "offsetY": {
1180
+ "value": 10,
1181
+ "unit": "px"
1182
+ },
1183
+ "blur": {
1184
+ "value": 15,
1185
+ "unit": "px"
1186
+ },
1187
+ "spread": {
1188
+ "value": -3,
1189
+ "unit": "px"
1190
+ }
1191
+ },
1192
+ {
1193
+ "color": {
1194
+ "colorSpace": "srgb",
1195
+ "components": [
1196
+ 0.05882,
1197
+ 0.0902,
1198
+ 0.16471
1199
+ ],
1200
+ "hex": "#0f172a",
1201
+ "alpha": 0.1
1202
+ },
1203
+ "offsetX": {
1204
+ "value": 0,
1205
+ "unit": "px"
1206
+ },
1207
+ "offsetY": {
1208
+ "value": 4,
1209
+ "unit": "px"
1210
+ },
1211
+ "blur": {
1212
+ "value": 6,
1213
+ "unit": "px"
1214
+ },
1215
+ "spread": {
1216
+ "value": -4,
1217
+ "unit": "px"
1218
+ }
1219
+ }
1220
+ ],
1221
+ "$description": "derived: v1 shadow-intensity migration",
1222
+ "$extensions": {
1223
+ "com.nurix.design": {
1224
+ "css": "0 10px 15px -3px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity))), 0 4px 6px -4px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity)))"
1225
+ }
1226
+ }
1227
+ },
1228
+ "overlay": {
1229
+ "$type": "shadow",
1230
+ "$value": [
1231
+ {
1232
+ "color": {
1233
+ "colorSpace": "srgb",
1234
+ "components": [
1235
+ 0.05882,
1236
+ 0.0902,
1237
+ 0.16471
1238
+ ],
1239
+ "hex": "#0f172a",
1240
+ "alpha": 0.1
1241
+ },
1242
+ "offsetX": {
1243
+ "value": 0,
1244
+ "unit": "px"
1245
+ },
1246
+ "offsetY": {
1247
+ "value": 20,
1248
+ "unit": "px"
1249
+ },
1250
+ "blur": {
1251
+ "value": 25,
1252
+ "unit": "px"
1253
+ },
1254
+ "spread": {
1255
+ "value": -5,
1256
+ "unit": "px"
1257
+ }
1258
+ },
1259
+ {
1260
+ "color": {
1261
+ "colorSpace": "srgb",
1262
+ "components": [
1263
+ 0.05882,
1264
+ 0.0902,
1265
+ 0.16471
1266
+ ],
1267
+ "hex": "#0f172a",
1268
+ "alpha": 0.1
1269
+ },
1270
+ "offsetX": {
1271
+ "value": 0,
1272
+ "unit": "px"
1273
+ },
1274
+ "offsetY": {
1275
+ "value": 8,
1276
+ "unit": "px"
1277
+ },
1278
+ "blur": {
1279
+ "value": 10,
1280
+ "unit": "px"
1281
+ },
1282
+ "spread": {
1283
+ "value": -6,
1284
+ "unit": "px"
1285
+ }
1286
+ }
1287
+ ],
1288
+ "$description": "derived: v1 shadow-intensity migration",
1289
+ "$extensions": {
1290
+ "com.nurix.design": {
1291
+ "css": "0 20px 25px -5px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity))), 0 8px 10px -6px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity)))"
1292
+ }
985
1293
  }
986
1294
  }
987
1295
  }
@@ -11,7 +11,7 @@
11
11
  "modifiers": [
12
12
  {
13
13
  "name": "theme",
14
- "default": "light",
14
+ "default": "dark",
15
15
  "contexts": {
16
16
  "light": [],
17
17
  "dark": [
@@ -301,6 +301,16 @@
301
301
  }
302
302
  }
303
303
  },
304
+ "surface-raised": {
305
+ "$type": "color",
306
+ "$value": "{color.card}",
307
+ "$description": "derived: v1→v2 migration — aliased to the dark card; the +4–6 L surface ladder is owed at budget-time"
308
+ },
309
+ "surface-overlay": {
310
+ "$type": "color",
311
+ "$value": "{color.popover}",
312
+ "$description": "derived: v1→v2 migration — aliased to the dark popover; the +4–6 L surface ladder is owed at budget-time"
313
+ },
304
314
  "popover": {
305
315
  "$type": "color",
306
316
  "$value": {
@@ -2,11 +2,12 @@
2
2
  "$description": "VoltAgent — near-black electric-green developer-console operator design\n[feedback] derived: brand is quiet and engineered but ships live pills and copy affordances — gentle present feedback, not austere silence\n[density-tier] derived: engineered-documentation brand read to an honest operator tier; archetypes step denser, never the whole app",
3
3
  "$extensions": {
4
4
  "com.nurix.design": {
5
- "schema": "design-tokens/v1",
5
+ "schema": "design-tokens/v2",
6
6
  "dtcg": "2025.10",
7
7
  "product": "VoltAgent",
8
8
  "provenance": "library",
9
9
  "sourced": "2026-07-04",
10
+ "theme-default": "dark",
10
11
  "product-traits": [
11
12
  "dev-tools",
12
13
  "ai-agents",
@@ -188,6 +189,14 @@
188
189
  }
189
190
  }
190
191
  },
192
+ "stagger-unit": {
193
+ "$type": "duration",
194
+ "$value": {
195
+ "value": 30,
196
+ "unit": "ms"
197
+ },
198
+ "$description": "derived: v1→v2 migration — the 30ms default stagger base (0–60ms legal)"
199
+ },
191
200
  "contrast-boost": {
192
201
  "$type": "number",
193
202
  "$value": 1,
@@ -571,6 +580,16 @@
571
580
  }
572
581
  }
573
582
  },
583
+ "surface-raised": {
584
+ "$type": "color",
585
+ "$value": "{color.card}",
586
+ "$description": "derived: v1→v2 migration — light aliases card; dark looks carry the surface-lightness ladder"
587
+ },
588
+ "surface-overlay": {
589
+ "$type": "color",
590
+ "$value": "{color.popover}",
591
+ "$description": "derived: v1→v2 migration — light aliases popover; dark looks carry the surface-lightness ladder"
592
+ },
574
593
  "popover": {
575
594
  "$type": "color",
576
595
  "$value": {
@@ -968,6 +987,295 @@
968
987
  }
969
988
  }
970
989
  }
990
+ },
991
+ "display": {
992
+ "$type": "typography",
993
+ "$value": {
994
+ "fontFamily": "{typography.family.heading}",
995
+ "fontSize": {
996
+ "value": 42,
997
+ "unit": "px"
998
+ },
999
+ "lineHeight": 1.35,
1000
+ "fontWeight": "{primitive.font-weight-strong}",
1001
+ "letterSpacing": "{primitive.heading-tracking}"
1002
+ },
1003
+ "$description": "derived: v1→v2 migration — provisional display step (h1 × 1.75, strong weight)",
1004
+ "$extensions": {
1005
+ "com.nurix.design": {
1006
+ "hint": "display step unset — resolve from the product's design.md or leave for budget-time"
1007
+ }
1008
+ }
1009
+ }
1010
+ }
1011
+ },
1012
+ "elevation": {
1013
+ "sm": {
1014
+ "$type": "shadow",
1015
+ "$value": [
1016
+ {
1017
+ "color": {
1018
+ "colorSpace": "srgb",
1019
+ "components": [
1020
+ 0.05882,
1021
+ 0.0902,
1022
+ 0.16471
1023
+ ],
1024
+ "hex": "#0f172a",
1025
+ "alpha": 0.1
1026
+ },
1027
+ "offsetX": {
1028
+ "value": 0,
1029
+ "unit": "px"
1030
+ },
1031
+ "offsetY": {
1032
+ "value": 1,
1033
+ "unit": "px"
1034
+ },
1035
+ "blur": {
1036
+ "value": 3,
1037
+ "unit": "px"
1038
+ },
1039
+ "spread": {
1040
+ "value": 0,
1041
+ "unit": "px"
1042
+ }
1043
+ },
1044
+ {
1045
+ "color": {
1046
+ "colorSpace": "srgb",
1047
+ "components": [
1048
+ 0.05882,
1049
+ 0.0902,
1050
+ 0.16471
1051
+ ],
1052
+ "hex": "#0f172a",
1053
+ "alpha": 0.1
1054
+ },
1055
+ "offsetX": {
1056
+ "value": 0,
1057
+ "unit": "px"
1058
+ },
1059
+ "offsetY": {
1060
+ "value": 1,
1061
+ "unit": "px"
1062
+ },
1063
+ "blur": {
1064
+ "value": 2,
1065
+ "unit": "px"
1066
+ },
1067
+ "spread": {
1068
+ "value": -1,
1069
+ "unit": "px"
1070
+ }
1071
+ }
1072
+ ],
1073
+ "$description": "derived: v1 shadow-intensity migration",
1074
+ "$extensions": {
1075
+ "com.nurix.design": {
1076
+ "css": "0 1px 3px 0 rgb(15 23 42 / calc(0.10 * var(--shadow-intensity))), 0 1px 2px -1px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity)))"
1077
+ }
1078
+ }
1079
+ },
1080
+ "md": {
1081
+ "$type": "shadow",
1082
+ "$value": [
1083
+ {
1084
+ "color": {
1085
+ "colorSpace": "srgb",
1086
+ "components": [
1087
+ 0.05882,
1088
+ 0.0902,
1089
+ 0.16471
1090
+ ],
1091
+ "hex": "#0f172a",
1092
+ "alpha": 0.1
1093
+ },
1094
+ "offsetX": {
1095
+ "value": 0,
1096
+ "unit": "px"
1097
+ },
1098
+ "offsetY": {
1099
+ "value": 4,
1100
+ "unit": "px"
1101
+ },
1102
+ "blur": {
1103
+ "value": 6,
1104
+ "unit": "px"
1105
+ },
1106
+ "spread": {
1107
+ "value": -1,
1108
+ "unit": "px"
1109
+ }
1110
+ },
1111
+ {
1112
+ "color": {
1113
+ "colorSpace": "srgb",
1114
+ "components": [
1115
+ 0.05882,
1116
+ 0.0902,
1117
+ 0.16471
1118
+ ],
1119
+ "hex": "#0f172a",
1120
+ "alpha": 0.1
1121
+ },
1122
+ "offsetX": {
1123
+ "value": 0,
1124
+ "unit": "px"
1125
+ },
1126
+ "offsetY": {
1127
+ "value": 2,
1128
+ "unit": "px"
1129
+ },
1130
+ "blur": {
1131
+ "value": 4,
1132
+ "unit": "px"
1133
+ },
1134
+ "spread": {
1135
+ "value": -2,
1136
+ "unit": "px"
1137
+ }
1138
+ }
1139
+ ],
1140
+ "$description": "derived: v1 shadow-intensity migration",
1141
+ "$extensions": {
1142
+ "com.nurix.design": {
1143
+ "css": "0 4px 6px -1px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity))), 0 2px 4px -2px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity)))"
1144
+ }
1145
+ }
1146
+ },
1147
+ "lg": {
1148
+ "$type": "shadow",
1149
+ "$value": [
1150
+ {
1151
+ "color": {
1152
+ "colorSpace": "srgb",
1153
+ "components": [
1154
+ 0.05882,
1155
+ 0.0902,
1156
+ 0.16471
1157
+ ],
1158
+ "hex": "#0f172a",
1159
+ "alpha": 0.1
1160
+ },
1161
+ "offsetX": {
1162
+ "value": 0,
1163
+ "unit": "px"
1164
+ },
1165
+ "offsetY": {
1166
+ "value": 10,
1167
+ "unit": "px"
1168
+ },
1169
+ "blur": {
1170
+ "value": 15,
1171
+ "unit": "px"
1172
+ },
1173
+ "spread": {
1174
+ "value": -3,
1175
+ "unit": "px"
1176
+ }
1177
+ },
1178
+ {
1179
+ "color": {
1180
+ "colorSpace": "srgb",
1181
+ "components": [
1182
+ 0.05882,
1183
+ 0.0902,
1184
+ 0.16471
1185
+ ],
1186
+ "hex": "#0f172a",
1187
+ "alpha": 0.1
1188
+ },
1189
+ "offsetX": {
1190
+ "value": 0,
1191
+ "unit": "px"
1192
+ },
1193
+ "offsetY": {
1194
+ "value": 4,
1195
+ "unit": "px"
1196
+ },
1197
+ "blur": {
1198
+ "value": 6,
1199
+ "unit": "px"
1200
+ },
1201
+ "spread": {
1202
+ "value": -4,
1203
+ "unit": "px"
1204
+ }
1205
+ }
1206
+ ],
1207
+ "$description": "derived: v1 shadow-intensity migration",
1208
+ "$extensions": {
1209
+ "com.nurix.design": {
1210
+ "css": "0 10px 15px -3px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity))), 0 4px 6px -4px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity)))"
1211
+ }
1212
+ }
1213
+ },
1214
+ "overlay": {
1215
+ "$type": "shadow",
1216
+ "$value": [
1217
+ {
1218
+ "color": {
1219
+ "colorSpace": "srgb",
1220
+ "components": [
1221
+ 0.05882,
1222
+ 0.0902,
1223
+ 0.16471
1224
+ ],
1225
+ "hex": "#0f172a",
1226
+ "alpha": 0.1
1227
+ },
1228
+ "offsetX": {
1229
+ "value": 0,
1230
+ "unit": "px"
1231
+ },
1232
+ "offsetY": {
1233
+ "value": 20,
1234
+ "unit": "px"
1235
+ },
1236
+ "blur": {
1237
+ "value": 25,
1238
+ "unit": "px"
1239
+ },
1240
+ "spread": {
1241
+ "value": -5,
1242
+ "unit": "px"
1243
+ }
1244
+ },
1245
+ {
1246
+ "color": {
1247
+ "colorSpace": "srgb",
1248
+ "components": [
1249
+ 0.05882,
1250
+ 0.0902,
1251
+ 0.16471
1252
+ ],
1253
+ "hex": "#0f172a",
1254
+ "alpha": 0.1
1255
+ },
1256
+ "offsetX": {
1257
+ "value": 0,
1258
+ "unit": "px"
1259
+ },
1260
+ "offsetY": {
1261
+ "value": 8,
1262
+ "unit": "px"
1263
+ },
1264
+ "blur": {
1265
+ "value": 10,
1266
+ "unit": "px"
1267
+ },
1268
+ "spread": {
1269
+ "value": -6,
1270
+ "unit": "px"
1271
+ }
1272
+ }
1273
+ ],
1274
+ "$description": "derived: v1 shadow-intensity migration",
1275
+ "$extensions": {
1276
+ "com.nurix.design": {
1277
+ "css": "0 20px 25px -5px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity))), 0 8px 10px -6px rgb(15 23 42 / calc(0.10 * var(--shadow-intensity)))"
1278
+ }
971
1279
  }
972
1280
  }
973
1281
  }