@datatechsolutions/tympan-tokens 0.4.1 → 0.4.2

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/values.js CHANGED
@@ -1515,14 +1515,14 @@ export const values = {
1515
1515
  "light": {
1516
1516
  "--ty-bg": "#f8fafc",
1517
1517
  "--ty-surface": "rgb(255 255 255 / 0.72)",
1518
- "--ty-surface-raised": "rgb(255 255 255 / 0.9)",
1518
+ "--ty-surface-raised": "rgb(255 255 255 / 0.86)",
1519
1519
  "--ty-surface-solid": "#ffffff",
1520
1520
  "--ty-surface-raised-solid": "#ffffff",
1521
- "--ty-surface-sunken": "#f1f5f9",
1521
+ "--ty-surface-sunken": "#f2f3fa",
1522
1522
  "--ty-ink": "#0f172a",
1523
- "--ty-ink-2": "#334155",
1524
- "--ty-ink-3": "#4d5a6b",
1525
- "--ty-line": "rgb(148 163 184 / 0.3)",
1523
+ "--ty-ink-2": "#475569",
1524
+ "--ty-ink-3": "#5b6779",
1525
+ "--ty-line": "rgb(148 163 184 / 0.26)",
1526
1526
  "--ty-line-soft": "rgb(95 115 143 / 0.12)",
1527
1527
  "--ty-line-strong": "rgb(100 116 139 / 0.45)",
1528
1528
  "--ty-input": "#6d829e",
@@ -1537,9 +1537,9 @@ export const values = {
1537
1537
  "--ty-on-cta": "#f9faff",
1538
1538
  "--ty-secondary": "rgb(251 253 255 / 0.7)",
1539
1539
  "--ty-on-secondary": "#0c192a",
1540
- "--ty-backdrop": "rgb(10 22 40 / 0.4)",
1541
- "--ty-ambient-1": "rgb(142 154 255 / 0.07)",
1542
- "--ty-ambient-2": "rgb(78 188 235 / 0.05)",
1540
+ "--ty-backdrop": "rgb(15 23 42 / 0.4)",
1541
+ "--ty-ambient-1": "rgb(167 139 250 / 0.05)",
1542
+ "--ty-ambient-2": "rgb(56 189 248 / 0.03)",
1543
1543
  "--ty-danger": "#be123c",
1544
1544
  "--ty-danger-soft": "rgb(222 59 61 / 0.1)",
1545
1545
  "--ty-on-danger-soft": "#a30018",
@@ -1556,7 +1556,7 @@ export const values = {
1556
1556
  "--ty-info-soft": "rgb(65 136 182 / 0.1)",
1557
1557
  "--ty-on-info-soft": "#085b87",
1558
1558
  "--ty-on-info": "#f8fafe",
1559
- "--ty-neutral": "#4d5a6b",
1559
+ "--ty-neutral": "#5b6779",
1560
1560
  "--ty-neutral-soft": "rgb(113 129 152 / 0.1)",
1561
1561
  "--ty-on-neutral-soft": "#47566c",
1562
1562
  "--ty-on-neutral": "#f8fafe",
@@ -1568,10 +1568,10 @@ export const values = {
1568
1568
  "--ty-chart-6": "#765ebb",
1569
1569
  "--ty-chart-7": "#008479",
1570
1570
  "--ty-chart-8": "#b05315",
1571
- "--ty-on-bg": "#334155",
1572
- "--ty-on-surface": "#334155",
1573
- "--ty-on-surface-raised": "#334155",
1574
- "--ty-on-surface-sunken": "#334155",
1571
+ "--ty-on-bg": "#475569",
1572
+ "--ty-on-surface": "#475569",
1573
+ "--ty-on-surface-raised": "#475569",
1574
+ "--ty-on-surface-sunken": "#475569",
1575
1575
  "--ty-proof-proved": "#00672d",
1576
1576
  "--ty-proof-proved-soft": "rgb(19 153 72 / 0.1)",
1577
1577
  "--ty-proof-pending": "#774a00",
@@ -1580,19 +1580,19 @@ export const values = {
1580
1580
  "--ty-proof-refuted-soft": "rgb(222 59 61 / 0.1)",
1581
1581
  "--ty-proof-not-disclosed": "#47566c",
1582
1582
  "--ty-proof-not-disclosed-soft": "rgb(113 129 152 / 0.1)",
1583
- "--ty-proof-none": "#4d5a6b",
1583
+ "--ty-proof-none": "#5b6779",
1584
1584
  "--ty-proof-none-soft": "rgb(113 129 152 / 0.1)",
1585
1585
  "--ty-actor-person": "#4144a3",
1586
1586
  "--ty-actor-person-soft": "rgb(99 102 241 / 0.12)",
1587
- "--ty-actor-agent": "#334155",
1587
+ "--ty-actor-agent": "#475569",
1588
1588
  "--ty-actor-agent-soft": "rgb(113 129 152 / 0.1)",
1589
- "--ty-actor-system": "#4d5a6b",
1589
+ "--ty-actor-system": "#5b6779",
1590
1590
  "--ty-actor-system-soft": "rgb(113 129 152 / 0.1)",
1591
1591
  "--ty-nav-bg": "rgb(255 255 255 / 0.72)",
1592
- "--ty-on-nav": "#334155",
1592
+ "--ty-on-nav": "#475569",
1593
1593
  "--ty-nav-active": "rgb(99 102 241 / 0.12)",
1594
1594
  "--ty-on-nav-active": "#4144a3",
1595
- "--ty-nav-line": "rgb(148 163 184 / 0.3)",
1595
+ "--ty-nav-line": "rgb(148 163 184 / 0.26)",
1596
1596
  "--ty-accent": "#4f46e5",
1597
1597
  "--ty-accent-strong": "#4338ca",
1598
1598
  "--ty-accent-soft": "rgb(99 102 241 / 0.12)",
@@ -1674,15 +1674,15 @@ export const values = {
1674
1674
  "--ty-info-800": "#174b6b",
1675
1675
  "--ty-info-900": "#103850",
1676
1676
  "--ty-info-950": "#072638",
1677
- "--ty-shadow-sheet": "0px 1px 2px 0px rgb(10 22 40 / 0.04), 0px 8px 24px -12px rgb(10 22 40 / 0.1)",
1678
- "--ty-shadow-raised": "0px 4px 12px -2px rgb(10 22 40 / 0.08)",
1679
- "--ty-shadow-floating": "0px 12px 24px -8px rgb(10 22 40 / 0.14)",
1680
- "--ty-shadow-modal": "0px 40px 100px -30px rgb(10 22 40 / 0.35)",
1681
- "--ty-shadow-sheet-inset": "inset 0px 1px 0px 0px rgb(255 255 255 / 0)",
1677
+ "--ty-shadow-sheet": "0px 4px 16px -2px rgb(0 0 0 / 0.1), 0px 12px 40px -8px rgb(0 0 0 / 0.06)",
1678
+ "--ty-shadow-raised": "0px 4px 12px -2px rgb(15 23 42 / 0.08), 0px 2px 4px -2px rgb(15 23 42 / 0.04)",
1679
+ "--ty-shadow-floating": "0px 12px 24px -8px rgb(15 23 42 / 0.12), 0px 4px 8px -4px rgb(15 23 42 / 0.06)",
1680
+ "--ty-shadow-modal": "0px 40px 100px -30px rgb(0 0 0 / 0.45), 0px 16px 40px -12px rgb(0 0 0 / 0.18)",
1681
+ "--ty-shadow-sheet-inset": "inset 0px 1px 2px 0px rgb(255 255 255 / 0.7), inset 0px -1px 2px 0px rgb(0 0 0 / 0.04)",
1682
1682
  "--ty-radius": "12px",
1683
1683
  "--ty-radius-control": "12px",
1684
- "--ty-radius-card": "19px",
1685
- "--ty-radius-sheet": "29px",
1684
+ "--ty-radius-card": "20px",
1685
+ "--ty-radius-sheet": "24px",
1686
1686
  "--ty-radius-pill": "999px",
1687
1687
  "--ty-radius-agent": "7px",
1688
1688
  "--ty-focus-width": "2px",
@@ -1691,7 +1691,25 @@ export const values = {
1691
1691
  "--ty-glass-saturate": "1.15",
1692
1692
  "--ty-font-serif": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif",
1693
1693
  "--ty-font-sans": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif",
1694
- "--ty-font-mono": "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"
1694
+ "--ty-font-mono": "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
1695
+ "--ty-font-size-display": "30px",
1696
+ "--ty-font-line-height-display": "36px",
1697
+ "--ty-font-size-h1": "24px",
1698
+ "--ty-font-line-height-h1": "32px",
1699
+ "--ty-font-size-h2": "18px",
1700
+ "--ty-font-line-height-h2": "28px",
1701
+ "--ty-font-size-h3": "16px",
1702
+ "--ty-font-line-height-h3": "24px",
1703
+ "--ty-font-size-label": "14px",
1704
+ "--ty-font-line-height-label": "20px",
1705
+ "--ty-font-tracking-h1": "-0.025em",
1706
+ "--ty-glass-edge": "rgb(255 255 255 / 0.9) rgb(200 200 210 / 0.3) rgb(200 200 210 / 0.25) rgb(255 255 255 / 0.7)",
1707
+ "--ty-glass-edge-width": "1.5px",
1708
+ "--ty-glass-highlight": "inset 0 1px 2px 0 rgb(255 255 255 / 0.8), inset 0 -1px 2px 0 rgb(0 0 0 / 0.05)",
1709
+ "--ty-glass-fill": "linear-gradient(135deg, rgb(255 255 255 / 0.8) 0%, rgb(220 225 240 / 0.62) 40%, rgb(240 245 255 / 0.68) 70%, rgb(255 255 255 / 0.8) 100%)",
1710
+ "--ty-glass-fill-raised": "linear-gradient(135deg, rgb(255 255 255 / 0.86) 0%, rgb(215 220 238 / 0.7) 40%, rgb(235 240 255 / 0.76) 70%, rgb(255 255 255 / 0.86) 100%)",
1711
+ "--ty-mark-gradient": "linear-gradient(135deg, #38bdf8 0%, #6366f1 40%, #a855f7 100%)",
1712
+ "--ty-wordmark-gradient": "linear-gradient(90deg, #0369a1, #4338ca, #7e22ce)"
1695
1713
  },
1696
1714
  "light-high": {
1697
1715
  "--ty-bg": "#f3f7fe",
@@ -1855,15 +1873,15 @@ export const values = {
1855
1873
  "--ty-info-800": "#174b6b",
1856
1874
  "--ty-info-900": "#103850",
1857
1875
  "--ty-info-950": "#072638",
1858
- "--ty-shadow-sheet": "0px 1px 2px 0px rgb(10 22 40 / 0.04), 0px 8px 24px -12px rgb(10 22 40 / 0.1)",
1859
- "--ty-shadow-raised": "0px 4px 12px -2px rgb(10 22 40 / 0.08)",
1860
- "--ty-shadow-floating": "0px 12px 24px -8px rgb(10 22 40 / 0.14)",
1861
- "--ty-shadow-modal": "0px 40px 100px -30px rgb(10 22 40 / 0.35)",
1862
- "--ty-shadow-sheet-inset": "inset 0px 1px 0px 0px rgb(255 255 255 / 0)",
1876
+ "--ty-shadow-sheet": "0px 4px 16px -2px rgb(0 0 0 / 0.1), 0px 12px 40px -8px rgb(0 0 0 / 0.06)",
1877
+ "--ty-shadow-raised": "0px 4px 12px -2px rgb(15 23 42 / 0.08), 0px 2px 4px -2px rgb(15 23 42 / 0.04)",
1878
+ "--ty-shadow-floating": "0px 12px 24px -8px rgb(15 23 42 / 0.12), 0px 4px 8px -4px rgb(15 23 42 / 0.06)",
1879
+ "--ty-shadow-modal": "0px 40px 100px -30px rgb(0 0 0 / 0.45), 0px 16px 40px -12px rgb(0 0 0 / 0.18)",
1880
+ "--ty-shadow-sheet-inset": "inset 0px 1px 2px 0px rgb(255 255 255 / 0.7), inset 0px -1px 2px 0px rgb(0 0 0 / 0.04)",
1863
1881
  "--ty-radius": "12px",
1864
1882
  "--ty-radius-control": "12px",
1865
- "--ty-radius-card": "19px",
1866
- "--ty-radius-sheet": "29px",
1883
+ "--ty-radius-card": "20px",
1884
+ "--ty-radius-sheet": "24px",
1867
1885
  "--ty-radius-pill": "999px",
1868
1886
  "--ty-radius-agent": "7px",
1869
1887
  "--ty-focus-width": "3px",
@@ -1872,19 +1890,30 @@ export const values = {
1872
1890
  "--ty-glass-saturate": "1.15",
1873
1891
  "--ty-font-serif": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif",
1874
1892
  "--ty-font-sans": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif",
1875
- "--ty-font-mono": "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"
1893
+ "--ty-font-mono": "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
1894
+ "--ty-font-size-display": "30px",
1895
+ "--ty-font-line-height-display": "36px",
1896
+ "--ty-font-size-h1": "24px",
1897
+ "--ty-font-line-height-h1": "32px",
1898
+ "--ty-font-size-h2": "18px",
1899
+ "--ty-font-line-height-h2": "28px",
1900
+ "--ty-font-size-h3": "16px",
1901
+ "--ty-font-line-height-h3": "24px",
1902
+ "--ty-font-size-label": "14px",
1903
+ "--ty-font-line-height-label": "20px",
1904
+ "--ty-font-tracking-h1": "-0.025em"
1876
1905
  },
1877
1906
  "dark": {
1878
- "--ty-bg": "#0b1220",
1879
- "--ty-surface": "rgb(30 41 59 / 0.72)",
1880
- "--ty-surface-raised": "rgb(30 41 59 / 0.92)",
1907
+ "--ty-bg": "#020617",
1908
+ "--ty-surface": "rgb(30 41 59 / 0.7)",
1909
+ "--ty-surface-raised": "rgb(30 41 59 / 0.78)",
1881
1910
  "--ty-surface-solid": "#131c2f",
1882
1911
  "--ty-surface-raised-solid": "#1b2539",
1883
1912
  "--ty-surface-sunken": "#0b1222",
1884
- "--ty-ink": "#f8fafc",
1913
+ "--ty-ink": "#ffffff",
1885
1914
  "--ty-ink-2": "#cbd5e1",
1886
- "--ty-ink-3": "#a3b0c0",
1887
- "--ty-line": "rgb(148 163 184 / 0.22)",
1915
+ "--ty-ink-3": "#94a3b8",
1916
+ "--ty-line": "rgb(148 163 184 / 0.24)",
1888
1917
  "--ty-line-soft": "rgb(163 185 216 / 0.09)",
1889
1918
  "--ty-line-strong": "rgb(148 163 184 / 0.36)",
1890
1919
  "--ty-input": "#687c98",
@@ -1899,9 +1928,9 @@ export const values = {
1899
1928
  "--ty-on-cta": "#f9faff",
1900
1929
  "--ty-secondary": "rgb(37 40 44 / 0.6)",
1901
1930
  "--ty-on-secondary": "#e7f1ff",
1902
- "--ty-backdrop": "rgb(0 3 14 / 0.6)",
1903
- "--ty-ambient-1": "rgb(142 154 255 / 0.12)",
1904
- "--ty-ambient-2": "rgb(78 188 235 / 0.08)",
1931
+ "--ty-backdrop": "rgb(0 0 0 / 0.5)",
1932
+ "--ty-ambient-1": "rgb(124 58 237 / 0.1)",
1933
+ "--ty-ambient-2": "rgb(2 132 199 / 0.08)",
1905
1934
  "--ty-danger": "#fb7185",
1906
1935
  "--ty-danger-soft": "rgb(255 99 95 / 0.14)",
1907
1936
  "--ty-on-danger-soft": "#ffa098",
@@ -1918,7 +1947,7 @@ export const values = {
1918
1947
  "--ty-info-soft": "rgb(96 167 214 / 0.14)",
1919
1948
  "--ty-on-info-soft": "#80c7f8",
1920
1949
  "--ty-on-info": "#101214",
1921
- "--ty-neutral": "#a3b0c0",
1950
+ "--ty-neutral": "#94a3b8",
1922
1951
  "--ty-neutral-soft": "rgb(143 160 184 / 0.14)",
1923
1952
  "--ty-on-neutral-soft": "#aebfd8",
1924
1953
  "--ty-on-neutral": "#101214",
@@ -1942,19 +1971,19 @@ export const values = {
1942
1971
  "--ty-proof-refuted-soft": "rgb(255 99 95 / 0.14)",
1943
1972
  "--ty-proof-not-disclosed": "#aebfd8",
1944
1973
  "--ty-proof-not-disclosed-soft": "rgb(143 160 184 / 0.14)",
1945
- "--ty-proof-none": "#a3b0c0",
1974
+ "--ty-proof-none": "#94a3b8",
1946
1975
  "--ty-proof-none-soft": "rgb(143 160 184 / 0.14)",
1947
1976
  "--ty-actor-person": "#b5bfff",
1948
1977
  "--ty-actor-person-soft": "rgb(99 102 241 / 0.2)",
1949
1978
  "--ty-actor-agent": "#cbd5e1",
1950
1979
  "--ty-actor-agent-soft": "rgb(143 160 184 / 0.14)",
1951
- "--ty-actor-system": "#a3b0c0",
1980
+ "--ty-actor-system": "#94a3b8",
1952
1981
  "--ty-actor-system-soft": "rgb(143 160 184 / 0.14)",
1953
- "--ty-nav-bg": "rgb(30 41 59 / 0.72)",
1982
+ "--ty-nav-bg": "rgb(30 41 59 / 0.7)",
1954
1983
  "--ty-on-nav": "#cbd5e1",
1955
1984
  "--ty-nav-active": "rgb(99 102 241 / 0.2)",
1956
1985
  "--ty-on-nav-active": "#b5bfff",
1957
- "--ty-nav-line": "rgb(148 163 184 / 0.22)",
1986
+ "--ty-nav-line": "rgb(148 163 184 / 0.24)",
1958
1987
  "--ty-accent": "#818cf8",
1959
1988
  "--ty-accent-strong": "#a5b4fc",
1960
1989
  "--ty-accent-soft": "rgb(99 102 241 / 0.2)",
@@ -2036,24 +2065,42 @@ export const values = {
2036
2065
  "--ty-info-800": "#174b6b",
2037
2066
  "--ty-info-900": "#103850",
2038
2067
  "--ty-info-950": "#072638",
2039
- "--ty-shadow-sheet": "0px 1px 2px 0px rgb(0 5 20 / 0.08), 0px 8px 24px -12px rgb(0 5 20 / 0.2)",
2040
- "--ty-shadow-raised": "0px 4px 12px -2px rgb(0 5 20 / 0.16)",
2041
- "--ty-shadow-floating": "0px 12px 24px -8px rgb(0 5 20 / 0.28)",
2042
- "--ty-shadow-modal": "0px 40px 100px -30px rgb(0 5 20 / 0.7)",
2043
- "--ty-shadow-sheet-inset": "inset 0px 1px 0px 0px rgb(255 255 255 / 0.06)",
2068
+ "--ty-shadow-sheet": "0px 12px 40px -12px rgb(0 0 0 / 0.5)",
2069
+ "--ty-shadow-raised": "0px 4px 12px -2px rgb(0 0 0 / 0.5), 0px 2px 4px -2px rgb(0 0 0 / 0.3)",
2070
+ "--ty-shadow-floating": "0px 12px 24px -8px rgb(0 0 0 / 0.6), 0px 4px 8px -4px rgb(0 0 0 / 0.4)",
2071
+ "--ty-shadow-modal": "0px 40px 100px -30px rgb(0 0 0 / 0.7), 0px 16px 40px -12px rgb(0 0 0 / 0.5)",
2072
+ "--ty-shadow-sheet-inset": "inset 0px 1px 1px 0px rgb(255 255 255 / 0.12)",
2044
2073
  "--ty-radius": "12px",
2045
2074
  "--ty-radius-control": "12px",
2046
- "--ty-radius-card": "19px",
2047
- "--ty-radius-sheet": "29px",
2075
+ "--ty-radius-card": "20px",
2076
+ "--ty-radius-sheet": "24px",
2048
2077
  "--ty-radius-pill": "999px",
2049
2078
  "--ty-radius-agent": "7px",
2050
2079
  "--ty-focus-width": "2px",
2051
2080
  "--ty-glass-blur-sheet": "20px",
2052
2081
  "--ty-glass-blur-floating": "24px",
2053
- "--ty-glass-saturate": "1.15",
2082
+ "--ty-glass-saturate": "1.5",
2054
2083
  "--ty-font-serif": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif",
2055
2084
  "--ty-font-sans": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif",
2056
- "--ty-font-mono": "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"
2085
+ "--ty-font-mono": "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
2086
+ "--ty-font-size-display": "30px",
2087
+ "--ty-font-line-height-display": "36px",
2088
+ "--ty-font-size-h1": "24px",
2089
+ "--ty-font-line-height-h1": "32px",
2090
+ "--ty-font-size-h2": "18px",
2091
+ "--ty-font-line-height-h2": "28px",
2092
+ "--ty-font-size-h3": "16px",
2093
+ "--ty-font-line-height-h3": "24px",
2094
+ "--ty-font-size-label": "14px",
2095
+ "--ty-font-line-height-label": "20px",
2096
+ "--ty-font-tracking-h1": "-0.025em",
2097
+ "--ty-glass-edge": "rgb(255 255 255 / 0.2) rgb(255 255 255 / 0.06) rgb(255 255 255 / 0.04) rgb(255 255 255 / 0.12)",
2098
+ "--ty-glass-edge-width": "1.5px",
2099
+ "--ty-glass-highlight": "inset 0 1px 1px 0 rgb(255 255 255 / 0.15)",
2100
+ "--ty-glass-fill": "linear-gradient(140deg, rgb(30 41 59 / 0.7) 0%, rgb(15 23 42 / 0.6) 45%, rgb(20 30 50 / 0.55) 100%)",
2101
+ "--ty-glass-fill-raised": "linear-gradient(140deg, rgb(30 41 59 / 0.78) 0%, rgb(15 23 42 / 0.68) 45%, rgb(20 30 50 / 0.62) 100%)",
2102
+ "--ty-mark-gradient": "linear-gradient(135deg, #38bdf8 0%, #6366f1 40%, #a855f7 100%)",
2103
+ "--ty-wordmark-gradient": "linear-gradient(90deg, #38bdf8, #818cf8, #a855f7)"
2057
2104
  },
2058
2105
  "dark-high": {
2059
2106
  "--ty-bg": "#0c0f13",
@@ -2217,24 +2264,35 @@ export const values = {
2217
2264
  "--ty-info-800": "#174b6b",
2218
2265
  "--ty-info-900": "#103850",
2219
2266
  "--ty-info-950": "#072638",
2220
- "--ty-shadow-sheet": "0px 1px 2px 0px rgb(0 5 20 / 0.08), 0px 8px 24px -12px rgb(0 5 20 / 0.2)",
2221
- "--ty-shadow-raised": "0px 4px 12px -2px rgb(0 5 20 / 0.16)",
2222
- "--ty-shadow-floating": "0px 12px 24px -8px rgb(0 5 20 / 0.28)",
2223
- "--ty-shadow-modal": "0px 40px 100px -30px rgb(0 5 20 / 0.7)",
2224
- "--ty-shadow-sheet-inset": "inset 0px 1px 0px 0px rgb(255 255 255 / 0.06)",
2267
+ "--ty-shadow-sheet": "0px 12px 40px -12px rgb(0 0 0 / 0.5)",
2268
+ "--ty-shadow-raised": "0px 4px 12px -2px rgb(0 0 0 / 0.5), 0px 2px 4px -2px rgb(0 0 0 / 0.3)",
2269
+ "--ty-shadow-floating": "0px 12px 24px -8px rgb(0 0 0 / 0.6), 0px 4px 8px -4px rgb(0 0 0 / 0.4)",
2270
+ "--ty-shadow-modal": "0px 40px 100px -30px rgb(0 0 0 / 0.7), 0px 16px 40px -12px rgb(0 0 0 / 0.5)",
2271
+ "--ty-shadow-sheet-inset": "inset 0px 1px 1px 0px rgb(255 255 255 / 0.12)",
2225
2272
  "--ty-radius": "12px",
2226
2273
  "--ty-radius-control": "12px",
2227
- "--ty-radius-card": "19px",
2228
- "--ty-radius-sheet": "29px",
2274
+ "--ty-radius-card": "20px",
2275
+ "--ty-radius-sheet": "24px",
2229
2276
  "--ty-radius-pill": "999px",
2230
2277
  "--ty-radius-agent": "7px",
2231
2278
  "--ty-focus-width": "3px",
2232
2279
  "--ty-glass-blur-sheet": "20px",
2233
2280
  "--ty-glass-blur-floating": "24px",
2234
- "--ty-glass-saturate": "1.15",
2281
+ "--ty-glass-saturate": "1.5",
2235
2282
  "--ty-font-serif": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif",
2236
2283
  "--ty-font-sans": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif",
2237
- "--ty-font-mono": "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"
2284
+ "--ty-font-mono": "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
2285
+ "--ty-font-size-display": "30px",
2286
+ "--ty-font-line-height-display": "36px",
2287
+ "--ty-font-size-h1": "24px",
2288
+ "--ty-font-line-height-h1": "32px",
2289
+ "--ty-font-size-h2": "18px",
2290
+ "--ty-font-line-height-h2": "28px",
2291
+ "--ty-font-size-h3": "16px",
2292
+ "--ty-font-line-height-h3": "24px",
2293
+ "--ty-font-size-label": "14px",
2294
+ "--ty-font-line-height-label": "20px",
2295
+ "--ty-font-tracking-h1": "-0.025em"
2238
2296
  }
2239
2297
  },
2240
2298
  "astrlabe-controle": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datatechsolutions/tympan-tokens",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Tympan design tokens: W3C DTCG source (colour, space, radius, type, elevation and glass, motion, z) and an OKLCH theme generator, with the tympan, fakhir, astrlabe, neutral and high-contrast presets in light and dark (plus opt-in UI themes derived from the print book styles), built to --ty-* CSS custom properties, JSON and a TypeScript export.",
5
5
  "license": "FSL-1.1-ALv2",
6
6
  "author": "Natalia Mesquita",
package/src/presets.ts CHANGED
@@ -110,8 +110,10 @@ export const fakhirPreset: ThemeConfig = {
110
110
  /**
111
111
  * The Astrlabe workflow engine's look (`data-ty-theme="astrlabe"`): slate
112
112
  * neutrals, an indigo brand (indigo 500 as the accent family, one step darker
113
- * where text needs 4.5:1 on light grounds), translucent glass surfaces and the
114
- * rounder corners of that app (12 px controls, about 20 px cards). The call to
113
+ * where text needs 4.5:1 on light grounds), liquid-glass surfaces (gradient
114
+ * fills, specular edges, a strong saturation boost at night), the rounder
115
+ * corners of that app (12 px controls, 20 px cards, 24 px sheets), its
116
+ * compact type scale and the sky, indigo and violet mark. The call to
115
117
  * action is the indigo to purple gradient its primary buttons fill with, and
116
118
  * text (headings included) uses the platform's own system fonts. The state
117
119
  * contract holds on every ground: running is a cyan clearly off the indigo
@@ -142,22 +144,30 @@ export const astrlabePreset: ThemeConfig = {
142
144
  'on-brand': '#ffffff',
143
145
  bg: '#f8fafc',
144
146
  surface: 'rgb(255 255 255 / 0.72)',
145
- 'surface-raised': 'rgb(255 255 255 / 0.9)',
147
+ 'surface-raised': 'rgb(255 255 255 / 0.86)',
146
148
  'surface-solid': '#ffffff',
147
149
  'surface-raised-solid': '#ffffff',
148
- 'surface-sunken': '#f1f5f9',
149
- line: 'rgb(148 163 184 / 0.3)',
150
+ // The canvas plane: the app's pale lavender ground.
151
+ 'surface-sunken': '#f2f3fa',
152
+ // The liquid divider: slate 400 at about a quarter.
153
+ line: 'rgb(148 163 184 / 0.26)',
150
154
  'line-strong': 'rgb(100 116 139 / 0.45)',
151
155
  ink: '#0f172a',
152
- 'ink-2': '#334155',
153
- // One step darker than the old #546175 so AA holds on the glass grounds.
154
- 'ink-3': '#4d5a6b',
156
+ // Slate 600 for secondary text, as the app always had.
157
+ 'ink-2': '#475569',
158
+ // Slate 500 fails 4.5:1 on the sunken ground by a hair; this is the
159
+ // nearest slate that holds AA there.
160
+ 'ink-3': '#5b6779',
155
161
  success: '#15803d',
156
162
  // Cyan, deliberately off the indigo brand, for the running state.
157
163
  info: '#0e7490',
158
164
  warning: '#a16207',
159
165
  danger: '#be123c',
160
- neutral: '#4d5a6b',
166
+ neutral: '#5b6779',
167
+ backdrop: 'rgb(15 23 42 / 0.4)',
168
+ // The three soft colour fields behind the glass: violet above, sky below.
169
+ 'ambient-1': 'rgb(167 139 250 / 0.05)',
170
+ 'ambient-2': 'rgb(56 189 248 / 0.03)',
161
171
  },
162
172
  dark: {
163
173
  brand: '#818cf8',
@@ -165,28 +175,117 @@ export const astrlabePreset: ThemeConfig = {
165
175
  'brand-strong': '#a5b4fc',
166
176
  'brand-soft': 'rgb(99 102 241 / 0.2)',
167
177
  'on-brand': '#1e1b4b',
168
- bg: '#0b1220',
169
- surface: 'rgb(30 41 59 / 0.72)',
170
- 'surface-raised': 'rgb(30 41 59 / 0.92)',
178
+ // Slate 950, the app's night ground.
179
+ bg: '#020617',
180
+ surface: 'rgb(30 41 59 / 0.7)',
181
+ 'surface-raised': 'rgb(30 41 59 / 0.78)',
171
182
  'surface-solid': '#131c2f',
172
183
  'surface-raised-solid': '#1b2539',
173
184
  'surface-sunken': '#0b1222',
174
- line: 'rgb(148 163 184 / 0.22)',
185
+ line: 'rgb(148 163 184 / 0.24)',
175
186
  'line-strong': 'rgb(148 163 184 / 0.36)',
176
- ink: '#f8fafc',
187
+ ink: '#ffffff',
177
188
  'ink-2': '#cbd5e1',
178
- 'ink-3': '#a3b0c0',
189
+ 'ink-3': '#94a3b8',
179
190
  success: '#4ade80',
180
191
  info: '#22d3ee',
181
192
  warning: '#fbbf24',
182
193
  danger: '#fb7185',
183
- neutral: '#a3b0c0',
194
+ neutral: '#94a3b8',
195
+ backdrop: 'rgb(0 0 0 / 0.5)',
196
+ 'ambient-1': 'rgb(124 58 237 / 0.1)',
197
+ 'ambient-2': 'rgb(2 132 199 / 0.08)',
184
198
  },
185
199
  },
186
200
  ctaPins: {
187
201
  light: ['#4f46e5', '#7c3aed', '#9333ea'],
188
202
  dark: ['#4f46e5', '#7c3aed', '#9333ea'],
189
203
  },
204
+ // 12 px controls, 20 px cards and panels, 24 px dialogs and hero sheets.
205
+ radii: { card: 20, sheet: 24 },
206
+ // Glass: a light boost on light grounds (more would amplify the ambient
207
+ // tint into a grey-lavender wash), a strong one on dark grounds.
208
+ glassSaturate: { light: 1.15, dark: 1.5 },
209
+ // The liquid-glass elevation: a soft drop under every sheet, a specular
210
+ // inner highlight on its top edge, and the role-named elevation scale.
211
+ shadowPins: {
212
+ light: {
213
+ sheet: [
214
+ { x: 0, y: 4, blur: 16, spread: -2, color: 'rgb(0 0 0 / 0.1)' },
215
+ { x: 0, y: 12, blur: 40, spread: -8, color: 'rgb(0 0 0 / 0.06)' },
216
+ ],
217
+ 'sheet-inset': [
218
+ { x: 0, y: 1, blur: 2, spread: 0, color: 'rgb(255 255 255 / 0.7)', inset: true },
219
+ { x: 0, y: -1, blur: 2, spread: 0, color: 'rgb(0 0 0 / 0.04)', inset: true },
220
+ ],
221
+ raised: [
222
+ { x: 0, y: 4, blur: 12, spread: -2, color: 'rgb(15 23 42 / 0.08)' },
223
+ { x: 0, y: 2, blur: 4, spread: -2, color: 'rgb(15 23 42 / 0.04)' },
224
+ ],
225
+ floating: [
226
+ { x: 0, y: 12, blur: 24, spread: -8, color: 'rgb(15 23 42 / 0.12)' },
227
+ { x: 0, y: 4, blur: 8, spread: -4, color: 'rgb(15 23 42 / 0.06)' },
228
+ ],
229
+ modal: [
230
+ { x: 0, y: 40, blur: 100, spread: -30, color: 'rgb(0 0 0 / 0.45)' },
231
+ { x: 0, y: 16, blur: 40, spread: -12, color: 'rgb(0 0 0 / 0.18)' },
232
+ ],
233
+ },
234
+ dark: {
235
+ sheet: [{ x: 0, y: 12, blur: 40, spread: -12, color: 'rgb(0 0 0 / 0.5)' }],
236
+ 'sheet-inset': [{ x: 0, y: 1, blur: 1, spread: 0, color: 'rgb(255 255 255 / 0.12)', inset: true }],
237
+ raised: [
238
+ { x: 0, y: 4, blur: 12, spread: -2, color: 'rgb(0 0 0 / 0.5)' },
239
+ { x: 0, y: 2, blur: 4, spread: -2, color: 'rgb(0 0 0 / 0.3)' },
240
+ ],
241
+ floating: [
242
+ { x: 0, y: 12, blur: 24, spread: -8, color: 'rgb(0 0 0 / 0.6)' },
243
+ { x: 0, y: 4, blur: 8, spread: -4, color: 'rgb(0 0 0 / 0.4)' },
244
+ ],
245
+ modal: [
246
+ { x: 0, y: 40, blur: 100, spread: -30, color: 'rgb(0 0 0 / 0.7)' },
247
+ { x: 0, y: 16, blur: 40, spread: -12, color: 'rgb(0 0 0 / 0.5)' },
248
+ ],
249
+ },
250
+ },
251
+ modeStrings: {
252
+ light: {
253
+ // Lit from above: bright top and start edges, grey shaded ones (top end bottom start).
254
+ 'glass-edge': 'rgb(255 255 255 / 0.9) rgb(200 200 210 / 0.3) rgb(200 200 210 / 0.25) rgb(255 255 255 / 0.7)',
255
+ 'glass-edge-width': '1.5px',
256
+ // The inner highlight of raised and floating glass.
257
+ 'glass-highlight': 'inset 0 1px 2px 0 rgb(255 255 255 / 0.8), inset 0 -1px 2px 0 rgb(0 0 0 / 0.05)',
258
+ 'glass-fill': 'linear-gradient(135deg, rgb(255 255 255 / 0.8) 0%, rgb(220 225 240 / 0.62) 40%, rgb(240 245 255 / 0.68) 70%, rgb(255 255 255 / 0.8) 100%)',
259
+ 'glass-fill-raised': 'linear-gradient(135deg, rgb(255 255 255 / 0.86) 0%, rgb(215 220 238 / 0.7) 40%, rgb(235 240 255 / 0.76) 70%, rgb(255 255 255 / 0.86) 100%)',
260
+ 'mark-gradient': 'linear-gradient(135deg, #38bdf8 0%, #6366f1 40%, #a855f7 100%)',
261
+ 'wordmark-gradient': 'linear-gradient(90deg, #0369a1, #4338ca, #7e22ce)',
262
+ },
263
+ dark: {
264
+ 'glass-edge': 'rgb(255 255 255 / 0.2) rgb(255 255 255 / 0.06) rgb(255 255 255 / 0.04) rgb(255 255 255 / 0.12)',
265
+ 'glass-edge-width': '1.5px',
266
+ 'glass-highlight': 'inset 0 1px 1px 0 rgb(255 255 255 / 0.15)',
267
+ 'glass-fill': 'linear-gradient(140deg, rgb(30 41 59 / 0.7) 0%, rgb(15 23 42 / 0.6) 45%, rgb(20 30 50 / 0.55) 100%)',
268
+ 'glass-fill-raised': 'linear-gradient(140deg, rgb(30 41 59 / 0.78) 0%, rgb(15 23 42 / 0.68) 45%, rgb(20 30 50 / 0.62) 100%)',
269
+ 'mark-gradient': 'linear-gradient(135deg, #38bdf8 0%, #6366f1 40%, #a855f7 100%)',
270
+ 'wordmark-gradient': 'linear-gradient(90deg, #38bdf8, #818cf8, #a855f7)',
271
+ },
272
+ },
273
+ // The app's type scale: 30 px display, 24 px page titles, 18 px sections, 16 px
274
+ // sub-sections, 14 px labels, tight tracking on titles.
275
+ strings: {
276
+ // The display step is the 30 px wordmark of the sign-in screens.
277
+ 'font-size-display': '30px',
278
+ 'font-line-height-display': '36px',
279
+ 'font-size-h1': '24px',
280
+ 'font-line-height-h1': '32px',
281
+ 'font-size-h2': '18px',
282
+ 'font-line-height-h2': '28px',
283
+ 'font-size-h3': '16px',
284
+ 'font-line-height-h3': '24px',
285
+ 'font-size-label': '14px',
286
+ 'font-line-height-label': '20px',
287
+ 'font-tracking-h1': '-0.025em',
288
+ },
190
289
  // The platform's own UI fonts, headings included (no web font to fetch).
191
290
  fonts: {
192
291
  display: ['-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Noto Sans', 'Arial', 'sans-serif'],
package/src/stylesheet.ts CHANGED
@@ -120,6 +120,9 @@ export const FORCED_COLORS_VARS: VarList = [
120
120
  ['--ty-shadow-modal', 'none'],
121
121
  ['--ty-glass-blur-sheet', '0px'],
122
122
  ['--ty-glass-blur-floating', '0px'],
123
+ ['--ty-glass-edge', 'CanvasText'],
124
+ ['--ty-glass-fill', 'Canvas'],
125
+ ['--ty-glass-fill-raised', 'Canvas'],
123
126
  ]
124
127
 
125
128
  /** Reduced transparency (and no backdrop-filter support): opaque surfaces, no blur, no ambient. */
@@ -130,6 +133,8 @@ export const OPAQUE_VARS: VarList = [
130
133
  ['--ty-glass-blur-sheet', '0px !important'],
131
134
  ['--ty-glass-blur-floating', '0px !important'],
132
135
  ['--ty-glass-saturate', '1 !important'],
136
+ ['--ty-glass-fill', 'var(--ty-surface-solid) !important'],
137
+ ['--ty-glass-fill-raised', 'var(--ty-surface-raised-solid) !important'],
133
138
  ['--ty-ambient-1', 'transparent !important'],
134
139
  ['--ty-ambient-2', 'transparent !important'],
135
140
  ]
package/src/theme.ts CHANGED
@@ -70,6 +70,31 @@ export interface ThemeConfig {
70
70
  elevation?: Elevation
71
71
  /** Arbitrary string variables (e.g. for textures) */
72
72
  strings?: Record<string, string>
73
+ /**
74
+ * String variables per mode (`--ty-<name>`), for values that differ
75
+ * between light and dark: a glass edge, a fill gradient, a brand mark
76
+ * gradient. Like pins, they are exact design values: the generated
77
+ * high-contrast variant leaves them out, so components fall back.
78
+ */
79
+ modeStrings?: Partial<Record<Mode, Record<string, string>>>
80
+ /** Backdrop saturation of glass surfaces per mode (1.15 when omitted). */
81
+ glassSaturate?: Partial<Record<Mode, number>>
82
+ /** Exact shadow layers per mode, replacing the generated ones by name. */
83
+ shadowPins?: Partial<Record<Mode, Partial<Record<ShadowName, ShadowPin[]>>>>
84
+ /** Card and sheet radii in px, when they do not follow the control radius. */
85
+ radii?: Partial<Record<'card' | 'sheet', number>>
86
+ }
87
+
88
+ export type ShadowName = 'sheet' | 'raised' | 'floating' | 'modal' | 'sheet-inset'
89
+
90
+ /** One shadow layer of `shadowPins`, its colour as a CSS colour string. */
91
+ export interface ShadowPin {
92
+ x: number
93
+ y: number
94
+ blur: number
95
+ spread: number
96
+ color: string
97
+ inset?: boolean
73
98
  }
74
99
 
75
100
  export const RAMP_STEPS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950] as const
@@ -288,7 +313,7 @@ export interface ResolvedTheme {
288
313
  colors: Record<string, Rgba>
289
314
  ramps: Record<SeedName, Record<RampStep, Rgba>>
290
315
  cta: { angle: number; stops: Rgba[] }
291
- shadows: Record<'sheet' | 'raised' | 'floating' | 'modal' | 'sheet-inset', ShadowLayer[]>
316
+ shadows: Record<ShadowName, ShadowLayer[]>
292
317
  /** Pixel dimensions (radius, glass blur, focus width). */
293
318
  dimensions: Record<string, number>
294
319
  /** Font stacks keyed by token name (`serif`, `sans`, `mono`); empty when the theme keeps the base stacks. */
@@ -471,19 +496,24 @@ export function resolveTheme(config: ThemeConfig, mode: Mode, contrastOverride?:
471
496
  }
472
497
  }
473
498
 
499
+ const shadowPins = config.shadowPins?.[mode] ?? {}
500
+ for (const [name, layers] of Object.entries(shadowPins) as Array<[ShadowName, ShadowPin[]]>) {
501
+ shadows[name] = layers.map((l) => ({ ...l, color: parseColor(l.color) }))
502
+ }
503
+
474
504
  const R = config.radius
475
505
  const dimensions: Record<string, number> = {
476
506
  radius: R,
477
507
  'radius-control': R,
478
- 'radius-card': Math.round(R * 1.6),
479
- 'radius-sheet': Math.round(R * 2.4),
508
+ 'radius-card': config.radii?.card ?? Math.round(R * 1.6),
509
+ 'radius-sheet': config.radii?.sheet ?? Math.round(R * 2.4),
480
510
  'radius-pill': 999,
481
511
  'radius-agent': Math.max(2, Math.round(R * 0.6)),
482
512
  'focus-width': contrast === 'high' ? 3 : 2,
483
513
  'glass-blur-sheet': config.glass ? 20 : 0,
484
514
  'glass-blur-floating': config.glass ? 24 : 0,
485
515
  }
486
- const numbers: Record<string, number> = { 'glass-saturate': config.glass ? 1.15 : 1 }
516
+ const numbers: Record<string, number> = { 'glass-saturate': config.glass ? (config.glassSaturate?.[mode] ?? 1.15) : 1 }
487
517
 
488
518
  const fonts: ResolvedTheme['fonts'] = {}
489
519
  for (const role of ['display', 'body', 'mono'] as const) {
@@ -491,7 +521,7 @@ export function resolveTheme(config: ThemeConfig, mode: Mode, contrastOverride?:
491
521
  if (list?.length) fonts[FONT_ROLE_TOKENS[role]] = [...list]
492
522
  }
493
523
 
494
- return { name: config.name, mode, contrast, colors, ramps, cta: { angle: 135, stops: ctaStops }, shadows, dimensions, numbers, fonts, strings: config.strings ?? {}, report }
524
+ return { name: config.name, mode, contrast, colors, ramps, cta: { angle: 135, stops: ctaStops }, shadows, dimensions, numbers, fonts, strings: { ...config.strings, ...(contrast === config.contrast ? config.modeStrings?.[mode] : undefined) }, report }
495
525
  }
496
526
 
497
527
  // ---------------------------------------------------------------------------