@expressivecss/expressive 0.12.0 → 0.13.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 +231 -1
- package/README.md +37 -1
- package/dist/css/expressive.css +5111 -36
- package/dist/css/expressive.css.map +1 -1
- package/dist/css/expressive.min.css +1 -1
- package/dist/css/expressive.min.css.map +1 -1
- package/dist/fonts/material-symbols-outlined.woff2 +0 -0
- package/dist/fonts/material-symbols-rounded.woff2 +0 -0
- package/dist/fonts/material-symbols-sharp.woff2 +0 -0
- package/dist/js/chunks/{chunk-HLDXZ7XB.mjs → chunk-3CLXLPYS.mjs} +2 -2
- package/dist/js/chunks/chunk-3DHK5CZU.mjs +105 -0
- package/dist/js/chunks/chunk-3DHK5CZU.mjs.map +7 -0
- package/dist/js/chunks/chunk-4PWAPV6F.mjs +7 -0
- package/dist/js/chunks/chunk-4PWAPV6F.mjs.map +7 -0
- package/dist/js/chunks/{chunk-HB6IW7QQ.mjs → chunk-55IA2XUC.mjs} +2 -2
- package/dist/js/chunks/chunk-CCWDV5CR.mjs +292 -0
- package/dist/js/chunks/chunk-CCWDV5CR.mjs.map +7 -0
- package/dist/js/chunks/chunk-DTKR54I6.mjs +270 -0
- package/dist/js/chunks/chunk-DTKR54I6.mjs.map +7 -0
- package/dist/js/chunks/chunk-GVGT6MIU.mjs +47 -0
- package/dist/js/chunks/chunk-GVGT6MIU.mjs.map +7 -0
- package/dist/js/chunks/chunk-HKT2S7VM.mjs +48 -0
- package/dist/js/chunks/chunk-HKT2S7VM.mjs.map +7 -0
- package/dist/js/chunks/chunk-K4CJCRGE.mjs +262 -0
- package/dist/js/chunks/chunk-K4CJCRGE.mjs.map +7 -0
- package/dist/js/chunks/chunk-LNCCYGPC.mjs +163 -0
- package/dist/js/chunks/chunk-LNCCYGPC.mjs.map +7 -0
- package/dist/js/chunks/chunk-NQLC3YMW.mjs +1 -0
- package/dist/js/chunks/chunk-O5XPWXIQ.mjs +406 -0
- package/dist/js/chunks/chunk-O5XPWXIQ.mjs.map +7 -0
- package/dist/js/chunks/chunk-P3G3QHII.mjs +166 -0
- package/dist/js/chunks/chunk-P3G3QHII.mjs.map +7 -0
- package/dist/js/chunks/{chunk-H2WA4XHH.mjs → chunk-PLYXLSH3.mjs} +4 -4
- package/dist/js/chunks/chunk-QKWPQK5N.mjs +179 -0
- package/dist/js/chunks/chunk-QKWPQK5N.mjs.map +7 -0
- package/dist/js/chunks/chunk-RHRQKTTX.mjs +139 -0
- package/dist/js/chunks/chunk-RHRQKTTX.mjs.map +7 -0
- package/dist/js/chunks/chunk-SPETGK25.mjs +59 -0
- package/dist/js/chunks/chunk-SPETGK25.mjs.map +7 -0
- package/dist/js/chunks/{chunk-YSBCHYXP.mjs → chunk-U2OTHOTI.mjs} +116 -12
- package/dist/js/chunks/chunk-U2OTHOTI.mjs.map +7 -0
- package/dist/js/chunks/chunk-VTLBW7QS.mjs +124 -0
- package/dist/js/chunks/chunk-VTLBW7QS.mjs.map +7 -0
- package/dist/js/chunks/{chunk-RFZZCYVU.mjs → chunk-XGHORT7J.mjs} +2 -2
- package/dist/js/chunks/{chunk-HNFSMIBY.mjs → chunk-XH6BEEMY.mjs} +69 -16
- package/dist/js/chunks/chunk-XH6BEEMY.mjs.map +7 -0
- package/dist/js/expressive.cjs +2209 -32
- package/dist/js/expressive.cjs.map +4 -4
- package/dist/js/expressive.js +2209 -32
- package/dist/js/expressive.js.map +4 -4
- package/dist/js/expressive.min.js +10 -10
- package/dist/js/expressive.min.js.map +4 -4
- package/dist/js/expressive.mjs +68 -20
- package/dist/js/expressive.mjs.map +1 -1
- package/dist/js/internal/behaviors/forms.mjs +1 -1
- package/dist/js/internal/components/autocomplete.mjs +2 -2
- package/dist/js/internal/components/barChart.mjs +10 -0
- package/dist/js/internal/components/barChart.mjs.map +7 -0
- package/dist/js/internal/components/chips.mjs +3 -3
- package/dist/js/internal/components/columnChart.mjs +9 -0
- package/dist/js/internal/components/columnChart.mjs.map +7 -0
- package/dist/js/internal/components/commandPalette.mjs +9 -0
- package/dist/js/internal/components/commandPalette.mjs.map +7 -0
- package/dist/js/internal/components/datepicker.mjs +3 -3
- package/dist/js/internal/components/heatmapChart.mjs +9 -0
- package/dist/js/internal/components/heatmapChart.mjs.map +7 -0
- package/dist/js/internal/components/index.mjs +65 -17
- package/dist/js/internal/components/lineChart.mjs +12 -0
- package/dist/js/internal/components/lineChart.mjs.map +7 -0
- package/dist/js/internal/components/menu.mjs +1 -1
- package/dist/js/internal/components/messageScroller.mjs +9 -0
- package/dist/js/internal/components/messageScroller.mjs.map +7 -0
- package/dist/js/internal/components/mixedChart.mjs +10 -0
- package/dist/js/internal/components/mixedChart.mjs.map +7 -0
- package/dist/js/internal/components/pieChart.mjs +9 -0
- package/dist/js/internal/components/pieChart.mjs.map +7 -0
- package/dist/js/internal/components/questionnaire.mjs +9 -0
- package/dist/js/internal/components/questionnaire.mjs.map +7 -0
- package/dist/js/internal/components/radarChart.mjs +9 -0
- package/dist/js/internal/components/radarChart.mjs.map +7 -0
- package/dist/js/internal/components/radialChart.mjs +9 -0
- package/dist/js/internal/components/radialChart.mjs.map +7 -0
- package/dist/js/internal/components/registry.mjs +23 -11
- package/dist/js/internal/components/richTextEditor.mjs +9 -0
- package/dist/js/internal/components/richTextEditor.mjs.map +7 -0
- package/dist/js/internal/components/select.mjs +2 -2
- package/dist/js/modular.mjs +68 -20
- package/dist/types/behaviors/forms.d.ts +22 -0
- package/dist/types/components/barChart.d.ts +24 -0
- package/dist/types/components/columnChart.d.ts +21 -0
- package/dist/types/components/commandPalette.d.ts +96 -0
- package/dist/types/components/heatmapChart.d.ts +49 -0
- package/dist/types/components/index.d.ts +12 -0
- package/dist/types/components/lineChart.d.ts +134 -0
- package/dist/types/components/menu.d.ts +31 -0
- package/dist/types/components/messageScroller.d.ts +111 -0
- package/dist/types/components/mixedChart.d.ts +25 -0
- package/dist/types/components/pieChart.d.ts +40 -0
- package/dist/types/components/questionnaire.d.ts +96 -0
- package/dist/types/components/radarChart.d.ts +39 -0
- package/dist/types/components/radialChart.d.ts +45 -0
- package/dist/types/components/registry.d.ts +44 -0
- package/dist/types/components/richTextEditor.d.ts +71 -0
- package/dist/types/modular.d.ts +10 -1
- package/package.json +4 -1
- package/src/sass/README.md +3 -6
- package/src/sass/abstracts/_index.scss +1 -1
- package/src/sass/abstracts/_mixins.scss +226 -0
- package/src/sass/abstracts/_variables.scss +14 -0
- package/src/sass/base/_typography.scss +45 -0
- package/src/sass/components/_accordion.scss +161 -0
- package/src/sass/components/_aura.scss +119 -0
- package/src/sass/components/_avatar.scss +86 -0
- package/src/sass/components/_bar-chart.scss +285 -0
- package/src/sass/components/_bottom-sheet.scss +1 -0
- package/src/sass/components/_button-groups.scss +13 -3
- package/src/sass/components/_cards.scss +16 -13
- package/src/sass/components/_column-chart.scss +134 -0
- package/src/sass/components/_command-palette.scss +140 -0
- package/src/sass/components/_countdown.scss +89 -0
- package/src/sass/components/_data-table.scss +188 -0
- package/src/sass/components/_dialog.scss +1 -0
- package/src/sass/components/_empty-state.scss +78 -0
- package/src/sass/components/_expanding-card.scss +3 -0
- package/src/sass/components/_heatmap-chart.scss +156 -0
- package/src/sass/components/_index.scss +27 -0
- package/src/sass/components/_kpi.scss +162 -0
- package/src/sass/components/_line-chart.scss +102 -0
- package/src/sass/components/_marquee.scss +111 -0
- package/src/sass/components/_menu.scss +10 -0
- package/src/sass/components/_message-scroller.scss +66 -0
- package/src/sass/components/_message.scss +202 -0
- package/src/sass/components/_mixed-chart.scss +157 -0
- package/src/sass/components/_navigation-bar.scss +1 -0
- package/src/sass/components/_navigation-rail.scss +9 -0
- package/src/sass/components/_pie-chart.scss +203 -0
- package/src/sass/components/_popover.scss +112 -0
- package/src/sass/components/_questionnaire.scss +144 -0
- package/src/sass/components/_radar-chart.scss +205 -0
- package/src/sass/components/_radial-chart.scss +174 -0
- package/src/sass/components/_rich-text-editor.scss +99 -0
- package/src/sass/components/_search.scss +1 -0
- package/src/sass/components/_side-sheet.scss +1 -0
- package/src/sass/components/_skeleton.scss +81 -0
- package/src/sass/components/_snackbar.scss +1 -0
- package/src/sass/components/_stat.scss +86 -0
- package/src/sass/components/_stepper.scss +190 -0
- package/src/sass/components/_timeline.scss +114 -0
- package/src/sass/components/_toolbar.scss +1 -0
- package/src/sass/components/_tooltip.scss +2 -0
- package/src/sass/components/_tree.scss +139 -0
- package/src/sass/components/forms/_drop-zone.scss +128 -0
- package/src/sass/components/forms/_index.scss +2 -0
- package/src/sass/components/forms/_input-fields.scss +133 -2
- package/src/sass/components/forms/_rating.scss +165 -0
- package/src/sass/tokens/_reference.scss +3 -15
- package/src/sass/utilities/_index.scss +2 -0
- package/src/sass/utilities/_scroll-area.scss +35 -0
- package/src/sass/utilities/_shapes.scss +164 -0
- package/dist/js/chunks/chunk-G3I5H2U3.mjs +0 -7
- package/dist/js/chunks/chunk-G3I5H2U3.mjs.map +0 -7
- package/dist/js/chunks/chunk-HNFSMIBY.mjs.map +0 -7
- package/dist/js/chunks/chunk-PSSHQWCX.mjs +0 -100
- package/dist/js/chunks/chunk-PSSHQWCX.mjs.map +0 -7
- package/dist/js/chunks/chunk-WWPAPHMA.mjs +0 -1
- package/dist/js/chunks/chunk-YSBCHYXP.mjs.map +0 -7
- /package/dist/js/chunks/{chunk-HLDXZ7XB.mjs.map → chunk-3CLXLPYS.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-HB6IW7QQ.mjs.map → chunk-55IA2XUC.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-WWPAPHMA.mjs.map → chunk-NQLC3YMW.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-H2WA4XHH.mjs.map → chunk-PLYXLSH3.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-RFZZCYVU.mjs.map → chunk-XGHORT7J.mjs.map} +0 -0
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
@use "../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// Bar chart. The column chart's markup and runtime turned on its side:
|
|
4
|
+
// BarChart draws each row of the table as a band of bars growing from zero
|
|
5
|
+
// along the inline axis, with the row's label at the inline start. The
|
|
6
|
+
// plot is as tall as its rows, so --md-comp-bar-chart-height does not
|
|
7
|
+
// apply; set the row height instead.
|
|
8
|
+
//
|
|
9
|
+
// The spans carry the column chart's --top and --bottom, the space after
|
|
10
|
+
// and before each bar on the value axis. They are read across the plot,
|
|
11
|
+
// and swapped when BarChart marks the bars .rtl, where they grow leftwards.
|
|
12
|
+
//
|
|
13
|
+
// Modifiers: .stacked draws one bar per row with each series after the
|
|
14
|
+
// ones before it, .split separates stacked segments and rounds each one,
|
|
15
|
+
// .track draws a full-width track behind each row's bars, .values writes
|
|
16
|
+
// each cell's text from its bar's base, .sparkline is a small chart with
|
|
17
|
+
// no labels, grid, legend or tooltip.
|
|
18
|
+
//
|
|
19
|
+
// Tokens:
|
|
20
|
+
// --md-comp-bar-chart-row-height 40px (sparkline 24px)
|
|
21
|
+
// --md-comp-bar-chart-bar-height 60% of each row's height
|
|
22
|
+
// --md-comp-bar-chart-shape 4px, the bar's end radius
|
|
23
|
+
// --md-comp-bar-chart-track-color surface-container-highest
|
|
24
|
+
// --md-comp-bar-chart-grid-color outline-variant
|
|
25
|
+
// --md-comp-bar-chart-color-1..4 primary, tertiary, secondary,
|
|
26
|
+
// on-surface-variant
|
|
27
|
+
// --md-comp-bar-chart-on-color-1..4 on-primary, on-tertiary,
|
|
28
|
+
// on-secondary, surface; .values text
|
|
29
|
+
|
|
30
|
+
@include chart("bar-chart");
|
|
31
|
+
|
|
32
|
+
.bar-chart {
|
|
33
|
+
--md-comp-bar-chart-row-height: 40px;
|
|
34
|
+
--md-comp-bar-chart-bar-height: 60%;
|
|
35
|
+
--md-comp-bar-chart-shape: 4px;
|
|
36
|
+
--md-comp-bar-chart-track-color: var(--md-sys-color-surface-container-highest);
|
|
37
|
+
--md-comp-bar-chart-on-color-1: var(--md-sys-color-on-primary);
|
|
38
|
+
--md-comp-bar-chart-on-color-2: var(--md-sys-color-on-tertiary);
|
|
39
|
+
--md-comp-bar-chart-on-color-3: var(--md-sys-color-on-secondary);
|
|
40
|
+
--md-comp-bar-chart-on-color-4: var(--md-sys-color-surface);
|
|
41
|
+
|
|
42
|
+
// Labels beside the plot, up to 40% of the width; everything else spans
|
|
43
|
+
// both columns. Dense flow puts the labels in the plot's row.
|
|
44
|
+
// A stretched figure, as in a grid of cards, keeps its rows at their size.
|
|
45
|
+
display: grid;
|
|
46
|
+
grid-template-columns: fit-content(40%) minmax(0, 1fr);
|
|
47
|
+
grid-auto-flow: row dense;
|
|
48
|
+
align-content: start;
|
|
49
|
+
column-gap: 12px;
|
|
50
|
+
|
|
51
|
+
> * {
|
|
52
|
+
grid-column: 1 / -1;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
> .bar-chart-plot {
|
|
56
|
+
grid-column: 2;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
> .bar-chart-labels {
|
|
60
|
+
grid-column: 1;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&.sparkline {
|
|
64
|
+
--md-comp-bar-chart-row-height: 24px;
|
|
65
|
+
|
|
66
|
+
display: flex;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&.split {
|
|
70
|
+
--bar-chart-joint: var(--md-comp-bar-chart-shape);
|
|
71
|
+
--bar-chart-gap: 2px;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@for $i from 1 through 4 {
|
|
76
|
+
.bar-chart [data-series="#{$i}"] {
|
|
77
|
+
--bar-chart-on-color: var(--md-comp-bar-chart-on-color-#{$i});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Grid lines run down the plot at each quarter of the value axis.
|
|
82
|
+
.bar-chart-plot {
|
|
83
|
+
isolation: isolate;
|
|
84
|
+
height: calc(var(--rows, 1) * var(--md-comp-bar-chart-row-height));
|
|
85
|
+
border-block-end: 0;
|
|
86
|
+
border-right: 1px solid var(--md-comp-bar-chart-grid-color);
|
|
87
|
+
background: linear-gradient(to right, var(--md-comp-bar-chart-grid-color) 1px, transparent 0) 0 0 / 25% 100%;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.bar-chart-labels {
|
|
91
|
+
grid-auto-rows: minmax(0, 1fr);
|
|
92
|
+
grid-auto-flow: row;
|
|
93
|
+
align-items: center;
|
|
94
|
+
text-align: end;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// .values adds a copy of the bars for their text; both share the geometry.
|
|
98
|
+
.bar-chart-layers {
|
|
99
|
+
display: contents;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
:is(.bar-chart-bars, .bar-chart-values) {
|
|
103
|
+
position: absolute;
|
|
104
|
+
inset: 0;
|
|
105
|
+
display: grid;
|
|
106
|
+
grid-auto-rows: minmax(0, 1fr);
|
|
107
|
+
|
|
108
|
+
// A row: its bars one under another, or overlapping when stacked.
|
|
109
|
+
> div {
|
|
110
|
+
display: grid;
|
|
111
|
+
grid-template-columns: minmax(0, 1fr);
|
|
112
|
+
grid-auto-rows: minmax(0, 1fr);
|
|
113
|
+
gap: 2px;
|
|
114
|
+
align-self: center;
|
|
115
|
+
height: var(--md-comp-bar-chart-bar-height);
|
|
116
|
+
border-radius: var(--md-comp-bar-chart-shape);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// The space before and after each bar. A split segment stands back
|
|
120
|
+
// from its joints by --bar-chart-base-gap and --bar-chart-tip-gap.
|
|
121
|
+
> div > span {
|
|
122
|
+
--bar-chart-left: calc(var(--bottom, 0%) + var(--bar-chart-base-gap, 0px));
|
|
123
|
+
--bar-chart-right: calc(var(--top, 100%) + var(--bar-chart-tip-gap, 0px));
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
&.rtl > div > span {
|
|
127
|
+
--bar-chart-left: calc(var(--top, 100%) + var(--bar-chart-tip-gap, 0px));
|
|
128
|
+
--bar-chart-right: calc(var(--bottom, 0%) + var(--bar-chart-base-gap, 0px));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.bar-chart-bars {
|
|
133
|
+
// --bar-chart-tip rounds the end away from zero, --bar-chart-base the
|
|
134
|
+
// end on zero.
|
|
135
|
+
> div > span {
|
|
136
|
+
--bar-chart-tip: var(--md-comp-bar-chart-shape);
|
|
137
|
+
--bar-chart-base: 0px;
|
|
138
|
+
--bar-chart-zero-left: calc(100% - var(--zero, 100%));
|
|
139
|
+
--bar-chart-zero-right: var(--zero, 100%);
|
|
140
|
+
--bar-chart-ends: var(--bar-chart-base) var(--bar-chart-tip) var(--bar-chart-tip) var(--bar-chart-base);
|
|
141
|
+
|
|
142
|
+
background-color: var(--bar-chart-color);
|
|
143
|
+
clip-path: inset(0 var(--bar-chart-right) 0 var(--bar-chart-left) round var(--bar-chart-ends));
|
|
144
|
+
|
|
145
|
+
// A bar below zero has its tip at the inline start.
|
|
146
|
+
&.negative {
|
|
147
|
+
--bar-chart-ends: var(--bar-chart-tip) var(--bar-chart-base) var(--bar-chart-base) var(--bar-chart-tip);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
&.rtl > div > span {
|
|
152
|
+
--bar-chart-zero-left: var(--zero, 100%);
|
|
153
|
+
--bar-chart-zero-right: calc(100% - var(--zero, 100%));
|
|
154
|
+
--bar-chart-ends: var(--bar-chart-tip) var(--bar-chart-base) var(--bar-chart-base) var(--bar-chart-tip);
|
|
155
|
+
|
|
156
|
+
&.negative {
|
|
157
|
+
--bar-chart-ends: var(--bar-chart-base) var(--bar-chart-tip) var(--bar-chart-tip) var(--bar-chart-base);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
162
|
+
> div > span {
|
|
163
|
+
transition: clip-path 400ms cubic-bezier(0.2, 0, 0, 1);
|
|
164
|
+
|
|
165
|
+
@starting-style {
|
|
166
|
+
clip-path: inset(0 var(--bar-chart-zero-right) 0 var(--bar-chart-zero-left) round var(--bar-chart-ends));
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// One bar per row, rounded only at the ends of the whole stack unless split.
|
|
173
|
+
.bar-chart.stacked :is(.bar-chart-bars, .bar-chart-values) > div {
|
|
174
|
+
gap: 0;
|
|
175
|
+
|
|
176
|
+
> span {
|
|
177
|
+
grid-area: 1 / 1;
|
|
178
|
+
|
|
179
|
+
&:not(:last-child) {
|
|
180
|
+
--bar-chart-tip: var(--bar-chart-joint, 0px);
|
|
181
|
+
--bar-chart-tip-gap: var(--bar-chart-gap, 0px);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
&:not(:first-child) {
|
|
185
|
+
--bar-chart-base: var(--bar-chart-joint, 0px);
|
|
186
|
+
--bar-chart-base-gap: var(--bar-chart-gap, 0px);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.bar-chart.track .bar-chart-bars > div {
|
|
192
|
+
background-color: var(--md-comp-bar-chart-track-color);
|
|
193
|
+
|
|
194
|
+
> span {
|
|
195
|
+
--bar-chart-base: var(--md-comp-bar-chart-shape);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Each cell's text from its bar's base: the series' on-color over the bar,
|
|
200
|
+
// the label color past its end, so a short bar's value runs on beyond it.
|
|
201
|
+
// The span spans the row, so padding and the gradient share its width.
|
|
202
|
+
.bar-chart-values {
|
|
203
|
+
pointer-events: none;
|
|
204
|
+
|
|
205
|
+
> div > span {
|
|
206
|
+
--bar-chart-text-color: var(--md-sys-color-on-surface);
|
|
207
|
+
|
|
208
|
+
overflow: hidden;
|
|
209
|
+
align-content: center;
|
|
210
|
+
padding: 0 8px 0 calc(var(--bar-chart-left) + 8px);
|
|
211
|
+
background: linear-gradient(to right, var(--bar-chart-text-color) var(--bar-chart-left), var(--bar-chart-on-color) 0 calc(100% - var(--bar-chart-right)), var(--bar-chart-text-color) 0);
|
|
212
|
+
-webkit-background-clip: text;
|
|
213
|
+
background-clip: text;
|
|
214
|
+
color: transparent;
|
|
215
|
+
@include typescale("label-medium");
|
|
216
|
+
font-variant-numeric: tabular-nums;
|
|
217
|
+
text-align: left;
|
|
218
|
+
text-overflow: ellipsis;
|
|
219
|
+
white-space: nowrap;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
// The base on the right: a bar below zero, or above it in RTL.
|
|
223
|
+
&:not(.rtl) > div > span.negative,
|
|
224
|
+
&.rtl > div > span:not(.negative) {
|
|
225
|
+
padding: 0 calc(var(--bar-chart-right) + 8px) 0 8px;
|
|
226
|
+
text-align: right;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
230
|
+
> div > span {
|
|
231
|
+
transition: opacity 200ms linear 400ms;
|
|
232
|
+
|
|
233
|
+
@starting-style {
|
|
234
|
+
opacity: 0;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// A stacked segment keeps its text inside it; the next segment follows.
|
|
241
|
+
.bar-chart.stacked .bar-chart-values > div > span {
|
|
242
|
+
padding: 0 calc(var(--bar-chart-right) + 8px) 0 calc(var(--bar-chart-left) + 8px);
|
|
243
|
+
clip-path: inset(0 var(--bar-chart-right) 0 var(--bar-chart-left));
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// A band behind the highlighted row's bars.
|
|
247
|
+
.bar-chart-cursor {
|
|
248
|
+
z-index: -1;
|
|
249
|
+
inset-block: auto;
|
|
250
|
+
inset-inline: 0;
|
|
251
|
+
height: calc(100% / var(--rows, 1));
|
|
252
|
+
border-radius: var(--md-comp-bar-chart-shape);
|
|
253
|
+
background-color: color-mix(in srgb, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
|
|
254
|
+
translate: 0 -50%;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// Below the highlighted row, or above it in the lower half.
|
|
258
|
+
.bar-chart-tooltip {
|
|
259
|
+
left: 50%;
|
|
260
|
+
translate: -50% calc(var(--md-comp-bar-chart-row-height) / 2);
|
|
261
|
+
|
|
262
|
+
&.end {
|
|
263
|
+
translate: -50% calc(-100% - var(--md-comp-bar-chart-row-height) / 2);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
@media (forced-colors: active) {
|
|
268
|
+
// The mixin clears the grid, but this partial's plot rule comes later.
|
|
269
|
+
.bar-chart-plot {
|
|
270
|
+
background: none;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.bar-chart-bars > div > span,
|
|
274
|
+
.bar-chart-values > div > span {
|
|
275
|
+
forced-color-adjust: none;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
.bar-chart-values > div > span {
|
|
279
|
+
--bar-chart-text-color: CanvasText;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.bar-chart-cursor {
|
|
283
|
+
outline: 1px solid CanvasText;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
@@ -53,6 +53,7 @@ dialog.bottom-sheet {
|
|
|
53
53
|
@include z-depth("1");
|
|
54
54
|
translate: 0 var(--md-comp-bottom-sheet-shift);
|
|
55
55
|
transition: translate 280ms ease;
|
|
56
|
+
@include glass(var(--md-comp-bottom-sheet-container-color));
|
|
56
57
|
|
|
57
58
|
// Non-modal `show()` is not in the top layer — sit above page content
|
|
58
59
|
// and below snackbars (z-index 10000).
|
|
@@ -297,7 +297,6 @@ $_connected-corners: (
|
|
|
297
297
|
--md-comp-button-group-container-shape: 9999px;
|
|
298
298
|
--md-comp-button-group-inner-corner-corner-size: 8px;
|
|
299
299
|
--md-comp-button-group-pressed-inner-corner-corner-size: 4px;
|
|
300
|
-
--md-comp-button-group-selected-inner-corner-corner-size: 50%;
|
|
301
300
|
|
|
302
301
|
display: grid;
|
|
303
302
|
grid-auto-flow: column;
|
|
@@ -323,16 +322,27 @@ $_connected-corners: (
|
|
|
323
322
|
// The corner goes through a variable so that pressing an item changes one
|
|
324
323
|
// value rather than restating `border-radius`. A shorthand for the pressed
|
|
325
324
|
// state would take the end items' round outer corners with it.
|
|
325
|
+
//
|
|
326
|
+
// md.comp.button-group.connected.selected.inner-corner.corner-size is 50%,
|
|
327
|
+
// which Compose resolves against the shorter side. A CSS percentage
|
|
328
|
+
// resolves per axis and turns a wide item into an ellipse, and 9999px
|
|
329
|
+
// would spend most of the morph above the clamp, so the default is half
|
|
330
|
+
// the item's own height. Setting the token on the group still overrides it.
|
|
326
331
|
> #{$_item} {
|
|
327
332
|
--_corner: var(--md-comp-button-group-inner-corner-corner-size);
|
|
328
333
|
--_outer-corner: var(--md-comp-button-group-container-shape);
|
|
334
|
+
--_round: calc(var(--md-comp-filled-button-container-height, 40px) / 2);
|
|
329
335
|
|
|
330
336
|
flex: 1 1 0;
|
|
331
337
|
border-radius: var(--_corner);
|
|
332
338
|
|
|
339
|
+
&.icon-button {
|
|
340
|
+
--_round: calc(var(--md-comp-icon-button-container-height) / 2);
|
|
341
|
+
}
|
|
342
|
+
|
|
333
343
|
&[aria-pressed=true] {
|
|
334
|
-
--_corner: var(--md-comp-button-group-selected-inner-corner-corner-size);
|
|
335
|
-
--_outer-corner: var(--md-comp-button-group-selected-inner-corner-corner-size);
|
|
344
|
+
--_corner: var(--md-comp-button-group-selected-inner-corner-corner-size, var(--_round));
|
|
345
|
+
--_outer-corner: var(--md-comp-button-group-selected-inner-corner-corner-size, var(--_round));
|
|
336
346
|
}
|
|
337
347
|
|
|
338
348
|
&:is(:active, .button-group-pressed) {
|
|
@@ -18,6 +18,9 @@
|
|
|
18
18
|
// padding 16dp
|
|
19
19
|
|
|
20
20
|
$_card: "article";
|
|
21
|
+
// A direct <figure> is media, unless it is a chart. :where() keeps the
|
|
22
|
+
// selectors at their old specificity.
|
|
23
|
+
$_media-figure: "figure:where(:not(.line-chart, .column-chart, .bar-chart, .pie-chart, .heatmap-chart, .radar-chart, .radial-chart, .mixed-chart))";
|
|
21
24
|
|
|
22
25
|
:where(#{$_card}) {
|
|
23
26
|
--md-comp-elevated-card-container-color: var(--md-sys-color-surface-container-low);
|
|
@@ -278,10 +281,10 @@ article > .actions {
|
|
|
278
281
|
|
|
279
282
|
article > img,
|
|
280
283
|
article > picture,
|
|
281
|
-
article > figure,
|
|
284
|
+
article > #{$_media-figure},
|
|
282
285
|
article > .primary-action > img,
|
|
283
286
|
article > .primary-action > picture,
|
|
284
|
-
article > .primary-action > figure {
|
|
287
|
+
article > .primary-action > #{$_media-figure} {
|
|
285
288
|
display: block;
|
|
286
289
|
width: 100%;
|
|
287
290
|
margin: 0;
|
|
@@ -301,16 +304,16 @@ article > .primary-action > figure img {
|
|
|
301
304
|
border-radius: var(--md-comp-card-media-shape);
|
|
302
305
|
}
|
|
303
306
|
|
|
304
|
-
article > figure {
|
|
307
|
+
article > #{$_media-figure} {
|
|
305
308
|
position: relative;
|
|
306
309
|
}
|
|
307
310
|
|
|
308
|
-
article > .primary-action > figure {
|
|
311
|
+
article > .primary-action > #{$_media-figure} {
|
|
309
312
|
position: relative;
|
|
310
313
|
}
|
|
311
314
|
|
|
312
|
-
article > figure > figcaption,
|
|
313
|
-
article > .primary-action > figure > figcaption {
|
|
315
|
+
article > #{$_media-figure} > figcaption,
|
|
316
|
+
article > .primary-action > #{$_media-figure} > figcaption {
|
|
314
317
|
position: absolute;
|
|
315
318
|
inset-inline-start: var(--md-comp-card-content-padding);
|
|
316
319
|
inset-inline-end: auto;
|
|
@@ -334,16 +337,16 @@ article > .primary-action > figure > figcaption {
|
|
|
334
337
|
|
|
335
338
|
// Keep meaningful icons on the same opaque role pair as caption text. The
|
|
336
339
|
// surface/on-surface pairing isolates both from unpredictable image colors.
|
|
337
|
-
article > figure > figcaption > :is(.material-symbols, .card-icon, svg),
|
|
338
|
-
article > .primary-action > figure > figcaption > :is(.material-symbols, .card-icon, svg) {
|
|
340
|
+
article > #{$_media-figure} > figcaption > :is(.material-symbols, .card-icon, svg),
|
|
341
|
+
article > .primary-action > #{$_media-figure} > figcaption > :is(.material-symbols, .card-icon, svg) {
|
|
339
342
|
flex: 0 0 auto;
|
|
340
343
|
color: inherit;
|
|
341
344
|
font-size: var(--md-comp-card-icon-size);
|
|
342
345
|
line-height: 1;
|
|
343
346
|
}
|
|
344
347
|
|
|
345
|
-
article > figure > figcaption > svg,
|
|
346
|
-
article > .primary-action > figure > figcaption > svg {
|
|
348
|
+
article > #{$_media-figure} > figcaption > svg,
|
|
349
|
+
article > .primary-action > #{$_media-figure} > figcaption > svg {
|
|
347
350
|
fill: currentColor;
|
|
348
351
|
}
|
|
349
352
|
|
|
@@ -442,7 +445,7 @@ article > .primary-action > figure > figcaption > svg {
|
|
|
442
445
|
|
|
443
446
|
> img,
|
|
444
447
|
> picture,
|
|
445
|
-
> figure {
|
|
448
|
+
> #{$_media-figure} {
|
|
446
449
|
grid-column: 1;
|
|
447
450
|
grid-row: 1 / -1;
|
|
448
451
|
width: 100%;
|
|
@@ -507,7 +510,7 @@ article.small, article.medium, article.large {
|
|
|
507
510
|
display: flex;
|
|
508
511
|
flex-direction: column;
|
|
509
512
|
|
|
510
|
-
> img, > picture, > figure {
|
|
513
|
+
> img, > picture, > #{$_media-figure} {
|
|
511
514
|
flex: 0 1 60%;
|
|
512
515
|
min-height: 0;
|
|
513
516
|
overflow: hidden;
|
|
@@ -533,7 +536,7 @@ article.horizontal.medium,
|
|
|
533
536
|
article.horizontal.large {
|
|
534
537
|
display: grid;
|
|
535
538
|
|
|
536
|
-
> img, > picture, > figure {
|
|
539
|
+
> img, > picture, > #{$_media-figure} {
|
|
537
540
|
max-height: none;
|
|
538
541
|
}
|
|
539
542
|
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
@use "../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// Column chart. The same <figure>, <figcaption> and <table> as a line
|
|
4
|
+
// chart; ColumnChart draws each row as a group of columns, one per series,
|
|
5
|
+
// growing from zero. The plot, tooltip, labels and legend come from chart().
|
|
6
|
+
//
|
|
7
|
+
// Each column is a full-height span clipped to its value with clip-path
|
|
8
|
+
// inset(), using the --top and --bottom percentages ColumnChart sets, so
|
|
9
|
+
// the rounded ends keep their radius at any size and resizing needs no
|
|
10
|
+
// script. --zero on the columns is the baseline the columns grow from.
|
|
11
|
+
//
|
|
12
|
+
// Modifiers: .stacked draws one column per row with each series on the
|
|
13
|
+
// ones before it, .fade fades each column toward its base, .track draws a
|
|
14
|
+
// full-height track behind each row's columns, .sparkline is a small chart
|
|
15
|
+
// with no axis, grid, legend or tooltip.
|
|
16
|
+
//
|
|
17
|
+
// Tokens:
|
|
18
|
+
// --md-comp-column-chart-height 240px (sparkline 48px)
|
|
19
|
+
// --md-comp-column-chart-column-width 60% of each row's width
|
|
20
|
+
// --md-comp-column-chart-shape 4px, the column's end radius
|
|
21
|
+
// --md-comp-column-chart-track-color surface-container-highest
|
|
22
|
+
// --md-comp-column-chart-grid-color outline-variant
|
|
23
|
+
// --md-comp-column-chart-color-1..4 primary, tertiary, secondary,
|
|
24
|
+
// on-surface-variant
|
|
25
|
+
|
|
26
|
+
@include chart("column-chart");
|
|
27
|
+
|
|
28
|
+
.column-chart {
|
|
29
|
+
--md-comp-column-chart-column-width: 60%;
|
|
30
|
+
--md-comp-column-chart-shape: 4px;
|
|
31
|
+
--md-comp-column-chart-track-color: var(--md-sys-color-surface-container-highest);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.column-chart-columns {
|
|
35
|
+
position: absolute;
|
|
36
|
+
inset: 0;
|
|
37
|
+
display: grid;
|
|
38
|
+
grid-auto-columns: minmax(0, 1fr);
|
|
39
|
+
grid-auto-flow: column;
|
|
40
|
+
|
|
41
|
+
// A row: its columns side by side, or overlapping when stacked.
|
|
42
|
+
> div {
|
|
43
|
+
display: grid;
|
|
44
|
+
grid-auto-columns: minmax(0, 1fr);
|
|
45
|
+
grid-auto-flow: column;
|
|
46
|
+
gap: 2px;
|
|
47
|
+
justify-self: center;
|
|
48
|
+
width: var(--md-comp-column-chart-column-width);
|
|
49
|
+
border-radius: var(--md-comp-column-chart-shape);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// --column-chart-tip rounds the end away from zero, --column-chart-base
|
|
53
|
+
// the end on zero.
|
|
54
|
+
> div > span {
|
|
55
|
+
--column-chart-tip: var(--md-comp-column-chart-shape);
|
|
56
|
+
--column-chart-base: 0px;
|
|
57
|
+
--column-chart-ends: var(--column-chart-tip) var(--column-chart-tip) var(--column-chart-base) var(--column-chart-base);
|
|
58
|
+
|
|
59
|
+
background-color: var(--column-chart-color);
|
|
60
|
+
clip-path: inset(var(--top, 100%) 0 var(--bottom, 0%) round var(--column-chart-ends));
|
|
61
|
+
|
|
62
|
+
// A column below zero has its tip at the bottom.
|
|
63
|
+
&.negative {
|
|
64
|
+
--column-chart-ends: var(--column-chart-base) var(--column-chart-base) var(--column-chart-tip) var(--column-chart-tip);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
69
|
+
> div > span {
|
|
70
|
+
transition: clip-path 400ms cubic-bezier(0.2, 0, 0, 1);
|
|
71
|
+
|
|
72
|
+
@starting-style {
|
|
73
|
+
clip-path: inset(var(--zero, 100%) 0 calc(100% - var(--zero, 100%)) round var(--column-chart-ends));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// One column per row, rounded only at the ends of the whole stack.
|
|
80
|
+
.column-chart.stacked .column-chart-columns > div {
|
|
81
|
+
gap: 0;
|
|
82
|
+
|
|
83
|
+
> span {
|
|
84
|
+
grid-area: 1 / 1;
|
|
85
|
+
|
|
86
|
+
&:not(:last-child) {
|
|
87
|
+
--column-chart-tip: 0px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
&:not(:first-child) {
|
|
91
|
+
--column-chart-base: 0px;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Each column fades from its tip toward zero.
|
|
97
|
+
.column-chart.fade .column-chart-columns > div > span {
|
|
98
|
+
background: linear-gradient(var(--column-chart-color) var(--top, 100%), transparent calc(100% - var(--bottom, 0%)));
|
|
99
|
+
|
|
100
|
+
&.negative {
|
|
101
|
+
background: linear-gradient(to top, var(--column-chart-color) var(--bottom, 0%), transparent calc(100% - var(--top, 100%)));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.column-chart.track .column-chart-columns > div {
|
|
106
|
+
background-color: var(--md-comp-column-chart-track-color);
|
|
107
|
+
|
|
108
|
+
> span {
|
|
109
|
+
--column-chart-base: var(--md-comp-column-chart-shape);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// A band behind the highlighted row's columns.
|
|
114
|
+
.column-chart-plot {
|
|
115
|
+
isolation: isolate;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.column-chart-cursor {
|
|
119
|
+
z-index: -1;
|
|
120
|
+
width: calc(100% / var(--rows, 1));
|
|
121
|
+
border-radius: var(--md-comp-column-chart-shape);
|
|
122
|
+
background-color: color-mix(in srgb, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
|
|
123
|
+
translate: -50% 0;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@media (forced-colors: active) {
|
|
127
|
+
.column-chart-columns > div > span {
|
|
128
|
+
forced-color-adjust: none;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.column-chart-cursor {
|
|
132
|
+
outline: 1px solid CanvasText;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
@use "../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// Command palette. A modal <dialog class="command-palette"> holding a search
|
|
4
|
+
// <input>, a <ul> of commands and an optional .command-palette-empty message.
|
|
5
|
+
// Each command is an <li> holding a link or button: an optional leading
|
|
6
|
+
// icon, the label and an optional trailing <kbd> shortcut. An <li class=
|
|
7
|
+
// "label"> heads a group. The CommandPalette component filters the list and
|
|
8
|
+
// moves the active row; the active row carries .active.
|
|
9
|
+
//
|
|
10
|
+
// It opens near the top of the window, where the eye already is after the
|
|
11
|
+
// shortcut, and keeps the base dialog's surface, scrim and glass.
|
|
12
|
+
//
|
|
13
|
+
// Tokens:
|
|
14
|
+
// --md-comp-command-palette-max-width 640px
|
|
15
|
+
// --md-comp-command-palette-item-height 48px
|
|
16
|
+
// --md-comp-command-palette-active-container-color secondary-container
|
|
17
|
+
|
|
18
|
+
dialog.command-palette {
|
|
19
|
+
--md-comp-command-palette-max-width: 640px;
|
|
20
|
+
--md-comp-command-palette-item-height: 48px;
|
|
21
|
+
--md-comp-command-palette-active-container-color: var(--md-sys-color-secondary-container);
|
|
22
|
+
|
|
23
|
+
width: min(var(--md-comp-command-palette-max-width), calc(100% - 32px));
|
|
24
|
+
max-height: min(480px, calc(100% - 96px));
|
|
25
|
+
margin-block: 12vh auto;
|
|
26
|
+
|
|
27
|
+
// Outranks the shared text-input rule, which sets a field's height and
|
|
28
|
+
// padding at the same weight.
|
|
29
|
+
> input:not(.browser-default) {
|
|
30
|
+
flex: none;
|
|
31
|
+
box-sizing: border-box;
|
|
32
|
+
width: 100%;
|
|
33
|
+
height: 64px;
|
|
34
|
+
margin: 0;
|
|
35
|
+
padding: 0 24px;
|
|
36
|
+
border: 0;
|
|
37
|
+
border-bottom: 1px solid var(--md-sys-color-outline-variant);
|
|
38
|
+
border-radius: 0;
|
|
39
|
+
background: transparent;
|
|
40
|
+
color: var(--md-sys-color-on-surface);
|
|
41
|
+
outline: 0;
|
|
42
|
+
box-shadow: none;
|
|
43
|
+
@include typescale("body-large");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
> :is(ul, ol) {
|
|
47
|
+
flex: 1 1 auto;
|
|
48
|
+
min-height: 0;
|
|
49
|
+
margin: 0;
|
|
50
|
+
padding: 8px;
|
|
51
|
+
overflow-y: auto;
|
|
52
|
+
overscroll-behavior: contain;
|
|
53
|
+
list-style: none;
|
|
54
|
+
|
|
55
|
+
> li {
|
|
56
|
+
margin: 0;
|
|
57
|
+
border-radius: 12px;
|
|
58
|
+
color: var(--md-sys-color-on-surface);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
> li.active {
|
|
62
|
+
background-color: var(--md-comp-command-palette-active-container-color);
|
|
63
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
> li:not(.label) > :is(a, button) {
|
|
67
|
+
box-sizing: border-box;
|
|
68
|
+
display: flex;
|
|
69
|
+
align-items: center;
|
|
70
|
+
justify-content: flex-start;
|
|
71
|
+
gap: 16px;
|
|
72
|
+
width: 100%;
|
|
73
|
+
height: auto;
|
|
74
|
+
min-height: var(--md-comp-command-palette-item-height);
|
|
75
|
+
margin: 0;
|
|
76
|
+
padding: 8px 16px;
|
|
77
|
+
border: 0;
|
|
78
|
+
border-radius: inherit;
|
|
79
|
+
background: none;
|
|
80
|
+
box-shadow: none;
|
|
81
|
+
color: inherit;
|
|
82
|
+
text-align: start;
|
|
83
|
+
text-decoration: none;
|
|
84
|
+
white-space: normal;
|
|
85
|
+
cursor: pointer;
|
|
86
|
+
@include typescale("body-large");
|
|
87
|
+
|
|
88
|
+
> #{$icon}:first-child {
|
|
89
|
+
flex: none;
|
|
90
|
+
font-size: 20px;
|
|
91
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
> kbd:last-child {
|
|
95
|
+
margin-inline-start: auto;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
> li.active > :is(a, button) > #{$icon}:first-child {
|
|
100
|
+
color: inherit;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
> li.label {
|
|
104
|
+
padding: 12px 16px 4px;
|
|
105
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
106
|
+
@include typescale("title-small");
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
> li:is([hidden], [data-filtered]) {
|
|
110
|
+
display: none;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
> li[aria-disabled="true"] {
|
|
114
|
+
opacity: 0.38;
|
|
115
|
+
|
|
116
|
+
> :is(a, button) {
|
|
117
|
+
cursor: default;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
> .command-palette-empty {
|
|
123
|
+
margin: 0;
|
|
124
|
+
padding: 32px 24px;
|
|
125
|
+
text-align: center;
|
|
126
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
127
|
+
@include typescale("body-large");
|
|
128
|
+
|
|
129
|
+
&[hidden] {
|
|
130
|
+
display: none;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
@media (forced-colors: active) {
|
|
136
|
+
dialog.command-palette > :is(ul, ol) > li.active {
|
|
137
|
+
outline: 2px solid Highlight;
|
|
138
|
+
outline-offset: -2px;
|
|
139
|
+
}
|
|
140
|
+
}
|