@scattered-light/base-ui-theme 0.1.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 +19 -0
- package/dist/index.d.ts +103 -0
- package/dist/index.js +313 -0
- package/dist/index.js.map +1 -0
- package/dist/styles/base/borders.css +26 -0
- package/dist/styles/base/breakpoints.css +26 -0
- package/dist/styles/base/colors.css +150 -0
- package/dist/styles/base/global.css +108 -0
- package/dist/styles/base/reset-accessibility.css +119 -0
- package/dist/styles/base/reset.css +451 -0
- package/dist/styles/base/shadows.css +42 -0
- package/dist/styles/base/spacing.css +62 -0
- package/dist/styles/base/transitions.css +29 -0
- package/dist/styles/base/typography.css +63 -0
- package/dist/styles/base/z-index.css +22 -0
- package/dist/styles/components/AGGrid.css +6 -0
- package/dist/styles/components/Accordion.css +184 -0
- package/dist/styles/components/AlertDialog.css +172 -0
- package/dist/styles/components/Autocomplete.css +261 -0
- package/dist/styles/components/Avatar.css +154 -0
- package/dist/styles/components/Button.css +164 -0
- package/dist/styles/components/Checkbox.css +199 -0
- package/dist/styles/components/CheckboxGroup.css +21 -0
- package/dist/styles/components/Collapsible.css +115 -0
- package/dist/styles/components/Combobox.css +514 -0
- package/dist/styles/components/ContextMenu.css +209 -0
- package/dist/styles/components/Dialog.css +159 -0
- package/dist/styles/components/Field.css +138 -0
- package/dist/styles/components/Fieldset.css +48 -0
- package/dist/styles/components/Form.css +22 -0
- package/dist/styles/components/Input.css +106 -0
- package/dist/styles/components/Menu.css +158 -0
- package/dist/styles/components/Menubar.css +201 -0
- package/dist/styles/components/Meter.css +104 -0
- package/dist/styles/components/NavigationMenu.css +469 -0
- package/dist/styles/components/NumberField.css +182 -0
- package/dist/styles/components/Popover.css +167 -0
- package/dist/styles/components/PreviewCard.css +148 -0
- package/dist/styles/components/Progress.css +130 -0
- package/dist/styles/components/Radio.css +178 -0
- package/dist/styles/components/ScrollArea.css +103 -0
- package/dist/styles/components/Select.css +297 -0
- package/dist/styles/components/Separator.css +34 -0
- package/dist/styles/components/Slider.css +163 -0
- package/dist/styles/components/Switch.css +197 -0
- package/dist/styles/components/Tabs.css +163 -0
- package/dist/styles/components/Toast.css +261 -0
- package/dist/styles/components/Toggle.css +103 -0
- package/dist/styles/components/ToggleGroup.css +19 -0
- package/dist/styles/components/Toolbar.css +78 -0
- package/dist/styles/components/Tooltip.css +87 -0
- package/dist/styles/index.css +103 -0
- package/dist/styles/semantic/accessibility.css +77 -0
- package/dist/styles/semantic/accordion.css +102 -0
- package/dist/styles/semantic/ag-grid.css +114 -0
- package/dist/styles/semantic/alert-dialog.css +78 -0
- package/dist/styles/semantic/autocomplete.css +162 -0
- package/dist/styles/semantic/avatar.css +96 -0
- package/dist/styles/semantic/badge.css +16 -0
- package/dist/styles/semantic/button.css +145 -0
- package/dist/styles/semantic/card.css +14 -0
- package/dist/styles/semantic/checkbox-group.css +18 -0
- package/dist/styles/semantic/checkbox.css +117 -0
- package/dist/styles/semantic/collapsible.css +123 -0
- package/dist/styles/semantic/combobox.css +325 -0
- package/dist/styles/semantic/context-menu.css +131 -0
- package/dist/styles/semantic/dialog.css +91 -0
- package/dist/styles/semantic/dropdown.css +16 -0
- package/dist/styles/semantic/field.css +73 -0
- package/dist/styles/semantic/fieldset.css +45 -0
- package/dist/styles/semantic/form.css +20 -0
- package/dist/styles/semantic/input.css +83 -0
- package/dist/styles/semantic/menu.css +104 -0
- package/dist/styles/semantic/menubar.css +70 -0
- package/dist/styles/semantic/meter.css +88 -0
- package/dist/styles/semantic/modal.css +14 -0
- package/dist/styles/semantic/navigation-menu.css +171 -0
- package/dist/styles/semantic/number-field.css +142 -0
- package/dist/styles/semantic/popover.css +113 -0
- package/dist/styles/semantic/preview-card.css +108 -0
- package/dist/styles/semantic/progress.css +85 -0
- package/dist/styles/semantic/radio.css +103 -0
- package/dist/styles/semantic/scroll-area.css +64 -0
- package/dist/styles/semantic/select.css +197 -0
- package/dist/styles/semantic/separator.css +37 -0
- package/dist/styles/semantic/slider.css +120 -0
- package/dist/styles/semantic/switch.css +158 -0
- package/dist/styles/semantic/tabs.css +150 -0
- package/dist/styles/semantic/toast.css +171 -0
- package/dist/styles/semantic/toggle-group.css +29 -0
- package/dist/styles/semantic/toggle.css +94 -0
- package/dist/styles/semantic/toolbar.css +47 -0
- package/dist/styles/semantic/tooltip.css +56 -0
- package/dist/styles/theme/README.md +179 -0
- package/dist/styles/theme/theme-accessibility.css +13 -0
- package/dist/styles/theme/theme-primitives.css +7 -0
- package/dist/styles/theme/theme-radius.css +12 -0
- package/dist/styles/theme/theme-roles.css +66 -0
- package/dist/styles/theme/theme-spacing.css +28 -0
- package/dist/styles/theme/theme-stroke.css +7 -0
- package/dist/styles/theme/theme-typography.css +218 -0
- package/dist/styles/utilities/color-styles.css +34 -0
- package/dist/styles/utilities/layout-styles.css +19 -0
- package/dist/styles/utilities/text-styles.css +102 -0
- package/package.json +75 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/* Toggle - Mojave Theme */
|
|
2
|
+
|
|
3
|
+
/* ============================================
|
|
4
|
+
ROOT
|
|
5
|
+
============================================ */
|
|
6
|
+
|
|
7
|
+
.Toggle {
|
|
8
|
+
all: unset;
|
|
9
|
+
box-sizing: border-box;
|
|
10
|
+
display: var(--toggle-display);
|
|
11
|
+
align-items: var(--toggle-align-items);
|
|
12
|
+
justify-content: var(--toggle-justify-content);
|
|
13
|
+
gap: var(--toggle-gap);
|
|
14
|
+
padding-block: var(--toggle-padding-block);
|
|
15
|
+
padding-inline: var(--toggle-padding-inline);
|
|
16
|
+
font-family: var(--toggle-font-family);
|
|
17
|
+
font-size: var(--toggle-font-size);
|
|
18
|
+
font-weight: var(--toggle-font-weight);
|
|
19
|
+
line-height: var(--toggle-line-height);
|
|
20
|
+
letter-spacing: var(--toggle-letter-spacing);
|
|
21
|
+
color: var(--toggle-color);
|
|
22
|
+
background: var(--toggle-background);
|
|
23
|
+
border: var(--toggle-border-width) solid var(--toggle-border-color);
|
|
24
|
+
border-radius: var(--toggle-border-radius);
|
|
25
|
+
cursor: var(--toggle-cursor);
|
|
26
|
+
transition: var(--toggle-transition);
|
|
27
|
+
user-select: var(--toggle-user-select);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.Toggle:hover:not([data-disabled]):not(:disabled) {
|
|
31
|
+
background: var(--toggle-background-hover);
|
|
32
|
+
border-color: var(--toggle-border-color-hover);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.Toggle[data-pressed],
|
|
36
|
+
.Toggle[aria-pressed='true'] {
|
|
37
|
+
background: var(--toggle-background-pressed);
|
|
38
|
+
color: var(--toggle-color-pressed);
|
|
39
|
+
border-color: var(--toggle-border-color-pressed);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.Toggle[data-pressed]:hover:not([data-disabled]):not(:disabled),
|
|
43
|
+
.Toggle[aria-pressed='true']:hover:not([data-disabled]):not(:disabled) {
|
|
44
|
+
background: var(--toggle-background-pressed-hover);
|
|
45
|
+
border-color: var(--toggle-border-color-pressed-hover);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.Toggle:focus-visible {
|
|
49
|
+
outline: var(--toggle-outline-focus);
|
|
50
|
+
outline-offset: var(--toggle-outline-offset-focus);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.Toggle[data-disabled],
|
|
54
|
+
.Toggle:disabled {
|
|
55
|
+
opacity: var(--toggle-opacity-disabled);
|
|
56
|
+
cursor: var(--toggle-cursor-disabled);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* ============================================
|
|
60
|
+
SIZE VARIANTS
|
|
61
|
+
============================================ */
|
|
62
|
+
|
|
63
|
+
.Toggle[data-size='sm'] {
|
|
64
|
+
padding-block: var(--toggle-padding-block-sm);
|
|
65
|
+
padding-inline: var(--toggle-padding-inline-sm);
|
|
66
|
+
font-family: var(--toggle-font-family-sm);
|
|
67
|
+
font-size: var(--toggle-font-size-sm);
|
|
68
|
+
font-weight: var(--toggle-font-weight-sm);
|
|
69
|
+
line-height: var(--toggle-line-height-sm);
|
|
70
|
+
letter-spacing: var(--toggle-letter-spacing-sm);
|
|
71
|
+
border-radius: var(--toggle-border-radius-sm);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.Toggle[data-size='lg'] {
|
|
75
|
+
padding-block: var(--toggle-padding-block-lg);
|
|
76
|
+
padding-inline: var(--toggle-padding-inline-lg);
|
|
77
|
+
font-family: var(--toggle-font-family-lg);
|
|
78
|
+
font-size: var(--toggle-font-size-lg);
|
|
79
|
+
font-weight: var(--toggle-font-weight-lg);
|
|
80
|
+
line-height: var(--toggle-line-height-lg);
|
|
81
|
+
letter-spacing: var(--toggle-letter-spacing-lg);
|
|
82
|
+
border-radius: var(--toggle-border-radius-lg);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* ============================================
|
|
86
|
+
ICON
|
|
87
|
+
============================================ */
|
|
88
|
+
|
|
89
|
+
.Toggle svg {
|
|
90
|
+
width: 1.25em;
|
|
91
|
+
height: 1.25em;
|
|
92
|
+
flex-shrink: 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* ============================================
|
|
96
|
+
REDUCED MOTION
|
|
97
|
+
============================================ */
|
|
98
|
+
|
|
99
|
+
@media (prefers-reduced-motion: reduce) {
|
|
100
|
+
.Toggle {
|
|
101
|
+
transition: none;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/* Toggle Group - Mojave Theme */
|
|
2
|
+
|
|
3
|
+
/* ============================================
|
|
4
|
+
ROOT
|
|
5
|
+
============================================ */
|
|
6
|
+
|
|
7
|
+
.ToggleGroup {
|
|
8
|
+
display: var(--toggle-group-display);
|
|
9
|
+
gap: var(--toggle-group-gap);
|
|
10
|
+
padding: var(--toggle-group-padding);
|
|
11
|
+
background: var(--toggle-group-background);
|
|
12
|
+
border-radius: var(--toggle-group-border-radius);
|
|
13
|
+
border: var(--toggle-group-border-width) solid var(--toggle-group-border-color);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* Adjust toggle styles when inside a group */
|
|
17
|
+
.ToggleGroup .Toggle {
|
|
18
|
+
border-radius: var(--radius-sm);
|
|
19
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/* Toolbar - Mojave Theme */
|
|
2
|
+
|
|
3
|
+
/* ============================================
|
|
4
|
+
ROOT
|
|
5
|
+
============================================ */
|
|
6
|
+
|
|
7
|
+
.Toolbar {
|
|
8
|
+
display: var(--toolbar-display);
|
|
9
|
+
align-items: var(--toolbar-align-items);
|
|
10
|
+
gap: var(--toolbar-gap);
|
|
11
|
+
padding: var(--toolbar-padding);
|
|
12
|
+
background: var(--toolbar-background);
|
|
13
|
+
border-radius: var(--toolbar-border-radius);
|
|
14
|
+
border: var(--toolbar-border-width) solid var(--toolbar-border-color);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* ============================================
|
|
18
|
+
GROUP
|
|
19
|
+
============================================ */
|
|
20
|
+
|
|
21
|
+
.ToolbarGroup {
|
|
22
|
+
display: var(--toolbar-group-display);
|
|
23
|
+
align-items: var(--toolbar-group-align-items);
|
|
24
|
+
gap: var(--toolbar-group-gap);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* ============================================
|
|
28
|
+
SEPARATOR
|
|
29
|
+
============================================ */
|
|
30
|
+
|
|
31
|
+
.ToolbarSeparator {
|
|
32
|
+
width: var(--toolbar-separator-width);
|
|
33
|
+
height: var(--toolbar-separator-height);
|
|
34
|
+
background: var(--toolbar-separator-background);
|
|
35
|
+
margin-inline: var(--toolbar-separator-margin-inline);
|
|
36
|
+
border: none;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* ============================================
|
|
40
|
+
BUTTON (inherits from Button component)
|
|
41
|
+
============================================ */
|
|
42
|
+
|
|
43
|
+
.Toolbar .ToolbarButton {
|
|
44
|
+
/* Buttons inside toolbar use existing Button styles */
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* ============================================
|
|
48
|
+
LINK
|
|
49
|
+
============================================ */
|
|
50
|
+
|
|
51
|
+
.ToolbarLink {
|
|
52
|
+
display: inline-flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
padding-inline: var(--space-3);
|
|
55
|
+
font-size: var(--font-size-sm);
|
|
56
|
+
color: var(--text-secondary);
|
|
57
|
+
text-decoration: none;
|
|
58
|
+
transition: color 0.2s ease;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.ToolbarLink:hover {
|
|
62
|
+
color: var(--text-primary);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.ToolbarLink:focus-visible {
|
|
66
|
+
outline: 2px solid var(--focus-ring);
|
|
67
|
+
outline-offset: 2px;
|
|
68
|
+
border-radius: var(--radius-sm);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* ============================================
|
|
72
|
+
INPUT (inherits from Input component)
|
|
73
|
+
============================================ */
|
|
74
|
+
|
|
75
|
+
.Toolbar .ToolbarInput {
|
|
76
|
+
/* Inputs inside toolbar use existing Input styles */
|
|
77
|
+
max-width: 200px;
|
|
78
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/* Tooltip - Mojave Theme */
|
|
2
|
+
|
|
3
|
+
/* ============================================
|
|
4
|
+
TRIGGER
|
|
5
|
+
============================================ */
|
|
6
|
+
|
|
7
|
+
.TooltipTrigger {
|
|
8
|
+
/* Trigger can be any element, no specific styles needed */
|
|
9
|
+
cursor: help;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* ============================================
|
|
13
|
+
POSITIONER
|
|
14
|
+
============================================ */
|
|
15
|
+
|
|
16
|
+
.TooltipPositioner {
|
|
17
|
+
z-index: var(--tooltip-positioner-z-index);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* ============================================
|
|
21
|
+
POPUP
|
|
22
|
+
============================================ */
|
|
23
|
+
|
|
24
|
+
.TooltipPopup {
|
|
25
|
+
background: var(--tooltip-popup-background);
|
|
26
|
+
color: var(--tooltip-popup-color);
|
|
27
|
+
padding-block: var(--tooltip-popup-padding-block);
|
|
28
|
+
padding-inline: var(--tooltip-popup-padding-inline);
|
|
29
|
+
border-radius: var(--tooltip-popup-border-radius);
|
|
30
|
+
font-family: var(--tooltip-popup-font-family);
|
|
31
|
+
font-size: var(--tooltip-popup-font-size);
|
|
32
|
+
font-weight: var(--tooltip-popup-font-weight);
|
|
33
|
+
line-height: var(--tooltip-popup-line-height);
|
|
34
|
+
letter-spacing: var(--tooltip-popup-letter-spacing);
|
|
35
|
+
max-width: var(--tooltip-popup-max-width);
|
|
36
|
+
box-shadow: var(--tooltip-popup-box-shadow);
|
|
37
|
+
word-wrap: break-word;
|
|
38
|
+
user-select: none;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Animation states */
|
|
42
|
+
.TooltipPopup[data-starting-style] {
|
|
43
|
+
opacity: 0;
|
|
44
|
+
transform: scale(0.95);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.TooltipPopup[data-open] {
|
|
48
|
+
opacity: 1;
|
|
49
|
+
transform: scale(1);
|
|
50
|
+
transition: opacity var(--tooltip-popup-animation-duration) var(--tooltip-popup-animation-easing),
|
|
51
|
+
transform var(--tooltip-popup-animation-duration) var(--tooltip-popup-animation-easing);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.TooltipPopup[data-ending-style] {
|
|
55
|
+
opacity: 0;
|
|
56
|
+
transform: scale(0.95);
|
|
57
|
+
transition: opacity var(--tooltip-popup-animation-duration) var(--tooltip-popup-animation-easing),
|
|
58
|
+
transform var(--tooltip-popup-animation-duration) var(--tooltip-popup-animation-easing);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* ============================================
|
|
62
|
+
ARROW
|
|
63
|
+
============================================ */
|
|
64
|
+
|
|
65
|
+
.TooltipArrow {
|
|
66
|
+
width: var(--tooltip-arrow-width);
|
|
67
|
+
height: var(--tooltip-arrow-height);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.TooltipArrow svg {
|
|
71
|
+
fill: var(--tooltip-arrow-fill);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* ============================================
|
|
75
|
+
REDUCED MOTION
|
|
76
|
+
============================================ */
|
|
77
|
+
|
|
78
|
+
@media (prefers-reduced-motion: reduce) {
|
|
79
|
+
.TooltipPopup {
|
|
80
|
+
transition: none;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.TooltipPopup[data-starting-style],
|
|
84
|
+
.TooltipPopup[data-ending-style] {
|
|
85
|
+
transform: none;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/* Mojave Design System - Main Entry Point */
|
|
2
|
+
@import '@material-symbols/font-400/outlined.css';
|
|
3
|
+
|
|
4
|
+
/* Base styles */
|
|
5
|
+
@import './base/colors.css';
|
|
6
|
+
@import './base/global.css';
|
|
7
|
+
@import './base/spacing.css';
|
|
8
|
+
@import './base/borders.css';
|
|
9
|
+
@import './base/shadows.css';
|
|
10
|
+
@import './base/breakpoints.css';
|
|
11
|
+
@import './base/z-index.css';
|
|
12
|
+
@import './base/transitions.css';
|
|
13
|
+
@import './base/typography.css';
|
|
14
|
+
@import './base/reset.css';
|
|
15
|
+
@import './base/reset-accessibility.css';
|
|
16
|
+
|
|
17
|
+
/* Theme roles (palette → semantic steps) */
|
|
18
|
+
@import './theme/theme-roles.css';
|
|
19
|
+
@import './theme/theme-primitives.css';
|
|
20
|
+
@import './theme/theme-spacing.css';
|
|
21
|
+
@import './theme/theme-typography.css';
|
|
22
|
+
@import './theme/theme-radius.css';
|
|
23
|
+
@import './theme/theme-stroke.css';
|
|
24
|
+
@import './theme/theme-accessibility.css';
|
|
25
|
+
|
|
26
|
+
/* Semantic token files */
|
|
27
|
+
@import './semantic/accessibility.css';
|
|
28
|
+
@import './semantic/accordion.css';
|
|
29
|
+
@import './semantic/alert-dialog.css';
|
|
30
|
+
@import './semantic/autocomplete.css';
|
|
31
|
+
@import './semantic/avatar.css';
|
|
32
|
+
@import './semantic/badge.css';
|
|
33
|
+
@import './semantic/button.css';
|
|
34
|
+
@import './semantic/checkbox.css';
|
|
35
|
+
@import './semantic/checkbox-group.css';
|
|
36
|
+
@import './semantic/card.css';
|
|
37
|
+
@import './semantic/context-menu.css';
|
|
38
|
+
@import './semantic/dialog.css';
|
|
39
|
+
@import './semantic/dropdown.css';
|
|
40
|
+
@import './semantic/input.css';
|
|
41
|
+
@import './semantic/menu.css';
|
|
42
|
+
@import './semantic/menubar.css';
|
|
43
|
+
@import './semantic/modal.css';
|
|
44
|
+
@import './semantic/navigation-menu.css';
|
|
45
|
+
@import './semantic/number-field.css';
|
|
46
|
+
@import './semantic/popover.css';
|
|
47
|
+
@import './semantic/preview-card.css';
|
|
48
|
+
@import './semantic/progress.css';
|
|
49
|
+
@import './semantic/radio.css';
|
|
50
|
+
@import './semantic/scroll-area.css';
|
|
51
|
+
@import './semantic/select.css';
|
|
52
|
+
@import './semantic/slider.css';
|
|
53
|
+
@import './semantic/switch.css';
|
|
54
|
+
@import './semantic/tabs.css';
|
|
55
|
+
@import './semantic/toast.css';
|
|
56
|
+
@import './semantic/toggle.css';
|
|
57
|
+
@import './semantic/toggle-group.css';
|
|
58
|
+
@import './semantic/toolbar.css';
|
|
59
|
+
@import './semantic/tooltip.css';
|
|
60
|
+
@import './semantic/ag-grid.css';
|
|
61
|
+
|
|
62
|
+
/* Utility Styles */
|
|
63
|
+
@import './utilities/color-styles.css';
|
|
64
|
+
@import './utilities/text-styles.css';
|
|
65
|
+
@import './utilities/layout-styles.css';
|
|
66
|
+
|
|
67
|
+
/* Component styles */
|
|
68
|
+
@import './components/Accordion.css';
|
|
69
|
+
@import './components/AlertDialog.css';
|
|
70
|
+
@import './components/Autocomplete.css';
|
|
71
|
+
@import './components/Avatar.css';
|
|
72
|
+
@import './components/Button.css';
|
|
73
|
+
@import './components/Checkbox.css';
|
|
74
|
+
@import './components/CheckboxGroup.css';
|
|
75
|
+
@import './components/Collapsible.css';
|
|
76
|
+
@import './components/Combobox.css';
|
|
77
|
+
@import './components/ContextMenu.css';
|
|
78
|
+
@import './components/Dialog.css';
|
|
79
|
+
@import './components/Field.css';
|
|
80
|
+
@import './components/Fieldset.css';
|
|
81
|
+
@import './components/Form.css';
|
|
82
|
+
@import './components/Input.css';
|
|
83
|
+
@import './components/Menu.css';
|
|
84
|
+
@import './components/Menubar.css';
|
|
85
|
+
@import './components/Meter.css';
|
|
86
|
+
@import './components/NavigationMenu.css';
|
|
87
|
+
@import './components/NumberField.css';
|
|
88
|
+
@import './components/Popover.css';
|
|
89
|
+
@import './components/PreviewCard.css';
|
|
90
|
+
@import './components/Progress.css';
|
|
91
|
+
@import './components/Radio.css';
|
|
92
|
+
@import './components/ScrollArea.css';
|
|
93
|
+
@import './components/Select.css';
|
|
94
|
+
@import './components/Separator.css';
|
|
95
|
+
@import './components/Slider.css';
|
|
96
|
+
@import './components/Switch.css';
|
|
97
|
+
@import './components/Tabs.css';
|
|
98
|
+
@import './components/Toast.css';
|
|
99
|
+
@import './components/Toggle.css';
|
|
100
|
+
@import './components/ToggleGroup.css';
|
|
101
|
+
@import './components/Toolbar.css';
|
|
102
|
+
@import './components/Tooltip.css';
|
|
103
|
+
@import './components/AGGrid.css';
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/* Focus, invalid, contrast — requires theme tokens (after theme-accessibility.css). */
|
|
2
|
+
|
|
3
|
+
:focus-visible {
|
|
4
|
+
outline: var(--theme-a11y-focus-outline-width) solid var(--focus-ring);
|
|
5
|
+
outline-offset: var(--theme-a11y-focus-outline-offset);
|
|
6
|
+
border-radius: var(--theme-a11y-focus-ring-radius);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
a:focus-visible {
|
|
10
|
+
outline: var(--theme-a11y-focus-outline-width) solid var(--focus-ring);
|
|
11
|
+
outline-offset: var(--theme-a11y-link-focus-outline-offset);
|
|
12
|
+
border-radius: var(--theme-a11y-link-focus-ring-radius);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
input:invalid,
|
|
16
|
+
textarea:invalid,
|
|
17
|
+
select:invalid {
|
|
18
|
+
border-color: var(--theme-status-error, #ef4444);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
input:invalid:focus,
|
|
22
|
+
textarea:invalid:focus,
|
|
23
|
+
select:invalid:focus {
|
|
24
|
+
outline-color: var(--theme-status-error, #ef4444);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
[required]::after,
|
|
28
|
+
[aria-required='true']::after {
|
|
29
|
+
content: ' *';
|
|
30
|
+
color: var(--theme-status-error, #ef4444);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@media (prefers-contrast: high) {
|
|
34
|
+
:root {
|
|
35
|
+
--border-default: var(--theme-neutral-600);
|
|
36
|
+
--border-strong: var(--theme-neutral-800);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@media (prefers-contrast: more) {
|
|
41
|
+
:root {
|
|
42
|
+
--border-default: var(--theme-neutral-700);
|
|
43
|
+
--border-strong: var(--theme-neutral-900);
|
|
44
|
+
--text-secondary: var(--theme-neutral-1000);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
button,
|
|
48
|
+
a {
|
|
49
|
+
text-decoration: underline;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@media (forced-colors: active) {
|
|
54
|
+
:focus-visible {
|
|
55
|
+
outline: 2px solid CanvasText;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
button,
|
|
59
|
+
a {
|
|
60
|
+
border: 1px solid ButtonText;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@media (pointer: coarse) {
|
|
65
|
+
button,
|
|
66
|
+
a,
|
|
67
|
+
input[type='button'],
|
|
68
|
+
input[type='submit'],
|
|
69
|
+
input[type='reset'],
|
|
70
|
+
input[type='checkbox'],
|
|
71
|
+
input[type='radio'],
|
|
72
|
+
select,
|
|
73
|
+
textarea {
|
|
74
|
+
min-height: var(--theme-a11y-min-touch-target);
|
|
75
|
+
min-width: var(--theme-a11y-min-touch-target);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/* Accordion Component Tokens - Mojave Theme */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
/* ============================================
|
|
5
|
+
ACCORDION CONTAINER
|
|
6
|
+
============================================ */
|
|
7
|
+
|
|
8
|
+
--accordion-bg: var(--theme-neutral-50);
|
|
9
|
+
--accordion-border-radius: var(--theme-radius-surface);
|
|
10
|
+
|
|
11
|
+
/* ============================================
|
|
12
|
+
ACCORDION ITEM
|
|
13
|
+
============================================ */
|
|
14
|
+
|
|
15
|
+
--accordion-item-border-color: var(--border-default);
|
|
16
|
+
--accordion-item-border-width: var(--theme-stroke-default);
|
|
17
|
+
|
|
18
|
+
/* ============================================
|
|
19
|
+
ACCORDION TRIGGER (HEADER/BUTTON)
|
|
20
|
+
============================================ */
|
|
21
|
+
|
|
22
|
+
--accordion-trigger-padding-block: var(--space-4);
|
|
23
|
+
--accordion-trigger-padding-inline: var(--space-6);
|
|
24
|
+
--accordion-trigger-gap: var(--space-4);
|
|
25
|
+
--accordion-trigger-bg: var(--surface-base);
|
|
26
|
+
--accordion-trigger-bg-hover: var(--surface-raised);
|
|
27
|
+
--accordion-trigger-bg-active: var(--theme-neutral-100);
|
|
28
|
+
--accordion-trigger-text-color: var(--text-primary);
|
|
29
|
+
--accordion-trigger-font-family: var(--theme-maximize-md-font-family);
|
|
30
|
+
--accordion-trigger-font-size: var(--theme-maximize-md-font-size);
|
|
31
|
+
--accordion-trigger-font-weight: var(--theme-maximize-md-font-weight);
|
|
32
|
+
--accordion-trigger-line-height: var(--theme-maximize-md-line-height);
|
|
33
|
+
--accordion-trigger-letter-spacing: var(--theme-maximize-md-letter-spacing);
|
|
34
|
+
|
|
35
|
+
/* ============================================
|
|
36
|
+
ACCORDION ICON
|
|
37
|
+
============================================ */
|
|
38
|
+
|
|
39
|
+
--accordion-icon-size: 1.25rem;
|
|
40
|
+
--accordion-icon-color: var(--text-secondary);
|
|
41
|
+
--accordion-icon-transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
|
42
|
+
|
|
43
|
+
/* ============================================
|
|
44
|
+
ACCORDION CONTENT
|
|
45
|
+
============================================ */
|
|
46
|
+
|
|
47
|
+
--accordion-content-padding-block-start: 0;
|
|
48
|
+
--accordion-content-padding-block-end: var(--space-4);
|
|
49
|
+
--accordion-content-padding-inline: var(--space-6);
|
|
50
|
+
--accordion-content-bg: var(--surface-base);
|
|
51
|
+
--accordion-content-text-color: var(--text-secondary);
|
|
52
|
+
--accordion-content-font-family: var(--theme-font-base-font-family);
|
|
53
|
+
--accordion-content-font-size: var(--theme-font-base-font-size);
|
|
54
|
+
--accordion-content-font-weight: var(--theme-font-base-font-weight);
|
|
55
|
+
--accordion-content-line-height: var(--theme-font-base-line-height);
|
|
56
|
+
--accordion-content-letter-spacing: var(--theme-font-base-letter-spacing);
|
|
57
|
+
|
|
58
|
+
/* ============================================
|
|
59
|
+
ACCORDION TRANSITIONS
|
|
60
|
+
============================================ */
|
|
61
|
+
|
|
62
|
+
--accordion-transition: background-color 0.2s ease;
|
|
63
|
+
|
|
64
|
+
/* ============================================
|
|
65
|
+
ACCORDION VARIANTS
|
|
66
|
+
============================================ */
|
|
67
|
+
|
|
68
|
+
/* Separated variant */
|
|
69
|
+
--accordion-separated-gap: var(--space-2);
|
|
70
|
+
--accordion-separated-item-border-radius: var(--theme-radius-chrome);
|
|
71
|
+
--accordion-separated-item-border-color: var(--border-default);
|
|
72
|
+
--accordion-separated-item-border-width: var(--theme-stroke-default);
|
|
73
|
+
--accordion-separated-item-bg: var(--surface-base);
|
|
74
|
+
|
|
75
|
+
/* Bordered variant */
|
|
76
|
+
--accordion-bordered-border-width: var(--theme-stroke-default);
|
|
77
|
+
--accordion-bordered-border-color: var(--border-default);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* ============================================
|
|
81
|
+
DARK MODE OVERRIDES
|
|
82
|
+
============================================ */
|
|
83
|
+
|
|
84
|
+
@media (prefers-color-scheme: dark) {
|
|
85
|
+
:root {
|
|
86
|
+
--accordion-bg: var(--theme-neutral-100);
|
|
87
|
+
--accordion-trigger-bg: var(--theme-neutral-50);
|
|
88
|
+
--accordion-trigger-bg-hover: var(--theme-neutral-200);
|
|
89
|
+
--accordion-trigger-bg-active: var(--theme-neutral-300);
|
|
90
|
+
--accordion-content-bg: var(--theme-neutral-50);
|
|
91
|
+
--accordion-separated-item-bg: var(--theme-neutral-50);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
[data-theme='dark'] {
|
|
96
|
+
--accordion-bg: var(--theme-neutral-100);
|
|
97
|
+
--accordion-trigger-bg: var(--theme-neutral-50);
|
|
98
|
+
--accordion-trigger-bg-hover: var(--theme-neutral-200);
|
|
99
|
+
--accordion-trigger-bg-active: var(--theme-neutral-300);
|
|
100
|
+
--accordion-content-bg: var(--theme-neutral-50);
|
|
101
|
+
--accordion-separated-item-bg: var(--theme-neutral-50);
|
|
102
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/* AG Grid Semantic Tokens - Mojave Theme */
|
|
2
|
+
/* All AG Grid CSS variables mapped to Mojave design tokens */
|
|
3
|
+
|
|
4
|
+
:root {
|
|
5
|
+
/* ============================================
|
|
6
|
+
GRID STRUCTURE & SIZING
|
|
7
|
+
============================================ */
|
|
8
|
+
--ag-grid-size: 4px; /*This tells AG-Grid what the fallback mutiplier is for spacing when not using out spacing variables.*/
|
|
9
|
+
--ag-grid-row-height: var(--space-10); /* 40px - matches Input height */
|
|
10
|
+
--ag-grid-header-height: var(--space-10); /* 40px - matches Input height */
|
|
11
|
+
--ag-grid-cell-horizontal-padding: var(--space-3); /* 12px - matches Input padding */
|
|
12
|
+
|
|
13
|
+
/* ============================================
|
|
14
|
+
BACKGROUNDS
|
|
15
|
+
============================================ */
|
|
16
|
+
--ag-grid-background-color: var(--theme-surface-canvas);
|
|
17
|
+
--ag-grid-foreground-color: var(--theme-neutral-1200);
|
|
18
|
+
--ag-grid-odd-row-background-color: transparent;
|
|
19
|
+
--ag-grid-header-background-color: var(--theme-neutral-50);
|
|
20
|
+
--ag-grid-selected-row-background-color: var(--theme-primary-50);
|
|
21
|
+
|
|
22
|
+
/* ============================================
|
|
23
|
+
HOVER & INTERACTION STATES
|
|
24
|
+
============================================ */
|
|
25
|
+
--ag-grid-row-hover-color: var(--theme-neutral-100);
|
|
26
|
+
--ag-grid-column-hover-color: var(--theme-neutral-100);
|
|
27
|
+
--ag-grid-range-selection-background-color: var(--theme-primary-100);
|
|
28
|
+
|
|
29
|
+
/* ============================================
|
|
30
|
+
BORDERS & RADIUS
|
|
31
|
+
============================================ */
|
|
32
|
+
--ag-grid-border-color: var(--theme-neutral-300);
|
|
33
|
+
--ag-grid-secondary-border-color: var(--theme-neutral-200);
|
|
34
|
+
--ag-grid-border-radius: var(--theme-radius-item); /* General border radius */
|
|
35
|
+
--ag-grid-wrapper-border-radius: var(--theme-radius-item); /* Outer grid wrapper */
|
|
36
|
+
--ag-grid-button-border-radius: var(--theme-radius-item); /* Buttons */
|
|
37
|
+
--ag-grid-checkbox-border-radius: var(--theme-radius-pill); /* Checkboxes */
|
|
38
|
+
--ag-grid-icon-button-border-radius: var(--theme-radius-pill); /* Icon buttons */
|
|
39
|
+
--ag-grid-input-border-radius: var(--theme-radius-item); /* Input fields */
|
|
40
|
+
|
|
41
|
+
/* ============================================
|
|
42
|
+
TEXT COLORS
|
|
43
|
+
============================================ */
|
|
44
|
+
--ag-grid-header-foreground-color: var(--theme-neutral-1200);
|
|
45
|
+
|
|
46
|
+
/* ============================================
|
|
47
|
+
INTERACTIVE ELEMENTS
|
|
48
|
+
============================================ */
|
|
49
|
+
--ag-grid-input-focus-border-color: var(--theme-primary-600);
|
|
50
|
+
--ag-grid-input-focus-box-shadow: 0 0 0 2px var(--theme-primary-200);
|
|
51
|
+
|
|
52
|
+
/* Checkbox - Reference the checkbox component tokens */
|
|
53
|
+
--ag-grid-checkbox-checked-color: var(--checkbox-indicator-bg-checked);
|
|
54
|
+
--ag-grid-checkbox-unchecked-color: var(--checkbox-indicator-border-color);
|
|
55
|
+
--ag-grid-checkbox-indeterminate-color: var(--checkbox-indicator-bg-checked);
|
|
56
|
+
|
|
57
|
+
/* ============================================
|
|
58
|
+
TYPOGRAPHY
|
|
59
|
+
============================================ */
|
|
60
|
+
--ag-grid-font-family: var(--theme-font-condense-font-family);
|
|
61
|
+
--ag-grid-font-size: var(--theme-font-condense-font-size);
|
|
62
|
+
--ag-grid-line-height: var(--theme-font-condense-line-height);
|
|
63
|
+
--ag-grid-letter-spacing: var(--theme-font-condense-letter-spacing);
|
|
64
|
+
--ag-grid-header-font-family: var(--theme-font-condense-subtitle-font-family);
|
|
65
|
+
--ag-grid-header-font-size: var(--theme-font-condense-subtitle-font-size);
|
|
66
|
+
--ag-grid-header-font-weight: var(--theme-font-condense-subtitle-font-weight);
|
|
67
|
+
--ag-grid-header-line-height: var(--theme-font-condense-subtitle-line-height);
|
|
68
|
+
--ag-grid-header-letter-spacing: var(--theme-font-condense-subtitle-letter-spacing);
|
|
69
|
+
|
|
70
|
+
/* ============================================
|
|
71
|
+
ICONS
|
|
72
|
+
============================================ */
|
|
73
|
+
--ag-grid-icon-size: 16px;
|
|
74
|
+
|
|
75
|
+
/* ============================================
|
|
76
|
+
INPUTS
|
|
77
|
+
============================================ */
|
|
78
|
+
--ag-grid-input-border-color: var(--theme-neutral-300);
|
|
79
|
+
--ag-grid-input-height: var(--space-10); /* 40px - match our inputs */
|
|
80
|
+
--ag-grid-input-padding: var(--space-3); /* 12px */
|
|
81
|
+
|
|
82
|
+
/* ============================================
|
|
83
|
+
MENUS & DROPDOWNS
|
|
84
|
+
============================================ */
|
|
85
|
+
--ag-grid-menu-background-color: var(--theme-surface-canvas);
|
|
86
|
+
--ag-grid-menu-border-color: var(--theme-neutral-300);
|
|
87
|
+
--ag-grid-menu-shadow: var(--shadow-lg);
|
|
88
|
+
--ag-grid-menu-padding: var(--space-2);
|
|
89
|
+
--ag-grid-menu-item-padding: var(--space-2) var(--space-3);
|
|
90
|
+
--ag-grid-list-item-height: var(--space-10); /* 40px - match our menu items */
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* Dark mode overrides */
|
|
94
|
+
@media (prefers-color-scheme: dark) {
|
|
95
|
+
:root {
|
|
96
|
+
--ag-grid-background-color: var(--theme-neutral-1200);
|
|
97
|
+
--ag-grid-foreground-color: var(--theme-neutral-50);
|
|
98
|
+
--ag-grid-border-color: var(--theme-neutral-900);
|
|
99
|
+
--ag-grid-header-background-color: var(--theme-neutral-1100);
|
|
100
|
+
--ag-grid-row-hover-color: var(--theme-neutral-1100);
|
|
101
|
+
--ag-grid-selected-row-background-color: var(--theme-primary-900);
|
|
102
|
+
--ag-grid-menu-background-color: var(--theme-neutral-1100);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
[data-theme='dark'] {
|
|
107
|
+
--ag-grid-background-color: var(--theme-neutral-1200);
|
|
108
|
+
--ag-grid-foreground-color: var(--theme-neutral-50);
|
|
109
|
+
--ag-grid-border-color: var(--theme-neutral-900);
|
|
110
|
+
--ag-grid-header-background-color: var(--theme-neutral-1100);
|
|
111
|
+
--ag-grid-row-hover-color: var(--theme-neutral-1100);
|
|
112
|
+
--ag-grid-selected-row-background-color: var(--theme-primary-900);
|
|
113
|
+
--ag-grid-menu-background-color: var(--theme-neutral-1100);
|
|
114
|
+
}
|