@putdotio/design 2.0.2 → 3.1.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.
@@ -1813,6 +1813,27 @@
1813
1813
  "mode": "dark"
1814
1814
  }
1815
1815
  }
1816
+ },
1817
+ "badgeBackground": {
1818
+ "$type": "color",
1819
+ "$value": "hsl(358, 70%, 45%)",
1820
+ "$description": "Unread count disc — darkened red so white numerals clear AA at 9px. Fixed in both modes.",
1821
+ "$extensions": {
1822
+ "putio": {
1823
+ "cssName": "notification-badge-bg",
1824
+ "mode": "global"
1825
+ }
1826
+ }
1827
+ },
1828
+ "badgeForeground": {
1829
+ "$type": "color",
1830
+ "$value": "{component.alias.destructiveForeground}",
1831
+ "$extensions": {
1832
+ "putio": {
1833
+ "cssName": "notification-badge-fg",
1834
+ "mode": "global"
1835
+ }
1836
+ }
1816
1837
  }
1817
1838
  },
1818
1839
  "menu": {
@@ -2324,139 +2345,979 @@
2324
2345
  }
2325
2346
  }
2326
2347
  }
2327
- }
2328
- },
2329
- "context": {
2330
- "tv": {
2331
- "text": {
2332
- "$description": "TV uses two semantic text roles. The tertiary name remains as a deprecated alias of secondary so existing consumers keep working; TV text is solid.",
2333
- "primary": {
2334
- "$type": "color",
2335
- "$value": "{color.neutral.dark.text}",
2336
- "$description": "Row titles, modal option labels, and button labels.",
2337
- "$extensions": {
2338
- "putio": {
2339
- "cssName": "text-1",
2340
- "mode": "tv"
2341
- }
2348
+ },
2349
+ "avatar": {
2350
+ "yellow": {
2351
+ "$type": "color",
2352
+ "$value": "{color.brand.yellow}",
2353
+ "$description": "Initial-on-color avatar palette. Fixed in both modes; the chip carries its own contrast.",
2354
+ "$extensions": {
2355
+ "putio": {
2356
+ "cssName": "avatar-yellow",
2357
+ "mode": "global"
2342
2358
  }
2343
- },
2344
- "secondary": {
2345
- "$type": "color",
2346
- "$value": "{color.neutral.dark.textSecondary}",
2347
- "$description": "Row sublines, modal titles, section headers, and accessories.",
2348
- "$extensions": {
2349
- "putio": {
2350
- "cssName": "text-2",
2351
- "mode": "tv"
2352
- }
2359
+ }
2360
+ },
2361
+ "green": {
2362
+ "$type": "color",
2363
+ "$value": "hsl(151, 55%, 33%)",
2364
+ "$extensions": {
2365
+ "putio": {
2366
+ "cssName": "avatar-green",
2367
+ "mode": "global"
2353
2368
  }
2354
- },
2355
- "tertiary": {
2356
- "$type": "color",
2357
- "$value": "{context.tv.text.secondary}",
2358
- "$description": "Deprecated compatibility alias. Use context.tv.text.secondary.",
2359
- "$extensions": {
2360
- "putio": {
2361
- "cssName": "text-3",
2362
- "mode": "tv",
2363
- "deprecated": true
2364
- }
2369
+ }
2370
+ },
2371
+ "red": {
2372
+ "$type": "color",
2373
+ "$value": "hsl(358, 55%, 46%)",
2374
+ "$extensions": {
2375
+ "putio": {
2376
+ "cssName": "avatar-red",
2377
+ "mode": "global"
2365
2378
  }
2366
2379
  }
2367
2380
  },
2368
- "channelArt": {
2369
- "production": {
2370
- "posterBackground": {
2371
- "$type": "color",
2372
- "$value": "hsl(0, 0%, 20%)",
2373
- "$extensions": {
2374
- "putio": {
2375
- "cssName": "tv-channel-art-production-poster-bg",
2376
- "mode": "tv"
2377
- }
2378
- }
2379
- },
2380
- "splashBackground": {
2381
- "$type": "color",
2382
- "$value": "{color.neutral.dark.bg}",
2383
- "$extensions": {
2384
- "putio": {
2385
- "cssName": "tv-channel-art-production-splash-bg",
2386
- "mode": "tv"
2387
- }
2388
- }
2381
+ "blue": {
2382
+ "$type": "color",
2383
+ "$value": "hsl(211, 55%, 46%)",
2384
+ "$extensions": {
2385
+ "putio": {
2386
+ "cssName": "avatar-blue",
2387
+ "mode": "global"
2389
2388
  }
2390
- },
2391
- "development": {
2392
- "background": {
2393
- "$type": "color",
2394
- "$value": "hsl(206.7, 78.8%, 52%)",
2395
- "$extensions": {
2396
- "putio": {
2397
- "cssName": "tv-channel-art-development-bg",
2398
- "mode": "tv"
2399
- }
2400
- }
2401
- },
2402
- "accent": {
2403
- "$type": "color",
2404
- "$value": "hsl(206.3, 100%, 81.2%)",
2405
- "$extensions": {
2406
- "putio": {
2407
- "cssName": "tv-channel-art-development-accent",
2408
- "mode": "tv"
2409
- }
2410
- }
2411
- },
2412
- "grid": {
2413
- "$type": "color",
2414
- "$value": "hsla(0, 0%, 100%, 0.18)",
2415
- "$extensions": {
2416
- "putio": {
2417
- "cssName": "tv-channel-art-development-grid",
2418
- "mode": "tv"
2419
- }
2420
- }
2389
+ }
2390
+ },
2391
+ "purple": {
2392
+ "$type": "color",
2393
+ "$value": "hsl(280, 48%, 46%)",
2394
+ "$extensions": {
2395
+ "putio": {
2396
+ "cssName": "avatar-purple",
2397
+ "mode": "global"
2421
2398
  }
2422
- },
2423
- "lab": {
2424
- "background": {
2425
- "$type": "color",
2426
- "$value": "hsl(120, 20%, 4.9%)",
2427
- "$extensions": {
2428
- "putio": {
2429
- "cssName": "tv-channel-art-lab-bg",
2430
- "mode": "tv"
2431
- }
2432
- }
2433
- },
2434
- "foreground": {
2435
- "$type": "color",
2436
- "$value": "hsl(111.1, 100%, 94.7%)",
2437
- "$extensions": {
2438
- "putio": {
2439
- "cssName": "tv-channel-art-lab-fg",
2440
- "mode": "tv"
2441
- }
2442
- }
2443
- },
2444
- "accent": {
2445
- "$type": "color",
2446
- "$value": "hsl(110.6, 100%, 53.9%)",
2447
- "$extensions": {
2448
- "putio": {
2449
- "cssName": "tv-channel-art-lab-accent",
2450
- "mode": "tv"
2451
- }
2452
- }
2399
+ }
2400
+ },
2401
+ "teal": {
2402
+ "$type": "color",
2403
+ "$value": "hsl(168, 55%, 33%)",
2404
+ "$extensions": {
2405
+ "putio": {
2406
+ "cssName": "avatar-teal",
2407
+ "mode": "global"
2408
+ }
2409
+ }
2410
+ },
2411
+ "orange": {
2412
+ "$type": "color",
2413
+ "$value": "hsl(28, 80%, 55%)",
2414
+ "$extensions": {
2415
+ "putio": {
2416
+ "cssName": "avatar-orange",
2417
+ "mode": "global"
2418
+ }
2419
+ }
2420
+ },
2421
+ "foreground": {
2422
+ "$type": "color",
2423
+ "$value": "{component.alias.destructiveForeground}",
2424
+ "$description": "White initials — every palette entry except yellow and orange.",
2425
+ "$extensions": {
2426
+ "putio": {
2427
+ "cssName": "avatar-fg",
2428
+ "mode": "global"
2429
+ }
2430
+ }
2431
+ },
2432
+ "foregroundWarm": {
2433
+ "$type": "color",
2434
+ "$value": "{component.alias.primaryForeground}",
2435
+ "$description": "Warm dark initials on yellow and orange.",
2436
+ "$extensions": {
2437
+ "putio": {
2438
+ "cssName": "avatar-fg-warm",
2439
+ "mode": "global"
2453
2440
  }
2454
2441
  }
2455
2442
  }
2456
- }
2457
- },
2458
- "tv": {
2459
- "$description": "The portable 10-foot scale. These mode \"tv\" tokens are graph data for platform adapters and are not emitted into web CSS; preview support CSS declares matching --tv-* properties under .tv. TV has no mono face, and its z-order is distinct from the web stack.",
2443
+ },
2444
+ "alert": {
2445
+ "radius": {
2446
+ "$type": "dimension",
2447
+ "$value": "{radius.default}",
2448
+ "$description": "Inline, in-page messaging. Persists until the condition clears — a toast does not.",
2449
+ "$extensions": {
2450
+ "putio": {
2451
+ "cssName": "alert-radius",
2452
+ "mode": "global"
2453
+ }
2454
+ }
2455
+ },
2456
+ "infoBackground": {
2457
+ "$type": "color",
2458
+ "$value": "{color.neutral.light.bgSecondary}",
2459
+ "$extensions": {
2460
+ "putio": {
2461
+ "cssName": "alert-info-bg",
2462
+ "mode": "light"
2463
+ }
2464
+ }
2465
+ },
2466
+ "infoBackgroundDark": {
2467
+ "$type": "color",
2468
+ "$value": "{color.neutral.dark.bgSecondary}",
2469
+ "$extensions": {
2470
+ "putio": {
2471
+ "cssName": "alert-info-bg",
2472
+ "mode": "dark"
2473
+ }
2474
+ }
2475
+ },
2476
+ "infoBorder": {
2477
+ "$type": "color",
2478
+ "$value": "{color.neutral.light.line}",
2479
+ "$extensions": {
2480
+ "putio": {
2481
+ "cssName": "alert-info-border",
2482
+ "mode": "light"
2483
+ }
2484
+ }
2485
+ },
2486
+ "infoBorderDark": {
2487
+ "$type": "color",
2488
+ "$value": "{color.neutral.dark.line}",
2489
+ "$extensions": {
2490
+ "putio": {
2491
+ "cssName": "alert-info-border",
2492
+ "mode": "dark"
2493
+ }
2494
+ }
2495
+ },
2496
+ "infoText": {
2497
+ "$type": "color",
2498
+ "$value": "{color.neutral.light.text}",
2499
+ "$extensions": {
2500
+ "putio": {
2501
+ "cssName": "alert-info-text",
2502
+ "mode": "light"
2503
+ }
2504
+ }
2505
+ },
2506
+ "infoTextDark": {
2507
+ "$type": "color",
2508
+ "$value": "{color.neutral.dark.text}",
2509
+ "$extensions": {
2510
+ "putio": {
2511
+ "cssName": "alert-info-text",
2512
+ "mode": "dark"
2513
+ }
2514
+ }
2515
+ },
2516
+ "infoBody": {
2517
+ "$type": "color",
2518
+ "$value": "{color.neutral.light.textSecondary}",
2519
+ "$extensions": {
2520
+ "putio": {
2521
+ "cssName": "alert-info-body",
2522
+ "mode": "light"
2523
+ }
2524
+ }
2525
+ },
2526
+ "infoBodyDark": {
2527
+ "$type": "color",
2528
+ "$value": "{color.neutral.dark.textSecondary}",
2529
+ "$extensions": {
2530
+ "putio": {
2531
+ "cssName": "alert-info-body",
2532
+ "mode": "dark"
2533
+ }
2534
+ }
2535
+ },
2536
+ "infoIcon": {
2537
+ "$type": "color",
2538
+ "$value": "{color.neutral.light.textSecondary}",
2539
+ "$extensions": {
2540
+ "putio": {
2541
+ "cssName": "alert-info-icon",
2542
+ "mode": "light"
2543
+ }
2544
+ }
2545
+ },
2546
+ "infoIconDark": {
2547
+ "$type": "color",
2548
+ "$value": "{color.neutral.dark.textSecondary}",
2549
+ "$extensions": {
2550
+ "putio": {
2551
+ "cssName": "alert-info-icon",
2552
+ "mode": "dark"
2553
+ }
2554
+ }
2555
+ },
2556
+ "brandBackground": {
2557
+ "$type": "color",
2558
+ "$value": "{color.yellow.light.componentBg}",
2559
+ "$extensions": {
2560
+ "putio": {
2561
+ "cssName": "alert-brand-bg",
2562
+ "mode": "light"
2563
+ }
2564
+ }
2565
+ },
2566
+ "brandBackgroundDark": {
2567
+ "$type": "color",
2568
+ "$value": "{color.yellow.dark.componentBg}",
2569
+ "$extensions": {
2570
+ "putio": {
2571
+ "cssName": "alert-brand-bg",
2572
+ "mode": "dark"
2573
+ }
2574
+ }
2575
+ },
2576
+ "brandBorder": {
2577
+ "$type": "color",
2578
+ "$value": "{color.yellow.light.border}",
2579
+ "$extensions": {
2580
+ "putio": {
2581
+ "cssName": "alert-brand-border",
2582
+ "mode": "light"
2583
+ }
2584
+ }
2585
+ },
2586
+ "brandBorderDark": {
2587
+ "$type": "color",
2588
+ "$value": "{color.yellow.dark.border}",
2589
+ "$extensions": {
2590
+ "putio": {
2591
+ "cssName": "alert-brand-border",
2592
+ "mode": "dark"
2593
+ }
2594
+ }
2595
+ },
2596
+ "brandText": {
2597
+ "$type": "color",
2598
+ "$value": "{color.yellow.light.text}",
2599
+ "$extensions": {
2600
+ "putio": {
2601
+ "cssName": "alert-brand-text",
2602
+ "mode": "light"
2603
+ }
2604
+ }
2605
+ },
2606
+ "brandTextDark": {
2607
+ "$type": "color",
2608
+ "$value": "{color.yellow.dark.text}",
2609
+ "$extensions": {
2610
+ "putio": {
2611
+ "cssName": "alert-brand-text",
2612
+ "mode": "dark"
2613
+ }
2614
+ }
2615
+ },
2616
+ "brandBody": {
2617
+ "$type": "color",
2618
+ "$value": "{color.yellow.light.textSecondary}",
2619
+ "$extensions": {
2620
+ "putio": {
2621
+ "cssName": "alert-brand-body",
2622
+ "mode": "light"
2623
+ }
2624
+ }
2625
+ },
2626
+ "brandBodyDark": {
2627
+ "$type": "color",
2628
+ "$value": "{color.yellow.dark.textSecondary}",
2629
+ "$extensions": {
2630
+ "putio": {
2631
+ "cssName": "alert-brand-body",
2632
+ "mode": "dark"
2633
+ }
2634
+ }
2635
+ },
2636
+ "brandIcon": {
2637
+ "$type": "color",
2638
+ "$value": "{color.yellow.light.textSecondary}",
2639
+ "$extensions": {
2640
+ "putio": {
2641
+ "cssName": "alert-brand-icon",
2642
+ "mode": "light"
2643
+ }
2644
+ }
2645
+ },
2646
+ "brandIconDark": {
2647
+ "$type": "color",
2648
+ "$value": "{color.yellow.dark.textSecondary}",
2649
+ "$extensions": {
2650
+ "putio": {
2651
+ "cssName": "alert-brand-icon",
2652
+ "mode": "dark"
2653
+ }
2654
+ }
2655
+ },
2656
+ "successBackground": {
2657
+ "$type": "color",
2658
+ "$value": "{color.green.light.componentBg}",
2659
+ "$extensions": {
2660
+ "putio": {
2661
+ "cssName": "alert-success-bg",
2662
+ "mode": "light"
2663
+ }
2664
+ }
2665
+ },
2666
+ "successBackgroundDark": {
2667
+ "$type": "color",
2668
+ "$value": "{color.green.dark.componentBg}",
2669
+ "$extensions": {
2670
+ "putio": {
2671
+ "cssName": "alert-success-bg",
2672
+ "mode": "dark"
2673
+ }
2674
+ }
2675
+ },
2676
+ "successBorder": {
2677
+ "$type": "color",
2678
+ "$value": "{color.green.light.border}",
2679
+ "$extensions": {
2680
+ "putio": {
2681
+ "cssName": "alert-success-border",
2682
+ "mode": "light"
2683
+ }
2684
+ }
2685
+ },
2686
+ "successBorderDark": {
2687
+ "$type": "color",
2688
+ "$value": "{color.green.dark.border}",
2689
+ "$extensions": {
2690
+ "putio": {
2691
+ "cssName": "alert-success-border",
2692
+ "mode": "dark"
2693
+ }
2694
+ }
2695
+ },
2696
+ "successText": {
2697
+ "$type": "color",
2698
+ "$value": "{color.green.light.text}",
2699
+ "$extensions": {
2700
+ "putio": {
2701
+ "cssName": "alert-success-text",
2702
+ "mode": "light"
2703
+ }
2704
+ }
2705
+ },
2706
+ "successTextDark": {
2707
+ "$type": "color",
2708
+ "$value": "{color.green.dark.text}",
2709
+ "$extensions": {
2710
+ "putio": {
2711
+ "cssName": "alert-success-text",
2712
+ "mode": "dark"
2713
+ }
2714
+ }
2715
+ },
2716
+ "successBody": {
2717
+ "$type": "color",
2718
+ "$value": "{color.green.light.textSecondary}",
2719
+ "$extensions": {
2720
+ "putio": {
2721
+ "cssName": "alert-success-body",
2722
+ "mode": "light"
2723
+ }
2724
+ }
2725
+ },
2726
+ "successBodyDark": {
2727
+ "$type": "color",
2728
+ "$value": "{color.green.dark.textSecondary}",
2729
+ "$extensions": {
2730
+ "putio": {
2731
+ "cssName": "alert-success-body",
2732
+ "mode": "dark"
2733
+ }
2734
+ }
2735
+ },
2736
+ "successIcon": {
2737
+ "$type": "color",
2738
+ "$value": "{color.green.light.textSecondary}",
2739
+ "$extensions": {
2740
+ "putio": {
2741
+ "cssName": "alert-success-icon",
2742
+ "mode": "light"
2743
+ }
2744
+ }
2745
+ },
2746
+ "successIconDark": {
2747
+ "$type": "color",
2748
+ "$value": "{color.green.dark.textSecondary}",
2749
+ "$extensions": {
2750
+ "putio": {
2751
+ "cssName": "alert-success-icon",
2752
+ "mode": "dark"
2753
+ }
2754
+ }
2755
+ },
2756
+ "dangerBackground": {
2757
+ "$type": "color",
2758
+ "$value": "{color.red.light.componentBg}",
2759
+ "$extensions": {
2760
+ "putio": {
2761
+ "cssName": "alert-danger-bg",
2762
+ "mode": "light"
2763
+ }
2764
+ }
2765
+ },
2766
+ "dangerBackgroundDark": {
2767
+ "$type": "color",
2768
+ "$value": "{color.red.dark.componentBg}",
2769
+ "$extensions": {
2770
+ "putio": {
2771
+ "cssName": "alert-danger-bg",
2772
+ "mode": "dark"
2773
+ }
2774
+ }
2775
+ },
2776
+ "dangerBorder": {
2777
+ "$type": "color",
2778
+ "$value": "{color.red.light.border}",
2779
+ "$extensions": {
2780
+ "putio": {
2781
+ "cssName": "alert-danger-border",
2782
+ "mode": "light"
2783
+ }
2784
+ }
2785
+ },
2786
+ "dangerBorderDark": {
2787
+ "$type": "color",
2788
+ "$value": "{color.red.dark.border}",
2789
+ "$extensions": {
2790
+ "putio": {
2791
+ "cssName": "alert-danger-border",
2792
+ "mode": "dark"
2793
+ }
2794
+ }
2795
+ },
2796
+ "dangerText": {
2797
+ "$type": "color",
2798
+ "$value": "{color.red.light.text}",
2799
+ "$extensions": {
2800
+ "putio": {
2801
+ "cssName": "alert-danger-text",
2802
+ "mode": "light"
2803
+ }
2804
+ }
2805
+ },
2806
+ "dangerTextDark": {
2807
+ "$type": "color",
2808
+ "$value": "{color.red.dark.text}",
2809
+ "$extensions": {
2810
+ "putio": {
2811
+ "cssName": "alert-danger-text",
2812
+ "mode": "dark"
2813
+ }
2814
+ }
2815
+ },
2816
+ "dangerBody": {
2817
+ "$type": "color",
2818
+ "$value": "{color.red.light.textSecondary}",
2819
+ "$extensions": {
2820
+ "putio": {
2821
+ "cssName": "alert-danger-body",
2822
+ "mode": "light"
2823
+ }
2824
+ }
2825
+ },
2826
+ "dangerBodyDark": {
2827
+ "$type": "color",
2828
+ "$value": "{color.red.dark.textSecondary}",
2829
+ "$extensions": {
2830
+ "putio": {
2831
+ "cssName": "alert-danger-body",
2832
+ "mode": "dark"
2833
+ }
2834
+ }
2835
+ },
2836
+ "dangerIcon": {
2837
+ "$type": "color",
2838
+ "$value": "{color.red.light.textSecondary}",
2839
+ "$extensions": {
2840
+ "putio": {
2841
+ "cssName": "alert-danger-icon",
2842
+ "mode": "light"
2843
+ }
2844
+ }
2845
+ },
2846
+ "dangerIconDark": {
2847
+ "$type": "color",
2848
+ "$value": "{color.red.dark.textSecondary}",
2849
+ "$extensions": {
2850
+ "putio": {
2851
+ "cssName": "alert-danger-icon",
2852
+ "mode": "dark"
2853
+ }
2854
+ }
2855
+ }
2856
+ },
2857
+ "slider": {
2858
+ "track": {
2859
+ "$type": "color",
2860
+ "$value": "{color.neutral.light.componentBgActive}",
2861
+ "$description": "Seek, volume, stepped numeric. The buffered band is what makes it a scrubber.",
2862
+ "$extensions": {
2863
+ "putio": {
2864
+ "cssName": "slider-track",
2865
+ "mode": "light"
2866
+ }
2867
+ }
2868
+ },
2869
+ "trackDark": {
2870
+ "$type": "color",
2871
+ "$value": "{color.neutral.dark.componentBgActive}",
2872
+ "$extensions": {
2873
+ "putio": {
2874
+ "cssName": "slider-track",
2875
+ "mode": "dark"
2876
+ }
2877
+ }
2878
+ },
2879
+ "buffer": {
2880
+ "$type": "color",
2881
+ "$value": "{color.neutral.light.border}",
2882
+ "$extensions": {
2883
+ "putio": {
2884
+ "cssName": "slider-buffer",
2885
+ "mode": "light"
2886
+ }
2887
+ }
2888
+ },
2889
+ "bufferDark": {
2890
+ "$type": "color",
2891
+ "$value": "{color.neutral.dark.border}",
2892
+ "$extensions": {
2893
+ "putio": {
2894
+ "cssName": "slider-buffer",
2895
+ "mode": "dark"
2896
+ }
2897
+ }
2898
+ },
2899
+ "fill": {
2900
+ "$type": "color",
2901
+ "$value": "{color.brand.yellow}",
2902
+ "$extensions": {
2903
+ "putio": {
2904
+ "cssName": "slider-fill",
2905
+ "mode": "global"
2906
+ }
2907
+ }
2908
+ },
2909
+ "knob": {
2910
+ "$type": "color",
2911
+ "$value": "{color.brand.yellow}",
2912
+ "$extensions": {
2913
+ "putio": {
2914
+ "cssName": "slider-knob",
2915
+ "mode": "global"
2916
+ }
2917
+ }
2918
+ },
2919
+ "fillDisabled": {
2920
+ "$type": "color",
2921
+ "$value": "{color.neutral.light.textSecondary}",
2922
+ "$extensions": {
2923
+ "putio": {
2924
+ "cssName": "slider-fill-disabled",
2925
+ "mode": "light"
2926
+ }
2927
+ }
2928
+ },
2929
+ "fillDisabledDark": {
2930
+ "$type": "color",
2931
+ "$value": "{color.neutral.dark.textSecondary}",
2932
+ "$extensions": {
2933
+ "putio": {
2934
+ "cssName": "slider-fill-disabled",
2935
+ "mode": "dark"
2936
+ }
2937
+ }
2938
+ },
2939
+ "trackHeight": {
2940
+ "$type": "dimension",
2941
+ "$value": "4px",
2942
+ "$extensions": {
2943
+ "putio": {
2944
+ "cssName": "slider-track-height",
2945
+ "mode": "global"
2946
+ }
2947
+ }
2948
+ },
2949
+ "knobSize": {
2950
+ "$type": "dimension",
2951
+ "$value": "14px",
2952
+ "$extensions": {
2953
+ "putio": {
2954
+ "cssName": "slider-knob-size",
2955
+ "mode": "global"
2956
+ }
2957
+ }
2958
+ },
2959
+ "hitHeight": {
2960
+ "$type": "dimension",
2961
+ "$value": "20px",
2962
+ "$description": "44px on touch — the knob grows, the track does not.",
2963
+ "$extensions": {
2964
+ "putio": {
2965
+ "cssName": "slider-hit-height",
2966
+ "mode": "global"
2967
+ }
2968
+ }
2969
+ }
2970
+ },
2971
+ "pagination": {
2972
+ "itemSize": {
2973
+ "$type": "dimension",
2974
+ "$value": "30px",
2975
+ "$description": "Numbered paging. Load-more and infinite scroll carry no chrome of their own.",
2976
+ "$extensions": {
2977
+ "putio": {
2978
+ "cssName": "pagination-item-size",
2979
+ "mode": "global"
2980
+ }
2981
+ }
2982
+ },
2983
+ "itemText": {
2984
+ "$type": "color",
2985
+ "$value": "{color.neutral.light.textSecondary}",
2986
+ "$extensions": {
2987
+ "putio": {
2988
+ "cssName": "pagination-item-text",
2989
+ "mode": "light"
2990
+ }
2991
+ }
2992
+ },
2993
+ "itemTextDark": {
2994
+ "$type": "color",
2995
+ "$value": "{color.neutral.dark.textSecondary}",
2996
+ "$extensions": {
2997
+ "putio": {
2998
+ "cssName": "pagination-item-text",
2999
+ "mode": "dark"
3000
+ }
3001
+ }
3002
+ },
3003
+ "itemTextActive": {
3004
+ "$type": "color",
3005
+ "$value": "{color.neutral.light.text}",
3006
+ "$extensions": {
3007
+ "putio": {
3008
+ "cssName": "pagination-item-text-active",
3009
+ "mode": "light"
3010
+ }
3011
+ }
3012
+ },
3013
+ "itemTextActiveDark": {
3014
+ "$type": "color",
3015
+ "$value": "{color.neutral.dark.text}",
3016
+ "$extensions": {
3017
+ "putio": {
3018
+ "cssName": "pagination-item-text-active",
3019
+ "mode": "dark"
3020
+ }
3021
+ }
3022
+ },
3023
+ "itemBackgroundHover": {
3024
+ "$type": "color",
3025
+ "$value": "{color.neutral.light.componentBgHover}",
3026
+ "$extensions": {
3027
+ "putio": {
3028
+ "cssName": "pagination-item-bg-hover",
3029
+ "mode": "light"
3030
+ }
3031
+ }
3032
+ },
3033
+ "itemBackgroundHoverDark": {
3034
+ "$type": "color",
3035
+ "$value": "{color.neutral.dark.componentBgHover}",
3036
+ "$extensions": {
3037
+ "putio": {
3038
+ "cssName": "pagination-item-bg-hover",
3039
+ "mode": "dark"
3040
+ }
3041
+ }
3042
+ },
3043
+ "itemBackgroundActive": {
3044
+ "$type": "color",
3045
+ "$value": "{color.neutral.light.componentBgActive}",
3046
+ "$extensions": {
3047
+ "putio": {
3048
+ "cssName": "pagination-item-bg-active",
3049
+ "mode": "light"
3050
+ }
3051
+ }
3052
+ },
3053
+ "itemBackgroundActiveDark": {
3054
+ "$type": "color",
3055
+ "$value": "{color.neutral.dark.componentBgActive}",
3056
+ "$extensions": {
3057
+ "putio": {
3058
+ "cssName": "pagination-item-bg-active",
3059
+ "mode": "dark"
3060
+ }
3061
+ }
3062
+ },
3063
+ "itemBorderActive": {
3064
+ "$type": "color",
3065
+ "$value": "{color.neutral.light.border}",
3066
+ "$extensions": {
3067
+ "putio": {
3068
+ "cssName": "pagination-item-border-active",
3069
+ "mode": "light"
3070
+ }
3071
+ }
3072
+ },
3073
+ "itemBorderActiveDark": {
3074
+ "$type": "color",
3075
+ "$value": "{color.neutral.dark.border}",
3076
+ "$extensions": {
3077
+ "putio": {
3078
+ "cssName": "pagination-item-border-active",
3079
+ "mode": "dark"
3080
+ }
3081
+ }
3082
+ }
3083
+ }
3084
+ },
3085
+ "context": {
3086
+ "tv": {
3087
+ "text": {
3088
+ "$description": "TV uses two semantic text roles. The tertiary name remains as a deprecated alias of secondary so existing consumers keep working; TV text is solid.",
3089
+ "primary": {
3090
+ "$type": "color",
3091
+ "$value": "{color.neutral.dark.text}",
3092
+ "$description": "Row titles, modal option labels, and button labels.",
3093
+ "$extensions": {
3094
+ "putio": {
3095
+ "cssName": "text-1",
3096
+ "mode": "tv"
3097
+ }
3098
+ }
3099
+ },
3100
+ "secondary": {
3101
+ "$type": "color",
3102
+ "$value": "{color.neutral.dark.textSecondary}",
3103
+ "$description": "Row sublines, modal titles, section headers, and accessories.",
3104
+ "$extensions": {
3105
+ "putio": {
3106
+ "cssName": "text-2",
3107
+ "mode": "tv"
3108
+ }
3109
+ }
3110
+ },
3111
+ "tertiary": {
3112
+ "$type": "color",
3113
+ "$value": "{context.tv.text.secondary}",
3114
+ "$description": "Deprecated compatibility alias. Use context.tv.text.secondary.",
3115
+ "$extensions": {
3116
+ "putio": {
3117
+ "cssName": "text-3",
3118
+ "mode": "tv",
3119
+ "deprecated": true
3120
+ }
3121
+ }
3122
+ }
3123
+ },
3124
+ "channelArt": {
3125
+ "production": {
3126
+ "posterBackground": {
3127
+ "$type": "color",
3128
+ "$value": "hsl(0, 0%, 20%)",
3129
+ "$extensions": {
3130
+ "putio": {
3131
+ "cssName": "tv-channel-art-production-poster-bg",
3132
+ "mode": "tv"
3133
+ }
3134
+ }
3135
+ },
3136
+ "splashBackground": {
3137
+ "$type": "color",
3138
+ "$value": "{color.neutral.dark.bg}",
3139
+ "$extensions": {
3140
+ "putio": {
3141
+ "cssName": "tv-channel-art-production-splash-bg",
3142
+ "mode": "tv"
3143
+ }
3144
+ }
3145
+ }
3146
+ },
3147
+ "development": {
3148
+ "background": {
3149
+ "$type": "color",
3150
+ "$value": "hsl(206.7, 78.8%, 52%)",
3151
+ "$extensions": {
3152
+ "putio": {
3153
+ "cssName": "tv-channel-art-development-bg",
3154
+ "mode": "tv"
3155
+ }
3156
+ }
3157
+ },
3158
+ "accent": {
3159
+ "$type": "color",
3160
+ "$value": "hsl(206.3, 100%, 81.2%)",
3161
+ "$extensions": {
3162
+ "putio": {
3163
+ "cssName": "tv-channel-art-development-accent",
3164
+ "mode": "tv"
3165
+ }
3166
+ }
3167
+ },
3168
+ "grid": {
3169
+ "$type": "color",
3170
+ "$value": "hsla(0, 0%, 100%, 0.18)",
3171
+ "$extensions": {
3172
+ "putio": {
3173
+ "cssName": "tv-channel-art-development-grid",
3174
+ "mode": "tv"
3175
+ }
3176
+ }
3177
+ }
3178
+ },
3179
+ "nightly": {
3180
+ "$description": "Nightly/staging store-art flavor: TestFlight, Play internal/closed tracks, and staging TV sideloads. True-black sky with scattered stars; the mark stays exactly as production draws it, so the surface alone carries the flavor.",
3181
+ "background": {
3182
+ "$type": "color",
3183
+ "$value": "hsl(0, 0%, 2%)",
3184
+ "$description": "True black, one step past production charcoal; carries the star field so a staging build is unmistakable next to the shipping app.",
3185
+ "$extensions": {
3186
+ "putio": {
3187
+ "cssName": "tv-channel-art-nightly-bg",
3188
+ "mode": "tv"
3189
+ }
3190
+ }
3191
+ },
3192
+ "accent": {
3193
+ "$type": "color",
3194
+ "$value": "{color.brand.yellow}",
3195
+ "$description": "Unlike dev, nightly does not recolor the mark: the accent is the brand yellow and the retro wordmark keeps its yellow drop-shadow. Present so emitters can express the flavor as a complete set rather than a special case.",
3196
+ "$extensions": {
3197
+ "putio": {
3198
+ "cssName": "tv-channel-art-nightly-accent",
3199
+ "mode": "tv"
3200
+ }
3201
+ }
3202
+ },
3203
+ "star": {
3204
+ "$type": "color",
3205
+ "$value": "hsl(0, 0%, 100%)",
3206
+ "$description": "Star colour. Stars are scattered, never gridded: three sizes at roughly 36%, 62%, and 95% opacity with the faint ones dominating. Static — never animated, blurred, or glowing.",
3207
+ "$extensions": {
3208
+ "putio": {
3209
+ "cssName": "tv-channel-art-nightly-star",
3210
+ "mode": "tv"
3211
+ }
3212
+ }
3213
+ },
3214
+ "moon": {
3215
+ "$type": "color",
3216
+ "$value": "{color.brand.yellow}",
3217
+ "$description": "Full moon disc in the brand yellow, placed top-left. Its own token so a platform can place the moon without hard-coding the brand value.",
3218
+ "$extensions": {
3219
+ "putio": {
3220
+ "cssName": "tv-channel-art-nightly-moon",
3221
+ "mode": "tv"
3222
+ }
3223
+ }
3224
+ },
3225
+ "moonCrater": {
3226
+ "$type": "color",
3227
+ "$value": "hsl(45, 82%, 56%)",
3228
+ "$description": "Craters one step darker than the moon disc. Low contrast on purpose: texture at icon size, not holes.",
3229
+ "$extensions": {
3230
+ "putio": {
3231
+ "cssName": "tv-channel-art-nightly-moon-crater",
3232
+ "mode": "tv"
3233
+ }
3234
+ }
3235
+ }
3236
+ },
3237
+ "lab": {
3238
+ "background": {
3239
+ "$type": "color",
3240
+ "$value": "hsl(120, 20%, 4.9%)",
3241
+ "$extensions": {
3242
+ "putio": {
3243
+ "cssName": "tv-channel-art-lab-bg",
3244
+ "mode": "tv"
3245
+ }
3246
+ }
3247
+ },
3248
+ "foreground": {
3249
+ "$type": "color",
3250
+ "$value": "hsl(111.1, 100%, 94.7%)",
3251
+ "$extensions": {
3252
+ "putio": {
3253
+ "cssName": "tv-channel-art-lab-fg",
3254
+ "mode": "tv"
3255
+ }
3256
+ }
3257
+ },
3258
+ "accent": {
3259
+ "$type": "color",
3260
+ "$value": "hsl(110.6, 100%, 53.9%)",
3261
+ "$extensions": {
3262
+ "putio": {
3263
+ "cssName": "tv-channel-art-lab-accent",
3264
+ "mode": "tv"
3265
+ }
3266
+ }
3267
+ }
3268
+ }
3269
+ }
3270
+ }
3271
+ },
3272
+ "tv": {
3273
+ "$description": "The portable 10-foot scale. These mode \"tv\" tokens are graph data for platform adapters and are not emitted into web CSS; preview support CSS declares matching --tv-* properties under .tv. TV has no mono face, and its z-order is distinct from the web stack.",
3274
+ "video": {
3275
+ "$description": "On-video and hero-art plate colors. Fixed values by design: the video underneath does not change with the theme.",
3276
+ "background": {
3277
+ "$type": "color",
3278
+ "$value": "hsl(0, 0%, 0%)",
3279
+ "$description": "Letterbox / video plate. True black, not the app background.",
3280
+ "$extensions": {
3281
+ "putio": {
3282
+ "cssName": "tv-video-bg",
3283
+ "mode": "tv"
3284
+ }
3285
+ }
3286
+ },
3287
+ "heroScrimTop": {
3288
+ "$type": "color",
3289
+ "$value": "hsl(30, 18.2%, 8.6%)",
3290
+ "$description": "Top stop of the warm-black wash behind hero/poster art.",
3291
+ "$extensions": {
3292
+ "putio": {
3293
+ "cssName": "tv-hero-scrim-top",
3294
+ "mode": "tv"
3295
+ }
3296
+ }
3297
+ },
3298
+ "heroScrimBottom": {
3299
+ "$type": "color",
3300
+ "$value": "hsl(30, 25%, 1.6%)",
3301
+ "$description": "Bottom stop of the hero wash. Near-black but warm — never pure black, which reads blue next to the art.",
3302
+ "$extensions": {
3303
+ "putio": {
3304
+ "cssName": "tv-hero-scrim-bottom",
3305
+ "mode": "tv"
3306
+ }
3307
+ }
3308
+ },
3309
+ "textOnVideo": {
3310
+ "$type": "color",
3311
+ "$value": "hsl(0, 0%, 100%)",
3312
+ "$description": "Player chrome over video — always white, never a theme token.",
3313
+ "$extensions": {
3314
+ "putio": {
3315
+ "cssName": "tv-text-on-video",
3316
+ "mode": "tv"
3317
+ }
3318
+ }
3319
+ }
3320
+ },
2460
3321
  "text": {
2461
3322
  "heading": {
2462
3323
  "$type": "dimension",