@carissa-io/theme-default 0.3.8 → 0.3.10

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.
package/scss/_tokens.scss CHANGED
@@ -9,7 +9,7 @@
9
9
  $black: #000; // primary, hover and focus
10
10
  $white: #fff;
11
11
  $text: #171717;
12
- $muted: #737373; // labels, field borders, placeholders (4.7:1 on white)
12
+ $muted: #666666; // labels, field borders, placeholders (5.7:1 on white)
13
13
  $surface: #f5f5f5; // hover surface, disabled background
14
14
  $surface-active: #e5e5e5;
15
15
  $primary-hover: #262626;
package/scss/index.scss CHANGED
@@ -78,7 +78,7 @@
78
78
  $c-button-primary-background-disabled: $var-surface,
79
79
  $c-button-primary-border-color-disabled: $var-surface,
80
80
 
81
- // Secondary: 1px #737373 border, black on hover
81
+ // Secondary: 1px #666666 border, black on hover
82
82
  $c-button-secondary-color: $var-text,
83
83
  $c-button-secondary-background: $var-background,
84
84
  $c-button-secondary-border-color: $var-muted,
@@ -125,7 +125,7 @@
125
125
  $c-checkbox-gap: 0.75rem,
126
126
  $c-checkbox-transition: (color $transition-duration ease, background-color $transition-duration ease, border-color $transition-duration ease, opacity $transition-duration ease),
127
127
 
128
- // Box: 20px square, 1px #737373 border, black on hover
128
+ // Box: 20px square, 1px #666666 border, black on hover
129
129
  $c-checkbox-box-size: 1.25rem,
130
130
  $c-checkbox-border-color: $var-muted,
131
131
  $c-checkbox-border-color-hover: $var-primary,
@@ -155,7 +155,7 @@
155
155
  );
156
156
 
157
157
  @use '@carissa-io/components-switch/scss' as switch with (
158
- // Track: square, 40 x 20px, white with a 1px #737373 border; black when on
158
+ // Track: square, 40 x 20px, white with a 1px #666666 border; black when on
159
159
  $c-switch-track-width: 2.5rem,
160
160
  $c-switch-track-height: 1.25rem,
161
161
  $c-switch-track-radius: $radius,
@@ -168,7 +168,7 @@
168
168
  $c-switch-track-background-disabled: $var-surface,
169
169
  $c-switch-track-border-color-disabled: $var-disabled-border,
170
170
 
171
- // Thumb: square, #737373 when off, white when on
171
+ // Thumb: square, #666666 when off, white when on
172
172
  $c-switch-thumb-size: 0.875rem,
173
173
  $c-switch-thumb-offset: 0.125rem,
174
174
  $c-switch-thumb-radius: $radius,
@@ -203,7 +203,7 @@
203
203
  $c-radio-group-dot-gap: 0.75rem,
204
204
  $c-radio-group-transition: (color $transition-duration ease, background-color $transition-duration ease, border-color $transition-duration ease, background-size $transition-duration ease),
205
205
 
206
- // Dot: 20px circle (a radio is round, so the radius stays 50%), 1px #737373 border, black on hover
206
+ // Dot: 20px circle (a radio is round, so the radius stays 50%), 1px #666666 border, black on hover
207
207
  $c-radio-group-dot-size: 1.25rem,
208
208
  $c-radio-group-border-color: $var-muted,
209
209
  $c-radio-group-border-color-hover: $var-primary,
@@ -246,7 +246,7 @@
246
246
  $c-slider-min-height: $min-height,
247
247
  $c-slider-transition: (background-color $transition-duration ease, border-color $transition-duration ease),
248
248
 
249
- // Track: 2px #737373 line with a black fill
249
+ // Track: 2px #666666 line with a black fill
250
250
  $c-slider-track-height: 2px,
251
251
  $c-slider-track-color: $var-muted,
252
252
  $c-slider-track-fill-color: $var-primary,
@@ -274,7 +274,7 @@
274
274
  );
275
275
 
276
276
  @use '@carissa-io/components-popover/scss' as popover with (
277
- // Panel: white, 1px #737373 border, square, flat (no shadow), 4px below the anchor
277
+ // Panel: white, 1px #666666 border, square, flat (no shadow), 4px below the anchor
278
278
  $c-popover-background: $var-background,
279
279
  $c-popover-color: $var-text,
280
280
  $c-popover-border-width: 1px,
@@ -356,7 +356,7 @@
356
356
  // Upload: the Input field with a dashed box as the dropzone. Its index forwards the input styles, already loaded and
357
357
  // configured above, so it must come after them.
358
358
  @use '@carissa-io/components-upload/scss' as upload with (
359
- // Box: dashed 1px #737373 (the input border), black on hover and while files are dragged over it
359
+ // Box: dashed 1px #666666 (the input border), black on hover and while files are dragged over it
360
360
  $c-upload-border-style: dashed,
361
361
  $c-upload-transition: (border-color $transition-duration ease, background-color $transition-duration ease, box-shadow $transition-duration ease, color $transition-duration ease),
362
362
  $c-upload-dragging-border-color: $var-primary,
@@ -788,7 +788,7 @@
788
788
  );
789
789
 
790
790
  // Link: --c-primary (black in light, white in dark) with an underline, because a black link on black text is told apart
791
- // by the underline alone; --c-primary-hover on hover. Subtle is --c-muted (4.7:1 on the background) and turns --c-text.
791
+ // by the underline alone; --c-primary-hover on hover. Subtle is --c-muted (5.7:1 on the background) and turns --c-text.
792
792
  // Disabled is --c-disabled-text at full opacity. The focus ring is the theme's 1px ring, offset 2px.
793
793
  @use '@carissa-io/components-link/scss' as link with (
794
794
  $c-link-color: $var-primary,
@@ -939,7 +939,7 @@
939
939
  );
940
940
 
941
941
  // Tabs: a --c-muted underline under the list and a 2px --c-primary indicator under the selected tab. Tabs read --c-muted
942
- // (4.7:1 on the background, 7.9:1 in dark), turn --c-text on a --c-surface hover and the selected one is --c-text and bold.
942
+ // (5.7:1 on the background, 7.9:1 in dark), turn --c-text on a --c-surface hover and the selected one is --c-text and bold.
943
943
  // Square, bold, the theme's 1px focus ring inside the tab. No other block forwards it.
944
944
  @use '@carissa-io/components-tabs/scss' as tabs with (
945
945
  $c-tabs-list-border-width: 1px,
@@ -985,7 +985,7 @@
985
985
  $c-accordion-transition-duration: $transition-duration
986
986
  );
987
987
 
988
- // Breadcrumb: links and separators in --c-muted (4.7:1 on the background), the current page in --c-text and bold. Links turn
988
+ // Breadcrumb: links and separators in --c-muted (5.7:1 on the background), the current page in --c-text and bold. Links turn
989
989
  // --c-text and underline on hover. The theme's 1px focus ring, offset 2px.
990
990
  @use '@carissa-io/components-breadcrumb/scss' as breadcrumb with (
991
991
  $c-breadcrumb-font-size: $font-size-small,
@@ -1062,7 +1062,7 @@
1062
1062
 
1063
1063
  // Sidebar: a --c-surface column with a 1px --c-muted edge. Items are --c-text (16.4:1 on the surface) with a --c-surface-active
1064
1064
  // hover (14.2:1); the current page is filled --c-primary with --c-on-primary (21:1), a shape and not only a hue. Section titles
1065
- // are the small uppercase label style in --c-text, because --c-muted on --c-surface is only 4.35:1 in light. Square, the
1065
+ // are the small uppercase label style in --c-text, because --c-muted on --c-surface is 5.27:1 in light (it passes, the label stays text for emphasis). Square, the
1066
1066
  // theme's 1px focus ring inside the item. No other block forwards it.
1067
1067
  @use '@carissa-io/components-sidebar/scss' as sidebar with (
1068
1068
  $c-sidebar-width: 16rem,
@@ -1098,7 +1098,7 @@
1098
1098
  $c-sidebar-transition-duration: $transition-duration
1099
1099
  );
1100
1100
 
1101
- // Navbar: a --c-background bar with a 1px --c-muted bottom edge. Items read like the tabs: bold --c-muted (4.7:1 on the
1101
+ // Navbar: a --c-background bar with a 1px --c-muted bottom edge. Items read like the tabs: bold --c-muted (5.7:1 on the
1102
1102
  // background), --c-text on a --c-surface hover, and --c-text for the current page. The breakpoint is the Sass default (48rem).
1103
1103
  // Square, 44px toggle, the theme's 1px focus ring inside the item. No other block forwards it.
1104
1104
  @use '@carissa-io/components-navbar/scss' as navbar with (
@@ -1155,7 +1155,7 @@
1155
1155
  );
1156
1156
 
1157
1157
  // Menu: the panel is the Popover's (--c-background, 1px --c-muted border, flat). Items are --c-text with a --c-surface-active
1158
- // hover and keyboard focus (14.2:1) and the theme's 1px focus ring; labels are small --c-muted text (4.7:1 on the panel) and
1158
+ // hover and keyboard focus (14.2:1) and the theme's 1px focus ring; labels are small --c-muted text (5.7:1 on the panel) and
1159
1159
  // the separator a 1px --c-muted line. Square. Its index forwards the popover styles, already loaded and configured above:
1160
1160
  // this block goes after the Popover one.
1161
1161
  @use '@carissa-io/components-menu/scss' as menu with (
@@ -1204,7 +1204,7 @@
1204
1204
  );
1205
1205
 
1206
1206
  // List: rows on the page background, divided by 1px --c-muted lines. The secondary text is --c-text at the small size, not
1207
- // --c-muted, because the row sits on --c-surface-active when hovered and --c-muted is only 3.8:1 there (4.35:1 on --c-surface).
1207
+ // --c-muted, because the row sits on --c-surface-active when hovered and --c-muted is 4.56:1 there (5.27:1 on --c-surface), so the text color keeps the hover clearly readable.
1208
1208
  // Hover is --c-surface-active; the current item is the same 12% --c-primary tint as a selected table row. Square, the theme's
1209
1209
  // 1px focus ring inside the row.
1210
1210
  @use '@carissa-io/components-list/scss' as list with (
@@ -1229,7 +1229,7 @@
1229
1229
  $c-list-transition-duration: $transition-duration
1230
1230
  );
1231
1231
 
1232
- // Description list: the term is a small bold --c-muted label (4.7:1 on the background, so use it on --c-background, where
1232
+ // Description list: the term is a small bold --c-muted label (5.7:1 on the background, so use it on --c-background, where
1233
1233
  // --c-muted is not enough on --c-surface) and the detail is --c-text. No fills or borders.
1234
1234
  @use '@carissa-io/components-description-list/scss' as description-list with (
1235
1235
  $c-description-list-gap-x: 2rem,
@@ -1245,7 +1245,7 @@
1245
1245
 
1246
1246
  // Stat: a card-like block on the page background with a 1px --c-muted border (the Card's outlined look), not on --c-surface:
1247
1247
  // the delta colors are checked against --c-background, where --c-success is 5:1 and --c-error 4.5:1 in light (4.15:1 for
1248
- // --c-error on --c-surface). The label and the description are --c-muted (4.7:1), the value is --c-text. The delta is
1248
+ // --c-error on --c-surface). The label and the description are --c-muted (5.7:1), the value is --c-text. The delta is
1249
1249
  // success when up, error when down and muted when flat; the arrow and the screen-reader text say the same, so color is never
1250
1250
  // the only signal. In dark the status colors are lighter (7.1:1 and above on the background).
1251
1251
  @use '@carissa-io/components-stat/scss' as stat with (
@@ -1271,9 +1271,9 @@
1271
1271
  $c-stat-delta-flat-color: $var-muted
1272
1272
  );
1273
1273
 
1274
- // Empty state: a centred block on the page background. The icon is --c-muted (4.7:1 light, 7.9:1 dark, above the 3:1 non-text
1275
- // minimum), the title --c-text at the h3 size and bold, the description --c-muted (4.7:1 on the background, so keep it off
1276
- // --c-surface, where light is 4.35:1). The actions are the app's buttons. Square, nothing else to set.
1274
+ // Empty state: a centred block on the page background. The icon is --c-muted (5.7:1 light, 7.9:1 dark, above the 3:1 non-text
1275
+ // minimum), the title --c-text at the h3 size and bold, the description --c-muted (5.7:1 on the background, so keep it off
1276
+ // --c-surface, where light is 5.27:1). The actions are the app's buttons. Square, nothing else to set.
1277
1277
  @use '@carissa-io/components-empty-state/scss' as empty-state with (
1278
1278
  $c-empty-state-padding: 3rem 1.5rem,
1279
1279
  $c-empty-state-padding-sm: 1.5rem 1rem,
@@ -1299,7 +1299,7 @@
1299
1299
  // success, warning, error and info are solid dots in their status color (4.5:1 or more against the background in light, 7:1 in
1300
1300
  // dark, above the 3:1 non-text minimum); the current step is a hollow --c-primary ring. An icon marker keeps a --c-background
1301
1301
  // fill and takes the status as its ring, so the --c-text icon is 17.9:1 / 18.2:1 in every status. The status text is the
1302
- // hidden status_label, the time is --c-muted (4.7:1 / 7.9:1 on the background) and the title --c-text, bold. Color is never the
1302
+ // hidden status_label, the time is --c-muted (5.7:1 / 7.9:1 on the background) and the title --c-text, bold. Color is never the
1303
1303
  // only signal.
1304
1304
  @use '@carissa-io/components-timeline/scss' as timeline with (
1305
1305
  $c-timeline-gap: 1.5rem,
@@ -1389,3 +1389,211 @@
1389
1389
  $c-code-focus-outline: $focus-width solid $var-focus,
1390
1390
  $c-code-focus-outline-offset: -2px
1391
1391
  );
1392
+
1393
+ // Field: the label, hint and error around a control with no label of its own (radio group, slider, custom control). The label is
1394
+ // --c-text (17.93:1 / 18.16:1 on the background) in the label size and weight, not --c-muted, which is 5.27:1 on --c-surface in
1395
+ // light. The hint is --c-muted (5.74:1 / 7.85:1 on the background) and the error is --c-error (4.53:1 / 7.16:1), the same
1396
+ // color as the Input's error line, with the component's required asterisk. Keep a field on --c-background.
1397
+ @use '@carissa-io/components-field/scss' as field with (
1398
+ $c-field-font-family: $font-family,
1399
+ $c-field-font-size: $font-size-body,
1400
+ $c-field-color: $var-text,
1401
+ $c-field-label-font-size: $font-size-small,
1402
+ $c-field-label-font-weight: $font-weight-bold,
1403
+ $c-field-label-color: $var-text,
1404
+ $c-field-help-font-size: $font-size-small,
1405
+ $c-field-help-color: $var-muted,
1406
+ $c-field-error-font-size: $font-size-small,
1407
+ $c-field-error-color: $var-error,
1408
+ $c-field-required-color: $var-error,
1409
+ $c-field-gap: 0.5rem,
1410
+ $c-field-horizontal-label-width: 10rem,
1411
+ $c-field-horizontal-gap: 1.5rem
1412
+ );
1413
+
1414
+ // Number input: the field is the Input's (configured at the top; this module forwards it). The steppers read like the
1415
+ // secondary button inside the box: --c-muted glyphs (5.74:1 / 7.85:1, above the 3:1 non-text minimum) turning --c-text on a
1416
+ // --c-surface-active hover (--c-text 14.23:1 / 13.88:1), square, half opacity at a bound.
1417
+ @use '@carissa-io/components-number-input/scss' as number-input with (
1418
+ $c-number-input-stepper-size: 1.5rem,
1419
+ $c-number-input-stepper-gap: 0.125rem,
1420
+ $c-number-input-stepper-font-size: $font-size-body,
1421
+ $c-number-input-stepper-radius: $radius,
1422
+ $c-number-input-stepper-color: $var-muted,
1423
+ $c-number-input-stepper-color-hover: $var-text,
1424
+ $c-number-input-stepper-background: transparent,
1425
+ $c-number-input-stepper-background-hover: $var-surface-active,
1426
+ $c-number-input-stepper-disabled-opacity: 0.5,
1427
+ $c-number-input-text-align: start
1428
+ );
1429
+
1430
+ // OTP input: one box per character, built like the Input box: --c-background with a 1px --c-muted border (5.74:1 / 7.85:1),
1431
+ // --c-primary on hover, and the keyboard focus thickens the border to the theme's black ring (--c-focus, 21:1 / 19.8:1). An
1432
+ // invalid box is --c-error (4.53:1 / 7.16:1) and the message under the boxes is --c-error too; a disabled one is --c-surface
1433
+ // with --c-disabled-text (exempt from contrast). The digit is --c-text (17.93:1 / 18.16:1). Square, 3rem by 3.5rem.
1434
+ @use '@carissa-io/components-otp-input/scss' as otp-input with (
1435
+ $c-otp-input-font-family: $font-family,
1436
+ $c-otp-input-font-size: $font-size-h3,
1437
+ $c-otp-input-label-font-size: $label-font-size,
1438
+ $c-otp-input-label-font-weight: $label-font-weight,
1439
+ $c-otp-input-error-font-size: $font-size-small,
1440
+ $c-otp-input-color: $var-text,
1441
+ $c-otp-input-label-color: $var-muted,
1442
+ $c-otp-input-background: $var-background,
1443
+ $c-otp-input-border-color: $var-muted,
1444
+ $c-otp-input-border-color-hover: $var-primary,
1445
+ $c-otp-input-focus-color: $var-focus,
1446
+ $c-otp-input-focus-ring: $var-focus,
1447
+ $c-otp-input-focus-ring-width: $focus-width,
1448
+ $c-otp-input-error-color: $var-error,
1449
+ $c-otp-input-error-ring: $var-error,
1450
+ $c-otp-input-disabled-background: $var-surface,
1451
+ $c-otp-input-disabled-color: $var-disabled-text,
1452
+ $c-otp-input-cell-width: 3rem,
1453
+ $c-otp-input-cell-height: 3.5rem,
1454
+ $c-otp-input-border-width: 1px,
1455
+ $c-otp-input-radius: $radius,
1456
+ $c-otp-input-gap: 0.5rem,
1457
+ $c-otp-input-label-gap: 0.5rem,
1458
+ $c-otp-input-transition: border-color $transition-duration ease
1459
+ );
1460
+
1461
+ // Phone: the field is the Input's (configured at the top; this module forwards it); the country select sits in its start slot
1462
+ // as --c-text on a transparent background (so the box color shows in both modes) with a 1px --c-muted divider before the
1463
+ // number, and the theme's 1px --c-focus outline when focused.
1464
+ @use '@carissa-io/components-phone/scss' as phone with (
1465
+ $c-phone-country-max-width: 7rem,
1466
+ $c-phone-country-padding-x: 0.25rem,
1467
+ $c-phone-country-color: $var-text,
1468
+ $c-phone-country-background: transparent,
1469
+ $c-phone-country-border-color: $var-muted,
1470
+ $c-phone-country-border-width: 1px,
1471
+ $c-phone-country-gap: 0.5rem,
1472
+ $c-phone-country-focus-outline: $focus-width solid $var-focus,
1473
+ $c-phone-country-disabled-color: $var-disabled-text
1474
+ );
1475
+
1476
+ // Tag input: the box is the Input's and the chips are the Tag's, both configured above (this module forwards them), so it only
1477
+ // sets the spacing between the chips and the text field. Placed after the Tag block on purpose.
1478
+ @use '@carissa-io/components-tag-input/scss' as tag-input with (
1479
+ $c-tag-input-gap: 0.375rem,
1480
+ $c-tag-input-control-min-width: 6rem
1481
+ );
1482
+
1483
+ // Time picker: the date picker's field (a text input) with a Listbox of times in the Popover, so the box, the notched label,
1484
+ // the panel border and the options are the ones configured above (this module forwards them). Body text, tabular figures, a
1485
+ // 16px clock icon that is muted and turns black on hover and when open, like the Select arrow without the rotation.
1486
+ @use '@carissa-io/components-time-picker/scss' as time-picker with (
1487
+ $c-time-picker-color: $var-text,
1488
+ $c-time-picker-min-height: 1.5em,
1489
+ $c-time-picker-placeholder-color: $var-muted,
1490
+ $c-time-picker-icon-size: $arrow-size,
1491
+ $c-time-picker-icon-offset: $arrow-offset,
1492
+ $c-time-picker-icon-color: $var-arrow-color,
1493
+ $c-time-picker-icon-color-hover: $var-arrow-color-active,
1494
+ $c-time-picker-icon-color-open: $var-arrow-color-active,
1495
+ $c-time-picker-icon-color-disabled: $var-arrow-color-disabled,
1496
+ $c-time-picker-icon-transition: color $transition-duration ease,
1497
+ $c-time-picker-open-border-color: $var-focus
1498
+ );
1499
+
1500
+ // Date range: the date picker's trigger with one or two month grids in the Popover (the calendar block above styles the days;
1501
+ // the two ends use its selected look, black with white text). The days between them are a --c-surface-active band with --c-text
1502
+ // (14.23:1 / 13.88:1). The calendar keeps its default `border-spacing: 0` and the band is painted on the cell as well as on the
1503
+ // day, so the rows read as one unbroken range. Keep this block after the calendar and the date picker.
1504
+ @use '@carissa-io/components-date-range/scss' as date-range with (
1505
+ $c-date-range-trigger-color: $var-text,
1506
+ $c-date-range-trigger-min-height: 1.5em,
1507
+ $c-date-range-placeholder-color: $var-muted,
1508
+ $c-date-range-panel-padding: 0.5rem,
1509
+ $c-date-range-months-gap: 1rem,
1510
+ $c-date-range-in-range-background: $var-surface-active,
1511
+ $c-date-range-in-range-color: $var-text,
1512
+ $c-date-range-in-range-radius: 0,
1513
+ $c-date-range-icon-size: $arrow-size,
1514
+ $c-date-range-icon-offset: $arrow-offset,
1515
+ $c-date-range-icon-color: $var-arrow-color,
1516
+ $c-date-range-icon-color-hover: $var-arrow-color-active,
1517
+ $c-date-range-icon-color-open: $var-arrow-color-active,
1518
+ $c-date-range-icon-color-disabled: $var-arrow-color-disabled,
1519
+ $c-date-range-icon-transition: color $transition-duration ease,
1520
+ $c-date-range-open-border-color: $var-focus
1521
+ );
1522
+
1523
+ // Rating: the stars are --c-primary (21:1 / 19.8:1 on the background) over --c-muted ones (5.74:1 / 7.85:1), so the filled
1524
+ // and the empty part differ by shape (a solid star against an outline one) and by lightness (4.43:1 / 2.52:1 between them),
1525
+ // never by hue alone; the preview while hovering is --c-primary-hover (15.13:1 in light). The keyboard ring is the theme's --c-focus. The label is the field label style in --c-muted.
1526
+ @use '@carissa-io/components-rating/scss' as rating with (
1527
+ $c-rating-label-font-size: $label-font-size,
1528
+ $c-rating-label-font-weight: $label-font-weight,
1529
+ $c-rating-label-color: $var-muted,
1530
+ $c-rating-label-gap: 0.5rem,
1531
+ $c-rating-size: 1.75rem,
1532
+ $c-rating-gap: 0.25rem,
1533
+ $c-rating-color: $var-primary,
1534
+ $c-rating-color-hover: $var-primary-hover,
1535
+ $c-rating-empty-color: $var-muted,
1536
+ $c-rating-transition: color $transition-duration ease,
1537
+ $c-rating-focus-color: $var-focus,
1538
+ $c-rating-focus-ring-width: $focus-width,
1539
+ $c-rating-focus-radius: $radius,
1540
+ $c-rating-disabled-opacity: 0.5
1541
+ );
1542
+
1543
+ // Colour picker: the field is the Input's with a swatch chip and the hex text; the panel is the Popover's. The hue and
1544
+ // brightness areas are the colour data itself, so their gradients keep the component's literal colours. Everything else is
1545
+ // custom properties: the thumbs are a --c-background ring over a --c-text one (visible over any colour in both modes), the
1546
+ // keyboard ring is --c-focus, the hex input is built like the Input box and the chips are bordered with --c-muted.
1547
+ @use '@carissa-io/components-color-picker/scss' as color-picker with (
1548
+ $c-color-picker-color: $var-text,
1549
+ $c-color-picker-min-height: 1.5em,
1550
+ $c-color-picker-gap: 0.75rem,
1551
+ $c-color-picker-open-border-color: $var-focus,
1552
+ $c-color-picker-chip-size: 1.25rem,
1553
+ $c-color-picker-chip-radius: $radius,
1554
+ $c-color-picker-chip-border-color: $var-muted,
1555
+ $c-color-picker-chip-empty-background: repeating-conic-gradient($var-surface-active 0% 25%, $var-background 0% 50%) 50% / 0.5rem 0.5rem,
1556
+ $c-color-picker-panel-width: 15rem,
1557
+ $c-color-picker-panel-padding: 0.75rem,
1558
+ $c-color-picker-panel-gap: 0.75rem,
1559
+ $c-color-picker-area-radius: $radius,
1560
+ $c-color-picker-track-radius: $radius,
1561
+ $c-color-picker-alpha-checker: repeating-conic-gradient($var-surface-active 0% 25%, $var-background 0% 50%) 50% / 0.5rem 0.5rem,
1562
+ $c-color-picker-thumb-size: 1.25rem,
1563
+ $c-color-picker-thumb-border-width: 2px,
1564
+ $c-color-picker-thumb-border-color: $var-background,
1565
+ $c-color-picker-thumb-shadow: (0 0 0 1px $var-text),
1566
+ $c-color-picker-focus-ring-width: $focus-width,
1567
+ $c-color-picker-focus-ring-color: $var-focus,
1568
+ $c-color-picker-focus-ring-offset: 2px,
1569
+ $c-color-picker-hex-font-family: $font-family-mono,
1570
+ $c-color-picker-hex-font-size: $font-size-small,
1571
+ $c-color-picker-hex-color: $var-text,
1572
+ $c-color-picker-hex-background: $var-background,
1573
+ $c-color-picker-hex-padding: 0.625rem 0.75rem,
1574
+ $c-color-picker-hex-border-color: $var-muted,
1575
+ $c-color-picker-hex-border-color-invalid: $var-error,
1576
+ $c-color-picker-hex-radius: $radius,
1577
+ $c-color-picker-swatch-size: 1.75rem,
1578
+ $c-color-picker-swatch-radius: $radius,
1579
+ $c-color-picker-swatch-border-color: $var-muted,
1580
+ $c-color-picker-swatch-selected-ring-color: $var-primary
1581
+ );
1582
+
1583
+ // Async autocomplete: the Combobox's field (a text input over the Listbox in the Popover, configured above) with a spinner
1584
+ // while a request is pending (--c-primary arc over a --c-surface-active track) and one message in the panel per state:
1585
+ // loading and empty in --c-muted (5.74:1 / 7.85:1, the Listbox's empty message color) and an error in --c-error (4.53:1 / 7.16:1).
1586
+ @use '@carissa-io/components-async-autocomplete/scss' as async-autocomplete with (
1587
+ $c-async-autocomplete-color: $var-text,
1588
+ $c-async-autocomplete-min-height: 1.5em,
1589
+ $c-async-autocomplete-placeholder-color: $var-muted,
1590
+ $c-async-autocomplete-open-border-color: $var-focus,
1591
+ $c-async-autocomplete-spinner-size: $arrow-size,
1592
+ $c-async-autocomplete-spinner-offset: $arrow-offset,
1593
+ $c-async-autocomplete-spinner-width: 2px,
1594
+ $c-async-autocomplete-spinner-color: $var-primary,
1595
+ $c-async-autocomplete-spinner-track-color: $var-surface-active,
1596
+ $c-async-autocomplete-loading-color: $var-muted,
1597
+ $c-async-autocomplete-empty-color: $var-muted,
1598
+ $c-async-autocomplete-error-color: $var-error
1599
+ );