fractalstyler2 0.7.0 → 0.8.0

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.
@@ -1,5 +1,6 @@
1
1
  // ============================================================================
2
- // themes — the L0 contract's values. 41 curated palettes (21 light, 19 dark),
2
+ // themes — the L0 contract's values. 76 curated palettes (38 light, 38 dark),
3
+ // every one paired with its counterpart in the opposite mode,
3
4
  // each remapping the same token set defined in _00_tokens.sass.
4
5
  //
5
6
  // These are plain classes, applied to <html>. setTheme() in presets.core.ts
@@ -1059,3 +1060,945 @@
1059
1060
  --theme-color-alt: #EC4899
1060
1061
  --text-inverse: #0F091A
1061
1062
  --feedback-error: #F43F5E
1063
+
1064
+ // ============================================================================
1065
+ // PAIRED COUNTERPARTS (35)
1066
+ //
1067
+ // Generated by scripts/generate-pairs.mjs from the palette named in each
1068
+ // `// twin:` line. The lightness ramp is measured from the three families that
1069
+ // were paired by hand — sun, monochrono, dracula — so a counterpart keeps its
1070
+ // source palette's hue and chroma and only moves through the ramp.
1071
+ //
1072
+ // Accents keep their hue. sun and monochrono flip theirs ~180deg by hand; two
1073
+ // of three families disagreeing is not a rule, so identity wins over imitation.
1074
+ // `pnpm pair` only ADDS counterparts that are missing — it never rewrites an
1075
+ // existing block, so hand-edits here are safe. To regenerate one, delete its
1076
+ // block and re-run.
1077
+ // ============================================================================
1078
+
1079
+ // dark-default — counterpart of theme-light-default
1080
+ // twin: theme-light-default
1081
+ .theme-dark-default
1082
+ --bg: #141414
1083
+ --bg-surface: #1A1F23
1084
+ --bg-raised: #282828
1085
+ --bg-panel: #070F17
1086
+ --bg-footer: #000510
1087
+ --bg-popover: #2F2F2F
1088
+ --bg-dialog: #2F2F2F
1089
+ --bg-terminal: #1B0059
1090
+ --bg-input: #131313
1091
+ --bg-canvas: #141414
1092
+ --border: #25436A
1093
+ --border-subtle: #152D44
1094
+ --text-primary: #EEF5FF
1095
+ --text-secondary: #A7B0BD
1096
+ --text-muted: #656E7B
1097
+ --state-hover: #17345A
1098
+ --state-hover-subtle: #102334
1099
+ --state-selected: #034684
1100
+ --theme-color: #7BD3AB
1101
+ --theme-color-alt: #66B897
1102
+ --text-inverse: #141414
1103
+ --feedback-error: #EE5248
1104
+
1105
+ // himalaya-dark — counterpart of theme-himalaya-light
1106
+ // twin: theme-himalaya-light
1107
+ .theme-himalaya-dark
1108
+ --bg: #0E141A
1109
+ --bg-surface: #1E1E1E
1110
+ --bg-raised: #1B2936
1111
+ --bg-panel: #020F21
1112
+ --bg-footer: #00041A
1113
+ --bg-popover: #2F2F2F
1114
+ --bg-dialog: #2F2F2F
1115
+ --bg-terminal: #080033
1116
+ --bg-input: #131313
1117
+ --bg-canvas: #0E141A
1118
+ --border: #1A4371
1119
+ --border-subtle: #172C47
1120
+ --text-primary: #EEF5FF
1121
+ --text-secondary: #A7B0BD
1122
+ --text-muted: #656E7A
1123
+ --state-hover: #1F3551
1124
+ --state-hover-subtle: #152330
1125
+ --state-selected: #1E4875
1126
+ --theme-color: #79B9FF
1127
+ --theme-color-alt: #659DFF
1128
+ --text-inverse: #0E141A
1129
+ --feedback-error: #EB5645
1130
+
1131
+ // editorial-dark — counterpart of theme-editorial-light
1132
+ // twin: theme-editorial-light
1133
+ .theme-editorial-dark
1134
+ --bg: #17130C
1135
+ --bg-surface: #241D0E
1136
+ --bg-raised: #282828
1137
+ --bg-panel: #170C00
1138
+ --bg-footer: #0E0200
1139
+ --bg-popover: #322F25
1140
+ --bg-dialog: #322F25
1141
+ --bg-terminal: #000301
1142
+ --bg-input: #131313
1143
+ --bg-canvas: #17130C
1144
+ --border: #523F1B
1145
+ --border-subtle: #382908
1146
+ --text-primary: #F6F5F3
1147
+ --text-secondary: #B1AFAB
1148
+ --text-muted: #6F6D68
1149
+ --state-hover: #473100
1150
+ --state-hover-subtle: #2A200B
1151
+ --state-selected: #5D4100
1152
+ --theme-color: #A0CBA5
1153
+ --theme-color-alt: #85B28C
1154
+ --text-inverse: #17130C
1155
+ --feedback-error: #E65C50
1156
+
1157
+ // space-dark — counterpart of theme-space-light
1158
+ // twin: theme-space-light
1159
+ .theme-space-dark
1160
+ --bg: #0D1612
1161
+ --bg-surface: #0B2419
1162
+ --bg-raised: #282828
1163
+ --bg-panel: #001409
1164
+ --bg-footer: #000B01
1165
+ --bg-popover: #2F2F2F
1166
+ --bg-dialog: #2F2F2F
1167
+ --bg-terminal: #000500
1168
+ --bg-input: #131313
1169
+ --bg-canvas: #0D1612
1170
+ --border: #005133
1171
+ --border-subtle: #023520
1172
+ --text-primary: #E9FAF2
1173
+ --text-secondary: #9FB6AA
1174
+ --text-muted: #5F7369
1175
+ --state-hover: #004026
1176
+ --state-hover-subtle: #052919
1177
+ --state-selected: #005832
1178
+ --theme-color: #81D2A5
1179
+ --theme-color-alt: #74B68E
1180
+ --text-inverse: #0D1612
1181
+ --feedback-error: #EE5248
1182
+
1183
+ // molly-dark — counterpart of theme-molly-light
1184
+ // twin: theme-molly-light
1185
+ .theme-molly-dark
1186
+ --bg: #0D141D
1187
+ --bg-surface: #0C1F32
1188
+ --bg-raised: #282828
1189
+ --bg-panel: #000E27
1190
+ --bg-footer: #000222
1191
+ --bg-popover: #2F2F2F
1192
+ --bg-dialog: #2F2F2F
1193
+ --bg-terminal: #000019
1194
+ --bg-input: #131313
1195
+ --bg-canvas: #0D141D
1196
+ --border: #15456E
1197
+ --border-subtle: #142D46
1198
+ --text-primary: #E5F7FF
1199
+ --text-secondary: #9CB1D0
1200
+ --text-muted: #5D6F86
1201
+ --state-hover: #153653
1202
+ --state-hover-subtle: #132333
1203
+ --state-selected: #114977
1204
+ --theme-color: #78C7FF
1205
+ --theme-color-alt: #64ACE2
1206
+ --text-inverse: #0D141D
1207
+ --feedback-error: #EB5551
1208
+
1209
+ // malana-dark — counterpart of theme-malana-light
1210
+ // twin: theme-malana-light
1211
+ .theme-malana-dark
1212
+ --bg: #17130A
1213
+ --bg-surface: #261C08
1214
+ --bg-raised: #282828
1215
+ --bg-panel: #1A0A00
1216
+ --bg-footer: #120000
1217
+ --bg-popover: #322F29
1218
+ --bg-dialog: #322F29
1219
+ --bg-terminal: #040100
1220
+ --bg-input: #131313
1221
+ --bg-canvas: #17130A
1222
+ --border: #573D09
1223
+ --border-subtle: #38280B
1224
+ --text-primary: #FBF3EF
1225
+ --text-secondary: #B9ADA5
1226
+ --text-muted: #766B63
1227
+ --state-hover: #492D01
1228
+ --state-hover-subtle: #2E1E08
1229
+ --state-selected: #633D00
1230
+ --theme-color: #FF9F76
1231
+ --theme-color-alt: #EC845D
1232
+ --text-inverse: #17130A
1233
+ --feedback-error: #EE5248
1234
+
1235
+ // coresync-dark — counterpart of theme-coresync-light
1236
+ // twin: theme-coresync-light
1237
+ .theme-coresync-dark
1238
+ --bg: #0E1420
1239
+ --bg-surface: #181E28
1240
+ --bg-raised: #282828
1241
+ --bg-panel: #040E20
1242
+ --bg-footer: #00031A
1243
+ --bg-popover: #2F2F2F
1244
+ --bg-dialog: #2F2F2F
1245
+ --bg-terminal: #00000F
1246
+ --bg-input: #131313
1247
+ --bg-canvas: #0E1420
1248
+ --border: #2C4268
1249
+ --border-subtle: #1A2B47
1250
+ --text-primary: #F1F5FF
1251
+ --text-secondary: #AAB0BB
1252
+ --text-muted: #666E7A
1253
+ --state-hover: #1F3358
1254
+ --state-hover-subtle: #112336
1255
+ --state-selected: #27447B
1256
+ --theme-color: #FF9471
1257
+ --theme-color-alt: #F97A58
1258
+ --text-inverse: #0E1420
1259
+ --feedback-error: #EE5248
1260
+
1261
+ // studio-dark — counterpart of theme-studio-light
1262
+ // twin: theme-studio-light
1263
+ .theme-studio-dark
1264
+ --bg: #181309
1265
+ --bg-surface: #251D09
1266
+ --bg-raised: #2A2721
1267
+ --bg-panel: #170C00
1268
+ --bg-footer: #0E0300
1269
+ --bg-popover: #312F29
1270
+ --bg-dialog: #312F29
1271
+ --bg-terminal: #020200
1272
+ --bg-input: #15120C
1273
+ --bg-canvas: #181309
1274
+ --border: #51401D
1275
+ --border-subtle: #36290D
1276
+ --text-primary: #F6F5F2
1277
+ --text-secondary: #B3AFA9
1278
+ --text-muted: #716D65
1279
+ --state-hover: #41320D
1280
+ --state-hover-subtle: #2A2007
1281
+ --state-selected: #574312
1282
+ --theme-color: #C2BDB7
1283
+ --theme-color-alt: #C19F68
1284
+ --text-inverse: #181309
1285
+ --feedback-error: #DA6850
1286
+
1287
+ // matcha-dark — counterpart of theme-matcha-light
1288
+ // twin: theme-matcha-light
1289
+ .theme-matcha-dark
1290
+ --bg: #12150D
1291
+ --bg-surface: #1A210C
1292
+ --bg-raised: #282828
1293
+ --bg-panel: #071200
1294
+ --bg-footer: #000800
1295
+ --bg-popover: #2F2F2F
1296
+ --bg-dialog: #2F2F2F
1297
+ --bg-terminal: #000300
1298
+ --bg-input: #131313
1299
+ --bg-canvas: #12150D
1300
+ --border: #2F4D00
1301
+ --border-subtle: #1E3200
1302
+ --text-primary: #F0F8ED
1303
+ --text-secondary: #A9B3A5
1304
+ --text-muted: #667162
1305
+ --state-hover: #253C02
1306
+ --state-hover-subtle: #1A2605
1307
+ --state-selected: #2F5200
1308
+ --theme-color: #A0CF77
1309
+ --theme-color-alt: #8EB26D
1310
+ --text-inverse: #12150D
1311
+ --feedback-error: #EE5248
1312
+
1313
+ // sakura-dark — counterpart of theme-sakura-light
1314
+ // twin: theme-sakura-light
1315
+ .theme-sakura-dark
1316
+ --bg: #1A1113
1317
+ --bg-surface: #2C171E
1318
+ --bg-raised: #282828
1319
+ --bg-panel: #21020E
1320
+ --bg-footer: #180005
1321
+ --bg-popover: #2F2F2F
1322
+ --bg-dialog: #2F2F2F
1323
+ --bg-terminal: #0A0003
1324
+ --bg-input: #131313
1325
+ --bg-canvas: #1A1113
1326
+ --border: #702042
1327
+ --border-subtle: #48182B
1328
+ --text-primary: #FFEEF6
1329
+ --text-secondary: #C1A7B1
1330
+ --text-muted: #7C6670
1331
+ --state-hover: #551D36
1332
+ --state-hover-subtle: #351524
1333
+ --state-selected: #732649
1334
+ --theme-color: #FF82B7
1335
+ --theme-color-alt: #FC6D98
1336
+ --text-inverse: #1A1113
1337
+ --feedback-error: #F04B60
1338
+
1339
+ // nordic-frost-dark — counterpart of theme-nordic-frost-light
1340
+ // twin: theme-nordic-frost-light
1341
+ .theme-nordic-frost-dark
1342
+ --bg: #0B1619
1343
+ --bg-surface: #04222A
1344
+ --bg-raised: #282828
1345
+ --bg-panel: #00131E
1346
+ --bg-footer: #000717
1347
+ --bg-popover: #2F2F2F
1348
+ --bg-dialog: #2F2F2F
1349
+ --bg-terminal: #000111
1350
+ --bg-input: #131313
1351
+ --bg-canvas: #0B1619
1352
+ --border: #004C65
1353
+ --border-subtle: #003243
1354
+ --text-primary: #E9F8FF
1355
+ --text-secondary: #9DB3BF
1356
+ --text-muted: #5D717B
1357
+ --state-hover: #003C52
1358
+ --state-hover-subtle: #002633
1359
+ --state-selected: #00506E
1360
+ --theme-color: #78C7FF
1361
+ --theme-color-alt: #64ACE2
1362
+ --text-inverse: #0B1619
1363
+ --feedback-error: #F04B60
1364
+
1365
+ // desert-dune-dark — counterpart of theme-desert-dune-light
1366
+ // twin: theme-desert-dune-light
1367
+ .theme-desert-dune-dark
1368
+ --bg: #181309
1369
+ --bg-surface: #261D05
1370
+ --bg-raised: #282828
1371
+ --bg-panel: #1A0B00
1372
+ --bg-footer: #110100
1373
+ --bg-popover: #312F29
1374
+ --bg-dialog: #312F29
1375
+ --bg-terminal: #050100
1376
+ --bg-input: #131313
1377
+ --bg-canvas: #181309
1378
+ --border: #583D00
1379
+ --border-subtle: #392803
1380
+ --text-primary: #FBF4EC
1381
+ --text-secondary: #BAAD9F
1382
+ --text-muted: #776B5D
1383
+ --state-hover: #472F00
1384
+ --state-hover-subtle: #2E1E00
1385
+ --state-selected: #603F00
1386
+ --theme-color: #F5AB6F
1387
+ --theme-color-alt: #E68A56
1388
+ --text-inverse: #181309
1389
+ --feedback-error: #EE5248
1390
+
1391
+ // lavender-mist-dark — counterpart of theme-lavender-mist-light
1392
+ // twin: theme-lavender-mist-light
1393
+ .theme-lavender-mist-dark
1394
+ --bg: #151219
1395
+ --bg-surface: #22192D
1396
+ --bg-raised: #282828
1397
+ --bg-panel: #150424
1398
+ --bg-footer: #0D0021
1399
+ --bg-popover: #2F2F2F
1400
+ --bg-dialog: #2F2F2F
1401
+ --bg-terminal: #060014
1402
+ --bg-input: #131313
1403
+ --bg-canvas: #151219
1404
+ --border: #532B76
1405
+ --border-subtle: #361E4C
1406
+ --text-primary: #F8F1FF
1407
+ --text-secondary: #B5A9C8
1408
+ --text-muted: #736783
1409
+ --state-hover: #42215F
1410
+ --state-hover-subtle: #291935
1411
+ --state-selected: #5A2883
1412
+ --theme-color: #C69BFF
1413
+ --theme-color-alt: #AC82FF
1414
+ --text-inverse: #151219
1415
+ --feedback-error: #F04B60
1416
+
1417
+ // botanical-dark — counterpart of theme-botanical-light
1418
+ // twin: theme-botanical-light
1419
+ .theme-botanical-dark
1420
+ --bg: #11150F
1421
+ --bg-surface: #162210
1422
+ --bg-raised: #282828
1423
+ --bg-panel: #031300
1424
+ --bg-footer: #000900
1425
+ --bg-popover: #2F2F2F
1426
+ --bg-dialog: #2F2F2F
1427
+ --bg-terminal: #000400
1428
+ --bg-input: #131313
1429
+ --bg-canvas: #11150F
1430
+ --border: #254E11
1431
+ --border-subtle: #1A330E
1432
+ --text-primary: #EDF9EE
1433
+ --text-secondary: #A5B4A6
1434
+ --text-muted: #647264
1435
+ --state-hover: #1C3E06
1436
+ --state-hover-subtle: #17270E
1437
+ --state-selected: #265305
1438
+ --theme-color: #80D492
1439
+ --theme-color-alt: #67BA7B
1440
+ --text-inverse: #11150F
1441
+ --feedback-error: #EE5248
1442
+
1443
+ // clay-studio-dark — counterpart of theme-clay-studio-light
1444
+ // twin: theme-clay-studio-light
1445
+ .theme-clay-studio-dark
1446
+ --bg: #19120C
1447
+ --bg-surface: #2A1A09
1448
+ --bg-raised: #282828
1449
+ --bg-panel: #1E0700
1450
+ --bg-footer: #160000
1451
+ --bg-popover: #342E29
1452
+ --bg-dialog: #342E29
1453
+ --bg-terminal: #0A0000
1454
+ --bg-input: #131313
1455
+ --bg-canvas: #19120C
1456
+ --border: #61370A
1457
+ --border-subtle: #3F2407
1458
+ --text-primary: #FFF2EB
1459
+ --text-secondary: #BFABA2
1460
+ --text-muted: #7B6961
1461
+ --state-hover: #4D2A06
1462
+ --state-hover-subtle: #311C08
1463
+ --state-selected: #693805
1464
+ --theme-color: #FFA36F
1465
+ --theme-color-alt: #DE8E67
1466
+ --text-inverse: #19120C
1467
+ --feedback-error: #E55D52
1468
+
1469
+ // solaris-dark — counterpart of theme-solaris-light
1470
+ // twin: theme-solaris-light
1471
+ .theme-solaris-dark
1472
+ --bg: #16140C
1473
+ --bg-surface: #261D00
1474
+ --bg-raised: #282828
1475
+ --bg-panel: #1C0900
1476
+ --bg-footer: #150000
1477
+ --bg-popover: #2F2F2F
1478
+ --bg-dialog: #2F2F2F
1479
+ --bg-terminal: #050100
1480
+ --bg-input: #131313
1481
+ --bg-canvas: #16140C
1482
+ --border: #5F3A00
1483
+ --border-subtle: #3D2700
1484
+ --text-primary: #FCF4E3
1485
+ --text-secondary: #BDAE8F
1486
+ --text-muted: #7B6B49
1487
+ --state-hover: #4B2E00
1488
+ --state-hover-subtle: #2D2000
1489
+ --state-selected: #653E00
1490
+ --theme-color: #F6AB6D
1491
+ --theme-color-alt: #E68A56
1492
+ --text-inverse: #16140C
1493
+ --feedback-error: #EE5248
1494
+
1495
+ // cyberpunk-day-dark — counterpart of theme-cyberpunk-day-light
1496
+ // twin: theme-cyberpunk-day-light
1497
+ .theme-cyberpunk-day-dark
1498
+ --bg: #131410
1499
+ --bg-surface: #1E200A
1500
+ --bg-raised: #282828
1501
+ --bg-panel: #0F1000
1502
+ --bg-footer: #070500
1503
+ --bg-popover: #2F2F2F
1504
+ --bg-dialog: #2F2F2F
1505
+ --bg-terminal: #02000E
1506
+ --bg-input: #131313
1507
+ --bg-canvas: #131410
1508
+ --border: #414900
1509
+ --border-subtle: #2B3000
1510
+ --text-primary: #F4F2FF
1511
+ --text-secondary: #B0ABCB
1512
+ --text-muted: #6F6984
1513
+ --state-hover: #333A00
1514
+ --state-hover-subtle: #222500
1515
+ --state-selected: #434F00
1516
+ --theme-color: #FF7E8D
1517
+ --theme-color-alt: #5FB1CD
1518
+ --text-inverse: #131410
1519
+ --feedback-error: #F04B60
1520
+
1521
+ // copper-patina-dark — counterpart of theme-copper-patina-light
1522
+ // twin: theme-copper-patina-light
1523
+ .theme-copper-patina-dark
1524
+ --bg: #0B1614
1525
+ --bg-surface: #05241E
1526
+ --bg-raised: #282828
1527
+ --bg-panel: #00160E
1528
+ --bg-footer: #000B06
1529
+ --bg-popover: #2F2F2F
1530
+ --bg-dialog: #2F2F2F
1531
+ --bg-terminal: #000403
1532
+ --bg-input: #131313
1533
+ --bg-canvas: #0B1614
1534
+ --border: #005243
1535
+ --border-subtle: #00362C
1536
+ --text-primary: #E9F9F6
1537
+ --text-secondary: #9DB6B1
1538
+ --text-muted: #5C736F
1539
+ --state-hover: #004135
1540
+ --state-hover-subtle: #002922
1541
+ --state-selected: #005747
1542
+ --theme-color: #7DCFC4
1543
+ --theme-color-alt: #68B5AC
1544
+ --text-inverse: #0B1614
1545
+ --feedback-error: #EE5248
1546
+
1547
+ // lagoona-light — counterpart of theme-lagoona-dark
1548
+ // twin: theme-lagoona-dark
1549
+ .theme-lagoona-light
1550
+ --bg: #F4F7FD
1551
+ --bg-surface: #E9EDF6
1552
+ --bg-raised: #F8FDFF
1553
+ --bg-panel: #DCDFE9
1554
+ --bg-footer: #D0D2D8
1555
+ --bg-popover: #F6FCFF
1556
+ --bg-dialog: #F6FCFF
1557
+ --bg-terminal: #1E1F22
1558
+ --bg-input: #FAFDFF
1559
+ --bg-canvas: #F4F7FD
1560
+ --border: #C1C9DA
1561
+ --border-subtle: #D7DCEA
1562
+ --text-primary: #1B1D1F
1563
+ --text-secondary: #4A545F
1564
+ --text-muted: #7F8A97
1565
+ --state-hover: #CED6E6
1566
+ --state-hover-subtle: #E4E9F6
1567
+ --state-selected: #B6C0D3
1568
+ --theme-color: #006EA4
1569
+ --theme-color-alt: #006FAF
1570
+ --text-inverse: #FFFFFF
1571
+ --feedback-error: #BF3D43
1572
+
1573
+ // frozen-light — counterpart of theme-frozen-dark
1574
+ // twin: theme-frozen-dark
1575
+ .theme-frozen-light
1576
+ --bg: #F4F7FD
1577
+ --bg-surface: #E9EDF5
1578
+ --bg-raised: #F7FEFF
1579
+ --bg-panel: #DCE0E6
1580
+ --bg-footer: #D0D3D7
1581
+ --bg-popover: #F5FCFF
1582
+ --bg-dialog: #F5FCFF
1583
+ --bg-terminal: #1E1F22
1584
+ --bg-input: #FAFDFF
1585
+ --bg-canvas: #F4F7FD
1586
+ --border: #C1C9D8
1587
+ --border-subtle: #D6DDE8
1588
+ --text-primary: #1C1D1F
1589
+ --text-secondary: #4E535A
1590
+ --text-muted: #828A95
1591
+ --state-hover: #CED6E4
1592
+ --state-hover-subtle: #E3EAF5
1593
+ --state-selected: #B6C0D1
1594
+ --theme-color: #546C3E
1595
+ --theme-color-alt: #446F6E
1596
+ --text-inverse: #FFFFFF
1597
+ --feedback-error: #AC505A
1598
+
1599
+ // night-light — counterpart of theme-night-dark
1600
+ // twin: theme-night-dark
1601
+ .theme-night-light
1602
+ --bg: #F5F6FE
1603
+ --bg-surface: #EBECF6
1604
+ --bg-raised: #FAFDFF
1605
+ --bg-panel: #DEDFE8
1606
+ --bg-footer: #D1D2D8
1607
+ --bg-popover: #F8FBFF
1608
+ --bg-dialog: #F8FBFF
1609
+ --bg-terminal: #1E1F23
1610
+ --bg-input: #FBFDFF
1611
+ --bg-canvas: #F5F6FE
1612
+ --border: #C5C8DA
1613
+ --border-subtle: #D9DBEA
1614
+ --text-primary: #181C2D
1615
+ --text-secondary: #4D5166
1616
+ --text-muted: #84889C
1617
+ --state-hover: #D2D5E7
1618
+ --state-hover-subtle: #E6E8F7
1619
+ --state-selected: #BABED5
1620
+ --theme-color: #477200
1621
+ --theme-color-alt: #3F62B1
1622
+ --text-inverse: #FFFFFF
1623
+ --feedback-error: #BB3F5C
1624
+
1625
+ // inkworm-light — counterpart of theme-inkworm-dark
1626
+ // twin: theme-inkworm-dark
1627
+ .theme-inkworm-light
1628
+ --bg: #FAF6F2
1629
+ --bg-surface: #F1ECE6
1630
+ --bg-raised: #FFFCF5
1631
+ --bg-panel: #E3DFD9
1632
+ --bg-footer: #D6D2CE
1633
+ --bg-popover: #FFFAF1
1634
+ --bg-dialog: #FFFAF1
1635
+ --bg-terminal: #211F1C
1636
+ --bg-input: #FFFCF6
1637
+ --bg-canvas: #FAF6F2
1638
+ --border: #D1C7BD
1639
+ --border-subtle: #E2DBD2
1640
+ --text-primary: #1F1D19
1641
+ --text-secondary: #57524A
1642
+ --text-muted: #8D8881
1643
+ --state-hover: #DED4C9
1644
+ --state-hover-subtle: #F0E8E1
1645
+ --state-selected: #CABDB0
1646
+ --theme-color: #9D4800
1647
+ --theme-color-alt: #B53200
1648
+ --text-inverse: #FFFFFF
1649
+ --feedback-error: #CF1E29
1650
+
1651
+ // fouram-light — counterpart of theme-fouram-dark
1652
+ // twin: theme-fouram-dark
1653
+ .theme-fouram-light
1654
+ --bg: #F4F7FD
1655
+ --bg-surface: #E9EDF7
1656
+ --bg-raised: #F8FDFF
1657
+ --bg-panel: #DDDFE8
1658
+ --bg-footer: #D0D2D7
1659
+ --bg-popover: #F5FCFF
1660
+ --bg-dialog: #F5FCFF
1661
+ --bg-terminal: #1E1F22
1662
+ --bg-input: #FAFDFF
1663
+ --bg-canvas: #F4F7FD
1664
+ --border: #C0C9DE
1665
+ --border-subtle: #D6DCEC
1666
+ --text-primary: #1C1D1F
1667
+ --text-secondary: #4B5265
1668
+ --text-muted: #8089A0
1669
+ --state-hover: #CED6E9
1670
+ --state-hover-subtle: #E4E9F7
1671
+ --state-selected: #B5BFD8
1672
+ --theme-color: #BB0060
1673
+ --theme-color-alt: #007F4B
1674
+ --text-inverse: #FFFFFF
1675
+ --feedback-error: #CF1E29
1676
+
1677
+ // wintercame-light — counterpart of theme-wintercame-dark
1678
+ // twin: theme-wintercame-dark
1679
+ .theme-wintercame-light
1680
+ --bg: #F6F6F9
1681
+ --bg-surface: #ECECF2
1682
+ --bg-raised: #FCFCFF
1683
+ --bg-panel: #DFDFE5
1684
+ --bg-footer: #D2D2D5
1685
+ --bg-popover: #FAFAFF
1686
+ --bg-dialog: #FAFAFF
1687
+ --bg-terminal: #1F1F21
1688
+ --bg-input: #FDFDFF
1689
+ --bg-canvas: #F6F6F9
1690
+ --border: #C7C7D9
1691
+ --border-subtle: #DBDBE8
1692
+ --text-primary: #1D1D1E
1693
+ --text-secondary: #52525A
1694
+ --text-muted: #888891
1695
+ --state-hover: #D3D4EA
1696
+ --state-hover-subtle: #E8E8F6
1697
+ --state-selected: #BCBCD8
1698
+ --theme-color: #B91C00
1699
+ --theme-color-alt: #9D4F00
1700
+ --text-inverse: #FFFFFF
1701
+ --feedback-error: #DA0008
1702
+
1703
+ // console-light — counterpart of theme-console-dark
1704
+ // twin: theme-console-dark
1705
+ .theme-console-light
1706
+ --bg: #F3F8F4
1707
+ --bg-surface: #E8EFE9
1708
+ --bg-raised: #F6FFF8
1709
+ --bg-panel: #DBE1DC
1710
+ --bg-footer: #D0D4D1
1711
+ --bg-popover: #F3FFF6
1712
+ --bg-dialog: #F3FFF6
1713
+ --bg-terminal: #1E201E
1714
+ --bg-input: #F9FFFA
1715
+ --bg-canvas: #F3F8F4
1716
+ --border: #BDCEC2
1717
+ --border-subtle: #D4E0D7
1718
+ --text-primary: #162019
1719
+ --text-secondary: #435947
1720
+ --text-muted: #7B8F7E
1721
+ --state-hover: #CADBCE
1722
+ --state-hover-subtle: #E1EDE4
1723
+ --state-selected: #B0C6B5
1724
+ --theme-color: #007C49
1725
+ --theme-color-alt: #007F4C
1726
+ --text-inverse: #FFFFFF
1727
+ --feedback-error: #CF1E29
1728
+
1729
+ // catppuccin-latte — counterpart of theme-catppuccin-mocha
1730
+ // twin: theme-catppuccin-mocha
1731
+ .theme-catppuccin-latte
1732
+ --bg: #F5F6FF
1733
+ --bg-surface: #EBECF8
1734
+ --bg-raised: #FBFCFF
1735
+ --bg-panel: #DEDFE8
1736
+ --bg-footer: #D1D2D9
1737
+ --bg-popover: #FAFBFF
1738
+ --bg-dialog: #FAFBFF
1739
+ --bg-terminal: #1F1F24
1740
+ --bg-input: #FCFDFF
1741
+ --bg-canvas: #F5F6FF
1742
+ --border: #C7C8D3
1743
+ --border-subtle: #DADBE7
1744
+ --text-primary: #191C28
1745
+ --text-secondary: #4F525F
1746
+ --text-muted: #868895
1747
+ --state-hover: #D3D5E3
1748
+ --state-hover-subtle: #E7E8F4
1749
+ --state-selected: #BCBECD
1750
+ --theme-color: #734F99
1751
+ --theme-color-alt: #3E65A5
1752
+ --text-inverse: #FFFFFF
1753
+ --feedback-error: #AD4C6A
1754
+
1755
+ // nord-light — counterpart of theme-nord-dark
1756
+ // twin: theme-nord-dark
1757
+ .theme-nord-light
1758
+ --bg: #F3F7FF
1759
+ --bg-surface: #E8EDF8
1760
+ --bg-raised: #F8FEFF
1761
+ --bg-panel: #DCE0E7
1762
+ --bg-footer: #D0D3D8
1763
+ --bg-popover: #F6FCFF
1764
+ --bg-dialog: #F6FCFF
1765
+ --bg-terminal: #1D1F24
1766
+ --bg-input: #FAFDFF
1767
+ --bg-canvas: #F3F7FF
1768
+ --border: #C3C9D6
1769
+ --border-subtle: #D8DCE7
1770
+ --text-primary: #1C1D1F
1771
+ --text-secondary: #505358
1772
+ --text-muted: #818A99
1773
+ --state-hover: #D0D6E3
1774
+ --state-hover-subtle: #E5EAF4
1775
+ --state-selected: #B8C0CE
1776
+ --theme-color: #356C7B
1777
+ --theme-color-alt: #4B6987
1778
+ --text-inverse: #FFFFFF
1779
+ --feedback-error: #AC505A
1780
+
1781
+ // gruvbox-light — counterpart of theme-gruvbox-dark
1782
+ // twin: theme-gruvbox-dark
1783
+ .theme-gruvbox-light
1784
+ --bg: #F7F7F7
1785
+ --bg-surface: #F1EBE9
1786
+ --bg-raised: #FFFBF5
1787
+ --bg-panel: #D8E1E4
1788
+ --bg-footer: #CDD4D7
1789
+ --bg-popover: #FFF9F4
1790
+ --bg-dialog: #FFF9F4
1791
+ --bg-terminal: #1A2123
1792
+ --bg-input: #F6FFFF
1793
+ --bg-canvas: #F7F7F7
1794
+ --border: #D7C5BA
1795
+ --border-subtle: #E5DAD4
1796
+ --text-primary: #231C0B
1797
+ --text-secondary: #5A5241
1798
+ --text-muted: #90887F
1799
+ --state-hover: #E2D2C8
1800
+ --state-hover-subtle: #EEE8E5
1801
+ --state-selected: #CFBBAC
1802
+ --theme-color: #AD3500
1803
+ --theme-color-alt: #915900
1804
+ --text-inverse: #FFFFFF
1805
+ --feedback-error: #D31601
1806
+
1807
+ // onelight-pro — counterpart of theme-onedark-pro
1808
+ // twin: theme-onedark-pro
1809
+ .theme-onelight-pro
1810
+ --bg: #F3F7FE
1811
+ --bg-surface: #E9EDF5
1812
+ --bg-raised: #F8FDFF
1813
+ --bg-panel: #DDDFE6
1814
+ --bg-footer: #D0D2D8
1815
+ --bg-popover: #F7FCFF
1816
+ --bg-dialog: #F7FCFF
1817
+ --bg-terminal: #1E1F24
1818
+ --bg-input: #FBFDFF
1819
+ --bg-canvas: #F3F7FE
1820
+ --border: #C3C9D5
1821
+ --border-subtle: #D7DCE7
1822
+ --text-primary: #1A1D22
1823
+ --text-secondary: #4F5259
1824
+ --text-muted: #858992
1825
+ --state-hover: #D0D6E3
1826
+ --state-hover-subtle: #E5EAF2
1827
+ --state-selected: #B8BFCF
1828
+ --theme-color: #0E68A3
1829
+ --theme-color-alt: #4C732B
1830
+ --text-inverse: #FFFFFF
1831
+ --feedback-error: #B64752
1832
+
1833
+ // rose-pine-light — counterpart of theme-rose-pine-dark
1834
+ // twin: theme-rose-pine-dark
1835
+ .theme-rose-pine-light
1836
+ --bg: #F6F6FE
1837
+ --bg-surface: #ECEBF6
1838
+ --bg-raised: #FDFCFF
1839
+ --bg-panel: #DFDEE7
1840
+ --bg-footer: #D3D1D8
1841
+ --bg-popover: #FBFAFF
1842
+ --bg-dialog: #FBFAFF
1843
+ --bg-terminal: #1F1E25
1844
+ --bg-input: #FDFCFF
1845
+ --bg-canvas: #F6F6FE
1846
+ --border: #C9C7D3
1847
+ --border-subtle: #DCDBE9
1848
+ --text-primary: #1D1C24
1849
+ --text-secondary: #52505F
1850
+ --text-muted: #898797
1851
+ --state-hover: #D5D4E2
1852
+ --state-hover-subtle: #E9E8F3
1853
+ --state-selected: #BEBDCD
1854
+ --theme-color: #A73058
1855
+ --theme-color-alt: #15708F
1856
+ --text-inverse: #FFFFFF
1857
+ --feedback-error: #B84167
1858
+
1859
+ // midnight-emerald-light — counterpart of theme-midnight-emerald-dark
1860
+ // twin: theme-midnight-emerald-dark
1861
+ .theme-midnight-emerald-light
1862
+ --bg: #F1F9F5
1863
+ --bg-surface: #E5F0EA
1864
+ --bg-raised: #F3FFF9
1865
+ --bg-panel: #D9E2DD
1866
+ --bg-footer: #CED4D2
1867
+ --bg-popover: #F2FFF8
1868
+ --bg-dialog: #F2FFF8
1869
+ --bg-terminal: #1C201F
1870
+ --bg-input: #F6FFFB
1871
+ --bg-canvas: #F1F9F5
1872
+ --border: #BBCFC3
1873
+ --border-subtle: #D3E0D9
1874
+ --text-primary: #161F1B
1875
+ --text-secondary: #3E594D
1876
+ --text-muted: #769083
1877
+ --state-hover: #CADBD1
1878
+ --state-hover-subtle: #E2EDE6
1879
+ --state-selected: #B1C5B9
1880
+ --theme-color: #007C49
1881
+ --theme-color-alt: #007F4C
1882
+ --text-inverse: #FFFFFF
1883
+ --feedback-error: #BF3D43
1884
+
1885
+ // obsidian-crimson-light — counterpart of theme-obsidian-crimson-dark
1886
+ // twin: theme-obsidian-crimson-dark
1887
+ .theme-obsidian-crimson-light
1888
+ --bg: #FCF4F6
1889
+ --bg-surface: #F4EAEC
1890
+ --bg-raised: #FFF9FE
1891
+ --bg-panel: #E7DDE0
1892
+ --bg-footer: #D7D0D3
1893
+ --bg-popover: #FFF7FC
1894
+ --bg-dialog: #FFF7FC
1895
+ --bg-terminal: #231E20
1896
+ --bg-input: #FFFAFD
1897
+ --bg-canvas: #FCF4F6
1898
+ --border: #DCC1C9
1899
+ --border-subtle: #EAD6DC
1900
+ --text-primary: #221A1C
1901
+ --text-secondary: #694850
1902
+ --text-muted: #A17E87
1903
+ --state-hover: #E4D0D7
1904
+ --state-hover-subtle: #F1E6E9
1905
+ --state-selected: #D1B7C0
1906
+ --theme-color: #BC003D
1907
+ --theme-color-alt: #B12C49
1908
+ --text-inverse: #FFFFFF
1909
+ --feedback-error: #D01248
1910
+
1911
+ // synthwave-light — counterpart of theme-synthwave-dark
1912
+ // twin: theme-synthwave-dark
1913
+ .theme-synthwave-light
1914
+ --bg: #F8F4FF
1915
+ --bg-surface: #EEE9FE
1916
+ --bg-raised: #FFF9FF
1917
+ --bg-panel: #E1DDEE
1918
+ --bg-footer: #D4D0DC
1919
+ --bg-popover: #FEF7FF
1920
+ --bg-dialog: #FEF7FF
1921
+ --bg-terminal: #201E26
1922
+ --bg-input: #FFFAFF
1923
+ --bg-canvas: #F8F4FF
1924
+ --border: #CDC2E7
1925
+ --border-subtle: #DED8F2
1926
+ --text-primary: #1F1C20
1927
+ --text-secondary: #5D496E
1928
+ --text-muted: #927FAC
1929
+ --state-hover: #D8D1F0
1930
+ --state-hover-subtle: #EBE6FA
1931
+ --state-selected: #C2B9E0
1932
+ --theme-color: #C40057
1933
+ --theme-color-alt: #007C8B
1934
+ --text-inverse: #FFFFFF
1935
+ --feedback-error: #D60065
1936
+
1937
+ // deep-ocean-light — counterpart of theme-deep-ocean-dark
1938
+ // twin: theme-deep-ocean-dark
1939
+ .theme-deep-ocean-light
1940
+ --bg: #F1F8FE
1941
+ --bg-surface: #E6EEF6
1942
+ --bg-raised: #F4FFFF
1943
+ --bg-panel: #D9E1E8
1944
+ --bg-footer: #CFD3D7
1945
+ --bg-popover: #F2FDFF
1946
+ --bg-dialog: #F2FDFF
1947
+ --bg-terminal: #1D2022
1948
+ --bg-input: #F7FEFF
1949
+ --bg-canvas: #F1F8FE
1950
+ --border: #BBCBDB
1951
+ --border-subtle: #D2DEEA
1952
+ --text-primary: #161E22
1953
+ --text-secondary: #3A5766
1954
+ --text-muted: #738D9D
1955
+ --state-hover: #CAD8E6
1956
+ --state-hover-subtle: #E2EBF3
1957
+ --state-selected: #B0C2D4
1958
+ --theme-color: #007790
1959
+ --theme-color-alt: #0071A7
1960
+ --text-inverse: #FFFFFF
1961
+ --feedback-error: #BF3D43
1962
+
1963
+ // amethyst-void-light — counterpart of theme-amethyst-void-dark
1964
+ // twin: theme-amethyst-void-dark
1965
+ .theme-amethyst-void-light
1966
+ --bg: #F8F5FF
1967
+ --bg-surface: #EEEAF9
1968
+ --bg-raised: #FFFAFF
1969
+ --bg-panel: #E1DDEA
1970
+ --bg-footer: #D4D1D8
1971
+ --bg-popover: #FDF8FF
1972
+ --bg-dialog: #FDF8FF
1973
+ --bg-terminal: #201E23
1974
+ --bg-input: #FFFBFF
1975
+ --bg-canvas: #F8F5FF
1976
+ --border: #CBC4E2
1977
+ --border-subtle: #DED9ED
1978
+ --text-primary: #1F1B21
1979
+ --text-secondary: #5A4A6C
1980
+ --text-muted: #9181A5
1981
+ --state-hover: #D8D1EB
1982
+ --state-hover-subtle: #EBE7F6
1983
+ --state-selected: #C2BADA
1984
+ --theme-color: #8225CB
1985
+ --theme-color-alt: #B8006E
1986
+ --text-inverse: #FFFFFF
1987
+ --feedback-error: #D10D43
1988
+
1989
+ // ============================================================================
1990
+ // PAIRED COUNTERPARTS (0)
1991
+ //
1992
+ // Generated by scripts/generate-pairs.mjs from the palette named in each
1993
+ // `// twin:` line. The lightness ramp is measured from the three families that
1994
+ // were paired by hand — sun, monochrono, dracula — so a counterpart keeps its
1995
+ // source palette's hue and chroma and only moves through the ramp.
1996
+ //
1997
+ // Accents keep their hue. sun and monochrono flip theirs ~180deg by hand; two
1998
+ // of three families disagreeing is not a rule, so identity wins over imitation.
1999
+ // `pnpm pair` only ADDS counterparts that are missing — it never rewrites an
2000
+ // existing block, so hand-edits here are safe. To regenerate one, delete its
2001
+ // block and re-run.
2002
+ // ============================================================================
2003
+
2004
+