@ash-qw/dsh-theme-prts 2.0.0 → 2.1.1
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/CHANGELOG.md +20 -0
- package/README.en.md +12 -2
- package/README.md +16 -4
- package/THIRD_PARTY_NOTICES.md +17 -0
- package/THIRD_PARTY_NOTICES.zh-CN.md +17 -0
- package/lib/client.js +1512 -65
- package/lib/index.js +1 -1
- package/package.json +3 -1
- package/src/client/assistant-glass-adapter.js +45 -2
- package/src/client/composer-glass-adapter.js +20 -1
- package/src/client/composer-glass-surface.js +85 -0
- package/src/client/custom-background.js +143 -0
- package/src/client/host-geometry-adapter.js +13 -0
- package/src/client/index.js +58 -31
- package/src/client/native-preferences.js +92 -0
- package/src/client/opacity-dial.js +137 -0
- package/src/client/operations-shell-v2.js +39 -10
- package/src/client/preferences.js +33 -3
- package/src/client/settings-page.js +7 -2
- package/src/client/theme-controller-v2.js +52 -13
- package/src/client/theme-settings-workbench.js +25 -8
- package/src/index.js +16 -2
- package/src/server/backgrounds.js +97 -0
- package/src/styles/cursor.css +2 -0
- package/src/styles/custom-background.css +331 -0
- package/src/styles/prts.css +112 -16
- package/src/styles/refinement.css +9 -0
- package/src/styles/theme-settings-workbench.css +3 -0
- package/src/vendor/react-bits/GlassSurface.css +168 -0
- package/src/vendor/react-bits/GlassSurface.jsx +818 -0
- package/src/vendor/react-bits/LICENSE.md +25 -0
package/src/styles/prts.css
CHANGED
|
@@ -1340,20 +1340,26 @@ html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is(
|
|
|
1340
1340
|
color: var(--prts-ink) !important;
|
|
1341
1341
|
}
|
|
1342
1342
|
|
|
1343
|
-
/*
|
|
1343
|
+
/* Baker code cards and tables. */
|
|
1344
1344
|
html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is(
|
|
1345
|
-
|
|
1346
|
-
|
|
1345
|
+
[data-prts-ai-surface], [data-message-role="assistant"], [data-message-role="user"],
|
|
1346
|
+
:is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering])) [class$="_bubble"]
|
|
1347
1347
|
) {
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1348
|
+
/* Clip preserves header stickiness. */
|
|
1349
|
+
& :has(>[data-code-block-content]){
|
|
1350
|
+
box-sizing:border-box;max-width:100%;border:1px solid var(--prts-line);border-left:3px solid var(--prts-cyan);border-radius:12px;overflow:clip;
|
|
1351
|
+
& [data-code-block-banner]{border-radius:11px 11px 0 0;background:color-mix(in srgb,var(--prts-ink) 7%,var(--prts-canvas));border-bottom:1px solid var(--prts-line)}
|
|
1352
|
+
&>[data-code-block-content] pre{box-sizing:border-box;width:100%;border:0!important;border-radius:0 0 11px 11px;margin:0!important}
|
|
1353
|
+
}
|
|
1354
|
+
& :is(th,td){padding-inline:14px!important}
|
|
1355
|
+
& :is(.md-table-wide,[class*="_tableScroll_"]){
|
|
1356
|
+
box-sizing:border-box;width:100%;max-width:100%;min-width:0;
|
|
1357
|
+
margin-inline:0!important;padding:0!important;overflow:auto;
|
|
1358
|
+
border:1px solid color-mix(in srgb,var(--prts-cyan) 24%,var(--prts-line));
|
|
1359
|
+
border-radius:10px;corner-shape:round;
|
|
1360
|
+
background:color-mix(in srgb,var(--prts-canvas) 88%,transparent);
|
|
1361
|
+
& > table{border:0;background:transparent;margin:0;width:100%}
|
|
1362
|
+
}
|
|
1357
1363
|
}
|
|
1358
1364
|
|
|
1359
1365
|
/* Group process avatars without changing reply alignment or final-answer avatars. */
|
|
@@ -1361,10 +1367,10 @@ html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-prts-avatar-
|
|
|
1361
1367
|
|
|
1362
1368
|
/* Baker quote surfaces; classic prose retains the host styling. */
|
|
1363
1369
|
html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is([data-chat-flow-kind],[data-message-role],[data-prts-ai-surface],[data-submission-echo]) blockquote {
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1370
|
+
border-radius:10px;corner-shape:round;padding:8px 14px;
|
|
1371
|
+
border-inline-start:3px solid var(--prts-cyan)!important;
|
|
1372
|
+
& > :first-child{margin-top:0}
|
|
1373
|
+
& > :last-child{margin-bottom:0}
|
|
1368
1374
|
}
|
|
1369
1375
|
|
|
1370
1376
|
html[data-dsh-prts] [aria-invalid="true"],
|
|
@@ -1569,6 +1575,7 @@ html[data-dsh-prts] [data-prts-glass-control="preset"] {
|
|
|
1569
1575
|
color: var(--prts-ink) !important;
|
|
1570
1576
|
}
|
|
1571
1577
|
|
|
1578
|
+
html[data-dsh-prts] [data-menu-material][class*="_7KE1Ra_menu"],
|
|
1572
1579
|
html[data-dsh-prts] [data-prts-glass-menu],
|
|
1573
1580
|
html[data-dsh-prts] [data-prts-floating-glass="menu"],
|
|
1574
1581
|
html[data-dsh-prts] [data-prts-floating-glass="listbox"],
|
|
@@ -1592,6 +1599,7 @@ html[data-dsh-prts] [data-prts-floating-glass="dialog"] {
|
|
|
1592
1599
|
-webkit-backdrop-filter: none;
|
|
1593
1600
|
}
|
|
1594
1601
|
|
|
1602
|
+
html[data-dsh-prts] [data-menu-material][class*="_7KE1Ra_menu"] :is([role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"]),
|
|
1595
1603
|
html[data-dsh-prts] [data-prts-floating-item] {
|
|
1596
1604
|
min-height: 38px;
|
|
1597
1605
|
border-radius: var(--prts-radius-control) !important;
|
|
@@ -1906,3 +1914,91 @@ html[data-dsh-prts][data-prts-conversation-style="deck-chat"] {
|
|
|
1906
1914
|
& :is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering])) [class$="_bubble"]::before,
|
|
1907
1915
|
& [data-message-role="user"]::before { left: auto; right: -9px; transform: scaleX(-1); }
|
|
1908
1916
|
}
|
|
1917
|
+
|
|
1918
|
+
/* The upstream component replaces only the composer's two background plates. */
|
|
1919
|
+
html[data-dsh-prts] :is([data-composer-card], [data-prts-composer-fallback])[data-prts-composer-glass-active]::before,
|
|
1920
|
+
html[data-dsh-prts] :is([data-composer-card], [data-prts-composer-fallback])[data-prts-composer-glass-active]::after {
|
|
1921
|
+
content: none;
|
|
1922
|
+
}
|
|
1923
|
+
html[data-dsh-prts] :is([data-composer-card], [data-prts-composer-fallback]) > [data-prts-composer-glass-surface] {
|
|
1924
|
+
position: absolute !important;
|
|
1925
|
+
inset: -16px;
|
|
1926
|
+
z-index: 0 !important;
|
|
1927
|
+
pointer-events: none;
|
|
1928
|
+
}
|
|
1929
|
+
|
|
1930
|
+
/* The host's sticky dock fades to opaque after 36px; let the glass see the chat. */
|
|
1931
|
+
html[data-dsh-prts] [data-composer-seat]:has([data-prts-composer-glass-active]) {
|
|
1932
|
+
background: transparent !important;
|
|
1933
|
+
}
|
|
1934
|
+
|
|
1935
|
+
|
|
1936
|
+
/* Optional popup material changes neither popup geometry nor its border/shadow. */
|
|
1937
|
+
html[data-dsh-prts][data-prts-composer-enhanced] {
|
|
1938
|
+
--prts-composer-menu-tint: rgba(25, 32, 38, .85);
|
|
1939
|
+
--prts-composer-menu-filter: blur(16px) saturate(1.15);
|
|
1940
|
+
}
|
|
1941
|
+
html[data-dsh-prts][data-prts-composer-enhanced][data-prts-scheme="light"] {
|
|
1942
|
+
--prts-composer-menu-tint: rgba(244, 249, 251, .85);
|
|
1943
|
+
}
|
|
1944
|
+
html[data-dsh-prts][data-prts-composer-enhanced] :is(
|
|
1945
|
+
[data-prts-glass-menu],
|
|
1946
|
+
[data-menu-material][class*="_7KE1Ra_menu"]
|
|
1947
|
+
) {
|
|
1948
|
+
background: var(--prts-composer-menu-tint) !important;
|
|
1949
|
+
backdrop-filter: var(--prts-composer-menu-filter) !important;
|
|
1950
|
+
-webkit-backdrop-filter: var(--prts-composer-menu-filter) !important;
|
|
1951
|
+
}
|
|
1952
|
+
/* Reuse the host material plate when present; do not stack two blur filters. */
|
|
1953
|
+
html[data-dsh-prts][data-prts-composer-enhanced] :is(
|
|
1954
|
+
[data-prts-glass-menu],
|
|
1955
|
+
[data-menu-material][class*="_7KE1Ra_menu"]
|
|
1956
|
+
):has(> [aria-hidden="true"][class*="_material_"]) {
|
|
1957
|
+
background: transparent !important;
|
|
1958
|
+
backdrop-filter: none !important;
|
|
1959
|
+
-webkit-backdrop-filter: none !important;
|
|
1960
|
+
}
|
|
1961
|
+
html[data-dsh-prts][data-prts-composer-enhanced] :is(
|
|
1962
|
+
[data-prts-glass-menu],
|
|
1963
|
+
[data-menu-material][class*="_7KE1Ra_menu"]
|
|
1964
|
+
) > [aria-hidden="true"][class*="_material_"] {
|
|
1965
|
+
background: var(--prts-composer-menu-tint) !important;
|
|
1966
|
+
backdrop-filter: var(--prts-composer-menu-filter) !important;
|
|
1967
|
+
-webkit-backdrop-filter: var(--prts-composer-menu-filter) !important;
|
|
1968
|
+
}
|
|
1969
|
+
html[data-dsh-prts][data-prts-composer-enhanced] [data-prts-glass-menu] [data-prts-glass-menu]:not([data-menu-material]) {
|
|
1970
|
+
background: transparent !important;
|
|
1971
|
+
backdrop-filter: none !important;
|
|
1972
|
+
-webkit-backdrop-filter: none !important;
|
|
1973
|
+
box-shadow: none !important;
|
|
1974
|
+
}
|
|
1975
|
+
|
|
1976
|
+
/* The live CSS outline owns geometry; asynchronously decoded artwork only refracts. */
|
|
1977
|
+
html[data-dsh-prts] [data-prts-composer-glass-active] > [data-prts-composer-glass-surface] > .glass-surface {
|
|
1978
|
+
mask: none !important;
|
|
1979
|
+
-webkit-mask: none !important;
|
|
1980
|
+
opacity: 1 !important;
|
|
1981
|
+
clip-path: polygon(19px 16px, calc(50% - 42px) 16px, calc(50% - 37px) 21px, calc(50% + 37px) 21px, calc(50% + 42px) 16px, calc(100% - 19px) 16px, calc(100% - 16px) 19px, calc(100% - 16px) calc(100% - 19px), calc(100% - 19px) calc(100% - 16px), 19px calc(100% - 16px), 16px calc(100% - 19px), 16px 19px);
|
|
1982
|
+
}
|
|
1983
|
+
html[data-dsh-prts] [data-prts-composer-glass-active] :is(.glass-surface__line, .glass-surface__glow) {
|
|
1984
|
+
display: none;
|
|
1985
|
+
}
|
|
1986
|
+
html[data-dsh-prts] :is([data-composer-card], [data-prts-composer-fallback])[data-prts-composer-glass-active]::before {
|
|
1987
|
+
content: "";
|
|
1988
|
+
position: absolute;
|
|
1989
|
+
inset: 0;
|
|
1990
|
+
z-index: 1;
|
|
1991
|
+
pointer-events: none;
|
|
1992
|
+
background: var(--prts-line-strong);
|
|
1993
|
+
clip-path: polygon(evenodd,
|
|
1994
|
+
3px 0, calc(50% - 42px) 0, calc(50% - 37px) 5px, calc(50% + 37px) 5px, calc(50% + 42px) 0, calc(100% - 3px) 0, 100% 3px, 100% calc(100% - 3px), calc(100% - 3px) 100%, 3px 100%, 0 calc(100% - 3px), 0 3px, 3px 0,
|
|
1995
|
+
3px 1px, 1px 3px, 1px calc(100% - 3px), 3px calc(100% - 1px), calc(100% - 3px) calc(100% - 1px), calc(100% - 1px) calc(100% - 3px), calc(100% - 1px) 3px, calc(100% - 3px) 1px, calc(50% + 42px) 1px, calc(50% + 37px) 6px, calc(50% - 37px) 6px, calc(50% - 42px) 1px, 3px 1px);
|
|
1996
|
+
}
|
|
1997
|
+
|
|
1998
|
+
/* A restrained tint/sheen keeps the material legible over a blank backdrop too. */
|
|
1999
|
+
html[data-dsh-prts] [data-prts-composer-glass-active] > [data-prts-composer-glass-surface] > .glass-surface {
|
|
2000
|
+
background: linear-gradient(135deg, rgba(255, 255, 255, .055), transparent 65%), rgba(31, 40, 47, .5);
|
|
2001
|
+
}
|
|
2002
|
+
html[data-dsh-prts][data-prts-scheme="light"] [data-prts-composer-glass-active] > [data-prts-composer-glass-surface] > .glass-surface {
|
|
2003
|
+
background: linear-gradient(135deg, rgba(255, 255, 255, .2), transparent 65%), rgba(244, 249, 251, .5);
|
|
2004
|
+
}
|
|
@@ -150,6 +150,15 @@ html[data-dsh-prts] [data-prts-session-time] {
|
|
|
150
150
|
transition: opacity 120ms ease, transform 220ms var(--prts-ease-spring);
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
+
/* DSH keeps its pin in the row's trailing slot; move that slot inside our face. */
|
|
154
|
+
html[data-dsh-prts] [data-prts-session-row] > :is([aria-label="Pinned"], [class*="_pinIndicator"]) {
|
|
155
|
+
margin-right: calc(var(--prts-row-end-reserve) + 6px);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
html[data-dsh-prts] [data-prts-session-row]:has(> :is([aria-label="Pinned"], [class*="_pinIndicator"])) [data-prts-session-time] {
|
|
159
|
+
margin-right: 8px;
|
|
160
|
+
}
|
|
161
|
+
|
|
153
162
|
html[data-dsh-prts] [data-prts-session-row]:hover [data-prts-session-time] {
|
|
154
163
|
opacity: 0;
|
|
155
164
|
}
|
|
@@ -872,6 +872,9 @@ html[data-dsh-prts] [data-prts-avatar-crop]{position:fixed;inset:0;margin:auto;b
|
|
|
872
872
|
|
|
873
873
|
html[data-dsh-prts]{
|
|
874
874
|
[data-prts-conversation-settings]{display:grid;gap:16px;padding:18px;border:1px solid var(--prts-line);background:var(--prts-panel)}
|
|
875
|
+
& [data-prts-theme-settings] :is([data-prts-baker-options], [data-prts-composer-glass-setting]) [data-prts-setting-row] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 5px; padding: 8px 0; }
|
|
876
|
+
& [data-prts-theme-settings] :is([data-prts-baker-options], [data-prts-composer-glass-setting]) [data-prts-setting-row] > span { display: grid; gap: 4px; min-width: 0; }
|
|
877
|
+
& [data-prts-theme-settings] :is([data-prts-baker-options], [data-prts-composer-glass-setting]) [data-prts-setting-row] > [data-prts-setting-switch] { justify-self: start; }
|
|
875
878
|
[data-prts-conversation-settings] header{display:grid;gap:5px}
|
|
876
879
|
[data-prts-conversation-settings] small{display:block;color:var(--prts-muted);font-size:12px;line-height:1.6}
|
|
877
880
|
[data-prts-conversation-cards]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
.glass-surface {
|
|
2
|
+
position: relative;
|
|
3
|
+
display: flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
transition: opacity 0.26s ease-out;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.glass-surface__filter {
|
|
11
|
+
width: 100%;
|
|
12
|
+
height: 100%;
|
|
13
|
+
pointer-events: none;
|
|
14
|
+
position: absolute;
|
|
15
|
+
inset: 0;
|
|
16
|
+
opacity: 0;
|
|
17
|
+
z-index: -1;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.glass-surface__content {
|
|
21
|
+
width: 100%;
|
|
22
|
+
height: 100%;
|
|
23
|
+
display: flex;
|
|
24
|
+
align-items: center;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
padding: 0.5rem;
|
|
27
|
+
border-radius: inherit;
|
|
28
|
+
position: relative;
|
|
29
|
+
z-index: 1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.glass-surface--svg {
|
|
33
|
+
background: light-dark(hsl(0 0% 100% / var(--glass-frost, 0)), hsl(0 0% 0% / var(--glass-frost, 0)));
|
|
34
|
+
backdrop-filter: var(--filter-id, url(#glass-filter)) saturate(var(--glass-saturation, 1));
|
|
35
|
+
box-shadow:
|
|
36
|
+
0 0 2px 1px light-dark(color-mix(in oklch, black, transparent 85%), color-mix(in oklch, white, transparent 65%))
|
|
37
|
+
inset,
|
|
38
|
+
0 0 10px 4px light-dark(color-mix(in oklch, black, transparent 90%), color-mix(in oklch, white, transparent 85%))
|
|
39
|
+
inset,
|
|
40
|
+
0px 4px 16px rgba(17, 17, 26, 0.05),
|
|
41
|
+
0px 8px 24px rgba(17, 17, 26, 0.05),
|
|
42
|
+
0px 16px 56px rgba(17, 17, 26, 0.05),
|
|
43
|
+
0px 4px 16px rgba(17, 17, 26, 0.05) inset,
|
|
44
|
+
0px 8px 24px rgba(17, 17, 26, 0.05) inset,
|
|
45
|
+
0px 16px 56px rgba(17, 17, 26, 0.05) inset;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.glass-surface--webgl {
|
|
49
|
+
box-shadow:
|
|
50
|
+
0px 4px 16px rgba(17, 17, 26, 0.05),
|
|
51
|
+
0px 8px 24px rgba(17, 17, 26, 0.05),
|
|
52
|
+
0px 16px 56px rgba(17, 17, 26, 0.05);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.glass-surface__canvas,
|
|
56
|
+
.glass-surface__frame {
|
|
57
|
+
position: absolute;
|
|
58
|
+
inset: 0;
|
|
59
|
+
width: 100%;
|
|
60
|
+
height: 100%;
|
|
61
|
+
border-radius: inherit;
|
|
62
|
+
pointer-events: none;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.glass-surface__frame {
|
|
66
|
+
background: light-dark(hsl(0 0% 100% / var(--glass-frost, 0)), hsl(0 0% 0% / var(--glass-frost, 0)));
|
|
67
|
+
box-shadow:
|
|
68
|
+
0 0 2px 1px light-dark(color-mix(in oklch, black, transparent 85%), color-mix(in oklch, white, transparent 65%))
|
|
69
|
+
inset,
|
|
70
|
+
0 0 10px 4px light-dark(color-mix(in oklch, black, transparent 90%), color-mix(in oklch, white, transparent 85%))
|
|
71
|
+
inset,
|
|
72
|
+
0px 4px 16px rgba(17, 17, 26, 0.05) inset,
|
|
73
|
+
0px 8px 24px rgba(17, 17, 26, 0.05) inset,
|
|
74
|
+
0px 16px 56px rgba(17, 17, 26, 0.05) inset;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.glass-surface--fallback {
|
|
78
|
+
background: light-dark(
|
|
79
|
+
hsl(0 0% 100% / calc(0.12 + var(--glass-frost, 0) * 0.5)),
|
|
80
|
+
hsl(0 0% 100% / calc(0.04 + var(--glass-frost, 0) * 0.3))
|
|
81
|
+
);
|
|
82
|
+
-webkit-backdrop-filter: blur(12px) saturate(calc(var(--glass-saturation, 1) * 1.4)) brightness(1.04);
|
|
83
|
+
backdrop-filter: blur(12px) saturate(calc(var(--glass-saturation, 1) * 1.4)) brightness(1.04);
|
|
84
|
+
box-shadow:
|
|
85
|
+
inset 0 1px 0 0 light-dark(hsl(0 0% 100% / 0.85), hsl(0 0% 100% / 0.3)),
|
|
86
|
+
inset 0 -1px 0 0 light-dark(hsl(0 0% 100% / 0.35), hsl(0 0% 100% / 0.08)),
|
|
87
|
+
0 0 2px 1px light-dark(color-mix(in oklch, black, transparent 88%), color-mix(in oklch, white, transparent 72%))
|
|
88
|
+
inset,
|
|
89
|
+
0 0 12px 3px light-dark(color-mix(in oklch, white, transparent 72%), color-mix(in oklch, white, transparent 90%))
|
|
90
|
+
inset,
|
|
91
|
+
0px 4px 16px rgba(17, 17, 26, 0.06),
|
|
92
|
+
0px 8px 24px rgba(17, 17, 26, 0.06),
|
|
93
|
+
0px 16px 56px rgba(17, 17, 26, 0.06);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.glass-surface__sheen,
|
|
97
|
+
.glass-surface__rim {
|
|
98
|
+
position: absolute;
|
|
99
|
+
inset: 0;
|
|
100
|
+
border-radius: inherit;
|
|
101
|
+
pointer-events: none;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.glass-surface__sheen {
|
|
105
|
+
background: linear-gradient(
|
|
106
|
+
135deg,
|
|
107
|
+
light-dark(hsl(0 0% 100% / 0.42), hsl(0 0% 100% / 0.14)) 0%,
|
|
108
|
+
transparent 42%,
|
|
109
|
+
transparent 64%,
|
|
110
|
+
light-dark(hsl(0 0% 100% / 0.18), hsl(0 0% 100% / 0.05)) 100%
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.glass-surface__rim {
|
|
115
|
+
padding: 3px;
|
|
116
|
+
background: linear-gradient(
|
|
117
|
+
150deg,
|
|
118
|
+
light-dark(hsl(0 0% 100% / 0.7), hsl(0 0% 100% / 0.34)),
|
|
119
|
+
light-dark(hsl(0 0% 100% / 0.1), hsl(0 0% 100% / 0.03)) 45%,
|
|
120
|
+
light-dark(hsl(0 0% 100% / 0.08), hsl(0 0% 100% / 0.02)) 60%,
|
|
121
|
+
light-dark(hsl(0 0% 100% / 0.42), hsl(0 0% 100% / 0.18))
|
|
122
|
+
);
|
|
123
|
+
-webkit-mask:
|
|
124
|
+
linear-gradient(#000 0 0) content-box,
|
|
125
|
+
linear-gradient(#000 0 0);
|
|
126
|
+
-webkit-mask-composite: xor;
|
|
127
|
+
mask:
|
|
128
|
+
linear-gradient(#000 0 0) content-box exclude,
|
|
129
|
+
linear-gradient(#000 0 0);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.glass-surface__line,
|
|
133
|
+
.glass-surface__glow {
|
|
134
|
+
position: absolute;
|
|
135
|
+
inset: 0;
|
|
136
|
+
pointer-events: none;
|
|
137
|
+
-webkit-mask-size: 100% 100%;
|
|
138
|
+
mask-size: 100% 100%;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.glass-surface--svg .glass-surface__line,
|
|
142
|
+
.glass-surface--webgl .glass-surface__line {
|
|
143
|
+
background: light-dark(color-mix(in oklch, black, transparent 85%), color-mix(in oklch, white, transparent 65%));
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.glass-surface--svg .glass-surface__glow,
|
|
147
|
+
.glass-surface--webgl .glass-surface__glow {
|
|
148
|
+
background: light-dark(color-mix(in oklch, black, transparent 90%), color-mix(in oklch, white, transparent 85%));
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.glass-surface--fallback .glass-surface__line {
|
|
152
|
+
background: light-dark(color-mix(in oklch, black, transparent 88%), color-mix(in oklch, white, transparent 72%));
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.glass-surface--fallback .glass-surface__glow {
|
|
156
|
+
background: light-dark(color-mix(in oklch, white, transparent 72%), color-mix(in oklch, white, transparent 90%));
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
|
|
160
|
+
.glass-surface--fallback {
|
|
161
|
+
background: light-dark(hsl(0 0% 100% / 0.72), hsl(0 0% 12% / 0.72));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.glass-surface:focus-visible {
|
|
166
|
+
outline: 2px solid light-dark(#007aff, #0a84ff);
|
|
167
|
+
outline-offset: 2px;
|
|
168
|
+
}
|