@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
@@ -2,11 +2,12 @@
2
2
  "$description": "Runway — cinematic monochrome, read for the operator\n[verbosity] derived: brand keeps text minimal, the interface near-invisible\n[feedback] derived: quiet, restrained, invisible-interface ethos\n[density-tier] derived: cinema-grade breathing, generous section spacing\n[lever-manifest] dark is the brand-native default (data-theme=\"dark\"); every dark value is documented in §2 Color Roles.\n[lever-manifest] A project confirming this library ships the dark map alongside; the coverage gate requires light, so light is machine-carried here.",
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": "Runway",
8
8
  "provenance": "library",
9
9
  "sourced": "2026-07-04",
10
+ "theme-default": "light",
10
11
  "product-traits": [
11
12
  "creative-tools",
12
13
  "media-asset",
@@ -111,7 +112,7 @@
111
112
  "SFMono-Regular",
112
113
  "monospace"
113
114
  ],
114
- "$description": "derived: brand is single-typeface; operator floor P4 needs a mono",
115
+ "$description": "derived: brand is single-typeface; operator floor f04 needs a mono",
115
116
  "$extensions": {
116
117
  "com.nurix.design": {
117
118
  "css": "Geist Mono, ui-monospace, SFMono-Regular, monospace"
@@ -181,6 +182,14 @@
181
182
  }
182
183
  }
183
184
  },
185
+ "stagger-unit": {
186
+ "$type": "duration",
187
+ "$value": {
188
+ "value": 30,
189
+ "unit": "ms"
190
+ },
191
+ "$description": "derived: v1→v2 migration — the 30ms default stagger base (0–60ms legal)"
192
+ },
184
193
  "contrast-boost": {
185
194
  "$type": "number",
186
195
  "$value": 1,
@@ -549,6 +558,16 @@
549
558
  }
550
559
  }
551
560
  },
561
+ "surface-raised": {
562
+ "$type": "color",
563
+ "$value": "{color.card}",
564
+ "$description": "derived: v1→v2 migration — light aliases card; dark looks carry the surface-lightness ladder"
565
+ },
566
+ "surface-overlay": {
567
+ "$type": "color",
568
+ "$value": "{color.popover}",
569
+ "$description": "derived: v1→v2 migration — light aliases popover; dark looks carry the surface-lightness ladder"
570
+ },
552
571
  "popover": {
553
572
  "$type": "color",
554
573
  "$value": {
@@ -954,6 +973,295 @@
954
973
  }
955
974
  }
956
975
  }
976
+ },
977
+ "display": {
978
+ "$type": "typography",
979
+ "$value": {
980
+ "fontFamily": "{typography.family.heading}",
981
+ "fontSize": {
982
+ "value": 70,
983
+ "unit": "px"
984
+ },
985
+ "lineHeight": 1,
986
+ "fontWeight": "{primitive.font-weight-strong}",
987
+ "letterSpacing": "{primitive.heading-tracking}"
988
+ },
989
+ "$description": "derived: v1→v2 migration — provisional display step (h1 × 1.75, strong weight)",
990
+ "$extensions": {
991
+ "com.nurix.design": {
992
+ "hint": "display step unset — resolve from the product's design.md or leave for budget-time"
993
+ }
994
+ }
995
+ }
996
+ }
997
+ },
998
+ "elevation": {
999
+ "sm": {
1000
+ "$type": "shadow",
1001
+ "$value": [
1002
+ {
1003
+ "color": {
1004
+ "colorSpace": "srgb",
1005
+ "components": [
1006
+ 0.05882,
1007
+ 0.0902,
1008
+ 0.16471
1009
+ ],
1010
+ "hex": "#0f172a",
1011
+ "alpha": 0.1
1012
+ },
1013
+ "offsetX": {
1014
+ "value": 0,
1015
+ "unit": "px"
1016
+ },
1017
+ "offsetY": {
1018
+ "value": 1,
1019
+ "unit": "px"
1020
+ },
1021
+ "blur": {
1022
+ "value": 3,
1023
+ "unit": "px"
1024
+ },
1025
+ "spread": {
1026
+ "value": 0,
1027
+ "unit": "px"
1028
+ }
1029
+ },
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": 2,
1051
+ "unit": "px"
1052
+ },
1053
+ "spread": {
1054
+ "value": -1,
1055
+ "unit": "px"
1056
+ }
1057
+ }
1058
+ ],
1059
+ "$description": "derived: v1 shadow-intensity migration",
1060
+ "$extensions": {
1061
+ "com.nurix.design": {
1062
+ "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)))"
1063
+ }
1064
+ }
1065
+ },
1066
+ "md": {
1067
+ "$type": "shadow",
1068
+ "$value": [
1069
+ {
1070
+ "color": {
1071
+ "colorSpace": "srgb",
1072
+ "components": [
1073
+ 0.05882,
1074
+ 0.0902,
1075
+ 0.16471
1076
+ ],
1077
+ "hex": "#0f172a",
1078
+ "alpha": 0.1
1079
+ },
1080
+ "offsetX": {
1081
+ "value": 0,
1082
+ "unit": "px"
1083
+ },
1084
+ "offsetY": {
1085
+ "value": 4,
1086
+ "unit": "px"
1087
+ },
1088
+ "blur": {
1089
+ "value": 6,
1090
+ "unit": "px"
1091
+ },
1092
+ "spread": {
1093
+ "value": -1,
1094
+ "unit": "px"
1095
+ }
1096
+ },
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": 2,
1114
+ "unit": "px"
1115
+ },
1116
+ "blur": {
1117
+ "value": 4,
1118
+ "unit": "px"
1119
+ },
1120
+ "spread": {
1121
+ "value": -2,
1122
+ "unit": "px"
1123
+ }
1124
+ }
1125
+ ],
1126
+ "$description": "derived: v1 shadow-intensity migration",
1127
+ "$extensions": {
1128
+ "com.nurix.design": {
1129
+ "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)))"
1130
+ }
1131
+ }
1132
+ },
1133
+ "lg": {
1134
+ "$type": "shadow",
1135
+ "$value": [
1136
+ {
1137
+ "color": {
1138
+ "colorSpace": "srgb",
1139
+ "components": [
1140
+ 0.05882,
1141
+ 0.0902,
1142
+ 0.16471
1143
+ ],
1144
+ "hex": "#0f172a",
1145
+ "alpha": 0.1
1146
+ },
1147
+ "offsetX": {
1148
+ "value": 0,
1149
+ "unit": "px"
1150
+ },
1151
+ "offsetY": {
1152
+ "value": 10,
1153
+ "unit": "px"
1154
+ },
1155
+ "blur": {
1156
+ "value": 15,
1157
+ "unit": "px"
1158
+ },
1159
+ "spread": {
1160
+ "value": -3,
1161
+ "unit": "px"
1162
+ }
1163
+ },
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": 4,
1181
+ "unit": "px"
1182
+ },
1183
+ "blur": {
1184
+ "value": 6,
1185
+ "unit": "px"
1186
+ },
1187
+ "spread": {
1188
+ "value": -4,
1189
+ "unit": "px"
1190
+ }
1191
+ }
1192
+ ],
1193
+ "$description": "derived: v1 shadow-intensity migration",
1194
+ "$extensions": {
1195
+ "com.nurix.design": {
1196
+ "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)))"
1197
+ }
1198
+ }
1199
+ },
1200
+ "overlay": {
1201
+ "$type": "shadow",
1202
+ "$value": [
1203
+ {
1204
+ "color": {
1205
+ "colorSpace": "srgb",
1206
+ "components": [
1207
+ 0.05882,
1208
+ 0.0902,
1209
+ 0.16471
1210
+ ],
1211
+ "hex": "#0f172a",
1212
+ "alpha": 0.1
1213
+ },
1214
+ "offsetX": {
1215
+ "value": 0,
1216
+ "unit": "px"
1217
+ },
1218
+ "offsetY": {
1219
+ "value": 20,
1220
+ "unit": "px"
1221
+ },
1222
+ "blur": {
1223
+ "value": 25,
1224
+ "unit": "px"
1225
+ },
1226
+ "spread": {
1227
+ "value": -5,
1228
+ "unit": "px"
1229
+ }
1230
+ },
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": 8,
1248
+ "unit": "px"
1249
+ },
1250
+ "blur": {
1251
+ "value": 10,
1252
+ "unit": "px"
1253
+ },
1254
+ "spread": {
1255
+ "value": -6,
1256
+ "unit": "px"
1257
+ }
1258
+ }
1259
+ ],
1260
+ "$description": "derived: v1 shadow-intensity migration",
1261
+ "$extensions": {
1262
+ "com.nurix.design": {
1263
+ "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)))"
1264
+ }
957
1265
  }
958
1266
  }
959
1267
  }
@@ -2,11 +2,12 @@
2
2
  "$description": "Sanity — an operator reading of the near-black command-center system\n[verbosity] derived: terminal-native \"system readout\" precision trusts dense readouts over explanatory chrome\n[feedback] derived: the consistent hover-to-blue activation is a present but restrained signal\n[density-tier] derived: a tool \"for people who live in terminals\" reads dense\n[accent-count] brand demands it: coral `primary` (the resting CTA) + electric blue (the system-wide activation signal on ring/nav/links); the doctrine one-accent floor yields to the documented two-signal system\n[color-tokens.light] categorically-dark brand: the default-worn theme is dark and fills this required default slot; there is no light surface",
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": "Sanity",
8
8
  "provenance": "library",
9
9
  "sourced": "2026-07-04",
10
+ "theme-default": "light",
10
11
  "product-traits": [
11
12
  "dev-tools",
12
13
  "cms",
@@ -184,6 +185,14 @@
184
185
  }
185
186
  }
186
187
  },
188
+ "stagger-unit": {
189
+ "$type": "duration",
190
+ "$value": {
191
+ "value": 30,
192
+ "unit": "ms"
193
+ },
194
+ "$description": "derived: v1→v2 migration — the 30ms default stagger base (0–60ms legal)"
195
+ },
187
196
  "contrast-boost": {
188
197
  "$type": "number",
189
198
  "$value": 1,
@@ -559,6 +568,16 @@
559
568
  }
560
569
  }
561
570
  },
571
+ "surface-raised": {
572
+ "$type": "color",
573
+ "$value": "{color.card}",
574
+ "$description": "derived: v1→v2 migration — light aliases card; dark looks carry the surface-lightness ladder"
575
+ },
576
+ "surface-overlay": {
577
+ "$type": "color",
578
+ "$value": "{color.popover}",
579
+ "$description": "derived: v1→v2 migration — light aliases popover; dark looks carry the surface-lightness ladder"
580
+ },
562
581
  "popover": {
563
582
  "$type": "color",
564
583
  "$value": {
@@ -952,6 +971,299 @@
952
971
  "letterSpacing": 0
953
972
  },
954
973
  "$description": "uppercase eyebrow / tag"
974
+ },
975
+ "display": {
976
+ "$type": "typography",
977
+ "$value": {
978
+ "fontFamily": "{typography.family.heading}",
979
+ "fontSize": {
980
+ "value": 42,
981
+ "unit": "px"
982
+ },
983
+ "lineHeight": 1.24,
984
+ "fontWeight": "{primitive.font-weight-strong}",
985
+ "letterSpacing": "{primitive.heading-tracking}"
986
+ },
987
+ "$description": "derived: v1→v2 migration — provisional display step (h1 × 1.75, strong weight)",
988
+ "$extensions": {
989
+ "com.nurix.design": {
990
+ "hint": "display step unset — resolve from the product's design.md or leave for budget-time"
991
+ }
992
+ }
993
+ }
994
+ }
995
+ },
996
+ "elevation": {
997
+ "sm": {
998
+ "$type": "shadow",
999
+ "$value": [
1000
+ {
1001
+ "color": {
1002
+ "colorSpace": "srgb",
1003
+ "components": [
1004
+ 0.05882,
1005
+ 0.0902,
1006
+ 0.16471
1007
+ ],
1008
+ "hex": "#0f172a",
1009
+ "alpha": 0.1
1010
+ },
1011
+ "offsetX": {
1012
+ "value": 0,
1013
+ "unit": "px"
1014
+ },
1015
+ "offsetY": {
1016
+ "value": 1,
1017
+ "unit": "px"
1018
+ },
1019
+ "blur": {
1020
+ "value": 3,
1021
+ "unit": "px"
1022
+ },
1023
+ "spread": {
1024
+ "value": 0,
1025
+ "unit": "px"
1026
+ }
1027
+ },
1028
+ {
1029
+ "color": {
1030
+ "colorSpace": "srgb",
1031
+ "components": [
1032
+ 0.05882,
1033
+ 0.0902,
1034
+ 0.16471
1035
+ ],
1036
+ "hex": "#0f172a",
1037
+ "alpha": 0.1
1038
+ },
1039
+ "offsetX": {
1040
+ "value": 0,
1041
+ "unit": "px"
1042
+ },
1043
+ "offsetY": {
1044
+ "value": 1,
1045
+ "unit": "px"
1046
+ },
1047
+ "blur": {
1048
+ "value": 2,
1049
+ "unit": "px"
1050
+ },
1051
+ "spread": {
1052
+ "value": -1,
1053
+ "unit": "px"
1054
+ }
1055
+ }
1056
+ ],
1057
+ "$description": "derived: v1 shadow-intensity migration",
1058
+ "$extensions": {
1059
+ "com.nurix.design": {
1060
+ "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)))",
1061
+ "hint": "elevation unset — the design.md names real shadow values (`0 0 0 Npx`); resolve the composites from that prose at the data build"
1062
+ }
1063
+ }
1064
+ },
1065
+ "md": {
1066
+ "$type": "shadow",
1067
+ "$value": [
1068
+ {
1069
+ "color": {
1070
+ "colorSpace": "srgb",
1071
+ "components": [
1072
+ 0.05882,
1073
+ 0.0902,
1074
+ 0.16471
1075
+ ],
1076
+ "hex": "#0f172a",
1077
+ "alpha": 0.1
1078
+ },
1079
+ "offsetX": {
1080
+ "value": 0,
1081
+ "unit": "px"
1082
+ },
1083
+ "offsetY": {
1084
+ "value": 4,
1085
+ "unit": "px"
1086
+ },
1087
+ "blur": {
1088
+ "value": 6,
1089
+ "unit": "px"
1090
+ },
1091
+ "spread": {
1092
+ "value": -1,
1093
+ "unit": "px"
1094
+ }
1095
+ },
1096
+ {
1097
+ "color": {
1098
+ "colorSpace": "srgb",
1099
+ "components": [
1100
+ 0.05882,
1101
+ 0.0902,
1102
+ 0.16471
1103
+ ],
1104
+ "hex": "#0f172a",
1105
+ "alpha": 0.1
1106
+ },
1107
+ "offsetX": {
1108
+ "value": 0,
1109
+ "unit": "px"
1110
+ },
1111
+ "offsetY": {
1112
+ "value": 2,
1113
+ "unit": "px"
1114
+ },
1115
+ "blur": {
1116
+ "value": 4,
1117
+ "unit": "px"
1118
+ },
1119
+ "spread": {
1120
+ "value": -2,
1121
+ "unit": "px"
1122
+ }
1123
+ }
1124
+ ],
1125
+ "$description": "derived: v1 shadow-intensity migration",
1126
+ "$extensions": {
1127
+ "com.nurix.design": {
1128
+ "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)))",
1129
+ "hint": "elevation unset — the design.md names real shadow values (`0 0 0 Npx`); resolve the composites from that prose at the data build"
1130
+ }
1131
+ }
1132
+ },
1133
+ "lg": {
1134
+ "$type": "shadow",
1135
+ "$value": [
1136
+ {
1137
+ "color": {
1138
+ "colorSpace": "srgb",
1139
+ "components": [
1140
+ 0.05882,
1141
+ 0.0902,
1142
+ 0.16471
1143
+ ],
1144
+ "hex": "#0f172a",
1145
+ "alpha": 0.1
1146
+ },
1147
+ "offsetX": {
1148
+ "value": 0,
1149
+ "unit": "px"
1150
+ },
1151
+ "offsetY": {
1152
+ "value": 10,
1153
+ "unit": "px"
1154
+ },
1155
+ "blur": {
1156
+ "value": 15,
1157
+ "unit": "px"
1158
+ },
1159
+ "spread": {
1160
+ "value": -3,
1161
+ "unit": "px"
1162
+ }
1163
+ },
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": 4,
1181
+ "unit": "px"
1182
+ },
1183
+ "blur": {
1184
+ "value": 6,
1185
+ "unit": "px"
1186
+ },
1187
+ "spread": {
1188
+ "value": -4,
1189
+ "unit": "px"
1190
+ }
1191
+ }
1192
+ ],
1193
+ "$description": "derived: v1 shadow-intensity migration",
1194
+ "$extensions": {
1195
+ "com.nurix.design": {
1196
+ "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)))",
1197
+ "hint": "elevation unset — the design.md names real shadow values (`0 0 0 Npx`); resolve the composites from that prose at the data build"
1198
+ }
1199
+ }
1200
+ },
1201
+ "overlay": {
1202
+ "$type": "shadow",
1203
+ "$value": [
1204
+ {
1205
+ "color": {
1206
+ "colorSpace": "srgb",
1207
+ "components": [
1208
+ 0.05882,
1209
+ 0.0902,
1210
+ 0.16471
1211
+ ],
1212
+ "hex": "#0f172a",
1213
+ "alpha": 0.1
1214
+ },
1215
+ "offsetX": {
1216
+ "value": 0,
1217
+ "unit": "px"
1218
+ },
1219
+ "offsetY": {
1220
+ "value": 20,
1221
+ "unit": "px"
1222
+ },
1223
+ "blur": {
1224
+ "value": 25,
1225
+ "unit": "px"
1226
+ },
1227
+ "spread": {
1228
+ "value": -5,
1229
+ "unit": "px"
1230
+ }
1231
+ },
1232
+ {
1233
+ "color": {
1234
+ "colorSpace": "srgb",
1235
+ "components": [
1236
+ 0.05882,
1237
+ 0.0902,
1238
+ 0.16471
1239
+ ],
1240
+ "hex": "#0f172a",
1241
+ "alpha": 0.1
1242
+ },
1243
+ "offsetX": {
1244
+ "value": 0,
1245
+ "unit": "px"
1246
+ },
1247
+ "offsetY": {
1248
+ "value": 8,
1249
+ "unit": "px"
1250
+ },
1251
+ "blur": {
1252
+ "value": 10,
1253
+ "unit": "px"
1254
+ },
1255
+ "spread": {
1256
+ "value": -6,
1257
+ "unit": "px"
1258
+ }
1259
+ }
1260
+ ],
1261
+ "$description": "derived: v1 shadow-intensity migration",
1262
+ "$extensions": {
1263
+ "com.nurix.design": {
1264
+ "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)))",
1265
+ "hint": "elevation unset — the design.md names real shadow values (`0 0 0 Npx`); resolve the composites from that prose at the data build"
1266
+ }
955
1267
  }
956
1268
  }
957
1269
  }