Listbox
Mixins
root-container
@mixin root-container() { ... }
@mixin root-container() { position: absolute; width: 100%; display: flex; flex-direction: column; background-color: settings.$background-color; box-shadow: 0 0 0 var(--kib-listbox-border-width, #{kib-field.$control-border-width-large}) var(--kib-listbox-border-color, #{kib-field.$control-border-color-focus}), 0 0 0 var(--kib-listbox-outline-width, 0) var(--kib-listbox-outline-color, #{kib-field.$control-outline-color}); padding: 0; border-radius: kib-field.$control-border-radius; margin-top: #{spacing.get('s2')}; overflow: hidden; z-index: 6; // TODO min-height:need later max-height: unit.rem(220px); // TODO need confirmation @media (forced-colors: active) { border: unit.rem(2px) transparent solid; } }
Description
Root container
Parameters
None.
Requires
- [function]
get
- [function]
rem
- [variable]
background-color
- [variable]
control-border-width-large
- [variable]
control-border-color-focus
- [variable]
control-outline-color
- [variable]
control-border-radius
hidden
@mixin hidden() { ... }
@mixin hidden() { display: none; }
Description
Closed listbox
Parameters
None.
options
@mixin options() { ... }
@mixin options() { flex: 1 1 auto; overflow-y: auto; }
Description
Option container
Parameters
None.
status
@mixin status() { ... }
@mixin status() { @include typography.style-as('form-dropdown-header'); flex: 0 0 auto; padding: spacing.get('s2') spacing.get('s3'); margin-bottom: unit.rem(1px); color: color.get('text', 'secondary'); background-color: color.get('field', '02'); border-top-left-radius: kib-field.$control-border-radius; border-top-right-radius: kib-field.$control-border-radius; @media (forced-colors: active) { border-bottom: unit.rem(1px) transparent solid; } }
Description
Status bar at the top of listbox
Parameters
None.
Requires
- [function]
get
- [function]
rem
- [variable]
control-border-radius
no-results
@mixin no-results() { ... }
@mixin no-results() { padding: spacing.get('s2') spacing.get('s3'); color: color.get('text', 'secondary'); font-style: italic; margin: auto; }
item
@mixin item() { ... }
@mixin item() { @include typography.style-as(settings.$item-typography); display: flex; justify-content: space-between; align-items: center; gap: spacing.get('s2'); padding: spacing.get('s2', 's4', 's2', 's3'); // TODO need to adjust vertical spacing cursor: pointer; transition: background-color 200ms; @media screen and (prefers-reduced-motion: reduce) { transition: none; } &:last-child { border-bottom-left-radius: kib-field.$control-border-radius; border-bottom-right-radius: kib-field.$control-border-radius; } }
Description
Listbox item container
Parameters
None.
Requires
- [function]
get
- [variable]
item-typography
- [variable]
control-border-radius
item-active
@mixin item-active() { ... }
@mixin item-active() { background-color: color.get('field', '03'); @media (forced-colors: active) { outline: unit.rem(2px) solid Highlight; outline-offset: unit.rem(-2px); } }
item-hover
@mixin item-hover() { ... }
@mixin item-hover() { @include item-active; }
checkbox
@mixin checkbox() { ... }
@mixin checkbox() { @include kib-choices.choice-control-custom-base; @include kib-checkbox.checkbox-control-custom-base; order: 5; }
Description
Checkbox
Parameters
None.
checkbox-fill
@mixin checkbox-fill() { ... }
@mixin checkbox-fill() { @include kib-checkbox.checkbox-control-fill; }
Description
Checkbox fill
Parameters
None.
selected-checkbox
@mixin selected-checkbox() { ... }
@mixin selected-checkbox() { @media (forced-colors: active) { outline: unit.rem(1px) solid Highlight; outline-offset: unit.rem(-1px); } }
selected-checkbox-fill
@mixin selected-checkbox-fill() { ... }
@mixin selected-checkbox-fill() { @include kib-checkbox.checkbox-control-fill-checked; }
Description
Selected checkbox fill
Parameters
None.
label
@mixin label() { ... }
@mixin label() { flex: 0 1 calc(100% - spacing.get('s2')); order: 2; }
icon
@mixin icon() { ... }
@mixin icon() { display: block; flex: 0 0 settings.$item-icon-size; width: settings.$item-icon-size; height: settings.$item-icon-size; z-index: 1; transition: color settings.$item-transition-duration ease-out; pointer-events: none; }
Description
Item icon
Parameters
None.
Requires
- [variable]
item-icon-size
- [variable]
item-transition-duration
icon-align-start
@mixin icon-align-start() { ... }
@mixin icon-align-start() { order: 1; }
Description
Item icon
Parameters
None.
icon-align-end
@mixin icon-align-end() { ... }
@mixin icon-align-end() { order: 3; }
Description
Item icon
Parameters
None.
Variables
background-color
$background-color: color.get('field', 'primary') !default;
Description
background-color
item-transition-duration
$item-transition-duration: 0.2s !default;
item-typography
$item-typography: 'form-text' !default;
item-icon-size
$item-icon-size: $item-typography-line-height;
Description
item icon size
Type
Number
item-icon-padding
$item-icon-padding: spacing.get('s3') !default;
Description
item icon padding
Type
Number