@studiocms/ui 0.0.1 → 0.1.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.
@@ -25,7 +25,7 @@ const {
25
25
  ---
26
26
 
27
27
  <As
28
- class="button"
28
+ class="sui-button"
29
29
  class:list={[
30
30
  fullWidth && "full",
31
31
  disabled && "disabled",
@@ -44,7 +44,7 @@ const {
44
44
  </As>
45
45
  <style>
46
46
  /* Default Styles */
47
- .button {
47
+ .sui-button {
48
48
  display: flex;
49
49
  flex-direction: row;
50
50
  align-items: center;
@@ -79,53 +79,53 @@ const {
79
79
  text-decoration: none;
80
80
  }
81
81
 
82
- .button.disabled {
82
+ .sui-button.disabled {
83
83
  pointer-events: none;
84
84
  opacity: 0.5;
85
85
  }
86
86
 
87
- .button.outlined {
87
+ .sui-button.outlined {
88
88
  border-width: 1px;
89
89
  border-style: solid;
90
90
  }
91
91
 
92
- .button:hover {
92
+ .sui-button:hover {
93
93
  background-color: hsl(var(--default-hover));
94
94
  }
95
95
 
96
- .button:active {
96
+ .sui-button:active {
97
97
  background-color: hsl(var(--default-active));
98
98
  transform: scale(0.95);
99
99
  }
100
100
 
101
- .button.flat {
101
+ .sui-button.flat {
102
102
  background: hsla(var(--default-flat));
103
103
  }
104
104
 
105
- .button.flat:hover {
105
+ .sui-button.flat:hover {
106
106
  background: hsla(var(--default-flat-hover));
107
107
  }
108
108
 
109
- .button.flat:active {
109
+ .sui-button.flat:active {
110
110
  background: hsla(var(--default-flat-active));
111
111
  }
112
112
 
113
113
  /* Sizes */
114
- .button.sm {
114
+ .sui-button.sm {
115
115
  height: 32px;
116
116
  padding: 0.5rem 0.75rem;
117
117
 
118
118
  font-size: 0.825em;
119
119
  }
120
120
 
121
- .button.md {
121
+ .sui-button.md {
122
122
  height: 40px;
123
123
  padding: 0.5rem 0.75rem;
124
124
 
125
125
  font-size: 0.875em;
126
126
  }
127
127
 
128
- .button.lg {
128
+ .sui-button.lg {
129
129
  height: 48px;
130
130
  padding: 0.75rem 1rem;
131
131
 
@@ -133,205 +133,206 @@ const {
133
133
  }
134
134
 
135
135
  /* Primary Colorway */
136
- .button.primary {
136
+ .sui-button.primary {
137
137
  background-color: hsl(var(--primary-base));
138
138
  border-color: hsl(var(--primary-base));
139
139
  color: hsl(var(--text-inverted));
140
140
  }
141
141
 
142
- .button.primary:hover {
142
+ .sui-button.primary:hover {
143
143
  background-color: hsl(var(--primary-hover));
144
144
  }
145
145
 
146
- .button.primary:active {
146
+ .sui-button.primary:active {
147
147
  background-color: hsl(var(--primary-active));
148
148
  }
149
149
 
150
- .button.primary.outlined {
150
+ .sui-button.primary.outlined {
151
151
  background-color: hsl(var(--default-base));
152
152
  color: hsl(var(--text-normal));
153
153
  }
154
154
 
155
- .button.primary.outlined:hover {
155
+ .sui-button.primary.outlined:hover {
156
156
  background-color: hsl(var(--default-hover));
157
157
  }
158
158
 
159
- .button.primary.outlined:active {
159
+ .sui-button.primary.outlined:active {
160
160
  background-color: hsl(var(--default-active));
161
161
  }
162
162
 
163
- .button.primary.flat {
163
+ .sui-button.primary.flat {
164
164
  background-color: hsla(var(--primary-flat));
165
165
  color: hsl(259, 96%, 79%);
166
166
  }
167
167
 
168
- .button.primary.flat:hover {
168
+ .sui-button.primary.flat:hover {
169
169
  background-color: hsla(var(--primary-flat-hover));
170
170
  }
171
171
 
172
- .button.primary.flat:active {
172
+ .sui-button.primary.flat:active {
173
173
  background-color: hsla(var(--primary-flat-active));
174
174
  }
175
175
 
176
176
  /* Success Colorway */
177
- .button.success {
177
+ .sui-button.success {
178
178
  background-color: hsl(var(--success-base));
179
179
  border-color: hsl(var(--success-base));
180
180
  color: hsl(var(--text-dark));
181
181
  }
182
182
 
183
- .button.success:hover {
183
+ .sui-button.success:hover {
184
184
  background-color: hsl(var(--success-hover));
185
185
  }
186
186
 
187
- .button.success:active {
187
+ .sui-button.success:active {
188
188
  background-color: hsl(var(--success-active));
189
189
  }
190
190
 
191
- .button.success.outlined {
191
+ .sui-button.success.outlined {
192
192
  background-color: hsl(var(--default-base));
193
193
  color: hsl(var(--text-normal));
194
194
  }
195
195
 
196
- .button.success.outlined:hover {
196
+ .sui-button.success.outlined:hover {
197
197
  background-color: hsl(var(--default-hover));
198
198
  }
199
199
 
200
- .button.success.outlined:active {
200
+ .sui-button.success.outlined:active {
201
201
  background-color: hsl(var(--default-active));
202
202
  }
203
203
 
204
- .button.success.flat {
204
+ .sui-button.success.flat {
205
205
  background-color: hsla(var(--success-flat));
206
206
  color: hsl(var(--success-base));
207
207
  }
208
208
 
209
- .button.success.flat:hover {
209
+ .sui-button.success.flat:hover {
210
210
  background-color: hsla(var(--success-flat-hover));
211
211
  }
212
212
 
213
- .button.success.flat:active {
213
+ .sui-button.success.flat:active {
214
214
  background-color: hsla(var(--success-flat-active));
215
215
  }
216
216
 
217
217
  /* Warning Colorway */
218
- .button.warning {
218
+ .sui-button.warning {
219
219
  background-color: hsl(var(--warning-base));
220
220
  border-color: hsl(var(--warning-base));
221
221
  color: hsl(var(--text-dark));
222
222
  }
223
223
 
224
- .button.warning:hover {
224
+ .sui-button.warning:hover {
225
225
  background-color: hsl(var(--warning-hover));
226
226
  }
227
227
 
228
- .button.warning:active {
228
+ .sui-button.warning:active {
229
229
  background-color: hsl(var(--warning-active));
230
230
  }
231
231
 
232
- .button.warning.outlined {
232
+ .sui-button.warning.outlined {
233
233
  background-color: hsl(var(--default-base));
234
234
  color: hsl(var(--text-normal));
235
235
  }
236
236
 
237
- .button.warning.outlined:hover {
237
+ .sui-button.warning.outlined:hover {
238
238
  background-color: hsl(var(--default-hover));
239
239
  }
240
240
 
241
- .button.warning.outlined:active {
241
+ .sui-button.warning.outlined:active {
242
242
  background-color: hsl(var(--default-active));
243
243
  }
244
244
 
245
- .button.warning.flat {
245
+ .sui-button.warning.flat {
246
246
  background-color: hsla(var(--warning-flat));
247
247
  color: hsl(var(--warning-base));
248
248
  }
249
249
 
250
- .button.warning.flat:hover {
250
+ .sui-button.warning.flat:hover {
251
251
  background-color: hsla(var(--warning-flat-hover));
252
252
  }
253
253
 
254
- .button.warning.flat:active {
254
+ .sui-button.warning.flat:active {
255
255
  background-color: hsla(var(--warning-flat-active));
256
256
  }
257
257
 
258
258
  /* Danger Colorway */
259
- .button.danger {
259
+ .sui-button.danger {
260
260
  background-color: hsl(var(--danger-base));
261
261
  border-color: hsl(var(--danger-base));
262
262
  color: hsl(var(--text-light));
263
263
  }
264
264
 
265
- .button.danger:hover {
265
+ .sui-button.danger:hover {
266
266
  background-color: hsl(var(--danger-hover));
267
267
  }
268
268
 
269
- .button.danger:active {
269
+ .sui-button.danger:active {
270
270
  background-color: hsl(var(--danger-active));
271
271
  }
272
272
 
273
- .button.danger.outlined {
273
+ .sui-button.danger.outlined {
274
274
  background-color: hsl(var(--default-base));
275
275
  color: hsl(var(--text-normal));
276
276
  }
277
277
 
278
- .button.danger.outlined:hover {
278
+ .sui-button.danger.outlined:hover {
279
279
  background-color: hsl(var(--default-hover));
280
280
  }
281
281
 
282
- .button.danger.outlined:active {
282
+ .sui-button.danger.outlined:active {
283
283
  background-color: hsl(var(--default-active));
284
284
  }
285
285
 
286
- .button.danger.flat {
286
+ .sui-button.danger.flat {
287
287
  background-color: hsla(var(--danger-flat));
288
288
  color: hsl(337, 92%, 71%);
289
289
  }
290
290
 
291
- .button.danger.flat:hover {
291
+ .sui-button.danger.flat:hover {
292
292
  background-color: hsla(var(--danger-flat-hover));
293
293
  }
294
294
 
295
- .button.danger.flat:active {
295
+ .sui-button.danger.flat:active {
296
296
  background-color: hsla(var(--danger-flat-active));
297
297
  }
298
298
 
299
- .button.full {
299
+ .sui-button.full {
300
300
  width: 100%;
301
+ justify-content: center;
301
302
  }
302
303
 
303
304
  [data-theme="light"] {
304
- .button.primary.flat {
305
+ .sui-button.primary.flat {
305
306
  color: hsl(259, 84%, 45%);
306
307
  }
307
308
 
308
- .button.success.flat {
309
+ .sui-button.success.flat {
309
310
  background-color: hsl(var(--success-base), 0.2);
310
311
  color: hsl(143, 59%, 20%);
311
312
  }
312
313
 
313
- .button.success.flat:hover {
314
+ .sui-button.success.flat:hover {
314
315
  background-color: hsla(var(--success-flat-hover));
315
316
  }
316
317
 
317
- .button.success.flat:active {
318
+ .sui-button.success.flat:active {
318
319
  background-color: hsla(var(--success-flat-active));
319
320
  }
320
321
 
321
- .button.warning.flat {
322
+ .sui-button.warning.flat {
322
323
  background-color: hsla(var(--warning-base), 0.2);
323
324
  color: hsl(48, 78%, 20%);
324
325
  }
325
326
 
326
- .button.warning.flat:hover {
327
+ .sui-button.warning.flat:hover {
327
328
  background-color: hsla(var(--warning-base), 0.25);
328
329
  }
329
330
 
330
- .button.warning.flat:active {
331
+ .sui-button.warning.flat:active {
331
332
  background-color: hsla(var(--warning-base), 0.4);
332
333
  }
333
334
 
334
- .button.danger.flat {
335
+ .sui-button.danger.flat {
335
336
  color: hsl(339, 97%, 29%);
336
337
  }
337
338
  }
@@ -10,19 +10,19 @@ type Props<As extends HTMLTag = 'div'> = Omit<Polymorphic<{ as: As }>, 'as'> & {
10
10
 
11
11
  const { as: As = 'div', class: className, fullWidth, fullHeight, ...props } = Astro.props;
12
12
  ---
13
- <As class="card" class:list={[fullWidth && "full-w", fullHeight && "full-h", className]} {...props}>
14
- <div class="card-header">
13
+ <As class="sui-card" class:list={[fullWidth && "full-w", fullHeight && "full-h", className]} {...props}>
14
+ <div class="sui-card-header">
15
15
  <slot name="header" />
16
16
  </div>
17
- <div class="card-body">
17
+ <div class="sui-card-body">
18
18
  <slot />
19
19
  </div>
20
- <div class="card-footer">
20
+ <div class="sui-card-footer">
21
21
  <slot name="footer" />
22
22
  </div>
23
23
  </As>
24
24
  <style>
25
- .card {
25
+ .sui-card {
26
26
  border: 1px solid hsl(var(--border));
27
27
  background-color: hsl(var(--background-base));
28
28
  border-radius: .5rem;
@@ -30,32 +30,32 @@ const { as: As = 'div', class: className, fullWidth, fullHeight, ...props } = As
30
30
  height: fit-content;
31
31
  }
32
32
 
33
- .card.full-w {
33
+ .sui-card.full-w {
34
34
  width: 100%;
35
35
  }
36
36
 
37
- .card.full-h {
37
+ .sui-card.full-h {
38
38
  height: 100%;
39
39
  }
40
40
 
41
- .card-header:has(*) {
41
+ .sui-card-header:has(*) {
42
42
  padding: 1rem 1rem 0rem 1rem;
43
43
  * {
44
44
  margin: 0;
45
45
  }
46
46
  }
47
47
 
48
- .card-body {
48
+ .sui-card-body {
49
49
  padding: 1rem;
50
50
  }
51
51
 
52
- .card-footer:has(*) {
52
+ .sui-card-footer:has(*) {
53
53
  border-top: 1px solid hsl(var(--border));
54
54
  padding: 1rem;
55
55
  }
56
56
 
57
57
  @media screen and (max-width: 840px) {
58
- .card {
58
+ .sui-card {
59
59
  width: 100%;
60
60
  }
61
61
  }
@@ -1,9 +1,9 @@
1
1
  <!-- This was made for Jumper, to keep him happy <3 -->
2
- <div class="center">
2
+ <div class="sui-center">
3
3
  <slot />
4
4
  </div>
5
5
  <style>
6
- .center {
6
+ .sui-center {
7
7
  display: flex;
8
8
  align-items: center;
9
9
  justify-content: center;
@@ -11,7 +11,7 @@ interface Props {
11
11
  disabled?: boolean;
12
12
  name?: string;
13
13
  isRequired?: boolean;
14
- };
14
+ }
15
15
 
16
16
  const {
17
17
  size = 'md',
@@ -30,7 +30,7 @@ const iconSizes = {
30
30
  };
31
31
  ---
32
32
  <label
33
- class="checkmark-label"
33
+ class="sui-checkmark-label"
34
34
  for={name}
35
35
  class:list={[
36
36
  disabled && "disabled",
@@ -38,9 +38,9 @@ const iconSizes = {
38
38
  size,
39
39
  ]}
40
40
  >
41
- <div class="checkmark-container">
41
+ <div class="sui-checkmark-container">
42
42
  <Checkmark
43
- class={'checkmark'}
43
+ class={'sui-checkmark'}
44
44
  width={iconSizes[size]}
45
45
  height={iconSizes[size]}
46
46
  />
@@ -51,7 +51,7 @@ const iconSizes = {
51
51
  checked={defaultChecked}
52
52
  disabled={disabled}
53
53
  required={isRequired}
54
- class="checkbox"
54
+ class="sui-checkbox"
55
55
  />
56
56
  </div>
57
57
  <span>
@@ -59,7 +59,7 @@ const iconSizes = {
59
59
  </span>
60
60
  </label>
61
61
  <style>
62
- .checkmark-label {
62
+ .sui-checkmark-label {
63
63
  display: flex;
64
64
  flex-direction: row;
65
65
  align-items: center;
@@ -68,13 +68,13 @@ const iconSizes = {
68
68
  margin: .25rem 0;
69
69
  }
70
70
 
71
- .checkmark-label.disabled {
71
+ .sui-checkmark-label.disabled {
72
72
  opacity: 0.5;
73
73
  pointer-events: none;
74
74
  color: hsl(var(--text-muted));
75
75
  }
76
76
 
77
- .checkmark-container {
77
+ .sui-checkmark-container {
78
78
  display: flex;
79
79
  align-items: center;
80
80
  justify-content: center;
@@ -85,54 +85,55 @@ const iconSizes = {
85
85
  transition: all .15s ease;
86
86
  }
87
87
 
88
- .checkmark-label:hover .checkmark-container {
88
+ .sui-checkmark-label:hover .sui-checkmark-container {
89
89
  background-color: hsl(var(--default-hover));
90
90
  }
91
91
 
92
- .checkmark-label:active .checkmark-container {
92
+ .sui-checkmark-label:active .sui-checkmark-container {
93
93
  background-color: hsl(var(--default-active));
94
94
  scale: 0.9;
95
95
  }
96
96
 
97
- .checkmark-label.sm {
97
+ .sui-checkmark-label.sm {
98
98
  font-size: .875em;
99
99
  }
100
100
 
101
- .checkmark-label.sm .checkmark-container {
101
+ .sui-checkmark-label.sm .sui-checkmark-container {
102
102
  width: 1.25rem;
103
103
  height: 1.25rem;
104
104
  }
105
105
 
106
- .checkmark-label.md .checkmark-container {
106
+ .sui-checkmark-label.md .sui-checkmark-container {
107
107
  width: 1.5rem;
108
108
  height: 1.5rem;
109
109
  }
110
110
 
111
- .checkmark-label.lg {
111
+ .sui-checkmark-label.lg {
112
112
  font-size: 1.125em;
113
113
  }
114
114
 
115
- .checkmark-label.lg .checkmark-container {
115
+ .sui-checkmark-label.lg .sui-checkmark-container {
116
116
  width: 1.75rem;
117
117
  height: 1.75rem;
118
+ padding: .125rem;
118
119
  }
119
120
 
120
- .primary .checkmark-container:has(.checkbox:checked) {
121
+ .primary .sui-checkmark-container:has(.sui-checkbox:checked) {
121
122
  border-color: hsl(var(--primary-base));
122
123
  background-color: hsl(var(--primary-base));
123
124
  }
124
125
 
125
- .success .checkmark-container:has(.checkbox:checked) {
126
+ .success .sui-checkmark-container:has(.sui-checkbox:checked) {
126
127
  border-color: hsl(var(--success-base));
127
128
  background-color: hsl(var(--success-base));
128
129
  }
129
130
 
130
- .warning .checkmark-container:has(.checkbox:checked) {
131
+ .warning .sui-checkmark-container:has(.sui-checkbox:checked) {
131
132
  border-color: hsl(var(--warning-base));
132
133
  background-color: hsl(var(--warning-base));
133
134
  }
134
135
 
135
- .danger .checkmark-container:has(.checkbox:checked) {
136
+ .danger .sui-checkmark-container:has(.sui-checkbox:checked) {
136
137
  border-color: hsl(var(--danger-base));
137
138
  background-color: hsl(var(--danger-base));
138
139
  }
@@ -142,7 +143,7 @@ const iconSizes = {
142
143
  font-weight: 700;
143
144
  }
144
145
 
145
- .checkbox {
146
+ .sui-checkbox {
146
147
  width: 0;
147
148
  height: 0;
148
149
  visibility: hidden;
@@ -151,29 +152,29 @@ const iconSizes = {
151
152
  }
152
153
  </style>
153
154
  <style is:global>
154
- .checkmark polyline {
155
+ .sui-checkmark polyline {
155
156
  transition: all .15s ease;
156
157
  color: hsl(var(--text-normal));
157
158
  }
158
159
 
159
- .primary .checkmark polyline {
160
+ .primary .sui-checkmark polyline {
160
161
  color: hsl(var(--text-inverted));
161
162
  }
162
163
 
163
- .success .checkmark polyline {
164
+ .success .sui-checkmark polyline {
164
165
  color: hsl(var(--text-dark));
165
166
  }
166
167
 
167
- .warning .checkmark polyline {
168
+ .warning .sui-checkmark polyline {
168
169
  color: hsl(var(--text-dark));
169
170
  }
170
171
 
171
- .danger .checkmark polyline {
172
+ .danger .sui-checkmark polyline {
172
173
  color: hsl(var(--text-light));
173
174
  }
174
175
 
175
- .checkmark-container:has(.checkbox:checked) {
176
- .checkmark polyline {
176
+ .sui-checkmark-container:has(.sui-checkbox:checked) {
177
+ .sui-checkmark polyline {
177
178
  stroke-dashoffset: 44;
178
179
  }
179
180
  }
@@ -1,18 +1,18 @@
1
1
  ---
2
2
  interface Props {
3
- background?: 'background-base' | 'background-step-1' | 'background-step-2' | 'background-step-3';
4
- };
3
+ background?: 'background-base' | 'background-step-1' | 'background-step-2' | 'background-step-3';
4
+ }
5
5
 
6
6
  const { background = 'background-base' } = Astro.props;
7
7
  ---
8
- <div class="divide-container">
9
- <div class="line" />
10
- <div class="content" style={`background-color: hsl(var(--${background}));`}>
8
+ <div class="sui-divider-container">
9
+ <div class="sui-divider-line" />
10
+ <div class="sui-divider-content" style={`background-color: hsl(var(--${background}));`}>
11
11
  <slot />
12
12
  </div>
13
13
  </div>
14
14
  <style>
15
- .divide-container {
15
+ .sui-divider-container {
16
16
  display: flex;
17
17
  width: 100%;
18
18
  align-items: center;
@@ -20,7 +20,7 @@ const { background = 'background-base' } = Astro.props;
20
20
  position: relative;
21
21
  }
22
22
 
23
- .line {
23
+ .sui-divider-line {
24
24
  position: absolute;
25
25
  top: 50%;
26
26
  left: 50%;
@@ -31,7 +31,7 @@ const { background = 'background-base' } = Astro.props;
31
31
  z-index: 1;
32
32
  }
33
33
 
34
- .content {
34
+ .sui-divider-content {
35
35
  padding: .25rem .5rem;
36
36
  z-index: 2;
37
37
  color: hsl(var(--text-muted));