lapikit 0.6.4 → 0.6.6

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.
@@ -43,13 +43,23 @@
43
43
  styleProps
44
44
  })
45
45
  );
46
+
47
+ let resolvedStyle = $derived(
48
+ [
49
+ componentStyle,
50
+ color ? `--kit-accordion-item-fg:${color && `var(--kit-color-${color})`}` : '',
51
+ background ? `--kit-accordion-item-bg:${background && `var(--kit-color-${background})`}` : ''
52
+ ]
53
+ .filter(Boolean)
54
+ .join('; ')
55
+ );
46
56
  </script>
47
57
 
48
58
  <svelte:element
49
59
  this={is}
50
60
  bind:this={ref}
51
61
  class={componentClass}
52
- style={componentStyle}
62
+ style={resolvedStyle}
53
63
  data-text={text ? true : undefined}
54
64
  data-spacer={spacer}
55
65
  data-hide-icon={hideIcon}
@@ -57,8 +67,6 @@
57
67
  data-variant={variant}
58
68
  data-density={density}
59
69
  data-rounded={rounded}
60
- style:--kit-accordion-item-fg={color && `var(--kit-color-${color})`}
61
- style:--kit-accordion-item-bg={background && `var(--kit-color-${background})`}
62
70
  {...restProps}
63
71
  >
64
72
  {@render children?.()}
@@ -109,6 +117,10 @@
109
117
  border-bottom-right-radius: var(--kit-accordion-item-radius);
110
118
  }
111
119
 
120
+ .kit-accordion:not([data-spacer='true']) :global(.kit-accordion-item:first-child:last-child) {
121
+ border-radius: var(--kit-accordion-item-radius);
122
+ }
123
+
112
124
  .kit-accordion[data-hide-icon='true'] :global(.kit-accordion-item__indicator) {
113
125
  display: none;
114
126
  }
@@ -143,21 +155,14 @@
143
155
  * density
144
156
  * @link no links
145
157
  */
146
- .kit-accordion[data-density='none'] {
147
- --kit-accordion-density-scale: 0;
148
- --kit-accordion-density-h-scale: 0;
149
- }
150
158
  .kit-accordion[data-density='compact'] {
151
- --kit-accordion-density-scale: 0.9;
152
- --kit-accordion-density-h-scale: 0.92;
159
+ --kit-accordion-density-offset: var(--kit-density-compact);
153
160
  }
154
161
  .kit-accordion[data-density='default'] {
155
- --kit-accordion-density-scale: 1;
156
- --kit-accordion-density-h-scale: 1;
162
+ --kit-accordion-density-offset: var(--kit-density-default);
157
163
  }
158
164
  .kit-accordion[data-density='comfortable'] {
159
- --kit-accordion-density-scale: 1.1;
160
- --kit-accordion-density-h-scale: 1.15;
165
+ --kit-accordion-density-offset: var(--kit-density-comfortable);
161
166
  }
162
167
 
163
168
  /**
@@ -218,33 +223,33 @@
218
223
  * @link nothing...
219
224
  */
220
225
  .kit-accordion[data-size='xs'] :global(.kit-accordion-item) {
221
- --kit-accordion-item-h: 28px;
222
- --kit-accordion-item-px: 10px;
223
- --kit-accordion-item-gap: 4px;
224
- --kit-accordion-item-font: 0.75rem;
226
+ --kit-accordion-item-h: 32px;
227
+ --kit-accordion-item-p: 8px;
228
+ --kit-accordion-item-gap: var(--kit-space-compact);
229
+ --kit-accordion-item-font: var(--kit-font-xs);
225
230
  }
226
231
  .kit-accordion[data-size='sm'] :global(.kit-accordion-item) {
227
- --kit-accordion-item-h: 32px;
228
- --kit-accordion-item-px: 12px;
229
- --kit-accordion-item-gap: 6px;
230
- --kit-accordion-item-font: 0.875rem;
232
+ --kit-accordion-item-h: 40px;
233
+ --kit-accordion-item-p: 10px;
234
+ --kit-accordion-item-gap: var(--kit-space-default);
235
+ --kit-accordion-item-font: var(--kit-font-sm);
231
236
  }
232
237
  .kit-accordion[data-size='md'] :global(.kit-accordion-item) {
233
- --kit-accordion-item-h: 40px;
234
- --kit-accordion-item-px: 16px;
235
- --kit-accordion-item-gap: 8px;
236
- --kit-accordion-item-font: 1rem;
238
+ --kit-accordion-item-h: 48px;
239
+ --kit-accordion-item-p: 12px;
240
+ --kit-accordion-item-gap: var(--kit-space-default);
241
+ --kit-accordion-item-font: var(--kit-font-md);
237
242
  }
238
243
  .kit-accordion[data-size='lg'] :global(.kit-accordion-item) {
239
- --kit-accordion-item-h: 48px;
240
- --kit-accordion-item-px: 20px;
241
- --kit-accordion-item-gap: 10px;
242
- --kit-accordion-item-font: 1.125rem;
244
+ --kit-accordion-item-h: 56px;
245
+ --kit-accordion-item-p: 16px;
246
+ --kit-accordion-item-gap: var(--kit-space-default);
247
+ --kit-accordion-item-font: var(--kit-font-lg);
243
248
  }
244
249
  .kit-accordion[data-size='xl'] :global(.kit-accordion-item) {
245
- --kit-accordion-item-h: 56px;
246
- --kit-accordion-item-px: 24px;
247
- --kit-accordion-item-gap: 12px;
248
- --kit-accordion-item-font: 1.25rem;
250
+ --kit-accordion-item-h: 64px;
251
+ --kit-accordion-item-p: 20px;
252
+ --kit-accordion-item-gap: var(--kit-space-comfortable);
253
+ --kit-accordion-item-font: var(--kit-font-xl);
249
254
  }
250
255
  </style>
@@ -46,8 +46,6 @@
46
46
  })
47
47
  );
48
48
 
49
- let mergedStyle = $derived([componentStyle].filter(Boolean).join('; '));
50
-
51
49
  let safeOpen = $derived(!!open);
52
50
  let model: AccordionItemModelProps = {
53
51
  get open() {
@@ -61,21 +59,29 @@
61
59
  if (readOnly || disabled || !toggle) return;
62
60
  toggle(index);
63
61
  }
62
+
63
+ let resolvedStyle = $derived(
64
+ [
65
+ componentStyle,
66
+ color ? `--kit-accordion-item-fg:${color && `var(--kit-color-${color})`}` : '',
67
+ background ? `--kit-accordion-item-bg:${background && `var(--kit-color-${background})`}` : ''
68
+ ]
69
+ .filter(Boolean)
70
+ .join('; ')
71
+ );
64
72
  </script>
65
73
 
66
74
  <svelte:element
67
75
  this={is}
68
76
  bind:this={ref}
69
77
  class={componentClass}
70
- style={mergedStyle}
78
+ style={resolvedStyle}
71
79
  data-disabled={disabled}
72
80
  data-read-only={readOnly}
73
81
  data-active={safeOpen}
74
82
  data-elevation={elevationState.base}
75
83
  data-elevation-hover={elevationState.hover}
76
84
  data-elevation-active={elevationState.active}
77
- style:--kit-accordion-item-fg={color && `var(--kit-color-${color})`}
78
- style:--kit-accordion-item-bg={background && `var(--kit-color-${background})`}
79
85
  {...restProps}
80
86
  >
81
87
  <span class="outline"></span>
@@ -148,8 +154,8 @@
148
154
  align-items: center;
149
155
  justify-content: space-between;
150
156
  gap: var(--kit-accordion-item-gap);
151
- min-height: calc(var(--kit-accordion-item-h) * var(--kit-accordion-density-h-scale));
152
- padding: calc(var(--kit-accordion-item-px) * var(--kit-accordion-density-scale));
157
+ min-height: calc(var(--kit-accordion-item-h) + var(--kit-accordion-density-offset) / 2);
158
+ padding: calc(var(--kit-accordion-item-p) + var(--kit-accordion-density-offset) / 2);
153
159
  cursor: pointer;
154
160
  text-align: left;
155
161
  background: var(--kit-accordion-item-bg);
@@ -189,7 +195,7 @@
189
195
  }
190
196
 
191
197
  .kit-accordion-item__content-inner {
192
- padding: calc(var(--kit-accordion-item-px) * var(--kit-accordion-density-scale));
198
+ padding: calc(var(--kit-accordion-item-p) + var(--kit-accordion-density-offset) / 2);
193
199
  }
194
200
 
195
201
  .kit-accordion-item__separator {
@@ -214,7 +220,7 @@
214
220
  } */
215
221
 
216
222
  .kit-accordion-item[data-disabled='false'][data-read-only='false'] > button:focus-visible {
217
- outline: 2px solid var(--kit-focus);
223
+ outline: 2px solid var(--kit-color-focus);
218
224
  outline-offset: 2px;
219
225
  }
220
226
 
@@ -43,7 +43,7 @@
43
43
  })
44
44
  );
45
45
 
46
- let baseStyle = $derived(
46
+ let componentStyle = $derived(
47
47
  useStyles({
48
48
  styleAttr,
49
49
  sStyle,
@@ -51,7 +51,15 @@
51
51
  })
52
52
  );
53
53
 
54
- let mergedStyle = $derived([baseStyle].filter(Boolean).join('; '));
54
+ let resolvedStyle = $derived(
55
+ [
56
+ componentStyle,
57
+ color ? `--kit-alert-fg:${color && `var(--kit-color-${color})`}` : '',
58
+ background ? `--kit-alert-bg:${background && `var(--kit-color-${background})`}` : ''
59
+ ]
60
+ .filter(Boolean)
61
+ .join('; ')
62
+ );
55
63
  </script>
56
64
 
57
65
  {#if !closable || (closable && open)}
@@ -59,7 +67,7 @@
59
67
  this={is}
60
68
  bind:this={ref}
61
69
  class={componentClass}
62
- style={mergedStyle}
70
+ style={resolvedStyle}
63
71
  role="alert"
64
72
  data-size={size}
65
73
  data-variant={variant}
@@ -73,8 +81,6 @@
73
81
  data-elevation={elevationState.base}
74
82
  data-elevation-hover={elevationState.hover}
75
83
  data-elevation-active={elevationState.active}
76
- style:--kit-alert-fg={color && `var(--kit-color-${color})`}
77
- style:--kit-alert-bg={background && `var(--kit-color-${background})`}
78
84
  {...restProps}
79
85
  >
80
86
  {#if variant === 'outline'}
@@ -125,7 +131,8 @@
125
131
  display: grid;
126
132
  grid-template-columns: minmax(0, 1fr);
127
133
  gap: var(--kit-alert-gap);
128
- padding: calc(var(--kit-alert-px) * var(--kit-alert-density-scale));
134
+ min-height: calc(var(--kit-alert-item-h) + var(--kit-alert-density-offset) / 2);
135
+ padding: calc(var(--kit-alert-p) + var(--kit-alert-density-offset) / 2);
129
136
  border-radius: var(--kit-alert-radius);
130
137
  color: var(--kit-alert-fg);
131
138
  background: var(--kit-alert-bg);
@@ -207,21 +214,14 @@
207
214
  * density
208
215
  * @link no links
209
216
  */
210
- .kit-alert[data-density='none'] {
211
- --kit-alert-density-scale: 0;
212
- --kit-alert-density-h-scale: 0;
213
- }
214
217
  .kit-alert[data-density='compact'] {
215
- --kit-alert-density-scale: 0.9;
216
- --kit-alert-density-h-scale: 0.92;
218
+ --kit-alert-density-offset: var(--kit-density-compact);
217
219
  }
218
220
  .kit-alert[data-density='default'] {
219
- --kit-alert-density-scale: 1;
220
- --kit-alert-density-h-scale: 1;
221
+ --kit-alert-density-offset: var(--kit-density-default);
221
222
  }
222
223
  .kit-alert[data-density='comfortable'] {
223
- --kit-alert-density-scale: 1.1;
224
- --kit-alert-density-h-scale: 1.15;
224
+ --kit-alert-density-offset: var(--kit-density-comfortable);
225
225
  }
226
226
 
227
227
  /**
@@ -256,29 +256,34 @@
256
256
  * @link nothing...
257
257
  */
258
258
  .kit-alert[data-size='xs'] {
259
- --kit-alert-px: 10px;
260
- --kit-alert-gap: 4px;
261
- --kit-alert-font: 0.75rem;
259
+ --kit-alert-h: 32px;
260
+ --kit-alert-p: 8px;
261
+ --kit-alert-gap: var(--kit-space-compact);
262
+ --kit-alert-font: var(--kit-font-xs);
262
263
  }
263
264
  .kit-alert[data-size='sm'] {
264
- --kit-alert-px: 12px;
265
- --kit-alert-gap: 6px;
266
- --kit-alert-font: 0.875rem;
265
+ --kit-alert-h: 40px;
266
+ --kit-alert-p: 10px;
267
+ --kit-alert-gap: var(--kit-space-default);
268
+ --kit-alert-font: var(--kit-font-sm);
267
269
  }
268
270
  .kit-alert[data-size='md'] {
269
- --kit-alert-px: 16px;
270
- --kit-alert-gap: 8px;
271
- --kit-alert-font: 1rem;
271
+ --kit-alert-h: 48px;
272
+ --kit-alert-p: 12px;
273
+ --kit-alert-gap: var(--kit-space-default);
274
+ --kit-alert-font: var(--kit-font-md);
272
275
  }
273
276
  .kit-alert[data-size='lg'] {
274
- --kit-alert-px: 20px;
275
- --kit-alert-gap: 10px;
276
- --kit-alert-font: 1.125rem;
277
+ --kit-alert-h: 56px;
278
+ --kit-alert-p: 16px;
279
+ --kit-alert-gap: var(--kit-space-default);
280
+ --kit-alert-font: var(--kit-font-lg);
277
281
  }
278
282
  .kit-alert[data-size='xl'] {
279
- --kit-alert-px: 24px;
280
- --kit-alert-gap: 12px;
281
- --kit-alert-font: 1.25rem;
283
+ --kit-alert-h: 64px;
284
+ --kit-alert-p: 20px;
285
+ --kit-alert-gap: var(--kit-space-comfortable);
286
+ --kit-alert-font: var(--kit-font-xl);
282
287
  }
283
288
 
284
289
  /**
@@ -38,7 +38,7 @@
38
38
  </div>
39
39
 
40
40
  <style>
41
- .kit-application {
41
+ :global(html) {
42
42
  --kit-shape-none: 0;
43
43
  --kit-shape-xs: 4px;
44
44
  --kit-shape-sm: 6px;
@@ -47,15 +47,32 @@
47
47
  --kit-shape-xl: 18px;
48
48
  --kit-shape-full: 9999px;
49
49
 
50
- --kit-space-compact: 6px;
51
- --kit-space-default: 10px;
52
- --kit-space-comfortable: 14px;
50
+ --kit-font-xs: 13px;
51
+ --kit-font-sm: 14px;
52
+ --kit-font-md: 15px;
53
+ --kit-font-lg: 16px;
54
+ --kit-font-xl: 17px;
55
+
56
+ --kit-space-compact: 2px;
57
+ --kit-space-default: 4px;
58
+ --kit-space-comfortable: 6px;
59
+
60
+ --kit-density-compact: -4px;
61
+ --kit-density-default: 0px;
62
+ --kit-density-comfortable: 4px;
53
63
 
54
64
  --kit-shadow-opacity: 30%;
55
65
  --kit-shadow-ambiant-opacity: 15%;
66
+
67
+ --kit-disabled-opacity: 0.55;
68
+ --kit-font:
69
+ ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
70
+ 'Segoe UI Symbol', 'Noto Color Emoji';
71
+
72
+ --kit-color-transparent: transparent;
56
73
  }
57
74
 
58
- .kit-application,
75
+ :global(html:not([data-kit-theme])),
59
76
  :global([data-kit-theme='light']) {
60
77
  color-scheme: light;
61
78
  --kit-color-surface: hsl(0 0% 100%);
@@ -121,40 +138,74 @@
121
138
  --kit-color-focus: hsl(35 90% 62%);
122
139
  }
123
140
 
124
- .kit-application {
125
- color-scheme: light;
126
-
127
- /* Hue vars — used by components for dynamic semantic color calculations */
128
- --kit-h-neutral: 220;
129
- --kit-h-success: 145;
130
- --kit-h-warning: 35;
131
- --kit-h-danger: 5;
132
- --kit-h-info: 205;
133
-
134
- --kit-bg: hsl(0 0% 100%);
135
- --kit-fg: hsl(222 20% 10%);
136
- --kit-muted: hsl(220 10% 45%);
137
-
138
- --kit-surface-1: hsl(0 0% 100%);
139
- --kit-surface-2: hsl(220 20% 98%);
140
- --kit-surface-3: hsl(220 18% 94%);
141
-
142
- --kit-border: hsl(220 16% 88%);
143
-
144
- --kit-accent: hsl(220 90% 56%);
145
-
146
- --kit-focus: hsl(35, 90%, 56%);
141
+ @media (prefers-color-scheme: light) {
142
+ :global([data-kit-theme='system']) {
143
+ color-scheme: light;
144
+
145
+ --kit-color-surface: hsl(0 0% 100%);
146
+ --kit-color-surface-1: hsl(240 15% 96.5%);
147
+ --kit-color-surface-2: hsl(240 10% 93%);
148
+ --kit-color-surface-3: hsl(0 0% 100%);
149
+
150
+ --kit-color-text: hsl(222 20% 10%);
151
+ --kit-color-text-muted: hsl(220 10% 40%);
152
+ --kit-color-text-subtle: hsl(220 8% 58%);
153
+ --kit-color-text-disabled: hsl(220 5% 76%);
154
+
155
+ --kit-color-fill: hsl(240 8% 93%);
156
+ --kit-color-fill-hover: hsl(240 4% 91%);
157
+ --kit-color-fill-active: hsl(240 4% 88%);
158
+
159
+ --kit-color-border: hsl(220 16% 88%);
160
+ --kit-color-shadow: hsl(240 3% 11%);
161
+
162
+ --kit-color-accent: hsl(220 90% 56%);
163
+ --kit-color-on-accent: hsl(0 0% 100%);
164
+ --kit-color-success: hsl(145 50% 38%);
165
+ --kit-color-on-success: hsl(0 0% 100%);
166
+ --kit-color-warning: hsl(35 80% 45%);
167
+ --kit-color-on-warning: hsl(222 20% 10%);
168
+ --kit-color-error: hsl(5 65% 48%);
169
+ --kit-color-on-error: hsl(0 0% 100%);
170
+ --kit-color-info: hsl(205 60% 42%);
171
+ --kit-color-on-info: hsl(0 0% 100%);
172
+ --kit-color-focus: hsl(35 90% 56%);
173
+ }
174
+ }
147
175
 
148
- /* Layout */
149
- --kit-radius-1: 8px;
150
- --kit-radius-2: 12px;
151
- --kit-space-1: 6px;
152
- --kit-space-2: 10px;
153
- --kit-space-3: 14px;
154
- --kit-disabled-opacity: 0.55;
155
- --kit-font:
156
- ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
157
- 'Segoe UI Symbol', 'Noto Color Emoji';
176
+ @media (prefers-color-scheme: dark) {
177
+ :global([data-kit-theme='system']) {
178
+ color-scheme: dark;
179
+
180
+ --kit-color-surface: hsl(240 3% 11%);
181
+ --kit-color-surface-1: hsl(240 2% 17.5%);
182
+ --kit-color-surface-2: hsl(240 1.5% 23%);
183
+ --kit-color-surface-3: hsl(240 1.5% 28%);
184
+
185
+ --kit-color-text: hsl(0 0% 100%);
186
+ --kit-color-text-muted: hsl(240 3% 56%);
187
+ --kit-color-text-subtle: hsl(240 2.5% 38%);
188
+ --kit-color-text-disabled: hsl(240 1.5% 25%);
189
+
190
+ --kit-color-fill: hsl(240 2.5% 24%);
191
+ --kit-color-fill-hover: hsl(240 2.5% 28%);
192
+ --kit-color-fill-active: hsl(240 2.5% 31%);
193
+
194
+ --kit-color-border: hsl(240 2% 26%);
195
+ --kit-color-shadow: hsl(240 3% 11%);
196
+
197
+ --kit-color-accent: hsl(220 85% 65%);
198
+ --kit-color-on-accent: hsl(240 3% 11%);
199
+ --kit-color-success: hsl(145 50% 50%);
200
+ --kit-color-on-success: hsl(240 3% 11%);
201
+ --kit-color-warning: hsl(35 85% 58%);
202
+ --kit-color-on-warning: hsl(240 3% 11%);
203
+ --kit-color-error: hsl(5 70% 60%);
204
+ --kit-color-on-error: hsl(240 3% 11%);
205
+ --kit-color-info: hsl(205 65% 58%);
206
+ --kit-color-on-info: hsl(240 3% 11%);
207
+ --kit-color-focus: hsl(35 90% 62%);
208
+ }
158
209
  }
159
210
 
160
211
  :global(.outline) {
@@ -56,14 +56,22 @@
56
56
  })
57
57
  );
58
58
 
59
- let mergedStyle = $derived([componentStyle].filter(Boolean).join('; '));
59
+ let resolvedStyle = $derived(
60
+ [
61
+ componentStyle,
62
+ color ? `--kit-appbar-fg:${color && `var(--kit-color-${color})`}` : '',
63
+ background ? `--kit-appbar-bg:${background && `var(--kit-color-${background})`}` : ''
64
+ ]
65
+ .filter(Boolean)
66
+ .join('; ')
67
+ );
60
68
  </script>
61
69
 
62
70
  <svelte:element
63
71
  this={is}
64
72
  bind:this={ref}
65
73
  class={componentClass}
66
- style={mergedStyle}
74
+ style={resolvedStyle}
67
75
  data-size={size}
68
76
  data-variant={variant}
69
77
  data-density={density}
@@ -71,8 +79,6 @@
71
79
  data-elevation={elevationState.base}
72
80
  data-elevation-hover={elevationState.hover}
73
81
  data-elevation-active={elevationState.active}
74
- style:--kit-appbar-fg={color && `var(--kit-color-${color})`}
75
- style:--kit-appbar-bg={background && `var(--kit-color-${background})`}
76
82
  {...restProps}
77
83
  >
78
84
  {#if variant === 'outline'}
@@ -92,8 +98,8 @@
92
98
  position: relative;
93
99
  width: 100%;
94
100
  gap: var(--kit-appbar-gap);
95
- min-height: calc(var(--kit-appbar-h) * var(--kit-appbar-density-h-scale));
96
- padding: calc(var(--kit-appbar-px) * var(--kit-appbar-density-scale));
101
+ min-height: calc(var(--kit-appbar-h) + var(--kit-appbar-density-offset) / 2);
102
+ padding: calc(var(--kit-appbar-p) + var(--kit-appbar-density-offset) / 2);
97
103
  border-radius: var(--kit-appbar-radius);
98
104
  color: var(--kit-appbar-fg);
99
105
  background-color: var(--kit-appbar-bg);
@@ -136,21 +142,14 @@
136
142
  * density
137
143
  * @link no links
138
144
  */
139
- .kit-appbar[data-density='none'] {
140
- --kit-appbar-density-scale: 0;
141
- --kit-appbar-density-h-scale: 0;
142
- }
143
145
  .kit-appbar[data-density='compact'] {
144
- --kit-appbar-density-scale: 0.9;
145
- --kit-appbar-density-h-scale: 0.92;
146
+ --kit-appbar-density-offset: var(--kit-density-compact);
146
147
  }
147
148
  .kit-appbar[data-density='default'] {
148
- --kit-appbar-density-scale: 1;
149
- --kit-appbar-density-h-scale: 1;
149
+ --kit-appbar-density-offset: var(--kit-density-compact);
150
150
  }
151
151
  .kit-appbar[data-density='comfortable'] {
152
- --kit-appbar-density-scale: 1.1;
153
- --kit-appbar-density-h-scale: 1.15;
152
+ --kit-appbar-density-offset: var(--kit-density-compact);
154
153
  }
155
154
 
156
155
  /**
@@ -185,34 +184,34 @@
185
184
  * @link nothing...
186
185
  */
187
186
  .kit-appbar[data-size='xs'] {
188
- --kit-appbar-h: 28px;
189
- --kit-appbar-px: 10px;
190
- --kit-appbar-gap: 4px;
191
- --kit-appbar-font: 0.75rem;
187
+ --kit-appbar-h: 32px;
188
+ --kit-appbar-p: 8px;
189
+ --kit-appbar-gap: var(--kit-space-compact);
190
+ --kit-appbar-font: var(--kit-font-xs);
192
191
  }
193
192
  .kit-appbar[data-size='sm'] {
194
- --kit-appbar-h: 32px;
195
- --kit-appbar-px: 12px;
196
- --kit-appbar-gap: 6px;
197
- --kit-appbar-font: 0.875rem;
193
+ --kit-appbar-h: 40px;
194
+ --kit-appbar-p: 10px;
195
+ --kit-appbar-gap: var(--kit-space-default);
196
+ --kit-appbar-font: var(--kit-font-sm);
198
197
  }
199
198
  .kit-appbar[data-size='md'] {
200
- --kit-appbar-h: 40px;
201
- --kit-appbar-px: 14px;
202
- --kit-appbar-gap: 8px;
203
- --kit-appbar-font: 1rem;
199
+ --kit-appbar-h: 48px;
200
+ --kit-appbar-p: 12px;
201
+ --kit-appbar-gap: var(--kit-space-default);
202
+ --kit-appbar-font: var(--kit-font-md);
204
203
  }
205
204
  .kit-appbar[data-size='lg'] {
206
- --kit-appbar-h: 48px;
207
- --kit-appbar-px: 16px;
208
- --kit-appbar-gap: 10px;
209
- --kit-appbar-font: 1.125rem;
205
+ --kit-appbar-h: 56px;
206
+ --kit-appbar-p: 16px;
207
+ --kit-appbar-gap: var(--kit-space-default);
208
+ --kit-appbar-font: var(--kit-font-lg);
210
209
  }
211
210
  .kit-appbar[data-size='xl'] {
212
- --kit-appbar-h: 56px;
213
- --kit-appbar-px: 18px;
214
- --kit-appbar-gap: 12px;
215
- --kit-appbar-font: 1.25rem;
211
+ --kit-appbar-h: 64px;
212
+ --kit-appbar-p: 20px;
213
+ --kit-appbar-gap: var(--kit-space-comfortable);
214
+ --kit-appbar-font: var(--kit-font-xl);
216
215
  }
217
216
 
218
217
  .kit-appbar__wrapper {
@@ -221,7 +220,7 @@
221
220
  display: flex;
222
221
  align-items: center;
223
222
  flex-direction: row;
224
- gap: 0.75rem;
223
+ gap: var(--kit-appbar-gap);
225
224
  width: 100%;
226
225
  margin: 0 auto;
227
226
  }
@@ -1,4 +1,4 @@
1
- import type { Component, DensityType, ElevationProps, RoundedType } from '../../@types';
1
+ import type { Component, DensityType, ElevationProps, RoundedType, SizeType } from '../../@types';
2
2
  type Variant = 'filled' | 'outline' | 'text';
3
3
  export interface AppbarProps extends Component {
4
4
  ref?: HTMLElement | null;
@@ -6,6 +6,7 @@ export interface AppbarProps extends Component {
6
6
  variant?: Variant;
7
7
  rounded?: RoundedType | 'full';
8
8
  density?: DensityType;
9
+ size?: SizeType;
9
10
  color?: string;
10
11
  background?: string;
11
12
  classContent?: string | string[] | undefined;
@@ -69,14 +69,13 @@
69
69
  );
70
70
 
71
71
  let resolvedRatio = $derived(resolveRatio(ratio ?? aspectRatio));
72
- let mergedStyle = $derived([componentStyle].filter(Boolean).join('; '));
73
72
  </script>
74
73
 
75
74
  <svelte:element
76
75
  this={is}
77
76
  bind:this={ref}
78
77
  class={componentClass}
79
- style={mergedStyle}
78
+ style={componentStyle}
80
79
  data-inline={inline}
81
80
  style:--kit-aspect-ratio={resolvedRatio}
82
81
  style:--kit-aspect-fit={fit}