@fea-ui/styles 0.0.3 → 0.0.4

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.
Files changed (47) hide show
  1. package/package.json +22 -20
  2. package/src/components/accordion.css +25 -25
  3. package/src/components/alert-dialog.css +25 -25
  4. package/src/components/alert.css +14 -14
  5. package/src/components/autocomplete.css +24 -24
  6. package/src/components/avatar.css +6 -6
  7. package/src/components/button-group.css +8 -8
  8. package/src/components/button.css +33 -33
  9. package/src/components/card.css +8 -8
  10. package/src/components/checkbox-group.css +1 -1
  11. package/src/components/checkbox.css +19 -19
  12. package/src/components/chip.css +10 -10
  13. package/src/components/collapsible.css +20 -20
  14. package/src/components/combobox.css +25 -25
  15. package/src/components/container.css +1 -1
  16. package/src/components/context-menu.css +14 -14
  17. package/src/components/dialog.css +25 -25
  18. package/src/components/drawer.css +41 -41
  19. package/src/components/field.css +3 -3
  20. package/src/components/fieldset.css +3 -3
  21. package/src/components/form.css +1 -1
  22. package/src/components/input.css +18 -18
  23. package/src/components/label.css +3 -3
  24. package/src/components/link.css +8 -8
  25. package/src/components/list.css +1 -1
  26. package/src/components/menu.css +26 -26
  27. package/src/components/meter.css +18 -18
  28. package/src/components/navbar.css +11 -11
  29. package/src/components/navigation-menu.css +22 -22
  30. package/src/components/number-field.css +23 -23
  31. package/src/components/popover.css +27 -27
  32. package/src/components/preview-card.css +8 -8
  33. package/src/components/progress.css +18 -18
  34. package/src/components/radio.css +18 -18
  35. package/src/components/scroll-area.css +1 -1
  36. package/src/components/select.css +36 -36
  37. package/src/components/separator.css +3 -3
  38. package/src/components/sidebar.css +28 -28
  39. package/src/components/slider.css +11 -11
  40. package/src/components/spinner.css +8 -8
  41. package/src/components/switch.css +19 -19
  42. package/src/components/table.css +10 -10
  43. package/src/components/tabs.css +26 -26
  44. package/src/components/text.css +1 -1
  45. package/src/components/toggle-button.css +4 -4
  46. package/src/components/tooltip.css +26 -26
  47. package/src/styles.css +96 -96
package/package.json CHANGED
@@ -1,52 +1,54 @@
1
1
  {
2
2
  "name": "@fea-ui/styles",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "FeaUI Styles - Tailwind CSS styles for FeaUI components",
5
5
  "keywords": [
6
- "fea-ui",
7
- "ui",
8
- "design-system",
9
- "tailwind",
10
6
  "components",
7
+ "design-system",
8
+ "fea-ui",
9
+ "react",
11
10
  "styles",
12
- "react"
11
+ "tailwind",
12
+ "ui"
13
13
  ],
14
14
  "homepage": "https://ui.aydinthefirst.com",
15
15
  "bugs": {
16
16
  "url": "https://github.com/aydinthefirst/fea-ui/issues"
17
17
  },
18
+ "license": "MIT",
19
+ "author": "Halil Aydın <aydinhalil980@gmail.com>",
18
20
  "repository": {
19
21
  "type": "git",
20
22
  "url": "git+https://github.com/aydinthefirst/fea-ui.git",
21
23
  "directory": "packages/styles"
22
24
  },
23
- "license": "MIT",
24
- "author": "Halil Aydın <aydinhalil980@gmail.com>",
25
- "sideEffects": false,
25
+ "files": [
26
+ "src"
27
+ ],
26
28
  "type": "module",
29
+ "sideEffects": false,
27
30
  "exports": {
28
31
  ".": {
29
32
  "style": "./src/styles.css",
30
33
  "default": "./src/styles.css"
31
34
  }
32
35
  },
33
- "files": [
34
- "src"
35
- ],
36
+ "publishConfig": {
37
+ "access": "public"
38
+ },
36
39
  "scripts": {
37
40
  "build:css": "bunx @tailwindcss/cli -i src/styles.css -o dist/index.css --minify",
38
- "check": "biome check --write",
39
- "gen:exports": "bun run scripts/gen-exports.mjs"
41
+ "format": "oxfmt",
42
+ "gen:exports": "bun run scripts/gen-exports.mjs",
43
+ "lint": "oxlint"
40
44
  },
41
45
  "devDependencies": {
42
- "@biomejs/biome": "2.3.10",
43
- "tailwindcss": "^4.1.18",
44
- "@types/bun": "^1.3.5"
46
+ "@types/bun": "^1.3.5",
47
+ "oxfmt": "^0.24.0",
48
+ "oxlint": "^1.39.0",
49
+ "tailwindcss": "^4.1.18"
45
50
  },
46
51
  "peerDependencies": {
47
52
  "tailwindcss": ">=4.0.0"
48
- },
49
- "publishConfig": {
50
- "access": "public"
51
53
  }
52
54
  }
@@ -1,49 +1,49 @@
1
1
  .accordion {
2
- @apply flex w-full max-w-md flex-col justify-center;
3
- @apply shadow bg-surface/10;
2
+ @apply flex w-full max-w-md flex-col justify-center;
3
+ @apply bg-surface/10 shadow;
4
4
  }
5
5
 
6
6
  .accordion__trigger {
7
- @apply cursor-pointer;
7
+ @apply cursor-pointer;
8
8
 
9
- @apply bg-surface border-b px-3 py-2 text-left font-medium;
9
+ @apply bg-surface border-b px-3 py-2 text-left font-medium;
10
10
 
11
- @apply flex w-full items-center justify-between;
11
+ @apply flex w-full items-center justify-between;
12
12
 
13
- @apply transition-colors motion-reduce:transition-none;
13
+ @apply transition-colors motion-reduce:transition-none;
14
14
 
15
- &:hover {
16
- @apply bg-primary/10;
17
- }
15
+ &:hover {
16
+ @apply bg-primary/10;
17
+ }
18
18
 
19
- &:focus {
20
- @apply outline-none;
21
- }
19
+ &:focus {
20
+ @apply outline-none;
21
+ }
22
22
  }
23
23
 
24
24
  .accordion__trigger-icon {
25
- @apply text-muted-foreground size-5;
25
+ @apply text-muted-foreground size-5;
26
26
 
27
- @apply transition-transform duration-300 motion-reduce:transition-none;
27
+ @apply transition-transform duration-300 motion-reduce:transition-none;
28
28
 
29
- [data-panel-open] > & {
30
- @apply rotate-180;
31
- }
29
+ [data-panel-open] > & {
30
+ @apply rotate-180;
31
+ }
32
32
  }
33
33
 
34
34
  .accordion__panel {
35
- height: var(--accordion-panel-height);
35
+ height: var(--accordion-panel-height);
36
36
 
37
- @apply overflow-hidden;
37
+ @apply overflow-hidden;
38
38
 
39
- @apply transition-[height] motion-reduce:transition-none;
39
+ @apply transition-[height] motion-reduce:transition-none;
40
40
 
41
- &[data-ending-style],
42
- &[data-starting-style] {
43
- @apply h-0;
44
- }
41
+ &[data-ending-style],
42
+ &[data-starting-style] {
43
+ @apply h-0;
44
+ }
45
45
  }
46
46
 
47
47
  .accordion__content {
48
- @apply p-4;
48
+ @apply p-4;
49
49
  }
@@ -1,50 +1,50 @@
1
1
  /** Base Styling */
2
2
  .alert-dialog__backdrop {
3
- @apply fixed inset-0 bg-black/50 opacity-20 backdrop-blur-sm;
3
+ @apply fixed inset-0 bg-black/50 opacity-20 backdrop-blur-sm;
4
4
 
5
- @apply transition-opacity motion-reduce:transition-none;
5
+ @apply transition-opacity motion-reduce:transition-none;
6
6
 
7
- &[data-starting-style],
8
- &[data-ending-style] {
9
- @apply opacity-0;
10
- }
7
+ &[data-starting-style],
8
+ &[data-ending-style] {
9
+ @apply opacity-0;
10
+ }
11
11
  }
12
12
 
13
13
  .alert-dialog__popup {
14
- @apply bg-surface rounded border p-6 shadow text-surface-foreground;
14
+ @apply bg-surface text-surface-foreground rounded border p-6 shadow;
15
15
 
16
- @apply w-96 max-w-[calc(100vw-1rem)];
16
+ @apply w-96 max-w-[calc(100vw-1rem)];
17
17
 
18
- @apply fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2;
18
+ @apply fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2;
19
19
 
20
- @apply transition-[scale,opacity] motion-reduce:transition-none;
20
+ @apply transition-[scale,opacity] motion-reduce:transition-none;
21
21
 
22
- &[data-starting-style],
23
- &[data-ending-style] {
24
- @apply scale-95 opacity-0;
25
- }
22
+ &[data-starting-style],
23
+ &[data-ending-style] {
24
+ @apply scale-95 opacity-0;
25
+ }
26
26
  }
27
27
 
28
28
  .alert-dialog__title {
29
- @apply text-lg font-semibold;
29
+ @apply text-lg font-semibold;
30
30
  }
31
31
 
32
32
  .alert-dialog__description {
33
- @apply text-muted-foreground text-sm;
33
+ @apply text-muted-foreground text-sm;
34
34
  }
35
35
 
36
36
  .alert-dialog__close {
37
- @apply cursor-pointer;
37
+ @apply cursor-pointer;
38
38
 
39
- @apply absolute top-0 right-0 m-2;
39
+ @apply absolute top-0 right-0 m-2;
40
40
 
41
- svg {
42
- @apply text-muted-foreground size-5;
41
+ svg {
42
+ @apply text-muted-foreground size-5;
43
43
 
44
- @apply transition-colors motion-reduce:transition-none;
44
+ @apply transition-colors motion-reduce:transition-none;
45
45
 
46
- &:hover {
47
- @apply text-foreground;
48
- }
49
- }
46
+ &:hover {
47
+ @apply text-foreground;
48
+ }
49
+ }
50
50
  }
@@ -1,46 +1,46 @@
1
1
  .alert {
2
- @apply flex items-start justify-between p-5 rounded border bg-surface/10 shadow;
2
+ @apply bg-surface/10 flex items-start justify-between rounded border p-5 shadow;
3
3
 
4
- @apply w-full;
4
+ @apply w-full;
5
5
  }
6
6
 
7
7
  .alert__indicator {
8
- @apply shrink-0 mr-4 mt-1;
8
+ @apply mt-1 mr-4 shrink-0;
9
9
 
10
- svg {
11
- @apply size-5;
12
- }
10
+ svg {
11
+ @apply size-5;
12
+ }
13
13
  }
14
14
 
15
15
  .alert__content {
16
- @apply flex-1 flex flex-col gap-1;
16
+ @apply flex flex-1 flex-col gap-1;
17
17
  }
18
18
 
19
19
  .alert__title {
20
- @apply font-medium;
20
+ @apply font-medium;
21
21
  }
22
22
 
23
23
  .alert__description {
24
- @apply text-sm text-muted-foreground;
24
+ @apply text-muted-foreground text-sm;
25
25
  }
26
26
 
27
27
  /* Variants */
28
28
  .alert--primary {
29
- @apply text-primary;
29
+ @apply text-primary;
30
30
  }
31
31
 
32
32
  .alert--danger {
33
- @apply text-red-500;
33
+ @apply text-red-500;
34
34
  }
35
35
 
36
36
  .alert--success {
37
- @apply text-green-500;
37
+ @apply text-green-500;
38
38
  }
39
39
 
40
40
  .alert--warning {
41
- @apply text-yellow-500;
41
+ @apply text-yellow-500;
42
42
  }
43
43
 
44
44
  .alert--info {
45
- @apply text-blue-500;
45
+ @apply text-blue-500;
46
46
  }
@@ -1,52 +1,52 @@
1
1
  .autocomplete__input {
2
- @apply bg-input text-input-foreground hover-safe:bg-input/80 rounded border shadow;
3
- @apply px-3 py-2 w-fit h-10;
2
+ @apply bg-input text-input-foreground hover-safe:bg-input/80 rounded border shadow;
3
+ @apply h-10 w-fit px-3 py-2;
4
4
 
5
- &::placeholder {
6
- @apply text-muted-foreground;
7
- }
5
+ &::placeholder {
6
+ @apply text-muted-foreground;
7
+ }
8
8
 
9
- &:focus-visible {
10
- @apply status-focused;
11
- }
9
+ &:focus-visible {
10
+ @apply status-focused;
11
+ }
12
12
  }
13
13
 
14
14
  .autocomplete__positioner {
15
- @apply outline-0;
15
+ @apply outline-0;
16
16
  }
17
17
 
18
18
  .autocomplete__popup {
19
- width: var(--anchor-width);
20
- max-width: var(--available-width);
19
+ width: var(--anchor-width);
20
+ max-width: var(--available-width);
21
21
 
22
- @apply bg-surface text-surface-foreground rounded border shadow;
22
+ @apply bg-surface text-surface-foreground rounded border shadow;
23
23
 
24
- @apply px-3 py-2;
24
+ @apply px-3 py-2;
25
25
 
26
- @apply transition-[scale,opacity] motion-reduce:transition-none;
26
+ @apply transition-[scale,opacity] motion-reduce:transition-none;
27
27
 
28
- &[data-starting-style],
29
- &[data-ending-style] {
30
- @apply scale-95 opacity-0;
31
- }
28
+ &[data-starting-style],
29
+ &[data-ending-style] {
30
+ @apply scale-95 opacity-0;
31
+ }
32
32
  }
33
33
 
34
34
  .autocomplete__list {
35
- @apply max-h-56 overflow-y-auto overscroll-contain scroll-p-2;
35
+ @apply max-h-56 scroll-p-2 overflow-y-auto overscroll-contain;
36
36
  }
37
37
 
38
38
  .autocomplete__item {
39
- @apply cursor-pointer;
39
+ @apply cursor-pointer;
40
40
 
41
- @apply hover-safe:bg-primary hover-safe:text-primary-foreground;
41
+ @apply hover-safe:bg-primary hover-safe:text-primary-foreground;
42
42
 
43
- @apply px-2 py-1 rounded;
43
+ @apply rounded px-2 py-1;
44
44
  }
45
45
 
46
46
  .autocomplete__separator {
47
- @apply h-px bg-border my-2;
47
+ @apply bg-border my-2 h-px;
48
48
  }
49
49
 
50
50
  .autocomplete__empty {
51
- @apply px-2 py-1 text-sm text-muted-foreground;
51
+ @apply text-muted-foreground px-2 py-1 text-sm;
52
52
  }
@@ -1,24 +1,24 @@
1
1
  /** Base Styling */
2
2
  .avatar {
3
- @apply bg-secondary text-secondary-foreground inline-flex items-center justify-center overflow-hidden rounded-full align-middle select-none;
3
+ @apply bg-secondary text-secondary-foreground inline-flex items-center justify-center overflow-hidden rounded-full align-middle select-none;
4
4
  }
5
5
 
6
6
  .avatar--sm {
7
- @apply size-10;
7
+ @apply size-10;
8
8
  }
9
9
 
10
10
  .avatar--md {
11
- @apply size-12;
11
+ @apply size-12;
12
12
  }
13
13
 
14
14
  .avatar--lg {
15
- @apply size-14;
15
+ @apply size-14;
16
16
  }
17
17
 
18
18
  .avatar__image {
19
- @apply h-full w-full object-cover;
19
+ @apply h-full w-full object-cover;
20
20
  }
21
21
 
22
22
  .avatar__fallback {
23
- @apply flex h-full w-full items-center justify-center;
23
+ @apply flex h-full w-full items-center justify-center;
24
24
  }
@@ -1,16 +1,16 @@
1
1
  /** Base Styling */
2
2
  .button-group {
3
- @apply inline-flex items-center;
3
+ @apply inline-flex items-center;
4
4
  }
5
5
 
6
6
  .button-group .button {
7
- @apply rounded-none;
7
+ @apply rounded-none;
8
8
 
9
- &:first-child {
10
- @apply rounded-l;
11
- }
9
+ &:first-child {
10
+ @apply rounded-l;
11
+ }
12
12
 
13
- &:last-child {
14
- @apply rounded-r;
15
- }
13
+ &:last-child {
14
+ @apply rounded-r;
15
+ }
16
16
  }
@@ -1,78 +1,78 @@
1
1
  /** Base Styling */
2
2
  .button {
3
- @apply cursor-pointer;
3
+ @apply cursor-pointer;
4
4
 
5
- @apply inline-flex items-center justify-center gap-2 rounded border font-medium text-nowrap;
5
+ @apply inline-flex items-center justify-center gap-2 rounded border font-medium text-nowrap;
6
6
 
7
- @apply w-fit px-3 py-2;
7
+ @apply w-fit px-3 py-2;
8
8
 
9
- @apply transition-[scale,background-color] motion-reduce:transition-none;
9
+ @apply transition-[scale,background-color] motion-reduce:transition-none;
10
10
 
11
- &[data-focused] {
12
- @apply status-focused;
13
- }
11
+ &[data-focused] {
12
+ @apply status-focused;
13
+ }
14
14
 
15
- &:active {
16
- @apply scale-95;
17
- }
15
+ &:active {
16
+ @apply scale-95;
17
+ }
18
18
 
19
- &[data-disabled] {
20
- @apply status-disabled;
21
- }
19
+ &[data-disabled] {
20
+ @apply status-disabled;
21
+ }
22
22
 
23
- &[data-pending] {
24
- @apply status-pending;
25
- }
23
+ &[data-pending] {
24
+ @apply status-pending;
25
+ }
26
26
 
27
- svg {
28
- @apply size-5 shrink-0;
29
- }
27
+ svg {
28
+ @apply size-5 shrink-0;
29
+ }
30
30
  }
31
31
 
32
32
  .button--sm {
33
- @apply h-8 text-sm;
33
+ @apply h-8 text-sm;
34
34
 
35
- svg {
36
- @apply size-4;
37
- }
35
+ svg {
36
+ @apply size-4;
37
+ }
38
38
  }
39
39
 
40
40
  .button--md {
41
- @apply h-10;
41
+ @apply h-10;
42
42
  }
43
43
 
44
44
  .button--lg {
45
- @apply h-12;
45
+ @apply h-12;
46
46
  }
47
47
 
48
48
  .button--primary {
49
- @apply bg-primary text-primary-foreground hover-safe:bg-primary/90;
49
+ @apply bg-primary text-primary-foreground hover-safe:bg-primary/90;
50
50
  }
51
51
 
52
52
  .button--secondary {
53
- @apply bg-secondary text-secondary-foreground hover-safe:bg-secondary/90;
53
+ @apply bg-secondary text-secondary-foreground hover-safe:bg-secondary/90;
54
54
  }
55
55
 
56
56
  .button--outline {
57
- @apply bg-background text-foreground hover-safe:bg-secondary;
57
+ @apply bg-background text-foreground hover-safe:bg-secondary;
58
58
  }
59
59
 
60
60
  .button--danger {
61
- @apply bg-danger text-danger-foreground hover-safe:bg-danger/90;
61
+ @apply bg-danger text-danger-foreground hover-safe:bg-danger/90;
62
62
  }
63
63
 
64
64
  .button--ghost {
65
- @apply border-0 bg-transparent text-foreground hover-safe:bg-secondary;
65
+ @apply text-foreground hover-safe:bg-secondary border-0 bg-transparent;
66
66
  }
67
67
 
68
68
  .button--icon-only {
69
- @apply size-10;
69
+ @apply size-10;
70
70
  }
71
71
 
72
72
  .button--icon-only.button--sm {
73
- @apply size-8;
73
+ @apply size-8;
74
74
  }
75
75
 
76
76
  .button--icon-only.button--lg {
77
- @apply size-12;
77
+ @apply size-12;
78
78
  }
@@ -1,31 +1,31 @@
1
1
  /** Base Styling */
2
2
  .card {
3
- @apply w-full max-w-md rounded shadow;
4
- @apply flex flex-col p-5 gap-4;
3
+ @apply w-full max-w-md rounded shadow;
4
+ @apply flex flex-col gap-4 p-5;
5
5
  }
6
6
 
7
7
  /** Variants */
8
8
  .card--default {
9
- @apply bg-surface text-surface-foreground;
9
+ @apply bg-surface text-surface-foreground;
10
10
  }
11
11
 
12
12
  .card--transparent {
13
- @apply bg-transparent;
13
+ @apply bg-transparent;
14
14
  }
15
15
 
16
16
  /** Slots */
17
17
  .card__header {
18
- @apply flex flex-col gap-1;
18
+ @apply flex flex-col gap-1;
19
19
  }
20
20
 
21
21
  .card__title {
22
- @apply text-2xl font-bold;
22
+ @apply text-2xl font-bold;
23
23
  }
24
24
 
25
25
  .card__description {
26
- @apply text-muted-foreground text-base;
26
+ @apply text-muted-foreground text-base;
27
27
  }
28
28
 
29
29
  .card__content {
30
- @apply flex-1 flex flex-col gap-3;
30
+ @apply flex flex-1 flex-col gap-3;
31
31
  }
@@ -1,4 +1,4 @@
1
1
  /** Base Styling */
2
2
  .checkbox-group {
3
- @apply flex flex-col gap-4;
3
+ @apply flex flex-col gap-4;
4
4
  }
@@ -1,32 +1,32 @@
1
1
  /** Base Styling */
2
2
  .checkbox {
3
- @apply flex items-center justify-center rounded border;
3
+ @apply flex items-center justify-center rounded border;
4
4
 
5
- @apply size-6 outline-none;
5
+ @apply size-6 outline-none;
6
6
 
7
- @apply transition-[visibility] motion-reduce:transition-none;
7
+ @apply transition-[visibility] motion-reduce:transition-none;
8
8
 
9
- &[data-unchecked] {
10
- @apply bg-input/50;
11
- }
9
+ &[data-unchecked] {
10
+ @apply bg-input/50;
11
+ }
12
12
 
13
- &[data-checked] {
14
- @apply bg-input;
15
- }
13
+ &[data-checked] {
14
+ @apply bg-input;
15
+ }
16
16
 
17
- &:focus-visible {
18
- @apply status-focused;
19
- }
17
+ &:focus-visible {
18
+ @apply status-focused;
19
+ }
20
20
  }
21
21
 
22
22
  .checkbox__indicator {
23
- @apply text-input-foreground flex;
23
+ @apply text-input-foreground flex;
24
24
 
25
- &[data-unchecked] {
26
- @apply hidden;
27
- }
25
+ &[data-unchecked] {
26
+ @apply hidden;
27
+ }
28
28
 
29
- & svg {
30
- @apply size-4;
31
- }
29
+ & svg {
30
+ @apply size-4;
31
+ }
32
32
  }