@materialwebunofficial/antigravity-themes 1.0.5 → 1.0.13
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/README.md +173 -34
- package/bin/cli.mjs +91 -47
- package/lib/asar.mjs +163 -0
- package/lib/bundle.mjs +70 -17
- package/lib/injector.mjs +39 -6
- package/lib/keeper.mjs +73 -0
- package/lib/native.mjs +165 -0
- package/lib/paths.mjs +3 -2
- package/lib/plugin.mjs +98 -0
- package/package.json +1 -1
- package/src/code-tools.js +1 -1
- package/src/context-card.js +1 -1
- package/src/frame-host.js +282 -0
- package/src/loading-indicator.js +1 -1
- package/src/progress-indicators.js +49 -1
- package/src/theme-host.js +97 -66
- package/src/turn-tokens.js +1 -1
- package/themes/frames/matte.css +211 -0
- package/themes/frames/md3e.css +1410 -0
- package/themes/frames/nordic.css +252 -0
- package/themes/frames/paper.css +298 -0
- package/themes/index.json +18 -12
- package/themes/matte-tokens.css +98 -0
- package/themes/matte.css +465 -135
- package/themes/md3e.css +1124 -164
- package/themes/nordic-tokens.css +60 -0
- package/themes/nordic.css +457 -67
- package/themes/paper-tokens.css +54 -0
- package/themes/paper.css +508 -68
package/themes/md3e.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
|
-
AGY "Material 3 Expressive" (v3.
|
|
2
|
+
AGY "Material 3 Expressive" (v3.2) — Antigravity Desktop 2.26–2.31
|
|
3
3
|
|
|
4
4
|
Built on the real system: every value below reads a --md-sys-* token from
|
|
5
5
|
@materialwebunofficial/md3e-web (themes/md3e-tokens.css, generated by
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
--glass-border: transparent;
|
|
165
165
|
--glass-highlight: transparent;
|
|
166
166
|
--glass-shadow: none;
|
|
167
|
-
--shell: var(--md-sys-color-surface);
|
|
167
|
+
--shell: var(--md-sys-color-surface-container);
|
|
168
168
|
--onyx-frame: transparent;
|
|
169
169
|
--onyx-well: var(--md-sys-color-surface-container-highest);
|
|
170
170
|
--onyx-key: var(--md-sys-color-secondary-container);
|
|
@@ -209,12 +209,16 @@
|
|
|
209
209
|
|
|
210
210
|
/* P2 — Menus, Popovers & Overlays */
|
|
211
211
|
:root[data-agy-theme="md3e"] body[data-agy-theme][data-newux-theme]:is(.dark, :not(.dark)) .agy-overlay[role="menu"] {
|
|
212
|
-
background: var(--md-sys-color-surface-container-low);
|
|
213
|
-
border-radius: 16px;
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
212
|
+
background: var(--md-sys-color-surface-container-low) !important;
|
|
213
|
+
border-radius: 16px !important;
|
|
214
|
+
border: 0 !important;
|
|
215
|
+
box-shadow: 0 4px 16px -2px rgb(0 0 0 / 0.5) !important;
|
|
216
|
+
backdrop-filter: none !important;
|
|
217
|
+
padding: 4px !important;
|
|
218
|
+
max-height: min(75vh, calc(100vh - 60px)) !important;
|
|
219
|
+
overflow-y: auto !important;
|
|
220
|
+
overflow-x: hidden !important;
|
|
221
|
+
scrollbar-width: thin;
|
|
218
222
|
}
|
|
219
223
|
:root[data-agy-theme="md3e"] body[data-agy-theme][data-newux-theme]:is(.dark, :not(.dark)) .agy-overlay .agy-overlay-item {
|
|
220
224
|
border-radius: 0;
|
|
@@ -245,33 +249,79 @@
|
|
|
245
249
|
}
|
|
246
250
|
|
|
247
251
|
|
|
248
|
-
/* 10 — Layout:
|
|
249
|
-
:
|
|
250
|
-
|
|
251
|
-
|
|
252
|
+
/* 10 — Layout: panes on the window ----------------------------------------- */
|
|
253
|
+
/* The window is surface-container: the title bar, the drawer, the header
|
|
254
|
+
rows. The conversation and the side panel are M3 panes on it: surface, with
|
|
255
|
+
extra-large corners, apart by a spacer. Nothing is outlined: tone and shape
|
|
256
|
+
tell a pane from the window, as in M3's canonical layouts.
|
|
257
|
+
|
|
258
|
+
Since the November update the app lays the panes out itself (.agy-sheet,
|
|
259
|
+
with --card-gap, --card-radius, --card-edge and --shell-canvas), so the
|
|
260
|
+
theme only sets those variables: the app's margins, its sidebar-closed gap
|
|
261
|
+
and its split panes keep working. --card-edge is the 0.5px hairline the app
|
|
262
|
+
draws around every pane; M3 has no such stroke. */
|
|
263
|
+
:root[data-agy-theme="md3e"] .agy-inset-shell {
|
|
264
|
+
--shell-canvas: var(--md-sys-color-surface-container);
|
|
265
|
+
--card-gap: 12px;
|
|
266
|
+
--card-radius: var(--md-sys-shape-corner-extra-large);
|
|
267
|
+
--card-edge: transparent;
|
|
268
|
+
--sash-line: var(--md-sys-color-outline);
|
|
269
|
+
--sash-glow: transparent;
|
|
270
|
+
}
|
|
271
|
+
:root[data-agy-theme="md3e"] [data-testid="title-menu-bar"] {
|
|
272
|
+
border-bottom: 0;
|
|
273
|
+
box-shadow: none;
|
|
274
|
+
}
|
|
275
|
+
/* Inside a pane, --background (and Tailwind's resolved --color-background)
|
|
276
|
+
is the pane: the pinned user-message band, the fade above the composer and
|
|
277
|
+
sticky headers then match it */
|
|
278
|
+
:root[data-agy-theme="md3e"] .agy-sheet [data-main-content-body],
|
|
279
|
+
:root[data-agy-theme="md3e"] .agy-inset-shell [data-side-panel-body],
|
|
280
|
+
:root[data-agy-theme="md3e"] [data-testid="sidecar-iframe-slot"] { /* a sidecar's frame is mounted over its pane, not in it */
|
|
252
281
|
--background: var(--md-sys-color-surface);
|
|
253
282
|
--color-background: var(--md-sys-color-surface);
|
|
254
|
-
background: var(--md-sys-color-surface);
|
|
255
|
-
border-radius: var(--md-sys-shape-corner-extra-large);
|
|
256
|
-
overflow: hidden;
|
|
257
|
-
}
|
|
258
|
-
:root[data-agy-theme="md3e"] .group\/pane,
|
|
259
|
-
:root[data-agy-theme="md3e"] .agy-sheet:not(:has(.group\/pane)) .browser-hole-opaque {
|
|
260
|
-
width: auto;
|
|
261
|
-
height: calc(100% - 12px);
|
|
262
|
-
margin: 0 12px 12px 8px;
|
|
263
283
|
}
|
|
264
284
|
:root[data-agy-theme="md3e"] .agy-sheet {
|
|
265
285
|
background-image: none !important;
|
|
266
286
|
}
|
|
267
|
-
:root[data-agy-theme="md3e"] [data-active-tab-id] + .flex-grow {
|
|
268
|
-
margin: 0 12px 12px 0;
|
|
269
|
-
}
|
|
270
287
|
:root[data-agy-theme="md3e"] [data-active-tab-id] {
|
|
271
288
|
border-bottom-color: transparent;
|
|
272
289
|
}
|
|
273
|
-
|
|
274
|
-
|
|
290
|
+
|
|
291
|
+
/* A docked side panel is a second pane, not half of one card: both keep
|
|
292
|
+
their corners and share the spacer (the app joins them along a hairline) */
|
|
293
|
+
:root[data-agy-theme="md3e"] .agy-sheet[data-side-panel-docked] [data-main-content-body] {
|
|
294
|
+
--card-gap-right: calc(var(--card-gap) / 2);
|
|
295
|
+
border-radius: var(--card-radius);
|
|
296
|
+
}
|
|
297
|
+
:root[data-agy-theme="md3e"] .agy-sheet[data-side-panel-docked] [data-side-panel-body] {
|
|
298
|
+
--card-gap-left: calc(var(--card-gap) / 2);
|
|
299
|
+
border-radius: var(--card-radius);
|
|
300
|
+
}
|
|
301
|
+
/* The spacer's drag handle (M3 pane drag handle: a 4x48dp pill in outline,
|
|
302
|
+
on-surface and larger while dragged), centered on the panes. The app shows
|
|
303
|
+
a full-height line on hover instead. */
|
|
304
|
+
:root[data-agy-theme="md3e"] .agy-sheet[data-sheet-inset] > [data-split-root] > [data-split-sash] [data-sash-handle]::before {
|
|
305
|
+
top: calc(50% + var(--sash-line-top) / 2 - 24px);
|
|
306
|
+
bottom: auto;
|
|
307
|
+
left: calc(50% - 2px);
|
|
308
|
+
width: 4px;
|
|
309
|
+
height: 48px;
|
|
310
|
+
background-color: var(--md-sys-color-outline);
|
|
311
|
+
box-shadow: none;
|
|
312
|
+
clip-path: none;
|
|
313
|
+
opacity: 1;
|
|
314
|
+
transform: none;
|
|
315
|
+
transition: background-color var(--md-state), scale var(--md-fast);
|
|
316
|
+
}
|
|
317
|
+
:root[data-agy-theme="md3e"] .agy-sheet[data-sheet-inset] > [data-split-root] > [data-split-sash] [data-sash-handle]:hover::before {
|
|
318
|
+
background-color: var(--md-sys-color-on-surface-variant);
|
|
319
|
+
transform: none;
|
|
320
|
+
}
|
|
321
|
+
:root[data-agy-theme="md3e"] .agy-sheet[data-sheet-inset] > [data-split-root] > [data-split-sash] [data-sash-handle][data-dragging]::before {
|
|
322
|
+
background-color: var(--md-sys-color-on-surface);
|
|
323
|
+
scale: 1.5 1.1;
|
|
324
|
+
transform: none;
|
|
275
325
|
}
|
|
276
326
|
|
|
277
327
|
/* Inactive webview occlusion guard: prevent GPU compositor bleeding */
|
|
@@ -301,7 +351,10 @@ webview[style*="opacity: 0.005"] {
|
|
|
301
351
|
reads and runs these menus: hidden, not removed. data-agy-appmenu is set
|
|
302
352
|
only once that button exists; until then the rules below style the bar. */
|
|
303
353
|
:root[data-agy-theme="md3e"][data-agy-appmenu] [data-testid="title-menu-bar"] > * {
|
|
304
|
-
display: none;
|
|
354
|
+
display: none !important;
|
|
355
|
+
}
|
|
356
|
+
:root[data-agy-theme="md3e"] [data-testid="title-menu-bar"] > * {
|
|
357
|
+
display: flex;
|
|
305
358
|
}
|
|
306
359
|
:root[data-agy-theme="md3e"] [data-testid="title-menu-bar-item"] {
|
|
307
360
|
padding: 0 12px;
|
|
@@ -472,8 +525,28 @@ webview[style*="opacity: 0.005"] {
|
|
|
472
525
|
--agy-icon-keep: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 -960 960 960%27%3E%3Cpath d=%27M624 -744V-480L709 -395Q714 -390 717 -384Q720 -377 720 -369V-348Q720 -333 710 -322Q699 -312 684 -312H516V-90Q516 -75 506 -64Q495 -54 480 -54Q465 -54 454 -64Q444 -75 444 -90V-312H276Q261 -312 250 -322Q240 -333 240 -348V-369Q240 -377 243 -384Q246 -390 251 -395L336 -480V-744H324Q309 -744 298 -754Q288 -765 288 -780Q288 -795 298 -806Q309 -816 324 -816H636Q651 -816 662 -806Q672 -795 672 -780Q672 -765 662 -754Q651 -744 636 -744ZM342 -384H618L552 -450V-744H408V-450ZM480 -384Z%27/%3E%3C/svg%3E");
|
|
473
526
|
--agy-icon-keep-fill: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 -960 960 960%27%3E%3Cpath d=%27M624 -744V-480L709 -395Q714 -390 717 -384Q720 -377 720 -369V-348Q720 -333 710 -322Q699 -312 684 -312H516V-90Q516 -75 506 -64Q495 -54 480 -54Q465 -54 454 -64Q444 -75 444 -90V-312H276Q261 -312 250 -322Q240 -333 240 -348V-369Q240 -377 243 -384Q246 -390 251 -395L336 -480V-744H324Q309 -744 298 -754Q288 -765 288 -780Q288 -795 298 -806Q309 -816 324 -816H636Q651 -816 662 -806Q672 -795 672 -780Q672 -765 662 -754Q651 -744 636 -744ZM342 -384H618L552 -450V-744H408V-450ZM342 -384 408 -450V-744H552V-450L618 -384Z%27/%3E%3C/svg%3E");
|
|
474
527
|
}
|
|
475
|
-
:root[data-agy-theme="md3e"]
|
|
476
|
-
|
|
528
|
+
:root[data-agy-theme="md3e"] [role="navigation"][aria-label="Sidebar"] {
|
|
529
|
+
container-type: inline-size;
|
|
530
|
+
overflow: hidden !important;
|
|
531
|
+
}
|
|
532
|
+
:root[data-agy-theme="md3e"] [data-testid="conversation-list-sidebar"] {
|
|
533
|
+
overflow-x: hidden !important;
|
|
534
|
+
}
|
|
535
|
+
:root[data-agy-theme="md3e"] [data-testid="conversation-row-sidebar"] {
|
|
536
|
+
overflow: hidden !important;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
@container (max-width: 180px) {
|
|
540
|
+
:root[data-agy-theme="md3e"] [data-testid="conversation-row-sidebar"] {
|
|
541
|
+
display: none !important;
|
|
542
|
+
}
|
|
543
|
+
:root[data-agy-theme="md3e"] [data-testid="conversation-list-sidebar"] {
|
|
544
|
+
display: none !important;
|
|
545
|
+
}
|
|
546
|
+
:root[data-agy-theme="md3e"] [role="navigation"][aria-label="Sidebar"] .px-2,
|
|
547
|
+
:root[data-agy-theme="md3e"] [role="navigation"][aria-label="Sidebar"] .flex.flex-col.gap-px {
|
|
548
|
+
display: none !important;
|
|
549
|
+
}
|
|
477
550
|
}
|
|
478
551
|
|
|
479
552
|
:root[data-agy-theme="md3e"] [role="navigation"][aria-label="Sidebar"] > .px-2,
|
|
@@ -481,8 +554,18 @@ webview[style*="opacity: 0.005"] {
|
|
|
481
554
|
:root[data-agy-theme="md3e"] [data-testid="conversation-list-sidebar"] {
|
|
482
555
|
padding-inline: 12px;
|
|
483
556
|
}
|
|
557
|
+
/* the drawer's dividers: under the top destinations and above Settings, as
|
|
558
|
+
between the groups; 8px of air each side. The app shows them only while
|
|
559
|
+
the list is scrolled (inline). */
|
|
484
560
|
:root[data-agy-theme="md3e"] [role="navigation"][aria-label="Sidebar"] > .h-px {
|
|
485
561
|
margin-inline: 28px;
|
|
562
|
+
background-color: var(--md-sys-color-outline-variant) !important;
|
|
563
|
+
}
|
|
564
|
+
:root[data-agy-theme="md3e"] [role="navigation"][aria-label="Sidebar"] > .h-px.mt-3 {
|
|
565
|
+
margin-top: 8px;
|
|
566
|
+
}
|
|
567
|
+
:root[data-agy-theme="md3e"] [role="navigation"][aria-label="Sidebar"] > .py-3 {
|
|
568
|
+
padding-block: 8px;
|
|
486
569
|
}
|
|
487
570
|
|
|
488
571
|
/* Group headlines (the drawer's .headline): title-small, on-surface-variant;
|
|
@@ -602,7 +685,6 @@ webview[style*="opacity: 0.005"] {
|
|
|
602
685
|
letter-spacing: var(--md-sys-typescale-label-medium-tracking);
|
|
603
686
|
font-variant-numeric: tabular-nums;
|
|
604
687
|
color: var(--md-sys-color-on-surface-variant);
|
|
605
|
-
opacity: 1;
|
|
606
688
|
}
|
|
607
689
|
/* a project's conversations: the row (and its pill) starts 32px in, so its
|
|
608
690
|
icon sits under the folder's label; a 1px guide runs down from the folder
|
|
@@ -665,12 +747,19 @@ webview[style*="opacity: 0.005"] {
|
|
|
665
747
|
text-decoration: underline;
|
|
666
748
|
text-underline-offset: 3px;
|
|
667
749
|
}
|
|
668
|
-
:
|
|
750
|
+
/* Fenced code: a filled card (surface-container, large corners), with no
|
|
751
|
+
outline and no rule under its header. .agy-code is the block code-tools.js
|
|
752
|
+
marks (the one holding Copy code); since 2.31 it is no longer a pre > div */
|
|
753
|
+
:root[data-agy-theme="md3e"] [role="article"] pre > div,
|
|
754
|
+
:root[data-agy-theme="md3e"] .agy-code {
|
|
669
755
|
border: 0;
|
|
670
756
|
border-radius: var(--md-sys-shape-corner-large);
|
|
671
757
|
background: var(--md-sys-color-surface-container);
|
|
672
758
|
--agy-lineno: var(--md-sys-color-outline); /* code-tools.js line numbers */
|
|
673
759
|
}
|
|
760
|
+
:root[data-agy-theme="md3e"] .agy-code > :first-child {
|
|
761
|
+
border-bottom-color: transparent;
|
|
762
|
+
}
|
|
674
763
|
/* Its header buttons (Copy code, Insert in terminal, At mention, and
|
|
675
764
|
code-tools.js's Wrap lines / Line numbers): 28px M3 standard icon buttons
|
|
676
765
|
with a state layer, the row's 28px height kept; a toggle that is on is
|
|
@@ -718,11 +807,17 @@ webview[style*="opacity: 0.005"] {
|
|
|
718
807
|
background: transparent;
|
|
719
808
|
}
|
|
720
809
|
:root[data-agy-theme="md3e"] [data-testid="user-message-bubble"] {
|
|
810
|
+
--muted-foreground: color-mix(in srgb, var(--md-sys-color-on-primary-container) 75%, transparent) !important;
|
|
811
|
+
--secondary-foreground: color-mix(in srgb, var(--md-sys-color-on-primary-container) 85%, transparent) !important;
|
|
812
|
+
--foreground: var(--md-sys-color-on-primary-container) !important;
|
|
721
813
|
padding: 12px 18px;
|
|
722
814
|
border-radius: 24px 24px 6px 24px;
|
|
723
815
|
background: var(--md-sys-color-primary-container);
|
|
724
816
|
color: var(--md-sys-color-on-primary-container);
|
|
725
817
|
}
|
|
818
|
+
:root[data-agy-theme="md3e"] [data-testid="user-message-bubble"] :is(.text-muted-foreground, .text-secondary-foreground, [class*="muted"], blockquote, q, em) {
|
|
819
|
+
color: color-mix(in srgb, var(--md-sys-color-on-primary-container) 75%, transparent) !important;
|
|
820
|
+
}
|
|
726
821
|
:root[data-agy-theme="md3e"] [data-testid="user-message-bubble"] .whitespace-pre-wrap {
|
|
727
822
|
font: var(--md-sys-typescale-body-large);
|
|
728
823
|
letter-spacing: var(--md-sys-typescale-body-large-tracking);
|
|
@@ -1046,7 +1141,7 @@ webview[style*="opacity: 0.005"] {
|
|
|
1046
1141
|
}
|
|
1047
1142
|
:root[data-agy-theme="md3e"] [data-testid="send-button"] {
|
|
1048
1143
|
padding: 10px;
|
|
1049
|
-
border-radius:
|
|
1144
|
+
border-radius: 50%;
|
|
1050
1145
|
}
|
|
1051
1146
|
:root[data-agy-theme="md3e"] [data-tooltip-id="input-send-button-cancel-tooltip"] {
|
|
1052
1147
|
border-radius: var(--md-sys-shape-corner-medium);
|
|
@@ -1058,7 +1153,7 @@ webview[style*="opacity: 0.005"] {
|
|
|
1058
1153
|
scale: 0.8;
|
|
1059
1154
|
}
|
|
1060
1155
|
:root[data-agy-theme="md3e"] [data-tooltip-id="input-send-button-cancel-tooltip"] {
|
|
1061
|
-
border-radius:
|
|
1156
|
+
border-radius: 50%;
|
|
1062
1157
|
scale: 0.8;
|
|
1063
1158
|
}
|
|
1064
1159
|
}
|
|
@@ -1085,20 +1180,23 @@ webview[style*="opacity: 0.005"] {
|
|
|
1085
1180
|
- group headers are label-large, 32px */
|
|
1086
1181
|
:root[data-agy-theme="md3e"] [role="menu"] {
|
|
1087
1182
|
--color-card: var(--md-sys-color-surface-container-low); /* the app's in-menu fades */
|
|
1088
|
-
padding:
|
|
1183
|
+
padding: 4px !important;
|
|
1089
1184
|
gap: 0;
|
|
1090
|
-
border: 0;
|
|
1091
|
-
border-radius: 16px;
|
|
1092
|
-
background: var(--md-sys-color-surface-container-low);
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1185
|
+
border: 0 !important;
|
|
1186
|
+
border-radius: 16px !important;
|
|
1187
|
+
background: var(--md-sys-color-surface-container-low) !important;
|
|
1188
|
+
max-height: min(75vh, calc(100vh - 60px)) !important;
|
|
1189
|
+
overflow-y: auto !important;
|
|
1190
|
+
overflow-x: hidden !important;
|
|
1191
|
+
scrollbar-width: thin;
|
|
1192
|
+
box-shadow: 0 4px 16px -2px rgb(0 0 0 / 0.5) !important;
|
|
1193
|
+
backdrop-filter: none !important;
|
|
1096
1194
|
filter: none;
|
|
1097
1195
|
color: var(--md-sys-color-on-surface);
|
|
1098
1196
|
font-family: var(--md-sys-typescale-font-family);
|
|
1099
1197
|
}
|
|
1100
1198
|
/* rows: the children of the popup, of a menu group, and of the model panel */
|
|
1101
|
-
:root[data-agy-theme="md3e"] :is([role="menu"], [role="menu"] > [role="group"], [data-testid="model-selector-panel"]) > :not([role="separator"], [role="group"], [data-testid="model-selector-panel"]) {
|
|
1199
|
+
:root[data-agy-theme="md3e"] :is([role="menu"], [role="menu"] > [role="group"], [data-testid="model-selector-panel"]) > :not([role="separator"], [role="group"], [data-testid="model-selector-panel"], .overflow-y-auto) {
|
|
1102
1200
|
overflow: clip;
|
|
1103
1201
|
border-radius: 0;
|
|
1104
1202
|
}
|
|
@@ -1113,6 +1211,14 @@ webview[style*="opacity: 0.005"] {
|
|
|
1113
1211
|
margin: 0;
|
|
1114
1212
|
background: var(--md-sys-color-surface);
|
|
1115
1213
|
}
|
|
1214
|
+
/* A menu that holds a submenu in its own DOM (the project picker, whose
|
|
1215
|
+
This Computer list opens beside it) must not be a scroll container:
|
|
1216
|
+
focusing the submenu's search would scroll the menu sideways and drag the
|
|
1217
|
+
submenu over it. It sizes itself; its project list scrolls on its own. */
|
|
1218
|
+
:root[data-agy-theme="md3e"] body[data-agy-theme][data-newux-theme]:is(.dark, :not(.dark)) .agy-overlay[role="menu"]:has(> [data-testid="project-selector-search"]) {
|
|
1219
|
+
max-height: none !important;
|
|
1220
|
+
overflow: visible !important;
|
|
1221
|
+
}
|
|
1116
1222
|
/* group headers: Base UI group labels, the model list's "Model", the mode
|
|
1117
1223
|
menu's "<Project> Settings" row */
|
|
1118
1224
|
:root[data-agy-theme="md3e"] [role="menu"] .text-xs.text-muted-foreground.font-medium,
|
|
@@ -1152,39 +1258,46 @@ webview[style*="opacity: 0.005"] {
|
|
|
1152
1258
|
}
|
|
1153
1259
|
/* items */
|
|
1154
1260
|
:root[data-agy-theme="md3e"] [role="menu"] :is([role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"]) {
|
|
1155
|
-
position: relative;
|
|
1156
|
-
isolation: isolate;
|
|
1157
|
-
min-height:
|
|
1158
|
-
padding: 12px
|
|
1159
|
-
gap: 8px;
|
|
1160
|
-
background: transparent;
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1261
|
+
position: relative !important;
|
|
1262
|
+
isolation: isolate !important;
|
|
1263
|
+
min-height: 36px !important;
|
|
1264
|
+
padding: 8px 12px !important;
|
|
1265
|
+
gap: 8px !important;
|
|
1266
|
+
background: transparent !important;
|
|
1267
|
+
border-radius: 8px !important;
|
|
1268
|
+
color: var(--md-sys-color-on-surface) !important;
|
|
1269
|
+
font: var(--md-sys-typescale-label-large) !important;
|
|
1270
|
+
letter-spacing: var(--md-sys-typescale-label-large-tracking) !important;
|
|
1271
|
+
}
|
|
1272
|
+
:root[data-agy-theme="md3e"] [role="menu"] :is([role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"]):is([data-highlighted], :hover, :focus, :focus-visible) {
|
|
1273
|
+
background: transparent !important;
|
|
1164
1274
|
}
|
|
1165
1275
|
:root[data-agy-theme="md3e"] [role="menu"] :is([role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"])::before {
|
|
1166
|
-
content: "";
|
|
1167
|
-
position: absolute;
|
|
1168
|
-
inset: 0
|
|
1169
|
-
z-index: -1;
|
|
1170
|
-
border-radius:
|
|
1171
|
-
transition: border-radius var(--md-fast), background-color var(--md-state);
|
|
1276
|
+
content: "" !important;
|
|
1277
|
+
position: absolute !important;
|
|
1278
|
+
inset: 0 !important;
|
|
1279
|
+
z-index: -1 !important;
|
|
1280
|
+
border-radius: 8px !important;
|
|
1281
|
+
transition: border-radius var(--md-fast), background-color var(--md-state) !important;
|
|
1172
1282
|
}
|
|
1173
1283
|
:root[data-agy-theme="md3e"] [role="menu"] :is([role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"]):first-child::before,
|
|
1174
1284
|
:root[data-agy-theme="md3e"] [role="menu"] :not([role^="menuitem"]) + :is([role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"])::before {
|
|
1175
|
-
border-
|
|
1176
|
-
border-
|
|
1285
|
+
border-top-left-radius: 12px !important;
|
|
1286
|
+
border-top-right-radius: 12px !important;
|
|
1177
1287
|
}
|
|
1178
1288
|
:root[data-agy-theme="md3e"] [role="menu"] :is([role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"]):last-child::before,
|
|
1179
1289
|
:root[data-agy-theme="md3e"] [role="menu"] :is([role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"]):has(+ [role="separator"])::before {
|
|
1180
|
-
border-
|
|
1181
|
-
border-
|
|
1290
|
+
border-bottom-left-radius: 12px !important;
|
|
1291
|
+
border-bottom-right-radius: 12px !important;
|
|
1292
|
+
}
|
|
1293
|
+
:root[data-agy-theme="md3e"] [role="menu"] :is([role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"]):only-child::before {
|
|
1294
|
+
border-radius: 12px !important;
|
|
1182
1295
|
}
|
|
1183
1296
|
:root[data-agy-theme="md3e"] [role="menu"] :is([role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"]):is([data-highlighted], :hover)::before {
|
|
1184
|
-
background: color-mix(in srgb, currentColor 8%, transparent);
|
|
1297
|
+
background: color-mix(in srgb, currentColor 8%, transparent) !important;
|
|
1185
1298
|
}
|
|
1186
1299
|
:root[data-agy-theme="md3e"] [role="menu"] :is([role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"]):is(:focus-visible, :active)::before {
|
|
1187
|
-
background: color-mix(in srgb, currentColor 10%, transparent);
|
|
1300
|
+
background: color-mix(in srgb, currentColor 10%, transparent) !important;
|
|
1188
1301
|
}
|
|
1189
1302
|
:root[data-agy-theme="md3e"] [role="menu"] :is([role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"])[data-disabled] {
|
|
1190
1303
|
opacity: 0.38;
|
|
@@ -1205,24 +1318,30 @@ webview[style*="opacity: 0.005"] {
|
|
|
1205
1318
|
white-space: normal; /* md-menu wraps supporting text (the app truncates it) */
|
|
1206
1319
|
}
|
|
1207
1320
|
/* selected: the app marks it with text-foreground and a trailing check */
|
|
1208
|
-
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"]) {
|
|
1209
|
-
|
|
1321
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"], [data-checked="true"]) {
|
|
1322
|
+
background: var(--md-sys-color-tertiary-container) !important;
|
|
1323
|
+
color: var(--md-sys-color-on-tertiary-container) !important;
|
|
1324
|
+
border-radius: 12px !important;
|
|
1210
1325
|
}
|
|
1211
|
-
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"])
|
|
1212
|
-
|
|
1213
|
-
|
|
1326
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"], [data-checked="true"]) * {
|
|
1327
|
+
color: var(--md-sys-color-on-tertiary-container) !important;
|
|
1328
|
+
fill: var(--md-sys-color-on-tertiary-container) !important;
|
|
1329
|
+
}
|
|
1330
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"], [data-checked="true"])::before {
|
|
1331
|
+
border-radius: 12px !important;
|
|
1332
|
+
background: var(--md-sys-color-tertiary-container) !important;
|
|
1214
1333
|
}
|
|
1215
|
-
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"]):is([data-highlighted], :hover)::before {
|
|
1216
|
-
background: color-mix(in srgb, var(--md-sys-color-on-tertiary-container)
|
|
1334
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"], [data-checked="true"]):is([data-highlighted], :hover, :focus, :focus-visible)::before {
|
|
1335
|
+
background: color-mix(in srgb, var(--md-sys-color-on-tertiary-container) 10%, var(--md-sys-color-tertiary-container)) !important;
|
|
1217
1336
|
}
|
|
1218
|
-
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"]) :is(.text-muted-foreground, .ml-auto),
|
|
1219
|
-
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"]) > :is(svg:first-child, .ml-auto) {
|
|
1337
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"], [data-checked="true"]) :is(.text-muted-foreground, .ml-auto),
|
|
1338
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"], [data-checked="true"]) > :is(svg:first-child, .ml-auto) {
|
|
1220
1339
|
color: inherit;
|
|
1221
1340
|
}
|
|
1222
|
-
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"]) > span.ml-auto {
|
|
1341
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"], [data-checked="true"]) > span.ml-auto {
|
|
1223
1342
|
display: none;
|
|
1224
1343
|
}
|
|
1225
|
-
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"])::after {
|
|
1344
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"], [data-checked="true"])::after {
|
|
1226
1345
|
content: "";
|
|
1227
1346
|
order: -1;
|
|
1228
1347
|
flex: none;
|
|
@@ -1233,7 +1352,7 @@ webview[style*="opacity: 0.005"] {
|
|
|
1233
1352
|
transition: width var(--md-fast), margin var(--md-fast), opacity var(--md-color-fast);
|
|
1234
1353
|
}
|
|
1235
1354
|
@starting-style {
|
|
1236
|
-
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"])::after {
|
|
1355
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role^="menuitem"]:is(.text-foreground, [aria-checked="true"], [data-checked="true"])::after {
|
|
1237
1356
|
width: 0;
|
|
1238
1357
|
margin-inline-end: -8px;
|
|
1239
1358
|
opacity: 0;
|
|
@@ -1274,127 +1393,968 @@ webview[style*="opacity: 0.005"] {
|
|
|
1274
1393
|
}
|
|
1275
1394
|
}
|
|
1276
1395
|
|
|
1277
|
-
/*
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1396
|
+
/* Select popups (Base UI listboxes: Settings dropdowns and the like): the
|
|
1397
|
+
md-menu anatomy of the menus above. Surface-container-low, 16px corners,
|
|
1398
|
+
level 2; options 8px (12px at the ends), label-large with body-medium
|
|
1399
|
+
supporting text, an 8% state layer on hover and keyboard focus; the
|
|
1400
|
+
chosen one a tertiary-container pill. The glass layer's square items
|
|
1401
|
+
(05) need !important on the corners. */
|
|
1402
|
+
:root[data-agy-theme="md3e"] [data-select-popup] {
|
|
1403
|
+
padding: 4px;
|
|
1404
|
+
border: 0 !important;
|
|
1405
|
+
border-radius: 16px !important;
|
|
1406
|
+
background: var(--md-sys-color-surface-container-low) !important;
|
|
1407
|
+
box-shadow: 0 4px 16px -2px rgb(0 0 0 / 0.5) !important;
|
|
1408
|
+
backdrop-filter: none !important;
|
|
1409
|
+
color: var(--md-sys-color-on-surface);
|
|
1410
|
+
font-family: var(--md-sys-typescale-font-family);
|
|
1284
1411
|
}
|
|
1285
|
-
:root[data-agy-theme="md3e"] [data-
|
|
1286
|
-
|
|
1412
|
+
:root[data-agy-theme="md3e"] [data-select-popup] [role="listbox"] {
|
|
1413
|
+
gap: 0;
|
|
1414
|
+
padding: 0;
|
|
1287
1415
|
}
|
|
1288
|
-
:root[data-agy-theme="md3e"] [data-
|
|
1289
|
-
|
|
1416
|
+
:root[data-agy-theme="md3e"] [data-select-popup] [role="option"] {
|
|
1417
|
+
min-height: 44px;
|
|
1418
|
+
padding: 8px 12px;
|
|
1419
|
+
gap: 8px;
|
|
1420
|
+
border-radius: 8px !important;
|
|
1421
|
+
background: transparent !important;
|
|
1422
|
+
color: var(--md-sys-color-on-surface) !important;
|
|
1423
|
+
font: var(--md-sys-typescale-label-large);
|
|
1424
|
+
letter-spacing: var(--md-sys-typescale-label-large-tracking);
|
|
1425
|
+
transition: background-color var(--md-state), border-radius var(--md-fast) !important;
|
|
1290
1426
|
}
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
background: var(--md-sys-color-surface-container-high) !important;
|
|
1295
|
-
border: 1px solid var(--md-sys-color-outline-variant) !important;
|
|
1296
|
-
border-radius: 28px !important;
|
|
1297
|
-
box-shadow: var(--md-sys-elevation-level3) !important;
|
|
1427
|
+
:root[data-agy-theme="md3e"] [data-select-popup] [role="option"]:first-child {
|
|
1428
|
+
border-top-left-radius: 12px !important;
|
|
1429
|
+
border-top-right-radius: 12px !important;
|
|
1298
1430
|
}
|
|
1299
|
-
:root[data-agy-theme="md3e"] [data-
|
|
1300
|
-
|
|
1301
|
-
border-radius:
|
|
1431
|
+
:root[data-agy-theme="md3e"] [data-select-popup] [role="option"]:last-child {
|
|
1432
|
+
border-bottom-left-radius: 12px !important;
|
|
1433
|
+
border-bottom-right-radius: 12px !important;
|
|
1302
1434
|
}
|
|
1303
|
-
:root[data-agy-theme="md3e"] [data-
|
|
1304
|
-
background: var(--md-
|
|
1305
|
-
color: var(--md-sys-color-on-surface) !important;
|
|
1435
|
+
:root[data-agy-theme="md3e"] [data-select-popup] [role="option"]:is([data-highlighted], :hover, :focus-visible) {
|
|
1436
|
+
background: color-mix(in srgb, var(--md-sys-color-on-surface) 8%, transparent) !important;
|
|
1306
1437
|
}
|
|
1307
|
-
:root[data-agy-theme="md3e"] [data-
|
|
1308
|
-
|
|
1309
|
-
|
|
1438
|
+
:root[data-agy-theme="md3e"] [data-select-popup] [role="option"] .text-muted-foreground {
|
|
1439
|
+
font: var(--md-sys-typescale-body-medium);
|
|
1440
|
+
letter-spacing: var(--md-sys-typescale-body-medium-tracking);
|
|
1441
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
1310
1442
|
}
|
|
1311
|
-
:root[data-agy-theme="md3e"] [data-
|
|
1312
|
-
|
|
1443
|
+
:root[data-agy-theme="md3e"] [data-select-popup] [role="option"]:is([data-selected], [aria-selected="true"]) {
|
|
1444
|
+
border-radius: 12px !important;
|
|
1445
|
+
background: var(--md-sys-color-tertiary-container) !important;
|
|
1446
|
+
color: var(--md-sys-color-on-tertiary-container) !important;
|
|
1313
1447
|
}
|
|
1314
|
-
:root[data-agy-theme="md3e"] [data-
|
|
1315
|
-
background: var(--md-sys-color-
|
|
1316
|
-
box-shadow: 0 0 10px color-mix(in srgb, var(--md-sys-color-primary) 50%, transparent) !important;
|
|
1448
|
+
:root[data-agy-theme="md3e"] [data-select-popup] [role="option"]:is([data-selected], [aria-selected="true"]):is([data-highlighted], :hover, :focus-visible) {
|
|
1449
|
+
background: color-mix(in srgb, var(--md-sys-color-on-tertiary-container) 10%, var(--md-sys-color-tertiary-container)) !important;
|
|
1317
1450
|
}
|
|
1318
|
-
:root[data-agy-theme="md3e"] [data-
|
|
1319
|
-
|
|
1320
|
-
color: var(--md-sys-color-on-primary) !important;
|
|
1321
|
-
border-radius: var(--md-sys-shape-corner-full) !important;
|
|
1322
|
-
font: var(--md-sys-typescale-label-large) !important;
|
|
1323
|
-
box-shadow: var(--md-sys-elevation-level1) !important;
|
|
1324
|
-
transition: box-shadow var(--md-motion-short), background-color var(--md-state) !important;
|
|
1451
|
+
:root[data-agy-theme="md3e"] [data-select-popup] [role="option"]:is([data-selected], [aria-selected="true"]) :is(.text-muted-foreground, svg) {
|
|
1452
|
+
color: var(--md-sys-color-on-tertiary-container);
|
|
1325
1453
|
}
|
|
1326
|
-
:root[data-agy-theme="md3e"] [data-
|
|
1327
|
-
|
|
1454
|
+
:root[data-agy-theme="md3e"] [data-select-popup] [role="option"] > span.shrink-0 svg {
|
|
1455
|
+
width: 20px;
|
|
1456
|
+
height: 20px;
|
|
1328
1457
|
}
|
|
1329
1458
|
|
|
1330
|
-
/*
|
|
1331
|
-
:
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
border
|
|
1459
|
+
/* 60 — Dialogs and Settings ------------------------------------------------ */
|
|
1460
|
+
/* Every dialog is an M3 dialog: surface-container-high, extra-large corners,
|
|
1461
|
+
level 3, over a 32% scrim; nothing outlined. Selectors go through
|
|
1462
|
+
.agy-dialog: the app's own glass rules (body[data-newux-theme] ...) round
|
|
1463
|
+
these controls into pills and outrank a single class. */
|
|
1464
|
+
:root[data-agy-theme="md3e"] .agy-dialog {
|
|
1465
|
+
border: 0 !important;
|
|
1466
|
+
border-radius: var(--md-sys-shape-corner-extra-large) !important;
|
|
1467
|
+
background: var(--md-sys-color-surface-container-high);
|
|
1337
1468
|
box-shadow: var(--md-sys-elevation-level3) !important;
|
|
1338
|
-
|
|
1339
|
-
-webkit-backdrop-filter: blur(20px) !important;
|
|
1469
|
+
color: var(--md-sys-color-on-surface);
|
|
1340
1470
|
}
|
|
1341
|
-
:root[data-agy-theme="md3e"]
|
|
1342
|
-
:
|
|
1343
|
-
background: var(--md-sys-color-error) !important;
|
|
1344
|
-
color: var(--md-sys-color-on-error) !important;
|
|
1345
|
-
border-radius: var(--md-sys-shape-corner-full) !important;
|
|
1346
|
-
font: var(--md-sys-typescale-label-medium) !important;
|
|
1471
|
+
:root[data-agy-theme="md3e"] .settings-modal-backdrop {
|
|
1472
|
+
background: color-mix(in srgb, var(--md-sys-color-scrim) 32%, transparent);
|
|
1347
1473
|
}
|
|
1348
|
-
:root[data-agy-theme="md3e"]
|
|
1349
|
-
:
|
|
1350
|
-
:
|
|
1351
|
-
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-call-collapse"] {
|
|
1474
|
+
:root[data-agy-theme="md3e"] .agy-dialog > button[aria-label="Close"] {
|
|
1475
|
+
width: 40px;
|
|
1476
|
+
height: 40px;
|
|
1352
1477
|
border-radius: var(--md-sys-shape-corner-full) !important;
|
|
1478
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
1479
|
+
transition: background-color var(--md-state), color var(--md-state);
|
|
1353
1480
|
}
|
|
1354
|
-
:root[data-agy-theme="md3e"]
|
|
1355
|
-
:
|
|
1356
|
-
:
|
|
1357
|
-
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-call-collapse"]:hover {
|
|
1358
|
-
background: var(--md-hover) !important;
|
|
1481
|
+
:root[data-agy-theme="md3e"] .agy-dialog > button[aria-label="Close"]:hover {
|
|
1482
|
+
background: var(--md-hover);
|
|
1483
|
+
color: var(--md-sys-color-on-surface);
|
|
1359
1484
|
}
|
|
1360
|
-
:root[data-agy-theme="md3e"]
|
|
1361
|
-
|
|
1485
|
+
:root[data-agy-theme="md3e"] .agy-dialog > button[aria-label="Close"] svg {
|
|
1486
|
+
width: 24px;
|
|
1487
|
+
height: 24px;
|
|
1362
1488
|
}
|
|
1363
|
-
|
|
1364
|
-
|
|
1489
|
+
|
|
1490
|
+
/* Settings: M3's list-detail layout. The dialog is the window
|
|
1491
|
+
(surface-container) with a navigation drawer; the page is a pane on it
|
|
1492
|
+
(surface, large corners); settings are segmented lists, M3 Expressive's
|
|
1493
|
+
grouped list items: 2px apart, 4px corners inside a group, 20px outside. */
|
|
1494
|
+
:root[data-agy-theme="md3e"] .settings-modal-container {
|
|
1495
|
+
--md-row: var(--md-sys-color-surface-container-high);
|
|
1496
|
+
background: var(--md-sys-color-surface-container);
|
|
1497
|
+
scrollbar-width: thin;
|
|
1365
1498
|
}
|
|
1366
|
-
:root[data-agy-theme="md3e"]
|
|
1367
|
-
:
|
|
1368
|
-
|
|
1499
|
+
:root[data-agy-theme="md3e"] .settings-modal-container .bg-background {
|
|
1500
|
+
background: transparent;
|
|
1501
|
+
}
|
|
1502
|
+
:root[data-agy-theme="md3e"] .settings-modal-container [data-split-root] > div:last-child {
|
|
1503
|
+
margin: 12px 12px 12px 0;
|
|
1504
|
+
border-radius: var(--md-sys-shape-corner-large-increased);
|
|
1505
|
+
background: var(--md-sys-color-surface);
|
|
1506
|
+
overflow: hidden;
|
|
1369
1507
|
}
|
|
1370
1508
|
|
|
1371
|
-
/*
|
|
1372
|
-
|
|
1373
|
-
|
|
1509
|
+
/* Drawer: title-small headlines 28px in, pill destinations, dividers
|
|
1510
|
+
between groups (inset 28px). 40px rows, as the window's drawer list. */
|
|
1511
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] {
|
|
1512
|
+
background: transparent;
|
|
1513
|
+
font-family: var(--md-sys-typescale-font-family);
|
|
1374
1514
|
}
|
|
1375
|
-
:root[data-agy-theme="md3e"] [data-testid="
|
|
1376
|
-
|
|
1515
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] > div:first-child {
|
|
1516
|
+
gap: 0;
|
|
1517
|
+
padding: 12px 0;
|
|
1518
|
+
}
|
|
1519
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] :is(h1, h2) {
|
|
1520
|
+
font: var(--md-sys-typescale-title-small);
|
|
1521
|
+
letter-spacing: var(--md-sys-typescale-title-small-tracking);
|
|
1522
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
1523
|
+
}
|
|
1524
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] .px-4 {
|
|
1525
|
+
display: flex;
|
|
1526
|
+
align-items: center;
|
|
1527
|
+
min-height: 40px;
|
|
1528
|
+
padding: 0 28px;
|
|
1529
|
+
}
|
|
1530
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] .px-4.mt-2 {
|
|
1531
|
+
margin: 8px 28px 0;
|
|
1532
|
+
padding: 8px 0 0;
|
|
1533
|
+
border-top: 1px solid var(--md-sys-color-outline-variant);
|
|
1534
|
+
}
|
|
1535
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] .flex.flex-col.gap-0\.5 {
|
|
1536
|
+
gap: 0;
|
|
1537
|
+
}
|
|
1538
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] .mx-2 {
|
|
1539
|
+
margin: 0 12px;
|
|
1540
|
+
}
|
|
1541
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] button[data-testid^="settings-nav-item-"] {
|
|
1542
|
+
min-height: 40px;
|
|
1543
|
+
padding: 0 16px;
|
|
1544
|
+
gap: 12px;
|
|
1545
|
+
border-radius: var(--md-sys-shape-corner-full);
|
|
1546
|
+
background: transparent;
|
|
1547
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
1548
|
+
font: var(--md-sys-typescale-label-large);
|
|
1549
|
+
letter-spacing: var(--md-sys-typescale-label-large-tracking);
|
|
1550
|
+
transition: background-color var(--md-state), color var(--md-state);
|
|
1551
|
+
}
|
|
1552
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] button[data-testid^="settings-nav-item-"] span {
|
|
1553
|
+
color: inherit;
|
|
1554
|
+
font: inherit;
|
|
1555
|
+
}
|
|
1556
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] button[data-testid^="settings-nav-item-"]:hover {
|
|
1557
|
+
background: var(--md-hover);
|
|
1558
|
+
color: var(--md-sys-color-on-surface);
|
|
1559
|
+
}
|
|
1560
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] button[data-testid^="settings-nav-item-"].bg-sidebar-secondary {
|
|
1561
|
+
background: var(--md-sys-color-secondary-container);
|
|
1562
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
1563
|
+
font: var(--md-sys-typescale-label-large-emphasized);
|
|
1564
|
+
}
|
|
1565
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] button[data-testid^="settings-nav-item-"].bg-sidebar-secondary:hover {
|
|
1566
|
+
background: color-mix(in srgb, var(--md-sys-color-on-secondary-container) 8%, var(--md-sys-color-secondary-container));
|
|
1567
|
+
}
|
|
1568
|
+
/* "Show All": a text button */
|
|
1569
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] button.mx-4 {
|
|
1570
|
+
align-self: flex-start;
|
|
1571
|
+
min-height: 40px;
|
|
1572
|
+
margin: 0 12px;
|
|
1573
|
+
padding: 0 16px;
|
|
1574
|
+
border-radius: var(--md-sys-shape-corner-full);
|
|
1575
|
+
color: var(--md-sys-color-primary);
|
|
1576
|
+
font: var(--md-sys-typescale-label-large);
|
|
1577
|
+
text-decoration: none;
|
|
1578
|
+
transition: background-color var(--md-state);
|
|
1579
|
+
}
|
|
1580
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] button.mx-4:hover {
|
|
1581
|
+
background: var(--md-primary-hover);
|
|
1582
|
+
color: var(--md-sys-color-primary);
|
|
1583
|
+
}
|
|
1584
|
+
/* account: a 56px destination with a 40px avatar */
|
|
1585
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] > .border-t {
|
|
1586
|
+
margin: 0 28px;
|
|
1587
|
+
padding: 8px 0 12px;
|
|
1588
|
+
border-color: var(--md-sys-color-outline-variant);
|
|
1589
|
+
}
|
|
1590
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] > .border-t > button {
|
|
1591
|
+
min-height: 56px;
|
|
1592
|
+
margin: 0 -16px;
|
|
1593
|
+
padding: 0 16px;
|
|
1594
|
+
gap: 12px;
|
|
1595
|
+
border-radius: var(--md-sys-shape-corner-full);
|
|
1596
|
+
}
|
|
1597
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] > .border-t > button > div:first-child {
|
|
1598
|
+
width: 40px;
|
|
1599
|
+
height: 40px;
|
|
1600
|
+
background: var(--md-sys-color-primary-container);
|
|
1601
|
+
color: var(--md-sys-color-on-primary-container);
|
|
1602
|
+
}
|
|
1603
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] > .border-t span.text-foreground {
|
|
1604
|
+
font: var(--md-sys-typescale-title-small);
|
|
1605
|
+
}
|
|
1606
|
+
:root[data-agy-theme="md3e"] [data-testid="settings-sidebar"] > .border-t span.text-sm {
|
|
1607
|
+
font: var(--md-sys-typescale-body-small);
|
|
1377
1608
|
}
|
|
1378
1609
|
|
|
1379
|
-
/*
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1610
|
+
/* Page: headline-medium title, title-small primary category headers (as
|
|
1611
|
+
Android's settings), body-medium supporting text */
|
|
1612
|
+
:root[data-agy-theme="md3e"] .settings-modal-container .p-6.max-w-2xl {
|
|
1613
|
+
padding: 28px 24px 40px;
|
|
1614
|
+
}
|
|
1615
|
+
:root[data-agy-theme="md3e"] .settings-modal-container h2.text-2xl {
|
|
1616
|
+
font: var(--md-sys-typescale-headline-medium);
|
|
1617
|
+
letter-spacing: var(--md-sys-typescale-headline-medium-tracking);
|
|
1618
|
+
color: var(--md-sys-color-on-surface);
|
|
1383
1619
|
}
|
|
1384
|
-
:root[data-agy-theme="md3e"]
|
|
1385
|
-
:
|
|
1386
|
-
:
|
|
1387
|
-
|
|
1620
|
+
:root[data-agy-theme="md3e"] .settings-modal-container h2.text-2xl + div {
|
|
1621
|
+
font: var(--md-sys-typescale-body-medium);
|
|
1622
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
1623
|
+
}
|
|
1624
|
+
:root[data-agy-theme="md3e"] .settings-modal-container h3 {
|
|
1625
|
+
padding-inline-start: 16px;
|
|
1626
|
+
font: var(--md-sys-typescale-title-small);
|
|
1627
|
+
letter-spacing: var(--md-sys-typescale-title-small-tracking);
|
|
1628
|
+
color: var(--md-sys-color-primary);
|
|
1629
|
+
}
|
|
1630
|
+
:root[data-agy-theme="md3e"] .settings-modal-container .leading-relaxed {
|
|
1631
|
+
padding-inline-start: 16px;
|
|
1632
|
+
font: var(--md-sys-typescale-body-medium);
|
|
1633
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
1388
1634
|
}
|
|
1389
1635
|
|
|
1390
|
-
/*
|
|
1391
|
-
:root[data-agy-theme="md3e"]
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1636
|
+
/* Segmented list */
|
|
1637
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-card {
|
|
1638
|
+
display: flex;
|
|
1639
|
+
flex-direction: column;
|
|
1640
|
+
gap: 2px;
|
|
1641
|
+
border: 0;
|
|
1642
|
+
border-radius: var(--md-sys-shape-corner-large-increased);
|
|
1643
|
+
background: transparent;
|
|
1644
|
+
}
|
|
1645
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-card > * {
|
|
1646
|
+
border: 0 !important;
|
|
1647
|
+
border-radius: var(--md-sys-shape-corner-extra-small);
|
|
1648
|
+
background: var(--md-row, var(--md-sys-color-surface-container-highest));
|
|
1649
|
+
font: var(--md-sys-typescale-body-large);
|
|
1650
|
+
letter-spacing: var(--md-sys-typescale-body-large-tracking);
|
|
1651
|
+
}
|
|
1652
|
+
/* the rows (some sit in a wrapper) */
|
|
1653
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-card .py-2.px-3 {
|
|
1654
|
+
min-height: 56px;
|
|
1655
|
+
padding: 12px 16px;
|
|
1656
|
+
}
|
|
1657
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-card .text-sm {
|
|
1658
|
+
font: var(--md-sys-typescale-body-medium);
|
|
1659
|
+
letter-spacing: var(--md-sys-typescale-body-medium-tracking);
|
|
1660
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
1661
|
+
}
|
|
1662
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-card > button { /* "Code Preview": a list item that opens */
|
|
1663
|
+
min-height: 48px;
|
|
1664
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
1665
|
+
font: var(--md-sys-typescale-label-large);
|
|
1666
|
+
transition: background-color var(--md-state);
|
|
1667
|
+
}
|
|
1668
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-card > button:hover {
|
|
1669
|
+
background: color-mix(in srgb, var(--md-sys-color-on-surface) 8%, var(--md-row));
|
|
1670
|
+
color: var(--md-sys-color-on-surface);
|
|
1671
|
+
}
|
|
1672
|
+
:root[data-agy-theme="md3e"] .agy-dialog [data-testid="settings-row-badge"] {
|
|
1673
|
+
min-width: 20px;
|
|
1674
|
+
height: 20px;
|
|
1675
|
+
padding: 0 6px;
|
|
1676
|
+
border: 0;
|
|
1677
|
+
border-radius: var(--md-sys-shape-corner-full);
|
|
1678
|
+
background: var(--md-sys-color-secondary-container);
|
|
1679
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
1680
|
+
font: var(--md-sys-typescale-label-small);
|
|
1681
|
+
line-height: 20px;
|
|
1682
|
+
text-align: center;
|
|
1683
|
+
}
|
|
1684
|
+
:root[data-agy-theme="md3e"] .agy-dialog code {
|
|
1685
|
+
padding: 0 6px;
|
|
1686
|
+
border: 0;
|
|
1687
|
+
border-radius: var(--md-sys-shape-corner-extra-small);
|
|
1688
|
+
background: var(--md-sys-color-surface-container-highest);
|
|
1689
|
+
color: var(--md-sys-color-on-surface);
|
|
1690
|
+
}
|
|
1691
|
+
|
|
1692
|
+
/* Buttons: filled tonal, 40px, pill; on press the corners close to medium
|
|
1693
|
+
(M3 Expressive's shape morph). Primary actions are filled. */
|
|
1694
|
+
:root[data-agy-theme="md3e"] .agy-dialog :is(.agy-button-sm, .agy-button-md).bg-secondary {
|
|
1695
|
+
height: 40px;
|
|
1696
|
+
padding: 0 16px;
|
|
1697
|
+
border-radius: 20px !important;
|
|
1698
|
+
background: var(--md-sys-color-secondary-container);
|
|
1699
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
1700
|
+
font: var(--md-sys-typescale-label-large);
|
|
1701
|
+
letter-spacing: var(--md-sys-typescale-label-large-tracking);
|
|
1702
|
+
transition: border-radius var(--md-fast), background-color var(--md-state);
|
|
1703
|
+
}
|
|
1704
|
+
:root[data-agy-theme="md3e"] .agy-dialog :is(.agy-button-sm, .agy-button-md).bg-secondary:hover {
|
|
1705
|
+
background: color-mix(in srgb, var(--md-sys-color-on-secondary-container) 8%, var(--md-sys-color-secondary-container));
|
|
1706
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
1707
|
+
}
|
|
1708
|
+
:root[data-agy-theme="md3e"] .agy-dialog :is(a, button:not([role])).bg-primary {
|
|
1709
|
+
display: inline-flex;
|
|
1710
|
+
align-items: center;
|
|
1711
|
+
height: 40px;
|
|
1712
|
+
padding: 0 24px;
|
|
1713
|
+
border-radius: 20px !important;
|
|
1714
|
+
background: var(--md-sys-color-primary);
|
|
1715
|
+
color: var(--md-sys-color-on-primary);
|
|
1716
|
+
font: var(--md-sys-typescale-label-large);
|
|
1717
|
+
transition: border-radius var(--md-fast), background-color var(--md-state);
|
|
1718
|
+
}
|
|
1719
|
+
:root[data-agy-theme="md3e"] .agy-dialog :is(a, button:not([role])).bg-primary:hover {
|
|
1720
|
+
background: color-mix(in srgb, var(--md-sys-color-on-primary) 8%, var(--md-sys-color-primary));
|
|
1721
|
+
}
|
|
1722
|
+
:root[data-agy-theme="md3e"] .agy-dialog [data-testid="delete-project-button"] {
|
|
1723
|
+
height: 40px;
|
|
1724
|
+
padding: 0 24px;
|
|
1725
|
+
border-radius: 20px !important;
|
|
1726
|
+
background: var(--md-sys-color-error);
|
|
1727
|
+
color: var(--md-sys-color-on-error);
|
|
1728
|
+
font: var(--md-sys-typescale-label-large);
|
|
1729
|
+
transition: border-radius var(--md-fast);
|
|
1730
|
+
}
|
|
1731
|
+
:root[data-agy-theme="md3e"] .agy-dialog :is(.agy-button-sm.bg-secondary, .agy-button-md.bg-secondary, a.bg-primary, button.bg-primary:not([role]), [data-testid="delete-project-button"]):active {
|
|
1732
|
+
border-radius: var(--md-sys-shape-corner-medium) !important;
|
|
1733
|
+
}
|
|
1734
|
+
/* text buttons: "Show N breakdown", "Advanced Settings" */
|
|
1735
|
+
:root[data-agy-theme="md3e"] .agy-dialog :is(.agy-button-sm.text-link, button.self-start.rounded-md) {
|
|
1736
|
+
height: 40px;
|
|
1737
|
+
margin: 0;
|
|
1738
|
+
padding: 0 12px;
|
|
1739
|
+
border-radius: 20px !important;
|
|
1740
|
+
color: var(--md-sys-color-primary);
|
|
1741
|
+
font: var(--md-sys-typescale-label-large);
|
|
1742
|
+
transition: background-color var(--md-state);
|
|
1743
|
+
}
|
|
1744
|
+
:root[data-agy-theme="md3e"] .agy-dialog :is(.agy-button-sm.text-link, button.self-start.rounded-md):hover {
|
|
1745
|
+
background: var(--md-primary-hover);
|
|
1746
|
+
color: var(--md-sys-color-primary);
|
|
1747
|
+
text-decoration: none;
|
|
1748
|
+
}
|
|
1749
|
+
/* icon buttons keep their size; standard icon button colors */
|
|
1750
|
+
:root[data-agy-theme="md3e"] .agy-dialog :is(.agy-button-icon-sm, .agy-button-icon):not(.bg-secondary) {
|
|
1751
|
+
border-radius: var(--md-sys-shape-corner-full) !important;
|
|
1752
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
1753
|
+
transition: background-color var(--md-state), color var(--md-state);
|
|
1754
|
+
}
|
|
1755
|
+
:root[data-agy-theme="md3e"] .agy-dialog :is(.agy-button-icon-sm, .agy-button-icon):not(.bg-secondary):hover {
|
|
1756
|
+
background: var(--md-hover);
|
|
1757
|
+
color: var(--md-sys-color-on-surface);
|
|
1758
|
+
}
|
|
1759
|
+
/* key chips (Shortcuts): filled, small corners */
|
|
1760
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-button-xs.border {
|
|
1761
|
+
height: 32px;
|
|
1762
|
+
padding: 0 12px;
|
|
1763
|
+
border: 0;
|
|
1764
|
+
border-radius: var(--md-sys-shape-corner-small) !important;
|
|
1765
|
+
background: var(--md-sys-color-surface-container-highest);
|
|
1766
|
+
color: var(--md-sys-color-on-surface);
|
|
1767
|
+
font: var(--md-sys-typescale-label-large);
|
|
1768
|
+
transition: background-color var(--md-state);
|
|
1769
|
+
}
|
|
1770
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-button-xs.border:hover {
|
|
1771
|
+
background: color-mix(in srgb, var(--md-sys-color-on-surface) 8%, var(--md-sys-color-surface-container-highest));
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1774
|
+
/* Select: an outlined button with a trailing arrow; open, it is selected
|
|
1775
|
+
(secondary-container) and its corners close to medium */
|
|
1776
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-select-trigger {
|
|
1777
|
+
height: 40px;
|
|
1778
|
+
padding: 0 12px 0 16px;
|
|
1779
|
+
gap: 8px;
|
|
1780
|
+
border: 1px solid var(--md-sys-color-outline-variant) !important;
|
|
1781
|
+
border-radius: 20px;
|
|
1782
|
+
background: transparent;
|
|
1783
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
1784
|
+
font: var(--md-sys-typescale-label-large);
|
|
1785
|
+
letter-spacing: var(--md-sys-typescale-label-large-tracking);
|
|
1786
|
+
transition: border-radius var(--md-fast), background-color var(--md-state), color var(--md-state);
|
|
1787
|
+
}
|
|
1788
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-select-trigger:hover {
|
|
1789
|
+
background: var(--md-hover);
|
|
1790
|
+
color: var(--md-sys-color-on-surface);
|
|
1791
|
+
}
|
|
1792
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-select-trigger[aria-expanded="true"] {
|
|
1793
|
+
border-color: transparent !important;
|
|
1794
|
+
border-radius: var(--md-sys-shape-corner-medium);
|
|
1795
|
+
background: var(--md-sys-color-secondary-container);
|
|
1796
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
1797
|
+
}
|
|
1798
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-select-trigger svg {
|
|
1799
|
+
width: 18px;
|
|
1800
|
+
height: 18px;
|
|
1801
|
+
opacity: 1;
|
|
1802
|
+
transition: transform var(--md-fast);
|
|
1803
|
+
}
|
|
1804
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-select-trigger[aria-expanded="true"] svg {
|
|
1805
|
+
transform: rotate(180deg);
|
|
1806
|
+
}
|
|
1807
|
+
|
|
1808
|
+
/* Connected button group (toggle groups): 2px apart, 8px inner corners;
|
|
1809
|
+
the selected one is secondary-container and fully round */
|
|
1810
|
+
:root[data-agy-theme="md3e"] .agy-dialog [data-slot="toggle-group"] {
|
|
1811
|
+
height: 40px;
|
|
1812
|
+
padding: 0;
|
|
1813
|
+
gap: 2px;
|
|
1814
|
+
border: 0 !important;
|
|
1815
|
+
border-radius: 0;
|
|
1816
|
+
background: transparent !important;
|
|
1817
|
+
box-shadow: none !important;
|
|
1818
|
+
}
|
|
1819
|
+
:root[data-agy-theme="md3e"] .agy-dialog [data-slot="toggle-group"] > button {
|
|
1820
|
+
min-width: 48px;
|
|
1821
|
+
height: 40px;
|
|
1822
|
+
padding: 0 16px;
|
|
1823
|
+
border-radius: var(--md-sys-shape-corner-small);
|
|
1824
|
+
background: var(--md-sys-color-surface-container-highest) !important;
|
|
1825
|
+
color: var(--md-sys-color-on-surface-variant) !important;
|
|
1826
|
+
box-shadow: none !important;
|
|
1827
|
+
font: var(--md-sys-typescale-label-large);
|
|
1828
|
+
transition: border-radius var(--md-fast), background-color var(--md-color-fast), color var(--md-color-fast);
|
|
1829
|
+
}
|
|
1830
|
+
:root[data-agy-theme="md3e"] .agy-dialog [data-slot="toggle-group"] > button:first-child {
|
|
1831
|
+
border-start-start-radius: 20px;
|
|
1832
|
+
border-end-start-radius: 20px;
|
|
1833
|
+
}
|
|
1834
|
+
:root[data-agy-theme="md3e"] .agy-dialog [data-slot="toggle-group"] > button:last-child {
|
|
1835
|
+
border-start-end-radius: 20px;
|
|
1836
|
+
border-end-end-radius: 20px;
|
|
1837
|
+
}
|
|
1838
|
+
/* hover: an 8% state layer drawn as an image, so it shows at once while the
|
|
1839
|
+
selection color fades */
|
|
1840
|
+
:root[data-agy-theme="md3e"] .agy-dialog [data-slot="toggle-group"] > button:hover,
|
|
1841
|
+
:root[data-agy-theme="md3e"] .agy-dialog [data-slot="toggle-group"] > button[data-pressed]:hover {
|
|
1842
|
+
background-image: linear-gradient(color-mix(in srgb, currentColor 8%, transparent) 0 0) !important;
|
|
1843
|
+
}
|
|
1844
|
+
:root[data-agy-theme="md3e"] .agy-dialog [data-slot="toggle-group"] > button[data-pressed] {
|
|
1845
|
+
border-radius: 20px;
|
|
1846
|
+
background: var(--md-sys-color-secondary-container) !important;
|
|
1847
|
+
color: var(--md-sys-color-on-secondary-container) !important;
|
|
1848
|
+
}
|
|
1849
|
+
|
|
1850
|
+
/* Switch: M3's, 52 x 32. Off: outlined track, a 16px outline handle;
|
|
1851
|
+
on: primary track, a 24px on-primary handle; pressed: 28px. The handle is
|
|
1852
|
+
one 28px circle moved and sized by transform alone (scale 16/28, 24/28,
|
|
1853
|
+
1), so the spring runs on the compositor with no layout; the app's own
|
|
1854
|
+
inline transform is overridden. */
|
|
1855
|
+
:root[data-agy-theme="md3e"] [role="switch"].rounded-full {
|
|
1856
|
+
width: 52px;
|
|
1857
|
+
height: 32px;
|
|
1858
|
+
padding: 0;
|
|
1859
|
+
border: 2px solid var(--md-sys-color-outline);
|
|
1860
|
+
background: var(--md-sys-color-surface-container-highest) !important;
|
|
1861
|
+
contain: layout;
|
|
1862
|
+
transition: background-color var(--md-color-fast), border-color var(--md-color-fast);
|
|
1863
|
+
}
|
|
1864
|
+
:root[data-agy-theme="md3e"] [role="switch"].rounded-full:is([aria-checked="true"], [data-checked]) {
|
|
1865
|
+
border-color: var(--md-sys-color-primary);
|
|
1866
|
+
background: var(--md-sys-color-primary) !important;
|
|
1867
|
+
}
|
|
1868
|
+
:root[data-agy-theme="md3e"] [role="switch"].rounded-full > span {
|
|
1869
|
+
flex: none;
|
|
1870
|
+
width: 28px;
|
|
1871
|
+
height: 28px;
|
|
1872
|
+
background: var(--md-sys-color-outline);
|
|
1873
|
+
box-shadow: none !important;
|
|
1874
|
+
transform: translateX(0) scale(0.5714) !important;
|
|
1875
|
+
transition: transform var(--md-fast), background-color var(--md-color-fast);
|
|
1876
|
+
will-change: transform;
|
|
1877
|
+
}
|
|
1878
|
+
:root[data-agy-theme="md3e"] [role="switch"].rounded-full:is([aria-checked="true"], [data-checked]) > span {
|
|
1879
|
+
background: var(--md-sys-color-on-primary);
|
|
1880
|
+
transform: translateX(20px) scale(0.8571) !important;
|
|
1881
|
+
}
|
|
1882
|
+
:root[data-agy-theme="md3e"] [role="switch"].rounded-full:hover > span {
|
|
1883
|
+
background: var(--md-sys-color-on-surface-variant);
|
|
1884
|
+
}
|
|
1885
|
+
:root[data-agy-theme="md3e"] [role="switch"].rounded-full:is([aria-checked="true"], [data-checked]):hover > span {
|
|
1886
|
+
background: var(--md-sys-color-primary-container);
|
|
1887
|
+
}
|
|
1888
|
+
:root[data-agy-theme="md3e"] [role="switch"].rounded-full:active > span {
|
|
1889
|
+
transform: translateX(0) scale(1) !important;
|
|
1890
|
+
}
|
|
1891
|
+
:root[data-agy-theme="md3e"] [role="switch"].rounded-full:is([aria-checked="true"], [data-checked]):active > span {
|
|
1892
|
+
transform: translateX(20px) scale(1) !important;
|
|
1893
|
+
}
|
|
1894
|
+
|
|
1895
|
+
/* Slider: M3 Expressive's, a 16px track and a 4px handle with a gap */
|
|
1896
|
+
:root[data-agy-theme="md3e"] .agy-dialog input[type="range"] {
|
|
1897
|
+
--primary: var(--md-sys-color-primary);
|
|
1898
|
+
--secondary: var(--md-sys-color-secondary-container);
|
|
1899
|
+
height: 16px;
|
|
1900
|
+
border-radius: var(--md-sys-shape-corner-small);
|
|
1901
|
+
}
|
|
1902
|
+
:root[data-agy-theme="md3e"] .agy-dialog input[type="range"]::-webkit-slider-thumb {
|
|
1903
|
+
width: 4px;
|
|
1904
|
+
height: 36px;
|
|
1905
|
+
border-radius: 2px;
|
|
1906
|
+
background: var(--md-sys-color-primary);
|
|
1907
|
+
box-shadow: 0 0 0 4px var(--md-row, var(--md-sys-color-surface-container-high));
|
|
1908
|
+
}
|
|
1909
|
+
|
|
1910
|
+
/* Option cards (Interface Layout): filled cards; selected, the
|
|
1911
|
+
secondary-container and extra-large corners */
|
|
1912
|
+
:root[data-agy-theme="md3e"] .agy-dialog [role="radio"].rounded-xl {
|
|
1913
|
+
padding: 16px;
|
|
1914
|
+
border: 0;
|
|
1915
|
+
border-radius: var(--md-sys-shape-corner-large);
|
|
1916
|
+
background: var(--md-sys-color-surface-container-high);
|
|
1917
|
+
box-shadow: none;
|
|
1918
|
+
color: var(--md-sys-color-on-surface);
|
|
1919
|
+
transition: border-radius var(--md-fast), background-color var(--md-state);
|
|
1920
|
+
}
|
|
1921
|
+
:root[data-agy-theme="md3e"] .agy-dialog [role="radio"].rounded-xl:hover {
|
|
1922
|
+
background: color-mix(in srgb, var(--md-sys-color-on-surface) 8%, var(--md-sys-color-surface-container-high));
|
|
1923
|
+
}
|
|
1924
|
+
:root[data-agy-theme="md3e"] .agy-dialog [role="radio"].rounded-xl:is([data-checked], [aria-checked="true"]) {
|
|
1925
|
+
border-radius: var(--md-sys-shape-corner-extra-large);
|
|
1926
|
+
background: var(--md-sys-color-secondary-container);
|
|
1927
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
1928
|
+
}
|
|
1929
|
+
:root[data-agy-theme="md3e"] .agy-dialog [role="radio"].rounded-xl:is([data-checked], [aria-checked="true"]) :is(.text-muted-foreground, .text-foreground, svg) {
|
|
1930
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
1931
|
+
}
|
|
1932
|
+
|
|
1933
|
+
/* Text fields: M3 filled fields (top corners, an active indicator). Some
|
|
1934
|
+
carry Tailwind's !border / !bg-muted / !shadow-none, whose layered
|
|
1935
|
+
!important outranks any unlayered rule; they are steered through the
|
|
1936
|
+
variables those utilities read instead. */
|
|
1937
|
+
:root[data-agy-theme="md3e"] .agy-dialog :is(input.agy-field, input.bg-muted, .h-8.rounded-lg.bg-muted.border) {
|
|
1938
|
+
--tw-border-style: none;
|
|
1939
|
+
--color-muted: var(--md-sys-color-surface-container-highest);
|
|
1940
|
+
--tw-inset-shadow: inset 0 -1px 0 var(--md-sys-color-on-surface-variant);
|
|
1941
|
+
border-style: none;
|
|
1942
|
+
border-radius: var(--md-sys-shape-corner-extra-small-top) !important;
|
|
1943
|
+
background: var(--md-sys-color-surface-container-highest);
|
|
1944
|
+
box-shadow: var(--tw-inset-shadow);
|
|
1945
|
+
color: var(--md-sys-color-on-surface);
|
|
1946
|
+
font: var(--md-sys-typescale-body-large);
|
|
1947
|
+
font-size: var(--md-sys-typescale-body-large-size) !important; /* inline 12px */
|
|
1948
|
+
transition: box-shadow var(--md-state);
|
|
1949
|
+
}
|
|
1950
|
+
:root[data-agy-theme="md3e"] .agy-dialog :is(input.agy-field, input.bg-muted) {
|
|
1951
|
+
height: 40px;
|
|
1952
|
+
}
|
|
1953
|
+
:root[data-agy-theme="md3e"] .agy-dialog :is(input.agy-field:focus, input.bg-muted:focus, .h-8.rounded-lg.bg-muted.border:focus-within) {
|
|
1954
|
+
--tw-inset-shadow: inset 0 -2px 0 var(--md-sys-color-primary);
|
|
1955
|
+
outline: none;
|
|
1956
|
+
}
|
|
1957
|
+
:root[data-agy-theme="md3e"] .agy-dialog .h-8.rounded-lg.bg-muted.border {
|
|
1958
|
+
height: 48px;
|
|
1959
|
+
}
|
|
1960
|
+
:root[data-agy-theme="md3e"] .agy-dialog .h-8.rounded-lg.bg-muted.border input {
|
|
1961
|
+
font: var(--md-sys-typescale-body-large);
|
|
1962
|
+
}
|
|
1963
|
+
:root[data-agy-theme="md3e"] .agy-dialog button[aria-label="Show Remote Control QR code"] {
|
|
1964
|
+
border: 0;
|
|
1965
|
+
border-radius: var(--md-sys-shape-corner-medium);
|
|
1966
|
+
background: var(--md-sys-color-surface-container-lowest);
|
|
1967
|
+
}
|
|
1968
|
+
:root[data-agy-theme="md3e"] .agy-dialog button[aria-label$="color picker"] {
|
|
1969
|
+
border: 0;
|
|
1970
|
+
border-radius: var(--md-sys-shape-corner-full);
|
|
1971
|
+
box-shadow: inset 0 0 0 1px var(--md-sys-color-outline-variant);
|
|
1972
|
+
}
|
|
1973
|
+
|
|
1974
|
+
/* Usage rings: M3's circular progress indicator (primary on a
|
|
1975
|
+
secondary-container track, 4px, round caps; theme-host.js opens the gap
|
|
1976
|
+
between them). Low remaining quota reads in tertiary, then error. */
|
|
1977
|
+
:root[data-agy-theme="md3e"] .rounded-full:has(> svg [data-testid="quota-progress-circle"]) {
|
|
1978
|
+
background: transparent;
|
|
1979
|
+
}
|
|
1980
|
+
:root[data-agy-theme="md3e"] svg:has([data-testid="quota-progress-circle"]) circle:first-child {
|
|
1981
|
+
stroke: var(--md-sys-color-secondary-container);
|
|
1982
|
+
stroke-opacity: var(--agy-track-opacity, 1);
|
|
1983
|
+
stroke-width: 4;
|
|
1984
|
+
stroke-linecap: round;
|
|
1985
|
+
stroke-dasharray: var(--agy-track-dash, none);
|
|
1986
|
+
stroke-dashoffset: var(--agy-track-offset, 0);
|
|
1987
|
+
}
|
|
1988
|
+
:root[data-agy-theme="md3e"] [data-testid="quota-progress-circle"] {
|
|
1989
|
+
stroke: var(--md-sys-color-primary);
|
|
1990
|
+
stroke-linecap: round;
|
|
1991
|
+
}
|
|
1992
|
+
:root[data-agy-theme="md3e"] [data-testid="quota-progress-circle"]:is(.stroke-yellow-500, .stroke-amber-500, .stroke-orange-500) {
|
|
1993
|
+
stroke: var(--md-sys-color-tertiary);
|
|
1994
|
+
}
|
|
1995
|
+
:root[data-agy-theme="md3e"] [data-testid="quota-progress-circle"]:is(.stroke-red-500, .stroke-destructive) {
|
|
1996
|
+
stroke: var(--md-sys-color-error);
|
|
1997
|
+
}
|
|
1998
|
+
|
|
1999
|
+
/* Customizations (project pages): token bars as M3 linear progress (8px,
|
|
2000
|
+
secondary-container track); chart colors from the scheme; skill and rule
|
|
2001
|
+
cards filled; source tags as tonal labels */
|
|
2002
|
+
:root[data-agy-theme="md3e"] .agy-dialog {
|
|
2003
|
+
--chart-blue: var(--md-sys-color-primary);
|
|
2004
|
+
--chart-green: var(--md-sys-color-tertiary);
|
|
2005
|
+
--chart-purple: var(--md-sys-color-secondary);
|
|
2006
|
+
--chart-yellow: var(--md-sys-color-tertiary-fixed-dim);
|
|
2007
|
+
--chart-orange: var(--md-sys-color-primary-fixed-dim);
|
|
2008
|
+
--chart-red: var(--md-sys-color-error);
|
|
2009
|
+
}
|
|
2010
|
+
:root[data-agy-theme="md3e"] .agy-dialog .h-2.rounded-full.bg-muted {
|
|
2011
|
+
background: var(--md-sys-color-secondary-container);
|
|
2012
|
+
}
|
|
2013
|
+
/* skills, rules, subagents: the same segmented list */
|
|
2014
|
+
:root[data-agy-theme="md3e"] [data-testid="workspace-customizations-view"] .border.border-border.rounded-xl {
|
|
2015
|
+
display: flex;
|
|
2016
|
+
flex-direction: column;
|
|
2017
|
+
gap: 2px;
|
|
2018
|
+
border: 0;
|
|
2019
|
+
border-radius: var(--md-sys-shape-corner-large-increased);
|
|
2020
|
+
}
|
|
2021
|
+
:root[data-agy-theme="md3e"] [data-testid="workspace-customizations-view"] .border.border-border.rounded-xl > div {
|
|
2022
|
+
padding: 12px 16px;
|
|
2023
|
+
border: 0;
|
|
2024
|
+
border-radius: var(--md-sys-shape-corner-extra-small);
|
|
2025
|
+
background: var(--md-row);
|
|
2026
|
+
}
|
|
2027
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-card p {
|
|
2028
|
+
font: var(--md-sys-typescale-body-medium);
|
|
2029
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
2030
|
+
}
|
|
2031
|
+
/* project folders: 48px rows; Add Folder closes the group as a list action */
|
|
2032
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-card > .h-9 {
|
|
2033
|
+
height: 48px;
|
|
2034
|
+
padding: 0 8px 0 16px;
|
|
2035
|
+
}
|
|
2036
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-card [data-testid="project-add-folder-button"].bg-secondary {
|
|
2037
|
+
height: 48px;
|
|
2038
|
+
border-radius: var(--md-sys-shape-corner-extra-small) !important;
|
|
2039
|
+
background: var(--md-row);
|
|
2040
|
+
color: var(--md-sys-color-primary);
|
|
2041
|
+
}
|
|
2042
|
+
:root[data-agy-theme="md3e"] .agy-dialog .agy-card [data-testid="project-add-folder-button"].bg-secondary:hover {
|
|
2043
|
+
background: color-mix(in srgb, var(--md-sys-color-primary) 8%, var(--md-row));
|
|
2044
|
+
color: var(--md-sys-color-primary);
|
|
2045
|
+
}
|
|
2046
|
+
:root[data-agy-theme="md3e"] .agy-dialog span.rounded:is(.bg-blue-500\/10, .bg-purple-500\/10, .bg-green-500\/10, .bg-orange-500\/10) {
|
|
2047
|
+
padding: 2px 8px;
|
|
2048
|
+
border-radius: var(--md-sys-shape-corner-small);
|
|
2049
|
+
font: var(--md-sys-typescale-label-medium);
|
|
2050
|
+
}
|
|
2051
|
+
:root[data-agy-theme="md3e"] .agy-dialog span.rounded.bg-blue-500\/10 {
|
|
2052
|
+
background: var(--md-sys-color-secondary-container);
|
|
2053
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
2054
|
+
}
|
|
2055
|
+
:root[data-agy-theme="md3e"] .agy-dialog span.rounded:is(.bg-purple-500\/10, .bg-green-500\/10, .bg-orange-500\/10) {
|
|
2056
|
+
background: var(--md-sys-color-tertiary-container);
|
|
2057
|
+
color: var(--md-sys-color-on-tertiary-container);
|
|
2058
|
+
}
|
|
2059
|
+
|
|
2060
|
+
/* Usage (model menu > View Usage): the menu's segmented groups of two-line
|
|
2061
|
+
items. Headline label-large, the reset time body-small, the amount left
|
|
2062
|
+
label-medium beside a 24px circular indicator (the rings above). */
|
|
2063
|
+
:root[data-agy-theme="md3e"] [role="menu"] > .select-none > .justify-between:first-child {
|
|
2064
|
+
min-height: 36px;
|
|
2065
|
+
padding: 4px 12px;
|
|
2066
|
+
font: var(--md-sys-typescale-label-large);
|
|
2067
|
+
letter-spacing: var(--md-sys-typescale-label-large-tracking);
|
|
2068
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
2069
|
+
}
|
|
2070
|
+
:root[data-agy-theme="md3e"] [role="menu"] > .select-none > .flex-col.gap-1 {
|
|
2071
|
+
gap: 8px;
|
|
2072
|
+
}
|
|
2073
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role="group"].gap-px {
|
|
2074
|
+
gap: 2px;
|
|
2075
|
+
}
|
|
2076
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role="group"].gap-px > [role="presentation"] {
|
|
2077
|
+
padding: 4px 12px 6px;
|
|
2078
|
+
font: var(--md-sys-typescale-title-small);
|
|
2079
|
+
letter-spacing: var(--md-sys-typescale-title-small-tracking);
|
|
2080
|
+
color: var(--md-sys-color-primary) !important;
|
|
2081
|
+
}
|
|
2082
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role="group"] > .grid.gap-x-3 {
|
|
2083
|
+
min-height: 48px;
|
|
2084
|
+
padding: 8px 12px 8px 16px;
|
|
2085
|
+
column-gap: 16px;
|
|
2086
|
+
row-gap: 0;
|
|
2087
|
+
border-radius: var(--md-sys-shape-corner-extra-small);
|
|
2088
|
+
background: var(--md-sys-color-surface-container);
|
|
2089
|
+
}
|
|
2090
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role="group"] > [role="presentation"] + .grid.gap-x-3 {
|
|
2091
|
+
border-top-left-radius: var(--md-sys-shape-corner-medium);
|
|
2092
|
+
border-top-right-radius: var(--md-sys-shape-corner-medium);
|
|
2093
|
+
}
|
|
2094
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role="group"] > .grid.gap-x-3:last-child {
|
|
2095
|
+
border-bottom-left-radius: var(--md-sys-shape-corner-medium);
|
|
2096
|
+
border-bottom-right-radius: var(--md-sys-shape-corner-medium);
|
|
2097
|
+
}
|
|
2098
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role="group"] > .grid.gap-x-3 > span:first-child {
|
|
2099
|
+
font: var(--md-sys-typescale-label-large);
|
|
2100
|
+
letter-spacing: var(--md-sys-typescale-label-large-tracking);
|
|
2101
|
+
color: var(--md-sys-color-on-surface);
|
|
2102
|
+
}
|
|
2103
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role="group"] > .grid.gap-x-3 > .col-span-2 {
|
|
2104
|
+
font: var(--md-sys-typescale-body-small);
|
|
2105
|
+
letter-spacing: var(--md-sys-typescale-body-small-tracking);
|
|
2106
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
2107
|
+
}
|
|
2108
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role="group"] > .grid.gap-x-3 > span:nth-child(2) {
|
|
2109
|
+
gap: 12px;
|
|
2110
|
+
font: var(--md-sys-typescale-label-medium);
|
|
2111
|
+
letter-spacing: var(--md-sys-typescale-label-medium-tracking);
|
|
2112
|
+
font-variant-numeric: tabular-nums;
|
|
2113
|
+
}
|
|
2114
|
+
:root[data-agy-theme="md3e"] [role="menu"] [role="group"] > .grid.gap-x-3 .w-4.h-4 {
|
|
2115
|
+
width: 24px;
|
|
2116
|
+
height: 24px;
|
|
2117
|
+
}
|
|
2118
|
+
|
|
2119
|
+
/* "Restart to Update": an M3 Expressive extra-small filled button (32px,
|
|
2120
|
+
label-large) with a leading refresh icon in place of the trailing arrow;
|
|
2121
|
+
pressed, its corners close to medium. The app's pulses are stilled. */
|
|
2122
|
+
:root[data-agy-theme="md3e"] [data-testid="app-update-button"] {
|
|
2123
|
+
animation: none !important;
|
|
2124
|
+
}
|
|
2125
|
+
:root[data-agy-theme="md3e"] [data-testid="app-update-button"]:not(.w-6) {
|
|
2126
|
+
width: auto;
|
|
2127
|
+
height: 32px;
|
|
2128
|
+
padding: 0 14px 0 10px;
|
|
2129
|
+
gap: 6px;
|
|
2130
|
+
border-radius: 16px;
|
|
2131
|
+
background: var(--md-sys-color-primary);
|
|
2132
|
+
color: var(--md-sys-color-on-primary);
|
|
2133
|
+
font: var(--md-sys-typescale-label-large);
|
|
2134
|
+
letter-spacing: var(--md-sys-typescale-label-large-tracking);
|
|
2135
|
+
transition: border-radius var(--md-fast), background-color var(--md-state);
|
|
2136
|
+
}
|
|
2137
|
+
:root[data-agy-theme="md3e"] [data-testid="app-update-button"]:not(.w-6)::before {
|
|
2138
|
+
content: "";
|
|
2139
|
+
flex: none;
|
|
2140
|
+
width: 18px;
|
|
2141
|
+
height: 18px;
|
|
2142
|
+
background: currentColor;
|
|
2143
|
+
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.65 6.35A7.96 7.96 0 0 0 12 4a8 8 0 1 0 7.73 10h-2.08A6 6 0 1 1 12 6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z'/%3E%3C/svg%3E") center / 18px no-repeat;
|
|
2144
|
+
}
|
|
2145
|
+
:root[data-agy-theme="md3e"] [data-testid="app-update-button"]:not(.w-6) > span + span {
|
|
2146
|
+
display: none;
|
|
2147
|
+
}
|
|
2148
|
+
:root[data-agy-theme="md3e"] [data-testid="app-update-button"]:not(.w-6):hover {
|
|
2149
|
+
background: color-mix(in srgb, var(--md-sys-color-on-primary) 8%, var(--md-sys-color-primary));
|
|
2150
|
+
}
|
|
2151
|
+
:root[data-agy-theme="md3e"] [data-testid="app-update-button"]:not(.w-6):active {
|
|
2152
|
+
border-radius: var(--md-sys-shape-corner-medium);
|
|
2153
|
+
}
|
|
2154
|
+
:root[data-agy-theme="md3e"] [data-testid="app-update-button"].w-6 {
|
|
2155
|
+
width: 32px;
|
|
2156
|
+
height: 32px;
|
|
2157
|
+
border-radius: var(--md-sys-shape-corner-full);
|
|
2158
|
+
color: var(--md-sys-color-primary);
|
|
2159
|
+
}
|
|
2160
|
+
|
|
2161
|
+
/* Artifact cards (a plan, a report the agent wrote): M3 filled cards, no
|
|
2162
|
+
outline; the title title-small, the summary body-medium; Proceed a filled
|
|
2163
|
+
button, Open a tonal split button (2px apart, 4px inner corners) */
|
|
2164
|
+
:root[data-agy-theme="md3e"] :is([data-testid="artifact-card"], [data-testid="voice-transcript-card"]).artifact-card {
|
|
2165
|
+
padding: 16px;
|
|
2166
|
+
gap: 8px;
|
|
2167
|
+
border: 0;
|
|
2168
|
+
border-radius: var(--md-sys-shape-corner-large);
|
|
2169
|
+
background: var(--md-sys-color-surface-container-high);
|
|
2170
|
+
transition: background-color var(--md-state);
|
|
2171
|
+
}
|
|
2172
|
+
:root[data-agy-theme="md3e"] :is([data-testid="artifact-card"], [data-testid="voice-transcript-card"]).artifact-card:hover {
|
|
2173
|
+
background: color-mix(in srgb, var(--md-sys-color-on-surface) 8%, var(--md-sys-color-surface-container-high));
|
|
2174
|
+
}
|
|
2175
|
+
:root[data-agy-theme="md3e"] [data-testid="artifact-card-header"] {
|
|
2176
|
+
font: var(--md-sys-typescale-title-small);
|
|
2177
|
+
letter-spacing: var(--md-sys-typescale-title-small-tracking);
|
|
2178
|
+
color: var(--md-sys-color-on-surface);
|
|
2179
|
+
}
|
|
2180
|
+
:root[data-agy-theme="md3e"] [data-testid="artifact-card-header"] .text-secondary-foreground {
|
|
2181
|
+
font: var(--md-sys-typescale-body-medium);
|
|
2182
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
2183
|
+
}
|
|
2184
|
+
:root[data-agy-theme="md3e"] .artifact-card .agy-button-sm {
|
|
2185
|
+
height: 40px;
|
|
2186
|
+
padding: 0 16px;
|
|
2187
|
+
border: 0;
|
|
2188
|
+
border-radius: 20px !important;
|
|
2189
|
+
font: var(--md-sys-typescale-label-large);
|
|
2190
|
+
letter-spacing: var(--md-sys-typescale-label-large-tracking);
|
|
2191
|
+
transition: border-radius var(--md-fast), background-color var(--md-state);
|
|
2192
|
+
}
|
|
2193
|
+
:root[data-agy-theme="md3e"] .artifact-card .agy-button-sm:active {
|
|
2194
|
+
border-radius: var(--md-sys-shape-corner-medium) !important;
|
|
2195
|
+
}
|
|
2196
|
+
:root[data-agy-theme="md3e"] .artifact-card .agy-button-sm.proceed-button {
|
|
2197
|
+
background: var(--md-sys-color-primary);
|
|
2198
|
+
color: var(--md-sys-color-on-primary);
|
|
2199
|
+
}
|
|
2200
|
+
:root[data-agy-theme="md3e"] .artifact-card .agy-button-sm:not(.proceed-button) {
|
|
2201
|
+
background: var(--md-sys-color-secondary-container);
|
|
2202
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
2203
|
+
}
|
|
2204
|
+
:root[data-agy-theme="md3e"] .artifact-card .agy-button-sm:not(.proceed-button):hover {
|
|
2205
|
+
background: color-mix(in srgb, var(--md-sys-color-on-secondary-container) 8%, var(--md-sys-color-secondary-container));
|
|
2206
|
+
}
|
|
2207
|
+
:root[data-agy-theme="md3e"] .artifact-card .inline-flex.items-stretch {
|
|
2208
|
+
gap: 2px;
|
|
2209
|
+
}
|
|
2210
|
+
:root[data-agy-theme="md3e"] .artifact-card .agy-button-sm.rounded-r-none {
|
|
2211
|
+
border-top-right-radius: var(--md-sys-shape-corner-extra-small) !important;
|
|
2212
|
+
border-bottom-right-radius: var(--md-sys-shape-corner-extra-small) !important;
|
|
2213
|
+
}
|
|
2214
|
+
:root[data-agy-theme="md3e"] .artifact-card .agy-button-sm.rounded-l-none {
|
|
2215
|
+
width: 40px;
|
|
2216
|
+
padding: 0;
|
|
2217
|
+
border-left: 0;
|
|
2218
|
+
border-top-left-radius: var(--md-sys-shape-corner-extra-small) !important;
|
|
2219
|
+
border-bottom-left-radius: var(--md-sys-shape-corner-extra-small) !important;
|
|
2220
|
+
}
|
|
2221
|
+
:root[data-agy-theme="md3e"] .artifact-card .agy-button-sm.rounded-l-none[aria-expanded="true"] {
|
|
2222
|
+
border-radius: 20px !important;
|
|
2223
|
+
}
|
|
2224
|
+
|
|
2225
|
+
/* Chips in a sent message (quotes, files, terminals): they take the bubble's
|
|
2226
|
+
own ink, not the app's text colors, which are meant for the panel; a 12%
|
|
2227
|
+
tint of that ink marks them, the icon and supporting parts at 80% */
|
|
2228
|
+
:root[data-agy-theme="md3e"] .agy-user-bubble .inline-pill {
|
|
2229
|
+
color: inherit;
|
|
2230
|
+
background: color-mix(in srgb, currentColor 12%, transparent);
|
|
2231
|
+
border-radius: 8px;
|
|
2232
|
+
}
|
|
2233
|
+
:root[data-agy-theme="md3e"] .agy-user-bubble .inline-pill :is(.text-foreground, .text-secondary-foreground) {
|
|
2234
|
+
color: inherit;
|
|
2235
|
+
}
|
|
2236
|
+
:root[data-agy-theme="md3e"] .agy-user-bubble .inline-pill .text-muted-foreground {
|
|
2237
|
+
color: color-mix(in srgb, currentColor 80%, transparent);
|
|
2238
|
+
}
|
|
2239
|
+
|
|
2240
|
+
/* 80 — Voice Mode & Gemini Live: Material 3 Expressive */
|
|
2241
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-live-pill"] {
|
|
2242
|
+
background: var(--md-sys-color-secondary-container) !important;
|
|
2243
|
+
color: var(--md-sys-color-on-secondary-container) !important;
|
|
2244
|
+
border-color: transparent !important;
|
|
2245
|
+
border-radius: var(--md-sys-shape-corner-full) !important;
|
|
2246
|
+
transition: background-color var(--md-state), color var(--md-state), box-shadow var(--md-color-fast) !important;
|
|
2247
|
+
}
|
|
2248
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-live-pill"]:hover {
|
|
2249
|
+
box-shadow: var(--md-sys-elevation-level1) !important;
|
|
2250
|
+
}
|
|
2251
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-start-button"] {
|
|
2252
|
+
color: inherit !important;
|
|
2253
|
+
}
|
|
2254
|
+
|
|
2255
|
+
/* Voice Picker Dialog — M3 Modal Dialog */
|
|
2256
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-picker"] {
|
|
2257
|
+
background: var(--md-sys-color-surface-container-high) !important;
|
|
2258
|
+
border-color: transparent !important;
|
|
2259
|
+
border-radius: var(--md-sys-shape-corner-extra-large) !important;
|
|
2260
|
+
box-shadow: var(--md-sys-elevation-level3) !important;
|
|
2261
|
+
}
|
|
2262
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-picker"] [data-testid="voice-picker-close"] {
|
|
2263
|
+
color: var(--md-sys-color-on-surface-variant) !important;
|
|
2264
|
+
border-radius: var(--md-sys-shape-corner-full) !important;
|
|
2265
|
+
}
|
|
2266
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-picker"] [data-testid="voice-picker-close"]:hover {
|
|
2267
|
+
background: var(--md-hover) !important;
|
|
2268
|
+
color: var(--md-sys-color-on-surface) !important;
|
|
2269
|
+
}
|
|
2270
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-picker"] [data-testid="voice-picker-name"] {
|
|
2271
|
+
color: var(--md-sys-color-on-surface) !important;
|
|
2272
|
+
font: var(--md-sys-typescale-headline-small) !important;
|
|
2273
|
+
}
|
|
2274
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-picker"] .voice-picker-dot > span {
|
|
2275
|
+
background: var(--md-sys-color-outline-variant) !important;
|
|
2276
|
+
}
|
|
2277
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-picker"] .voice-picker-dot[aria-current="true"] > span {
|
|
2278
|
+
background: var(--md-sys-color-primary) !important;
|
|
2279
|
+
box-shadow: none !important;
|
|
2280
|
+
}
|
|
2281
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-picker"] button[data-testid="voice-picker-use"] {
|
|
2282
|
+
background: var(--md-sys-color-primary) !important;
|
|
2283
|
+
color: var(--md-sys-color-on-primary) !important;
|
|
2284
|
+
border-radius: var(--md-sys-shape-corner-full) !important;
|
|
2285
|
+
font: var(--md-sys-typescale-label-large) !important;
|
|
2286
|
+
box-shadow: var(--md-sys-elevation-level1) !important;
|
|
2287
|
+
transition: box-shadow var(--md-color-fast), background-color var(--md-state) !important;
|
|
2288
|
+
}
|
|
2289
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-picker"] button[data-testid="voice-picker-use"]:hover {
|
|
2290
|
+
box-shadow: var(--md-sys-elevation-level2) !important;
|
|
2291
|
+
}
|
|
2292
|
+
|
|
2293
|
+
/* Active Voice Docked Panel — M3 Bottom Sheet */
|
|
2294
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] {
|
|
2295
|
+
background: var(--md-sys-color-surface-container-high) !important;
|
|
2296
|
+
background-image: none !important;
|
|
2297
|
+
border-color: transparent !important;
|
|
2298
|
+
border-radius: var(--md-sys-shape-corner-extra-large) var(--md-sys-shape-corner-extra-large) 0 0 !important;
|
|
2299
|
+
box-shadow: var(--md-sys-elevation-level1) !important;
|
|
2300
|
+
backdrop-filter: none !important;
|
|
2301
|
+
}
|
|
2302
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-end-button"],
|
|
2303
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-call-end"] {
|
|
2304
|
+
background: var(--md-sys-color-error) !important;
|
|
2305
|
+
color: var(--md-sys-color-on-error) !important;
|
|
2306
|
+
border-radius: var(--md-sys-shape-corner-full) !important;
|
|
2307
|
+
font: var(--md-sys-typescale-label-medium) !important;
|
|
2308
|
+
}
|
|
2309
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-mute-button"],
|
|
2310
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-call-agent-mute"],
|
|
2311
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-call-speed"],
|
|
2312
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-call-collapse"] {
|
|
2313
|
+
border-radius: var(--md-sys-shape-corner-full) !important;
|
|
2314
|
+
}
|
|
2315
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-mute-button"]:hover,
|
|
2316
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-call-agent-mute"]:hover,
|
|
2317
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-call-speed"]:hover,
|
|
2318
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-call-collapse"]:hover {
|
|
2319
|
+
background: var(--md-hover) !important;
|
|
2320
|
+
}
|
|
2321
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-speed-fill"] {
|
|
2322
|
+
background: var(--md-sys-color-primary) !important;
|
|
2323
|
+
}
|
|
2324
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="voice-speed-track"] {
|
|
2325
|
+
background: var(--md-sys-color-surface-container-highest) !important;
|
|
2326
|
+
}
|
|
2327
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="live-lead"],
|
|
2328
|
+
:root[data-agy-theme="md3e"] [data-testid="live-docked"] [data-testid="live-body"] {
|
|
2329
|
+
color: var(--md-sys-color-on-surface) !important;
|
|
2330
|
+
}
|
|
2331
|
+
|
|
2332
|
+
/* Speaking glow: the app's own canvas, with no blur on top; its ring */
|
|
2333
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-speaking-glow"] .voice-glow-ring {
|
|
2334
|
+
box-shadow: 0 0 0 1px var(--md-sys-color-outline-variant) !important;
|
|
2335
|
+
}
|
|
2336
|
+
|
|
2337
|
+
/* In-Chat Separator Marker */
|
|
2338
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-chat-marker"] {
|
|
2339
|
+
color: var(--md-sys-color-on-surface-variant) !important;
|
|
2340
|
+
font: var(--md-sys-typescale-label-medium) !important;
|
|
2341
|
+
}
|
|
2342
|
+
:root[data-agy-theme="md3e"] div:has(> span [data-testid="voice-chat-marker"]) .bg-secondary,
|
|
2343
|
+
:root[data-agy-theme="md3e"] div:has(> [data-testid="voice-chat-marker"]) .bg-secondary,
|
|
2344
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-chat-marker"] ~ div.bg-secondary {
|
|
2345
|
+
background-color: var(--md-sys-color-outline-variant) !important;
|
|
2346
|
+
}
|
|
2347
|
+
|
|
2348
|
+
/* In-Chat Voice Transcript Card */
|
|
2349
|
+
:root[data-agy-theme="md3e"] [data-testid="voice-transcript-card"] {
|
|
2350
|
+
background: var(--md-sys-color-surface-container) !important;
|
|
2351
|
+
border-color: transparent !important;
|
|
2352
|
+
border-radius: var(--md-sys-shape-corner-large) !important;
|
|
1395
2353
|
}
|
|
1396
2354
|
:root[data-agy-theme="md3e"] [data-testid="voice-transcript-card"]:hover {
|
|
1397
2355
|
background: var(--md-sys-color-surface-container-high) !important;
|
|
1398
2356
|
box-shadow: var(--md-sys-elevation-level1) !important;
|
|
1399
2357
|
}
|
|
1400
2358
|
|
|
2359
|
+
/* 90 — Swarm and other sidecar panes: themes/frames/md3e.css. They are
|
|
2360
|
+
cross-origin frames; frame-host.js loads that stylesheet inside them. */
|