@fluixi-ui/tokens 0.4.0-alpha.16 → 0.4.0-alpha.18
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/css/parts/menu.css +15 -3
- package/dist/lib/reference/index.d.ts +193 -193
- package/dist/lib/reference/index.d.ts.map +1 -1
- package/dist/lib/vars/index.d.ts +88 -88
- package/dist/lib/vars/index.d.ts.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +3 -7
- package/dist/css/button.css +0 -152
- package/dist/css/button.css.js +0 -8
- package/dist/preset.css +0 -80
package/dist/css/button.css
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
@layer flx.components {
|
|
2
|
-
/* ----------------------------------------------------------------------------
|
|
3
|
-
* Button (and any [data-variant] control, e.g. dialog triggers). Badges also
|
|
4
|
-
* carry [data-variant], so every rule here excludes [data-badge] — a badge must
|
|
5
|
-
* never pick up button sizing/colour.
|
|
6
|
-
* ------------------------------------------------------------------------- */
|
|
7
|
-
|
|
8
|
-
/* Tone (data-tone) is orthogonal to variant: it remaps the button's own
|
|
9
|
-
* `--flx-ui-color-primary*` to a semantic colour, so every variant (solid/outline/
|
|
10
|
-
* ghost/soft) renders in that tone AND skins follow (they read color-primary). The
|
|
11
|
-
* hover/active steps are derived (the semantic tokens only ship solid/subtle/fg). */
|
|
12
|
-
:where([data-tone='danger']) {
|
|
13
|
-
--flx-ui-color-primary: var(--flx-ui-color-danger);
|
|
14
|
-
--flx-ui-color-primary-hover: color-mix(in oklab, var(--flx-ui-color-danger) 88%, #000);
|
|
15
|
-
--flx-ui-color-primary-active: color-mix(in oklab, var(--flx-ui-color-danger) 78%, #000);
|
|
16
|
-
--flx-ui-color-primary-fg: var(--flx-ui-color-danger-fg);
|
|
17
|
-
--flx-ui-color-primary-subtle: var(--flx-ui-color-danger-subtle);
|
|
18
|
-
}
|
|
19
|
-
:where([data-tone='success']) {
|
|
20
|
-
--flx-ui-color-primary: var(--flx-ui-color-success);
|
|
21
|
-
--flx-ui-color-primary-hover: color-mix(in oklab, var(--flx-ui-color-success) 88%, #000);
|
|
22
|
-
--flx-ui-color-primary-active: color-mix(in oklab, var(--flx-ui-color-success) 78%, #000);
|
|
23
|
-
--flx-ui-color-primary-fg: var(--flx-ui-color-success-fg);
|
|
24
|
-
--flx-ui-color-primary-subtle: var(--flx-ui-color-success-subtle);
|
|
25
|
-
}
|
|
26
|
-
:where([data-tone='warning']) {
|
|
27
|
-
--flx-ui-color-primary: var(--flx-ui-color-warning);
|
|
28
|
-
--flx-ui-color-primary-hover: color-mix(in oklab, var(--flx-ui-color-warning) 88%, #000);
|
|
29
|
-
--flx-ui-color-primary-active: color-mix(in oklab, var(--flx-ui-color-warning) 78%, #000);
|
|
30
|
-
--flx-ui-color-primary-fg: var(--flx-ui-color-warning-fg);
|
|
31
|
-
--flx-ui-color-primary-subtle: var(--flx-ui-color-warning-subtle);
|
|
32
|
-
}
|
|
33
|
-
:where([data-tone='neutral']) {
|
|
34
|
-
--flx-ui-color-primary: var(--flx-ui-color-fg-muted);
|
|
35
|
-
--flx-ui-color-primary-hover: var(--flx-ui-color-fg);
|
|
36
|
-
--flx-ui-color-primary-active: var(--flx-ui-color-fg);
|
|
37
|
-
--flx-ui-color-primary-fg: var(--flx-ui-color-bg);
|
|
38
|
-
--flx-ui-color-primary-subtle: var(--flx-ui-color-bg-muted);
|
|
39
|
-
}
|
|
40
|
-
:where([data-variant]:not([data-badge])) {
|
|
41
|
-
box-sizing: border-box;
|
|
42
|
-
display: inline-flex;
|
|
43
|
-
align-items: center;
|
|
44
|
-
justify-content: center;
|
|
45
|
-
gap: var(--flx-ui-space-2);
|
|
46
|
-
font: inherit;
|
|
47
|
-
font-weight: var(--flx-ui-ctl-font);
|
|
48
|
-
letter-spacing: var(--flx-ui-letter-spacing-tight);
|
|
49
|
-
line-height: var(--flx-ui-line-height-none);
|
|
50
|
-
cursor: pointer;
|
|
51
|
-
user-select: none;
|
|
52
|
-
/* Transparent base so `ghost` (and any variant that sets no background) doesn't
|
|
53
|
-
fall back to the native button UA background — visible on dark surfaces. */
|
|
54
|
-
background: transparent;
|
|
55
|
-
border: var(--flx-ui-border-width-thin) solid transparent;
|
|
56
|
-
border-radius: var(--flx-ui-radius-md);
|
|
57
|
-
height: var(--flx-ui-size-md);
|
|
58
|
-
/* Never narrower than tall, so an icon-only button (a close ×, a chevron)
|
|
59
|
-
stays square instead of collapsing to its glyph width. */
|
|
60
|
-
min-width: var(--flx-ui-size-md);
|
|
61
|
-
padding: 0 var(--flx-ui-space-4);
|
|
62
|
-
color: var(--flx-ui-color-fg);
|
|
63
|
-
transition:
|
|
64
|
-
background var(--flx-ui-duration-fast) var(--flx-ui-ease-standard),
|
|
65
|
-
border-color var(--flx-ui-duration-fast) var(--flx-ui-ease-standard),
|
|
66
|
-
box-shadow var(--flx-ui-duration-fast) var(--flx-ui-ease-standard);
|
|
67
|
-
}
|
|
68
|
-
:where([data-variant]:not([data-badge])[data-size='sm']) {
|
|
69
|
-
height: var(--flx-ui-size-sm);
|
|
70
|
-
min-width: var(--flx-ui-size-sm);
|
|
71
|
-
padding: 0 var(--flx-ui-space-3);
|
|
72
|
-
font-size: var(--flx-ui-font-size-sm);
|
|
73
|
-
}
|
|
74
|
-
:where([data-variant]:not([data-badge])[data-size='lg']) {
|
|
75
|
-
height: var(--flx-ui-size-lg);
|
|
76
|
-
min-width: var(--flx-ui-size-lg);
|
|
77
|
-
padding: 0 var(--flx-ui-space-5);
|
|
78
|
-
font-size: var(--flx-ui-font-size-lg);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/* Solid: the primary action — a flat, confident accent. Depth comes from the
|
|
82
|
-
color step change on interaction, not from shadow or sheen. */
|
|
83
|
-
:where([data-variant='solid']:not([data-badge])) {
|
|
84
|
-
background: var(--flx-ui-color-primary);
|
|
85
|
-
color: var(--flx-ui-color-primary-fg);
|
|
86
|
-
}
|
|
87
|
-
:where([data-variant='solid']:not([data-badge]):hover:not([data-disabled])) {
|
|
88
|
-
background: var(--flx-ui-color-primary-hover);
|
|
89
|
-
}
|
|
90
|
-
:where([data-variant='solid']:not([data-badge]):active:not([data-disabled])) {
|
|
91
|
-
background: var(--flx-ui-color-primary-active);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/* Soft: a tinted, low-key primary. Deepened a touch over the bare subtle tint so
|
|
95
|
-
it carries enough weight to read as a control, then steps up on hover. */
|
|
96
|
-
:where([data-variant='soft']:not([data-badge])) {
|
|
97
|
-
background: color-mix(in oklab, var(--flx-ui-color-primary-subtle), var(--flx-ui-color-primary) 10%);
|
|
98
|
-
color: var(--flx-ui-color-primary-active);
|
|
99
|
-
}
|
|
100
|
-
:where([data-variant='soft']:not([data-badge]):hover:not([data-disabled])) {
|
|
101
|
-
background: color-mix(in oklab, var(--flx-ui-color-primary-subtle), var(--flx-ui-color-primary) 20%);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/* Outline: a flat hairline-bordered control. */
|
|
105
|
-
:where([data-variant='outline']:not([data-badge])) {
|
|
106
|
-
border-color: var(--flx-ui-color-border-strong);
|
|
107
|
-
background: var(--flx-ui-color-bg);
|
|
108
|
-
}
|
|
109
|
-
:where([data-variant='outline']:not([data-badge]):hover:not([data-disabled])) {
|
|
110
|
-
background: var(--flx-ui-color-bg-subtle);
|
|
111
|
-
border-color: var(--flx-ui-color-fg-muted);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/* Ghost: text-only until hovered. */
|
|
115
|
-
:where([data-variant='ghost']:not([data-badge])) {
|
|
116
|
-
color: var(--flx-ui-color-fg);
|
|
117
|
-
}
|
|
118
|
-
:where([data-variant='ghost']:not([data-badge]):hover:not([data-disabled])) {
|
|
119
|
-
background: var(--flx-ui-color-bg-muted);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
:where([data-disabled]) {
|
|
123
|
-
opacity: var(--flx-ui-opacity-disabled);
|
|
124
|
-
cursor: not-allowed;
|
|
125
|
-
pointer-events: none;
|
|
126
|
-
}
|
|
127
|
-
/* Buttons get a flat, neutral disabled instead of a dimmed accent (which reads
|
|
128
|
-
muddy). Filled variants drop to a grey fill; outline/ghost stay flat. */
|
|
129
|
-
:where([data-variant]:not([data-badge])[data-disabled]) {
|
|
130
|
-
opacity: 1;
|
|
131
|
-
box-shadow: none;
|
|
132
|
-
color: var(--flx-ui-color-fg-muted);
|
|
133
|
-
}
|
|
134
|
-
:where([data-variant='solid']:not([data-badge])[data-disabled]),
|
|
135
|
-
:where([data-variant='soft']:not([data-badge])[data-disabled]) {
|
|
136
|
-
background: var(--flx-ui-color-bg-muted);
|
|
137
|
-
border-color: transparent;
|
|
138
|
-
}
|
|
139
|
-
:where([data-variant='outline']:not([data-badge])[data-disabled]) {
|
|
140
|
-
background: transparent;
|
|
141
|
-
border-color: var(--flx-ui-color-border);
|
|
142
|
-
}
|
|
143
|
-
:where([data-variant='ghost']:not([data-badge])[data-disabled]) {
|
|
144
|
-
background: transparent;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/* The signature focus ring: a surface-colored gap then an accent halo. */
|
|
148
|
-
:where([data-variant]:not([data-badge]):focus-visible) {
|
|
149
|
-
outline: none;
|
|
150
|
-
box-shadow: var(--flx-ui-ctl-ring);
|
|
151
|
-
}
|
|
152
|
-
}
|
package/dist/css/button.css.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
const href = new URL('./button.css', import.meta.url).href;
|
|
2
|
-
if (typeof document !== 'undefined' && !document.querySelector(`link[data-flx-ui="${href}"]`)) {
|
|
3
|
-
const link = document.createElement('link');
|
|
4
|
-
link.rel = 'stylesheet';
|
|
5
|
-
link.href = href;
|
|
6
|
-
link.dataset.flxUi = href;
|
|
7
|
-
document.head.appendChild(link);
|
|
8
|
-
}
|
package/dist/preset.css
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @fluixi-ui/tokens/preset.css — the default fluixi skin, aggregated.
|
|
3
|
-
*
|
|
4
|
-
* GENERATED from the per-component slices in ./css/* (the source of truth).
|
|
5
|
-
* Edit a component's styles in its slice, then run
|
|
6
|
-
* `pnpm --filter @fluixi-ui/tokens build:css`. Bundlers inline these @imports;
|
|
7
|
-
* non-bundler consumers get every component's CSS in one import.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
@layer flx.reset, flx.base, flx.tokens, flx.components, flx.skin, flx.fx;
|
|
11
|
-
|
|
12
|
-
@import './css/base.css';
|
|
13
|
-
@import './css/layout.css';
|
|
14
|
-
@import './css/text.css';
|
|
15
|
-
@import './css/scroll-area.css';
|
|
16
|
-
@import './css/page.css';
|
|
17
|
-
@import './css/splitter.css';
|
|
18
|
-
@import './css/dnd.css';
|
|
19
|
-
@import './css/button.css';
|
|
20
|
-
@import './css/icon-button.css';
|
|
21
|
-
@import './css/fab.css';
|
|
22
|
-
@import './css/speed-dial.css';
|
|
23
|
-
@import './css/badge.css';
|
|
24
|
-
@import './css/chip.css';
|
|
25
|
-
@import './css/toggle.css';
|
|
26
|
-
@import './css/toolbar.css';
|
|
27
|
-
@import './css/theme.css';
|
|
28
|
-
@import './css/avatar.css';
|
|
29
|
-
@import './css/field.css';
|
|
30
|
-
@import './css/input.css';
|
|
31
|
-
@import './css/number-field.css';
|
|
32
|
-
@import './css/pin-input.css';
|
|
33
|
-
@import './css/tags-input.css';
|
|
34
|
-
@import './css/image.css';
|
|
35
|
-
@import './css/file-upload.css';
|
|
36
|
-
@import './css/slider.css';
|
|
37
|
-
@import './css/hover-card.css';
|
|
38
|
-
@import './css/alert.css';
|
|
39
|
-
@import './css/skeleton.css';
|
|
40
|
-
@import './css/kbd.css';
|
|
41
|
-
@import './css/empty.css';
|
|
42
|
-
@import './css/statistic.css';
|
|
43
|
-
@import './css/descriptions.css';
|
|
44
|
-
@import './css/switch.css';
|
|
45
|
-
@import './css/checkbox-radio.css';
|
|
46
|
-
@import './css/rating.css';
|
|
47
|
-
@import './css/tabs.css';
|
|
48
|
-
@import './css/accordion.css';
|
|
49
|
-
@import './css/progress.css';
|
|
50
|
-
@import './css/spinner.css';
|
|
51
|
-
@import './css/separator.css';
|
|
52
|
-
@import './css/breadcrumb.css';
|
|
53
|
-
@import './css/pagination.css';
|
|
54
|
-
@import './css/timeline.css';
|
|
55
|
-
@import './css/surface.css';
|
|
56
|
-
@import './css/card.css';
|
|
57
|
-
@import './css/glow.css';
|
|
58
|
-
@import './css/aspect-ratio.css';
|
|
59
|
-
@import './css/carousel.css';
|
|
60
|
-
@import './css/stepper.css';
|
|
61
|
-
@import './css/select-combobox.css';
|
|
62
|
-
@import './css/field-variants.css';
|
|
63
|
-
@import './css/parts/listbox.css';
|
|
64
|
-
@import './css/parts/overlays.css';
|
|
65
|
-
@import './css/drawer.css';
|
|
66
|
-
@import './css/bottom-sheet.css';
|
|
67
|
-
@import './css/parts/menu.css';
|
|
68
|
-
@import './css/menubar.css';
|
|
69
|
-
@import './css/navigation-menu.css';
|
|
70
|
-
@import './css/sidenav.css';
|
|
71
|
-
@import './css/tree-view.css';
|
|
72
|
-
@import './css/toast.css';
|
|
73
|
-
@import './css/command.css';
|
|
74
|
-
@import './css/tooltip.css';
|
|
75
|
-
@import './css/table.css';
|
|
76
|
-
@import './css/parts/motion.css';
|
|
77
|
-
@import './css/calendar.css';
|
|
78
|
-
@import './css/date-field.css';
|
|
79
|
-
@import './css/date-picker.css';
|
|
80
|
-
@import './css/bulk-editor.css';
|