@inglorious/ui 9.8.0 → 9.8.2
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/package.json +8 -8
- package/src/controls/button/style.css +0 -2
- package/src/controls/button/template.js +2 -3
- package/src/controls/checkbox/style.css +0 -1
- package/src/controls/checkbox/template.js +0 -2
- package/src/controls/combobox/style.css +0 -14
- package/src/controls/combobox/template.js +0 -13
- package/src/controls/file-upload/template.js +1 -1
- package/src/controls/image-cropper/helpers.js +0 -2
- package/src/controls/image-cropper/image.js +0 -2
- package/src/controls/image-cropper/style.css +0 -6
- package/src/controls/image-cropper/template.js +3 -5
- package/src/controls/input/style.css +0 -1
- package/src/controls/radio-group/style.css +0 -2
- package/src/controls/rating/style.css +0 -3
- package/src/controls/select/style.css +0 -6
- package/src/controls/slider/style.css +0 -5
- package/src/controls/slider/template.js +0 -1
- package/src/controls/switch/style.css +0 -1
- package/src/controls/switch/template.js +0 -2
- package/src/controls/textarea/style.css +0 -2
- package/src/data-display/before-after/style.css +0 -4
- package/src/data-display/before-after/template.js +3 -3
- package/src/data-display/carousel/carousel.stories.js +0 -2
- package/src/data-display/carousel/handlers.js +0 -2
- package/src/data-display/carousel/style.css +0 -18
- package/src/data-display/carousel/template.js +0 -15
- package/src/data-display/chat/index.js +0 -1
- package/src/data-display/chat/style.css +0 -2
- package/src/data-display/chat/template.js +0 -1
- package/src/data-display/chip/template.js +0 -1
- package/src/data-display/data-grid/base.css +0 -2
- package/src/data-display/data-grid/handlers.js +1 -8
- package/src/data-display/data-grid/helpers.js +0 -5
- package/src/data-display/data-grid/template.js +0 -1
- package/src/data-display/data-grid/theme.css +0 -1
- package/src/data-display/icon/style.css +0 -7
- package/src/data-display/icon/template.js +2 -2
- package/src/data-display/table/style.css +0 -2
- package/src/data-display/tooltip/style.css +0 -3
- package/src/data-display/virtual-list/handlers.js +0 -2
- package/src/data-display/virtual-list/template.js +2 -4
- package/src/examples/dashboard/before-after-data.js +0 -3
- package/src/examples/dashboard/data.js +0 -1
- package/src/examples/dashboard/primitive-content.js +0 -2
- package/src/examples/dashboard/style.css +0 -3
- package/src/feedback/alert/style.css +0 -1
- package/src/feedback/dialog/dialog.stories.js +0 -4
- package/src/feedback/dialog/style.css +0 -10
- package/src/feedback/dialog/template.js +0 -5
- package/src/feedback/progress/style.css +0 -6
- package/src/feedback/progress/template.js +0 -3
- package/src/feedback/snackbar/snackbar.stories.js +0 -1
- package/src/feedback/snackbar/style.css +0 -10
- package/src/layout/flex/style.css +0 -2
- package/src/navigation/bottom-navigation/style.css +0 -7
- package/src/navigation/drawer/style.css +0 -21
- package/src/navigation/drawer/template.js +0 -2
- package/src/navigation/menu/menu.stories.js +0 -2
- package/src/navigation/menu/style.css +0 -4
- package/src/navigation/menu/template.js +0 -3
- package/src/navigation/speed-dial/style.css +0 -4
- package/src/navigation/speed-dial/template.js +0 -5
- package/src/navigation/tabs/template.js +0 -2
- package/src/navigation/view-transitions/index.js +0 -13
- package/src/navigation/view-transitions/style.css +0 -2
- package/src/shared/icons.js +0 -4
- package/src/styles/themes/bootstrap.css +0 -40
- package/src/styles/themes/inglorious.css +0 -21
- package/src/styles/themes/ios-18.css +0 -47
- package/src/styles/themes/ios-26.css +0 -55
- package/src/styles/themes/material-3.css +0 -52
- package/src/styles/themes/material-ui.css +0 -43
- package/src/styles/tokens.css +0 -40
- package/src/surfaces/accordion/style.css +41 -3
- package/src/surfaces/accordion/template.js +0 -4
- package/src/surfaces/app-bar/style.css +0 -3
- package/src/surfaces/card/style.css +0 -3
- package/types/controls/button-group.d.ts +5 -3
- package/types/controls/button.d.ts +3 -1
- package/types/controls/combobox.d.ts +13 -0
- package/types/controls/fab.d.ts +1 -1
- package/types/controls/icon-button.d.ts +7 -21
- package/types/controls/input.d.ts +2 -2
- package/types/data-display/avatar.d.ts +1 -1
- package/types/data-display/badge.d.ts +4 -2
- package/types/data-display/chip.d.ts +5 -3
- package/types/data-display/icon.d.ts +4 -2
- package/types/data-display/tooltip.d.ts +4 -2
- package/types/data-display/typography.d.ts +3 -1
- package/types/feedback/alert.d.ts +3 -1
- package/types/feedback/backdrop.d.ts +4 -2
- package/types/feedback/dialog.d.ts +3 -1
- package/types/index.d.ts +1 -0
- package/types/layout/container.d.ts +3 -1
- package/types/layout/flex.d.ts +9 -11
- package/types/layout/grid.d.ts +4 -2
- package/types/navigation/breadcrumbs.d.ts +1 -1
- package/types/navigation/drawer.d.ts +3 -1
- package/types/navigation/link.d.ts +4 -2
- package/types/shared/renderable.d.ts +12 -0
- package/types/surfaces/app-bar.d.ts +3 -1
- package/types/surfaces/card.d.ts +4 -2
- package/types/surfaces/paper.d.ts +3 -1
|
@@ -66,11 +66,6 @@ function wrapStore(store, routes) {
|
|
|
66
66
|
let unsubscribeStore = null
|
|
67
67
|
|
|
68
68
|
store.subscribe = (listener) => {
|
|
69
|
-
/* Taken here rather than when the store is wrapped, so that anything that
|
|
70
|
-
navigated in between — an initial redirect, a renderer mounting late — is
|
|
71
|
-
part of the baseline instead of a navigation in its own right. It also
|
|
72
|
-
keeps `window` untouched until something subscribes, so wrapping a store
|
|
73
|
-
during a server render is harmless. */
|
|
74
69
|
if (!unsubscribeStore) {
|
|
75
70
|
currentPath = getPath()
|
|
76
71
|
currentIndex = getIndex()
|
|
@@ -115,20 +110,12 @@ function wrapStore(store, routes) {
|
|
|
115
110
|
if (supportsTransitionTypes()) {
|
|
116
111
|
document.startViewTransition({ update: notify, types })
|
|
117
112
|
} else {
|
|
118
|
-
// Without `types` the browser falls back to its own cross-fade, which is
|
|
119
|
-
// a reasonable way to change page when the slide is unavailable.
|
|
120
113
|
document.startViewTransition(notify)
|
|
121
114
|
}
|
|
122
115
|
}
|
|
123
116
|
|
|
124
|
-
/* The update callback of a view transition does not run synchronously: the
|
|
125
|
-
* browser captures the old state first and calls it on a later task. Reading
|
|
126
|
-
* the state here rather than in the subscription keeps a listener from
|
|
127
|
-
* replaying whatever the store held when the transition started. */
|
|
128
117
|
function notify() {
|
|
129
118
|
const state = store.getState()
|
|
130
|
-
// Copied, so that a listener subscribing during this pass waits for the
|
|
131
|
-
// next one instead of being notified by the pass that added it.
|
|
132
119
|
;[...listeners].forEach((listener) => listener(state))
|
|
133
120
|
}
|
|
134
121
|
|
|
@@ -74,8 +74,6 @@
|
|
|
74
74
|
var(--iw-easing-decelerate) both;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
/* A replacement navigates in place rather than arriving from a side, so it
|
|
78
|
-
cross-fades instead of sliding. */
|
|
79
77
|
:root:active-view-transition-type(replace)::view-transition-old(root) {
|
|
80
78
|
animation: iw-view-transition-fade-out var(--iw-duration-page)
|
|
81
79
|
var(--iw-easing-standard) both;
|
package/src/shared/icons.js
CHANGED
|
@@ -2,17 +2,10 @@
|
|
|
2
2
|
--iw-font-family-sans:
|
|
3
3
|
system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans",
|
|
4
4
|
"Liberation Sans", Arial, sans-serif;
|
|
5
|
-
/* The theme on the page itself: the element with the theme class, usually
|
|
6
|
-
<body>, takes its background, text color and font. */
|
|
7
5
|
background-color: var(--iw-color-bg);
|
|
8
6
|
color: var(--iw-color-text);
|
|
9
7
|
font-family: var(--iw-font-family-sans);
|
|
10
8
|
|
|
11
|
-
/* ========================================
|
|
12
|
-
BOOTSTRAP THEME - Bootstrap 5 defaults
|
|
13
|
-
======================================== */
|
|
14
|
-
|
|
15
|
-
/* Semantic Colors */
|
|
16
9
|
--iw-color-bg: var(--iw-color-white);
|
|
17
10
|
--iw-color-bg-secondary: #f8f9fa;
|
|
18
11
|
--iw-color-bg-tertiary: #e9ecef;
|
|
@@ -32,7 +25,6 @@
|
|
|
32
25
|
--iw-color-primary-active: #0a58ca;
|
|
33
26
|
--iw-color-primary-text: var(--iw-color-white);
|
|
34
27
|
|
|
35
|
-
/* Bootstrap's secondary color */
|
|
36
28
|
--iw-color-accent: #6c757d;
|
|
37
29
|
--iw-color-accent-hover: #5c636a;
|
|
38
30
|
--iw-color-accent-active: #565e64;
|
|
@@ -51,17 +43,11 @@
|
|
|
51
43
|
--iw-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
|
|
52
44
|
--iw-shadow-xl: 0 1rem 3rem rgba(0, 0, 0, 0.175);
|
|
53
45
|
|
|
54
|
-
/* Bootstrap's border radii */
|
|
55
46
|
--iw-radius-sm: 0.25rem;
|
|
56
47
|
--iw-radius-md: 0.375rem;
|
|
57
48
|
--iw-radius-lg: 0.5rem;
|
|
58
49
|
--iw-radius-xl: 1rem;
|
|
59
50
|
|
|
60
|
-
/* ========================================
|
|
61
|
-
COMPONENT TOKENS
|
|
62
|
-
======================================== */
|
|
63
|
-
|
|
64
|
-
/* Button */
|
|
65
51
|
--iw-button-bg: var(--iw-color-primary);
|
|
66
52
|
--iw-button-bg-hover: var(--iw-color-primary-hover);
|
|
67
53
|
--iw-button-bg-active: var(--iw-color-primary-active);
|
|
@@ -72,7 +58,6 @@
|
|
|
72
58
|
--iw-button-shadow-hover: none;
|
|
73
59
|
--iw-button-shadow-active: none;
|
|
74
60
|
|
|
75
|
-
/* Input */
|
|
76
61
|
--iw-input-bg: var(--iw-color-bg);
|
|
77
62
|
--iw-input-bg-hover: var(--iw-color-bg);
|
|
78
63
|
--iw-input-bg-focus: var(--iw-color-bg);
|
|
@@ -84,13 +69,10 @@
|
|
|
84
69
|
--iw-input-radius: var(--iw-radius-md);
|
|
85
70
|
--iw-input-shadow-focus: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
|
|
86
71
|
|
|
87
|
-
/* App bar: a navbar on the tertiary background */
|
|
88
72
|
--iw-app-bar-bg: var(--iw-color-bg-secondary);
|
|
89
73
|
|
|
90
|
-
/* Drawer */
|
|
91
74
|
--iw-drawer-bg: var(--iw-color-surface);
|
|
92
75
|
|
|
93
|
-
/* Card */
|
|
94
76
|
--iw-card-bg: var(--iw-color-surface);
|
|
95
77
|
--iw-card-border: color-mix(
|
|
96
78
|
in srgb,
|
|
@@ -101,13 +83,10 @@
|
|
|
101
83
|
--iw-card-shadow: none;
|
|
102
84
|
--iw-card-shadow-hover: var(--iw-shadow-sm);
|
|
103
85
|
|
|
104
|
-
/* Badge */
|
|
105
86
|
--iw-badge-radius: var(--iw-radius-md);
|
|
106
87
|
|
|
107
|
-
/* Chip: a pill badge in a subtle tone */
|
|
108
88
|
--iw-chip-bg: var(--iw-color-bg-tertiary);
|
|
109
89
|
|
|
110
|
-
/* List */
|
|
111
90
|
--iw-list-item: transparent;
|
|
112
91
|
--iw-list-item-selected: color-mix(
|
|
113
92
|
in srgb,
|
|
@@ -115,13 +94,11 @@
|
|
|
115
94
|
transparent
|
|
116
95
|
);
|
|
117
96
|
|
|
118
|
-
/* Alert */
|
|
119
97
|
--iw-alert-radius: var(--iw-radius-md);
|
|
120
98
|
--iw-alert-shadow: none;
|
|
121
99
|
color-scheme: light;
|
|
122
100
|
}
|
|
123
101
|
|
|
124
|
-
/* Dark variant: Bootstrap's dark color mode */
|
|
125
102
|
.iw-theme-bootstrap.iw-theme-dark {
|
|
126
103
|
color-scheme: dark;
|
|
127
104
|
|
|
@@ -136,15 +113,12 @@
|
|
|
136
113
|
--iw-color-text-muted: rgba(222, 226, 230, 0.75);
|
|
137
114
|
--iw-color-border: #495057;
|
|
138
115
|
|
|
139
|
-
/* Buttons keep their colors; text in the primary color is lightened */
|
|
140
116
|
--iw-color-link: #6ea8fe;
|
|
141
117
|
|
|
142
118
|
--iw-card-border: color-mix(in srgb, var(--iw-color-white) 15%, transparent);
|
|
143
119
|
}
|
|
144
120
|
|
|
145
121
|
.iw-theme-bootstrap {
|
|
146
|
-
/* Buttons: Bootstrap's sizes, a focus ring, and the text that reads on each
|
|
147
|
-
color */
|
|
148
122
|
.iw-button {
|
|
149
123
|
padding: 0.375rem 0.75rem;
|
|
150
124
|
font-size: 1rem;
|
|
@@ -223,7 +197,6 @@
|
|
|
223
197
|
);
|
|
224
198
|
}
|
|
225
199
|
|
|
226
|
-
/* Outline buttons fill with their color on hover */
|
|
227
200
|
&.iw-button-outline:hover:not(:disabled),
|
|
228
201
|
&.iw-button-outline:active:not(:disabled),
|
|
229
202
|
&.iw-button-outline.iw-button-pressed {
|
|
@@ -236,7 +209,6 @@
|
|
|
236
209
|
background-color: var(--iw-button-bg-active);
|
|
237
210
|
}
|
|
238
211
|
|
|
239
|
-
/* Ghost buttons are link buttons */
|
|
240
212
|
&.iw-button-ghost {
|
|
241
213
|
text-decoration: underline;
|
|
242
214
|
|
|
@@ -266,8 +238,6 @@
|
|
|
266
238
|
}
|
|
267
239
|
}
|
|
268
240
|
|
|
269
|
-
/* Form controls: labels and help text at Bootstrap's sizes, and a red focus
|
|
270
|
-
ring on invalid fields */
|
|
271
241
|
.iw-input,
|
|
272
242
|
.iw-select,
|
|
273
243
|
.iw-textarea-field {
|
|
@@ -304,7 +274,6 @@
|
|
|
304
274
|
height: calc(1.5em + 0.75rem);
|
|
305
275
|
}
|
|
306
276
|
|
|
307
|
-
/* Switch: an outlined track whose thumb fills in when checked */
|
|
308
277
|
.iw-switch {
|
|
309
278
|
.iw-switch-track {
|
|
310
279
|
width: 2rem;
|
|
@@ -373,7 +342,6 @@
|
|
|
373
342
|
}
|
|
374
343
|
}
|
|
375
344
|
|
|
376
|
-
/* Tabs: nav tabs, the selected one joined to the content below it */
|
|
377
345
|
.iw-tabs-list {
|
|
378
346
|
gap: 0;
|
|
379
347
|
}
|
|
@@ -408,7 +376,6 @@
|
|
|
408
376
|
color: var(--iw-color-link);
|
|
409
377
|
}
|
|
410
378
|
|
|
411
|
-
/* Chips and badges: Bootstrap badges, bold and white on their color */
|
|
412
379
|
.iw-chip {
|
|
413
380
|
&.iw-chip-primary,
|
|
414
381
|
&.iw-chip-success,
|
|
@@ -469,14 +436,12 @@
|
|
|
469
436
|
}
|
|
470
437
|
}
|
|
471
438
|
|
|
472
|
-
/* Cards: a header and a footer on a faint tint, ruled off from the body */
|
|
473
439
|
.iw-card-header,
|
|
474
440
|
.iw-card-footer {
|
|
475
441
|
border-color: var(--iw-card-border);
|
|
476
442
|
background-color: color-mix(in srgb, var(--iw-color-text) 3%, transparent);
|
|
477
443
|
}
|
|
478
444
|
|
|
479
|
-
/* Unless given a padding of their own */
|
|
480
445
|
.iw-card-header:not([class*="iw-card-header-padding-"]),
|
|
481
446
|
.iw-card-footer:not([class*="iw-card-footer-padding-"]) {
|
|
482
447
|
padding: 0.5rem 1rem;
|
|
@@ -488,8 +453,6 @@
|
|
|
488
453
|
line-height: 1.2;
|
|
489
454
|
}
|
|
490
455
|
|
|
491
|
-
/* Alerts: a subtle background, an emphasized text and a border, all in the
|
|
492
|
-
tone of the alert */
|
|
493
456
|
.iw-alert {
|
|
494
457
|
padding: 1rem;
|
|
495
458
|
}
|
|
@@ -534,7 +497,6 @@
|
|
|
534
497
|
--iw-alert-color: var(--iw-color-accent);
|
|
535
498
|
}
|
|
536
499
|
|
|
537
|
-
/* Tables: no outer border, compact cells and bold headings */
|
|
538
500
|
.iw-table {
|
|
539
501
|
border: 0 none;
|
|
540
502
|
}
|
|
@@ -552,7 +514,6 @@
|
|
|
552
514
|
background: color-mix(in srgb, var(--iw-color-text) 5%, transparent);
|
|
553
515
|
}
|
|
554
516
|
|
|
555
|
-
/* Dialogs: a modal with a ruled header and footer */
|
|
556
517
|
.iw-dialog {
|
|
557
518
|
border: 1px solid var(--iw-card-border);
|
|
558
519
|
border-radius: var(--iw-radius-lg);
|
|
@@ -601,7 +562,6 @@
|
|
|
601
562
|
border-top: 1px solid var(--iw-color-border);
|
|
602
563
|
}
|
|
603
564
|
|
|
604
|
-
/* App bars: navbars, with no border */
|
|
605
565
|
.iw-app-bar {
|
|
606
566
|
border-bottom: 0 none;
|
|
607
567
|
}
|
|
@@ -6,17 +6,10 @@
|
|
|
6
6
|
|
|
7
7
|
.iw-theme-inglorious {
|
|
8
8
|
--iw-font-family-sans: var(--iw-font-family);
|
|
9
|
-
/* The theme on the page itself: the element with the theme class, usually
|
|
10
|
-
<body>, takes its background, text color and font. */
|
|
11
9
|
background-color: var(--iw-color-bg);
|
|
12
10
|
color: var(--iw-color-text);
|
|
13
11
|
font-family: var(--iw-font-family-sans);
|
|
14
12
|
|
|
15
|
-
/* ========================================
|
|
16
|
-
INGLORIOUS THEME - Neon Videogame Aesthetic
|
|
17
|
-
======================================== */
|
|
18
|
-
|
|
19
|
-
/* Semantic Colors */
|
|
20
13
|
--iw-color-bg: var(--iw-color-gray-900);
|
|
21
14
|
--iw-color-bg-secondary: var(--iw-color-gray-800);
|
|
22
15
|
--iw-color-bg-tertiary: var(--iw-color-black);
|
|
@@ -40,17 +33,11 @@
|
|
|
40
33
|
--iw-color-accent-hover: #ff33ff;
|
|
41
34
|
--iw-color-accent-active: #ff66ff;
|
|
42
35
|
|
|
43
|
-
/* Geometry: keep Inglorious mostly squared */
|
|
44
36
|
--iw-radius-sm: 0;
|
|
45
37
|
--iw-radius-md: 0;
|
|
46
38
|
--iw-radius-lg: 0;
|
|
47
39
|
--iw-radius-xl: 0;
|
|
48
40
|
|
|
49
|
-
/* ========================================
|
|
50
|
-
COMPONENT TOKENS
|
|
51
|
-
======================================== */
|
|
52
|
-
|
|
53
|
-
/* Button */
|
|
54
41
|
--iw-button-bg: var(--iw-color-primary);
|
|
55
42
|
--iw-button-bg-hover: var(--iw-color-primary-hover);
|
|
56
43
|
--iw-button-bg-active: var(--iw-color-primary-active);
|
|
@@ -73,7 +60,6 @@
|
|
|
73
60
|
--iw-button-ghost-text: var(--iw-color-primary);
|
|
74
61
|
--iw-button-ghost-border: transparent;
|
|
75
62
|
|
|
76
|
-
/* Input */
|
|
77
63
|
--iw-input-bg: var(--iw-color-bg-tertiary);
|
|
78
64
|
--iw-input-bg-hover: var(--iw-color-bg-secondary);
|
|
79
65
|
--iw-input-bg-focus: var(--iw-color-bg-tertiary);
|
|
@@ -86,23 +72,18 @@
|
|
|
86
72
|
--iw-input-shadow-focus:
|
|
87
73
|
0 0 0 1px var(--iw-color-primary), 0 0 10px rgba(0, 255, 136, 0.3);
|
|
88
74
|
|
|
89
|
-
/* App bar */
|
|
90
75
|
--iw-app-bar-bg: var(--iw-color-surface);
|
|
91
76
|
|
|
92
|
-
/* Drawer */
|
|
93
77
|
--iw-drawer-bg: var(--iw-color-surface);
|
|
94
78
|
|
|
95
|
-
/* Card */
|
|
96
79
|
--iw-card-bg: var(--iw-color-surface);
|
|
97
80
|
--iw-card-border: var(--iw-color-border);
|
|
98
81
|
--iw-card-radius: var(--iw-radius-none);
|
|
99
82
|
--iw-card-shadow: var(--iw-shadow-lg);
|
|
100
83
|
--iw-card-shadow-hover: var(--iw-shadow-xl), 0 0 15px rgba(0, 255, 136, 0.1);
|
|
101
84
|
|
|
102
|
-
/* Badge */
|
|
103
85
|
--iw-badge-radius: var(--iw-radius-none);
|
|
104
86
|
|
|
105
|
-
/* List */
|
|
106
87
|
--iw-list-item: transparent;
|
|
107
88
|
--iw-list-item-selected: color-mix(
|
|
108
89
|
in srgb,
|
|
@@ -110,13 +91,11 @@
|
|
|
110
91
|
transparent
|
|
111
92
|
);
|
|
112
93
|
|
|
113
|
-
/* Alert */
|
|
114
94
|
--iw-alert-radius: var(--iw-radius-none);
|
|
115
95
|
--iw-alert-shadow: none;
|
|
116
96
|
color-scheme: dark;
|
|
117
97
|
}
|
|
118
98
|
|
|
119
|
-
/* Light variant */
|
|
120
99
|
.iw-theme-inglorious.iw-theme-light {
|
|
121
100
|
--iw-color-bg: var(--iw-color-white);
|
|
122
101
|
--iw-color-bg-secondary: var(--iw-color-gray-50);
|
|
@@ -1,34 +1,23 @@
|
|
|
1
|
-
/* San Francisco is the system font on Apple devices, and cannot be served to
|
|
2
|
-
others: Inter stands in for it there. */
|
|
3
1
|
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");
|
|
4
2
|
|
|
5
3
|
.iw-theme-ios-18 {
|
|
6
4
|
--iw-font-family-sans:
|
|
7
5
|
-apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Helvetica Neue",
|
|
8
6
|
Arial, sans-serif;
|
|
9
|
-
/* The theme on the page itself: the element with the theme class, usually
|
|
10
|
-
<body>, takes its background, text color and font. */
|
|
11
7
|
background-color: var(--iw-color-bg);
|
|
12
8
|
color: var(--iw-color-text);
|
|
13
9
|
font-family: var(--iw-font-family-sans);
|
|
14
10
|
|
|
15
|
-
/* ========================================
|
|
16
|
-
iOS 18 THEME - The flat iOS, 7 to 18
|
|
17
|
-
======================================== */
|
|
18
|
-
|
|
19
|
-
/* iOS color roles the shared tokens have no name for */
|
|
20
11
|
--iw-ios-fill: rgba(118, 118, 128, 0.12);
|
|
21
12
|
--iw-ios-fill-secondary: rgba(120, 120, 128, 0.2);
|
|
22
13
|
--iw-ios-fill-quaternary: rgba(116, 116, 128, 0.08);
|
|
23
14
|
--iw-ios-gray: #8e8e93;
|
|
24
15
|
--iw-ios-tab-inactive: #999999;
|
|
25
16
|
--iw-ios-segment-selected: var(--iw-color-white);
|
|
26
|
-
/* Bars and menus: translucent, blurring what passes under them */
|
|
27
17
|
--iw-ios-bar-bg: rgba(249, 249, 249, 0.94);
|
|
28
18
|
--iw-ios-material: rgba(242, 242, 242, 0.8);
|
|
29
19
|
--iw-ios-blur: blur(20px) saturate(180%);
|
|
30
20
|
|
|
31
|
-
/* Semantic Colors: grouped content, white on grey */
|
|
32
21
|
--iw-color-bg: #f2f2f7;
|
|
33
22
|
--iw-color-bg-secondary: #f2f2f7;
|
|
34
23
|
--iw-color-bg-tertiary: #e5e5ea;
|
|
@@ -68,8 +57,6 @@
|
|
|
68
57
|
--iw-radius-xl: 14px;
|
|
69
58
|
--iw-radius-2xl: 20px;
|
|
70
59
|
|
|
71
|
-
/* The Dynamic Type scale at its default size: footnote, subheadline,
|
|
72
|
-
body, title 3, title 2, title 1 and large title */
|
|
73
60
|
--iw-font-size-xs: 0.8125rem;
|
|
74
61
|
--iw-font-size-sm: 0.9375rem;
|
|
75
62
|
--iw-font-size-base: 1.0625rem;
|
|
@@ -78,11 +65,6 @@
|
|
|
78
65
|
--iw-font-size-2xl: 1.75rem;
|
|
79
66
|
--iw-font-size-3xl: 2.125rem;
|
|
80
67
|
|
|
81
|
-
/* ========================================
|
|
82
|
-
COMPONENT TOKENS
|
|
83
|
-
======================================== */
|
|
84
|
-
|
|
85
|
-
/* Button: filled */
|
|
86
68
|
--iw-button-bg: var(--iw-color-primary);
|
|
87
69
|
--iw-button-bg-hover: var(--iw-color-primary-hover);
|
|
88
70
|
--iw-button-bg-active: var(--iw-color-primary);
|
|
@@ -93,7 +75,6 @@
|
|
|
93
75
|
--iw-button-shadow-hover: none;
|
|
94
76
|
--iw-button-shadow-active: none;
|
|
95
77
|
|
|
96
|
-
/* A button's default color is a gray button, with a tinted label */
|
|
97
78
|
--iw-button-default-color: var(--iw-color-primary);
|
|
98
79
|
--iw-button-default-bg: var(--iw-ios-fill);
|
|
99
80
|
--iw-button-default-bg-hover: var(--iw-ios-fill-secondary);
|
|
@@ -101,7 +82,6 @@
|
|
|
101
82
|
--iw-button-default-border: transparent;
|
|
102
83
|
--iw-button-default-text: var(--iw-color-primary);
|
|
103
84
|
|
|
104
|
-
/* Input: a filled, borderless field */
|
|
105
85
|
--iw-input-bg: var(--iw-ios-fill);
|
|
106
86
|
--iw-input-bg-hover: var(--iw-ios-fill);
|
|
107
87
|
--iw-input-bg-focus: var(--iw-ios-fill);
|
|
@@ -114,26 +94,20 @@
|
|
|
114
94
|
--iw-input-shadow-focus: 0 0 0 3px
|
|
115
95
|
color-mix(in srgb, var(--iw-color-primary) 35%, transparent);
|
|
116
96
|
|
|
117
|
-
/* App bar: a navigation bar */
|
|
118
97
|
--iw-app-bar-bg: var(--iw-ios-bar-bg);
|
|
119
98
|
|
|
120
|
-
/* Drawer: a sidebar */
|
|
121
99
|
--iw-drawer-bg: var(--iw-color-bg);
|
|
122
100
|
|
|
123
|
-
/* Card: an inset grouped section */
|
|
124
101
|
--iw-card-bg: var(--iw-color-surface);
|
|
125
102
|
--iw-card-border: transparent;
|
|
126
103
|
--iw-card-radius: var(--iw-radius-lg);
|
|
127
104
|
--iw-card-shadow: none;
|
|
128
105
|
--iw-card-shadow-hover: var(--iw-shadow-md);
|
|
129
106
|
|
|
130
|
-
/* Badge */
|
|
131
107
|
--iw-badge-radius: var(--iw-radius-full);
|
|
132
108
|
|
|
133
|
-
/* Chip: a gray capsule */
|
|
134
109
|
--iw-chip-bg: var(--iw-ios-fill);
|
|
135
110
|
|
|
136
|
-
/* List */
|
|
137
111
|
--iw-list-item: transparent;
|
|
138
112
|
--iw-list-item-active: var(--iw-color-surface-active);
|
|
139
113
|
--iw-list-item-selected: color-mix(
|
|
@@ -142,18 +116,15 @@
|
|
|
142
116
|
transparent
|
|
143
117
|
);
|
|
144
118
|
|
|
145
|
-
/* Progress: a thin bar */
|
|
146
119
|
--iw-progress-height: 4px;
|
|
147
120
|
--iw-progress-radius: var(--iw-radius-full);
|
|
148
121
|
--iw-progress-track-color: var(--iw-ios-fill-secondary);
|
|
149
122
|
|
|
150
|
-
/* Alert */
|
|
151
123
|
--iw-alert-radius: var(--iw-radius-lg);
|
|
152
124
|
--iw-alert-shadow: none;
|
|
153
125
|
color-scheme: light;
|
|
154
126
|
}
|
|
155
127
|
|
|
156
|
-
/* Dark variant */
|
|
157
128
|
.iw-theme-ios-18.iw-theme-dark {
|
|
158
129
|
color-scheme: dark;
|
|
159
130
|
|
|
@@ -195,7 +166,6 @@
|
|
|
195
166
|
}
|
|
196
167
|
|
|
197
168
|
.iw-theme-ios-18 {
|
|
198
|
-
/* Buttons: filled, gray, tinted and plain. Pressing one dims it */
|
|
199
169
|
.iw-button {
|
|
200
170
|
padding: 7px 14px;
|
|
201
171
|
font-size: var(--iw-font-size-base);
|
|
@@ -263,7 +233,6 @@
|
|
|
263
233
|
outline-offset: 1px;
|
|
264
234
|
}
|
|
265
235
|
|
|
266
|
-
/* Outlined buttons are tinted: iOS draws no outlines */
|
|
267
236
|
&.iw-button-outline {
|
|
268
237
|
border-color: transparent;
|
|
269
238
|
background-color: color-mix(
|
|
@@ -285,7 +254,6 @@
|
|
|
285
254
|
}
|
|
286
255
|
}
|
|
287
256
|
|
|
288
|
-
/* Ghost buttons are plain */
|
|
289
257
|
&.iw-button-ghost {
|
|
290
258
|
&:hover:not(:disabled),
|
|
291
259
|
&:active:not(:disabled),
|
|
@@ -307,8 +275,6 @@
|
|
|
307
275
|
}
|
|
308
276
|
}
|
|
309
277
|
|
|
310
|
-
/* Form fields: labels and notes in the footnote style around a filled
|
|
311
|
-
field */
|
|
312
278
|
.iw-input,
|
|
313
279
|
.iw-select,
|
|
314
280
|
.iw-textarea-field {
|
|
@@ -333,7 +299,6 @@
|
|
|
333
299
|
}
|
|
334
300
|
}
|
|
335
301
|
|
|
336
|
-
/* Switch: the 51 by 31 point switch, green when on */
|
|
337
302
|
.iw-switch:not(
|
|
338
303
|
.iw-switch-secondary,
|
|
339
304
|
.iw-switch-success,
|
|
@@ -406,7 +371,6 @@
|
|
|
406
371
|
}
|
|
407
372
|
}
|
|
408
373
|
|
|
409
|
-
/* Tabs: a segmented control, its segments equally wide */
|
|
410
374
|
.iw-tabs-list {
|
|
411
375
|
display: inline-grid;
|
|
412
376
|
grid-auto-flow: column;
|
|
@@ -449,7 +413,6 @@
|
|
|
449
413
|
0 3px 1px rgba(0, 0, 0, 0.04);
|
|
450
414
|
}
|
|
451
415
|
|
|
452
|
-
/* Chips: capsules, filled with the tint when selected */
|
|
453
416
|
.iw-chip {
|
|
454
417
|
padding: 5px 12px;
|
|
455
418
|
font-size: var(--iw-font-size-sm);
|
|
@@ -468,7 +431,6 @@
|
|
|
468
431
|
font-weight: var(--iw-font-weight-semibold);
|
|
469
432
|
}
|
|
470
433
|
|
|
471
|
-
/* Cards: inset grouped sections, the footer ruled off below */
|
|
472
434
|
.iw-card-header {
|
|
473
435
|
border: 0 none;
|
|
474
436
|
}
|
|
@@ -487,7 +449,6 @@
|
|
|
487
449
|
font-size: var(--iw-font-size-sm);
|
|
488
450
|
}
|
|
489
451
|
|
|
490
|
-
/* Alerts: tinted, borderless boxes */
|
|
491
452
|
.iw-alert {
|
|
492
453
|
padding: 12px 16px;
|
|
493
454
|
|
|
@@ -519,7 +480,6 @@
|
|
|
519
480
|
}
|
|
520
481
|
}
|
|
521
482
|
|
|
522
|
-
/* Tables: a plain list, with headers in the classic section style */
|
|
523
483
|
.iw-table {
|
|
524
484
|
border: 0 none;
|
|
525
485
|
}
|
|
@@ -537,8 +497,6 @@
|
|
|
537
497
|
color: var(--iw-color-text-secondary);
|
|
538
498
|
}
|
|
539
499
|
|
|
540
|
-
/* Dialogs: alerts, centered on a translucent material, with their actions
|
|
541
|
-
as a row of text buttons under a hairline */
|
|
542
500
|
.iw-dialog {
|
|
543
501
|
border: 0 none;
|
|
544
502
|
border-radius: var(--iw-radius-xl);
|
|
@@ -607,7 +565,6 @@
|
|
|
607
565
|
background-color: var(--iw-ios-fill-quaternary);
|
|
608
566
|
}
|
|
609
567
|
|
|
610
|
-
/* The preferred action is the filled one, and stands out in bold */
|
|
611
568
|
&:not(.iw-button-outline, .iw-button-ghost) {
|
|
612
569
|
font-weight: var(--iw-font-weight-semibold);
|
|
613
570
|
}
|
|
@@ -617,7 +574,6 @@
|
|
|
617
574
|
}
|
|
618
575
|
}
|
|
619
576
|
|
|
620
|
-
/* Menus and snackbars: on the translucent material */
|
|
621
577
|
.iw-menu {
|
|
622
578
|
min-width: 15rem;
|
|
623
579
|
padding: 0;
|
|
@@ -658,8 +614,6 @@
|
|
|
658
614
|
color: var(--iw-color-text);
|
|
659
615
|
}
|
|
660
616
|
|
|
661
|
-
/* App bars: translucent navigation bars over a hairline. A prominent one
|
|
662
|
-
has a large title */
|
|
663
617
|
.iw-app-bar {
|
|
664
618
|
backdrop-filter: var(--iw-ios-blur);
|
|
665
619
|
}
|
|
@@ -683,7 +637,6 @@
|
|
|
683
637
|
line-height: 2.5625rem;
|
|
684
638
|
}
|
|
685
639
|
|
|
686
|
-
/* Bottom navigation: a tab bar */
|
|
687
640
|
.iw-bottom-navigation {
|
|
688
641
|
gap: 0;
|
|
689
642
|
padding: 0;
|