@rcarls/rc-theme-tailwind 0.0.0-next-20261103014840
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/CHANGELOG.md +36 -0
- package/README.md +127 -0
- package/bridge.css +245 -0
- package/components/accordion.css +18 -0
- package/components/adaptive-menu.css +98 -0
- package/components/app-bar.css +21 -0
- package/components/bottom-sheet.css +90 -0
- package/components/breadcrumbs.css +38 -0
- package/components/button.css +44 -0
- package/components/card.css +51 -0
- package/components/carousel.css +31 -0
- package/components/chip-group.css +21 -0
- package/components/chip.css +20 -0
- package/components/combobox.css +55 -0
- package/components/data-table.css +55 -0
- package/components/dialog.css +39 -0
- package/components/disclosure.css +112 -0
- package/components/fab-menu.css +36 -0
- package/components/fab.css +44 -0
- package/components/field.css +154 -0
- package/components/icons.css +19 -0
- package/components/list-item.css +70 -0
- package/components/listbox.css +29 -0
- package/components/markdown-editor.css +53 -0
- package/components/menu-button.css +18 -0
- package/components/menu.css +28 -0
- package/components/menubar.css +17 -0
- package/components/modes.css +60 -0
- package/components/navigation-bar.css +43 -0
- package/components/navigation-rail.css +72 -0
- package/components/page-turner.css +19 -0
- package/components/pagination.css +50 -0
- package/components/popover.css +13 -0
- package/components/progress.css +11 -0
- package/components/range-slider.css +18 -0
- package/components/scroller.css +19 -0
- package/components/search-bar.css +30 -0
- package/components/segmented-button.css +19 -0
- package/components/select.css +74 -0
- package/components/slider.css +10 -0
- package/components/snackbar.css +23 -0
- package/components/splitter.css +39 -0
- package/components/switch.css +28 -0
- package/components/textarea.css +21 -0
- package/components/toolbar.css +36 -0
- package/components/tooltip.css +15 -0
- package/components/transfer-list.css +30 -0
- package/components/virtual-canvas.css +18 -0
- package/components/virtual-scroller.css +7 -0
- package/components.css +49 -0
- package/css-components/button.css +66 -0
- package/css-components/card.css +14 -0
- package/css-components/chip-group.css +9 -0
- package/css-components/chip.css +80 -0
- package/css-components/disclosure.css +25 -0
- package/css-components/list.css +34 -0
- package/css-components/select.css +20 -0
- package/css-components/textarea.css +22 -0
- package/css-components.css +31 -0
- package/defaults.css +137 -0
- package/layers.css +10 -0
- package/native.css +249 -0
- package/package.json +49 -0
- package/theme.css +3 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind))
|
|
3
|
+
:where(
|
|
4
|
+
[data-rc-icon],
|
|
5
|
+
[data-rc-button-icon],
|
|
6
|
+
[data-rc-button-selected-icon],
|
|
7
|
+
[data-rc-navigation-icon]
|
|
8
|
+
) {
|
|
9
|
+
display: inline-grid;
|
|
10
|
+
place-items: center;
|
|
11
|
+
font-size: var(--rc-icon-font-size, 1.5rem);
|
|
12
|
+
/*
|
|
13
|
+
* Unlayered icon-font boilerplate otherwise beats this layered theme rule.
|
|
14
|
+
* Keep the geometry invariant important, but let consumers opt out by
|
|
15
|
+
* overriding the normally-cascaded custom property.
|
|
16
|
+
*/
|
|
17
|
+
line-height: var(--rc-icon-font-line-height, var(--rc-icon-font-size, 1.5rem)) !important;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) {
|
|
3
|
+
/* Compatibility tokens retained for rc-listbox and embedded selectors. */
|
|
4
|
+
--rc-list-item-gap: var(--tailwind-item-gap, 0.5rem);
|
|
5
|
+
--rc-list-item-min-block-size: 2.25rem;
|
|
6
|
+
--rc-list-item-padding-block: var(--tailwind-item-padding-block, 0.55rem);
|
|
7
|
+
--rc-list-item-padding-inline: var(--tailwind-item-padding-inline, 0.75rem);
|
|
8
|
+
--rc-list-item-hover-bg: color-mix(in srgb, var(--rc-accent, Highlight) 10%, transparent);
|
|
9
|
+
--rc-list-item-active-bg: color-mix(in srgb, var(--rc-accent, Highlight) 16%, transparent);
|
|
10
|
+
--rc-list-item-selected-bg: var(--rc-highlight, Highlight);
|
|
11
|
+
--rc-list-item-selected-color: var(--rc-highlight-text, HighlightText);
|
|
12
|
+
--rc-list-item-disabled-opacity: var(--rc-disabled-opacity, 0.52);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-list {
|
|
16
|
+
--rc-list-padding-inline: var(--tailwind-item-padding-inline, 0.75rem);
|
|
17
|
+
--rc-list-leading-gap: var(--tailwind-item-gap, 0.5rem);
|
|
18
|
+
--rc-list-trailing-gap: var(--tailwind-item-gap, 0.5rem);
|
|
19
|
+
--rc-list-row-gap: 0;
|
|
20
|
+
--rc-list-item-min-block-size: 2.25rem;
|
|
21
|
+
--rc-list-item-padding-block: var(--tailwind-item-padding-block, 0.55rem);
|
|
22
|
+
--rc-list-item-color: var(--rc-field-text, FieldText);
|
|
23
|
+
--rc-list-item-background: transparent;
|
|
24
|
+
--rc-list-item-selected-color: var(--rc-highlight-text, HighlightText);
|
|
25
|
+
--rc-list-item-selected-background: var(--rc-highlight, Highlight);
|
|
26
|
+
--rc-list-item-divider: 1px solid var(--tailwind-border-color, GrayText);
|
|
27
|
+
--rc-list-item-state-layer-color: var(--rc-accent, Highlight);
|
|
28
|
+
--rc-list-item-hover-state-layer-opacity: 0.1;
|
|
29
|
+
--rc-list-item-focus-state-layer-opacity: 0.12;
|
|
30
|
+
--rc-list-item-pressed-state-layer-opacity: 0.16;
|
|
31
|
+
--rc-list-item-disabled-opacity: var(--rc-disabled-opacity, 0.52);
|
|
32
|
+
--rc-list-item-transition-duration: var(--rc-motion-effects-duration-fast, 100ms);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-list[variant='segmented'] {
|
|
36
|
+
--rc-list-padding-inline: 0;
|
|
37
|
+
--rc-list-row-gap: 0.25rem;
|
|
38
|
+
--rc-list-item-background: var(--tailwind-surface-raised, Field);
|
|
39
|
+
--rc-list-item-divider: 0;
|
|
40
|
+
--rc-list-item-border: 1px solid var(--tailwind-border-color, GrayText);
|
|
41
|
+
--rc-list-item-border-radius: var(--tailwind-radius-md, 0.375rem);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind))
|
|
45
|
+
rc-list-item
|
|
46
|
+
> :where([data-rc-list-supporting], small) {
|
|
47
|
+
display: block;
|
|
48
|
+
color: var(--tailwind-on-surface-muted, GrayText);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind))
|
|
52
|
+
rc-list-item
|
|
53
|
+
> :is(input[type='checkbox'], input[type='radio'])[slot='leading'] {
|
|
54
|
+
margin: 0;
|
|
55
|
+
accent-color: var(--rc-accent, Highlight);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-listbox,
|
|
59
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) [part~='listbox'] {
|
|
60
|
+
--rc-listbox-option-gap: var(--rc-list-item-gap);
|
|
61
|
+
--rc-listbox-option-min-block-size: var(--rc-list-item-min-block-size);
|
|
62
|
+
--rc-listbox-option-padding-block: var(--rc-list-item-padding-block);
|
|
63
|
+
--rc-listbox-option-padding-inline: var(--rc-list-item-padding-inline);
|
|
64
|
+
--rc-listbox-hover-bg: var(--rc-list-item-hover-bg);
|
|
65
|
+
--rc-listbox-active-bg: var(--rc-list-item-active-bg);
|
|
66
|
+
--rc-listbox-selected-bg: var(--rc-list-item-selected-bg);
|
|
67
|
+
--rc-listbox-selected-color: var(--rc-list-item-selected-color);
|
|
68
|
+
--rc-listbox-disabled-opacity: var(--rc-list-item-disabled-opacity);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-listbox {
|
|
3
|
+
--rc-listbox-option-gap: var(--rc-list-item-gap, var(--tailwind-item-gap, 0.5rem));
|
|
4
|
+
--rc-listbox-option-min-block-size: 2.25rem;
|
|
5
|
+
--rc-listbox-option-padding-block: var(--tailwind-item-padding-block, 0.55rem);
|
|
6
|
+
--rc-listbox-option-padding-inline: var(--tailwind-item-padding-inline, 0.75rem);
|
|
7
|
+
--rc-listbox-option-transition:
|
|
8
|
+
background-color var(--tailwind-motion-effects-duration-default, 160ms)
|
|
9
|
+
var(--tailwind-motion-easing, ease),
|
|
10
|
+
color var(--tailwind-motion-effects-duration-default, 160ms)
|
|
11
|
+
var(--tailwind-motion-easing, ease);
|
|
12
|
+
--rc-listbox-hover-bg: color-mix(in srgb, var(--rc-accent, Highlight) 10%, transparent);
|
|
13
|
+
--rc-listbox-hover-color: var(--rc-field-text, FieldText);
|
|
14
|
+
--rc-listbox-active-bg: color-mix(in srgb, var(--rc-accent, Highlight) 16%, transparent);
|
|
15
|
+
--rc-listbox-active-color: var(--rc-field-text, FieldText);
|
|
16
|
+
--rc-listbox-selected-bg: var(--rc-highlight, Highlight);
|
|
17
|
+
--rc-listbox-selected-color: var(--rc-highlight-text, HighlightText);
|
|
18
|
+
display: block;
|
|
19
|
+
border-radius: var(--tailwind-radius-lg, 0.75rem);
|
|
20
|
+
font: var(--rc-font-weight, 400) var(--rc-font-size, 1em) / var(--rc-line-height, normal)
|
|
21
|
+
var(--rc-font-family, inherit);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind))
|
|
25
|
+
rc-listbox[checkmark]
|
|
26
|
+
[part~='option-checkmark'] {
|
|
27
|
+
color: var(--rc-accent, Highlight);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-markdown-editor {
|
|
3
|
+
--rc-markdown-editor-padding: 0.75rem;
|
|
4
|
+
--rc-markdown-editor-border: var(--rc-border, 1px solid ButtonBorder);
|
|
5
|
+
--rc-markdown-editor-border-radius: 0 0 var(--tailwind-radius-lg, 0.75rem)
|
|
6
|
+
var(--tailwind-radius-lg, 0.75rem);
|
|
7
|
+
--rc-markdown-editor-background: var(--rc-field, Field);
|
|
8
|
+
--rc-markdown-editor-color: var(--rc-field-text, FieldText);
|
|
9
|
+
--rc-markdown-editor-toolbar-background: var(--tailwind-surface-raised, Canvas);
|
|
10
|
+
--rc-markdown-editor-toolbar-color: var(--tailwind-on-surface, CanvasText);
|
|
11
|
+
--rc-markdown-editor-toolbar-border: var(--rc-border, 1px solid ButtonBorder);
|
|
12
|
+
--rc-markdown-editor-toolbar-gap: 0.125rem;
|
|
13
|
+
--rc-markdown-editor-toolbar-padding: 0.25rem;
|
|
14
|
+
--rc-markdown-editor-toolbar-radius: var(--tailwind-radius-lg, 0.75rem)
|
|
15
|
+
var(--tailwind-radius-lg, 0.75rem) 0 0;
|
|
16
|
+
--rc-markdown-editor-toolbar-button-size: var(--rc-control-block-size, 2.5rem);
|
|
17
|
+
--rc-markdown-editor-toolbar-button-color: var(--tailwind-on-surface, ButtonText);
|
|
18
|
+
--rc-markdown-editor-toolbar-button-border: 1px solid transparent;
|
|
19
|
+
--rc-markdown-editor-toolbar-button-radius: var(--tailwind-radius-md, 0.5rem);
|
|
20
|
+
--rc-markdown-editor-toolbar-button-active-background: var(
|
|
21
|
+
--tailwind-primary-container,
|
|
22
|
+
Highlight
|
|
23
|
+
);
|
|
24
|
+
--rc-markdown-editor-toolbar-button-active-color: var(
|
|
25
|
+
--tailwind-on-primary-container,
|
|
26
|
+
HighlightText
|
|
27
|
+
);
|
|
28
|
+
--rc-markdown-editor-toolbar-button-active-border: 1px solid var(--tailwind-primary, Highlight);
|
|
29
|
+
--rc-markdown-editor-toolbar-focus-outline: var(--rc-focus-ring, 2px solid Highlight);
|
|
30
|
+
--rc-markdown-editor-toolbar-focus-outline-offset: var(--rc-focus-ring-offset, 2px);
|
|
31
|
+
--rc-markdown-editor-toolbar-select-background: var(--tailwind-field, Field);
|
|
32
|
+
--rc-markdown-editor-toolbar-select-color: var(--tailwind-on-surface, FieldText);
|
|
33
|
+
--rc-markdown-editor-toolbar-select-border: var(--rc-border, 1px solid ButtonBorder);
|
|
34
|
+
--rc-markdown-editor-toolbar-select-radius: var(--tailwind-radius-sm, 0.25rem);
|
|
35
|
+
--rc-markdown-editor-toolbar-select-active-background: var(
|
|
36
|
+
--tailwind-primary-container,
|
|
37
|
+
Highlight
|
|
38
|
+
);
|
|
39
|
+
--rc-markdown-editor-toolbar-select-active-color: var(
|
|
40
|
+
--tailwind-on-primary-container,
|
|
41
|
+
HighlightText
|
|
42
|
+
);
|
|
43
|
+
--rc-markdown-editor-toolbar-select-active-border-color: var(--tailwind-primary, Highlight);
|
|
44
|
+
--rc-markdown-editor-toolbar-input-background: var(--tailwind-field, Field);
|
|
45
|
+
--rc-markdown-editor-toolbar-input-color: var(--tailwind-on-surface, FieldText);
|
|
46
|
+
--rc-markdown-editor-toolbar-input-border: var(--rc-border, 1px solid ButtonBorder);
|
|
47
|
+
--rc-markdown-editor-toolbar-input-radius: var(--tailwind-radius-sm, 0.25rem);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-markdown-editor::part(rich-view) {
|
|
51
|
+
line-height: var(--rc-line-height, normal);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-menu-button {
|
|
3
|
+
--rc-menu-button-trigger-background: var(--rc-button-bg, ButtonFace);
|
|
4
|
+
--rc-menu-button-trigger-color: var(--rc-button-text, ButtonText);
|
|
5
|
+
--rc-menu-button-trigger-hover-background: color-mix(
|
|
6
|
+
in srgb,
|
|
7
|
+
var(--rc-accent, Highlight) 10%,
|
|
8
|
+
var(--rc-button-bg, ButtonFace)
|
|
9
|
+
);
|
|
10
|
+
--rc-menu-button-trigger-open-background: color-mix(
|
|
11
|
+
in srgb,
|
|
12
|
+
var(--rc-accent, Highlight) 16%,
|
|
13
|
+
var(--rc-button-bg, ButtonFace)
|
|
14
|
+
);
|
|
15
|
+
--rc-menu-button-indicator-color: var(--rc-accent, Highlight);
|
|
16
|
+
display: inline-block;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
/*
|
|
3
|
+
* Declared on the theme root rather than on rc-menu so menus rendered
|
|
4
|
+
* inside other shadow roots inherit the same values.
|
|
5
|
+
*/
|
|
6
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) {
|
|
7
|
+
--rc-menu-item-gap: var(--tailwind-item-gap, 0.5rem);
|
|
8
|
+
--rc-menu-item-min-block-size: 2.25rem;
|
|
9
|
+
--rc-menu-item-padding-block: var(--tailwind-item-padding-block, 0.55rem);
|
|
10
|
+
--rc-menu-item-padding-inline: var(--tailwind-item-padding-inline, 0.75rem);
|
|
11
|
+
--rc-menu-hover-bg: color-mix(in srgb, var(--rc-accent, Highlight) 10%, transparent);
|
|
12
|
+
--rc-menu-active-bg: color-mix(in srgb, var(--rc-accent, Highlight) 16%, transparent);
|
|
13
|
+
--rc-menu-check-size: 1.25rem;
|
|
14
|
+
--rc-menu-background: var(--tailwind-surface-raised, Canvas);
|
|
15
|
+
--rc-menu-shadow: var(--rc-shadow, none);
|
|
16
|
+
--rc-menu-padding-block: 0.25rem;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-menu {
|
|
20
|
+
display: inline-block;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-menu [data-group-label] {
|
|
24
|
+
color: var(--tailwind-on-surface-muted, GrayText);
|
|
25
|
+
font-size: 0.8em;
|
|
26
|
+
font-weight: 650;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-menubar {
|
|
3
|
+
--rc-menubar-item-block-size: 2.25rem;
|
|
4
|
+
--rc-menubar-item-padding-inline: 0.75rem;
|
|
5
|
+
--rc-menubar-item-background: transparent;
|
|
6
|
+
--rc-menubar-item-open-background: color-mix(
|
|
7
|
+
in srgb,
|
|
8
|
+
var(--rc-accent, Highlight) 14%,
|
|
9
|
+
transparent
|
|
10
|
+
);
|
|
11
|
+
display: inline-block;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-menubar::part(root) {
|
|
15
|
+
gap: 0.125rem;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) {
|
|
3
|
+
background: var(--tailwind-surface, Canvas);
|
|
4
|
+
color: var(--tailwind-on-surface, CanvasText);
|
|
5
|
+
font-family: var(--rc-font-family, inherit);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) *,
|
|
9
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) *::before,
|
|
10
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) *::after {
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) :focus-visible {
|
|
15
|
+
outline: var(--rc-focus-ring, 2px solid Highlight);
|
|
16
|
+
outline-offset: var(--rc-focus-ring-offset, 2px);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@supports (view-transition-name: none) {
|
|
20
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) [data-rc-view-transition] {
|
|
21
|
+
view-transition-name: var(--rc-view-transition-name, none);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/*
|
|
26
|
+
* The vestibular harm reduced motion guards against is movement across the
|
|
27
|
+
* visual field, which a color or opacity change does not trigger; removing
|
|
28
|
+
* every transition over-corrected. Spatial motion still goes fully to
|
|
29
|
+
* zero. Effects motion is kept but shortened, scaled down from
|
|
30
|
+
* Tailwind's own already-quick 100/160/240ms scale. The two legacy
|
|
31
|
+
* primitives (--tailwind-motion-duration and its -slow companion,
|
|
32
|
+
* predating the effects/spatial split) and the cross-theme compatibility
|
|
33
|
+
* token stay at zero: dialog.css is their one remaining direct consumer,
|
|
34
|
+
* animating opacity, display, and transform together in one declaration
|
|
35
|
+
* that mixes spatial and effects properties and can't be cleanly
|
|
36
|
+
* classified into one bucket. (That file's own transform-based entrance
|
|
37
|
+
* is a separate, pre-existing conflict with rc-dialog's pointer-resize
|
|
38
|
+
* geometry reads and remains outside this theme-level override.)
|
|
39
|
+
*/
|
|
40
|
+
@media (prefers-reduced-motion: reduce) {
|
|
41
|
+
.rc-theme-tailwind,
|
|
42
|
+
:host(.rc-theme-tailwind) {
|
|
43
|
+
--tailwind-motion-duration: 0ms;
|
|
44
|
+
--tailwind-motion-duration-slow: 0ms;
|
|
45
|
+
--tailwind-motion-effects-duration-fast: 40ms;
|
|
46
|
+
--tailwind-motion-effects-duration-default: 55ms;
|
|
47
|
+
--tailwind-motion-effects-duration-slow: 70ms;
|
|
48
|
+
--tailwind-motion-spatial-duration-fast: 0ms;
|
|
49
|
+
--tailwind-motion-spatial-duration-default: 0ms;
|
|
50
|
+
--tailwind-motion-spatial-duration-slow: 0ms;
|
|
51
|
+
--rc-motion-duration: 0ms;
|
|
52
|
+
--rc-motion-effects-duration-fast: 40ms;
|
|
53
|
+
--rc-motion-effects-duration-default: 55ms;
|
|
54
|
+
--rc-motion-effects-duration-slow: 70ms;
|
|
55
|
+
--rc-motion-spatial-duration-fast: 0ms;
|
|
56
|
+
--rc-motion-spatial-duration-default: 0ms;
|
|
57
|
+
--rc-motion-spatial-duration-slow: 0ms;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-navigation-bar {
|
|
3
|
+
--rc-navigation-bar-bg: var(--rc-surface, Canvas);
|
|
4
|
+
--rc-navigation-bar-color: var(--rc-color, CanvasText);
|
|
5
|
+
--rc-navigation-bar-block-size: 4rem;
|
|
6
|
+
--rc-navigation-bar-padding-block: 0;
|
|
7
|
+
--rc-navigation-bar-padding-inline: 0;
|
|
8
|
+
--rc-navigation-bar-gap: 0;
|
|
9
|
+
--rc-navigation-bar-item-gap: 0.25rem;
|
|
10
|
+
--rc-navigation-bar-item-min-block-size: 3rem;
|
|
11
|
+
--rc-navigation-bar-item-padding-block: 0.5rem;
|
|
12
|
+
--rc-navigation-bar-item-padding-inline: var(--rc-item-padding-inline, 0.75rem);
|
|
13
|
+
--rc-navigation-bar-item-color: var(--rc-muted-color, CanvasText);
|
|
14
|
+
--rc-navigation-bar-item-text-decoration: none;
|
|
15
|
+
--rc-navigation-bar-active-color: var(--rc-accent, Highlight);
|
|
16
|
+
--rc-navigation-bar-indicator-bg: transparent;
|
|
17
|
+
--rc-navigation-bar-indicator-border: 0;
|
|
18
|
+
--rc-navigation-bar-indicator-radius: 0;
|
|
19
|
+
--rc-navigation-bar-indicator-duration: 0ms;
|
|
20
|
+
--rc-navigation-bar-indicator-easing: ease;
|
|
21
|
+
--rc-icon-font-line-height: 2.5rem;
|
|
22
|
+
--rc-navigation-bar-focus-ring: var(--rc-focus-ring, 2px solid Highlight);
|
|
23
|
+
--rc-navigation-bar-focus-ring-offset: var(--rc-focus-ring-offset, 2px);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind))
|
|
27
|
+
rc-navigation-bar
|
|
28
|
+
> a
|
|
29
|
+
:where([data-rc-navigation-icon], [data-rc-navigation-indicator]) {
|
|
30
|
+
display: inline-grid;
|
|
31
|
+
place-items: center;
|
|
32
|
+
inline-size: 2.5rem;
|
|
33
|
+
block-size: 2.5rem;
|
|
34
|
+
border-radius: var(--rc-radius-pill, 9999px);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind))
|
|
38
|
+
rc-navigation-bar
|
|
39
|
+
> a[aria-current]:not([aria-current='false']) {
|
|
40
|
+
border-radius: var(--rc-radius-md, 0.5rem);
|
|
41
|
+
background: color-mix(in srgb, var(--rc-accent, Highlight) 12%, transparent);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-navigation-rail {
|
|
3
|
+
--rc-navigation-rail-bg: var(--rc-surface, Canvas);
|
|
4
|
+
--rc-navigation-rail-color: var(--rc-color, CanvasText);
|
|
5
|
+
--rc-navigation-rail-inline-size: 6rem;
|
|
6
|
+
--rc-navigation-rail-expanded-inline-size: 15rem;
|
|
7
|
+
--rc-navigation-rail-padding-block: 0.75rem;
|
|
8
|
+
--rc-navigation-rail-padding-inline: 0.5rem;
|
|
9
|
+
--rc-navigation-rail-gap: var(--rc-item-gap, 0.75rem);
|
|
10
|
+
--rc-navigation-rail-item-gap: var(--rc-item-gap, 0.75rem);
|
|
11
|
+
--rc-navigation-rail-link-gap: 0.25rem;
|
|
12
|
+
--rc-navigation-rail-item-min-block-size: 3.5rem;
|
|
13
|
+
--rc-navigation-rail-expanded-item-min-block-size: 3.5rem;
|
|
14
|
+
--rc-navigation-rail-item-padding-block: 0.25rem;
|
|
15
|
+
--rc-navigation-rail-item-padding-inline: 0.5rem;
|
|
16
|
+
--rc-navigation-rail-expanded-item-padding-inline: var(--rc-item-padding-inline, 1rem);
|
|
17
|
+
--rc-navigation-rail-item-color: var(--rc-muted-color, CanvasText);
|
|
18
|
+
--rc-navigation-rail-item-text-decoration: none;
|
|
19
|
+
--rc-navigation-rail-active-color: var(--rc-accent, Highlight);
|
|
20
|
+
--rc-navigation-rail-indicator-bg: transparent;
|
|
21
|
+
--rc-navigation-rail-indicator-border: 0;
|
|
22
|
+
--rc-navigation-rail-indicator-radius: 0;
|
|
23
|
+
--rc-navigation-rail-indicator-duration: 0ms;
|
|
24
|
+
--rc-navigation-rail-indicator-easing: ease;
|
|
25
|
+
--rc-icon-font-line-height: 2.5rem;
|
|
26
|
+
--rc-navigation-rail-toggle-size: 3rem;
|
|
27
|
+
--rc-navigation-rail-toggle-inline-offset: 0.5rem;
|
|
28
|
+
--rc-navigation-rail-duration: var(--rc-motion-duration, 200ms);
|
|
29
|
+
--rc-navigation-rail-easing: ease;
|
|
30
|
+
--rc-navigation-rail-focus-ring: var(--rc-focus-ring, 2px solid Highlight);
|
|
31
|
+
--rc-navigation-rail-focus-ring-offset: var(--rc-focus-ring-offset, 2px);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-navigation-rail > a {
|
|
35
|
+
inline-size: 100%;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind))
|
|
39
|
+
rc-navigation-rail
|
|
40
|
+
> a[aria-current]:not([aria-current='false']) {
|
|
41
|
+
border-radius: var(--rc-radius-md, 0.5rem);
|
|
42
|
+
background: color-mix(in srgb, var(--rc-accent, Highlight) 12%, transparent);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/*
|
|
46
|
+
* Size the icon itself (whether a direct `<a>` child or nested in
|
|
47
|
+
* [data-rc-navigation-indicator]) rather than the indicator wrapper, so the
|
|
48
|
+
* wrapper stays sized to its normal-flow content (icon + label) and the
|
|
49
|
+
* active-state background above wraps the whole item, not just the icon.
|
|
50
|
+
*/
|
|
51
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind))
|
|
52
|
+
rc-navigation-rail:not([expanded])
|
|
53
|
+
> a
|
|
54
|
+
[data-rc-navigation-icon] {
|
|
55
|
+
inline-size: 2.5rem;
|
|
56
|
+
block-size: 2.5rem;
|
|
57
|
+
border-radius: var(--rc-radius-pill, 9999px);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind))
|
|
61
|
+
rc-navigation-rail[expanded]
|
|
62
|
+
> a
|
|
63
|
+
> :where([data-rc-navigation-icon], [data-rc-navigation-indicator]) {
|
|
64
|
+
justify-content: flex-start;
|
|
65
|
+
gap: var(--rc-item-gap, 0.75rem);
|
|
66
|
+
inline-size: 100%;
|
|
67
|
+
block-size: 3.5rem;
|
|
68
|
+
padding-inline: var(--rc-item-padding-inline, 1rem);
|
|
69
|
+
box-sizing: border-box;
|
|
70
|
+
text-align: start;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-page-turner {
|
|
3
|
+
--rc-page-turner-color: var(--color-slate-950, CanvasText);
|
|
4
|
+
--rc-page-turner-duration: var(--rc-motion-spatial-duration-default, 400ms);
|
|
5
|
+
--rc-page-turner-easing: var(--rc-motion-spatial-easing-default, cubic-bezier(0.2, 0, 0, 1));
|
|
6
|
+
--rc-page-turner-page-back-background: var(--color-slate-50, Canvas);
|
|
7
|
+
--rc-page-turner-navigation-button-background: color-mix(
|
|
8
|
+
in srgb,
|
|
9
|
+
var(--color-slate-50, Canvas) 75%,
|
|
10
|
+
transparent
|
|
11
|
+
);
|
|
12
|
+
--rc-page-turner-navigation-button-color: var(--color-slate-950, CanvasText);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-page-turner-page {
|
|
16
|
+
--rc-page-turner-page-background: var(--color-slate-50, Canvas);
|
|
17
|
+
--rc-page-turner-page-color: var(--color-slate-950, CanvasText);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
/* Compact square page buttons with the current page on the primary container. */
|
|
3
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-pagination {
|
|
4
|
+
--rc-pagination-gap: 0.25rem;
|
|
5
|
+
--rc-pagination-item-min-inline-size: var(--tailwind-control-block-size, 2.25rem);
|
|
6
|
+
|
|
7
|
+
color: var(--tailwind-on-surface, CanvasText);
|
|
8
|
+
font-size: var(--tailwind-font-size, 0.95rem);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-pagination [data-rc-page] {
|
|
12
|
+
box-sizing: border-box;
|
|
13
|
+
min-block-size: var(--tailwind-control-block-size, 2.25rem);
|
|
14
|
+
padding-inline: 0.625rem;
|
|
15
|
+
border: 1px solid var(--tailwind-border-color, ButtonBorder);
|
|
16
|
+
border-radius: var(--tailwind-radius-md, 0.5rem);
|
|
17
|
+
background: var(--tailwind-surface-raised, ButtonFace);
|
|
18
|
+
color: inherit;
|
|
19
|
+
font: inherit;
|
|
20
|
+
text-decoration: none;
|
|
21
|
+
cursor: pointer;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-pagination [data-rc-page]:hover {
|
|
25
|
+
background: color-mix(
|
|
26
|
+
in srgb,
|
|
27
|
+
var(--tailwind-primary, Highlight) 8%,
|
|
28
|
+
var(--tailwind-surface-raised, ButtonFace)
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-pagination [data-rc-page]:focus-visible {
|
|
33
|
+
outline: var(--tailwind-focus-ring, 2px solid Highlight);
|
|
34
|
+
outline-offset: var(--tailwind-focus-ring-offset, 2px);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-pagination [aria-current='page'] {
|
|
38
|
+
border-color: var(--tailwind-primary, Highlight);
|
|
39
|
+
background: var(--tailwind-primary-container, Highlight);
|
|
40
|
+
color: var(--tailwind-on-primary-container, HighlightText);
|
|
41
|
+
font-weight: 600;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind))
|
|
45
|
+
rc-pagination
|
|
46
|
+
:is([data-rc-page]:disabled, [data-rc-page][aria-disabled='true']) {
|
|
47
|
+
opacity: var(--tailwind-disabled-opacity, 0.5);
|
|
48
|
+
cursor: default;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
/*
|
|
3
|
+
* The border, corner, and elevation come from the bridge's --rc-popup-*
|
|
4
|
+
* tokens. A popover sits on the raised surface like a menu, with item-scale
|
|
5
|
+
* padding. Declared on the theme root so popovers rendered inside other
|
|
6
|
+
* shadow roots inherit the same values.
|
|
7
|
+
*/
|
|
8
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) {
|
|
9
|
+
--rc-popover-background: var(--tailwind-surface-raised, Canvas);
|
|
10
|
+
--rc-popover-padding-block: var(--tailwind-item-padding-block, 0.55rem);
|
|
11
|
+
--rc-popover-padding-inline: var(--tailwind-item-padding-inline, 0.75rem);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-progress::part(value-display) {
|
|
3
|
+
color: var(--tailwind-on-surface-muted, GrayText);
|
|
4
|
+
font-variant-numeric: tabular-nums;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-progress {
|
|
8
|
+
--rc-progress-fill-transition-duration: var(--rc-motion-effects-duration-fast, 100ms);
|
|
9
|
+
--rc-progress-fill-transition-easing: var(--rc-motion-effects-easing-fast, ease-out);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-range-slider::part(thumb) {
|
|
3
|
+
box-shadow: var(--tailwind-shadow-sm, none);
|
|
4
|
+
transition:
|
|
5
|
+
border-color var(--rc-motion-duration, 160ms) var(--tailwind-motion-easing, ease),
|
|
6
|
+
box-shadow var(--rc-motion-duration, 160ms) var(--tailwind-motion-easing, ease),
|
|
7
|
+
scale var(--rc-motion-duration, 160ms) var(--tailwind-motion-easing, ease);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-range-slider::part(thumb):hover {
|
|
11
|
+
scale: 1.04;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-range-slider::part(value-display) {
|
|
15
|
+
color: var(--tailwind-on-surface-muted, GrayText);
|
|
16
|
+
font-variant-numeric: tabular-nums;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-scroller {
|
|
3
|
+
/*
|
|
4
|
+
* Capped a little narrower than Material's 1200px: Tailwind runs a smaller
|
|
5
|
+
* base font, so the same pixel width carries more characters per line.
|
|
6
|
+
*/
|
|
7
|
+
--rc-scroller-content-max-inline-size: 68rem;
|
|
8
|
+
--rc-scroller-content-padding-inline: var(--tailwind-item-padding-inline, 0.75rem);
|
|
9
|
+
--rc-scroller-content-row-gap: var(--tailwind-item-gap, 0.5rem);
|
|
10
|
+
|
|
11
|
+
--rc-scroller-scrollbar-width: thin;
|
|
12
|
+
--rc-scroller-scrollbar-color: color-mix(
|
|
13
|
+
in srgb,
|
|
14
|
+
var(--tailwind-on-surface-muted, GrayText) 45%,
|
|
15
|
+
transparent
|
|
16
|
+
)
|
|
17
|
+
transparent;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-search-bar {
|
|
3
|
+
display: inline-block;
|
|
4
|
+
--rc-search-bar-radius: var(--tailwind-radius-lg, 0.75rem);
|
|
5
|
+
--rc-search-bar-border: var(--rc-border, 1px solid ButtonBorder);
|
|
6
|
+
--rc-search-bar-shadow: var(--tailwind-shadow-sm, none);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-search-bar::part(root) {
|
|
10
|
+
background: var(--rc-field, Field);
|
|
11
|
+
transition:
|
|
12
|
+
border-color var(--rc-motion-duration, 160ms) var(--tailwind-motion-easing, ease),
|
|
13
|
+
box-shadow var(--rc-motion-duration, 160ms) var(--tailwind-motion-easing, ease);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-search-bar:hover::part(root) {
|
|
17
|
+
border-color: color-mix(in srgb, var(--rc-accent, Highlight) 55%, var(--rc-border-color));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-search-bar:focus-within::part(root) {
|
|
21
|
+
outline: var(--rc-focus-ring, 2px solid Highlight);
|
|
22
|
+
outline-offset: var(--rc-focus-ring-offset, 2px);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind))
|
|
26
|
+
rc-search-bar
|
|
27
|
+
> input[type='search']:focus-visible {
|
|
28
|
+
outline: none;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@layer rc-theme-tailwind.components {
|
|
2
|
+
:where(.rc-theme-tailwind, :host(.rc-theme-tailwind)) rc-segmented-button {
|
|
3
|
+
/* One switch turns on the component-owned segmented recipe. */
|
|
4
|
+
--rc-segmented-button-appearance: segmented;
|
|
5
|
+
--rc-segmented-button-border: var(--rc-border);
|
|
6
|
+
--rc-segmented-button-radius: var(--rc-control-radius);
|
|
7
|
+
--rc-segmented-button-divider: 0;
|
|
8
|
+
--rc-segmented-button-bg: var(--tailwind-surface-raised, ButtonFace);
|
|
9
|
+
--rc-segmented-button-color: var(--tailwind-on-surface, ButtonText);
|
|
10
|
+
--rc-segmented-button-selected-bg: var(--rc-highlight, Highlight);
|
|
11
|
+
--rc-segmented-button-selected-color: var(--rc-highlight-text, HighlightText);
|
|
12
|
+
--rc-segmented-button-segment-min-block-size: var(--rc-control-block-size, 2.5rem);
|
|
13
|
+
--rc-segmented-button-segment-padding-inline: var(--rc-control-padding-inline, 0.75rem);
|
|
14
|
+
--rc-segmented-button-segment-gap: 0.5em;
|
|
15
|
+
--rc-segmented-button-focus-ring: var(--rc-focus-ring);
|
|
16
|
+
--rc-segmented-button-focus-ring-offset: -2px;
|
|
17
|
+
--rc-segmented-button-disabled-opacity: var(--rc-disabled-opacity);
|
|
18
|
+
}
|
|
19
|
+
}
|