@shuriken-ui/tailwind 4.0.0-alpha.5 → 4.0.0-alpha.7

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 (60) hide show
  1. package/README.md +55 -0
  2. package/lib/css/focus.css +2 -9
  3. package/lib/css/mark.css +0 -2
  4. package/lib/css/mask.css +0 -2
  5. package/lib/css/slimscroll.css +8 -5
  6. package/lib/index.css +8 -52
  7. package/lib/theme.css +40 -31
  8. package/package.json +2 -2
  9. package/lib/css/accordion.css +0 -175
  10. package/lib/css/autocomplete.css +0 -510
  11. package/lib/css/avatar-group.css +0 -137
  12. package/lib/css/avatar.css +0 -737
  13. package/lib/css/breadcrumb.css +0 -62
  14. package/lib/css/button-action.css +0 -107
  15. package/lib/css/button-close.css +0 -116
  16. package/lib/css/button-group.css +0 -235
  17. package/lib/css/button-icon.css +0 -96
  18. package/lib/css/button.css +0 -564
  19. package/lib/css/card.css +0 -68
  20. package/lib/css/checkbox.css +0 -98
  21. package/lib/css/dropdown-divider.css +0 -5
  22. package/lib/css/dropdown-item.css +0 -61
  23. package/lib/css/dropdown.css +0 -101
  24. package/lib/css/fullscreen-dropfile.css +0 -62
  25. package/lib/css/heading.css +0 -77
  26. package/lib/css/icon-box.css +0 -304
  27. package/lib/css/input-file-regular.css +0 -254
  28. package/lib/css/input-file.css +0 -223
  29. package/lib/css/input-help-text.css +0 -6
  30. package/lib/css/input-number.css +0 -468
  31. package/lib/css/input.css +0 -402
  32. package/lib/css/kbd.css +0 -93
  33. package/lib/css/label.css +0 -5
  34. package/lib/css/link.css +0 -7
  35. package/lib/css/list.css +0 -23
  36. package/lib/css/listbox.css +0 -510
  37. package/lib/css/message-text.css +0 -71
  38. package/lib/css/message.css +0 -243
  39. package/lib/css/modal.css +0 -50
  40. package/lib/css/pagination.css +0 -92
  41. package/lib/css/paragraph.css +0 -77
  42. package/lib/css/placeholder-page.css +0 -43
  43. package/lib/css/placeload.css +0 -11
  44. package/lib/css/progress-circle.css +0 -17
  45. package/lib/css/progress.css +0 -105
  46. package/lib/css/prose.css +0 -22
  47. package/lib/css/radio.css +0 -72
  48. package/lib/css/select.css +0 -403
  49. package/lib/css/snack.css +0 -100
  50. package/lib/css/switch-ball.css +0 -93
  51. package/lib/css/switch-thin.css +0 -75
  52. package/lib/css/tab-slider.css +0 -189
  53. package/lib/css/tabs.css +0 -173
  54. package/lib/css/tag.css +0 -311
  55. package/lib/css/text.css +0 -77
  56. package/lib/css/textarea.css +0 -227
  57. package/lib/css/theme-switch.css +0 -64
  58. package/lib/css/theme-toggle.css +0 -61
  59. package/lib/css/toast.css +0 -131
  60. package/lib/css/tooltip.css +0 -98
package/README.md ADDED
@@ -0,0 +1,55 @@
1
+ <p align="center">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="https://github.com/shuriken-ui/.github/assets/86636408/278e3026-1997-4e01-9457-20772adbce31">
4
+ <source media="(prefers-color-scheme: light)" srcset="https://github.com/shuriken-ui/.github/assets/86636408/06f9d8e2-38aa-45b2-b91e-1c891a20e271">
5
+ <img alt="Shuriken UI logo" src="https://github.com/shuriken-ui/.github/assets/86636408/06f9d8e2-38aa-45b2-b91e-1c891a20e271">
6
+ </picture>
7
+ </p>
8
+
9
+
10
+ <p align="center">
11
+ <a href="https://cssninja.io" title="Our official website">by <strong>cssninja.io</strong></a>
12
+ </p>
13
+
14
+ ---
15
+
16
+ ## Shuriken UI - Tailwind CSS v4
17
+
18
+ Shuriken UI is a free and open-source Tailwind CSS UI Kit. It is a collection of components and templates that you can use to build your next Tailwind CSS project.
19
+
20
+ This package contains the Tailwind CSS preset, components, and shared utils like custom colors used in Shuriken UI.
21
+
22
+ ## Installation
23
+
24
+ Install dependencies:
25
+
26
+ ```bash
27
+ pnpm install -D @shuriken-ui/tailwind@next tailwindcss@next @tailwindcss/vite@next
28
+ ```
29
+
30
+ Add tailwind plugin to your `vite.config.ts`:
31
+
32
+ ```ts
33
+ import tailwindcss from '@tailwindcss/vite'
34
+ import { defineConfig } from 'vite'
35
+
36
+ export default defineConfig({
37
+ plugins: [tailwindcss()],
38
+ });
39
+ ```
40
+
41
+ Reference Shuriken UI in your `tailwind.css` file:
42
+
43
+ ```css
44
+ @import 'tailwindcss';
45
+ @import '@shuriken-ui/tailwind';
46
+
47
+ /* Register the dark mode variant (with .dark class) */
48
+ @variant dark (&:where(.dark, .dark *));
49
+
50
+ @theme {
51
+ /* Customize your theme here */
52
+ }
53
+ ```
54
+
55
+ > See the [theme.css](https://github.com/shuriken-ui/shuriken-ui/blob/main/packages/tailwind/lib/theme.css) file for a complete list of available variables you can customize.
package/lib/css/focus.css CHANGED
@@ -1,11 +1,4 @@
1
- /* @utility nui-focus */
2
-
3
1
  @utility nui-focus {
4
- @apply outline-2 outline-dashed outline-offset-2;
5
- @apply outline-transparent;
6
-
7
- &:focus-within {
8
- @apply outline-muted-300 dark:outline-muted-600;
9
- @apply outline-dashed ring-0;
10
- }
2
+ @apply outline-none ring-ring ring-1 ring-offset-2 ring-offset-white;
3
+ @apply dark:ring-offset-muted-950;
11
4
  }
package/lib/css/mark.css CHANGED
@@ -1,5 +1,3 @@
1
- /* @utility nui-mark */
2
-
3
1
  @utility nui-mark {
4
2
  @apply bg-primary-100 dark:bg-primary-800;
5
3
  @apply text-primary-800 dark:text-primary-200;
package/lib/css/mask.css CHANGED
@@ -1,5 +1,3 @@
1
- /* @utility nui-mask */
2
-
3
1
  @utility nui-mask {
4
2
  mask-size: contain;
5
3
  mask-repeat: no-repeat;
@@ -1,10 +1,12 @@
1
1
  /* @utility nui-slimscroll */
2
2
 
3
3
  @utility nui-slimscroll {
4
+ scrollbar-width: auto !important;
5
+
4
6
  &::-webkit-scrollbar {
5
7
  scroll-behavior: smooth;
6
8
  scrollbar-gutter: stable;
7
- @apply w-[6px] h-[6px];
9
+ @apply w-[6px] h-[6px] block!;
8
10
  }
9
11
 
10
12
  &::-webkit-scrollbar-thumb {
@@ -19,13 +21,14 @@
19
21
  &::-webkit-scrollbar {
20
22
  scroll-behavior: smooth;
21
23
  scrollbar-gutter: stable;
22
- @apply w-[6px] h-[6px];
24
+ @apply w-[6px] h-[6px] block!;
25
+ }
26
+
27
+ &::-webkit-scrollbar-thumb {
28
+ @apply rounded-lg bg-transparent duration-300 transition-all;
23
29
  }
24
30
 
25
31
  &:hover::-webkit-scrollbar-thumb {
26
32
  @apply bg-black/20 dark:bg-white/20;
27
33
  }
28
34
  }
29
- @utility undefined {
30
- @apply rounded-lg bg-transparent duration-300 transition-all;
31
- }
package/lib/index.css CHANGED
@@ -2,59 +2,15 @@
2
2
 
3
3
  @import './theme.css';
4
4
 
5
- @import './css/accordion.css';
6
- @import './css/autocomplete.css';
7
- @import './css/avatar-group.css';
8
- @import './css/avatar.css';
9
- @import './css/breadcrumb.css';
10
- @import './css/button-action.css';
11
- @import './css/button-close.css';
12
- @import './css/button-group.css';
13
- @import './css/button-icon.css';
14
- @import './css/button.css';
15
- @import './css/card.css';
16
- @import './css/checkbox.css';
17
- @import './css/dropdown-divider.css';
18
- @import './css/dropdown-item.css';
19
- @import './css/dropdown.css';
20
5
  @import './css/focus.css';
21
- @import './css/fullscreen-dropfile.css';
22
- @import './css/heading.css';
23
- @import './css/icon-box.css';
24
- @import './css/input-file-regular.css';
25
- @import './css/input-file.css';
26
- @import './css/input-help-text.css';
27
- @import './css/input-number.css';
28
- @import './css/input.css';
29
- @import './css/kbd.css';
30
- @import './css/label.css';
31
- @import './css/link.css';
32
- @import './css/list.css';
33
- @import './css/listbox.css';
34
6
  @import './css/mark.css';
35
7
  @import './css/mask.css';
36
- @import './css/message-text.css';
37
- @import './css/message.css';
38
- @import './css/modal.css';
39
- @import './css/pagination.css';
40
- @import './css/paragraph.css';
41
- @import './css/placeholder-page.css';
42
- @import './css/placeload.css';
43
- @import './css/progress-circle.css';
44
- @import './css/progress.css';
45
- @import './css/prose.css';
46
- @import './css/radio.css';
47
- @import './css/select.css';
48
8
  @import './css/slimscroll.css';
49
- @import './css/snack.css';
50
- @import './css/switch-ball.css';
51
- @import './css/switch-thin.css';
52
- @import './css/tab-slider.css';
53
- @import './css/tabs.css';
54
- @import './css/tag.css';
55
- @import './css/text.css';
56
- @import './css/textarea.css';
57
- @import './css/theme-switch.css';
58
- @import './css/theme-toggle.css';
59
- @import './css/toast.css';
60
- @import './css/tooltip.css';
9
+
10
+ .dark {
11
+ color-scheme: dark;
12
+ }
13
+ .nui-no-transition * {
14
+ transition-property: none !important;
15
+ transition-duration: 0 !important;
16
+ }
package/lib/theme.css CHANGED
@@ -1,8 +1,8 @@
1
1
  @theme {
2
- /* --font-family-sans: 'Titillium Web', sans-serif; */
3
- /* --font-family-mono: 'Titillium Web', sans-serif; */
4
- --font-family-alt: var(--font-family-sans);
5
- --font-family-heading: var(--font-family-sans);
2
+ /* --font-sans: 'Titillium Web', sans-serif; */
3
+ /* --font-monospace: 'Titillium Web', sans-serif; */
4
+ --font-alt: var(--font-sans);
5
+ --font-heading: var(--font-sans);
6
6
 
7
7
  /** Colors */
8
8
  --color-muted-50: var(--color-gray-50);
@@ -16,8 +16,7 @@
16
16
  --color-muted-800: var(--color-gray-800);
17
17
  --color-muted-900: var(--color-gray-900);
18
18
  --color-muted-950: var(--color-gray-950);
19
-
20
- --color-primary-invert: var(--color-white);
19
+
21
20
  --color-primary-50: var(--color-purple-50);
22
21
  --color-primary-100: var(--color-purple-100);
23
22
  --color-primary-200: var(--color-purple-200);
@@ -29,6 +28,10 @@
29
28
  --color-primary-800: var(--color-purple-800);
30
29
  --color-primary-900: var(--color-purple-900);
31
30
  --color-primary-950: var(--color-purple-950);
31
+ --color-primary-invert: var(--color-white);
32
+ --color-primary-base: var(--color-primary-500);
33
+ --color-primary-heavy: var(--color-primary-600);
34
+ --color-primary-light: var(--color-primary-400);
32
35
 
33
36
  --color-info-50: var(--color-sky-50);
34
37
  --color-info-100: var(--color-sky-100);
@@ -41,6 +44,10 @@
41
44
  --color-info-800: var(--color-sky-800);
42
45
  --color-info-900: var(--color-sky-900);
43
46
  --color-info-950: var(--color-sky-950);
47
+ --color-info-invert: var(--color-white);
48
+ --color-info-base: var(--color-info-600);
49
+ --color-info-heavy: var(--color-info-700);
50
+ --color-info-light: var(--color-info-500);
44
51
 
45
52
  --color-success-50: var(--color-teal-50);
46
53
  --color-success-100: var(--color-teal-100);
@@ -53,6 +60,10 @@
53
60
  --color-success-800: var(--color-teal-800);
54
61
  --color-success-900: var(--color-teal-900);
55
62
  --color-success-950: var(--color-teal-950);
63
+ --color-success-invert: var(--color-white);
64
+ --color-success-base: var(--color-success-600);
65
+ --color-success-heavy: var(--color-success-700);
66
+ --color-success-light: var(--color-success-500);
56
67
 
57
68
  --color-warning-50: var(--color-amber-50);
58
69
  --color-warning-100: var(--color-amber-100);
@@ -65,23 +76,33 @@
65
76
  --color-warning-800: var(--color-amber-800);
66
77
  --color-warning-900: var(--color-amber-900);
67
78
  --color-warning-950: var(--color-amber-950);
79
+ --color-warning-invert: var(--color-white);
80
+ --color-warning-base: var(--color-warning-600);
81
+ --color-warning-heavy: var(--color-warning-700);
82
+ --color-warning-light: var(--color-warning-500);
68
83
 
69
- --color-danger-50: var(--color-rose-50);
70
- --color-danger-100: var(--color-rose-100);
71
- --color-danger-200: var(--color-rose-200);
72
- --color-danger-300: var(--color-rose-300);
73
- --color-danger-400: var(--color-rose-400);
74
- --color-danger-500: var(--color-rose-500);
75
- --color-danger-600: var(--color-rose-600);
76
- --color-danger-700: var(--color-rose-700);
77
- --color-danger-800: var(--color-rose-800);
78
- --color-danger-900: var(--color-rose-900);
79
- --color-danger-950: var(--color-rose-950);
84
+ --color-destructive-50: var(--color-rose-50);
85
+ --color-destructive-100: var(--color-rose-100);
86
+ --color-destructive-200: var(--color-rose-200);
87
+ --color-destructive-300: var(--color-rose-300);
88
+ --color-destructive-400: var(--color-rose-400);
89
+ --color-destructive-500: var(--color-rose-500);
90
+ --color-destructive-600: var(--color-rose-600);
91
+ --color-destructive-700: var(--color-rose-700);
92
+ --color-destructive-800: var(--color-rose-800);
93
+ --color-destructive-900: var(--color-rose-900);
94
+ --color-destructive-950: var(--color-rose-950);
95
+ --color-destructive-invert: var(--color-white);
96
+ --color-destructive-base: var(--color-destructive-600);
97
+ --color-destructive-heavy: var(--color-destructive-700);
98
+ --color-destructive-light: var(--color-destructive-500);
99
+
100
+ --color-link: var(--color-primary-base);
101
+ --color-ring: var(--color-muted-300);
80
102
 
81
103
  --animate-nui-placeload: nui-placeload 1s linear infinite forwards;
82
104
  --animate-nui-progress-indeterminate: nui-progress-indeterminate 3s linear infinite forwards;
83
- --animate-nui-tooltip-x: nui-tooltip-x 300ms ease-out forwards;
84
- --animate-nui-tooltip-y: nui-tooltip-y 300ms ease-out forwards;
105
+ --animate-nui-spin: spin 2s linear infinite;
85
106
 
86
107
  @keyframes nui-placeload {
87
108
  0% {
@@ -102,16 +123,4 @@
102
123
  margin-left: -100%;
103
124
  }
104
125
  }
105
- @keyframes nui-tooltip-x {
106
- to {
107
- opacity: 1;
108
- transform: translate(-50%, 0);
109
- }
110
- }
111
- @keyframes nui-tooltip-y {
112
- to {
113
- opacity: 1;
114
- transform: translate(0, -50%);
115
- }
116
- }
117
126
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shuriken-ui/tailwind",
3
- "version": "4.0.0-alpha.5",
3
+ "version": "4.0.0-alpha.7",
4
4
  "license": "MIT",
5
5
  "author": "Css Ninja <hello@cssninja.io> (https://cssninja.io)",
6
6
  "repository": {
@@ -35,6 +35,6 @@
35
35
  ],
36
36
  "dependencies": {
37
37
  "@tailwindcss/typography": "^0.5.15",
38
- "tailwindcss": "4.0.0-beta.2"
38
+ "tailwindcss": "4.0.0-beta.8"
39
39
  }
40
40
  }
@@ -1,175 +0,0 @@
1
- /* @utility nui-accordion */
2
-
3
- @utility nui-accordion {
4
- @apply w-full block overflow-hidden;
5
- @apply bg-white dark:bg-muted-800;
6
- @apply hover:bg-muted-50/60 dark:hover:bg-muted-800/60;
7
- @apply border border-muted-300 dark:border-muted-700;
8
- @apply transition-colors duration-300;
9
-
10
- &:not(:last-child) {
11
- @apply border-b-0;
12
- }
13
- + .nui-accordion {
14
- @apply !border-t-0;
15
- }
16
-
17
- .nui-accordion-detail[open]:not(:first-child) {
18
- @apply border-t border-muted-300 dark:border-muted-700;
19
- }
20
-
21
- .nui-accordion-detail .nui-accordion-dot-icon {
22
- @apply bg-muted-200 dark:bg-muted-700;
23
- }
24
-
25
- &.nui-accordion-chevron, &.nui-accordion-plus {
26
- .nui-accordion-header {
27
- @apply px-4 py-3;
28
- }
29
- }
30
- }
31
-
32
- @utility nui-accordion-summary {
33
- @apply cursor-pointer list-none outline-none;
34
- }
35
- @utility nui-accordion-header {
36
- @apply flex items-center justify-between;
37
-
38
- .nui-accordion-header-inner {
39
- @apply text-muted-800 dark:text-white;
40
- }
41
- }
42
- @utility nui-accordion-dot-icon {
43
- @apply ms-2 h-3 w-3 rounded-full;
44
- @apply transition-colors duration-300;
45
- }
46
- @utility nui-accordion-icon-outer {
47
- @apply ms-2 flex items-center justify-center;
48
- @apply h-8 w-8 rounded-full;
49
- @apply border border-transparent dark:border-transparent;
50
- @apply bg-white dark:bg-muted-700/60;
51
- @apply transition-all duration-300;
52
- }
53
- @utility nui-accordion-chevron-icon {
54
- @apply text-muted-400 h-4 w-4;
55
- @apply transition-transform duration-300;
56
- }
57
- @utility nui-accordion-plus-icon {
58
- @apply text-muted-400 h-4 w-4;
59
- @apply transition-transform duration-300;
60
- }
61
- @utility nui-accordion-content {
62
- @apply px-4 pb-4;
63
- @apply font-sans text-sm text-muted-500 dark:text-muted-400;
64
- }
65
- @utility nui-accordion-default {
66
- @apply bg-white dark:bg-muted-800;
67
- @apply hover:bg-muted-50/60 dark:hover:bg-muted-800/60;
68
- @apply border border-muted-300 dark:border-muted-700;
69
- }
70
- @utility nui-accordion-default-contrast {
71
- @apply bg-white dark:bg-muted-950;
72
- @apply hover:bg-muted-50/60 dark:hover:bg-muted-950/60;
73
- @apply border border-muted-300 dark:border-muted-800;
74
- }
75
- @utility nui-accordion-muted {
76
- @apply bg-muted-100 dark:bg-muted-800;
77
- @apply hover:bg-muted-100/60 dark:hover:bg-muted-800/60;
78
- @apply border border-muted-200 dark:border-muted-700;
79
- }
80
- @utility nui-accordion-muted-contrast {
81
- @apply bg-muted-100 dark:bg-muted-950;
82
- @apply hover:bg-muted-100/60 dark:hover:bg-muted-950/60;
83
- @apply border border-muted-200 dark:border-muted-800;
84
- }
85
- @utility nui-accordion-dot-default {
86
- .nui-accordion-detail[open] .nui-accordion-dot {
87
- @apply bg-muted-400 dark:bg-muted-700;
88
- }
89
- }
90
- @utility nui-accordion-dot-primary {
91
- .nui-accordion-detail[open] .nui-accordion-dot {
92
- @apply bg-primary-500 dark:bg-primary-500;
93
- }
94
- }
95
- @utility nui-accordion-dot-info {
96
- .nui-accordion-detail[open] .nui-accordion-dot {
97
- @apply bg-info-500 dark:bg-info-500;
98
- }
99
- }
100
- @utility nui-accordion-dot-success {
101
- .nui-accordion-detail[open] .nui-accordion-dot {
102
- @apply bg-success-500 dark:bg-success-500;
103
- }
104
- }
105
- @utility nui-accordion-dot-warning {
106
- .nui-accordion-detail[open] .nui-accordion-dot {
107
- @apply bg-warning-500 dark:bg-warning-500;
108
- }
109
- }
110
- @utility nui-accordion-dot-danger {
111
- .nui-accordion-detail[open] .nui-accordion-dot {
112
- @apply bg-danger-500 dark:bg-danger-500;
113
- }
114
- }
115
- @utility nui-accordion-dot-dark {
116
- .nui-accordion-detail[open] .nui-accordion-dot {
117
- @apply bg-muted-900 dark:bg-muted-100;
118
- }
119
- }
120
- @utility nui-accordion-dot-black {
121
- .nui-accordion-detail[open] .nui-accordion-dot {
122
- @apply bg-black dark:bg-white;
123
- }
124
- }
125
- @utility nui-accordion-dot {
126
- .nui-accordion-header {
127
- @apply p-4;
128
- }
129
- }
130
- @utility nui-accordion-chevron {
131
- .nui-accordion-detail[open] .nui-icon-outer {
132
- @apply rotate-180;
133
- }
134
- }
135
- @utility nui-accordion-plus {
136
- .nui-accordion-detail[open] .nui-icon-outer {
137
- @apply rotate-45;
138
- }
139
- }
140
- @utility nui-accordion-straight {
141
- &.nui-accordion:first-child {
142
- @apply rounded-t-none;
143
- }
144
-
145
- &.nui-accordion:last-child {
146
- @apply rounded-b-none;
147
- }
148
- }
149
- @utility nui-accordion-rounded-sm {
150
- &.nui-accordion:first-child {
151
- @apply rounded-t-md;
152
- }
153
-
154
- &.nui-accordion:last-child {
155
- @apply rounded-b-md;
156
- }
157
- }
158
- @utility nui-accordion-rounded-md {
159
- &.nui-accordion:first-child {
160
- @apply rounded-t-lg;
161
- }
162
-
163
- &.nui-accordion:last-child {
164
- @apply rounded-b-lg;
165
- }
166
- }
167
- @utility nui-accordion-rounded-lg {
168
- &.nui-accordion:first-child {
169
- @apply rounded-t-xl;
170
- }
171
-
172
- &.nui-accordion:last-child {
173
- @apply rounded-b-xl;
174
- }
175
- }