@putdotio/design 2.0.2 → 3.0.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.
package/dist/tokens.js CHANGED
@@ -1231,6 +1231,21 @@ export const tokens = {
1231
1231
  "value": "hsl(5, 100%, 91%)",
1232
1232
  "originalValue": "{color.red.dark.text}"
1233
1233
  },
1234
+ "component.notification.badgeBackground": {
1235
+ "cssName": "--notification-badge-bg",
1236
+ "type": "color",
1237
+ "mode": "global",
1238
+ "value": "hsl(358, 70%, 45%)",
1239
+ "originalValue": "hsl(358, 70%, 45%)",
1240
+ "description": "Unread count disc — darkened red so white numerals clear AA at 9px. Fixed in both modes."
1241
+ },
1242
+ "component.notification.badgeForeground": {
1243
+ "cssName": "--notification-badge-fg",
1244
+ "type": "color",
1245
+ "mode": "global",
1246
+ "value": "hsl(0, 0%, 100%)",
1247
+ "originalValue": "{component.alias.destructiveForeground}"
1248
+ },
1234
1249
  "component.menu.background": {
1235
1250
  "cssName": "--menu-bg",
1236
1251
  "type": "color",
@@ -1585,6 +1600,517 @@ export const tokens = {
1585
1600
  "originalValue": "380px",
1586
1601
  "description": "Fixed on web. Touch surfaces use a bottom sheet instead."
1587
1602
  },
1603
+ "component.avatar.yellow": {
1604
+ "cssName": "--avatar-yellow",
1605
+ "type": "color",
1606
+ "mode": "global",
1607
+ "value": "hsl(44.7, 97.9%, 63.1%)",
1608
+ "originalValue": "{color.brand.yellow}",
1609
+ "description": "Initial-on-color avatar palette. Fixed in both modes; the chip carries its own contrast."
1610
+ },
1611
+ "component.avatar.green": {
1612
+ "cssName": "--avatar-green",
1613
+ "type": "color",
1614
+ "mode": "global",
1615
+ "value": "hsl(151, 55%, 33%)",
1616
+ "originalValue": "hsl(151, 55%, 33%)"
1617
+ },
1618
+ "component.avatar.red": {
1619
+ "cssName": "--avatar-red",
1620
+ "type": "color",
1621
+ "mode": "global",
1622
+ "value": "hsl(358, 55%, 46%)",
1623
+ "originalValue": "hsl(358, 55%, 46%)"
1624
+ },
1625
+ "component.avatar.blue": {
1626
+ "cssName": "--avatar-blue",
1627
+ "type": "color",
1628
+ "mode": "global",
1629
+ "value": "hsl(211, 55%, 46%)",
1630
+ "originalValue": "hsl(211, 55%, 46%)"
1631
+ },
1632
+ "component.avatar.purple": {
1633
+ "cssName": "--avatar-purple",
1634
+ "type": "color",
1635
+ "mode": "global",
1636
+ "value": "hsl(280, 48%, 46%)",
1637
+ "originalValue": "hsl(280, 48%, 46%)"
1638
+ },
1639
+ "component.avatar.teal": {
1640
+ "cssName": "--avatar-teal",
1641
+ "type": "color",
1642
+ "mode": "global",
1643
+ "value": "hsl(168, 55%, 33%)",
1644
+ "originalValue": "hsl(168, 55%, 33%)"
1645
+ },
1646
+ "component.avatar.orange": {
1647
+ "cssName": "--avatar-orange",
1648
+ "type": "color",
1649
+ "mode": "global",
1650
+ "value": "hsl(28, 80%, 55%)",
1651
+ "originalValue": "hsl(28, 80%, 55%)"
1652
+ },
1653
+ "component.avatar.foreground": {
1654
+ "cssName": "--avatar-fg",
1655
+ "type": "color",
1656
+ "mode": "global",
1657
+ "value": "hsl(0, 0%, 100%)",
1658
+ "originalValue": "{component.alias.destructiveForeground}",
1659
+ "description": "White initials — every palette entry except yellow and orange."
1660
+ },
1661
+ "component.avatar.foregroundWarm": {
1662
+ "cssName": "--avatar-fg-warm",
1663
+ "type": "color",
1664
+ "mode": "global",
1665
+ "value": "hsl(38, 65%, 10%)",
1666
+ "originalValue": "{component.alias.primaryForeground}",
1667
+ "description": "Warm dark initials on yellow and orange."
1668
+ },
1669
+ "component.alert.radius": {
1670
+ "cssName": "--alert-radius",
1671
+ "type": "dimension",
1672
+ "mode": "global",
1673
+ "value": "6px",
1674
+ "originalValue": "{radius.default}",
1675
+ "description": "Inline, in-page messaging. Persists until the condition clears — a toast does not."
1676
+ },
1677
+ "component.alert.infoBackground": {
1678
+ "cssName": "--alert-info-bg",
1679
+ "type": "color",
1680
+ "mode": "light",
1681
+ "value": "hsl(0, 0%, 97.3%)",
1682
+ "originalValue": "{color.neutral.light.bgSecondary}"
1683
+ },
1684
+ "component.alert.infoBackgroundDark": {
1685
+ "cssName": "--alert-info-bg",
1686
+ "type": "color",
1687
+ "mode": "dark",
1688
+ "value": "hsl(0, 0%, 11.0%)",
1689
+ "originalValue": "{color.neutral.dark.bgSecondary}"
1690
+ },
1691
+ "component.alert.infoBorder": {
1692
+ "cssName": "--alert-info-border",
1693
+ "type": "color",
1694
+ "mode": "light",
1695
+ "value": "hsl(0, 0%, 88.7%)",
1696
+ "originalValue": "{color.neutral.light.line}"
1697
+ },
1698
+ "component.alert.infoBorderDark": {
1699
+ "cssName": "--alert-info-border",
1700
+ "type": "color",
1701
+ "mode": "dark",
1702
+ "value": "hsl(0, 0%, 20.5%)",
1703
+ "originalValue": "{color.neutral.dark.line}"
1704
+ },
1705
+ "component.alert.infoText": {
1706
+ "cssName": "--alert-info-text",
1707
+ "type": "color",
1708
+ "mode": "light",
1709
+ "value": "hsl(0, 0%, 9.0%)",
1710
+ "originalValue": "{color.neutral.light.text}"
1711
+ },
1712
+ "component.alert.infoTextDark": {
1713
+ "cssName": "--alert-info-text",
1714
+ "type": "color",
1715
+ "mode": "dark",
1716
+ "value": "hsl(0, 0%, 93.0%)",
1717
+ "originalValue": "{color.neutral.dark.text}"
1718
+ },
1719
+ "component.alert.infoBody": {
1720
+ "cssName": "--alert-info-body",
1721
+ "type": "color",
1722
+ "mode": "light",
1723
+ "value": "hsl(0, 0%, 43.5%)",
1724
+ "originalValue": "{color.neutral.light.textSecondary}"
1725
+ },
1726
+ "component.alert.infoBodyDark": {
1727
+ "cssName": "--alert-info-body",
1728
+ "type": "color",
1729
+ "mode": "dark",
1730
+ "value": "hsl(0, 0%, 62.8%)",
1731
+ "originalValue": "{color.neutral.dark.textSecondary}"
1732
+ },
1733
+ "component.alert.infoIcon": {
1734
+ "cssName": "--alert-info-icon",
1735
+ "type": "color",
1736
+ "mode": "light",
1737
+ "value": "hsl(0, 0%, 43.5%)",
1738
+ "originalValue": "{color.neutral.light.textSecondary}"
1739
+ },
1740
+ "component.alert.infoIconDark": {
1741
+ "cssName": "--alert-info-icon",
1742
+ "type": "color",
1743
+ "mode": "dark",
1744
+ "value": "hsl(0, 0%, 62.8%)",
1745
+ "originalValue": "{color.neutral.dark.textSecondary}"
1746
+ },
1747
+ "component.alert.brandBackground": {
1748
+ "cssName": "--alert-brand-bg",
1749
+ "type": "color",
1750
+ "mode": "light",
1751
+ "value": "hsl(52, 100%, 88%)",
1752
+ "originalValue": "{color.yellow.light.componentBg}"
1753
+ },
1754
+ "component.alert.brandBackgroundDark": {
1755
+ "cssName": "--alert-brand-bg",
1756
+ "type": "color",
1757
+ "mode": "dark",
1758
+ "value": "hsl(45, 70%, 9%)",
1759
+ "originalValue": "{color.yellow.dark.componentBg}"
1760
+ },
1761
+ "component.alert.brandBorder": {
1762
+ "cssName": "--alert-brand-border",
1763
+ "type": "color",
1764
+ "mode": "light",
1765
+ "value": "hsl(45, 67%, 67%)",
1766
+ "originalValue": "{color.yellow.light.border}"
1767
+ },
1768
+ "component.alert.brandBorderDark": {
1769
+ "cssName": "--alert-brand-border",
1770
+ "type": "color",
1771
+ "mode": "dark",
1772
+ "value": "hsl(45, 53%, 26%)",
1773
+ "originalValue": "{color.yellow.dark.border}"
1774
+ },
1775
+ "component.alert.brandText": {
1776
+ "cssName": "--alert-brand-text",
1777
+ "type": "color",
1778
+ "mode": "light",
1779
+ "value": "hsl(43, 32%, 21%)",
1780
+ "originalValue": "{color.yellow.light.text}"
1781
+ },
1782
+ "component.alert.brandTextDark": {
1783
+ "cssName": "--alert-brand-text",
1784
+ "type": "color",
1785
+ "mode": "dark",
1786
+ "value": "hsl(46, 89%, 86%)",
1787
+ "originalValue": "{color.yellow.dark.text}"
1788
+ },
1789
+ "component.alert.brandBody": {
1790
+ "cssName": "--alert-brand-body",
1791
+ "type": "color",
1792
+ "mode": "light",
1793
+ "value": "hsl(46, 100%, 27%)",
1794
+ "originalValue": "{color.yellow.light.textSecondary}"
1795
+ },
1796
+ "component.alert.brandBodyDark": {
1797
+ "cssName": "--alert-brand-body",
1798
+ "type": "color",
1799
+ "mode": "dark",
1800
+ "value": "hsl(45, 100%, 64%)",
1801
+ "originalValue": "{color.yellow.dark.textSecondary}"
1802
+ },
1803
+ "component.alert.brandIcon": {
1804
+ "cssName": "--alert-brand-icon",
1805
+ "type": "color",
1806
+ "mode": "light",
1807
+ "value": "hsl(46, 100%, 27%)",
1808
+ "originalValue": "{color.yellow.light.textSecondary}"
1809
+ },
1810
+ "component.alert.brandIconDark": {
1811
+ "cssName": "--alert-brand-icon",
1812
+ "type": "color",
1813
+ "mode": "dark",
1814
+ "value": "hsl(45, 100%, 64%)",
1815
+ "originalValue": "{color.yellow.dark.textSecondary}"
1816
+ },
1817
+ "component.alert.successBackground": {
1818
+ "cssName": "--alert-success-bg",
1819
+ "type": "color",
1820
+ "mode": "light",
1821
+ "value": "hsl(135, 53%, 93%)",
1822
+ "originalValue": "{color.green.light.componentBg}"
1823
+ },
1824
+ "component.alert.successBackgroundDark": {
1825
+ "cssName": "--alert-success-bg",
1826
+ "type": "color",
1827
+ "mode": "dark",
1828
+ "value": "hsl(151, 35%, 13%)",
1829
+ "originalValue": "{color.green.dark.componentBg}"
1830
+ },
1831
+ "component.alert.successBorder": {
1832
+ "cssName": "--alert-success-border",
1833
+ "type": "color",
1834
+ "mode": "light",
1835
+ "value": "hsl(140, 39%, 68%)",
1836
+ "originalValue": "{color.green.light.border}"
1837
+ },
1838
+ "component.alert.successBorderDark": {
1839
+ "cssName": "--alert-success-border",
1840
+ "type": "color",
1841
+ "mode": "dark",
1842
+ "value": "hsl(146, 41%, 29%)",
1843
+ "originalValue": "{color.green.dark.border}"
1844
+ },
1845
+ "component.alert.successText": {
1846
+ "cssName": "--alert-success-text",
1847
+ "type": "color",
1848
+ "mode": "light",
1849
+ "value": "hsl(146, 35%, 17%)",
1850
+ "originalValue": "{color.green.light.text}"
1851
+ },
1852
+ "component.alert.successTextDark": {
1853
+ "cssName": "--alert-success-text",
1854
+ "type": "color",
1855
+ "mode": "dark",
1856
+ "value": "hsl(142, 71%, 82%)",
1857
+ "originalValue": "{color.green.dark.text}"
1858
+ },
1859
+ "component.alert.successBody": {
1860
+ "cssName": "--alert-success-body",
1861
+ "type": "color",
1862
+ "mode": "light",
1863
+ "value": "hsl(155, 100%, 25%)",
1864
+ "originalValue": "{color.green.light.textSecondary}"
1865
+ },
1866
+ "component.alert.successBodyDark": {
1867
+ "cssName": "--alert-success-body",
1868
+ "type": "color",
1869
+ "mode": "dark",
1870
+ "value": "hsl(146, 56%, 60%)",
1871
+ "originalValue": "{color.green.dark.textSecondary}"
1872
+ },
1873
+ "component.alert.successIcon": {
1874
+ "cssName": "--alert-success-icon",
1875
+ "type": "color",
1876
+ "mode": "light",
1877
+ "value": "hsl(155, 100%, 25%)",
1878
+ "originalValue": "{color.green.light.textSecondary}"
1879
+ },
1880
+ "component.alert.successIconDark": {
1881
+ "cssName": "--alert-success-icon",
1882
+ "type": "color",
1883
+ "mode": "dark",
1884
+ "value": "hsl(146, 56%, 60%)",
1885
+ "originalValue": "{color.green.dark.textSecondary}"
1886
+ },
1887
+ "component.alert.dangerBackground": {
1888
+ "cssName": "--alert-danger-bg",
1889
+ "type": "color",
1890
+ "mode": "light",
1891
+ "value": "hsl(2, 100%, 96%)",
1892
+ "originalValue": "{color.red.light.componentBg}"
1893
+ },
1894
+ "component.alert.dangerBackgroundDark": {
1895
+ "cssName": "--alert-danger-bg",
1896
+ "type": "color",
1897
+ "mode": "dark",
1898
+ "value": "hsl(0, 55%, 15%)",
1899
+ "originalValue": "{color.red.dark.componentBg}"
1900
+ },
1901
+ "component.alert.dangerBorder": {
1902
+ "cssName": "--alert-danger-border",
1903
+ "type": "color",
1904
+ "mode": "light",
1905
+ "value": "hsl(2, 81%, 80%)",
1906
+ "originalValue": "{color.red.light.border}"
1907
+ },
1908
+ "component.alert.dangerBorderDark": {
1909
+ "cssName": "--alert-danger-border",
1910
+ "type": "color",
1911
+ "mode": "dark",
1912
+ "value": "hsl(0, 46%, 38%)",
1913
+ "originalValue": "{color.red.dark.border}"
1914
+ },
1915
+ "component.alert.dangerText": {
1916
+ "cssName": "--alert-danger-text",
1917
+ "type": "color",
1918
+ "mode": "light",
1919
+ "value": "hsl(358, 62%, 24%)",
1920
+ "originalValue": "{color.red.light.text}"
1921
+ },
1922
+ "component.alert.dangerTextDark": {
1923
+ "cssName": "--alert-danger-text",
1924
+ "type": "color",
1925
+ "mode": "dark",
1926
+ "value": "hsl(5, 100%, 91%)",
1927
+ "originalValue": "{color.red.dark.text}"
1928
+ },
1929
+ "component.alert.dangerBody": {
1930
+ "cssName": "--alert-danger-body",
1931
+ "type": "color",
1932
+ "mode": "light",
1933
+ "value": "hsl(355, 64%, 49%)",
1934
+ "originalValue": "{color.red.light.textSecondary}"
1935
+ },
1936
+ "component.alert.dangerBodyDark": {
1937
+ "cssName": "--alert-danger-body",
1938
+ "type": "color",
1939
+ "mode": "dark",
1940
+ "value": "hsl(2, 100%, 77%)",
1941
+ "originalValue": "{color.red.dark.textSecondary}"
1942
+ },
1943
+ "component.alert.dangerIcon": {
1944
+ "cssName": "--alert-danger-icon",
1945
+ "type": "color",
1946
+ "mode": "light",
1947
+ "value": "hsl(355, 64%, 49%)",
1948
+ "originalValue": "{color.red.light.textSecondary}"
1949
+ },
1950
+ "component.alert.dangerIconDark": {
1951
+ "cssName": "--alert-danger-icon",
1952
+ "type": "color",
1953
+ "mode": "dark",
1954
+ "value": "hsl(2, 100%, 77%)",
1955
+ "originalValue": "{color.red.dark.textSecondary}"
1956
+ },
1957
+ "component.slider.track": {
1958
+ "cssName": "--slider-track",
1959
+ "type": "color",
1960
+ "mode": "light",
1961
+ "value": "hsl(0, 0%, 90.9%)",
1962
+ "originalValue": "{color.neutral.light.componentBgActive}",
1963
+ "description": "Seek, volume, stepped numeric. The buffered band is what makes it a scrubber."
1964
+ },
1965
+ "component.slider.trackDark": {
1966
+ "cssName": "--slider-track",
1967
+ "type": "color",
1968
+ "mode": "dark",
1969
+ "value": "hsl(0, 0%, 17.9%)",
1970
+ "originalValue": "{color.neutral.dark.componentBgActive}"
1971
+ },
1972
+ "component.slider.buffer": {
1973
+ "cssName": "--slider-buffer",
1974
+ "type": "color",
1975
+ "mode": "light",
1976
+ "value": "hsl(0, 0%, 85.8%)",
1977
+ "originalValue": "{color.neutral.light.border}"
1978
+ },
1979
+ "component.slider.bufferDark": {
1980
+ "cssName": "--slider-buffer",
1981
+ "type": "color",
1982
+ "mode": "dark",
1983
+ "value": "hsl(0, 0%, 24.3%)",
1984
+ "originalValue": "{color.neutral.dark.border}"
1985
+ },
1986
+ "component.slider.fill": {
1987
+ "cssName": "--slider-fill",
1988
+ "type": "color",
1989
+ "mode": "global",
1990
+ "value": "hsl(44.7, 97.9%, 63.1%)",
1991
+ "originalValue": "{color.brand.yellow}"
1992
+ },
1993
+ "component.slider.knob": {
1994
+ "cssName": "--slider-knob",
1995
+ "type": "color",
1996
+ "mode": "global",
1997
+ "value": "hsl(44.7, 97.9%, 63.1%)",
1998
+ "originalValue": "{color.brand.yellow}"
1999
+ },
2000
+ "component.slider.fillDisabled": {
2001
+ "cssName": "--slider-fill-disabled",
2002
+ "type": "color",
2003
+ "mode": "light",
2004
+ "value": "hsl(0, 0%, 43.5%)",
2005
+ "originalValue": "{color.neutral.light.textSecondary}"
2006
+ },
2007
+ "component.slider.fillDisabledDark": {
2008
+ "cssName": "--slider-fill-disabled",
2009
+ "type": "color",
2010
+ "mode": "dark",
2011
+ "value": "hsl(0, 0%, 62.8%)",
2012
+ "originalValue": "{color.neutral.dark.textSecondary}"
2013
+ },
2014
+ "component.slider.trackHeight": {
2015
+ "cssName": "--slider-track-height",
2016
+ "type": "dimension",
2017
+ "mode": "global",
2018
+ "value": "4px",
2019
+ "originalValue": "4px"
2020
+ },
2021
+ "component.slider.knobSize": {
2022
+ "cssName": "--slider-knob-size",
2023
+ "type": "dimension",
2024
+ "mode": "global",
2025
+ "value": "14px",
2026
+ "originalValue": "14px"
2027
+ },
2028
+ "component.slider.hitHeight": {
2029
+ "cssName": "--slider-hit-height",
2030
+ "type": "dimension",
2031
+ "mode": "global",
2032
+ "value": "20px",
2033
+ "originalValue": "20px",
2034
+ "description": "44px on touch — the knob grows, the track does not."
2035
+ },
2036
+ "component.pagination.itemSize": {
2037
+ "cssName": "--pagination-item-size",
2038
+ "type": "dimension",
2039
+ "mode": "global",
2040
+ "value": "30px",
2041
+ "originalValue": "30px",
2042
+ "description": "Numbered paging. Load-more and infinite scroll carry no chrome of their own."
2043
+ },
2044
+ "component.pagination.itemText": {
2045
+ "cssName": "--pagination-item-text",
2046
+ "type": "color",
2047
+ "mode": "light",
2048
+ "value": "hsl(0, 0%, 43.5%)",
2049
+ "originalValue": "{color.neutral.light.textSecondary}"
2050
+ },
2051
+ "component.pagination.itemTextDark": {
2052
+ "cssName": "--pagination-item-text",
2053
+ "type": "color",
2054
+ "mode": "dark",
2055
+ "value": "hsl(0, 0%, 62.8%)",
2056
+ "originalValue": "{color.neutral.dark.textSecondary}"
2057
+ },
2058
+ "component.pagination.itemTextActive": {
2059
+ "cssName": "--pagination-item-text-active",
2060
+ "type": "color",
2061
+ "mode": "light",
2062
+ "value": "hsl(0, 0%, 9.0%)",
2063
+ "originalValue": "{color.neutral.light.text}"
2064
+ },
2065
+ "component.pagination.itemTextActiveDark": {
2066
+ "cssName": "--pagination-item-text-active",
2067
+ "type": "color",
2068
+ "mode": "dark",
2069
+ "value": "hsl(0, 0%, 93.0%)",
2070
+ "originalValue": "{color.neutral.dark.text}"
2071
+ },
2072
+ "component.pagination.itemBackgroundHover": {
2073
+ "cssName": "--pagination-item-bg-hover",
2074
+ "type": "color",
2075
+ "mode": "light",
2076
+ "value": "hsl(0, 0%, 93.0%)",
2077
+ "originalValue": "{color.neutral.light.componentBgHover}"
2078
+ },
2079
+ "component.pagination.itemBackgroundHoverDark": {
2080
+ "cssName": "--pagination-item-bg-hover",
2081
+ "type": "color",
2082
+ "mode": "dark",
2083
+ "value": "hsl(0, 0%, 15.8%)",
2084
+ "originalValue": "{color.neutral.dark.componentBgHover}"
2085
+ },
2086
+ "component.pagination.itemBackgroundActive": {
2087
+ "cssName": "--pagination-item-bg-active",
2088
+ "type": "color",
2089
+ "mode": "light",
2090
+ "value": "hsl(0, 0%, 90.9%)",
2091
+ "originalValue": "{color.neutral.light.componentBgActive}"
2092
+ },
2093
+ "component.pagination.itemBackgroundActiveDark": {
2094
+ "cssName": "--pagination-item-bg-active",
2095
+ "type": "color",
2096
+ "mode": "dark",
2097
+ "value": "hsl(0, 0%, 17.9%)",
2098
+ "originalValue": "{color.neutral.dark.componentBgActive}"
2099
+ },
2100
+ "component.pagination.itemBorderActive": {
2101
+ "cssName": "--pagination-item-border-active",
2102
+ "type": "color",
2103
+ "mode": "light",
2104
+ "value": "hsl(0, 0%, 85.8%)",
2105
+ "originalValue": "{color.neutral.light.border}"
2106
+ },
2107
+ "component.pagination.itemBorderActiveDark": {
2108
+ "cssName": "--pagination-item-border-active",
2109
+ "type": "color",
2110
+ "mode": "dark",
2111
+ "value": "hsl(0, 0%, 24.3%)",
2112
+ "originalValue": "{color.neutral.dark.border}"
2113
+ },
1588
2114
  "context.tv.text.primary": {
1589
2115
  "cssName": "--text-1",
1590
2116
  "type": "color",
@@ -1645,6 +2171,46 @@ export const tokens = {
1645
2171
  "value": "hsla(0, 0%, 100%, 0.18)",
1646
2172
  "originalValue": "hsla(0, 0%, 100%, 0.18)"
1647
2173
  },
2174
+ "context.tv.channelArt.nightly.background": {
2175
+ "cssName": "--tv-channel-art-nightly-bg",
2176
+ "type": "color",
2177
+ "mode": "tv",
2178
+ "value": "hsl(0, 0%, 2%)",
2179
+ "originalValue": "hsl(0, 0%, 2%)",
2180
+ "description": "True black, one step past production charcoal; carries the star field so a staging build is unmistakable next to the shipping app."
2181
+ },
2182
+ "context.tv.channelArt.nightly.accent": {
2183
+ "cssName": "--tv-channel-art-nightly-accent",
2184
+ "type": "color",
2185
+ "mode": "tv",
2186
+ "value": "hsl(44.7, 97.9%, 63.1%)",
2187
+ "originalValue": "{color.brand.yellow}",
2188
+ "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."
2189
+ },
2190
+ "context.tv.channelArt.nightly.star": {
2191
+ "cssName": "--tv-channel-art-nightly-star",
2192
+ "type": "color",
2193
+ "mode": "tv",
2194
+ "value": "hsl(0, 0%, 100%)",
2195
+ "originalValue": "hsl(0, 0%, 100%)",
2196
+ "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."
2197
+ },
2198
+ "context.tv.channelArt.nightly.moon": {
2199
+ "cssName": "--tv-channel-art-nightly-moon",
2200
+ "type": "color",
2201
+ "mode": "tv",
2202
+ "value": "hsl(44.7, 97.9%, 63.1%)",
2203
+ "originalValue": "{color.brand.yellow}",
2204
+ "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."
2205
+ },
2206
+ "context.tv.channelArt.nightly.moonCrater": {
2207
+ "cssName": "--tv-channel-art-nightly-moon-crater",
2208
+ "type": "color",
2209
+ "mode": "tv",
2210
+ "value": "hsl(45, 82%, 56%)",
2211
+ "originalValue": "hsl(45, 82%, 56%)",
2212
+ "description": "Craters one step darker than the moon disc. Low contrast on purpose: texture at icon size, not holes."
2213
+ },
1648
2214
  "context.tv.channelArt.lab.background": {
1649
2215
  "cssName": "--tv-channel-art-lab-bg",
1650
2216
  "type": "color",
@@ -1666,6 +2232,38 @@ export const tokens = {
1666
2232
  "value": "hsl(110.6, 100%, 53.9%)",
1667
2233
  "originalValue": "hsl(110.6, 100%, 53.9%)"
1668
2234
  },
2235
+ "tv.video.background": {
2236
+ "cssName": "--tv-video-bg",
2237
+ "type": "color",
2238
+ "mode": "tv",
2239
+ "value": "hsl(0, 0%, 0%)",
2240
+ "originalValue": "hsl(0, 0%, 0%)",
2241
+ "description": "Letterbox / video plate. True black, not the app background."
2242
+ },
2243
+ "tv.video.heroScrimTop": {
2244
+ "cssName": "--tv-hero-scrim-top",
2245
+ "type": "color",
2246
+ "mode": "tv",
2247
+ "value": "hsl(30, 18.2%, 8.6%)",
2248
+ "originalValue": "hsl(30, 18.2%, 8.6%)",
2249
+ "description": "Top stop of the warm-black wash behind hero/poster art."
2250
+ },
2251
+ "tv.video.heroScrimBottom": {
2252
+ "cssName": "--tv-hero-scrim-bottom",
2253
+ "type": "color",
2254
+ "mode": "tv",
2255
+ "value": "hsl(30, 25%, 1.6%)",
2256
+ "originalValue": "hsl(30, 25%, 1.6%)",
2257
+ "description": "Bottom stop of the hero wash. Near-black but warm — never pure black, which reads blue next to the art."
2258
+ },
2259
+ "tv.video.textOnVideo": {
2260
+ "cssName": "--tv-text-on-video",
2261
+ "type": "color",
2262
+ "mode": "tv",
2263
+ "value": "hsl(0, 0%, 100%)",
2264
+ "originalValue": "hsl(0, 0%, 100%)",
2265
+ "description": "Player chrome over video — always white, never a theme token."
2266
+ },
1669
2267
  "tv.text.heading": {
1670
2268
  "cssName": "--tv-text-heading",
1671
2269
  "type": "dimension",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@putdotio/design",
3
- "version": "2.0.2",
3
+ "version": "3.0.0",
4
4
  "description": "Public put.io design tokens, brand assets, and design-system guidance.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -73,8 +73,9 @@
73
73
  "typecheck:scripts": "tsc --noEmit --ignoreConfig --skipLibCheck --module ESNext --moduleResolution Bundler --target ES2022 --strict --types node scripts/*.ts playwright.config.ts tests/e2e/*.ts sst.config.ts infra/*.ts",
74
74
  "smoke": "node scripts/smoke-static.ts",
75
75
  "html:check": "html-validate \"system/**/*.html\"",
76
+ "skills:lint": "skillcheck lint",
76
77
  "e2e": "playwright test",
77
- "verify": "pnpm typecheck:scripts && pnpm tokens:check && pnpm test:mirror && pnpm html:check && pnpm smoke && sst version",
78
+ "verify": "pnpm skills:lint && pnpm typecheck:scripts && pnpm tokens:check && pnpm test:mirror && pnpm html:check && pnpm smoke && sst version",
78
79
  "verify:full": "pnpm verify && pnpm e2e && npm pack --dry-run",
79
80
  "check": "pnpm verify",
80
81
  "deploy:production": "sst deploy --stage production"
@@ -83,6 +84,7 @@
83
84
  "@axe-core/playwright": "^4.11.3",
84
85
  "@playwright/test": "^1.60.0",
85
86
  "@types/node": "^26.0.0",
87
+ "@uinaf/skillcheck": "0.4.0",
86
88
  "html-validate": "^11.2.0",
87
89
  "sst": "^4.14.3",
88
90
  "style-dictionary": "^5.4.1",