@fea-ui/styles 0.0.0-canary.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/README.md +3 -0
- package/package.json +54 -0
- package/src/components/accordion.css +50 -0
- package/src/components/alert-dialog.css +50 -0
- package/src/components/alert.css +46 -0
- package/src/components/avatar.css +24 -0
- package/src/components/button-group.css +16 -0
- package/src/components/button.css +78 -0
- package/src/components/card.css +36 -0
- package/src/components/checkbox-group.css +4 -0
- package/src/components/checkbox.css +32 -0
- package/src/components/chip.css +40 -0
- package/src/components/container.css +4 -0
- package/src/components/dialog.css +50 -0
- package/src/components/drawer.css +84 -0
- package/src/components/field.css +12 -0
- package/src/components/fieldset.css +9 -0
- package/src/components/form.css +4 -0
- package/src/components/index.css +34 -0
- package/src/components/input.css +35 -0
- package/src/components/label.css +8 -0
- package/src/components/link.css +35 -0
- package/src/components/list.css +8 -0
- package/src/components/menu.css +48 -0
- package/src/components/meter.css +72 -0
- package/src/components/navbar.css +36 -0
- package/src/components/popover.css +51 -0
- package/src/components/progress.css +72 -0
- package/src/components/radio.css +31 -0
- package/src/components/separator.css +12 -0
- package/src/components/sidebar.css +80 -0
- package/src/components/slider.css +25 -0
- package/src/components/switch.css +40 -0
- package/src/components/table.css +32 -0
- package/src/components/tabs.css +49 -0
- package/src/components/text.css +4 -0
- package/src/components/toggle-button.css +8 -0
- package/src/styles.css +125 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** Base Styling */
|
|
2
|
+
.link {
|
|
3
|
+
@apply text-link underline-offset-2 inline-flex items-center;
|
|
4
|
+
|
|
5
|
+
@apply transition-[color] motion-reduce:transition-none;
|
|
6
|
+
|
|
7
|
+
&:visited {
|
|
8
|
+
@apply text-link/70;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
&:hover {
|
|
12
|
+
@apply text-link/80;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&[data-active] {
|
|
16
|
+
@apply font-semibold;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&:disabled,
|
|
20
|
+
[data-disabled] {
|
|
21
|
+
@apply text-muted cursor-not-allowed;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
svg {
|
|
25
|
+
@apply size-4 text-muted-foreground;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.link--underline {
|
|
30
|
+
@apply underline;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.link--no-underline {
|
|
34
|
+
@apply no-underline;
|
|
35
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
.menu__positioner {
|
|
2
|
+
@apply outline-0;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.menu__popup {
|
|
6
|
+
@apply p-3 rounded;
|
|
7
|
+
|
|
8
|
+
@apply bg-overlay text-overlay-foreground shadow;
|
|
9
|
+
|
|
10
|
+
@apply transition-[transform,scale] motion-reduce:transition-none;
|
|
11
|
+
|
|
12
|
+
&[data-starting-style],
|
|
13
|
+
&[data-ending-style] {
|
|
14
|
+
@apply opacity-0 scale-90;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.menu__arrow {
|
|
19
|
+
@apply flex text-overlay size-6;
|
|
20
|
+
|
|
21
|
+
&[data-side="top"] {
|
|
22
|
+
@apply -bottom-3 rotate-180;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&[data-side="right"] {
|
|
26
|
+
@apply -start-3 rotate-90;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&[data-side="bottom"] {
|
|
30
|
+
@apply -top-3;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&[data-side="left"] {
|
|
34
|
+
@apply -end-3 -rotate-90;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.menu__item {
|
|
39
|
+
@apply select-none relative flex items-center px-3 py-2 rounded text-sm leading-none cursor-pointer;
|
|
40
|
+
|
|
41
|
+
&:focus {
|
|
42
|
+
@apply outline-none bg-secondary text-secondary-foreground;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.menu__separator {
|
|
47
|
+
@apply my-2 h-px bg-border;
|
|
48
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/** Base Styling */
|
|
2
|
+
.meter {
|
|
3
|
+
@apply grid grid-cols-2 items-center gap-1;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.meter__label {
|
|
7
|
+
@apply font-medium;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.meter__value {
|
|
11
|
+
@apply col-start-2 m-0 text-right text-sm leading-5;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.meter__track {
|
|
15
|
+
@apply col-span-2 block w-48 overflow-hidden rounded shadow-inner;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.meter__indicator {
|
|
19
|
+
@apply block rounded;
|
|
20
|
+
|
|
21
|
+
@apply transition-[width] motion-reduce:transition-none;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Variants */
|
|
25
|
+
.meter--primary .meter__track {
|
|
26
|
+
@apply bg-primary/10;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.meter--primary .meter__indicator {
|
|
30
|
+
@apply bg-primary;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.meter--secondary .meter__track {
|
|
34
|
+
@apply bg-secondary/10;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.meter--secondary .meter__indicator {
|
|
38
|
+
@apply bg-secondary;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.meter--success .meter__track {
|
|
42
|
+
@apply bg-success/10;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.meter--success .meter__indicator {
|
|
46
|
+
@apply bg-success;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.meter--danger .meter__track {
|
|
50
|
+
@apply bg-danger/10;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.meter--danger .meter__indicator {
|
|
54
|
+
@apply bg-danger;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** Sizes */
|
|
58
|
+
.meter--sm .meter__track {
|
|
59
|
+
@apply h-2;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.meter--sm .meter__label {
|
|
63
|
+
@apply text-sm;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.meter--md .meter__track {
|
|
67
|
+
@apply h-3;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.meter--lg .meter__track {
|
|
71
|
+
@apply h-4;
|
|
72
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Base Styling */
|
|
2
|
+
.navbar {
|
|
3
|
+
@apply bg-surface/50 border-border relative z-50 flex h-(--navbar-height) w-full items-center justify-between border-b px-4 py-2;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.navbar__container {
|
|
7
|
+
@apply mx-auto flex w-full max-w-7xl items-center justify-between;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.navbar__content {
|
|
11
|
+
@apply flex items-center gap-2;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.navbar__toggle {
|
|
15
|
+
@apply md:hidden;
|
|
16
|
+
|
|
17
|
+
svg {
|
|
18
|
+
@apply size-5 me-2;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.navbar__list {
|
|
23
|
+
@apply flex items-center gap-4;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.navbar__list-item {
|
|
27
|
+
@apply list-none;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.navbar__menu {
|
|
31
|
+
@apply flex flex-col gap-1;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.navbar__menu-item {
|
|
35
|
+
@apply w-full list-none px-4 py-2;
|
|
36
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
.popover__positioner {
|
|
2
|
+
width: var(--positioner-width);
|
|
3
|
+
max-width: var(--available-width);
|
|
4
|
+
height: var(--positioner-height);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.popover__popup {
|
|
8
|
+
@apply px-3 py-2 rounded relative;
|
|
9
|
+
|
|
10
|
+
@apply bg-overlay text-overlay-foreground shadow;
|
|
11
|
+
|
|
12
|
+
@apply transition-[transform,scale] motion-reduce:transition-none;
|
|
13
|
+
|
|
14
|
+
&[data-starting-style],
|
|
15
|
+
&[data-ending-style] {
|
|
16
|
+
@apply opacity-0 scale-90;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.popover__arrow {
|
|
21
|
+
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
|
|
22
|
+
@apply size-4 bg-overlay absolute z-50 border-border;
|
|
23
|
+
|
|
24
|
+
&[data-side="top"] {
|
|
25
|
+
@apply -bottom-2 rotate-180;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&[data-side="right"] {
|
|
29
|
+
@apply -start-3 rotate-90;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&[data-side="bottom"] {
|
|
33
|
+
@apply -top-2;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&[data-side="left"] {
|
|
37
|
+
@apply -end-3 -rotate-90;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.popover__title {
|
|
42
|
+
@apply font-medium;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.popover__description {
|
|
46
|
+
@apply text-sm text-muted-foreground;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.popover__close {
|
|
50
|
+
@apply absolute top-0 end-0 m-1;
|
|
51
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/** Base Styling */
|
|
2
|
+
.progress {
|
|
3
|
+
@apply grid grid-cols-2 items-center gap-1;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.progress__label {
|
|
7
|
+
@apply font-medium;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.progress__value {
|
|
11
|
+
@apply col-start-2 m-0 text-right text-sm leading-5;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.progress__track {
|
|
15
|
+
@apply col-span-2 block w-48 overflow-hidden rounded shadow-inner;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.progress__indicator {
|
|
19
|
+
@apply block rounded;
|
|
20
|
+
|
|
21
|
+
@apply transition-[width] motion-reduce:transition-none;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Variants */
|
|
25
|
+
.progress--primary .progress__track {
|
|
26
|
+
@apply bg-primary/10;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.progress--primary .progress__indicator {
|
|
30
|
+
@apply bg-primary;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.progress--secondary .progress__track {
|
|
34
|
+
@apply bg-secondary/10;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.progress--secondary .progress__indicator {
|
|
38
|
+
@apply bg-secondary;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.progress--success .progress__track {
|
|
42
|
+
@apply bg-success/10;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.progress--success .progress__indicator {
|
|
46
|
+
@apply bg-success;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.progress--danger .progress__track {
|
|
50
|
+
@apply bg-danger/10;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.progress--danger .progress__indicator {
|
|
54
|
+
@apply bg-danger;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** Sizes */
|
|
58
|
+
.progress--sm .progress__track {
|
|
59
|
+
@apply h-2;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.progress--sm .progress__label {
|
|
63
|
+
@apply text-sm;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.progress--md .progress__track {
|
|
67
|
+
@apply h-3;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.progress--lg .progress__track {
|
|
71
|
+
@apply h-4;
|
|
72
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
.radio__group {
|
|
2
|
+
@apply flex flex-col gap-4;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.radio {
|
|
6
|
+
@apply flex size-5 items-center justify-center rounded-full;
|
|
7
|
+
|
|
8
|
+
&[data-unchecked] {
|
|
9
|
+
@apply border-border bg-secondary;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&[data-checked] {
|
|
13
|
+
@apply border-primary bg-primary;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&:focus-visible {
|
|
17
|
+
@apply status-focused;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.radio__indicator {
|
|
22
|
+
@apply flex items-center justify-center;
|
|
23
|
+
|
|
24
|
+
&[data-unchecked] {
|
|
25
|
+
@apply hidden;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&::before {
|
|
29
|
+
@apply block size-2 rounded-full bg-background content-[''];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
.sidebar {
|
|
2
|
+
@apply flex h-full w-full;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.sidebar__panel {
|
|
6
|
+
@apply fixed top-0 left-0 h-full w-64;
|
|
7
|
+
|
|
8
|
+
@apply flex flex-col;
|
|
9
|
+
|
|
10
|
+
@apply bg-surface shadow-lg text-surface-foreground;
|
|
11
|
+
|
|
12
|
+
@apply transition-transform duration-300 ease-in-out motion-reduce:transition-none;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.sidebar__header {
|
|
16
|
+
@apply flex items-center justify-between gap-3 p-4;
|
|
17
|
+
@apply border-b;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.sidebar__content {
|
|
21
|
+
@apply flex-1 p-4;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.sidebar__footer {
|
|
25
|
+
@apply border-t;
|
|
26
|
+
@apply p-4;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.sidebar__outlet {
|
|
30
|
+
@apply md:ml-64;
|
|
31
|
+
|
|
32
|
+
@apply transition-[margin] duration-300 ease-in-out motion-reduce:transition-none;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.sidebar__menu {
|
|
36
|
+
@apply flex flex-col gap-1;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.sidebar__menu-item {
|
|
40
|
+
@apply cursor-pointer;
|
|
41
|
+
@apply flex items-center gap-3 rounded px-3 py-2;
|
|
42
|
+
@apply text-foreground hover-safe:bg-primary/10 hover-safe:text-primary;
|
|
43
|
+
|
|
44
|
+
@apply transition-[background-color,color] motion-reduce:transition-none;
|
|
45
|
+
|
|
46
|
+
&.active {
|
|
47
|
+
@apply bg-primary/20 text-primary;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.sidebar__menu-label {
|
|
52
|
+
@apply py-2;
|
|
53
|
+
@apply text-sm font-medium text-muted-foreground;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* State
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
[data-open="false"] {
|
|
61
|
+
.sidebar__panel {
|
|
62
|
+
@apply -translate-x-full;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.sidebar__outlet {
|
|
66
|
+
@apply ml-0;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.sidebar__trigger {
|
|
71
|
+
@apply cursor-pointer;
|
|
72
|
+
@apply size-8 flex items-center justify-center;
|
|
73
|
+
@apply rounded border-border text-muted-foreground hover-safe:text-foreground;
|
|
74
|
+
|
|
75
|
+
@apply transition-[color] motion-reduce:transition-none;
|
|
76
|
+
|
|
77
|
+
:focus-visible {
|
|
78
|
+
@apply status-focused;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
.slider__control {
|
|
2
|
+
@apply flex w-full touch-none select-none items-center py-3;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.slider__track {
|
|
6
|
+
@apply relative h-1 w-full rounded bg-secondary shadow-inner shadow-secondary select-none;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.slider__indicator {
|
|
10
|
+
@apply absolute rounded bg-primary select-none;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.slider__thumb {
|
|
14
|
+
@apply size-4 rounded-full bg-primary outline outline-border select-none;
|
|
15
|
+
|
|
16
|
+
@apply transition-[box-shadow,transform,outline] motion-reduce:transition-none;
|
|
17
|
+
|
|
18
|
+
&:focus-visible {
|
|
19
|
+
@apply status-focused;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&:active {
|
|
23
|
+
@apply scale-90;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** Base Styling */
|
|
2
|
+
.switch {
|
|
3
|
+
@apply cursor-pointer;
|
|
4
|
+
|
|
5
|
+
@apply bg-primary/10 relative flex cursor-pointer rounded-full border-2;
|
|
6
|
+
|
|
7
|
+
&[data-checked] {
|
|
8
|
+
@apply bg-primary/30;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
&:focus-visible {
|
|
12
|
+
@apply status-focused;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&[data-disabled] {
|
|
16
|
+
@apply status-disabled;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.switch__thumb {
|
|
21
|
+
@apply bg-primary aspect-square h-full rounded-full shadow;
|
|
22
|
+
|
|
23
|
+
@apply transition-[translate] motion-reduce:transition-none;
|
|
24
|
+
|
|
25
|
+
&[data-checked] {
|
|
26
|
+
@apply translate-x-full;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.switch--sm {
|
|
31
|
+
@apply h-4 w-7;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.switch--md {
|
|
35
|
+
@apply h-6 w-10;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.switch--lg {
|
|
39
|
+
@apply h-8 w-14;
|
|
40
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** Base Styling */
|
|
2
|
+
.table {
|
|
3
|
+
@apply w-full border-collapse bg-surface text-surface-foreground;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.table__thead {
|
|
7
|
+
@apply bg-secondary text-secondary-foreground;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.table__th {
|
|
11
|
+
@apply border-border px-4 py-2 text-left font-medium;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.table__tbody {
|
|
15
|
+
@apply divide-y divide-border;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.table__tr {
|
|
19
|
+
@apply cursor-pointer;
|
|
20
|
+
|
|
21
|
+
&:hover {
|
|
22
|
+
@apply bg-secondary/50;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.table__td {
|
|
27
|
+
@apply border-border px-4 py-2;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.table__caption {
|
|
31
|
+
@apply mt-2 text-sm text-secondary-foreground;
|
|
32
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** Base Styling */
|
|
2
|
+
.tabs {
|
|
3
|
+
@apply bg-surface/50 text-secondary-foreground rounded border;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.tabs__list {
|
|
7
|
+
@apply bg-surface relative z-0 flex gap-1 rounded-t border-b px-1;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.tabs__tab {
|
|
11
|
+
@apply m-0 flex appearance-none items-center justify-center border-0 bg-transparent outline-none;
|
|
12
|
+
@apply text-muted-foreground break-keep whitespace-nowrap select-none hover-safe:text-foreground;
|
|
13
|
+
@apply h-8 px-2 py-0;
|
|
14
|
+
|
|
15
|
+
&[data-active] {
|
|
16
|
+
@apply text-foreground;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@media (hover: hover) {
|
|
20
|
+
&:hover {
|
|
21
|
+
@apply text-foreground;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&:focus-visible {
|
|
26
|
+
@apply relative;
|
|
27
|
+
|
|
28
|
+
&::before {
|
|
29
|
+
content: "";
|
|
30
|
+
@apply outline-primary absolute inset-x-0 inset-y-1 rounded outline-2 -outline-offset-1;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.tabs__indicator {
|
|
36
|
+
width: var(--active-tab-width);
|
|
37
|
+
|
|
38
|
+
translate: var(--active-tab-left) -50%;
|
|
39
|
+
@apply bg-primary absolute bottom-0 left-0 -z-10 h-px;
|
|
40
|
+
@apply transition-[translate,width] motion-reduce:transition-none;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.tabs__panel {
|
|
44
|
+
@apply relative flex h-32 items-center justify-center outline-none;
|
|
45
|
+
|
|
46
|
+
&:focus-visible {
|
|
47
|
+
@apply status-focused;
|
|
48
|
+
}
|
|
49
|
+
}
|