@putdotio/design 3.6.3 → 3.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.
@@ -455,35 +455,45 @@
455
455
  "type": "color",
456
456
  "mode": "light",
457
457
  "value": "hsl(0, 0%, 100%)",
458
- "originalValue": "{component.field.background}"
458
+ "originalValue": "{component.field.background}",
459
+ "description": "Deprecated alias. Use --field-bg (component.field.background).",
460
+ "deprecated": true
459
461
  },
460
462
  "component.input.backgroundDark": {
461
463
  "cssName": "--input-bg",
462
464
  "type": "color",
463
465
  "mode": "dark",
464
466
  "value": "hsl(0, 0%, 8.5%)",
465
- "originalValue": "{component.field.backgroundDark}"
467
+ "originalValue": "{component.field.backgroundDark}",
468
+ "description": "Deprecated alias. Use --field-bg (component.field.backgroundDark).",
469
+ "deprecated": true
466
470
  },
467
471
  "component.input.border": {
468
472
  "cssName": "--input-border",
469
473
  "type": "color",
470
474
  "mode": "light",
471
475
  "value": "hsl(0, 0%, 85.8%)",
472
- "originalValue": "{component.field.border}"
476
+ "originalValue": "{component.field.border}",
477
+ "description": "Deprecated alias. Use --field-border (component.field.border).",
478
+ "deprecated": true
473
479
  },
474
480
  "component.input.borderDark": {
475
481
  "cssName": "--input-border",
476
482
  "type": "color",
477
483
  "mode": "dark",
478
484
  "value": "hsl(0, 0%, 24.3%)",
479
- "originalValue": "{component.field.borderDark}"
485
+ "originalValue": "{component.field.borderDark}",
486
+ "description": "Deprecated alias. Use --field-border (component.field.borderDark).",
487
+ "deprecated": true
480
488
  },
481
489
  "component.input.radius": {
482
490
  "cssName": "--input-radius",
483
491
  "type": "dimension",
484
492
  "mode": "global",
485
493
  "value": "6px",
486
- "originalValue": "{component.field.radius}"
494
+ "originalValue": "{component.field.radius}",
495
+ "description": "Deprecated alias. Use --field-radius (component.field.radius).",
496
+ "deprecated": true
487
497
  },
488
498
  "component.input.borderHover": {
489
499
  "cssName": "--input-border-hover",
@@ -491,70 +501,89 @@
491
501
  "mode": "light",
492
502
  "value": "hsl(0, 0%, 78.0%)",
493
503
  "originalValue": "{component.field.borderHover}",
494
- "description": "shadcn-friendly alias of --field-border-hover. Always aliases the field token so the two name systems cannot drift."
504
+ "description": "Deprecated alias. Use --field-border-hover (component.field.borderHover).",
505
+ "deprecated": true
495
506
  },
496
507
  "component.input.borderHoverDark": {
497
508
  "cssName": "--input-border-hover",
498
509
  "type": "color",
499
510
  "mode": "dark",
500
511
  "value": "hsl(0, 0%, 31.2%)",
501
- "originalValue": "{component.field.borderHoverDark}"
512
+ "originalValue": "{component.field.borderHoverDark}",
513
+ "description": "Deprecated alias. Use --field-border-hover (component.field.borderHoverDark).",
514
+ "deprecated": true
502
515
  },
503
516
  "component.input.borderFocus": {
504
517
  "cssName": "--input-border-focus",
505
518
  "type": "color",
506
519
  "mode": "light",
507
520
  "value": "hsl(0, 0%, 78.0%)",
508
- "originalValue": "{component.field.borderFocus}"
521
+ "originalValue": "{component.field.borderFocus}",
522
+ "description": "Deprecated alias. Use --field-border-focus (component.field.borderFocus).",
523
+ "deprecated": true
509
524
  },
510
525
  "component.input.borderFocusDark": {
511
526
  "cssName": "--input-border-focus",
512
527
  "type": "color",
513
528
  "mode": "dark",
514
529
  "value": "hsl(0, 0%, 31.2%)",
515
- "originalValue": "{component.field.borderFocusDark}"
530
+ "originalValue": "{component.field.borderFocusDark}",
531
+ "description": "Deprecated alias. Use --field-border-focus (component.field.borderFocusDark).",
532
+ "deprecated": true
516
533
  },
517
534
  "component.input.ring": {
518
535
  "cssName": "--input-ring",
519
536
  "type": "string",
520
537
  "mode": "light",
521
538
  "value": "0 0 0 1px hsl(0, 0%, 78.0%)",
522
- "originalValue": "{component.field.ring}"
539
+ "originalValue": "{component.field.ring}",
540
+ "description": "Deprecated alias. Use --field-ring (component.field.ring).",
541
+ "deprecated": true
523
542
  },
524
543
  "component.input.ringDark": {
525
544
  "cssName": "--input-ring",
526
545
  "type": "string",
527
546
  "mode": "dark",
528
547
  "value": "0 0 0 1px hsl(0, 0%, 31.2%)",
529
- "originalValue": "{component.field.ringDark}"
548
+ "originalValue": "{component.field.ringDark}",
549
+ "description": "Deprecated alias. Use --field-ring (component.field.ringDark).",
550
+ "deprecated": true
530
551
  },
531
552
  "component.input.text": {
532
553
  "cssName": "--input-text",
533
554
  "type": "color",
534
555
  "mode": "light",
535
556
  "value": "hsl(0, 0%, 9.0%)",
536
- "originalValue": "{component.field.text}"
557
+ "originalValue": "{component.field.text}",
558
+ "description": "Deprecated alias. Use --field-text (component.field.text).",
559
+ "deprecated": true
537
560
  },
538
561
  "component.input.textDark": {
539
562
  "cssName": "--input-text",
540
563
  "type": "color",
541
564
  "mode": "dark",
542
565
  "value": "hsl(0, 0%, 93.0%)",
543
- "originalValue": "{component.field.textDark}"
566
+ "originalValue": "{component.field.textDark}",
567
+ "description": "Deprecated alias. Use --field-text (component.field.textDark).",
568
+ "deprecated": true
544
569
  },
545
570
  "component.input.placeholder": {
546
571
  "cssName": "--input-placeholder",
547
572
  "type": "color",
548
573
  "mode": "light",
549
574
  "value": "hsl(0, 0%, 43.5%)",
550
- "originalValue": "{component.field.placeholder}"
575
+ "originalValue": "{component.field.placeholder}",
576
+ "description": "Deprecated alias. Use --field-placeholder (component.field.placeholder).",
577
+ "deprecated": true
551
578
  },
552
579
  "component.input.placeholderDark": {
553
580
  "cssName": "--input-placeholder",
554
581
  "type": "color",
555
582
  "mode": "dark",
556
583
  "value": "hsl(0, 0%, 62.8%)",
557
- "originalValue": "{component.field.placeholderDark}"
584
+ "originalValue": "{component.field.placeholderDark}",
585
+ "description": "Deprecated alias. Use --field-placeholder (component.field.placeholderDark).",
586
+ "deprecated": true
558
587
  },
559
588
  "component.field.background": {
560
589
  "cssName": "--field-bg",
@@ -781,14 +810,18 @@
781
810
  "type": "color",
782
811
  "mode": "light",
783
812
  "value": "hsl(0, 0%, 43.5%)",
784
- "originalValue": "{color.neutral.light.textSecondary}"
813
+ "originalValue": "{color.neutral.light.textSecondary}",
814
+ "description": "Deprecated alias. Use --text-secondary (color.neutral.light.textSecondary).",
815
+ "deprecated": true
785
816
  },
786
817
  "component.alias.foregroundMutedDark": {
787
818
  "cssName": "--foreground-muted",
788
819
  "type": "color",
789
820
  "mode": "dark",
790
821
  "value": "hsl(0, 0%, 62.8%)",
791
- "originalValue": "{color.neutral.dark.textSecondary}"
822
+ "originalValue": "{color.neutral.dark.textSecondary}",
823
+ "description": "Deprecated alias. Use --text-secondary (color.neutral.dark.textSecondary).",
824
+ "deprecated": true
792
825
  },
793
826
  "component.alias.primary": {
794
827
  "cssName": "--primary",
@@ -2131,7 +2164,7 @@
2131
2164
  "mode": "tv",
2132
2165
  "value": "hsl(0, 0%, 62.8%)",
2133
2166
  "originalValue": "{context.tv.text.secondary}",
2134
- "description": "Deprecated compatibility alias. Use context.tv.text.secondary.",
2167
+ "description": "Deprecated alias. Use --text-2 (context.tv.text.secondary).",
2135
2168
  "deprecated": true
2136
2169
  },
2137
2170
  "context.tv.channelArt.production.posterBackground": {
@@ -3201,9 +3234,18 @@
3201
3234
  "elevation.focus": {
3202
3235
  "cssName": "--shadow-focus",
3203
3236
  "type": "string",
3204
- "mode": "global",
3205
- "value": "0 0 0 3px hsla(47, 100%, 65%, 0.35)",
3206
- "originalValue": "0 0 0 3px {elevation.focusColor}"
3237
+ "mode": "light",
3238
+ "value": "0 0 0 2px hsl(0, 0%, 99.0%), 0 0 0 4px hsl(0, 0%, 52.3%)",
3239
+ "originalValue": "0 0 0 2px {color.neutral.light.bg}, 0 0 0 4px {color.neutral.light.solidHover}",
3240
+ "description": "Button, link, and nav focus: a 2px page-coloured gap, then a 2px opaque ring at least 3:1 against the page and panels."
3241
+ },
3242
+ "elevation.focusDark": {
3243
+ "cssName": "--shadow-focus",
3244
+ "type": "string",
3245
+ "mode": "dark",
3246
+ "value": "0 0 0 2px hsl(0, 0%, 8.5%), 0 0 0 4px hsl(0, 0%, 49.4%)",
3247
+ "originalValue": "0 0 0 2px {color.neutral.dark.bg}, 0 0 0 4px {color.neutral.dark.solidHover}",
3248
+ "description": "Dark-mode button, link, and nav focus ring."
3207
3249
  },
3208
3250
  "typography.fontFamily.sans": {
3209
3251
  "cssName": "--font-sans",
@@ -3524,6 +3566,13 @@
3524
3566
  "value": "120ms",
3525
3567
  "originalValue": "120ms"
3526
3568
  },
3569
+ "motion.duration.reveal": {
3570
+ "cssName": "--dur-reveal",
3571
+ "type": "duration",
3572
+ "mode": "global",
3573
+ "value": "180ms",
3574
+ "originalValue": "180ms"
3575
+ },
3527
3576
  "motion.duration.base": {
3528
3577
  "cssName": "--dur-base",
3529
3578
  "type": "duration",
package/dist/tokens.js CHANGED
@@ -457,35 +457,45 @@ export const tokens = {
457
457
  "type": "color",
458
458
  "mode": "light",
459
459
  "value": "hsl(0, 0%, 100%)",
460
- "originalValue": "{component.field.background}"
460
+ "originalValue": "{component.field.background}",
461
+ "description": "Deprecated alias. Use --field-bg (component.field.background).",
462
+ "deprecated": true
461
463
  },
462
464
  "component.input.backgroundDark": {
463
465
  "cssName": "--input-bg",
464
466
  "type": "color",
465
467
  "mode": "dark",
466
468
  "value": "hsl(0, 0%, 8.5%)",
467
- "originalValue": "{component.field.backgroundDark}"
469
+ "originalValue": "{component.field.backgroundDark}",
470
+ "description": "Deprecated alias. Use --field-bg (component.field.backgroundDark).",
471
+ "deprecated": true
468
472
  },
469
473
  "component.input.border": {
470
474
  "cssName": "--input-border",
471
475
  "type": "color",
472
476
  "mode": "light",
473
477
  "value": "hsl(0, 0%, 85.8%)",
474
- "originalValue": "{component.field.border}"
478
+ "originalValue": "{component.field.border}",
479
+ "description": "Deprecated alias. Use --field-border (component.field.border).",
480
+ "deprecated": true
475
481
  },
476
482
  "component.input.borderDark": {
477
483
  "cssName": "--input-border",
478
484
  "type": "color",
479
485
  "mode": "dark",
480
486
  "value": "hsl(0, 0%, 24.3%)",
481
- "originalValue": "{component.field.borderDark}"
487
+ "originalValue": "{component.field.borderDark}",
488
+ "description": "Deprecated alias. Use --field-border (component.field.borderDark).",
489
+ "deprecated": true
482
490
  },
483
491
  "component.input.radius": {
484
492
  "cssName": "--input-radius",
485
493
  "type": "dimension",
486
494
  "mode": "global",
487
495
  "value": "6px",
488
- "originalValue": "{component.field.radius}"
496
+ "originalValue": "{component.field.radius}",
497
+ "description": "Deprecated alias. Use --field-radius (component.field.radius).",
498
+ "deprecated": true
489
499
  },
490
500
  "component.input.borderHover": {
491
501
  "cssName": "--input-border-hover",
@@ -493,70 +503,89 @@ export const tokens = {
493
503
  "mode": "light",
494
504
  "value": "hsl(0, 0%, 78.0%)",
495
505
  "originalValue": "{component.field.borderHover}",
496
- "description": "shadcn-friendly alias of --field-border-hover. Always aliases the field token so the two name systems cannot drift."
506
+ "description": "Deprecated alias. Use --field-border-hover (component.field.borderHover).",
507
+ "deprecated": true
497
508
  },
498
509
  "component.input.borderHoverDark": {
499
510
  "cssName": "--input-border-hover",
500
511
  "type": "color",
501
512
  "mode": "dark",
502
513
  "value": "hsl(0, 0%, 31.2%)",
503
- "originalValue": "{component.field.borderHoverDark}"
514
+ "originalValue": "{component.field.borderHoverDark}",
515
+ "description": "Deprecated alias. Use --field-border-hover (component.field.borderHoverDark).",
516
+ "deprecated": true
504
517
  },
505
518
  "component.input.borderFocus": {
506
519
  "cssName": "--input-border-focus",
507
520
  "type": "color",
508
521
  "mode": "light",
509
522
  "value": "hsl(0, 0%, 78.0%)",
510
- "originalValue": "{component.field.borderFocus}"
523
+ "originalValue": "{component.field.borderFocus}",
524
+ "description": "Deprecated alias. Use --field-border-focus (component.field.borderFocus).",
525
+ "deprecated": true
511
526
  },
512
527
  "component.input.borderFocusDark": {
513
528
  "cssName": "--input-border-focus",
514
529
  "type": "color",
515
530
  "mode": "dark",
516
531
  "value": "hsl(0, 0%, 31.2%)",
517
- "originalValue": "{component.field.borderFocusDark}"
532
+ "originalValue": "{component.field.borderFocusDark}",
533
+ "description": "Deprecated alias. Use --field-border-focus (component.field.borderFocusDark).",
534
+ "deprecated": true
518
535
  },
519
536
  "component.input.ring": {
520
537
  "cssName": "--input-ring",
521
538
  "type": "string",
522
539
  "mode": "light",
523
540
  "value": "0 0 0 1px hsl(0, 0%, 78.0%)",
524
- "originalValue": "{component.field.ring}"
541
+ "originalValue": "{component.field.ring}",
542
+ "description": "Deprecated alias. Use --field-ring (component.field.ring).",
543
+ "deprecated": true
525
544
  },
526
545
  "component.input.ringDark": {
527
546
  "cssName": "--input-ring",
528
547
  "type": "string",
529
548
  "mode": "dark",
530
549
  "value": "0 0 0 1px hsl(0, 0%, 31.2%)",
531
- "originalValue": "{component.field.ringDark}"
550
+ "originalValue": "{component.field.ringDark}",
551
+ "description": "Deprecated alias. Use --field-ring (component.field.ringDark).",
552
+ "deprecated": true
532
553
  },
533
554
  "component.input.text": {
534
555
  "cssName": "--input-text",
535
556
  "type": "color",
536
557
  "mode": "light",
537
558
  "value": "hsl(0, 0%, 9.0%)",
538
- "originalValue": "{component.field.text}"
559
+ "originalValue": "{component.field.text}",
560
+ "description": "Deprecated alias. Use --field-text (component.field.text).",
561
+ "deprecated": true
539
562
  },
540
563
  "component.input.textDark": {
541
564
  "cssName": "--input-text",
542
565
  "type": "color",
543
566
  "mode": "dark",
544
567
  "value": "hsl(0, 0%, 93.0%)",
545
- "originalValue": "{component.field.textDark}"
568
+ "originalValue": "{component.field.textDark}",
569
+ "description": "Deprecated alias. Use --field-text (component.field.textDark).",
570
+ "deprecated": true
546
571
  },
547
572
  "component.input.placeholder": {
548
573
  "cssName": "--input-placeholder",
549
574
  "type": "color",
550
575
  "mode": "light",
551
576
  "value": "hsl(0, 0%, 43.5%)",
552
- "originalValue": "{component.field.placeholder}"
577
+ "originalValue": "{component.field.placeholder}",
578
+ "description": "Deprecated alias. Use --field-placeholder (component.field.placeholder).",
579
+ "deprecated": true
553
580
  },
554
581
  "component.input.placeholderDark": {
555
582
  "cssName": "--input-placeholder",
556
583
  "type": "color",
557
584
  "mode": "dark",
558
585
  "value": "hsl(0, 0%, 62.8%)",
559
- "originalValue": "{component.field.placeholderDark}"
586
+ "originalValue": "{component.field.placeholderDark}",
587
+ "description": "Deprecated alias. Use --field-placeholder (component.field.placeholderDark).",
588
+ "deprecated": true
560
589
  },
561
590
  "component.field.background": {
562
591
  "cssName": "--field-bg",
@@ -783,14 +812,18 @@ export const tokens = {
783
812
  "type": "color",
784
813
  "mode": "light",
785
814
  "value": "hsl(0, 0%, 43.5%)",
786
- "originalValue": "{color.neutral.light.textSecondary}"
815
+ "originalValue": "{color.neutral.light.textSecondary}",
816
+ "description": "Deprecated alias. Use --text-secondary (color.neutral.light.textSecondary).",
817
+ "deprecated": true
787
818
  },
788
819
  "component.alias.foregroundMutedDark": {
789
820
  "cssName": "--foreground-muted",
790
821
  "type": "color",
791
822
  "mode": "dark",
792
823
  "value": "hsl(0, 0%, 62.8%)",
793
- "originalValue": "{color.neutral.dark.textSecondary}"
824
+ "originalValue": "{color.neutral.dark.textSecondary}",
825
+ "description": "Deprecated alias. Use --text-secondary (color.neutral.dark.textSecondary).",
826
+ "deprecated": true
794
827
  },
795
828
  "component.alias.primary": {
796
829
  "cssName": "--primary",
@@ -2133,7 +2166,7 @@ export const tokens = {
2133
2166
  "mode": "tv",
2134
2167
  "value": "hsl(0, 0%, 62.8%)",
2135
2168
  "originalValue": "{context.tv.text.secondary}",
2136
- "description": "Deprecated compatibility alias. Use context.tv.text.secondary.",
2169
+ "description": "Deprecated alias. Use --text-2 (context.tv.text.secondary).",
2137
2170
  "deprecated": true
2138
2171
  },
2139
2172
  "context.tv.channelArt.production.posterBackground": {
@@ -3203,9 +3236,18 @@ export const tokens = {
3203
3236
  "elevation.focus": {
3204
3237
  "cssName": "--shadow-focus",
3205
3238
  "type": "string",
3206
- "mode": "global",
3207
- "value": "0 0 0 3px hsla(47, 100%, 65%, 0.35)",
3208
- "originalValue": "0 0 0 3px {elevation.focusColor}"
3239
+ "mode": "light",
3240
+ "value": "0 0 0 2px hsl(0, 0%, 99.0%), 0 0 0 4px hsl(0, 0%, 52.3%)",
3241
+ "originalValue": "0 0 0 2px {color.neutral.light.bg}, 0 0 0 4px {color.neutral.light.solidHover}",
3242
+ "description": "Button, link, and nav focus: a 2px page-coloured gap, then a 2px opaque ring at least 3:1 against the page and panels."
3243
+ },
3244
+ "elevation.focusDark": {
3245
+ "cssName": "--shadow-focus",
3246
+ "type": "string",
3247
+ "mode": "dark",
3248
+ "value": "0 0 0 2px hsl(0, 0%, 8.5%), 0 0 0 4px hsl(0, 0%, 49.4%)",
3249
+ "originalValue": "0 0 0 2px {color.neutral.dark.bg}, 0 0 0 4px {color.neutral.dark.solidHover}",
3250
+ "description": "Dark-mode button, link, and nav focus ring."
3209
3251
  },
3210
3252
  "typography.fontFamily.sans": {
3211
3253
  "cssName": "--font-sans",
@@ -3526,6 +3568,13 @@ export const tokens = {
3526
3568
  "value": "120ms",
3527
3569
  "originalValue": "120ms"
3528
3570
  },
3571
+ "motion.duration.reveal": {
3572
+ "cssName": "--dur-reveal",
3573
+ "type": "duration",
3574
+ "mode": "global",
3575
+ "value": "180ms",
3576
+ "originalValue": "180ms"
3577
+ },
3529
3578
  "motion.duration.base": {
3530
3579
  "cssName": "--dur-base",
3531
3580
  "type": "duration",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@putdotio/design",
3
- "version": "3.6.3",
3
+ "version": "3.8.0",
4
4
  "description": "Public put.io design tokens, brand assets, and design-system guidance.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -81,15 +81,15 @@
81
81
  },
82
82
  "devDependencies": {
83
83
  "@axe-core/playwright": "^4.11.3",
84
- "@phosphor-icons/web": "2.1.1",
84
+ "@phosphor-icons/web": "2.1.2",
85
85
  "@playwright/test": "^1.60.0",
86
86
  "@types/node": "^26.0.0",
87
87
  "html-validate": "^11.2.0",
88
- "oxfmt": "0.73.0",
88
+ "oxfmt": "0.74.0",
89
89
  "sst": "^4.14.3",
90
90
  "style-dictionary": "^5.4.1",
91
91
  "typescript": "^7.0.2",
92
92
  "yaml": "^2.9.0"
93
93
  },
94
- "packageManager": "pnpm@12.13.0"
94
+ "packageManager": "pnpm@12.14.0"
95
95
  }
package/system/README.md CHANGED
@@ -83,7 +83,7 @@ its cards use itself.
83
83
 
84
84
  ## Core rules
85
85
 
86
- - **Yellow** follows [Colors](../DESIGN.md#colors). Guide specifics: `--yellow-solid-hover` is the hover peer with one value in both modes, and button focus-visible rings use `--shadow-focus` (the yellow at 35% alpha, `--shadow-focus-color`). Form fields focus with the neutral `--field-ring` instead.
86
+ - **Yellow** follows [Colors](../DESIGN.md#colors). Guide specifics: `--yellow-solid-hover` is the hover peer with one value in both modes, and button focus-visible rings use `--shadow-focus`: a 2px `--bg` gap, then a 2px `--solid-hover` ring, at least 3:1 against the page and panels. `--shadow-focus-color` (the yellow at 35% alpha) stays only as shadcn's `--ring`. Form fields focus with `--field-ring` instead.
87
87
  - **Yellow as text on light** uses `--yellow-text-secondary` (≈5:1, AA); `--yellow-solid` is fill-only on light backgrounds.
88
88
  - **Labels on yellow** use `--primary-foreground`, a warm dark that passes AA on the yellow fill.
89
89
  - **One design, two modes.** Light and dark are the same markup and components with different token values. Toggle `.dark` on `<html>`; one page serves both modes. Components consume semantic tokens (`--bg`, `--text`, `--border`, `--accent`, …) instead of raw `#hex` or `hsl()`.
@@ -143,10 +143,11 @@ own, so the two name systems cannot drift.
143
143
  | `--ring` | `--shadow-focus-color` |
144
144
  | `--background` / `--foreground` | `--bg` / `--text` |
145
145
 
146
- A full `--input-*` set (`-bg`, `-border`, `-border-hover`, `-border-focus`,
147
- `-ring`, `-text`, `-placeholder`, `-radius`) aliases the matching `--field-*`
148
- tokens, so shadcn-shaped input code themes without renaming. **Author against
149
- `--field-*`;** the `--input-*` names are only the alias bridge.
146
+ The `--input-*` set (`-bg`, `-border`, `-border-hover`, `-border-focus`,
147
+ `-ring`, `-text`, `-placeholder`, `-radius`) and `--foreground-muted` are
148
+ [deprecated](../docs/distribution.md#deprecated-tokens): shadcn itself names
149
+ only `--input` and `--muted-foreground`. Each deprecated name aliases its
150
+ replacement; **author against `--field-*` and `--text-secondary`.**
150
151
 
151
152
  On a solid surface, read the foreground tokens (`--primary-foreground`,
152
153
  `--destructive-foreground`, `--success-foreground`), which encode the mode-safe
@@ -171,10 +172,8 @@ directly.
171
172
 
172
173
  shadcn marks parts of compound components with `data-slot="card-header"`,
173
174
  `data-slot="card-title"`, and so on. put.io does the same on the folder picker
174
- (`data-slot="modal" / "modal-header" / "modal-body" / "modal-footer"`) and the
175
- auth cards in `web-p00c-auth-signin.html` and `web-p00d-auth-signup.html`
176
- (`data-slot="auth" / "auth-header" / "auth-body"`), so external CSS can target
177
- one part without nested class chains.
175
+ (`data-slot="modal" / "modal-header" / "modal-body" / "modal-footer"`), so
176
+ external CSS can target one part without nested class chains.
178
177
 
179
178
  ## Design variants
180
179