@dodlhuat/basix 1.4.3 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -9
- package/css/alert.scss +9 -9
- package/css/badge.scss +5 -25
- package/css/bottom-sheet.scss +2 -6
- package/css/breadcrumb.scss +18 -9
- package/css/calendar.scss +15 -26
- package/css/carousel.scss +3 -3
- package/css/chart.scss +1 -6
- package/css/checkbox.scss +1 -1
- package/css/chips.scss +13 -23
- package/css/code-viewer.scss +1 -1
- package/css/color-picker.scss +3 -5
- package/css/context-menu.scss +3 -8
- package/css/datepicker.scss +4 -4
- package/css/defaults.scss +25 -0
- package/css/docs.scss +6 -6
- package/css/dropdown.scss +3 -8
- package/css/editor.scss +13 -17
- package/css/file-uploader.scss +6 -17
- package/css/flyout-menu.scss +3 -0
- package/css/form.scss +32 -25
- package/css/gallery.scss +15 -0
- package/css/group-picker.scss +28 -17
- package/css/icons.scss +7 -327
- package/css/lightbox.scss +7 -7
- package/css/mixins.scss +52 -0
- package/css/modal.scss +4 -8
- package/css/parameters.scss +8 -2
- package/css/placeholder.scss +2 -17
- package/css/popover.scss +2 -7
- package/css/properties.scss +0 -5
- package/css/push-menu.scss +1 -1
- package/css/stepper.scss +2 -2
- package/css/style.css +198 -486
- package/css/style.css.map +1 -1
- package/css/style.min.css +1 -1
- package/css/style.min.css.map +1 -1
- package/css/tabs.scss +3 -7
- package/css/timepicker.scss +2 -2
- package/css/tooltip.scss +1 -1
- package/css/typography.scss +3 -3
- package/css/virtual-dropdown.scss +6 -11
- package/js/bottom-sheet.d.ts +2 -0
- package/js/bottom-sheet.js +3 -1
- package/js/carousel.d.ts +1 -0
- package/js/carousel.js +3 -2
- package/js/docs-nav.js +1 -1
- package/js/gallery.d.ts +5 -0
- package/js/gallery.js +35 -0
- package/js/group-picker.d.ts +1 -0
- package/js/group-picker.js +8 -5
- package/js/lightbox.d.ts +3 -1
- package/js/lightbox.js +8 -4
- package/js/modal.d.ts +2 -0
- package/js/modal.js +4 -2
- package/js/push-menu.d.ts +6 -2
- package/js/push-menu.js +13 -8
- package/js/select.js +1 -1
- package/js/sidebar-nav.d.ts +1 -0
- package/js/sidebar-nav.js +2 -1
- package/js/toast.d.ts +2 -0
- package/js/toast.js +5 -1
- package/package.json +2 -1
- package/svg-icons/chevron_right.svg +1 -0
- package/svg-icons/keyboard_arrow_down.svg +1 -0
- package/fonts/MaterialSymbolsOutlined.woff2 +0 -0
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Basix 1.
|
|
1
|
+
# Basix 1.5.0
|
|
2
2
|
|
|
3
3
|
Basix is intended as a starter for the rapid development of a design. Each design element can be added individually to
|
|
4
4
|
include only the data required. It is using plain javascript / typescript and therefore is not dependent on any plugin.
|
|
@@ -9,6 +9,40 @@ A demo can be found here: <a href="http://www.andibauer.at/basix/" target="_blan
|
|
|
9
9
|
|
|
10
10
|
## Migration Guide
|
|
11
11
|
|
|
12
|
+
### 1.4.3 → 1.5.0
|
|
13
|
+
|
|
14
|
+
#### Breaking changes
|
|
15
|
+
|
|
16
|
+
**Font icons removed — SVG sprite is now the only icon system**
|
|
17
|
+
|
|
18
|
+
The `.icon` base class, all `.icon-*` glyph classes, and the bundled `MaterialSymbolsOutlined.woff2` font have been removed from `icons.scss` and `fonts/`. Every component that rendered a font-icon glyph now renders an inline `<svg><use href="svg-icons/icons.svg#name"/></svg>` instead. If your own markup used the font classes directly, replace them:
|
|
19
|
+
|
|
20
|
+
```html
|
|
21
|
+
<!-- Before (1.4.3) -->
|
|
22
|
+
<span class="icon icon-close"></span>
|
|
23
|
+
|
|
24
|
+
<!-- After (1.5.0) -->
|
|
25
|
+
<svg class="icon-svg"><use href="svg-icons/icons.svg#close"/></svg>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
A handful of glyph names used by the font don't exist under the same name in the sprite; use the sprite's equivalents:
|
|
29
|
+
|
|
30
|
+
| Font glyph | SVG sprite equivalent |
|
|
31
|
+
|---|---|
|
|
32
|
+
| `icon-navigate_before` / `icon-navigate_next` | `chevron_left` / `chevron_right` |
|
|
33
|
+
| `icon-expand_more` | `keyboard_arrow_down` |
|
|
34
|
+
| `icon-light` / `icon-dark` | `light_mode` / `dark_mode` |
|
|
35
|
+
|
|
36
|
+
#### Other changes
|
|
37
|
+
|
|
38
|
+
- **`BottomSheet`, `Lightbox`, `GroupPicker`, `Modal`, `Toast`, `SidebarNav`, `Carousel`, `Select`** — gained an `iconBasePath` option (default `'svg-icons/'`) controlling where each component looks for the SVG sprite, matching the existing `Calendar`/`Stepper` convention.
|
|
39
|
+
- **`PushMenu.init()`** now accepts an optional `{ iconBasePath }` argument (previously took no arguments).
|
|
40
|
+
- **`Lightbox.bind()`** now accepts an optional second `iconBasePath` argument, threaded through to every lightbox it opens.
|
|
41
|
+
- **New design tokens** in `parameters.scss`: a 3-step tint scale (`$tint-subtle`/`$tint-medium`/`$tint-strong`) for state-color backgrounds, and an expanded, properly-ordered radius scale (`$radius-xs/sm/md/lg/panel/xl`). Several components' corner radii and background tints shifted slightly to align to these scales — no component's visual language changed, just consolidated toward consistent steps.
|
|
42
|
+
- **New shared mixins** in `mixins.scss`: `float-panel` (floating dropdown/menu/popover shell), `hide-scrollbar`, `tinted-tag` (badge/chip tint), `muted-icon-color` (close-button hover).
|
|
43
|
+
- **Bug fix** — `DatePicker`'s day-of-week headers and clock labels referenced an undefined `--text-muted` custom property (silently falling back to inherited text color). Fixed to use the existing `--secondary-text` token.
|
|
44
|
+
- **CI** — added a GitHub Actions workflow (lint, typecheck, build, and a check that committed `js/`/`css` build output matches source) and `sass` is now a real `devDependency` instead of relying on a global install.
|
|
45
|
+
|
|
12
46
|
### 1.4.2 → 1.4.3
|
|
13
47
|
|
|
14
48
|
No breaking changes.
|
|
@@ -124,20 +158,20 @@ The Card component is a CSS-only component that creates visually contained conte
|
|
|
124
158
|
|
|
125
159
|
### Icons
|
|
126
160
|
|
|
127
|
-
Basix ships icons
|
|
128
|
-
|
|
129
|
-
**Font icons** — a reduced Google Material Icon font (~5.5 KB vs the full 242.5 KB). Use the `.icon` class with a modifier.
|
|
161
|
+
Basix ships the full Google Material Icon set (~6,400+ icons) as a single `svg-icons/icons.svg` sprite. Reference any icon by name with `<use>`, and style size/color with the `.icon-svg` class — it inherits `currentColor`, so the icon follows the surrounding text color automatically.
|
|
130
162
|
|
|
131
163
|
``` html
|
|
132
|
-
<
|
|
164
|
+
<svg class="icon-svg"><use href="svg-icons/icons.svg#home"/></svg>
|
|
133
165
|
```
|
|
134
166
|
|
|
135
|
-
|
|
167
|
+
Components that render icons from JS (`Modal`, `Toast`, `BottomSheet`, `Lightbox`, `Carousel`, `GroupPicker`, `SidebarNav`, `Calendar`, `Stepper`, `PushMenu`, `Select`, `ContextMenu`) accept an `iconBasePath` option (default `'svg-icons/'`) so you can point them at the sprite's location relative to your page:
|
|
136
168
|
|
|
137
|
-
```
|
|
138
|
-
|
|
169
|
+
``` js
|
|
170
|
+
new Modal({ content: '…', iconBasePath: '../svg-icons/' });
|
|
139
171
|
```
|
|
140
172
|
|
|
173
|
+
A couple of purely-decorative icons that need to render with zero markup (the `Breadcrumb` separator, the native `<select>` dropdown arrow) use `mask-image` against small standalone SVGs (`svg-icons/chevron_right.svg`, `svg-icons/keyboard_arrow_down.svg`) instead of the sprite, since sprite symbols are only instantiable via `<use>`.
|
|
174
|
+
|
|
141
175
|
---
|
|
142
176
|
|
|
143
177
|
## Forms
|
|
@@ -443,7 +477,7 @@ The Chips component displays small interactive elements like tags or filters. CS
|
|
|
443
477
|
<div class="chip clickable">Clickable Chip</div>
|
|
444
478
|
<div class="chip closeable">
|
|
445
479
|
Closeable Chip
|
|
446
|
-
<button class="close"><
|
|
480
|
+
<button class="close"><svg class="icon-svg"><use href="svg-icons/icons.svg#close"/></svg></button>
|
|
447
481
|
</div>
|
|
448
482
|
</div>
|
|
449
483
|
```
|
package/css/alert.scss
CHANGED
|
@@ -17,7 +17,7 @@ $alert-border-width: 4px;
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.alert-close:hover {
|
|
20
|
-
background: color-mix(in srgb, $accent
|
|
20
|
+
background: color-mix(in srgb, $accent $tint-medium, transparent);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -48,28 +48,28 @@ $alert-border-width: 4px;
|
|
|
48
48
|
&-info {
|
|
49
49
|
@include alert-variant(
|
|
50
50
|
var(--accent-color),
|
|
51
|
-
color-mix(in srgb, var(--accent-color)
|
|
51
|
+
color-mix(in srgb, var(--accent-color) $tint-subtle, var(--background))
|
|
52
52
|
);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
&-success {
|
|
56
56
|
@include alert-variant(
|
|
57
57
|
var(--success),
|
|
58
|
-
color-mix(in srgb, var(--success)
|
|
58
|
+
color-mix(in srgb, var(--success) $tint-subtle, var(--background))
|
|
59
59
|
);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
&-warning {
|
|
63
63
|
@include alert-variant(
|
|
64
64
|
var(--warning),
|
|
65
|
-
color-mix(in srgb, var(--warning)
|
|
65
|
+
color-mix(in srgb, var(--warning) $tint-subtle, var(--background))
|
|
66
66
|
);
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
&-error {
|
|
70
70
|
@include alert-variant(
|
|
71
71
|
var(--error),
|
|
72
|
-
color-mix(in srgb, var(--error)
|
|
72
|
+
color-mix(in srgb, var(--error) $tint-subtle, var(--background))
|
|
73
73
|
);
|
|
74
74
|
}
|
|
75
75
|
|
|
@@ -110,28 +110,28 @@ $alert-border-width: 4px;
|
|
|
110
110
|
&-info {
|
|
111
111
|
@include alert-variant(
|
|
112
112
|
var(--accent-color),
|
|
113
|
-
color-mix(in srgb, var(--accent-color)
|
|
113
|
+
color-mix(in srgb, var(--accent-color) $tint-medium, var(--background))
|
|
114
114
|
);
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
&-success {
|
|
118
118
|
@include alert-variant(
|
|
119
119
|
var(--success),
|
|
120
|
-
color-mix(in srgb, var(--success)
|
|
120
|
+
color-mix(in srgb, var(--success) $tint-medium, var(--background))
|
|
121
121
|
);
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
&-warning {
|
|
125
125
|
@include alert-variant(
|
|
126
126
|
var(--warning),
|
|
127
|
-
color-mix(in srgb, var(--warning)
|
|
127
|
+
color-mix(in srgb, var(--warning) $tint-medium, var(--background))
|
|
128
128
|
);
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
&-error {
|
|
132
132
|
@include alert-variant(
|
|
133
133
|
var(--error),
|
|
134
|
-
color-mix(in srgb, var(--error)
|
|
134
|
+
color-mix(in srgb, var(--error) $tint-medium, var(--background))
|
|
135
135
|
);
|
|
136
136
|
}
|
|
137
137
|
}
|
package/css/badge.scss
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
@use "properties";
|
|
2
2
|
@use "parameters" as *;
|
|
3
|
-
|
|
4
|
-
@mixin badge-variant($color, $bg) {
|
|
5
|
-
background: $bg;
|
|
6
|
-
color: $color;
|
|
7
|
-
}
|
|
3
|
+
@use "mixins" as *;
|
|
8
4
|
|
|
9
5
|
.badge {
|
|
10
6
|
display: inline-flex;
|
|
@@ -24,35 +20,19 @@
|
|
|
24
20
|
color: var(--secondary-text);
|
|
25
21
|
|
|
26
22
|
&-info {
|
|
27
|
-
@include
|
|
28
|
-
var(--accent-color),
|
|
29
|
-
color-mix(in srgb, var(--accent-color) 12%, var(--background))
|
|
30
|
-
);
|
|
31
|
-
border-color: color-mix(in srgb, var(--accent-color) 20%, transparent);
|
|
23
|
+
@include tinted-tag(var(--accent-color));
|
|
32
24
|
}
|
|
33
25
|
|
|
34
26
|
&-success {
|
|
35
|
-
@include
|
|
36
|
-
var(--success),
|
|
37
|
-
color-mix(in srgb, var(--success) 12%, var(--background))
|
|
38
|
-
);
|
|
39
|
-
border-color: color-mix(in srgb, var(--success) 20%, transparent);
|
|
27
|
+
@include tinted-tag(var(--success));
|
|
40
28
|
}
|
|
41
29
|
|
|
42
30
|
&-warning {
|
|
43
|
-
@include
|
|
44
|
-
var(--warning),
|
|
45
|
-
color-mix(in srgb, var(--warning) 12%, var(--background))
|
|
46
|
-
);
|
|
47
|
-
border-color: color-mix(in srgb, var(--warning) 20%, transparent);
|
|
31
|
+
@include tinted-tag(var(--warning));
|
|
48
32
|
}
|
|
49
33
|
|
|
50
34
|
&-error {
|
|
51
|
-
@include
|
|
52
|
-
var(--error),
|
|
53
|
-
color-mix(in srgb, var(--error) 12%, var(--background))
|
|
54
|
-
);
|
|
55
|
-
border-color: color-mix(in srgb, var(--error) 20%, transparent);
|
|
35
|
+
@include tinted-tag(var(--error));
|
|
56
36
|
}
|
|
57
37
|
|
|
58
38
|
&-solid {
|
package/css/bottom-sheet.scss
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
@use "properties";
|
|
2
2
|
@use "parameters" as *;
|
|
3
|
+
@use "mixins" as *;
|
|
3
4
|
|
|
4
5
|
.bottom-sheet-wrapper {
|
|
5
6
|
position: fixed;
|
|
@@ -142,12 +143,7 @@
|
|
|
142
143
|
|
|
143
144
|
.close {
|
|
144
145
|
cursor: pointer;
|
|
145
|
-
|
|
146
|
-
transition: color 0.15s ease;
|
|
147
|
-
|
|
148
|
-
&:hover {
|
|
149
|
-
color: var(--primary-text);
|
|
150
|
-
}
|
|
146
|
+
@include muted-icon-color;
|
|
151
147
|
}
|
|
152
148
|
}
|
|
153
149
|
|
package/css/breadcrumb.scss
CHANGED
|
@@ -19,11 +19,19 @@
|
|
|
19
19
|
min-width: 0;
|
|
20
20
|
|
|
21
21
|
+ li::before {
|
|
22
|
-
content: "
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
color: var(--divider);
|
|
22
|
+
content: "";
|
|
23
|
+
display: inline-block;
|
|
24
|
+
width: 1.125rem;
|
|
25
|
+
height: 1.125rem;
|
|
26
|
+
background-color: var(--divider);
|
|
27
|
+
mask-image: url("../svg-icons/chevron_right.svg");
|
|
28
|
+
-webkit-mask-image: url("../svg-icons/chevron_right.svg");
|
|
29
|
+
mask-repeat: no-repeat;
|
|
30
|
+
-webkit-mask-repeat: no-repeat;
|
|
31
|
+
mask-position: center;
|
|
32
|
+
-webkit-mask-position: center;
|
|
33
|
+
mask-size: contain;
|
|
34
|
+
-webkit-mask-size: contain;
|
|
27
35
|
flex-shrink: 0;
|
|
28
36
|
user-select: none;
|
|
29
37
|
pointer-events: none;
|
|
@@ -38,12 +46,13 @@
|
|
|
38
46
|
color: var(--secondary-text);
|
|
39
47
|
text-decoration: none;
|
|
40
48
|
padding: 0.25rem 0.375rem;
|
|
41
|
-
border-radius: $radius-
|
|
49
|
+
border-radius: $radius-xs;
|
|
42
50
|
white-space: nowrap;
|
|
43
51
|
transition: color 0.15s ease, background 0.15s ease;
|
|
44
52
|
|
|
45
|
-
.icon {
|
|
46
|
-
|
|
53
|
+
.icon-svg {
|
|
54
|
+
width: 1rem;
|
|
55
|
+
height: 1rem;
|
|
47
56
|
}
|
|
48
57
|
|
|
49
58
|
&:hover {
|
|
@@ -53,7 +62,7 @@
|
|
|
53
62
|
|
|
54
63
|
&:focus-visible {
|
|
55
64
|
@include focus-ring(-1px);
|
|
56
|
-
border-radius: $radius-
|
|
65
|
+
border-radius: $radius-xs;
|
|
57
66
|
}
|
|
58
67
|
}
|
|
59
68
|
|
package/css/calendar.scss
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
@use "mixins" as *;
|
|
3
3
|
|
|
4
4
|
.cal {
|
|
5
|
-
--cal-spacing-xs:
|
|
6
|
-
--cal-spacing-sm:
|
|
7
|
-
--cal-spacing-md:
|
|
8
|
-
--cal-spacing-lg:
|
|
5
|
+
--cal-spacing-xs: #{calc($spacing * 0.25)};
|
|
6
|
+
--cal-spacing-sm: #{calc($spacing * 0.5)};
|
|
7
|
+
--cal-spacing-md: #{calc($spacing * 0.75)};
|
|
8
|
+
--cal-spacing-lg: #{$spacing};
|
|
9
9
|
|
|
10
10
|
--cal-bg: var(--background);
|
|
11
11
|
--cal-bg-alt: var(--secondary-background);
|
|
@@ -324,10 +324,10 @@
|
|
|
324
324
|
&--cont-after { border-radius: var(--cal-radius-sm) 0 0 var(--cal-radius-sm); }
|
|
325
325
|
&--cont-before#{&}--cont-after { border-radius: 0; }
|
|
326
326
|
|
|
327
|
-
&.badge-success { border-left-color: var(--success); background: color-mix(in srgb, var(--success)
|
|
328
|
-
&.badge-warning { border-left-color: var(--warning); background: color-mix(in srgb, var(--warning)
|
|
329
|
-
&.badge-error { border-left-color: var(--error); background: color-mix(in srgb, var(--error)
|
|
330
|
-
&.badge-info { border-left-color: var(--accent-color); background: color-mix(in srgb, var(--accent-color)
|
|
327
|
+
&.badge-success { border-left-color: var(--success); background: color-mix(in srgb, var(--success) $tint-medium, var(--cal-bg)); }
|
|
328
|
+
&.badge-warning { border-left-color: var(--warning); background: color-mix(in srgb, var(--warning) $tint-medium, var(--cal-bg)); }
|
|
329
|
+
&.badge-error { border-left-color: var(--error); background: color-mix(in srgb, var(--error) $tint-medium, var(--cal-bg)); }
|
|
330
|
+
&.badge-info { border-left-color: var(--accent-color); background: color-mix(in srgb, var(--accent-color) $tint-medium, var(--cal-bg)); }
|
|
331
331
|
}
|
|
332
332
|
|
|
333
333
|
.cal__week-row > .cal__span-bar {
|
|
@@ -545,7 +545,7 @@
|
|
|
545
545
|
padding: 3px 6px;
|
|
546
546
|
overflow: hidden;
|
|
547
547
|
cursor: pointer;
|
|
548
|
-
background: color-mix(in srgb, var(--cal-accent)
|
|
548
|
+
background: color-mix(in srgb, var(--cal-accent) $tint-medium, var(--cal-bg));
|
|
549
549
|
color: var(--cal-text);
|
|
550
550
|
border-left: 3px solid var(--cal-accent);
|
|
551
551
|
z-index: 1;
|
|
@@ -569,19 +569,19 @@
|
|
|
569
569
|
|
|
570
570
|
&.badge-success {
|
|
571
571
|
border-left-color: var(--success);
|
|
572
|
-
background: color-mix(in srgb, var(--success)
|
|
572
|
+
background: color-mix(in srgb, var(--success) $tint-medium, var(--cal-bg));
|
|
573
573
|
}
|
|
574
574
|
&.badge-warning {
|
|
575
575
|
border-left-color: var(--warning);
|
|
576
|
-
background: color-mix(in srgb, var(--warning)
|
|
576
|
+
background: color-mix(in srgb, var(--warning) $tint-medium, var(--cal-bg));
|
|
577
577
|
}
|
|
578
578
|
&.badge-error {
|
|
579
579
|
border-left-color: var(--error);
|
|
580
|
-
background: color-mix(in srgb, var(--error)
|
|
580
|
+
background: color-mix(in srgb, var(--error) $tint-medium, var(--cal-bg));
|
|
581
581
|
}
|
|
582
582
|
&.badge-info {
|
|
583
583
|
border-left-color: var(--accent-color);
|
|
584
|
-
background: color-mix(in srgb, var(--accent-color)
|
|
584
|
+
background: color-mix(in srgb, var(--accent-color) $tint-medium, var(--cal-bg));
|
|
585
585
|
}
|
|
586
586
|
}
|
|
587
587
|
|
|
@@ -625,7 +625,7 @@
|
|
|
625
625
|
}
|
|
626
626
|
|
|
627
627
|
&.is-today {
|
|
628
|
-
background: color-mix(in srgb, var(--cal-accent)
|
|
628
|
+
background: color-mix(in srgb, var(--cal-accent) $tint-subtle, var(--cal-bg));
|
|
629
629
|
}
|
|
630
630
|
}
|
|
631
631
|
|
|
@@ -887,7 +887,7 @@
|
|
|
887
887
|
|
|
888
888
|
@media (prefers-reduced-motion: no-preference) {
|
|
889
889
|
.cal__body {
|
|
890
|
-
animation:
|
|
890
|
+
animation: bx-fade-slide-up 0.25s cubic-bezier(0.2, 0, 0, 1);
|
|
891
891
|
}
|
|
892
892
|
|
|
893
893
|
.cal__day,
|
|
@@ -908,17 +908,6 @@
|
|
|
908
908
|
}
|
|
909
909
|
}
|
|
910
910
|
|
|
911
|
-
@keyframes cal-slide-in {
|
|
912
|
-
from {
|
|
913
|
-
opacity: 0;
|
|
914
|
-
transform: translateY(8px);
|
|
915
|
-
}
|
|
916
|
-
to {
|
|
917
|
-
opacity: 1;
|
|
918
|
-
transform: translateY(0);
|
|
919
|
-
}
|
|
920
|
-
}
|
|
921
|
-
|
|
922
911
|
@keyframes cal-cell-in {
|
|
923
912
|
from {
|
|
924
913
|
opacity: 0;
|
package/css/carousel.scss
CHANGED
package/css/chart.scss
CHANGED
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
.chart-area {
|
|
79
|
-
animation:
|
|
79
|
+
animation: bx-fade-in 0.8s ease forwards;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
.chart-point-dot {
|
|
@@ -224,11 +224,6 @@
|
|
|
224
224
|
to { stroke-dashoffset: 0; }
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
-
@keyframes chart-fade-in {
|
|
228
|
-
from { opacity: 0; }
|
|
229
|
-
to { opacity: 1; }
|
|
230
|
-
}
|
|
231
|
-
|
|
232
227
|
@keyframes chart-grow-y {
|
|
233
228
|
from { transform: scaleY(0); }
|
|
234
229
|
to { transform: scaleY(1); }
|
package/css/checkbox.scss
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
width: $spacing;
|
|
31
31
|
height: $spacing;
|
|
32
32
|
border: 2px solid var(--divider);
|
|
33
|
-
border-radius: $radius-
|
|
33
|
+
border-radius: $radius-xs;
|
|
34
34
|
background-color: var(--background);
|
|
35
35
|
margin-top: 2px;
|
|
36
36
|
transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
|
package/css/chips.scss
CHANGED
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
&.selected {
|
|
44
|
-
background: color-mix(in srgb, var(--accent-color)
|
|
44
|
+
background: color-mix(in srgb, var(--accent-color) $tint-medium, var(--background));
|
|
45
45
|
color: var(--accent-color);
|
|
46
|
-
border-color: color-mix(in srgb, var(--accent-color)
|
|
46
|
+
border-color: color-mix(in srgb, var(--accent-color) $tint-strong, transparent);
|
|
47
47
|
|
|
48
48
|
&:hover {
|
|
49
|
-
background: color-mix(in srgb, var(--accent-color)
|
|
49
|
+
background: color-mix(in srgb, var(--accent-color) $tint-strong, var(--background));
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -73,17 +73,15 @@
|
|
|
73
73
|
transition: background 0.15s ease, color 0.15s ease;
|
|
74
74
|
|
|
75
75
|
&:hover {
|
|
76
|
-
background: color-mix(in srgb, var(--primary-text)
|
|
76
|
+
background: color-mix(in srgb, var(--primary-text) $tint-medium, transparent);
|
|
77
77
|
color: var(--primary-text);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
&:active {
|
|
81
|
-
background: color-mix(in srgb, var(--primary-text)
|
|
81
|
+
background: color-mix(in srgb, var(--primary-text) $tint-strong, transparent);
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
.icon,
|
|
85
84
|
.icon-svg {
|
|
86
|
-
font-size: 0.8rem;
|
|
87
85
|
width: 0.8rem;
|
|
88
86
|
height: 0.8rem;
|
|
89
87
|
}
|
|
@@ -91,45 +89,37 @@
|
|
|
91
89
|
}
|
|
92
90
|
|
|
93
91
|
&-accent {
|
|
94
|
-
|
|
95
|
-
color: var(--accent-color);
|
|
96
|
-
border-color: color-mix(in srgb, var(--accent-color) 20%, transparent);
|
|
92
|
+
@include tinted-tag(var(--accent-color));
|
|
97
93
|
|
|
98
94
|
&.closeable button:hover {
|
|
99
|
-
background: color-mix(in srgb, var(--accent-color)
|
|
95
|
+
background: color-mix(in srgb, var(--accent-color) $tint-strong, transparent);
|
|
100
96
|
color: var(--accent-color);
|
|
101
97
|
}
|
|
102
98
|
}
|
|
103
99
|
|
|
104
100
|
&-success {
|
|
105
|
-
|
|
106
|
-
color: var(--success);
|
|
107
|
-
border-color: color-mix(in srgb, var(--success) 20%, transparent);
|
|
101
|
+
@include tinted-tag(var(--success));
|
|
108
102
|
|
|
109
103
|
&.closeable button:hover {
|
|
110
|
-
background: color-mix(in srgb, var(--success)
|
|
104
|
+
background: color-mix(in srgb, var(--success) $tint-strong, transparent);
|
|
111
105
|
color: var(--success);
|
|
112
106
|
}
|
|
113
107
|
}
|
|
114
108
|
|
|
115
109
|
&-warning {
|
|
116
|
-
|
|
117
|
-
color: var(--warning);
|
|
118
|
-
border-color: color-mix(in srgb, var(--warning) 20%, transparent);
|
|
110
|
+
@include tinted-tag(var(--warning));
|
|
119
111
|
|
|
120
112
|
&.closeable button:hover {
|
|
121
|
-
background: color-mix(in srgb, var(--warning)
|
|
113
|
+
background: color-mix(in srgb, var(--warning) $tint-strong, transparent);
|
|
122
114
|
color: var(--warning);
|
|
123
115
|
}
|
|
124
116
|
}
|
|
125
117
|
|
|
126
118
|
&-error {
|
|
127
|
-
|
|
128
|
-
color: var(--error);
|
|
129
|
-
border-color: color-mix(in srgb, var(--error) 20%, transparent);
|
|
119
|
+
@include tinted-tag(var(--error));
|
|
130
120
|
|
|
131
121
|
&.closeable button:hover {
|
|
132
|
-
background: color-mix(in srgb, var(--error)
|
|
122
|
+
background: color-mix(in srgb, var(--error) $tint-strong, transparent);
|
|
133
123
|
color: var(--error);
|
|
134
124
|
}
|
|
135
125
|
}
|
package/css/code-viewer.scss
CHANGED
package/css/color-picker.scss
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
@use "properties";
|
|
2
2
|
@use "parameters" as *;
|
|
3
|
+
@use "mixins" as *;
|
|
3
4
|
|
|
4
5
|
$thumb-size: 18px;
|
|
5
6
|
$thumb-size-touch: 22px;
|
|
@@ -9,15 +10,12 @@ $preview-size: 40px;
|
|
|
9
10
|
|
|
10
11
|
.color-picker {
|
|
11
12
|
width: 100%;
|
|
12
|
-
|
|
13
|
-
border: 1px solid var(--divider);
|
|
14
|
-
border-radius: $radius-lg;
|
|
13
|
+
@include float-panel($radius-lg);
|
|
15
14
|
padding: $spacing;
|
|
16
15
|
box-sizing: border-box;
|
|
17
16
|
display: flex;
|
|
18
17
|
flex-direction: column;
|
|
19
18
|
gap: calc($spacing * 0.75);
|
|
20
|
-
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
|
|
21
19
|
}
|
|
22
20
|
|
|
23
21
|
// ─── Saturation / brightness field ────────────────────────────────────────────
|
|
@@ -232,7 +230,7 @@ $preview-size: 40px;
|
|
|
232
230
|
|
|
233
231
|
&:focus {
|
|
234
232
|
border-color: var(--accent-color);
|
|
235
|
-
|
|
233
|
+
@include focus-glow($tint: 12%, $size: 2px);
|
|
236
234
|
}
|
|
237
235
|
}
|
|
238
236
|
|
package/css/context-menu.scss
CHANGED
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
@use "properties";
|
|
2
2
|
@use "parameters" as *;
|
|
3
|
+
@use "mixins" as *;
|
|
3
4
|
|
|
4
5
|
.context-menu {
|
|
5
6
|
position: fixed;
|
|
6
7
|
z-index: 9999;
|
|
7
8
|
min-width: 200px;
|
|
8
9
|
padding: calc($spacing * 0.375) 0;
|
|
9
|
-
|
|
10
|
-
border: 1px solid var(--divider);
|
|
11
|
-
border-radius: $radius-panel;
|
|
12
|
-
box-shadow:
|
|
13
|
-
0 8px 32px rgba(0, 0, 0, 0.12),
|
|
14
|
-
0 2px 8px rgba(0, 0, 0, 0.08),
|
|
15
|
-
0 1px 2px rgba(0, 0, 0, 0.04);
|
|
10
|
+
@include float-panel;
|
|
16
11
|
list-style: none;
|
|
17
12
|
margin: 0;
|
|
18
13
|
opacity: 0;
|
|
@@ -108,7 +103,7 @@
|
|
|
108
103
|
|
|
109
104
|
&:hover,
|
|
110
105
|
&.is-focused {
|
|
111
|
-
background: color-mix(in srgb, var(--error)
|
|
106
|
+
background: color-mix(in srgb, var(--error) $tint-subtle, var(--background));
|
|
112
107
|
color: var(--error);
|
|
113
108
|
|
|
114
109
|
.context-menu-icon {
|
package/css/datepicker.scss
CHANGED
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
|
|
63
63
|
.datepicker-day-header {
|
|
64
64
|
font-size: 0.875rem;
|
|
65
|
-
color: var(--text
|
|
65
|
+
color: var(--secondary-text);
|
|
66
66
|
font-weight: 500;
|
|
67
67
|
padding: calc($spacing / 2) 0;
|
|
68
68
|
}
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
|
|
201
201
|
.datepicker-clock-display-segment {
|
|
202
202
|
cursor: pointer;
|
|
203
|
-
color: var(--text
|
|
203
|
+
color: var(--secondary-text);
|
|
204
204
|
border-radius: calc($border-radius / 2);
|
|
205
205
|
padding: 0 calc($spacing / 8);
|
|
206
206
|
transition: color 0.2s, background-color 0.2s;
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
.datepicker-clock-display-separator {
|
|
218
|
-
color: var(--text
|
|
218
|
+
color: var(--secondary-text);
|
|
219
219
|
}
|
|
220
220
|
|
|
221
221
|
.datepicker-clock-face {
|
|
@@ -271,7 +271,7 @@
|
|
|
271
271
|
width: 26px;
|
|
272
272
|
height: 26px;
|
|
273
273
|
font-size: 0.75rem;
|
|
274
|
-
color: var(--text
|
|
274
|
+
color: var(--secondary-text);
|
|
275
275
|
}
|
|
276
276
|
|
|
277
277
|
&.selected {
|
package/css/defaults.scss
CHANGED
|
@@ -88,4 +88,29 @@ code.code {
|
|
|
88
88
|
|
|
89
89
|
.flex {
|
|
90
90
|
display: flex;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@keyframes bx-fade-in {
|
|
94
|
+
from { opacity: 0; }
|
|
95
|
+
to { opacity: 1; }
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
@keyframes bx-fade-slide-up {
|
|
99
|
+
from {
|
|
100
|
+
opacity: 0;
|
|
101
|
+
transform: translateY(8px);
|
|
102
|
+
}
|
|
103
|
+
to {
|
|
104
|
+
opacity: 1;
|
|
105
|
+
transform: translateY(0);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@keyframes placeholder-shimmer {
|
|
110
|
+
0% {
|
|
111
|
+
background-position: 200% 0;
|
|
112
|
+
}
|
|
113
|
+
100% {
|
|
114
|
+
background-position: -200% 0;
|
|
115
|
+
}
|
|
91
116
|
}
|