@ztwoint/z-ui 0.1.8

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 (33) hide show
  1. package/README.md +24 -0
  2. package/dist/css/config/colors/backgrounds.css +20 -0
  3. package/dist/css/config/colors/components/alert.css +83 -0
  4. package/dist/css/config/colors/components/avatar.css +53 -0
  5. package/dist/css/config/colors/components/badge.css +137 -0
  6. package/dist/css/config/colors/components/button.css +93 -0
  7. package/dist/css/config/colors/components/checkbox.css +7 -0
  8. package/dist/css/config/colors/components/featured-icon.css +80 -0
  9. package/dist/css/config/colors/components/progress-bar.css +7 -0
  10. package/dist/css/config/colors/components/radio-button.css +7 -0
  11. package/dist/css/config/colors/components/scroll-overlay.css +17 -0
  12. package/dist/css/config/colors/components/tab.css +60 -0
  13. package/dist/css/config/colors/components/text-button.css +67 -0
  14. package/dist/css/config/colors/components/toggle-switch.css +3 -0
  15. package/dist/css/config/colors/components/toggle.css +25 -0
  16. package/dist/css/config/colors/defaults.css +113 -0
  17. package/dist/css/config/colors/icons.css +81 -0
  18. package/dist/css/config/colors/overlay.css +3 -0
  19. package/dist/css/config/colors/shape.css +163 -0
  20. package/dist/css/config/colors/stroke.css +63 -0
  21. package/dist/css/config/colors/surfaces.css +141 -0
  22. package/dist/css/config/colors/text.css +77 -0
  23. package/dist/css/config/config.css +39 -0
  24. package/dist/css/config/typography/2xl.css +100 -0
  25. package/dist/css/config/typography/3xl.css +100 -0
  26. package/dist/css/config/typography/4xl.css +100 -0
  27. package/dist/css/config/typography/base.css +100 -0
  28. package/dist/css/config/typography/lg.css +100 -0
  29. package/dist/css/config/typography/sm.css +100 -0
  30. package/dist/css/config/typography/typography.css +8 -0
  31. package/dist/css/config/typography/xl.css +100 -0
  32. package/dist/css/config/typography/xs.css +100 -0
  33. package/package.json +96 -0
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # Z2Data UI Library
2
+
3
+ A modern React UI component library built with TypeScript, Vite, and Tailwind CSS.
4
+
5
+ ## Features
6
+
7
+ - ๐Ÿš€ Built with React 18 and TypeScript
8
+ - ๐ŸŽจ Styled with Tailwind CSS
9
+ - ๐Ÿ“ฆ Tree-shakeable ES modules
10
+ - ๐Ÿ“š Storybook documentation
11
+ - ๐ŸŽฎ Interactive playground for development
12
+ - ๐Ÿ”ง Fully customizable components
13
+ - ๐Ÿงช Comprehensive test suite with Vitest
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ npm install @ztwoint/z-ui
19
+ # or
20
+ yarn add @ztwoint/z-ui
21
+ ```
22
+ > Note: To use this package on a remote server, you need to set up an SSH key with access to this repository.
23
+
24
+ This package will be published to npm registry later.
@@ -0,0 +1,20 @@
1
+ /* neutral */
2
+ @utility bg-neutral-default {
3
+ background-color: var(--color-neutral-00);
4
+ }
5
+
6
+ @utility bg-neutral-secondary {
7
+ background-color: var(--color-neutral-50);
8
+ }
9
+
10
+ @utility bg-neutral-elevated {
11
+ background-color: var(--color-neutral-75);
12
+ }
13
+
14
+ @utility bg-neutral-attention {
15
+ background-color: var(--color-neutral-200);
16
+ }
17
+
18
+ @utility bg-neutral-transparent {
19
+ background-color: var(--color-alpha-white-00);
20
+ }
@@ -0,0 +1,83 @@
1
+ /* NEUTRAL */
2
+ .c-alert-neutral-stroke {
3
+ border-color: var(--color-alpha-white-50);
4
+ }
5
+
6
+ .c-alert-neutral-bg {
7
+ background-color: var(--color-surface-neutral-default);
8
+ }
9
+
10
+ .c-alert-neutral-icon {
11
+ fill: var(--color-shape-neutral-default);
12
+ }
13
+
14
+ .c-alert-neutral-subtitle {
15
+ color: var(--color-subtitle-primary);
16
+ }
17
+
18
+ .c-alert-neutral-body {
19
+ color: var(--color-subtitle-secondary);
20
+ }
21
+
22
+ /* WARNING */
23
+ .c-alert-warning-stroke {
24
+ border-color: var(--color-warning-200);
25
+ }
26
+
27
+ .c-alert-warning-bg {
28
+ background-color: var(--color-warning-50);
29
+ }
30
+
31
+ .c-alert-warning-icon {
32
+ fill: var(--color-warning-600);
33
+ }
34
+
35
+ .c-alert-warning-subtitle {
36
+ color: var(--color-warning-950);
37
+ }
38
+
39
+ .c-alert-warning-body {
40
+ color: rgba(69, 44, 3, 0.8);
41
+ }
42
+
43
+ /* DANGER */
44
+ .c-alert-danger-stroke {
45
+ border-color: var(--color-danger-200);
46
+ }
47
+
48
+ .c-alert-danger-bg {
49
+ background-color: var(--color-danger-50);
50
+ }
51
+
52
+ .c-alert-danger-icon {
53
+ fill: var(--color-danger-600);
54
+ }
55
+
56
+ .c-alert-danger-subtitle {
57
+ color: var(--color-danger-950);
58
+ }
59
+
60
+ .c-alert-danger-body {
61
+ color: rgba(62, 20, 17, 0.8);
62
+ }
63
+
64
+ /* DESTRUCTIVE */
65
+ .c-alert-destructive-stroke {
66
+ border-color: var(--color-danger-600);
67
+ }
68
+
69
+ .c-alert-destructive-bg {
70
+ background-color: var(--color-danger-100);
71
+ }
72
+
73
+ .c-alert-destructive-icon {
74
+ fill: var(--color-danger-600);
75
+ }
76
+
77
+ .c-alert-destructive-subtitle {
78
+ color: var(--color-danger-600);
79
+ }
80
+
81
+ .c-alert-destructive-body {
82
+ color: rgba(62, 20, 17, 0.8);
83
+ }
@@ -0,0 +1,53 @@
1
+ /* blue */
2
+ .c-avatar-blue-surface {
3
+ background-color: var(--color-accent-100);
4
+ }
5
+
6
+ .c-avatar-blue-name {
7
+ color: var(--color-accent-950);
8
+ }
9
+
10
+ /* red */
11
+ .c-avatar-red-surface {
12
+ background-color: var(--color-danger-100);
13
+ }
14
+
15
+ .c-avatar-red-name {
16
+ color: var(--color-danger-950);
17
+ }
18
+
19
+ /* yellow */
20
+ .c-avatar-yellow-surface {
21
+ background-color: var(--color-warning-100);
22
+ }
23
+
24
+ .c-avatar-yellow-name {
25
+ color: var(--color-warning-950);
26
+ }
27
+
28
+ /* green */
29
+ .c-avatar-green-surface {
30
+ background-color: var(--color-success-100);
31
+ }
32
+
33
+ .c-avatar-green-name {
34
+ color: var(--color-success-950);
35
+ }
36
+
37
+ /* purple */
38
+ .c-avatar-purple-surface {
39
+ background-color: var(--color-purple-100);
40
+ }
41
+
42
+ .c-avatar-purple-name {
43
+ color: var(--color-purple-950);
44
+ }
45
+
46
+ /* sky */
47
+ .c-avatar-sky-surface {
48
+ background-color: var(--color-sky-100);
49
+ }
50
+
51
+ .c-avatar-sky-name {
52
+ color: var(--color-sky-950);
53
+ }
@@ -0,0 +1,137 @@
1
+ /* FILLED (background-color) */
2
+ .c-badge-gray {
3
+ background-color: var(--color-neutral-900);
4
+ }
5
+ .c-badge-accent {
6
+ background-color: var(--color-accent-600);
7
+ }
8
+ .c-badge-danger {
9
+ background-color: var(--color-danger-600);
10
+ }
11
+ .c-badge-success {
12
+ background-color: var(--color-success-600);
13
+ }
14
+ .c-badge-warning {
15
+ background-color: var(--color-warning-600);
16
+ }
17
+ .c-badge-purple {
18
+ background-color: var(--color-purple-600);
19
+ }
20
+ .c-badge-sky {
21
+ background-color: var(--color-sky-600);
22
+ }
23
+
24
+ /* LIGHT (background-color) */
25
+ .c-badge-gray-light {
26
+ background-color: var(--color-gray-25);
27
+ }
28
+ .c-badge-accent-light {
29
+ background-color: var(--color-accent-50);
30
+ }
31
+ .c-badge-danger-light {
32
+ background-color: var(--color-danger-50);
33
+ }
34
+ .c-badge-success-light {
35
+ background-color: var(--color-success-50);
36
+ }
37
+ .c-badge-warning-light {
38
+ background-color: var(--color-warning-50);
39
+ }
40
+ .c-badge-purple-light {
41
+ background-color: var(--color-purple-50);
42
+ }
43
+ .c-badge-sky-light {
44
+ background-color: var(--color-sky-50);
45
+ }
46
+
47
+ /* STROKE (border-color) */
48
+ .c-badge-stroke-gray {
49
+ border-color: var(--color-gray-150);
50
+ }
51
+ .c-badge-stroke-accent {
52
+ border-color: var(--color-accent-100);
53
+ }
54
+ .c-badge-stroke-danger {
55
+ border-color: var(--color-danger-100);
56
+ }
57
+ .c-badge-stroke-success {
58
+ border-color: var(--color-success-100);
59
+ }
60
+ .c-badge-stroke-warning {
61
+ border-color: var(--color-warning-100);
62
+ }
63
+ .c-badge-stroke-purple {
64
+ border-color: var(--color-purple-100);
65
+ }
66
+ .c-badge-stroke-sky {
67
+ border-color: var(--color-sky-100);
68
+ }
69
+
70
+ /* TEXT (color) */
71
+ .c-badge-text-gray {
72
+ color: var(--color-neutral-600);
73
+ }
74
+ .c-badge-text-accent {
75
+ color: var(--color-accent-600);
76
+ }
77
+ .c-badge-text-danger {
78
+ color: var(--color-danger-600);
79
+ }
80
+ .c-badge-text-success {
81
+ color: var(--color-success-600);
82
+ }
83
+ .c-badge-text-warning {
84
+ color: var(--color-warning-600);
85
+ }
86
+ .c-badge-text-purple {
87
+ color: var(--color-purple-600);
88
+ }
89
+ .c-badge-text-sky {
90
+ color: var(--color-sky-600);
91
+ }
92
+
93
+ /* SHAPE (fill) */
94
+ .c-badge-shape-fill-gray {
95
+ fill: var(--color-neutral-600);
96
+ }
97
+ .c-badge-shape-fill-accent {
98
+ fill: var(--color-accent-600);
99
+ }
100
+ .c-badge-shape-fill-danger {
101
+ fill: var(--color-danger-600);
102
+ }
103
+ .c-badge-shape-fill-success {
104
+ fill: var(--color-success-600);
105
+ }
106
+ .c-badge-shape-fill-warning {
107
+ fill: var(--color-warning-600);
108
+ }
109
+ .c-badge-shape-fill-purple {
110
+ fill: var(--color-purple-600);
111
+ }
112
+ .c-badge-shape-fill-sky {
113
+ fill: var(--color-sky-600);
114
+ }
115
+
116
+ /* SHAPE (background-color) */
117
+ .c-badge-shape-bg-gray {
118
+ background-color: var(--color-neutral-600);
119
+ }
120
+ .c-badge-shape-bg-accent {
121
+ background-color: var(--color-accent-600);
122
+ }
123
+ .c-badge-shape-bg-danger {
124
+ background-color: var(--color-danger-600);
125
+ }
126
+ .c-badge-shape-bg-success {
127
+ background-color: var(--color-success-600);
128
+ }
129
+ .c-badge-shape-bg-warning {
130
+ background-color: var(--color-warning-600);
131
+ }
132
+ .c-badge-shape-bg-purple {
133
+ background-color: var(--color-purple-600);
134
+ }
135
+ .c-badge-shape-bg-sky {
136
+ background-color: var(--color-sky-600);
137
+ }
@@ -0,0 +1,93 @@
1
+ /* Button utility classes for Tailwind CSS */
2
+
3
+ /* Type: Filled Style : Neutral */
4
+ @utility button-primary-neutral-surface-default {
5
+ background-color: var(--color-neutral-950);
6
+ }
7
+
8
+ @utility button-primary-neutral-surface-hover {
9
+ background-color: var(--color-neutral-900);
10
+ }
11
+
12
+ @utility button-primary-neutral-surface-pressed {
13
+ background-color: var(--color-neutral-500);
14
+ }
15
+
16
+ @utility button-primary-neutral-surface-disabled {
17
+ background-color: var(--color-neutral-50);
18
+ }
19
+
20
+ /* Type: Filled Style : Brand */
21
+ @utility button-primary-brand-surface-default {
22
+ background-color: var(--color-accent-600);
23
+ }
24
+
25
+ @utility button-primary-brand-surface-hover {
26
+ background-color: var(--color-accent-700);
27
+ }
28
+
29
+ @utility button-primary-brand-surface-pressed {
30
+ background-color: var(--color-accent-500);
31
+ }
32
+
33
+ @utility button-primary-brand-surface-disabled {
34
+ background-color: var(--color-neutral-50);
35
+ }
36
+
37
+ /* Type : Filled Style : Danger */
38
+ @utility button-primary-danger-surface-default {
39
+ background-color: var(--color-rose-600);
40
+ }
41
+
42
+ @utility button-primary-danger-surface-hover {
43
+ background-color: var(--color-rose-700);
44
+ }
45
+
46
+ @utility button-primary-danger-surface-pressed {
47
+ background-color: var(--color-rose-500);
48
+ }
49
+
50
+ @utility button-primary-danger-surface-disabled {
51
+ background-color: var(--color-neutral-50);
52
+ }
53
+
54
+ /* Type : Stroke Style : Neutral */
55
+ @utility button-secondary-surface-default {
56
+ background-color: var(--color-neutral-00);
57
+ }
58
+
59
+ @utility button-secondary-surface-hover {
60
+ background-color: var(--color-neutral-50);
61
+ }
62
+
63
+ @utility button-secondary-surface-pressed {
64
+ background-color: var(--color-neutral-100);
65
+ }
66
+
67
+ @utility button-secondary-surface-disabled {
68
+ background-color: var(--color-neutral-50);
69
+ }
70
+
71
+ /* Text utility classes */
72
+ @utility text-default-primary {
73
+ color: var(--color-neutral-950);
74
+ }
75
+
76
+ @utility text-default-secondary {
77
+ color: var(--color-neutral-600);
78
+ }
79
+
80
+ @utility text-default-disabled {
81
+ color: var(--color-neutral-400);
82
+ }
83
+
84
+ @utility text-default-danger {
85
+ color: var(--color-rose-600);
86
+ }
87
+
88
+ /* Shadow utility class */
89
+ @utility shadown-default {
90
+ box-shadow:
91
+ 0px 1px 2px 0px var(--color-alpha-dark-50),
92
+ 0px 0px 0px var(0.5px) var(--color-neutral-150);
93
+ }
@@ -0,0 +1,7 @@
1
+ .c-checkbox {
2
+ border-color: var(--color-neutral-200);
3
+ }
4
+
5
+ .c-checkbox-hover {
6
+ border-color: var(--color-neutral-300);
7
+ }
@@ -0,0 +1,80 @@
1
+ /* blue */
2
+ .c-featured-icon-surface {
3
+ fill: var(--color-accent-100);
4
+ }
5
+
6
+ .c-featured-icon-icon {
7
+ fill: var(--color-accent-950);
8
+ }
9
+
10
+ .c-featured-icon-bg-icon {
11
+ background-color: var(--color-accent-950);
12
+ }
13
+
14
+ /* red */
15
+ .c-featured-icon-surface {
16
+ fill: var(--color-danger-100);
17
+ }
18
+
19
+ .c-featured-icon-icon {
20
+ fill: var(--color-danger-950);
21
+ }
22
+
23
+ .c-featured-icon-bg-icon {
24
+ background-color: var(--color-danger-950);
25
+ }
26
+
27
+ /* yellow */
28
+ .c-featured-icon-surface {
29
+ fill: var(--color-warning-100);
30
+ }
31
+
32
+ .c-featured-icon-icon {
33
+ fill: var(--color-warning-950);
34
+ }
35
+
36
+ .c-featured-icon-bg-icon {
37
+ background-color: var(--color-warning-950);
38
+ }
39
+
40
+ /* green */
41
+ .c-featured-icon-surface {
42
+ fill: var(--color-success-100);
43
+ }
44
+
45
+ .c-featured-icon-icon {
46
+ fill: var(--color-success-950);
47
+ }
48
+
49
+ .c-featured-icon-bg-icon {
50
+ background-color: var(--color-success-950);
51
+ }
52
+
53
+ /* purple */
54
+ .c-featured-icon-surface {
55
+ fill: var(--color-purple-100);
56
+ }
57
+
58
+ .c-featured-icon-icon {
59
+ fill: var(--color-purple-950);
60
+ &:icon {
61
+ padding: 40px;
62
+ }
63
+ }
64
+
65
+ .c-featured-icon-bg-icon {
66
+ background-color: var(--color-purple-950);
67
+ }
68
+
69
+ /* sky */
70
+ .c-featured-icon-surface {
71
+ fill: var(--color-sky-100);
72
+ }
73
+
74
+ .c-featured-icon-icon {
75
+ fill: var(--color-sky-950);
76
+ }
77
+
78
+ .c-featured-icon-bg-icon {
79
+ background-color: var(--color-sky-950);
80
+ }
@@ -0,0 +1,7 @@
1
+ .c-progress-bar {
2
+ background-color: var(--color-neutral-200);
3
+ }
4
+
5
+ .c-progress-bar-active {
6
+ background-color: var(--color-accent-600);
7
+ }
@@ -0,0 +1,7 @@
1
+ .c-radio-button {
2
+ border-color: var(--color-neutral-200);
3
+ }
4
+
5
+ .c-radio-button-hover {
6
+ border-color: var(--color-neutral-300);
7
+ }
@@ -0,0 +1,17 @@
1
+ /* white */
2
+ .c-scroll-overlay-white {
3
+ background-color: var(--color-neutral-00);
4
+ }
5
+
6
+ .c-scroll-overlay-white-transparent {
7
+ background-color: rgba(255, 255, 255, 0);
8
+ }
9
+
10
+ /* secondary */
11
+ .c-scroll-overlay-secondary {
12
+ background-color: var(--color-neutral-25);
13
+ }
14
+
15
+ .c-scroll-overlay-secondary-transparent {
16
+ background-color: rgba(249, 250, 250, 0);
17
+ }
@@ -0,0 +1,60 @@
1
+ /* Tab component specific styles */
2
+
3
+ /* Base underline for all tabs */
4
+ [data-slot='tabs-trigger'] {
5
+ position: relative;
6
+ }
7
+
8
+ [data-slot='tabs-trigger']::after {
9
+ content: '';
10
+ position: absolute;
11
+ left: 50%;
12
+ bottom: 0;
13
+ transform: translateX(-50%);
14
+ width: calc(100% - 24px);
15
+ border-bottom: 0.5px solid #000000;
16
+ opacity: 0;
17
+ transition: opacity 0.2s ease;
18
+ z-index: 10;
19
+ }
20
+
21
+ /* Active state for underline */
22
+ [data-slot='tabs-trigger'][data-state='active']::after {
23
+ opacity: 1;
24
+ }
25
+
26
+ /* Active state for text */
27
+ [data-slot='tabs-trigger'][data-state='active'] .tab-label {
28
+ color: var(--color-neutral-950) !important;
29
+ }
30
+
31
+ /* Active state for text */
32
+ [data-slot='tabs-trigger'][data-state='active'] .tab-icon {
33
+ color: var(--color-neutral-950) !important;
34
+ }
35
+
36
+ /* Inactive state for text */
37
+ [data-slot='tabs-trigger']:not([data-state='active']) .tab-label {
38
+ color: var(--color-neutral-600) !important;
39
+ }
40
+
41
+ /* Inactive state for text */
42
+ [data-slot='tabs-trigger']:not([data-state='active']) .tab-icon {
43
+ color: var(--color-neutral-600) !important;
44
+ }
45
+
46
+ /* Icon size enforcement */
47
+ [data-slot='tabs-trigger'] svg {
48
+ width: 14px !important;
49
+ height: 14px !important;
50
+ }
51
+
52
+ /* Hover state for text */
53
+ [data-slot='tabs-trigger']:hover .tab-label {
54
+ color: var(--color-neutral-950) !important;
55
+ }
56
+
57
+ /* Hover state for icon */
58
+ [data-slot='tabs-trigger']:hover .tab-icon {
59
+ color: var(--color-neutral-950) !important;
60
+ }
@@ -0,0 +1,67 @@
1
+ /* neutral */
2
+ .c-text-button-neutral {
3
+ color: var(--color-neutral-950);
4
+ }
5
+
6
+ .c-text-button-neutral-hover {
7
+ color: var(--color-neutral-600);
8
+ }
9
+
10
+ .c-text-button-neutral-pressed {
11
+ color: var(--color-neutral-400);
12
+ }
13
+
14
+ .c-text-button-neutral-disabled {
15
+ color: var(--color-neutral-400);
16
+ }
17
+
18
+ /* accent */
19
+ .c-text-button-accent {
20
+ color: var(--color-accent-600);
21
+ }
22
+
23
+ .c-text-button-accent-hover {
24
+ color: var(--color-accent-800);
25
+ }
26
+
27
+ .c-text-button-accent-pressed {
28
+ color: var(--color-accent-400);
29
+ }
30
+
31
+ .c-text-button-accent-disabled {
32
+ color: var(--color-neutral-400);
33
+ }
34
+
35
+ /* danger */
36
+ .c-text-button-danger {
37
+ color: var(--color-danger-600);
38
+ }
39
+
40
+ .c-text-button-danger-hover {
41
+ color: var(--color-danger-800);
42
+ }
43
+
44
+ .c-text-button-danger-pressed {
45
+ color: var(--color-danger-400);
46
+ }
47
+
48
+ .c-text-button-danger-disabled {
49
+ color: var(--color-neutral-400);
50
+ }
51
+
52
+ /* success */
53
+ .c-text-button-success {
54
+ color: var(--color-success-600);
55
+ }
56
+
57
+ .c-text-button-success-hover {
58
+ color: var(--color-success-800);
59
+ }
60
+
61
+ .c-text-button-success-pressed {
62
+ color: var(--color-success-400);
63
+ }
64
+
65
+ .c-text-button-success-disabled {
66
+ color: var(--color-neutral-400);
67
+ }
@@ -0,0 +1,3 @@
1
+ .c-toggle-switch-surface {
2
+ background-color: var(--color-neutral-75);
3
+ }
@@ -0,0 +1,25 @@
1
+ /* surface */
2
+ .c-toggle-surface {
3
+ background-color: var(--color-neutral-200);
4
+ }
5
+
6
+ .c-toggle-surface-unactive-hover {
7
+ background-color: var(--color-neutral-300);
8
+ }
9
+
10
+ .c-toggle-surface-active {
11
+ background-color: var(--color-accent-600);
12
+ }
13
+
14
+ .c-toggle-surface-active-hover {
15
+ background-color: var(--color-accent-700);
16
+ }
17
+
18
+ /* knob */
19
+ .c-toggle-knob {
20
+ background-color: var(--color-neutral-00);
21
+ }
22
+
23
+ .c-toggle-knob-disabled {
24
+ background-color: var(--color-neutral-300);
25
+ }