@studious-creative/yumekit 0.1.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/y-appbar.js +19 -4
- package/dist/components/y-avatar.js +31 -3
- package/dist/components/y-card.js +9 -0
- package/dist/components/y-dialog.js +16 -0
- package/dist/components/y-progress.d.ts +0 -1
- package/dist/components/y-progress.js +28 -15
- package/dist/components/y-tag.d.ts +1 -1
- package/dist/components/y-tag.js +30 -5
- package/dist/components/y-theme.js +7 -2
- package/dist/components/y-toast.d.ts +0 -1
- package/dist/components/y-toast.js +25 -93
- package/dist/components/y-tooltip.d.ts +0 -1
- package/dist/components/y-tooltip.js +25 -93
- package/dist/icons/all.js +69 -0
- package/dist/index.js +203 -166
- package/dist/modules/helpers.d.ts +9 -0
- package/dist/modules/helpers.js +26 -0
- package/dist/react.d.ts +211 -130
- package/dist/styles/variables.css +3 -0
- package/dist/yumekit.min.js +1 -1
- package/package.json +1 -1
- package/dist/modules/load-defaults.d.ts +0 -1
- package/dist/modules/load-defaults.js +0 -45
|
@@ -1302,18 +1302,21 @@ class YumeAppbar extends HTMLElement {
|
|
|
1302
1302
|
collapsedWidth: "40px",
|
|
1303
1303
|
bodyGap: "2px",
|
|
1304
1304
|
buttonSize: "small",
|
|
1305
|
+
iconSize: "small",
|
|
1305
1306
|
},
|
|
1306
1307
|
medium: {
|
|
1307
1308
|
padding: "var(--spacing-small, 6px)",
|
|
1308
1309
|
collapsedWidth: "52px",
|
|
1309
1310
|
bodyGap: "3px",
|
|
1310
1311
|
buttonSize: "medium",
|
|
1312
|
+
iconSize: "medium",
|
|
1311
1313
|
},
|
|
1312
1314
|
large: {
|
|
1313
1315
|
padding: "var(--spacing-medium, 8px)",
|
|
1314
1316
|
collapsedWidth: "64px",
|
|
1315
1317
|
bodyGap: "4px",
|
|
1316
1318
|
buttonSize: "large",
|
|
1319
|
+
iconSize: "large",
|
|
1317
1320
|
},
|
|
1318
1321
|
};
|
|
1319
1322
|
const cfg = sizeConfig[size] || sizeConfig.medium;
|
|
@@ -1428,7 +1431,7 @@ class YumeAppbar extends HTMLElement {
|
|
|
1428
1431
|
|
|
1429
1432
|
.appbar.vertical .appbar-header {
|
|
1430
1433
|
border-bottom: var(--component-appbar-inner-border-width, var(--component-sidebar-border-width, 2px)) solid var(--component-appbar-border-color, #37383a);
|
|
1431
|
-
padding
|
|
1434
|
+
padding: var(--_appbar-padding);
|
|
1432
1435
|
margin-bottom: var(--_appbar-padding);
|
|
1433
1436
|
}
|
|
1434
1437
|
.appbar.vertical .appbar-footer {
|
|
@@ -1439,7 +1442,7 @@ class YumeAppbar extends HTMLElement {
|
|
|
1439
1442
|
|
|
1440
1443
|
.appbar.horizontal .appbar-header {
|
|
1441
1444
|
border-right: var(--component-appbar-inner-border-width, var(--component-sidebar-border-width, 2px)) solid var(--component-appbar-border-color, #37383a);
|
|
1442
|
-
padding
|
|
1445
|
+
padding: var(--_appbar-padding);
|
|
1443
1446
|
margin-right: var(--_appbar-padding);
|
|
1444
1447
|
}
|
|
1445
1448
|
.appbar.horizontal .appbar-footer {
|
|
@@ -1591,7 +1594,10 @@ class YumeAppbar extends HTMLElement {
|
|
|
1591
1594
|
titleWrapper.appendChild(titleSlot);
|
|
1592
1595
|
headerContent.appendChild(titleWrapper);
|
|
1593
1596
|
|
|
1597
|
+
const headerSlot = document.createElement("slot");
|
|
1598
|
+
headerSlot.name = "header";
|
|
1594
1599
|
header.appendChild(headerContent);
|
|
1600
|
+
header.appendChild(headerSlot);
|
|
1595
1601
|
bar.appendChild(header);
|
|
1596
1602
|
|
|
1597
1603
|
/* --- Body: y-button nav items --- */
|
|
@@ -1617,13 +1623,15 @@ class YumeAppbar extends HTMLElement {
|
|
|
1617
1623
|
if (item.icon.trim().startsWith("<")) {
|
|
1618
1624
|
const iconEl = document.createElement("span");
|
|
1619
1625
|
iconEl.slot = "left-icon";
|
|
1626
|
+
iconEl.setAttribute("part", "icon");
|
|
1620
1627
|
iconEl.innerHTML = item.icon;
|
|
1621
1628
|
btn.appendChild(iconEl);
|
|
1622
1629
|
} else {
|
|
1623
1630
|
const iconEl = document.createElement("y-icon");
|
|
1624
1631
|
iconEl.slot = "left-icon";
|
|
1632
|
+
iconEl.setAttribute("part", "icon");
|
|
1625
1633
|
iconEl.setAttribute("name", item.icon);
|
|
1626
|
-
iconEl.setAttribute("size",
|
|
1634
|
+
iconEl.setAttribute("size", cfg.iconSize);
|
|
1627
1635
|
btn.appendChild(iconEl);
|
|
1628
1636
|
}
|
|
1629
1637
|
}
|
|
@@ -1646,7 +1654,14 @@ class YumeAppbar extends HTMLElement {
|
|
|
1646
1654
|
});
|
|
1647
1655
|
}
|
|
1648
1656
|
|
|
1649
|
-
|
|
1657
|
+
if (item.slot) {
|
|
1658
|
+
const slot = document.createElement("slot");
|
|
1659
|
+
slot.name = item.slot;
|
|
1660
|
+
slot.appendChild(btn);
|
|
1661
|
+
wrapper.appendChild(slot);
|
|
1662
|
+
} else {
|
|
1663
|
+
wrapper.appendChild(btn);
|
|
1664
|
+
}
|
|
1650
1665
|
|
|
1651
1666
|
if (hasChildren) {
|
|
1652
1667
|
const menu = document.createElement("y-menu");
|
|
@@ -1,6 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return a [background, foreground] CSS variable pair for a color scheme.
|
|
3
|
+
* Background is `--{color}-content--`, foreground is `--{color}-content-inverse`.
|
|
4
|
+
* @param {string} color — one of base, primary, secondary, success, warning, error, help
|
|
5
|
+
* @param {string} [fallbackColor="base"] — color to fall back to when `color` is unrecognised.
|
|
6
|
+
* Use `null` to pass the raw `color` string through as the background instead.
|
|
7
|
+
* @returns {[string, string]} — [bg var, fg var]
|
|
8
|
+
*/
|
|
9
|
+
function getColorVarPair(color, fallbackColor = "base") {
|
|
10
|
+
const map = {
|
|
11
|
+
base: ["var(--base-content--)", "var(--base-content-inverse)"],
|
|
12
|
+
primary: ["var(--primary-content--)", "var(--primary-content-inverse)"],
|
|
13
|
+
secondary: [
|
|
14
|
+
"var(--secondary-content--)",
|
|
15
|
+
"var(--secondary-content-inverse)",
|
|
16
|
+
],
|
|
17
|
+
success: ["var(--success-content--)", "var(--success-content-inverse)"],
|
|
18
|
+
warning: ["var(--warning-content--)", "var(--warning-content-inverse)"],
|
|
19
|
+
error: ["var(--error-content--)", "var(--error-content-inverse)"],
|
|
20
|
+
help: ["var(--help-content--)", "var(--help-content-inverse)"],
|
|
21
|
+
};
|
|
22
|
+
if (map[color]) return map[color];
|
|
23
|
+
if (fallbackColor === null) return [color, "var(--base-content-inverse)"];
|
|
24
|
+
return map[fallbackColor] || map.base;
|
|
25
|
+
}
|
|
26
|
+
|
|
1
27
|
class YumeAvatar extends HTMLElement {
|
|
2
28
|
static get observedAttributes() {
|
|
3
|
-
return ["src", "alt", "size", "shape"];
|
|
29
|
+
return ["src", "alt", "size", "shape", "color"];
|
|
4
30
|
}
|
|
5
31
|
|
|
6
32
|
constructor() {
|
|
@@ -19,7 +45,9 @@ class YumeAvatar extends HTMLElement {
|
|
|
19
45
|
const src = this.getAttribute("src");
|
|
20
46
|
const altRaw = this.getAttribute("alt") || "AN";
|
|
21
47
|
const shape = this.getAttribute("shape") || "circle";
|
|
48
|
+
const color = this.getAttribute("color") || "primary";
|
|
22
49
|
const borderRadius = `var(--component-avatar-border-radius-${shape}, 9999px)`;
|
|
50
|
+
const [bgColor, textColor] = getColorVarPair(color);
|
|
23
51
|
|
|
24
52
|
let dimensions;
|
|
25
53
|
const size = this.getAttribute("size") || "medium";
|
|
@@ -68,8 +96,8 @@ class YumeAvatar extends HTMLElement {
|
|
|
68
96
|
width: 100%;
|
|
69
97
|
height: 100%;
|
|
70
98
|
border-radius: ${borderRadius};
|
|
71
|
-
background-color:
|
|
72
|
-
color:
|
|
99
|
+
background-color: ${bgColor};
|
|
100
|
+
color: ${textColor};
|
|
73
101
|
display: flex;
|
|
74
102
|
align-items: center;
|
|
75
103
|
justify-content: center;
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return a [background, foreground] CSS variable pair for a color scheme.
|
|
3
|
+
* Background is `--{color}-content--`, foreground is `--{color}-content-inverse`.
|
|
4
|
+
* @param {string} color — one of base, primary, secondary, success, warning, error, help
|
|
5
|
+
* @param {string} [fallbackColor="base"] — color to fall back to when `color` is unrecognised.
|
|
6
|
+
* Use `null` to pass the raw `color` string through as the background instead.
|
|
7
|
+
* @returns {[string, string]} — [bg var, fg var]
|
|
8
|
+
*/
|
|
9
|
+
|
|
1
10
|
// helpers/slot-utils.js
|
|
2
11
|
function hideEmptySlotContainers(shadowRoot, slotsConfig = {}) {
|
|
3
12
|
Object.entries(slotsConfig).forEach(([slotName, containerSelector]) => {
|
|
@@ -208,6 +208,22 @@ class YumeDialog extends HTMLElement {
|
|
|
208
208
|
dialog.appendChild(body);
|
|
209
209
|
dialog.appendChild(footer);
|
|
210
210
|
this.shadowRoot.appendChild(dialog);
|
|
211
|
+
|
|
212
|
+
// Hide slot containers that have no slotted content
|
|
213
|
+
const hideIfEmpty = (wrapper) => {
|
|
214
|
+
const slot = wrapper.querySelector("slot");
|
|
215
|
+
if (!slot) return;
|
|
216
|
+
const update = () => {
|
|
217
|
+
const hasContent =
|
|
218
|
+
slot.assignedNodes({ flatten: true }).length > 0;
|
|
219
|
+
wrapper.style.display = hasContent ? "" : "none";
|
|
220
|
+
};
|
|
221
|
+
slot.addEventListener("slotchange", update);
|
|
222
|
+
update();
|
|
223
|
+
};
|
|
224
|
+
if (!this.closable) hideIfEmpty(header);
|
|
225
|
+
hideIfEmpty(body);
|
|
226
|
+
hideIfEmpty(footer);
|
|
211
227
|
}
|
|
212
228
|
}
|
|
213
229
|
|
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return a [background, foreground] CSS variable pair for a color scheme.
|
|
3
|
+
* Background is `--{color}-content--`, foreground is `--{color}-content-inverse`.
|
|
4
|
+
* @param {string} color — one of base, primary, secondary, success, warning, error, help
|
|
5
|
+
* @param {string} [fallbackColor="base"] — color to fall back to when `color` is unrecognised.
|
|
6
|
+
* Use `null` to pass the raw `color` string through as the background instead.
|
|
7
|
+
* @returns {[string, string]} — [bg var, fg var]
|
|
8
|
+
*/
|
|
9
|
+
function getColorVarPair(color, fallbackColor = "base") {
|
|
10
|
+
const map = {
|
|
11
|
+
base: ["var(--base-content--)", "var(--base-content-inverse)"],
|
|
12
|
+
primary: ["var(--primary-content--)", "var(--primary-content-inverse)"],
|
|
13
|
+
secondary: [
|
|
14
|
+
"var(--secondary-content--)",
|
|
15
|
+
"var(--secondary-content-inverse)",
|
|
16
|
+
],
|
|
17
|
+
success: ["var(--success-content--)", "var(--success-content-inverse)"],
|
|
18
|
+
warning: ["var(--warning-content--)", "var(--warning-content-inverse)"],
|
|
19
|
+
error: ["var(--error-content--)", "var(--error-content-inverse)"],
|
|
20
|
+
help: ["var(--help-content--)", "var(--help-content-inverse)"],
|
|
21
|
+
};
|
|
22
|
+
if (map[color]) return map[color];
|
|
23
|
+
if (fallbackColor === null) return [color, "var(--base-content-inverse)"];
|
|
24
|
+
return map[fallbackColor] || map.base;
|
|
25
|
+
}
|
|
26
|
+
|
|
1
27
|
class YumeProgress extends HTMLElement {
|
|
2
28
|
static get observedAttributes() {
|
|
3
29
|
return [
|
|
@@ -154,19 +180,6 @@ class YumeProgress extends HTMLElement {
|
|
|
154
180
|
return Math.max(0, Math.min(100, pct));
|
|
155
181
|
}
|
|
156
182
|
|
|
157
|
-
getBarColor(color) {
|
|
158
|
-
const colorMap = {
|
|
159
|
-
primary: "var(--primary-content--)",
|
|
160
|
-
secondary: "var(--secondary-content--)",
|
|
161
|
-
base: "var(--base-content--)",
|
|
162
|
-
success: "var(--success-content--)",
|
|
163
|
-
warning: "var(--warning-content--)",
|
|
164
|
-
error: "var(--error-content--)",
|
|
165
|
-
help: "var(--help-content--)",
|
|
166
|
-
};
|
|
167
|
-
return colorMap[color] || color;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
183
|
getSizeVar(size) {
|
|
171
184
|
const map = {
|
|
172
185
|
small: "var(--component-progress-size-small)",
|
|
@@ -194,7 +207,7 @@ class YumeProgress extends HTMLElement {
|
|
|
194
207
|
render() {
|
|
195
208
|
const isIndeterminate = this.indeterminate;
|
|
196
209
|
const pct = this.percentage;
|
|
197
|
-
const barColor =
|
|
210
|
+
const [barColor, barTextColor] = getColorVarPair(this.color, null);
|
|
198
211
|
const sizeVar = this.getSizeVar(this.size);
|
|
199
212
|
const isDisabled = this.disabled;
|
|
200
213
|
const showLabel = this.labelDisplay && !isIndeterminate;
|
|
@@ -272,7 +285,7 @@ class YumeProgress extends HTMLElement {
|
|
|
272
285
|
}
|
|
273
286
|
|
|
274
287
|
.value-label--bar {
|
|
275
|
-
color:
|
|
288
|
+
color: ${barTextColor};
|
|
276
289
|
width: calc(100% / (${pct || 1} / 100));
|
|
277
290
|
}
|
|
278
291
|
|
|
@@ -3,5 +3,5 @@ export class YumeTag extends HTMLElement {
|
|
|
3
3
|
connectedCallback(): void;
|
|
4
4
|
attributeChangedCallback(name: any, oldValue: any, newValue: any): void;
|
|
5
5
|
render(): void;
|
|
6
|
-
getStyle(color: any, styleType: any, shape: any): string;
|
|
6
|
+
getStyle(color: any, styleType: any, shape: any, size: any): string;
|
|
7
7
|
}
|
package/dist/components/y-tag.js
CHANGED
|
@@ -14,7 +14,7 @@ const close = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width
|
|
|
14
14
|
|
|
15
15
|
class YumeTag extends HTMLElement {
|
|
16
16
|
static get observedAttributes() {
|
|
17
|
-
return ["removable", "color", "style-type", "shape"];
|
|
17
|
+
return ["removable", "color", "style-type", "shape", "size"];
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
constructor() {
|
|
@@ -36,9 +36,10 @@ class YumeTag extends HTMLElement {
|
|
|
36
36
|
const color = this.getAttribute("color") || "base";
|
|
37
37
|
const styleType = this.getAttribute("style-type") || "filled";
|
|
38
38
|
const shape = this.getAttribute("shape") || "square";
|
|
39
|
+
const size = this.getAttribute("size") || "medium";
|
|
39
40
|
|
|
40
41
|
const style = document.createElement("style");
|
|
41
|
-
style.textContent = this.getStyle(color, styleType, shape);
|
|
42
|
+
style.textContent = this.getStyle(color, styleType, shape, size);
|
|
42
43
|
|
|
43
44
|
this.shadowRoot.innerHTML = "";
|
|
44
45
|
this.shadowRoot.appendChild(style);
|
|
@@ -72,7 +73,7 @@ class YumeTag extends HTMLElement {
|
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
|
|
75
|
-
getStyle(color, styleType, shape) {
|
|
76
|
+
getStyle(color, styleType, shape, size) {
|
|
76
77
|
const vars = {
|
|
77
78
|
primary: [
|
|
78
79
|
"--primary-content--",
|
|
@@ -125,20 +126,44 @@ class YumeTag extends HTMLElement {
|
|
|
125
126
|
? "var(--component-tag-border-radius-circle)"
|
|
126
127
|
: "var(--component-tag-border-radius-square)";
|
|
127
128
|
|
|
129
|
+
const sizeConfig = {
|
|
130
|
+
small: {
|
|
131
|
+
height: "var(--component-tag-height-small, 22px)",
|
|
132
|
+
padding:
|
|
133
|
+
"var(--component-tag-padding-small, var(--spacing-2x-small))",
|
|
134
|
+
fontSize: "var(--font-size-small, 0.8em)",
|
|
135
|
+
},
|
|
136
|
+
medium: {
|
|
137
|
+
height: "var(--component-tag-height-medium, 28px)",
|
|
138
|
+
padding:
|
|
139
|
+
"var(--component-tag-padding-medium, var(--spacing-x-small))",
|
|
140
|
+
fontSize: "var(--font-size-label, 0.83em)",
|
|
141
|
+
},
|
|
142
|
+
large: {
|
|
143
|
+
height: "var(--component-tag-height-large, 38px)",
|
|
144
|
+
padding:
|
|
145
|
+
"var(--component-tag-padding-large, var(--spacing-small))",
|
|
146
|
+
fontSize: "var(--font-size-paragraph, 1em)",
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
const cfg = sizeConfig[size] || sizeConfig.medium;
|
|
150
|
+
|
|
128
151
|
const baseStyle = `
|
|
129
152
|
:host {
|
|
130
153
|
display: inline-block;
|
|
131
154
|
font-family: var(--font-family-body, sans-serif);
|
|
132
|
-
font-size:
|
|
155
|
+
font-size: ${cfg.fontSize};
|
|
133
156
|
}
|
|
134
157
|
.tag {
|
|
135
158
|
display: inline-flex;
|
|
136
159
|
align-items: center;
|
|
137
160
|
gap: var(--spacing-2x-small);
|
|
138
|
-
|
|
161
|
+
height: ${cfg.height};
|
|
162
|
+
padding: 0 ${cfg.padding};
|
|
139
163
|
border: 1px solid transparent;
|
|
140
164
|
transition: background-color 0.2s, color 0.2s;
|
|
141
165
|
border-radius: ${borderRadius};
|
|
166
|
+
box-sizing: border-box;
|
|
142
167
|
}
|
|
143
168
|
.remove {
|
|
144
169
|
all: unset;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var variablesCSS = "/* Colors */\n:root {\n --neutral--: #7f8286ff;\n --neutral-white: #ffffffff;\n --neutral-black: #000000ff;\n --neutral-light-0: #f7f7faff;\n --neutral-light-1: #f0f0f2ff;\n --neutral-light-2: #dfe0e3ff;\n --neutral-light-3: #cacbcfff;\n --neutral-light-4: #bbbdc0ff;\n --neutral-light-5: #acaeb2ff;\n --neutral-light-6: #9d9fa3ff;\n --neutral-light-7: #8e9195ff;\n --neutral-dark-0: #0c0c0dff;\n --neutral-dark-1: #151617ff;\n --neutral-dark-2: #292a2bff;\n --neutral-dark-3: #37383aff;\n --neutral-dark-4: #46474aff;\n --neutral-dark-5: #545659ff;\n --neutral-dark-6: #626568ff;\n --neutral-dark-7: #717377ff;\n --neutral-black-translucent: #0000001f;\n --neutral-white-translucent: #1111111f;\n --red--: #b80421ff;\n --red-light-0: #f2e6e8ff;\n --red-light-1: #ebcacfff;\n --red-light-2: #e4aeb6ff;\n --red-light-3: #dc919dff;\n --red-light-4: #d57585ff;\n --red-light-5: #ce596cff;\n --red-light-6: #c73d53ff;\n --red-light-7: #bf203aff;\n --red-dark-0: #0d0103ff;\n --red-dark-1: #220107ff;\n --red-dark-2: #38020bff;\n --red-dark-3: #4d020eff;\n --red-dark-4: #630312ff;\n --red-dark-5: #780316ff;\n --red-dark-6: #8d031aff;\n --red-dark-7: #a3041dff;\n --red-translucent: #b804211f;\n --orange--: #d13704ff;\n --orange-light-0: #f2e9e6ff;\n --orange-light-1: #eed3caff;\n --orange-light-2: #eabdaeff;\n --orange-light-3: #e6a691ff;\n --orange-light-4: #e29075ff;\n --orange-light-5: #dd7a59ff;\n --orange-light-6: #d9643dff;\n --orange-light-7: #d54d20ff;\n --orange-dark-0: #0d0300ff;\n --orange-dark-1: #260a01ff;\n --orange-dark-2: #3e1001ff;\n --orange-dark-3: #571702ff;\n --orange-dark-4: #6f1d02ff;\n --orange-dark-5: #882403ff;\n --orange-dark-6: #a02a03ff;\n --orange-dark-7: #b93104ff;\n --orange-translucent: #d137041f;\n --amber--: #d16004ff;\n --amber-light-0: #f2ece6ff;\n --amber-light-1: #eedbcaff;\n --amber-light-2: #eac9aeff;\n --amber-light-3: #e6b891ff;\n --amber-light-4: #e2a675ff;\n --amber-light-5: #dd9559ff;\n --amber-light-6: #d9833dff;\n --amber-light-7: #d57220ff;\n --amber-dark-0: #0d0c0cff;\n --amber-dark-1: #26170bff;\n --amber-dark-2: #3e210aff;\n --amber-dark-3: #572c09ff;\n --amber-dark-4: #6f3608ff;\n --amber-dark-5: #884107ff;\n --amber-dark-6: #a04b06ff;\n --amber-dark-7: #b95605ff;\n --amber-translucent: #d160041f;\n --yellow--: #d17f04ff;\n --yellow-light-0: #f2eadfff;\n --yellow-light-1: #eeddc4ff;\n --yellow-light-2: #eacfa8ff;\n --yellow-light-3: #e6c28dff;\n --yellow-light-4: #e2b572ff;\n --yellow-light-5: #dda756ff;\n --yellow-light-6: #d99a3bff;\n --yellow-light-7: #d58c1fff;\n --yellow-dark-0: #0d0c0cff;\n --yellow-dark-1: #261a0bff;\n --yellow-dark-2: #3e290aff;\n --yellow-dark-3: #573709ff;\n --yellow-dark-4: #6f4608ff;\n --yellow-dark-5: #885407ff;\n --yellow-dark-6: #a06206ff;\n --yellow-dark-7: #b97105ff;\n --yellow-translucent: #d17f041f;\n --lime--: #cad104ff;\n --lime-light-0: #f2f2dfff;\n --lime-light-1: #edeec4ff;\n --lime-light-2: #e8eaa8ff;\n --lime-light-3: #e3e68dff;\n --lime-light-4: #dee272ff;\n --lime-light-5: #d9dd56ff;\n --lime-light-6: #d4d93bff;\n --lime-light-7: #cfd51fff;\n --lime-dark-0: #0d0d0cff;\n --lime-dark-1: #25260bff;\n --lime-dark-2: #3c3e0aff;\n --lime-dark-3: #545709ff;\n --lime-dark-4: #6c6f08ff;\n --lime-dark-5: #838807ff;\n --lime-dark-6: #9ba006ff;\n --lime-dark-7: #b2b905ff;\n --lime-translucent: #cad1041f;\n --green--: #2dba73ff;\n --green-light-0: #e6f2ecff;\n --green-light-1: #cfebddff;\n --green-light-2: #b8e4ceff;\n --green-light-3: #a1ddbfff;\n --green-light-4: #8ad6b0ff;\n --green-light-5: #72cfa0ff;\n --green-light-6: #5bc891ff;\n --green-light-7: #44c182ff;\n --green-dark-0: #030d08ff;\n --green-dark-1: #082315ff;\n --green-dark-2: #0e3823ff;\n --green-dark-3: #134e30ff;\n --green-dark-4: #18643eff;\n --green-dark-5: #1d794bff;\n --green-dark-6: #238f58ff;\n --green-dark-7: #28a466ff;\n --green-translucent: #2dba731f;\n --teal--: #04b8b8ff;\n --teal-light-0: #f2fffeff;\n --teal-light-1: #d4f6f5ff;\n --teal-light-2: #b7ededff;\n --teal-light-3: #99e4e4ff;\n --teal-light-4: #7bdcdbff;\n --teal-light-5: #5dd3d2ff;\n --teal-light-6: #40cacaff;\n --teal-light-7: #22c1c1ff;\n --teal-dark-0: #0c0d0dff;\n --teal-dark-1: #0b2624ff;\n --teal-dark-2: #0a3e3cff;\n --teal-dark-3: #095753ff;\n --teal-dark-4: #086f6aff;\n --teal-dark-5: #078881ff;\n --teal-dark-6: #06a099ff;\n --teal-dark-7: #05b9b0ff;\n --teal-translucent: #04b8b81f;\n --blue--: #0576ffff;\n --blue-light-0: #ebf5ffff;\n --blue-light-1: #cee5ffff;\n --blue-light-2: #b2d5ffff;\n --blue-light-3: #95c5ffff;\n --blue-light-4: #78b6ffff;\n --blue-light-5: #5ba6ffff;\n --blue-light-6: #3f96ffff;\n --blue-light-7: #2286ffff;\n --blue-dark-0: #0c0c0dff;\n --blue-dark-1: #0b192bff;\n --blue-dark-2: #0a274aff;\n --blue-dark-3: #093468ff;\n --blue-dark-4: #094186ff;\n --blue-dark-5: #084ea4ff;\n --blue-dark-6: #075cc3ff;\n --blue-dark-7: #0669e1ff;\n --blue-translucent: #0576ff1f;\n --indigo--: #5405ffff;\n --indigo-light-0: #f6f2ffff;\n --indigo-light-1: #e2d4ffff;\n --indigo-light-2: #ceb7ffff;\n --indigo-light-3: #b999ffff;\n --indigo-light-4: #a57cffff;\n --indigo-light-5: #915effff;\n --indigo-light-6: #7d40ffff;\n --indigo-light-7: #6823ffff;\n --indigo-dark-0: #0d0c0cff;\n --indigo-dark-1: #160b2aff;\n --indigo-dark-2: #1f0a49ff;\n --indigo-dark-3: #280967ff;\n --indigo-dark-4: #310986ff;\n --indigo-dark-5: #3908a4ff;\n --indigo-dark-6: #4207c2ff;\n --indigo-dark-7: #4b06e1ff;\n --indigo-translucent: #5405ff1f;\n --purple--: #8a05ffff;\n --purple-light-0: #f9f2ffff;\n --purple-light-1: #ebd4ffff;\n --purple-light-2: #ddb7ffff;\n --purple-light-3: #cf99ffff;\n --purple-light-4: #c27cffff;\n --purple-light-5: #b45effff;\n --purple-light-6: #a640ffff;\n --purple-light-7: #9823ffff;\n --purple-dark-0: #0c0c0dff;\n --purple-dark-1: #1c0b2bff;\n --purple-dark-2: #2c0a4aff;\n --purple-dark-3: #3b0968ff;\n --purple-dark-4: #4b0986ff;\n --purple-dark-5: #5b08a4ff;\n --purple-dark-6: #6b07c3ff;\n --purple-dark-7: #7a06e1ff;\n --purple-translucent: #8a05ff1f;\n --pink--: #ff05a8ff;\n --pink-light-0: #f9f2ffff;\n --pink-light-1: #fad4f4ff;\n --pink-light-2: #fbb7e9ff;\n --pink-light-3: #fb99deff;\n --pink-light-4: #fc7cd4ff;\n --pink-light-5: #fd5ec9ff;\n --pink-light-6: #fe40beff;\n --pink-light-7: #fe23b3ff;\n --pink-dark-0: #0c0c0dff;\n --pink-dark-1: #2a0b20ff;\n --pink-dark-2: #490a34ff;\n --pink-dark-3: #670947ff;\n --pink-dark-4: #86095bff;\n --pink-dark-5: #a4086eff;\n --pink-dark-6: #c20781ff;\n --pink-dark-7: #e10695ff;\n --pink-translucent: #ff05a81f;\n --brown--: #ab642eff;\n --brown-light-0: #f2dfdfff;\n --brown-light-1: #e9d0c9ff;\n --brown-light-2: #e0c0b3ff;\n --brown-light-3: #d7b19dff;\n --brown-light-4: #cfa287ff;\n --brown-light-5: #c69270ff;\n --brown-light-6: #bd835aff;\n --brown-light-7: #b47344ff;\n --brown-dark-0: #0d0c0cff;\n --brown-dark-1: #211710ff;\n --brown-dark-2: #352215ff;\n --brown-dark-3: #482d19ff;\n --brown-dark-4: #5c381dff;\n --brown-dark-5: #704321ff;\n --brown-dark-6: #844e26ff;\n --brown-dark-7: #97592aff;\n --brown-translucent: #ab642e1f;\n}\n\n/* Numerics */\n:root {\n --border-none: 0px;\n --border-x-thin: 1px;\n --border-thin: 2px;\n --border-medium: 4px;\n --border-thick: 8px;\n --border-x-thick: 10px;\n --spacing-none: 0px;\n --spacing-4x-small: 1px;\n --spacing-2x-small: 2px;\n --spacing-x-small: 4px;\n --spacing-small: 6px;\n --spacing-medium: 8px;\n --spacing-large: 12px;\n --spacing-x-large: 16px;\n --spacing-2x-large: 24px;\n --spacing-4x-large: 32px;\n --font-size-display-1: 6em;\n --font-size-display-2: 5.5em;\n --font-size-display-3: 4.5em;\n --font-size-display-4: 3.5em;\n --font-size-h1: 2em;\n --font-size-h2: 1.5em;\n --font-size-h3: 1.17em;\n --font-size-h4: 1em;\n --font-size-h5: 0.83em;\n --font-size-paragraph: 1em;\n --font-size-small: 0.8em;\n --font-size-label: 0.83em;\n --font-size-button: 1em;\n --font-size-quote: 1.17em;\n --radii-none: 0px;\n --radii-x-small: 0.125em;\n --radii-small: 0.25em;\n --radii-medium: 0.375em;\n --radii-large: 0.5px;\n --radii-x-large: 1em;\n --radii-full: 9999px;\n --sizing-2x-small: 16px;\n --sizing-x-small: 19px;\n --sizing-small: 32px;\n --sizing-medium: 40px;\n --sizing-large: 56px;\n}\n\n/* Components */\n\n:root {\n /* appbar */\n --component-appbar-collapsed-width: 48px;\n --component-appbar-padding: var(--spacing-medium);\n --component-appbar-width: 240px;\n --component-appbar-z-index: 100;\n\n /* avatar */\n --component-avatar-border-radius-circle: var(--radii-full);\n --component-avatar-border-radius-square: var(--radii-small);\n --component-avatar-size-large: var(--sizing-large);\n --component-avatar-size-medium: var(--sizing-medium);\n --component-avatar-size-small: var(--sizing-small);\n\n /* badge */\n --component-badge-border-radius-circle: var(--radii-full);\n --component-badge-border-radius-square: var(--radii-small);\n --component-badge-padding-large: var(--spacing-small);\n --component-badge-padding-medium: var(--spacing-x-small);\n --component-badge-padding-small: var(--spacing-2x-small);\n --component-badge-size-large: var(--sizing-medium);\n --component-badge-size-medium: var(--sizing-small);\n --component-badge-size-small: var(--sizing-2x-small);\n\n /* button */\n --component-button-border-radius-inner: var(--radii-x-small);\n --component-button-border-radius-outer: var(--radii-small);\n --component-button-border-width: var(--border-thin);\n --component-button-border-width-2: var(--border-x-thin);\n --component-button-padding-large: var(--spacing-x-large);\n --component-button-padding-medium: var(--spacing-medium);\n --component-button-padding-small: var(--spacing-x-small);\n\n /* card */\n --component-card-border-radius-inner: var(--radii-small);\n --component-card-border-radius-outer: var(--radii-medium);\n --component-card-border-width: var(--border-x-thin);\n --component-card-inner-border-width: var(--border-x-thin);\n --component-card-padding-inner: var(--spacing-medium);\n --component-card-padding-outer: var(--spacing-x-large);\n\n /* checkbox */\n --component-checkbox-icon-size: var(--sizing-2x-small);\n --component-checkbox-size: var(--sizing-x-small);\n\n /* dialog */\n --component-dialog-border-radius-inner: var(--radii-x-small);\n --component-dialog-border-radius-outer: var(--radii-small);\n --component-dialog-border-width: var(--border-x-thin);\n --component-dialog-inner-border-width: var(--border-x-thin);\n --component-dialog-padding: var(--spacing-medium);\n --component-dialog-z-index: 1000;\n\n /* drawer */\n --component-drawer-border-radius: var(--radii-small);\n --component-drawer-border-width: var(--border-x-thin);\n --component-drawer-handle-padding: var(--spacing-x-small);\n --component-drawer-handle-width: var(--spacing-x-small);\n --component-drawer-padding: var(--spacing-medium);\n --component-drawer-z-index: 5000;\n\n /* icon */\n --component-icon-size-large: var(--spacing-4x-large);\n --component-icon-size-medium: var(--spacing-2x-large);\n --component-icon-size-small: var(--spacing-x-large);\n\n /* inputs */\n --component-inputs-border-radius-inner: var(--radii-x-small);\n --component-inputs-border-radius-outer: var(--radii-small);\n --component-inputs-border-width: var(--border-thin);\n --component-inputs-padding-large: var(--spacing-x-large);\n --component-inputs-padding-medium: var(--spacing-medium);\n --component-inputs-padding-small: var(--spacing-x-small);\n\n /* menu */\n --component-menu-border-radius: var(--radii-x-small);\n --component-menu-border-width: var(--border-x-thin);\n --component-menu-padding-horizontal: var(--spacing-small);\n --component-menu-padding-vertical: var(--spacing-x-small);\n --component-menu-z-index: 1001;\n\n /* panelbar */\n --component-panelbar-border-radius: var(--radii-x-small);\n --component-panelbar-border-width: var(--border-x-thin);\n --component-panelbar-indent: var(--spacing-x-large);\n --component-panelbar-padding: var(--spacing-medium);\n\n /* progress */\n --component-progress-border-radius-inner: var(--radii-small);\n --component-progress-border-radius-outer: calc(var(--radii-small) + 4px);\n --component-progress-border-width: var(--border-x-thin);\n --component-progress-padding: var(--spacing-x-small);\n --component-progress-size-large: var(--sizing-large);\n --component-progress-size-medium: var(--sizing-medium);\n --component-progress-size-small: var(--sizing-small);\n\n /* radio */\n --component-radio-dot-offset: var(--spacing-2x-small);\n --component-radio-dot-size: var(--spacing-medium);\n --component-radio-size: var(--sizing-2x-small);\n\n /* select */\n --component-select-z-index: 6000;\n\n /* sidebar */\n --component-sidebar-border-radius: var(--radii-small);\n --component-sidebar-border-width: var(--border-x-thin);\n\n /* slider */\n --component-slider-border-radius-inner: var(--radii-small);\n --component-slider-border-radius-outer: calc(var(--radii-small) + 4px);\n --component-slider-border-width: var(--border-x-thin);\n --component-slider-padding: var(--spacing-x-small);\n --component-slider-thumb-border-radius: var(--radii-x-small);\n\n /* switch */\n --component-switch-border-radius: var(--radii-full);\n --component-switch-border-width: var(--border-x-thin);\n --component-switch-padding: var(--spacing-2x-small);\n\n /* tab */\n --component-tab-border-radius-inner: var(--radii-x-small);\n --component-tab-border-radius-outer: var(--radii-small);\n --component-tab-border-width: var(--border-x-thin);\n --component-tab-content-padding: var(--spacing-large);\n --component-tab-gap-large: var(--spacing-large);\n --component-tab-gap-medium: var(--spacing-small);\n --component-tab-gap-small: var(--spacing-2x-small);\n --component-tab-padding-large: var(--spacing-2x-large);\n --component-tab-padding-medium: var(--spacing-large);\n --component-tab-padding-small: var(--spacing-small);\n\n /* table */\n --component-table-border-radius: var(--radii-small);\n --component-table-border-width: var(--border-x-thin);\n --component-table-border-width-header: var(--border-thin);\n --component-table-padding-large: var(--spacing-large);\n --component-table-padding-medium: var(--spacing-medium);\n --component-table-padding-small: var(--spacing-small);\n\n /* tag */\n --component-tag-border-radius-circle: var(--radii-full);\n --component-tag-border-radius-square: var(--radii-small);\n --component-tag-padding-large: var(--spacing-small);\n --component-tag-padding-medium: var(--spacing-x-small);\n --component-tag-padding-small: var(--spacing-2x-small);\n --component-tag-size-large: var(--sizing-large);\n --component-tag-size-medium: var(--sizing-medium);\n --component-tag-size-small: var(--sizing-small);\n\n /* toast */\n --component-toast-border-radius: var(--radii-small);\n --component-toast-offset: var(--spacing-x-large);\n --component-toast-padding: var(--spacing-medium);\n --component-toast-padding-h: var(--spacing-x-large);\n --component-toast-z-index: 9000;\n\n /* tooltip */\n --component-tooltip-border-radius: var(--radii-small);\n --component-tooltip-padding: var(--spacing-x-small);\n --component-tooltip-padding-h: var(--spacing-medium);\n --component-tooltip-z-index: 7000;\n}\n\n/* Default Theme (Blue Light) */\n:root {\n --base-background-app: var(--neutral-light-1);\n --base-background-component: var(--neutral-light-0);\n --base-background-hover: var(--neutral-light-2);\n --base-background-border: var(--neutral-light-3);\n --base-background-active: var(--neutral-light-4);\n --base-content--: var(--neutral-dark-0);\n --base-content-inverse: var(--neutral-white);\n --base-content-light: var(--neutral-dark-1);\n --base-content-lighter: var(--neutral-dark-3);\n --base-content-lightest: var(--neutral-dark-5);\n --base-shadow: 0 2px 6px var(--neutral-black-translucent);\n --primary-background-app: var(--blue-light-1);\n --primary-background-component: var(--blue-light-0);\n --primary-background-hover: var(--blue-light-2);\n --primary-background-active: var(--blue-light-3);\n --primary-background-border: var(--blue-light-4);\n --primary-content--: var(--blue--);\n --primary-content-inverse: var(--neutral-white);\n --primary-content-hover: var(--blue-dark-7);\n --primary-content-active: var(--blue-dark-6);\n --secondary-background-app: var(--teal-light-1);\n --secondary-background-component: var(--teal-light-0);\n --secondary-background-hover: var(--teal-light-2);\n --secondary-background-border: var(--teal-light-3);\n --secondary-background-active: var(--teal-light-4);\n --secondary-content--: var(--teal--);\n --secondary-content-inverse: var(--neutral-black);\n --secondary-content-hover: var(--teal-dark-7);\n --secondary-content-active: var(--teal-dark-6);\n --success-background-app: var(--green-light-1);\n --success-background-component: var(--green-light-0);\n --success-background-hover: var(--green-light-2);\n --success-background-border: var(--green-light-3);\n --success-background-active: var(--green-light-4);\n --success-content--: var(--green--);\n --success-content-inverse: var(--neutral-black);\n --success-content-hover: var(--green-dark-7);\n --success-content-active: var(--green-dark-6);\n --warning-background-app: var(--yellow-light-1);\n --warning-background-component: var(--yellow-light-0);\n --warning-background-hover: var(--yellow-light-2);\n --warning-background-border: var(--yellow-light-3);\n --warning-background-active: var(--yellow-light-4);\n --warning-content--: var(--yellow--);\n --warning-content-inverse: var(--neutral-black);\n --warning-content-hover: var(--yellow-dark-7);\n --warning-content-active: var(--yellow-dark-6);\n --error-background-app: var(--red-light-1);\n --error-background-component: var(--red-light-0);\n --error-background-hover: var(--red-light-2);\n --error-background-border: var(--red-light-3);\n --error-background-active: var(--red-light-4);\n --error-content--: var(--red--);\n --error-content-inverse: var(--neutral-white);\n --error-content-hover: var(--red-dark-7);\n --error-content-active: var(--red-dark-6);\n --help-background-app: var(--indigo-light-1);\n --help-background-component: var(--indigo-light-0);\n --help-background-hover: var(--indigo-light-2);\n --help-background-active: var(--indigo-light-3);\n --help-background-border: var(--indigo-light-4);\n --help-content--: var(--indigo--);\n --help-content-inverse: var(--neutral-white);\n --help-content-hover: var(--indigo-dark-7);\n --help-content-active: var(--indigo-dark-6);\n --component-appbar-background: var(--base-background-component);\n --component-appbar-color: var(--base-content--);\n --component-appbar-border-color: var(--base-background-border);\n --component-appbar-border-width: var(--component-sidebar-border-width);\n --component-appbar-border-radius: var(--component-sidebar-border-radius);\n --component-appbar-inner-border-width: var(\n --component-sidebar-border-width\n );\n --component-checkbox-background: var(--base-background-component);\n --component-checkbox-color: var(--base-content--);\n --component-checkbox-border-color: var(--base-content--);\n --component-checkbox-accent: var(--primary-content--);\n --component-dialog-background: var(--base-background-component);\n --component-dialog-color: var(--base-content--);\n --component-dialog-border-color: var(--base-background-border);\n --component-dialog-hover-background: var(--base-background-hover);\n --component-dialog-accent: var(--primary-content--);\n --component-dialog-shadow: var(--base-shadow);\n --component-drawer-background: var(--base-background-component);\n --component-drawer-color: var(--base-content--);\n --component-drawer-border-color: var(--base-background-border);\n --component-drawer-hover-background: var(--base-background-hover);\n --component-input-background: var(--base-background-app);\n --component-input-background-disabled: var(--base-background-component);\n --component-input-color: var(--base-content--);\n --component-input-border-color: var(--base-background-border);\n --component-input-accent: var(--primary-content--);\n --component-input-label-color: var(--base-content-light);\n --component-input-icon-color: var(--base-content-lighter);\n --component-input-error-color: var(--error-content--);\n --component-input-error-background: var(--error-background-component);\n --component-input-error-border-color: var(--error-background-border);\n --component-menu-background: var(--base-background-component);\n --component-menu-color: var(--base-content--);\n --component-menu-border-color: var(--base-background-border);\n --component-menu-hover-background: var(--base-background-hover);\n --component-menu-shadow: var(--base-shadow);\n --component-panel-background: var(--base-background-component);\n --component-panel-color: var(--base-content--);\n --component-panel-expanded-background: var(--base-background-app);\n --component-panel-accent: var(--primary-content--);\n --component-panel-active-border: var(--base-background-active);\n --component-panel-accent-hover-background: var(--primary-background-active);\n --component-panel-hover-background: var(--base-background-hover);\n --component-radio-color: var(--base-content--);\n --component-radio-accent: var(--primary-content--);\n --component-select-background: var(--base-background-app);\n --component-select-color: var(--base-content--);\n --component-select-border-color: var(--base-background-border);\n --component-select-accent: var(--primary-content--);\n --component-select-accent-contrast: var(--base-background-component);\n --component-select-label-color: var(--base-content-light);\n --component-select-hover-background: var(--base-background-hover);\n --component-select-shadow: var(--base-shadow);\n --component-select-error-color: var(--error-content--);\n --component-select-error-background: var(--error-background-component);\n --component-select-error-border-color: var(--error-background-border);\n --component-table-color: var(--base-content--);\n --component-table-border-color: var(--base-background-border);\n --component-table-hover-background: var(--base-background-hover);\n --component-table-active-background: var(--base-background-active);\n --component-table-color-light: var(--base-content-lightest);\n --component-tabs-background: var(--base-background-component);\n --component-tabs-color: var(--base-content--);\n --component-tabs-border-color: var(--base-background-border);\n --component-tabs-accent: var(--primary-content--);\n --component-tabs-font-family: var(--font-family-body);\n --component-slider-width: 129px;\n --font-family-header: \"Lexend\", sans-serif;\n --font-family-body: \"Lexend\", sans-serif;\n}\n";
|
|
1
|
+
var variablesCSS = "/* Colors */\n:root {\n --neutral--: #7f8286ff;\n --neutral-white: #ffffffff;\n --neutral-black: #000000ff;\n --neutral-light-0: #f7f7faff;\n --neutral-light-1: #f0f0f2ff;\n --neutral-light-2: #dfe0e3ff;\n --neutral-light-3: #cacbcfff;\n --neutral-light-4: #bbbdc0ff;\n --neutral-light-5: #acaeb2ff;\n --neutral-light-6: #9d9fa3ff;\n --neutral-light-7: #8e9195ff;\n --neutral-dark-0: #0c0c0dff;\n --neutral-dark-1: #151617ff;\n --neutral-dark-2: #292a2bff;\n --neutral-dark-3: #37383aff;\n --neutral-dark-4: #46474aff;\n --neutral-dark-5: #545659ff;\n --neutral-dark-6: #626568ff;\n --neutral-dark-7: #717377ff;\n --neutral-black-translucent: #0000001f;\n --neutral-white-translucent: #1111111f;\n --red--: #b80421ff;\n --red-light-0: #f2e6e8ff;\n --red-light-1: #ebcacfff;\n --red-light-2: #e4aeb6ff;\n --red-light-3: #dc919dff;\n --red-light-4: #d57585ff;\n --red-light-5: #ce596cff;\n --red-light-6: #c73d53ff;\n --red-light-7: #bf203aff;\n --red-dark-0: #0d0103ff;\n --red-dark-1: #220107ff;\n --red-dark-2: #38020bff;\n --red-dark-3: #4d020eff;\n --red-dark-4: #630312ff;\n --red-dark-5: #780316ff;\n --red-dark-6: #8d031aff;\n --red-dark-7: #a3041dff;\n --red-translucent: #b804211f;\n --orange--: #d13704ff;\n --orange-light-0: #f2e9e6ff;\n --orange-light-1: #eed3caff;\n --orange-light-2: #eabdaeff;\n --orange-light-3: #e6a691ff;\n --orange-light-4: #e29075ff;\n --orange-light-5: #dd7a59ff;\n --orange-light-6: #d9643dff;\n --orange-light-7: #d54d20ff;\n --orange-dark-0: #0d0300ff;\n --orange-dark-1: #260a01ff;\n --orange-dark-2: #3e1001ff;\n --orange-dark-3: #571702ff;\n --orange-dark-4: #6f1d02ff;\n --orange-dark-5: #882403ff;\n --orange-dark-6: #a02a03ff;\n --orange-dark-7: #b93104ff;\n --orange-translucent: #d137041f;\n --amber--: #d16004ff;\n --amber-light-0: #f2ece6ff;\n --amber-light-1: #eedbcaff;\n --amber-light-2: #eac9aeff;\n --amber-light-3: #e6b891ff;\n --amber-light-4: #e2a675ff;\n --amber-light-5: #dd9559ff;\n --amber-light-6: #d9833dff;\n --amber-light-7: #d57220ff;\n --amber-dark-0: #0d0c0cff;\n --amber-dark-1: #26170bff;\n --amber-dark-2: #3e210aff;\n --amber-dark-3: #572c09ff;\n --amber-dark-4: #6f3608ff;\n --amber-dark-5: #884107ff;\n --amber-dark-6: #a04b06ff;\n --amber-dark-7: #b95605ff;\n --amber-translucent: #d160041f;\n --yellow--: #d17f04ff;\n --yellow-light-0: #f2eadfff;\n --yellow-light-1: #eeddc4ff;\n --yellow-light-2: #eacfa8ff;\n --yellow-light-3: #e6c28dff;\n --yellow-light-4: #e2b572ff;\n --yellow-light-5: #dda756ff;\n --yellow-light-6: #d99a3bff;\n --yellow-light-7: #d58c1fff;\n --yellow-dark-0: #0d0c0cff;\n --yellow-dark-1: #261a0bff;\n --yellow-dark-2: #3e290aff;\n --yellow-dark-3: #573709ff;\n --yellow-dark-4: #6f4608ff;\n --yellow-dark-5: #885407ff;\n --yellow-dark-6: #a06206ff;\n --yellow-dark-7: #b97105ff;\n --yellow-translucent: #d17f041f;\n --lime--: #cad104ff;\n --lime-light-0: #f2f2dfff;\n --lime-light-1: #edeec4ff;\n --lime-light-2: #e8eaa8ff;\n --lime-light-3: #e3e68dff;\n --lime-light-4: #dee272ff;\n --lime-light-5: #d9dd56ff;\n --lime-light-6: #d4d93bff;\n --lime-light-7: #cfd51fff;\n --lime-dark-0: #0d0d0cff;\n --lime-dark-1: #25260bff;\n --lime-dark-2: #3c3e0aff;\n --lime-dark-3: #545709ff;\n --lime-dark-4: #6c6f08ff;\n --lime-dark-5: #838807ff;\n --lime-dark-6: #9ba006ff;\n --lime-dark-7: #b2b905ff;\n --lime-translucent: #cad1041f;\n --green--: #2dba73ff;\n --green-light-0: #e6f2ecff;\n --green-light-1: #cfebddff;\n --green-light-2: #b8e4ceff;\n --green-light-3: #a1ddbfff;\n --green-light-4: #8ad6b0ff;\n --green-light-5: #72cfa0ff;\n --green-light-6: #5bc891ff;\n --green-light-7: #44c182ff;\n --green-dark-0: #030d08ff;\n --green-dark-1: #082315ff;\n --green-dark-2: #0e3823ff;\n --green-dark-3: #134e30ff;\n --green-dark-4: #18643eff;\n --green-dark-5: #1d794bff;\n --green-dark-6: #238f58ff;\n --green-dark-7: #28a466ff;\n --green-translucent: #2dba731f;\n --teal--: #04b8b8ff;\n --teal-light-0: #f2fffeff;\n --teal-light-1: #d4f6f5ff;\n --teal-light-2: #b7ededff;\n --teal-light-3: #99e4e4ff;\n --teal-light-4: #7bdcdbff;\n --teal-light-5: #5dd3d2ff;\n --teal-light-6: #40cacaff;\n --teal-light-7: #22c1c1ff;\n --teal-dark-0: #0c0d0dff;\n --teal-dark-1: #0b2624ff;\n --teal-dark-2: #0a3e3cff;\n --teal-dark-3: #095753ff;\n --teal-dark-4: #086f6aff;\n --teal-dark-5: #078881ff;\n --teal-dark-6: #06a099ff;\n --teal-dark-7: #05b9b0ff;\n --teal-translucent: #04b8b81f;\n --blue--: #0576ffff;\n --blue-light-0: #ebf5ffff;\n --blue-light-1: #cee5ffff;\n --blue-light-2: #b2d5ffff;\n --blue-light-3: #95c5ffff;\n --blue-light-4: #78b6ffff;\n --blue-light-5: #5ba6ffff;\n --blue-light-6: #3f96ffff;\n --blue-light-7: #2286ffff;\n --blue-dark-0: #0c0c0dff;\n --blue-dark-1: #0b192bff;\n --blue-dark-2: #0a274aff;\n --blue-dark-3: #093468ff;\n --blue-dark-4: #094186ff;\n --blue-dark-5: #084ea4ff;\n --blue-dark-6: #075cc3ff;\n --blue-dark-7: #0669e1ff;\n --blue-translucent: #0576ff1f;\n --indigo--: #5405ffff;\n --indigo-light-0: #f6f2ffff;\n --indigo-light-1: #e2d4ffff;\n --indigo-light-2: #ceb7ffff;\n --indigo-light-3: #b999ffff;\n --indigo-light-4: #a57cffff;\n --indigo-light-5: #915effff;\n --indigo-light-6: #7d40ffff;\n --indigo-light-7: #6823ffff;\n --indigo-dark-0: #0d0c0cff;\n --indigo-dark-1: #160b2aff;\n --indigo-dark-2: #1f0a49ff;\n --indigo-dark-3: #280967ff;\n --indigo-dark-4: #310986ff;\n --indigo-dark-5: #3908a4ff;\n --indigo-dark-6: #4207c2ff;\n --indigo-dark-7: #4b06e1ff;\n --indigo-translucent: #5405ff1f;\n --purple--: #8a05ffff;\n --purple-light-0: #f9f2ffff;\n --purple-light-1: #ebd4ffff;\n --purple-light-2: #ddb7ffff;\n --purple-light-3: #cf99ffff;\n --purple-light-4: #c27cffff;\n --purple-light-5: #b45effff;\n --purple-light-6: #a640ffff;\n --purple-light-7: #9823ffff;\n --purple-dark-0: #0c0c0dff;\n --purple-dark-1: #1c0b2bff;\n --purple-dark-2: #2c0a4aff;\n --purple-dark-3: #3b0968ff;\n --purple-dark-4: #4b0986ff;\n --purple-dark-5: #5b08a4ff;\n --purple-dark-6: #6b07c3ff;\n --purple-dark-7: #7a06e1ff;\n --purple-translucent: #8a05ff1f;\n --pink--: #ff05a8ff;\n --pink-light-0: #f9f2ffff;\n --pink-light-1: #fad4f4ff;\n --pink-light-2: #fbb7e9ff;\n --pink-light-3: #fb99deff;\n --pink-light-4: #fc7cd4ff;\n --pink-light-5: #fd5ec9ff;\n --pink-light-6: #fe40beff;\n --pink-light-7: #fe23b3ff;\n --pink-dark-0: #0c0c0dff;\n --pink-dark-1: #2a0b20ff;\n --pink-dark-2: #490a34ff;\n --pink-dark-3: #670947ff;\n --pink-dark-4: #86095bff;\n --pink-dark-5: #a4086eff;\n --pink-dark-6: #c20781ff;\n --pink-dark-7: #e10695ff;\n --pink-translucent: #ff05a81f;\n --brown--: #ab642eff;\n --brown-light-0: #f2dfdfff;\n --brown-light-1: #e9d0c9ff;\n --brown-light-2: #e0c0b3ff;\n --brown-light-3: #d7b19dff;\n --brown-light-4: #cfa287ff;\n --brown-light-5: #c69270ff;\n --brown-light-6: #bd835aff;\n --brown-light-7: #b47344ff;\n --brown-dark-0: #0d0c0cff;\n --brown-dark-1: #211710ff;\n --brown-dark-2: #352215ff;\n --brown-dark-3: #482d19ff;\n --brown-dark-4: #5c381dff;\n --brown-dark-5: #704321ff;\n --brown-dark-6: #844e26ff;\n --brown-dark-7: #97592aff;\n --brown-translucent: #ab642e1f;\n}\n\n/* Numerics */\n:root {\n --border-none: 0px;\n --border-x-thin: 1px;\n --border-thin: 2px;\n --border-medium: 4px;\n --border-thick: 8px;\n --border-x-thick: 10px;\n --spacing-none: 0px;\n --spacing-4x-small: 1px;\n --spacing-2x-small: 2px;\n --spacing-x-small: 4px;\n --spacing-small: 6px;\n --spacing-medium: 8px;\n --spacing-large: 12px;\n --spacing-x-large: 16px;\n --spacing-2x-large: 24px;\n --spacing-4x-large: 32px;\n --font-size-display-1: 6em;\n --font-size-display-2: 5.5em;\n --font-size-display-3: 4.5em;\n --font-size-display-4: 3.5em;\n --font-size-h1: 2em;\n --font-size-h2: 1.5em;\n --font-size-h3: 1.17em;\n --font-size-h4: 1em;\n --font-size-h5: 0.83em;\n --font-size-paragraph: 1em;\n --font-size-small: 0.8em;\n --font-size-label: 0.83em;\n --font-size-button: 1em;\n --font-size-quote: 1.17em;\n --radii-none: 0px;\n --radii-x-small: 0.125em;\n --radii-small: 0.25em;\n --radii-medium: 0.375em;\n --radii-large: 0.5px;\n --radii-x-large: 1em;\n --radii-full: 9999px;\n --sizing-2x-small: 16px;\n --sizing-x-small: 19px;\n --sizing-small: 32px;\n --sizing-medium: 40px;\n --sizing-large: 56px;\n}\n\n/* Components */\n\n:root {\n /* appbar */\n --component-appbar-collapsed-width: 48px;\n --component-appbar-padding: var(--spacing-medium);\n --component-appbar-width: 240px;\n --component-appbar-z-index: 100;\n\n /* avatar */\n --component-avatar-border-radius-circle: var(--radii-full);\n --component-avatar-border-radius-square: var(--radii-small);\n --component-avatar-size-large: var(--sizing-large);\n --component-avatar-size-medium: var(--sizing-medium);\n --component-avatar-size-small: var(--sizing-small);\n\n /* badge */\n --component-badge-border-radius-circle: var(--radii-full);\n --component-badge-border-radius-square: var(--radii-small);\n --component-badge-padding-large: var(--spacing-small);\n --component-badge-padding-medium: var(--spacing-x-small);\n --component-badge-padding-small: var(--spacing-2x-small);\n --component-badge-size-large: var(--sizing-medium);\n --component-badge-size-medium: var(--sizing-small);\n --component-badge-size-small: var(--sizing-2x-small);\n\n /* button */\n --component-button-border-radius-inner: var(--radii-x-small);\n --component-button-border-radius-outer: var(--radii-small);\n --component-button-border-width: var(--border-thin);\n --component-button-border-width-2: var(--border-x-thin);\n --component-button-padding-large: var(--spacing-x-large);\n --component-button-padding-medium: var(--spacing-medium);\n --component-button-padding-small: var(--spacing-x-small);\n\n /* card */\n --component-card-border-radius-inner: var(--radii-small);\n --component-card-border-radius-outer: var(--radii-medium);\n --component-card-border-width: var(--border-x-thin);\n --component-card-inner-border-width: var(--border-x-thin);\n --component-card-padding-inner: var(--spacing-medium);\n --component-card-padding-outer: var(--spacing-x-large);\n\n /* checkbox */\n --component-checkbox-icon-size: var(--sizing-2x-small);\n --component-checkbox-size: var(--sizing-x-small);\n\n /* dialog */\n --component-dialog-border-radius-inner: var(--radii-x-small);\n --component-dialog-border-radius-outer: var(--radii-small);\n --component-dialog-border-width: var(--border-x-thin);\n --component-dialog-inner-border-width: var(--border-x-thin);\n --component-dialog-padding: var(--spacing-medium);\n --component-dialog-z-index: 1000;\n\n /* drawer */\n --component-drawer-border-radius: var(--radii-small);\n --component-drawer-border-width: var(--border-x-thin);\n --component-drawer-handle-padding: var(--spacing-x-small);\n --component-drawer-handle-width: var(--spacing-x-small);\n --component-drawer-padding: var(--spacing-medium);\n --component-drawer-z-index: 5000;\n\n /* icon */\n --component-icon-size-large: var(--spacing-4x-large);\n --component-icon-size-medium: var(--spacing-2x-large);\n --component-icon-size-small: var(--spacing-x-large);\n\n /* inputs */\n --component-inputs-border-radius-inner: var(--radii-x-small);\n --component-inputs-border-radius-outer: var(--radii-small);\n --component-inputs-border-width: var(--border-thin);\n --component-inputs-padding-large: var(--spacing-x-large);\n --component-inputs-padding-medium: var(--spacing-medium);\n --component-inputs-padding-small: var(--spacing-x-small);\n\n /* menu */\n --component-menu-border-radius: var(--radii-x-small);\n --component-menu-border-width: var(--border-x-thin);\n --component-menu-padding-horizontal: var(--spacing-small);\n --component-menu-padding-vertical: var(--spacing-x-small);\n --component-menu-z-index: 1001;\n\n /* panelbar */\n --component-panelbar-border-radius: var(--radii-x-small);\n --component-panelbar-border-width: var(--border-x-thin);\n --component-panelbar-indent: var(--spacing-x-large);\n --component-panelbar-padding: var(--spacing-medium);\n\n /* progress */\n --component-progress-border-radius-inner: var(--radii-small);\n --component-progress-border-radius-outer: calc(var(--radii-small) + 4px);\n --component-progress-border-width: var(--border-x-thin);\n --component-progress-padding: var(--spacing-x-small);\n --component-progress-size-large: var(--sizing-large);\n --component-progress-size-medium: var(--sizing-medium);\n --component-progress-size-small: var(--sizing-small);\n\n /* radio */\n --component-radio-dot-offset: var(--spacing-2x-small);\n --component-radio-dot-size: var(--spacing-medium);\n --component-radio-size: var(--sizing-2x-small);\n\n /* select */\n --component-select-z-index: 6000;\n\n /* sidebar */\n --component-sidebar-border-radius: var(--radii-small);\n --component-sidebar-border-width: var(--border-x-thin);\n\n /* slider */\n --component-slider-border-radius-inner: var(--radii-small);\n --component-slider-border-radius-outer: calc(var(--radii-small) + 4px);\n --component-slider-border-width: var(--border-x-thin);\n --component-slider-padding: var(--spacing-x-small);\n --component-slider-thumb-border-radius: var(--radii-x-small);\n\n /* switch */\n --component-switch-border-radius: var(--radii-full);\n --component-switch-border-width: var(--border-x-thin);\n --component-switch-padding: var(--spacing-2x-small);\n\n /* tab */\n --component-tab-border-radius-inner: var(--radii-x-small);\n --component-tab-border-radius-outer: var(--radii-small);\n --component-tab-border-width: var(--border-x-thin);\n --component-tab-content-padding: var(--spacing-large);\n --component-tab-gap-large: var(--spacing-large);\n --component-tab-gap-medium: var(--spacing-small);\n --component-tab-gap-small: var(--spacing-2x-small);\n --component-tab-padding-large: var(--spacing-2x-large);\n --component-tab-padding-medium: var(--spacing-large);\n --component-tab-padding-small: var(--spacing-small);\n\n /* table */\n --component-table-border-radius: var(--radii-small);\n --component-table-border-width: var(--border-x-thin);\n --component-table-border-width-header: var(--border-thin);\n --component-table-padding-large: var(--spacing-large);\n --component-table-padding-medium: var(--spacing-medium);\n --component-table-padding-small: var(--spacing-small);\n\n /* tag */\n --component-tag-border-radius-circle: var(--radii-full);\n --component-tag-border-radius-square: var(--radii-small);\n --component-tag-padding-large: var(--spacing-small);\n --component-tag-padding-medium: var(--spacing-x-small);\n --component-tag-padding-small: var(--spacing-2x-small);\n --component-tag-height-large: 38px;\n --component-tag-height-medium: 28px;\n --component-tag-height-small: 22px;\n --component-tag-size-large: var(--sizing-large);\n --component-tag-size-medium: var(--sizing-medium);\n --component-tag-size-small: var(--sizing-small);\n\n /* toast */\n --component-toast-border-radius: var(--radii-small);\n --component-toast-offset: var(--spacing-x-large);\n --component-toast-padding: var(--spacing-medium);\n --component-toast-padding-h: var(--spacing-x-large);\n --component-toast-z-index: 9000;\n\n /* tooltip */\n --component-tooltip-border-radius: var(--radii-small);\n --component-tooltip-padding: var(--spacing-x-small);\n --component-tooltip-padding-h: var(--spacing-medium);\n --component-tooltip-z-index: 7000;\n}\n\n/* Default Theme (Blue Light) */\n:root {\n --base-background-app: var(--neutral-light-1);\n --base-background-component: var(--neutral-light-0);\n --base-background-hover: var(--neutral-light-2);\n --base-background-border: var(--neutral-light-3);\n --base-background-active: var(--neutral-light-4);\n --base-content--: var(--neutral-dark-0);\n --base-content-inverse: var(--neutral-white);\n --base-content-light: var(--neutral-dark-1);\n --base-content-lighter: var(--neutral-dark-3);\n --base-content-lightest: var(--neutral-dark-5);\n --base-shadow: 0 2px 6px var(--neutral-black-translucent);\n --primary-background-app: var(--blue-light-1);\n --primary-background-component: var(--blue-light-0);\n --primary-background-hover: var(--blue-light-2);\n --primary-background-active: var(--blue-light-3);\n --primary-background-border: var(--blue-light-4);\n --primary-content--: var(--blue--);\n --primary-content-inverse: var(--neutral-white);\n --primary-content-hover: var(--blue-dark-7);\n --primary-content-active: var(--blue-dark-6);\n --secondary-background-app: var(--teal-light-1);\n --secondary-background-component: var(--teal-light-0);\n --secondary-background-hover: var(--teal-light-2);\n --secondary-background-border: var(--teal-light-3);\n --secondary-background-active: var(--teal-light-4);\n --secondary-content--: var(--teal--);\n --secondary-content-inverse: var(--neutral-black);\n --secondary-content-hover: var(--teal-dark-7);\n --secondary-content-active: var(--teal-dark-6);\n --success-background-app: var(--green-light-1);\n --success-background-component: var(--green-light-0);\n --success-background-hover: var(--green-light-2);\n --success-background-border: var(--green-light-3);\n --success-background-active: var(--green-light-4);\n --success-content--: var(--green--);\n --success-content-inverse: var(--neutral-black);\n --success-content-hover: var(--green-dark-7);\n --success-content-active: var(--green-dark-6);\n --warning-background-app: var(--yellow-light-1);\n --warning-background-component: var(--yellow-light-0);\n --warning-background-hover: var(--yellow-light-2);\n --warning-background-border: var(--yellow-light-3);\n --warning-background-active: var(--yellow-light-4);\n --warning-content--: var(--yellow--);\n --warning-content-inverse: var(--neutral-black);\n --warning-content-hover: var(--yellow-dark-7);\n --warning-content-active: var(--yellow-dark-6);\n --error-background-app: var(--red-light-1);\n --error-background-component: var(--red-light-0);\n --error-background-hover: var(--red-light-2);\n --error-background-border: var(--red-light-3);\n --error-background-active: var(--red-light-4);\n --error-content--: var(--red--);\n --error-content-inverse: var(--neutral-white);\n --error-content-hover: var(--red-dark-7);\n --error-content-active: var(--red-dark-6);\n --help-background-app: var(--indigo-light-1);\n --help-background-component: var(--indigo-light-0);\n --help-background-hover: var(--indigo-light-2);\n --help-background-active: var(--indigo-light-3);\n --help-background-border: var(--indigo-light-4);\n --help-content--: var(--indigo--);\n --help-content-inverse: var(--neutral-white);\n --help-content-hover: var(--indigo-dark-7);\n --help-content-active: var(--indigo-dark-6);\n --component-appbar-background: var(--base-background-component);\n --component-appbar-color: var(--base-content--);\n --component-appbar-border-color: var(--base-background-border);\n --component-appbar-border-width: var(--component-sidebar-border-width);\n --component-appbar-border-radius: var(--component-sidebar-border-radius);\n --component-appbar-inner-border-width: var(\n --component-sidebar-border-width\n );\n --component-checkbox-background: var(--base-background-component);\n --component-checkbox-color: var(--base-content--);\n --component-checkbox-border-color: var(--base-content--);\n --component-checkbox-accent: var(--primary-content--);\n --component-dialog-background: var(--base-background-component);\n --component-dialog-color: var(--base-content--);\n --component-dialog-border-color: var(--base-background-border);\n --component-dialog-hover-background: var(--base-background-hover);\n --component-dialog-accent: var(--primary-content--);\n --component-dialog-shadow: var(--base-shadow);\n --component-drawer-background: var(--base-background-component);\n --component-drawer-color: var(--base-content--);\n --component-drawer-border-color: var(--base-background-border);\n --component-drawer-hover-background: var(--base-background-hover);\n --component-input-background: var(--base-background-app);\n --component-input-background-disabled: var(--base-background-component);\n --component-input-color: var(--base-content--);\n --component-input-border-color: var(--base-background-border);\n --component-input-accent: var(--primary-content--);\n --component-input-label-color: var(--base-content-light);\n --component-input-icon-color: var(--base-content-lighter);\n --component-input-error-color: var(--error-content--);\n --component-input-error-background: var(--error-background-component);\n --component-input-error-border-color: var(--error-background-border);\n --component-menu-background: var(--base-background-component);\n --component-menu-color: var(--base-content--);\n --component-menu-border-color: var(--base-background-border);\n --component-menu-hover-background: var(--base-background-hover);\n --component-menu-shadow: var(--base-shadow);\n --component-panel-background: var(--base-background-component);\n --component-panel-color: var(--base-content--);\n --component-panel-expanded-background: var(--base-background-app);\n --component-panel-accent: var(--primary-content--);\n --component-panel-active-border: var(--base-background-active);\n --component-panel-accent-hover-background: var(--primary-background-active);\n --component-panel-hover-background: var(--base-background-hover);\n --component-radio-color: var(--base-content--);\n --component-radio-accent: var(--primary-content--);\n --component-select-background: var(--base-background-app);\n --component-select-color: var(--base-content--);\n --component-select-border-color: var(--base-background-border);\n --component-select-accent: var(--primary-content--);\n --component-select-accent-contrast: var(--base-background-component);\n --component-select-label-color: var(--base-content-light);\n --component-select-hover-background: var(--base-background-hover);\n --component-select-shadow: var(--base-shadow);\n --component-select-error-color: var(--error-content--);\n --component-select-error-background: var(--error-background-component);\n --component-select-error-border-color: var(--error-background-border);\n --component-table-color: var(--base-content--);\n --component-table-border-color: var(--base-background-border);\n --component-table-hover-background: var(--base-background-hover);\n --component-table-active-background: var(--base-background-active);\n --component-table-color-light: var(--base-content-lightest);\n --component-tabs-background: var(--base-background-component);\n --component-tabs-color: var(--base-content--);\n --component-tabs-border-color: var(--base-background-border);\n --component-tabs-accent: var(--primary-content--);\n --component-tabs-font-family: var(--font-family-body);\n --component-slider-width: 129px;\n --font-family-header: \"Lexend\", sans-serif;\n --font-family-body: \"Lexend\", sans-serif;\n}\n";
|
|
2
2
|
|
|
3
3
|
var blueLightCSS = "/* Themes - Blue Light */\n:root {\n --base-background-app: var(--neutral-light-1);\n --base-background-component: var(--neutral-light-0);\n --base-background-hover: var(--neutral-light-2);\n --base-background-border: var(--neutral-light-3);\n --base-background-active: var(--neutral-light-4);\n --base-content--: var(--neutral-dark-0);\n --base-content-inverse: var(--neutral-white);\n --base-content-light: var(--neutral-dark-1);\n --base-content-lighter: var(--neutral-dark-3);\n --base-content-lightest: var(--neutral-dark-5);\n --base-shadow: 0 2px 6px var(--neutral-black-translucent);\n --primary-background-app: var(--blue-light-1);\n --primary-background-component: var(--blue-light-0);\n --primary-background-hover: var(--blue-light-2);\n --primary-background-active: var(--blue-light-3);\n --primary-background-border: var(--blue-light-4);\n --primary-content--: var(--blue--);\n --primary-content-inverse: var(--neutral-white);\n --primary-content-hover: var(--blue-dark-7);\n --primary-content-active: var(--blue-dark-6);\n --secondary-background-app: var(--teal-light-1);\n --secondary-background-component: var(--teal-light-0);\n --secondary-background-hover: var(--teal-light-2);\n --secondary-background-border: var(--teal-light-3);\n --secondary-background-active: var(--teal-light-4);\n --secondary-content--: var(--teal--);\n --secondary-content-inverse: var(--neutral-black);\n --secondary-content-hover: var(--teal-dark-7);\n --secondary-content-active: var(--teal-dark-6);\n --success-background-app: var(--green-light-1);\n --success-background-component: var(--green-light-0);\n --success-background-hover: var(--green-light-2);\n --success-background-border: var(--green-light-3);\n --success-background-active: var(--green-light-4);\n --success-content--: var(--green--);\n --success-content-inverse: var(--neutral-black);\n --success-content-hover: var(--green-dark-7);\n --success-content-active: var(--green-dark-6);\n --warning-background-app: var(--yellow-light-1);\n --warning-background-component: var(--yellow-light-0);\n --warning-background-hover: var(--yellow-light-2);\n --warning-background-border: var(--yellow-light-3);\n --warning-background-active: var(--yellow-light-4);\n --warning-content--: var(--yellow--);\n --warning-content-inverse: var(--neutral-black);\n --warning-content-hover: var(--yellow-dark-7);\n --warning-content-active: var(--yellow-dark-6);\n --error-background-app: var(--red-light-1);\n --error-background-component: var(--red-light-0);\n --error-background-hover: var(--red-light-2);\n --error-background-border: var(--red-light-3);\n --error-background-active: var(--red-light-4);\n --error-content--: var(--red--);\n --error-content-inverse: var(--neutral-white);\n --error-content-hover: var(--red-dark-7);\n --error-content-active: var(--red-dark-6);\n --help-background-app: var(--indigo-light-1);\n --help-background-component: var(--indigo-light-0);\n --help-background-hover: var(--indigo-light-2);\n --help-background-active: var(--indigo-light-3);\n --help-background-border: var(--indigo-light-4);\n --help-content--: var(--indigo--);\n --help-content-inverse: var(--neutral-white);\n --help-content-hover: var(--indigo-dark-7);\n --help-content-active: var(--indigo-dark-6);\n --component-appbar-background: var(--base-background-component);\n --component-appbar-color: var(--base-content--);\n --component-appbar-border-color: var(--base-background-border);\n --component-appbar-border-width: var(--component-sidebar-border-width);\n --component-appbar-border-radius: var(--component-sidebar-border-radius);\n --component-appbar-inner-border-width: var(\n --component-sidebar-border-width\n );\n --component-checkbox-background: var(--base-background-component);\n --component-checkbox-color: var(--base-content--);\n --component-checkbox-border-color: var(--base-content--);\n --component-checkbox-accent: var(--primary-content--);\n --component-dialog-background: var(--base-background-component);\n --component-dialog-color: var(--base-content--);\n --component-dialog-border-color: var(--base-background-border);\n --component-dialog-hover-background: var(--base-background-hover);\n --component-dialog-accent: var(--primary-content--);\n --component-dialog-shadow: var(--base-shadow);\n --component-drawer-background: var(--base-background-component);\n --component-drawer-color: var(--base-content--);\n --component-drawer-border-color: var(--base-background-border);\n --component-drawer-hover-background: var(--base-background-hover);\n --component-input-background: var(--base-background-app);\n --component-input-background-disabled: var(--base-background-component);\n --component-input-color: var(--base-content--);\n --component-input-border-color: var(--base-background-border);\n --component-input-accent: var(--primary-content--);\n --component-input-label-color: var(--base-content-light);\n --component-input-icon-color: var(--base-content-lighter);\n --component-input-error-color: var(--error-content--);\n --component-input-error-background: var(--error-background-component);\n --component-input-error-border-color: var(--error-background-border);\n --component-menu-background: var(--base-background-component);\n --component-menu-color: var(--base-content--);\n --component-menu-border-color: var(--base-background-border);\n --component-menu-hover-background: var(--base-background-hover);\n --component-menu-shadow: var(--base-shadow);\n --component-panel-background: var(--base-background-component);\n --component-panel-color: var(--base-content--);\n --component-panel-expanded-background: var(--base-background-app);\n --component-panel-accent: var(--primary-content--);\n --component-panel-active-border: var(--base-background-active);\n --component-panel-accent-hover-background: var(--primary-background-active);\n --component-panel-hover-background: var(--base-background-hover);\n --component-radio-color: var(--base-content--);\n --component-radio-accent: var(--primary-content--);\n --component-select-background: var(--base-background-app);\n --component-select-color: var(--base-content--);\n --component-select-border-color: var(--base-background-border);\n --component-select-accent: var(--primary-content--);\n --component-select-accent-contrast: var(--base-background-component);\n --component-select-label-color: var(--base-content-light);\n --component-select-hover-background: var(--base-background-hover);\n --component-select-shadow: var(--base-shadow);\n --component-select-error-color: var(--error-content--);\n --component-select-error-background: var(--error-background-component);\n --component-select-error-border-color: var(--error-background-border);\n --component-table-color: var(--base-content--);\n --component-table-border-color: var(--base-background-border);\n --component-table-hover-background: var(--base-background-hover);\n --component-table-active-background: var(--base-background-active);\n --component-table-color-light: var(--base-content-lightest);\n --component-tabs-background: var(--base-background-component);\n --component-tabs-color: var(--base-content--);\n --component-tabs-border-color: var(--base-background-border);\n --component-tabs-accent: var(--primary-content--);\n --component-tabs-font-family: var(--font-family-body);\n --component-slider-width: 129px;\n --font-family-header: \"Lexend\", sans-serif;\n --font-family-body: \"Lexend\", sans-serif;\n}\n";
|
|
4
4
|
|
|
@@ -56,7 +56,12 @@ class YumeTheme extends HTMLElement {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
this.shadowRoot.innerHTML = `
|
|
59
|
-
<style
|
|
59
|
+
<style>
|
|
60
|
+
${variablesCSS}
|
|
61
|
+
:host {
|
|
62
|
+
font-family: var(--font-family-body, sans-serif);
|
|
63
|
+
}
|
|
64
|
+
</style>
|
|
60
65
|
${themeCSS ? `<style>${themeCSS}</style>` : ""}
|
|
61
66
|
<slot></slot>
|
|
62
67
|
`;
|
|
@@ -1,79 +1,27 @@
|
|
|
1
|
-
// helpers/slot-utils.js
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Resolve a CSS custom-property value to a concrete color string.
|
|
5
|
-
* Reads from the given element's computed style.
|
|
6
|
-
* @param {string} varExpr — e.g. "var(--primary-content--)"
|
|
7
|
-
* @param {HTMLElement} el — element to resolve against
|
|
8
|
-
* @returns {string} — resolved color or fallback
|
|
9
|
-
*/
|
|
10
|
-
function resolveCSSColor(varExpr, el) {
|
|
11
|
-
const match = varExpr.match(/var\(\s*(--[^,)]+)/);
|
|
12
|
-
if (!match) return varExpr;
|
|
13
|
-
const val = getComputedStyle(el).getPropertyValue(match[1]).trim();
|
|
14
|
-
return val || varExpr;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Parse a CSS color string (#hex, rgb(), etc.) to {r, g, b}.
|
|
19
|
-
* Returns null if it can't parse.
|
|
20
|
-
*/
|
|
21
|
-
function parseColor(colorStr) {
|
|
22
|
-
// #RGB, #RRGGBB, #RRGGBBAA
|
|
23
|
-
const hexMatch = colorStr.match(
|
|
24
|
-
/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,
|
|
25
|
-
);
|
|
26
|
-
if (hexMatch) {
|
|
27
|
-
let hex = hexMatch[1];
|
|
28
|
-
if (hex.length <= 4) {
|
|
29
|
-
hex = hex
|
|
30
|
-
.split("")
|
|
31
|
-
.map((c) => c + c)
|
|
32
|
-
.join("");
|
|
33
|
-
}
|
|
34
|
-
return {
|
|
35
|
-
r: parseInt(hex.slice(0, 2), 16),
|
|
36
|
-
g: parseInt(hex.slice(2, 4), 16),
|
|
37
|
-
b: parseInt(hex.slice(4, 6), 16),
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
// rgb(r, g, b) or rgba(r, g, b, a)
|
|
41
|
-
const rgbMatch = colorStr.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);
|
|
42
|
-
if (rgbMatch) {
|
|
43
|
-
return {
|
|
44
|
-
r: parseInt(rgbMatch[1], 10),
|
|
45
|
-
g: parseInt(rgbMatch[2], 10),
|
|
46
|
-
b: parseInt(rgbMatch[3], 10),
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
1
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
2
|
+
* Return a [background, foreground] CSS variable pair for a color scheme.
|
|
3
|
+
* Background is `--{color}-content--`, foreground is `--{color}-content-inverse`.
|
|
4
|
+
* @param {string} color — one of base, primary, secondary, success, warning, error, help
|
|
5
|
+
* @param {string} [fallbackColor="base"] — color to fall back to when `color` is unrecognised.
|
|
6
|
+
* Use `null` to pass the raw `color` string through as the background instead.
|
|
7
|
+
* @returns {[string, string]} — [bg var, fg var]
|
|
55
8
|
*/
|
|
56
|
-
function
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const parsed = parseColor(bgColor);
|
|
73
|
-
if (!parsed) return "var(--neutral-white, #ffffff)";
|
|
74
|
-
return luminance(parsed) > 0.179
|
|
75
|
-
? "var(--neutral-black, #000000)"
|
|
76
|
-
: "var(--neutral-white, #ffffff)";
|
|
9
|
+
function getColorVarPair(color, fallbackColor = "base") {
|
|
10
|
+
const map = {
|
|
11
|
+
base: ["var(--base-content--)", "var(--base-content-inverse)"],
|
|
12
|
+
primary: ["var(--primary-content--)", "var(--primary-content-inverse)"],
|
|
13
|
+
secondary: [
|
|
14
|
+
"var(--secondary-content--)",
|
|
15
|
+
"var(--secondary-content-inverse)",
|
|
16
|
+
],
|
|
17
|
+
success: ["var(--success-content--)", "var(--success-content-inverse)"],
|
|
18
|
+
warning: ["var(--warning-content--)", "var(--warning-content-inverse)"],
|
|
19
|
+
error: ["var(--error-content--)", "var(--error-content-inverse)"],
|
|
20
|
+
help: ["var(--help-content--)", "var(--help-content-inverse)"],
|
|
21
|
+
};
|
|
22
|
+
if (map[color]) return map[color];
|
|
23
|
+
if (fallbackColor === null) return [color, "var(--base-content-inverse)"];
|
|
24
|
+
return map[fallbackColor] || map.base;
|
|
77
25
|
}
|
|
78
26
|
|
|
79
27
|
class YumeToast extends HTMLElement {
|
|
@@ -150,11 +98,9 @@ class YumeToast extends HTMLElement {
|
|
|
150
98
|
toast.setAttribute("aria-live", "assertive");
|
|
151
99
|
toast.setAttribute("part", "toast");
|
|
152
100
|
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
toast.style.backgroundColor = bgVar;
|
|
157
|
-
toast.style.color = textColor;
|
|
101
|
+
const [bg, fg] = getColorVarPair(color);
|
|
102
|
+
toast.style.backgroundColor = bg;
|
|
103
|
+
toast.style.color = fg;
|
|
158
104
|
|
|
159
105
|
if (icon) {
|
|
160
106
|
const iconEl = document.createElement("y-icon");
|
|
@@ -253,20 +199,6 @@ class YumeToast extends HTMLElement {
|
|
|
253
199
|
return map[pos] || map["bottom-right"];
|
|
254
200
|
}
|
|
255
201
|
|
|
256
|
-
// "base" inverts the page: light content on dark, dark on light.
|
|
257
|
-
_getColorBg(color) {
|
|
258
|
-
const map = {
|
|
259
|
-
base: "var(--base-content--, #fff)",
|
|
260
|
-
primary: "var(--primary-content--, #0070f3)",
|
|
261
|
-
secondary: "var(--secondary-content--, #6c757d)",
|
|
262
|
-
success: "var(--success-content--, #28a745)",
|
|
263
|
-
warning: "var(--warning-content--, #ffc107)",
|
|
264
|
-
error: "var(--error-content--, #dc3545)",
|
|
265
|
-
help: "var(--help-content--, #6f42c1)",
|
|
266
|
-
};
|
|
267
|
-
return map[color] || map.base;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
202
|
render() {
|
|
271
203
|
this.shadowRoot.innerHTML = `
|
|
272
204
|
<style>
|