@nurix/etna 0.19.3 → 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 (119) hide show
  1. package/data/harness-index.json +1 -1
  2. package/data/harnesses/code/harness.json +1 -1
  3. package/data/harnesses/code/rules/frontend.md +3 -3
  4. package/data/harnesses/code/skills/design/SKILL.md +20 -8
  5. package/data/harnesses/code/skills/design/data/catalog/rules.csv +10 -5
  6. package/data/harnesses/code/skills/design/data/combinations/Readme.md +8 -4
  7. package/data/harnesses/code/skills/design/data/combinations/accent-presets.md +113 -0
  8. package/data/harnesses/code/skills/design/data/combinations/fonts-known.json +11 -0
  9. package/data/harnesses/code/skills/design/data/combinations/manifest.json +57 -10
  10. package/data/harnesses/code/skills/design/data/combinations/motion.csv +10 -0
  11. package/data/harnesses/code/skills/design/data/combinations/palettes.csv +92 -49
  12. package/data/harnesses/code/skills/design/data/combinations/styles.csv +67 -54
  13. package/data/harnesses/code/skills/design/data/combinations/typography.csv +64 -61
  14. package/data/harnesses/code/skills/design/data/design-md/library/expo.md +4 -4
  15. package/data/harnesses/code/skills/design/data/design-md/library/lovable.md +5 -5
  16. package/data/harnesses/code/skills/design/data/design-md/library/minimax.md +6 -6
  17. package/data/harnesses/code/skills/design/data/design-md/library/notion.md +4 -4
  18. package/data/harnesses/code/skills/design/data/design-md/library/runwayml.md +4 -4
  19. package/data/harnesses/code/skills/design/data/design-md/library/sentry.md +2 -2
  20. package/data/harnesses/code/skills/design/data/design-md/library/slack.md +6 -6
  21. package/data/harnesses/code/skills/design/data/design-md/library/webflow.md +5 -5
  22. package/data/harnesses/code/skills/design/data/design-md/nurix.md +11 -7
  23. package/data/harnesses/code/skills/design/data/design-tokens/SCHEMA.md +256 -141
  24. package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.tokens.json +309 -1
  25. package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.tokens.json +309 -1
  26. package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.tokens.json +309 -1
  27. package/data/harnesses/code/skills/design/data/design-tokens/apple/design.tokens.json +309 -1
  28. package/data/harnesses/code/skills/design/data/design-tokens/binance/design.tokens.json +309 -1
  29. package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.tokens.json +309 -1
  30. package/data/harnesses/code/skills/design/data/design-tokens/cal/design.tokens.json +313 -1
  31. package/data/harnesses/code/skills/design/data/design-tokens/clay/design.tokens.json +309 -1
  32. package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.tokens.json +309 -1
  33. package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.tokens.json +309 -1
  34. package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.tokens.json +309 -1
  35. package/data/harnesses/code/skills/design/data/design-tokens/composio/design.tokens.json +309 -1
  36. package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.tokens.json +309 -1
  37. package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.tokens.json +313 -1
  38. package/data/harnesses/code/skills/design/data/design-tokens/expo/design.tokens.json +309 -1
  39. package/data/harnesses/code/skills/design/data/design-tokens/figma/design.tokens.json +313 -1
  40. package/data/harnesses/code/skills/design/data/design-tokens/framer/design.tokens.json +309 -1
  41. package/data/harnesses/code/skills/design/data/design-tokens/goldens.json +123 -123
  42. package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.tokens.json +309 -1
  43. package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.tokens.json +309 -1
  44. package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.tokens.json +309 -1
  45. package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.tokens.json +313 -1
  46. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.resolver.json +1 -1
  47. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.dark.json +10 -0
  48. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.json +309 -1
  49. package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.tokens.json +313 -1
  50. package/data/harnesses/code/skills/design/data/design-tokens/meta/design.tokens.json +313 -1
  51. package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.tokens.json +309 -1
  52. package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.tokens.json +309 -1
  53. package/data/harnesses/code/skills/design/data/design-tokens/miro/design.tokens.json +313 -1
  54. package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.tokens.json +309 -1
  55. package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.tokens.json +313 -1
  56. package/data/harnesses/code/skills/design/data/design-tokens/notion/design.tokens.json +309 -1
  57. package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.tokens.json +307 -2
  58. package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.tokens.json +309 -1
  59. package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.tokens.json +309 -1
  60. package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.tokens.json +309 -1
  61. package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.tokens.json +309 -1
  62. package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.tokens.json +309 -1
  63. package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.tokens.json +309 -1
  64. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.resolver.json +1 -1
  65. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.dark.json +10 -0
  66. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.json +309 -1
  67. package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.tokens.json +309 -1
  68. package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.tokens.json +310 -2
  69. package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.tokens.json +313 -1
  70. package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.tokens.json +309 -1
  71. package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.tokens.json +309 -1
  72. package/data/harnesses/code/skills/design/data/design-tokens/slack/design.tokens.json +309 -1
  73. package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.tokens.json +309 -1
  74. package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.tokens.json +313 -1
  75. package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.tokens.json +313 -1
  76. package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.tokens.json +309 -1
  77. package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.tokens.json +313 -1
  78. package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.tokens.json +309 -1
  79. package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.tokens.json +309 -1
  80. package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.tokens.json +313 -1
  81. package/data/harnesses/code/skills/design/data/design-tokens/uber/design.tokens.json +309 -1
  82. package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.tokens.json +309 -1
  83. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.resolver.json +1 -1
  84. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.dark.json +10 -0
  85. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.json +309 -1
  86. package/data/harnesses/code/skills/design/data/design-tokens/warp/design.tokens.json +309 -1
  87. package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.tokens.json +309 -1
  88. package/data/harnesses/code/skills/design/data/design-tokens/wired/design.tokens.json +309 -1
  89. package/data/harnesses/code/skills/design/data/design-tokens/wise/design.tokens.json +309 -1
  90. package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.tokens.json +309 -1
  91. package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.tokens.json +309 -1
  92. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/command-center.tsx +25 -25
  93. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/create-edit.tsx +18 -18
  94. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/dashboard.tsx +82 -105
  95. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/entity-detail.tsx +97 -93
  96. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/list-detail.tsx +16 -15
  97. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/log-stream.tsx +34 -34
  98. package/data/harnesses/code/skills/design/data/operator-pack/surface-catalog.md +5 -5
  99. package/data/harnesses/code/skills/design/references/create.md +49 -7
  100. package/data/harnesses/code/skills/design/references/diagnosis.md +3 -3
  101. package/data/harnesses/code/skills/design/references/hard-rules.md +25 -3
  102. package/data/harnesses/code/skills/design/references/improve.md +32 -3
  103. package/data/harnesses/code/skills/design/references/interaction.md +3 -3
  104. package/data/harnesses/code/skills/design/references/introspect.md +1 -1
  105. package/data/harnesses/code/skills/design/references/lifecycle.md +2 -2
  106. package/data/harnesses/code/skills/design/references/personality.md +280 -133
  107. package/data/harnesses/code/skills/design/references/structure.md +22 -1
  108. package/data/harnesses/code/skills/design/scripts/convert-design-md.mjs +306 -26
  109. package/data/harnesses/code/skills/design/scripts/derive-personality.mjs +596 -104
  110. package/data/harnesses/code/skills/design/scripts/lib/checks.mjs +200 -11
  111. package/data/harnesses/code/skills/design/scripts/lib/vocabulary.mjs +65 -0
  112. package/data/harnesses/code/skills/design/scripts/phase-gate.mjs +95 -11
  113. package/data/harnesses/code/skills/design/scripts/preship-sweep.mjs +50 -5
  114. package/data/harnesses/code/skills/design/scripts/render-rung.mjs +214 -14
  115. package/data/harnesses/code/skills/design/scripts/scaffold.mjs +242 -25
  116. package/data/harnesses/code/skills/design/scripts/self-integrity.mjs +81 -6
  117. package/data/harnesses/code/skills/design/scripts/snapshot-goldens.mjs +101 -5
  118. package/data/harnesses/code/skills/design/scripts/validate-combinations.mjs +142 -17
  119. package/package.json +1 -1
@@ -293,6 +293,16 @@
293
293
  }
294
294
  }
295
295
  },
296
+ "surface-raised": {
297
+ "$type": "color",
298
+ "$value": "{color.card}",
299
+ "$description": "derived: v1→v2 migration — aliased to the dark card; the +4–6 L surface ladder is owed at budget-time"
300
+ },
301
+ "surface-overlay": {
302
+ "$type": "color",
303
+ "$value": "{color.popover}",
304
+ "$description": "derived: v1→v2 migration — aliased to the dark popover; the +4–6 L surface ladder is owed at budget-time"
305
+ },
296
306
  "popover": {
297
307
  "$type": "color",
298
308
  "$value": {
@@ -2,11 +2,12 @@
2
2
  "$description": "Linear — near-black product-craft operator design\n[verbosity] derived: Linear's chrome is intentionally minimal and terse\n[feedback] derived: understated, functional motion\n[density-tier] derived: Linear reads dense like a technical tool, not a spacious consumer 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": "Linear",
8
8
  "provenance": "library",
9
9
  "sourced": "2026-07-04",
10
+ "theme-default": "dark",
10
11
  "product-traits": [
11
12
  "dev-tools",
12
13
  "issue-tracker",
@@ -185,6 +186,14 @@
185
186
  }
186
187
  }
187
188
  },
189
+ "stagger-unit": {
190
+ "$type": "duration",
191
+ "$value": {
192
+ "value": 30,
193
+ "unit": "ms"
194
+ },
195
+ "$description": "derived: v1→v2 migration — the 30ms default stagger base (0–60ms legal)"
196
+ },
188
197
  "contrast-boost": {
189
198
  "$type": "number",
190
199
  "$value": 1,
@@ -565,6 +574,16 @@
565
574
  }
566
575
  }
567
576
  },
577
+ "surface-raised": {
578
+ "$type": "color",
579
+ "$value": "{color.card}",
580
+ "$description": "derived: v1→v2 migration — light aliases card; dark looks carry the surface-lightness ladder"
581
+ },
582
+ "surface-overlay": {
583
+ "$type": "color",
584
+ "$value": "{color.popover}",
585
+ "$description": "derived: v1→v2 migration — light aliases popover; dark looks carry the surface-lightness ladder"
586
+ },
568
587
  "popover": {
569
588
  "$type": "color",
570
589
  "$value": {
@@ -958,6 +977,295 @@
958
977
  "letterSpacing": 0
959
978
  },
960
979
  "$description": "uppercase taxonomy"
980
+ },
981
+ "display": {
982
+ "$type": "typography",
983
+ "$value": {
984
+ "fontFamily": "{typography.family.heading}",
985
+ "fontSize": {
986
+ "value": 42,
987
+ "unit": "px"
988
+ },
989
+ "lineHeight": 1.25,
990
+ "fontWeight": "{primitive.font-weight-strong}",
991
+ "letterSpacing": "{primitive.heading-tracking}"
992
+ },
993
+ "$description": "derived: v1→v2 migration — provisional display step (h1 × 1.75, strong weight)",
994
+ "$extensions": {
995
+ "com.nurix.design": {
996
+ "hint": "display step unset — resolve from the product's design.md or leave for budget-time"
997
+ }
998
+ }
999
+ }
1000
+ }
1001
+ },
1002
+ "elevation": {
1003
+ "sm": {
1004
+ "$type": "shadow",
1005
+ "$value": [
1006
+ {
1007
+ "color": {
1008
+ "colorSpace": "srgb",
1009
+ "components": [
1010
+ 0.05882,
1011
+ 0.0902,
1012
+ 0.16471
1013
+ ],
1014
+ "hex": "#0f172a",
1015
+ "alpha": 0.1
1016
+ },
1017
+ "offsetX": {
1018
+ "value": 0,
1019
+ "unit": "px"
1020
+ },
1021
+ "offsetY": {
1022
+ "value": 1,
1023
+ "unit": "px"
1024
+ },
1025
+ "blur": {
1026
+ "value": 3,
1027
+ "unit": "px"
1028
+ },
1029
+ "spread": {
1030
+ "value": 0,
1031
+ "unit": "px"
1032
+ }
1033
+ },
1034
+ {
1035
+ "color": {
1036
+ "colorSpace": "srgb",
1037
+ "components": [
1038
+ 0.05882,
1039
+ 0.0902,
1040
+ 0.16471
1041
+ ],
1042
+ "hex": "#0f172a",
1043
+ "alpha": 0.1
1044
+ },
1045
+ "offsetX": {
1046
+ "value": 0,
1047
+ "unit": "px"
1048
+ },
1049
+ "offsetY": {
1050
+ "value": 1,
1051
+ "unit": "px"
1052
+ },
1053
+ "blur": {
1054
+ "value": 2,
1055
+ "unit": "px"
1056
+ },
1057
+ "spread": {
1058
+ "value": -1,
1059
+ "unit": "px"
1060
+ }
1061
+ }
1062
+ ],
1063
+ "$description": "derived: v1 shadow-intensity migration",
1064
+ "$extensions": {
1065
+ "com.nurix.design": {
1066
+ "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)))"
1067
+ }
1068
+ }
1069
+ },
1070
+ "md": {
1071
+ "$type": "shadow",
1072
+ "$value": [
1073
+ {
1074
+ "color": {
1075
+ "colorSpace": "srgb",
1076
+ "components": [
1077
+ 0.05882,
1078
+ 0.0902,
1079
+ 0.16471
1080
+ ],
1081
+ "hex": "#0f172a",
1082
+ "alpha": 0.1
1083
+ },
1084
+ "offsetX": {
1085
+ "value": 0,
1086
+ "unit": "px"
1087
+ },
1088
+ "offsetY": {
1089
+ "value": 4,
1090
+ "unit": "px"
1091
+ },
1092
+ "blur": {
1093
+ "value": 6,
1094
+ "unit": "px"
1095
+ },
1096
+ "spread": {
1097
+ "value": -1,
1098
+ "unit": "px"
1099
+ }
1100
+ },
1101
+ {
1102
+ "color": {
1103
+ "colorSpace": "srgb",
1104
+ "components": [
1105
+ 0.05882,
1106
+ 0.0902,
1107
+ 0.16471
1108
+ ],
1109
+ "hex": "#0f172a",
1110
+ "alpha": 0.1
1111
+ },
1112
+ "offsetX": {
1113
+ "value": 0,
1114
+ "unit": "px"
1115
+ },
1116
+ "offsetY": {
1117
+ "value": 2,
1118
+ "unit": "px"
1119
+ },
1120
+ "blur": {
1121
+ "value": 4,
1122
+ "unit": "px"
1123
+ },
1124
+ "spread": {
1125
+ "value": -2,
1126
+ "unit": "px"
1127
+ }
1128
+ }
1129
+ ],
1130
+ "$description": "derived: v1 shadow-intensity migration",
1131
+ "$extensions": {
1132
+ "com.nurix.design": {
1133
+ "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)))"
1134
+ }
1135
+ }
1136
+ },
1137
+ "lg": {
1138
+ "$type": "shadow",
1139
+ "$value": [
1140
+ {
1141
+ "color": {
1142
+ "colorSpace": "srgb",
1143
+ "components": [
1144
+ 0.05882,
1145
+ 0.0902,
1146
+ 0.16471
1147
+ ],
1148
+ "hex": "#0f172a",
1149
+ "alpha": 0.1
1150
+ },
1151
+ "offsetX": {
1152
+ "value": 0,
1153
+ "unit": "px"
1154
+ },
1155
+ "offsetY": {
1156
+ "value": 10,
1157
+ "unit": "px"
1158
+ },
1159
+ "blur": {
1160
+ "value": 15,
1161
+ "unit": "px"
1162
+ },
1163
+ "spread": {
1164
+ "value": -3,
1165
+ "unit": "px"
1166
+ }
1167
+ },
1168
+ {
1169
+ "color": {
1170
+ "colorSpace": "srgb",
1171
+ "components": [
1172
+ 0.05882,
1173
+ 0.0902,
1174
+ 0.16471
1175
+ ],
1176
+ "hex": "#0f172a",
1177
+ "alpha": 0.1
1178
+ },
1179
+ "offsetX": {
1180
+ "value": 0,
1181
+ "unit": "px"
1182
+ },
1183
+ "offsetY": {
1184
+ "value": 4,
1185
+ "unit": "px"
1186
+ },
1187
+ "blur": {
1188
+ "value": 6,
1189
+ "unit": "px"
1190
+ },
1191
+ "spread": {
1192
+ "value": -4,
1193
+ "unit": "px"
1194
+ }
1195
+ }
1196
+ ],
1197
+ "$description": "derived: v1 shadow-intensity migration",
1198
+ "$extensions": {
1199
+ "com.nurix.design": {
1200
+ "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)))"
1201
+ }
1202
+ }
1203
+ },
1204
+ "overlay": {
1205
+ "$type": "shadow",
1206
+ "$value": [
1207
+ {
1208
+ "color": {
1209
+ "colorSpace": "srgb",
1210
+ "components": [
1211
+ 0.05882,
1212
+ 0.0902,
1213
+ 0.16471
1214
+ ],
1215
+ "hex": "#0f172a",
1216
+ "alpha": 0.1
1217
+ },
1218
+ "offsetX": {
1219
+ "value": 0,
1220
+ "unit": "px"
1221
+ },
1222
+ "offsetY": {
1223
+ "value": 20,
1224
+ "unit": "px"
1225
+ },
1226
+ "blur": {
1227
+ "value": 25,
1228
+ "unit": "px"
1229
+ },
1230
+ "spread": {
1231
+ "value": -5,
1232
+ "unit": "px"
1233
+ }
1234
+ },
1235
+ {
1236
+ "color": {
1237
+ "colorSpace": "srgb",
1238
+ "components": [
1239
+ 0.05882,
1240
+ 0.0902,
1241
+ 0.16471
1242
+ ],
1243
+ "hex": "#0f172a",
1244
+ "alpha": 0.1
1245
+ },
1246
+ "offsetX": {
1247
+ "value": 0,
1248
+ "unit": "px"
1249
+ },
1250
+ "offsetY": {
1251
+ "value": 8,
1252
+ "unit": "px"
1253
+ },
1254
+ "blur": {
1255
+ "value": 10,
1256
+ "unit": "px"
1257
+ },
1258
+ "spread": {
1259
+ "value": -6,
1260
+ "unit": "px"
1261
+ }
1262
+ }
1263
+ ],
1264
+ "$description": "derived: v1 shadow-intensity migration",
1265
+ "$extensions": {
1266
+ "com.nurix.design": {
1267
+ "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)))"
1268
+ }
961
1269
  }
962
1270
  }
963
1271
  }
@@ -2,11 +2,12 @@
2
2
  "$description": "Lovable — warm parchment operator design\n[feedback] derived: brand uses opacity-0.8 active and soft diffused focus — gentle, understated feedback\n[density-tier] derived: a spacious marketing brand read at operator density; warmth carries via palette and type, not lavish gaps\n[spacing-scale] 8px base; editorial 96–208 stay behind with the marketing\n[radius-scale] no hard 0 — the brand's soft-corner character starts at 4px",
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": "Lovable",
8
8
  "provenance": "library",
9
9
  "sourced": "2026-07-04",
10
+ "theme-default": "light",
10
11
  "product-traits": [
11
12
  "dev-tools",
12
13
  "ai-builder",
@@ -180,6 +181,14 @@
180
181
  }
181
182
  }
182
183
  },
184
+ "stagger-unit": {
185
+ "$type": "duration",
186
+ "$value": {
187
+ "value": 30,
188
+ "unit": "ms"
189
+ },
190
+ "$description": "derived: v1→v2 migration — the 30ms default stagger base (0–60ms legal)"
191
+ },
183
192
  "contrast-boost": {
184
193
  "$type": "number",
185
194
  "$value": 1,
@@ -557,6 +566,16 @@
557
566
  }
558
567
  }
559
568
  },
569
+ "surface-raised": {
570
+ "$type": "color",
571
+ "$value": "{color.card}",
572
+ "$description": "derived: v1→v2 migration — light aliases card; dark looks carry the surface-lightness ladder"
573
+ },
574
+ "surface-overlay": {
575
+ "$type": "color",
576
+ "$value": "{color.popover}",
577
+ "$description": "derived: v1→v2 migration — light aliases popover; dark looks carry the surface-lightness ladder"
578
+ },
560
579
  "popover": {
561
580
  "$type": "color",
562
581
  "$value": {
@@ -949,6 +968,299 @@
949
968
  "letterSpacing": 0
950
969
  },
951
970
  "$description": "eyebrow, metadata"
971
+ },
972
+ "display": {
973
+ "$type": "typography",
974
+ "$value": {
975
+ "fontFamily": "{typography.family.heading}",
976
+ "fontSize": {
977
+ "value": 42,
978
+ "unit": "px"
979
+ },
980
+ "lineHeight": 1.25,
981
+ "fontWeight": "{primitive.font-weight-strong}",
982
+ "letterSpacing": "{primitive.heading-tracking}"
983
+ },
984
+ "$description": "derived: v1→v2 migration — provisional display step (h1 × 1.75, strong weight)",
985
+ "$extensions": {
986
+ "com.nurix.design": {
987
+ "hint": "display step unset — resolve from the product's design.md or leave for budget-time"
988
+ }
989
+ }
990
+ }
991
+ }
992
+ },
993
+ "elevation": {
994
+ "sm": {
995
+ "$type": "shadow",
996
+ "$value": [
997
+ {
998
+ "color": {
999
+ "colorSpace": "srgb",
1000
+ "components": [
1001
+ 0.05882,
1002
+ 0.0902,
1003
+ 0.16471
1004
+ ],
1005
+ "hex": "#0f172a",
1006
+ "alpha": 0.1
1007
+ },
1008
+ "offsetX": {
1009
+ "value": 0,
1010
+ "unit": "px"
1011
+ },
1012
+ "offsetY": {
1013
+ "value": 1,
1014
+ "unit": "px"
1015
+ },
1016
+ "blur": {
1017
+ "value": 3,
1018
+ "unit": "px"
1019
+ },
1020
+ "spread": {
1021
+ "value": 0,
1022
+ "unit": "px"
1023
+ }
1024
+ },
1025
+ {
1026
+ "color": {
1027
+ "colorSpace": "srgb",
1028
+ "components": [
1029
+ 0.05882,
1030
+ 0.0902,
1031
+ 0.16471
1032
+ ],
1033
+ "hex": "#0f172a",
1034
+ "alpha": 0.1
1035
+ },
1036
+ "offsetX": {
1037
+ "value": 0,
1038
+ "unit": "px"
1039
+ },
1040
+ "offsetY": {
1041
+ "value": 1,
1042
+ "unit": "px"
1043
+ },
1044
+ "blur": {
1045
+ "value": 2,
1046
+ "unit": "px"
1047
+ },
1048
+ "spread": {
1049
+ "value": -1,
1050
+ "unit": "px"
1051
+ }
1052
+ }
1053
+ ],
1054
+ "$description": "derived: v1 shadow-intensity migration",
1055
+ "$extensions": {
1056
+ "com.nurix.design": {
1057
+ "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)))",
1058
+ "hint": "elevation unset — the design.md names real shadow values (`rgba(0,0,0,0.1) 0px 4px 12px`); resolve the composites from that prose at the data build"
1059
+ }
1060
+ }
1061
+ },
1062
+ "md": {
1063
+ "$type": "shadow",
1064
+ "$value": [
1065
+ {
1066
+ "color": {
1067
+ "colorSpace": "srgb",
1068
+ "components": [
1069
+ 0.05882,
1070
+ 0.0902,
1071
+ 0.16471
1072
+ ],
1073
+ "hex": "#0f172a",
1074
+ "alpha": 0.1
1075
+ },
1076
+ "offsetX": {
1077
+ "value": 0,
1078
+ "unit": "px"
1079
+ },
1080
+ "offsetY": {
1081
+ "value": 4,
1082
+ "unit": "px"
1083
+ },
1084
+ "blur": {
1085
+ "value": 6,
1086
+ "unit": "px"
1087
+ },
1088
+ "spread": {
1089
+ "value": -1,
1090
+ "unit": "px"
1091
+ }
1092
+ },
1093
+ {
1094
+ "color": {
1095
+ "colorSpace": "srgb",
1096
+ "components": [
1097
+ 0.05882,
1098
+ 0.0902,
1099
+ 0.16471
1100
+ ],
1101
+ "hex": "#0f172a",
1102
+ "alpha": 0.1
1103
+ },
1104
+ "offsetX": {
1105
+ "value": 0,
1106
+ "unit": "px"
1107
+ },
1108
+ "offsetY": {
1109
+ "value": 2,
1110
+ "unit": "px"
1111
+ },
1112
+ "blur": {
1113
+ "value": 4,
1114
+ "unit": "px"
1115
+ },
1116
+ "spread": {
1117
+ "value": -2,
1118
+ "unit": "px"
1119
+ }
1120
+ }
1121
+ ],
1122
+ "$description": "derived: v1 shadow-intensity migration",
1123
+ "$extensions": {
1124
+ "com.nurix.design": {
1125
+ "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)))",
1126
+ "hint": "elevation unset — the design.md names real shadow values (`rgba(0,0,0,0.1) 0px 4px 12px`); resolve the composites from that prose at the data build"
1127
+ }
1128
+ }
1129
+ },
1130
+ "lg": {
1131
+ "$type": "shadow",
1132
+ "$value": [
1133
+ {
1134
+ "color": {
1135
+ "colorSpace": "srgb",
1136
+ "components": [
1137
+ 0.05882,
1138
+ 0.0902,
1139
+ 0.16471
1140
+ ],
1141
+ "hex": "#0f172a",
1142
+ "alpha": 0.1
1143
+ },
1144
+ "offsetX": {
1145
+ "value": 0,
1146
+ "unit": "px"
1147
+ },
1148
+ "offsetY": {
1149
+ "value": 10,
1150
+ "unit": "px"
1151
+ },
1152
+ "blur": {
1153
+ "value": 15,
1154
+ "unit": "px"
1155
+ },
1156
+ "spread": {
1157
+ "value": -3,
1158
+ "unit": "px"
1159
+ }
1160
+ },
1161
+ {
1162
+ "color": {
1163
+ "colorSpace": "srgb",
1164
+ "components": [
1165
+ 0.05882,
1166
+ 0.0902,
1167
+ 0.16471
1168
+ ],
1169
+ "hex": "#0f172a",
1170
+ "alpha": 0.1
1171
+ },
1172
+ "offsetX": {
1173
+ "value": 0,
1174
+ "unit": "px"
1175
+ },
1176
+ "offsetY": {
1177
+ "value": 4,
1178
+ "unit": "px"
1179
+ },
1180
+ "blur": {
1181
+ "value": 6,
1182
+ "unit": "px"
1183
+ },
1184
+ "spread": {
1185
+ "value": -4,
1186
+ "unit": "px"
1187
+ }
1188
+ }
1189
+ ],
1190
+ "$description": "derived: v1 shadow-intensity migration",
1191
+ "$extensions": {
1192
+ "com.nurix.design": {
1193
+ "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)))",
1194
+ "hint": "elevation unset — the design.md names real shadow values (`rgba(0,0,0,0.1) 0px 4px 12px`); resolve the composites from that prose at the data build"
1195
+ }
1196
+ }
1197
+ },
1198
+ "overlay": {
1199
+ "$type": "shadow",
1200
+ "$value": [
1201
+ {
1202
+ "color": {
1203
+ "colorSpace": "srgb",
1204
+ "components": [
1205
+ 0.05882,
1206
+ 0.0902,
1207
+ 0.16471
1208
+ ],
1209
+ "hex": "#0f172a",
1210
+ "alpha": 0.1
1211
+ },
1212
+ "offsetX": {
1213
+ "value": 0,
1214
+ "unit": "px"
1215
+ },
1216
+ "offsetY": {
1217
+ "value": 20,
1218
+ "unit": "px"
1219
+ },
1220
+ "blur": {
1221
+ "value": 25,
1222
+ "unit": "px"
1223
+ },
1224
+ "spread": {
1225
+ "value": -5,
1226
+ "unit": "px"
1227
+ }
1228
+ },
1229
+ {
1230
+ "color": {
1231
+ "colorSpace": "srgb",
1232
+ "components": [
1233
+ 0.05882,
1234
+ 0.0902,
1235
+ 0.16471
1236
+ ],
1237
+ "hex": "#0f172a",
1238
+ "alpha": 0.1
1239
+ },
1240
+ "offsetX": {
1241
+ "value": 0,
1242
+ "unit": "px"
1243
+ },
1244
+ "offsetY": {
1245
+ "value": 8,
1246
+ "unit": "px"
1247
+ },
1248
+ "blur": {
1249
+ "value": 10,
1250
+ "unit": "px"
1251
+ },
1252
+ "spread": {
1253
+ "value": -6,
1254
+ "unit": "px"
1255
+ }
1256
+ }
1257
+ ],
1258
+ "$description": "derived: v1 shadow-intensity migration",
1259
+ "$extensions": {
1260
+ "com.nurix.design": {
1261
+ "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)))",
1262
+ "hint": "elevation unset — the design.md names real shadow values (`rgba(0,0,0,0.1) 0px 4px 12px`); resolve the composites from that prose at the data build"
1263
+ }
952
1264
  }
953
1265
  }
954
1266
  }