zenkit-css 1.2.2 → 1.3.0

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 (82) hide show
  1. package/dist/zenkit.css +9481 -0
  2. package/dist/zenkit.css.map +1 -1
  3. package/dist/zenkit.min.css +1 -1
  4. package/dist/zenkit.min.css.map +1 -1
  5. package/package.json +1 -1
  6. package/scss/components/_actionicon.scss +141 -0
  7. package/scss/components/_angleslider.scss +75 -0
  8. package/scss/components/_appbar.scss +96 -0
  9. package/scss/components/_appshell.scss +137 -0
  10. package/scss/components/_backdrop.scss +66 -0
  11. package/scss/components/_backgroundimage.scss +81 -0
  12. package/scss/components/_blockquote.scss +70 -0
  13. package/scss/components/_cards.scss +367 -0
  14. package/scss/components/_center.scss +33 -0
  15. package/scss/components/_chart.scss +100 -0
  16. package/scss/components/_checkboxcard.scss +105 -0
  17. package/scss/components/_checkboxgroup.scss +45 -0
  18. package/scss/components/_collapse.scss +76 -0
  19. package/scss/components/_colorinput.scss +103 -0
  20. package/scss/components/_colorswatch.scss +94 -0
  21. package/scss/components/_combobox.scss +157 -0
  22. package/scss/components/_contextmenu.scss +150 -0
  23. package/scss/components/_copybutton.scss +117 -0
  24. package/scss/components/_datagrid.scss +200 -0
  25. package/scss/components/_datalist.scss +104 -0
  26. package/scss/components/_daterange.scss +614 -0
  27. package/scss/components/_datetimepicker.scss +123 -0
  28. package/scss/components/_dialog.scss +176 -0
  29. package/scss/components/_dropzone.scss +159 -0
  30. package/scss/components/_filebutton.scss +64 -0
  31. package/scss/components/_fileinput.scss +157 -0
  32. package/scss/components/_floatcomponent.scss +128 -0
  33. package/scss/components/_floatingindicator.scss +49 -0
  34. package/scss/components/_forms.scss +327 -0
  35. package/scss/components/_gauge.scss +143 -0
  36. package/scss/components/_group.scss +100 -0
  37. package/scss/components/_heading.scss +143 -0
  38. package/scss/components/_highlight.scss +60 -0
  39. package/scss/components/_imagelist.scss +657 -0
  40. package/scss/components/_indicator.scss +171 -0
  41. package/scss/components/_infinitescroll.scss +53 -0
  42. package/scss/components/_jsoninput.scss +124 -0
  43. package/scss/components/_label.scss +77 -0
  44. package/scss/components/_loadingoverlay.scss +80 -0
  45. package/scss/components/_mark.scss +72 -0
  46. package/scss/components/_monthpicker.scss +141 -0
  47. package/scss/components/_multiselect.scss +192 -0
  48. package/scss/components/_navlink.scss +127 -0
  49. package/scss/components/_overlay.scss +97 -0
  50. package/scss/components/_paper.scss +98 -0
  51. package/scss/components/_pill.scss +141 -0
  52. package/scss/components/_radiocard.scss +122 -0
  53. package/scss/components/_rangeslider.scss +146 -0
  54. package/scss/components/_richtexteditor.scss +222 -0
  55. package/scss/components/_ringprogress.scss +101 -0
  56. package/scss/components/_scrollshadow.scss +152 -0
  57. package/scss/components/_semicircleprogress.scss +116 -0
  58. package/scss/components/_separator.scss +126 -0
  59. package/scss/components/_sheet.scss +612 -0
  60. package/scss/components/_simplegrid.scss +129 -0
  61. package/scss/components/_skipnavlink.scss +51 -0
  62. package/scss/components/_slider.scss +199 -0
  63. package/scss/components/_snippet.scss +576 -0
  64. package/scss/components/_sortable.scss +115 -0
  65. package/scss/components/_sparkline.scss +124 -0
  66. package/scss/components/_splitbutton.scss +153 -0
  67. package/scss/components/_spoiler.scss +73 -0
  68. package/scss/components/_stepper.scss +153 -0
  69. package/scss/components/_tableofcontents.scss +107 -0
  70. package/scss/components/_tabs.scss +379 -0
  71. package/scss/components/_tagsinput.scss +158 -0
  72. package/scss/components/_textcomponent.scss +183 -0
  73. package/scss/components/_themeicon.scss +121 -0
  74. package/scss/components/_toast.scss +335 -0
  75. package/scss/components/_togglegroup.scss +137 -0
  76. package/scss/components/_toolbar.scss +140 -0
  77. package/scss/components/_unstyledbutton.scss +43 -0
  78. package/scss/components/_user.scss +118 -0
  79. package/scss/components/_virtuallist.scss +118 -0
  80. package/scss/components/_yearpicker.scss +145 -0
  81. package/scss/utilities/_accessibility.scss +470 -0
  82. package/scss/zenkit.scss +80 -0
@@ -0,0 +1,122 @@
1
+ // ========================================
2
+ // RadioCard Component
3
+ // ========================================
4
+
5
+ .radio-card {
6
+ --zk-radio-card-bg: var(--zk-bg-primary);
7
+ --zk-radio-card-border-color: var(--zk-border-color);
8
+ --zk-radio-card-checked-border-color: var(--zk-primary);
9
+ --zk-radio-card-checked-bg: rgba(var(--zk-primary-rgb), 0.05);
10
+
11
+ display: block;
12
+ position: relative;
13
+ padding: 1rem;
14
+ background: var(--zk-radio-card-bg);
15
+ border: 2px solid var(--zk-radio-card-border-color);
16
+ border-radius: var(--zk-radius-md);
17
+ cursor: pointer;
18
+ transition: all 0.2s ease;
19
+
20
+ &:hover {
21
+ border-color: var(--zk-primary);
22
+ }
23
+
24
+ // Hidden input
25
+ &-input {
26
+ position: absolute;
27
+ opacity: 0;
28
+ width: 0;
29
+ height: 0;
30
+
31
+ &:checked + .radio-card-content {
32
+ .radio-card-indicator {
33
+ border-color: var(--zk-primary);
34
+
35
+ &::after {
36
+ transform: scale(1);
37
+ }
38
+ }
39
+ }
40
+
41
+ &:focus-visible + .radio-card-content {
42
+ outline: 2px solid var(--zk-primary);
43
+ outline-offset: 2px;
44
+ }
45
+
46
+ &:disabled + .radio-card-content {
47
+ opacity: 0.5;
48
+ cursor: not-allowed;
49
+ }
50
+ }
51
+
52
+ &-checked {
53
+ border-color: var(--zk-radio-card-checked-border-color);
54
+ background: var(--zk-radio-card-checked-bg);
55
+ }
56
+
57
+ &-content {
58
+ display: flex;
59
+ gap: 0.75rem;
60
+ }
61
+
62
+ &-indicator {
63
+ position: relative;
64
+ width: 20px;
65
+ height: 20px;
66
+ border: 2px solid var(--zk-border-color);
67
+ border-radius: 50%;
68
+ flex-shrink: 0;
69
+ transition: border-color 0.2s ease;
70
+
71
+ &::after {
72
+ content: "";
73
+ position: absolute;
74
+ top: 50%;
75
+ left: 50%;
76
+ width: 10px;
77
+ height: 10px;
78
+ background: var(--zk-primary);
79
+ border-radius: 50%;
80
+ transform: translate(-50%, -50%) scale(0);
81
+ transition: transform 0.2s ease;
82
+ }
83
+ }
84
+
85
+ &-body {
86
+ flex: 1;
87
+ }
88
+
89
+ &-title {
90
+ font-weight: 600;
91
+ color: var(--zk-text-primary);
92
+ margin-bottom: 0.25rem;
93
+ }
94
+
95
+ &-description {
96
+ font-size: 0.875rem;
97
+ color: var(--zk-text-muted);
98
+ }
99
+
100
+ &-icon {
101
+ width: 40px;
102
+ height: 40px;
103
+ display: flex;
104
+ align-items: center;
105
+ justify-content: center;
106
+ background: var(--zk-bg-secondary);
107
+ border-radius: var(--zk-radius-sm);
108
+ margin-bottom: 0.5rem;
109
+ color: var(--zk-primary);
110
+ }
111
+
112
+ // Group
113
+ &-group {
114
+ display: flex;
115
+ flex-wrap: wrap;
116
+ gap: 1rem;
117
+
118
+ &-vertical {
119
+ flex-direction: column;
120
+ }
121
+ }
122
+ }
@@ -0,0 +1,146 @@
1
+ // ========================================
2
+ // RangeSlider Component
3
+ // ========================================
4
+
5
+ .range-slider {
6
+ --zk-slider-track-height: 6px;
7
+ --zk-slider-thumb-size: 16px;
8
+ --zk-slider-track-bg: var(--zk-bg-tertiary);
9
+ --zk-slider-fill-bg: var(--zk-primary);
10
+ --zk-slider-thumb-bg: var(--zk-primary);
11
+
12
+ position: relative;
13
+ width: 100%;
14
+ height: var(--zk-slider-thumb-size);
15
+ display: flex;
16
+ align-items: center;
17
+ touch-action: none;
18
+ user-select: none;
19
+
20
+ &-track {
21
+ position: absolute;
22
+ left: 0;
23
+ right: 0;
24
+ height: var(--zk-slider-track-height);
25
+ background: var(--zk-slider-track-bg);
26
+ border-radius: calc(var(--zk-slider-track-height) / 2);
27
+ }
28
+
29
+ &-range {
30
+ position: absolute;
31
+ height: var(--zk-slider-track-height);
32
+ background: var(--zk-slider-fill-bg);
33
+ border-radius: calc(var(--zk-slider-track-height) / 2);
34
+ }
35
+
36
+ &-thumb {
37
+ position: absolute;
38
+ width: var(--zk-slider-thumb-size);
39
+ height: var(--zk-slider-thumb-size);
40
+ background: var(--zk-slider-thumb-bg);
41
+ border: 2px solid #fff;
42
+ border-radius: 50%;
43
+ cursor: grab;
44
+ box-shadow: var(--zk-shadow-md);
45
+ transform: translateX(-50%);
46
+ transition: transform 0.1s ease;
47
+ z-index: 1;
48
+
49
+ &:hover {
50
+ transform: translateX(-50%) scale(1.1);
51
+ }
52
+
53
+ &:active {
54
+ cursor: grabbing;
55
+ transform: translateX(-50%) scale(1.15);
56
+ }
57
+
58
+ &:focus-visible {
59
+ outline: 2px solid var(--zk-primary);
60
+ outline-offset: 2px;
61
+ }
62
+ }
63
+
64
+ &-label {
65
+ position: absolute;
66
+ bottom: calc(100% + 8px);
67
+ left: 50%;
68
+ transform: translateX(-50%);
69
+ padding: 0.25rem 0.5rem;
70
+ background: var(--zk-bg-tertiary);
71
+ border-radius: var(--zk-radius-sm);
72
+ font-size: 0.75rem;
73
+ font-weight: 500;
74
+ white-space: nowrap;
75
+ opacity: 0;
76
+ visibility: hidden;
77
+ transition: opacity 0.2s ease, visibility 0.2s ease;
78
+ }
79
+
80
+ &-thumb:hover &-label,
81
+ &-thumb:focus &-label {
82
+ opacity: 1;
83
+ visibility: visible;
84
+ }
85
+
86
+ // Marks
87
+ &-marks {
88
+ position: absolute;
89
+ left: 0;
90
+ right: 0;
91
+ top: calc(100% + 8px);
92
+ display: flex;
93
+ justify-content: space-between;
94
+ }
95
+
96
+ &-mark {
97
+ position: relative;
98
+ font-size: 0.75rem;
99
+ color: var(--zk-text-muted);
100
+
101
+ &::before {
102
+ content: "";
103
+ position: absolute;
104
+ bottom: 100%;
105
+ left: 50%;
106
+ transform: translateX(-50%);
107
+ width: 2px;
108
+ height: 8px;
109
+ background: var(--zk-border-color);
110
+ margin-bottom: 4px;
111
+ }
112
+ }
113
+
114
+ // Sizes
115
+ &-sm {
116
+ --zk-slider-track-height: 4px;
117
+ --zk-slider-thumb-size: 12px;
118
+ }
119
+
120
+ &-lg {
121
+ --zk-slider-track-height: 8px;
122
+ --zk-slider-thumb-size: 20px;
123
+ }
124
+
125
+ // Disabled
126
+ &-disabled {
127
+ opacity: 0.5;
128
+ pointer-events: none;
129
+ }
130
+
131
+ // Color variants
132
+ &-success {
133
+ --zk-slider-fill-bg: var(--zk-success);
134
+ --zk-slider-thumb-bg: var(--zk-success);
135
+ }
136
+
137
+ &-warning {
138
+ --zk-slider-fill-bg: var(--zk-warning);
139
+ --zk-slider-thumb-bg: var(--zk-warning);
140
+ }
141
+
142
+ &-danger {
143
+ --zk-slider-fill-bg: var(--zk-danger);
144
+ --zk-slider-thumb-bg: var(--zk-danger);
145
+ }
146
+ }
@@ -0,0 +1,222 @@
1
+ // ========================================
2
+ // RichTextEditor Component
3
+ // ========================================
4
+
5
+ .rich-text-editor {
6
+ --zk-rte-bg: var(--zk-bg-primary);
7
+ --zk-rte-border-color: var(--zk-border-color);
8
+ --zk-rte-toolbar-bg: var(--zk-bg-secondary);
9
+
10
+ border: 1px solid var(--zk-rte-border-color);
11
+ border-radius: var(--zk-radius-md);
12
+ overflow: hidden;
13
+
14
+ &-toolbar {
15
+ display: flex;
16
+ flex-wrap: wrap;
17
+ gap: 0.25rem;
18
+ padding: 0.5rem;
19
+ background: var(--zk-rte-toolbar-bg);
20
+ border-bottom: 1px solid var(--zk-rte-border-color);
21
+ }
22
+
23
+ &-toolbar-group {
24
+ display: flex;
25
+ gap: 0.125rem;
26
+ padding-right: 0.5rem;
27
+ border-right: 1px solid var(--zk-rte-border-color);
28
+
29
+ &:last-child {
30
+ border-right: none;
31
+ padding-right: 0;
32
+ }
33
+ }
34
+
35
+ &-toolbar-btn {
36
+ display: flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ width: 32px;
40
+ height: 32px;
41
+ background: transparent;
42
+ border: none;
43
+ border-radius: var(--zk-radius-sm);
44
+ cursor: pointer;
45
+ color: var(--zk-text-secondary);
46
+ transition: all 0.15s ease;
47
+
48
+ &:hover {
49
+ background: var(--zk-bg-primary);
50
+ color: var(--zk-text-primary);
51
+ }
52
+
53
+ &-active {
54
+ background: var(--zk-primary);
55
+ color: #fff;
56
+
57
+ &:hover {
58
+ background: var(--zk-primary);
59
+ color: #fff;
60
+ }
61
+ }
62
+
63
+ &-disabled {
64
+ opacity: 0.5;
65
+ cursor: not-allowed;
66
+ }
67
+ }
68
+
69
+ &-content {
70
+ min-height: 200px;
71
+ padding: 1rem;
72
+ background: var(--zk-rte-bg);
73
+ outline: none;
74
+ font-size: 1rem;
75
+ line-height: 1.6;
76
+ color: var(--zk-text-primary);
77
+
78
+ &:focus {
79
+ outline: none;
80
+ }
81
+
82
+ // Content styles
83
+ h1,
84
+ h2,
85
+ h3,
86
+ h4,
87
+ h5,
88
+ h6 {
89
+ margin-top: 1.5em;
90
+ margin-bottom: 0.5em;
91
+ font-weight: 600;
92
+ line-height: 1.3;
93
+ }
94
+
95
+ h1 {
96
+ font-size: 2em;
97
+ }
98
+ h2 {
99
+ font-size: 1.5em;
100
+ }
101
+ h3 {
102
+ font-size: 1.25em;
103
+ }
104
+
105
+ p {
106
+ margin-bottom: 1em;
107
+ }
108
+
109
+ ul,
110
+ ol {
111
+ margin-bottom: 1em;
112
+ padding-left: 1.5em;
113
+ }
114
+
115
+ li {
116
+ margin-bottom: 0.25em;
117
+ }
118
+
119
+ blockquote {
120
+ margin: 1em 0;
121
+ padding-left: 1em;
122
+ border-left: 3px solid var(--zk-primary);
123
+ color: var(--zk-text-muted);
124
+ font-style: italic;
125
+ }
126
+
127
+ code {
128
+ padding: 0.2em 0.4em;
129
+ background: var(--zk-bg-secondary);
130
+ border-radius: 3px;
131
+ font-family: monospace;
132
+ font-size: 0.9em;
133
+ }
134
+
135
+ pre {
136
+ margin: 1em 0;
137
+ padding: 1em;
138
+ background: var(--zk-bg-secondary);
139
+ border-radius: var(--zk-radius-md);
140
+ overflow-x: auto;
141
+
142
+ code {
143
+ padding: 0;
144
+ background: transparent;
145
+ }
146
+ }
147
+
148
+ a {
149
+ color: var(--zk-primary);
150
+ text-decoration: underline;
151
+ }
152
+
153
+ img {
154
+ max-width: 100%;
155
+ height: auto;
156
+ }
157
+
158
+ hr {
159
+ margin: 1.5em 0;
160
+ border: none;
161
+ border-top: 1px solid var(--zk-border-color);
162
+ }
163
+
164
+ table {
165
+ width: 100%;
166
+ border-collapse: collapse;
167
+ margin: 1em 0;
168
+
169
+ th,
170
+ td {
171
+ border: 1px solid var(--zk-border-color);
172
+ padding: 0.5em;
173
+ }
174
+
175
+ th {
176
+ background: var(--zk-bg-secondary);
177
+ font-weight: 600;
178
+ }
179
+ }
180
+ }
181
+
182
+ &-placeholder {
183
+ color: var(--zk-text-muted);
184
+ }
185
+
186
+ &-footer {
187
+ display: flex;
188
+ align-items: center;
189
+ justify-content: space-between;
190
+ padding: 0.5rem;
191
+ background: var(--zk-rte-toolbar-bg);
192
+ border-top: 1px solid var(--zk-rte-border-color);
193
+ font-size: 0.75rem;
194
+ color: var(--zk-text-muted);
195
+ }
196
+
197
+ // Sticky toolbar
198
+ &-sticky-toolbar {
199
+ .rich-text-editor-toolbar {
200
+ position: sticky;
201
+ top: 0;
202
+ z-index: 10;
203
+ }
204
+ }
205
+
206
+ // Disabled
207
+ &-disabled {
208
+ opacity: 0.6;
209
+ pointer-events: none;
210
+ }
211
+
212
+ // Read only
213
+ &-readonly {
214
+ .rich-text-editor-toolbar {
215
+ display: none;
216
+ }
217
+
218
+ .rich-text-editor-content {
219
+ background: var(--zk-bg-secondary);
220
+ }
221
+ }
222
+ }
@@ -0,0 +1,101 @@
1
+ // ========================================
2
+ // RingProgress Component
3
+ // ========================================
4
+
5
+ .ring-progress {
6
+ --zk-ring-size: 120px;
7
+ --zk-ring-thickness: 12px;
8
+ --zk-ring-track-color: var(--zk-bg-tertiary);
9
+ --zk-ring-fill-color: var(--zk-primary);
10
+ --zk-ring-round-caps: 1;
11
+
12
+ position: relative;
13
+ width: var(--zk-ring-size);
14
+ height: var(--zk-ring-size);
15
+ display: inline-flex;
16
+ align-items: center;
17
+ justify-content: center;
18
+
19
+ &-svg {
20
+ width: 100%;
21
+ height: 100%;
22
+ transform: rotate(-90deg);
23
+ }
24
+
25
+ &-track {
26
+ fill: none;
27
+ stroke: var(--zk-ring-track-color);
28
+ stroke-width: var(--zk-ring-thickness);
29
+ }
30
+
31
+ &-section {
32
+ fill: none;
33
+ stroke-width: var(--zk-ring-thickness);
34
+ stroke-linecap: round;
35
+ transition: stroke-dashoffset 0.5s ease;
36
+ }
37
+
38
+ &-label {
39
+ position: absolute;
40
+ display: flex;
41
+ flex-direction: column;
42
+ align-items: center;
43
+ justify-content: center;
44
+ text-align: center;
45
+
46
+ &-value {
47
+ font-size: 1.5rem;
48
+ font-weight: 700;
49
+ color: var(--zk-text-primary);
50
+ line-height: 1;
51
+ }
52
+
53
+ &-text {
54
+ font-size: 0.75rem;
55
+ color: var(--zk-text-muted);
56
+ margin-top: 0.25rem;
57
+ }
58
+ }
59
+
60
+ // Sizes
61
+ &-xs {
62
+ --zk-ring-size: 60px;
63
+ --zk-ring-thickness: 6px;
64
+
65
+ .ring-progress-label-value {
66
+ font-size: 0.875rem;
67
+ }
68
+ }
69
+
70
+ &-sm {
71
+ --zk-ring-size: 80px;
72
+ --zk-ring-thickness: 8px;
73
+
74
+ .ring-progress-label-value {
75
+ font-size: 1rem;
76
+ }
77
+ }
78
+
79
+ &-md {
80
+ --zk-ring-size: 120px;
81
+ --zk-ring-thickness: 12px;
82
+ }
83
+
84
+ &-lg {
85
+ --zk-ring-size: 160px;
86
+ --zk-ring-thickness: 16px;
87
+
88
+ .ring-progress-label-value {
89
+ font-size: 2rem;
90
+ }
91
+ }
92
+
93
+ &-xl {
94
+ --zk-ring-size: 200px;
95
+ --zk-ring-thickness: 20px;
96
+
97
+ .ring-progress-label-value {
98
+ font-size: 2.5rem;
99
+ }
100
+ }
101
+ }