@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": "Expo — the operator reading\n[feedback] rationale: Expo's quiet, editorial voice; feedback stays understated but legible\n[density-tier] derived: developer platform between terminal-dense and consumer-spacious; standard, stepping denser per archetype",
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": "Expo",
8
8
  "provenance": "library",
9
9
  "sourced": "2026-07-04",
10
+ "theme-default": "light",
10
11
  "product-traits": [
11
12
  "dev-tools",
12
13
  "developer-platform",
@@ -182,6 +183,14 @@
182
183
  }
183
184
  }
184
185
  },
186
+ "stagger-unit": {
187
+ "$type": "duration",
188
+ "$value": {
189
+ "value": 30,
190
+ "unit": "ms"
191
+ },
192
+ "$description": "derived: v1→v2 migration — the 30ms default stagger base (0–60ms legal)"
193
+ },
185
194
  "contrast-boost": {
186
195
  "$type": "number",
187
196
  "$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": {
@@ -956,6 +975,295 @@
956
975
  }
957
976
  }
958
977
  }
978
+ },
979
+ "display": {
980
+ "$type": "typography",
981
+ "$value": {
982
+ "fontFamily": "{typography.family.heading}",
983
+ "fontSize": {
984
+ "value": 42,
985
+ "unit": "px"
986
+ },
987
+ "lineHeight": 1.25,
988
+ "fontWeight": "{primitive.font-weight-strong}",
989
+ "letterSpacing": "{primitive.heading-tracking}"
990
+ },
991
+ "$description": "derived: v1→v2 migration — provisional display step (h1 × 1.75, strong weight)",
992
+ "$extensions": {
993
+ "com.nurix.design": {
994
+ "hint": "display step unset — resolve from the product's design.md or leave for budget-time"
995
+ }
996
+ }
997
+ }
998
+ }
999
+ },
1000
+ "elevation": {
1001
+ "sm": {
1002
+ "$type": "shadow",
1003
+ "$value": [
1004
+ {
1005
+ "color": {
1006
+ "colorSpace": "srgb",
1007
+ "components": [
1008
+ 0.05882,
1009
+ 0.0902,
1010
+ 0.16471
1011
+ ],
1012
+ "hex": "#0f172a",
1013
+ "alpha": 0.1
1014
+ },
1015
+ "offsetX": {
1016
+ "value": 0,
1017
+ "unit": "px"
1018
+ },
1019
+ "offsetY": {
1020
+ "value": 1,
1021
+ "unit": "px"
1022
+ },
1023
+ "blur": {
1024
+ "value": 3,
1025
+ "unit": "px"
1026
+ },
1027
+ "spread": {
1028
+ "value": 0,
1029
+ "unit": "px"
1030
+ }
1031
+ },
1032
+ {
1033
+ "color": {
1034
+ "colorSpace": "srgb",
1035
+ "components": [
1036
+ 0.05882,
1037
+ 0.0902,
1038
+ 0.16471
1039
+ ],
1040
+ "hex": "#0f172a",
1041
+ "alpha": 0.1
1042
+ },
1043
+ "offsetX": {
1044
+ "value": 0,
1045
+ "unit": "px"
1046
+ },
1047
+ "offsetY": {
1048
+ "value": 1,
1049
+ "unit": "px"
1050
+ },
1051
+ "blur": {
1052
+ "value": 2,
1053
+ "unit": "px"
1054
+ },
1055
+ "spread": {
1056
+ "value": -1,
1057
+ "unit": "px"
1058
+ }
1059
+ }
1060
+ ],
1061
+ "$description": "derived: v1 shadow-intensity migration",
1062
+ "$extensions": {
1063
+ "com.nurix.design": {
1064
+ "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)))"
1065
+ }
1066
+ }
1067
+ },
1068
+ "md": {
1069
+ "$type": "shadow",
1070
+ "$value": [
1071
+ {
1072
+ "color": {
1073
+ "colorSpace": "srgb",
1074
+ "components": [
1075
+ 0.05882,
1076
+ 0.0902,
1077
+ 0.16471
1078
+ ],
1079
+ "hex": "#0f172a",
1080
+ "alpha": 0.1
1081
+ },
1082
+ "offsetX": {
1083
+ "value": 0,
1084
+ "unit": "px"
1085
+ },
1086
+ "offsetY": {
1087
+ "value": 4,
1088
+ "unit": "px"
1089
+ },
1090
+ "blur": {
1091
+ "value": 6,
1092
+ "unit": "px"
1093
+ },
1094
+ "spread": {
1095
+ "value": -1,
1096
+ "unit": "px"
1097
+ }
1098
+ },
1099
+ {
1100
+ "color": {
1101
+ "colorSpace": "srgb",
1102
+ "components": [
1103
+ 0.05882,
1104
+ 0.0902,
1105
+ 0.16471
1106
+ ],
1107
+ "hex": "#0f172a",
1108
+ "alpha": 0.1
1109
+ },
1110
+ "offsetX": {
1111
+ "value": 0,
1112
+ "unit": "px"
1113
+ },
1114
+ "offsetY": {
1115
+ "value": 2,
1116
+ "unit": "px"
1117
+ },
1118
+ "blur": {
1119
+ "value": 4,
1120
+ "unit": "px"
1121
+ },
1122
+ "spread": {
1123
+ "value": -2,
1124
+ "unit": "px"
1125
+ }
1126
+ }
1127
+ ],
1128
+ "$description": "derived: v1 shadow-intensity migration",
1129
+ "$extensions": {
1130
+ "com.nurix.design": {
1131
+ "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)))"
1132
+ }
1133
+ }
1134
+ },
1135
+ "lg": {
1136
+ "$type": "shadow",
1137
+ "$value": [
1138
+ {
1139
+ "color": {
1140
+ "colorSpace": "srgb",
1141
+ "components": [
1142
+ 0.05882,
1143
+ 0.0902,
1144
+ 0.16471
1145
+ ],
1146
+ "hex": "#0f172a",
1147
+ "alpha": 0.1
1148
+ },
1149
+ "offsetX": {
1150
+ "value": 0,
1151
+ "unit": "px"
1152
+ },
1153
+ "offsetY": {
1154
+ "value": 10,
1155
+ "unit": "px"
1156
+ },
1157
+ "blur": {
1158
+ "value": 15,
1159
+ "unit": "px"
1160
+ },
1161
+ "spread": {
1162
+ "value": -3,
1163
+ "unit": "px"
1164
+ }
1165
+ },
1166
+ {
1167
+ "color": {
1168
+ "colorSpace": "srgb",
1169
+ "components": [
1170
+ 0.05882,
1171
+ 0.0902,
1172
+ 0.16471
1173
+ ],
1174
+ "hex": "#0f172a",
1175
+ "alpha": 0.1
1176
+ },
1177
+ "offsetX": {
1178
+ "value": 0,
1179
+ "unit": "px"
1180
+ },
1181
+ "offsetY": {
1182
+ "value": 4,
1183
+ "unit": "px"
1184
+ },
1185
+ "blur": {
1186
+ "value": 6,
1187
+ "unit": "px"
1188
+ },
1189
+ "spread": {
1190
+ "value": -4,
1191
+ "unit": "px"
1192
+ }
1193
+ }
1194
+ ],
1195
+ "$description": "derived: v1 shadow-intensity migration",
1196
+ "$extensions": {
1197
+ "com.nurix.design": {
1198
+ "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)))"
1199
+ }
1200
+ }
1201
+ },
1202
+ "overlay": {
1203
+ "$type": "shadow",
1204
+ "$value": [
1205
+ {
1206
+ "color": {
1207
+ "colorSpace": "srgb",
1208
+ "components": [
1209
+ 0.05882,
1210
+ 0.0902,
1211
+ 0.16471
1212
+ ],
1213
+ "hex": "#0f172a",
1214
+ "alpha": 0.1
1215
+ },
1216
+ "offsetX": {
1217
+ "value": 0,
1218
+ "unit": "px"
1219
+ },
1220
+ "offsetY": {
1221
+ "value": 20,
1222
+ "unit": "px"
1223
+ },
1224
+ "blur": {
1225
+ "value": 25,
1226
+ "unit": "px"
1227
+ },
1228
+ "spread": {
1229
+ "value": -5,
1230
+ "unit": "px"
1231
+ }
1232
+ },
1233
+ {
1234
+ "color": {
1235
+ "colorSpace": "srgb",
1236
+ "components": [
1237
+ 0.05882,
1238
+ 0.0902,
1239
+ 0.16471
1240
+ ],
1241
+ "hex": "#0f172a",
1242
+ "alpha": 0.1
1243
+ },
1244
+ "offsetX": {
1245
+ "value": 0,
1246
+ "unit": "px"
1247
+ },
1248
+ "offsetY": {
1249
+ "value": 8,
1250
+ "unit": "px"
1251
+ },
1252
+ "blur": {
1253
+ "value": 10,
1254
+ "unit": "px"
1255
+ },
1256
+ "spread": {
1257
+ "value": -6,
1258
+ "unit": "px"
1259
+ }
1260
+ }
1261
+ ],
1262
+ "$description": "derived: v1 shadow-intensity migration",
1263
+ "$extensions": {
1264
+ "com.nurix.design": {
1265
+ "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)))"
1266
+ }
959
1267
  }
960
1268
  }
961
1269
  }
@@ -2,11 +2,12 @@
2
2
  "$description": "Figma — the operator reading\n[feedback] derived: brand is calm, editorial, shadow-light — quiet feedback fits\n[density-tier] derived: brand rhythm is generous (8px base) but operator work needs function; standard, leaning roomy",
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": "Figma",
8
8
  "provenance": "library",
9
9
  "sourced": "2026-07-04",
10
+ "theme-default": "light",
10
11
  "product-traits": [
11
12
  "design-tools",
12
13
  "collaboration",
@@ -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,
@@ -560,6 +569,16 @@
560
569
  }
561
570
  }
562
571
  },
572
+ "surface-raised": {
573
+ "$type": "color",
574
+ "$value": "{color.card}",
575
+ "$description": "derived: v1→v2 migration — light aliases card; dark looks carry the surface-lightness ladder"
576
+ },
577
+ "surface-overlay": {
578
+ "$type": "color",
579
+ "$value": "{color.popover}",
580
+ "$description": "derived: v1→v2 migration — light aliases popover; dark looks carry the surface-lightness ladder"
581
+ },
563
582
  "popover": {
564
583
  "$type": "color",
565
584
  "$value": {
@@ -958,6 +977,299 @@
958
977
  }
959
978
  }
960
979
  }
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.3,
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
+ "hint": "elevation unset — the design.md names real shadow values (`0 4px 16px rgba(0,0,0,0.06)`); resolve the composites from that prose at the data build"
1068
+ }
1069
+ }
1070
+ },
1071
+ "md": {
1072
+ "$type": "shadow",
1073
+ "$value": [
1074
+ {
1075
+ "color": {
1076
+ "colorSpace": "srgb",
1077
+ "components": [
1078
+ 0.05882,
1079
+ 0.0902,
1080
+ 0.16471
1081
+ ],
1082
+ "hex": "#0f172a",
1083
+ "alpha": 0.1
1084
+ },
1085
+ "offsetX": {
1086
+ "value": 0,
1087
+ "unit": "px"
1088
+ },
1089
+ "offsetY": {
1090
+ "value": 4,
1091
+ "unit": "px"
1092
+ },
1093
+ "blur": {
1094
+ "value": 6,
1095
+ "unit": "px"
1096
+ },
1097
+ "spread": {
1098
+ "value": -1,
1099
+ "unit": "px"
1100
+ }
1101
+ },
1102
+ {
1103
+ "color": {
1104
+ "colorSpace": "srgb",
1105
+ "components": [
1106
+ 0.05882,
1107
+ 0.0902,
1108
+ 0.16471
1109
+ ],
1110
+ "hex": "#0f172a",
1111
+ "alpha": 0.1
1112
+ },
1113
+ "offsetX": {
1114
+ "value": 0,
1115
+ "unit": "px"
1116
+ },
1117
+ "offsetY": {
1118
+ "value": 2,
1119
+ "unit": "px"
1120
+ },
1121
+ "blur": {
1122
+ "value": 4,
1123
+ "unit": "px"
1124
+ },
1125
+ "spread": {
1126
+ "value": -2,
1127
+ "unit": "px"
1128
+ }
1129
+ }
1130
+ ],
1131
+ "$description": "derived: v1 shadow-intensity migration",
1132
+ "$extensions": {
1133
+ "com.nurix.design": {
1134
+ "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)))",
1135
+ "hint": "elevation unset — the design.md names real shadow values (`0 4px 16px rgba(0,0,0,0.06)`); resolve the composites from that prose at the data build"
1136
+ }
1137
+ }
1138
+ },
1139
+ "lg": {
1140
+ "$type": "shadow",
1141
+ "$value": [
1142
+ {
1143
+ "color": {
1144
+ "colorSpace": "srgb",
1145
+ "components": [
1146
+ 0.05882,
1147
+ 0.0902,
1148
+ 0.16471
1149
+ ],
1150
+ "hex": "#0f172a",
1151
+ "alpha": 0.1
1152
+ },
1153
+ "offsetX": {
1154
+ "value": 0,
1155
+ "unit": "px"
1156
+ },
1157
+ "offsetY": {
1158
+ "value": 10,
1159
+ "unit": "px"
1160
+ },
1161
+ "blur": {
1162
+ "value": 15,
1163
+ "unit": "px"
1164
+ },
1165
+ "spread": {
1166
+ "value": -3,
1167
+ "unit": "px"
1168
+ }
1169
+ },
1170
+ {
1171
+ "color": {
1172
+ "colorSpace": "srgb",
1173
+ "components": [
1174
+ 0.05882,
1175
+ 0.0902,
1176
+ 0.16471
1177
+ ],
1178
+ "hex": "#0f172a",
1179
+ "alpha": 0.1
1180
+ },
1181
+ "offsetX": {
1182
+ "value": 0,
1183
+ "unit": "px"
1184
+ },
1185
+ "offsetY": {
1186
+ "value": 4,
1187
+ "unit": "px"
1188
+ },
1189
+ "blur": {
1190
+ "value": 6,
1191
+ "unit": "px"
1192
+ },
1193
+ "spread": {
1194
+ "value": -4,
1195
+ "unit": "px"
1196
+ }
1197
+ }
1198
+ ],
1199
+ "$description": "derived: v1 shadow-intensity migration",
1200
+ "$extensions": {
1201
+ "com.nurix.design": {
1202
+ "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)))",
1203
+ "hint": "elevation unset — the design.md names real shadow values (`0 4px 16px rgba(0,0,0,0.06)`); resolve the composites from that prose at the data build"
1204
+ }
1205
+ }
1206
+ },
1207
+ "overlay": {
1208
+ "$type": "shadow",
1209
+ "$value": [
1210
+ {
1211
+ "color": {
1212
+ "colorSpace": "srgb",
1213
+ "components": [
1214
+ 0.05882,
1215
+ 0.0902,
1216
+ 0.16471
1217
+ ],
1218
+ "hex": "#0f172a",
1219
+ "alpha": 0.1
1220
+ },
1221
+ "offsetX": {
1222
+ "value": 0,
1223
+ "unit": "px"
1224
+ },
1225
+ "offsetY": {
1226
+ "value": 20,
1227
+ "unit": "px"
1228
+ },
1229
+ "blur": {
1230
+ "value": 25,
1231
+ "unit": "px"
1232
+ },
1233
+ "spread": {
1234
+ "value": -5,
1235
+ "unit": "px"
1236
+ }
1237
+ },
1238
+ {
1239
+ "color": {
1240
+ "colorSpace": "srgb",
1241
+ "components": [
1242
+ 0.05882,
1243
+ 0.0902,
1244
+ 0.16471
1245
+ ],
1246
+ "hex": "#0f172a",
1247
+ "alpha": 0.1
1248
+ },
1249
+ "offsetX": {
1250
+ "value": 0,
1251
+ "unit": "px"
1252
+ },
1253
+ "offsetY": {
1254
+ "value": 8,
1255
+ "unit": "px"
1256
+ },
1257
+ "blur": {
1258
+ "value": 10,
1259
+ "unit": "px"
1260
+ },
1261
+ "spread": {
1262
+ "value": -6,
1263
+ "unit": "px"
1264
+ }
1265
+ }
1266
+ ],
1267
+ "$description": "derived: v1 shadow-intensity migration",
1268
+ "$extensions": {
1269
+ "com.nurix.design": {
1270
+ "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)))",
1271
+ "hint": "elevation unset — the design.md names real shadow values (`0 4px 16px rgba(0,0,0,0.06)`); resolve the composites from that prose at the data build"
1272
+ }
961
1273
  }
962
1274
  }
963
1275
  }