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;

  max-height: unit.rem(220px);

  @media (forced-colors: active) {
    border: unit.rem(2px) transparent solid;
  }
 }
Description

Root container

Parameters

None.

Requires

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('utility-2', 'strong');

  font-style: italic;
  flex: 0 0 auto;
  padding: spacing.get('s2') spacing.get('s3');
  margin-bottom: unit.rem(1px);
  color: settings.$item-text-color;
  background-color: color.get('ct', 'field', 'menu', 'container', 'bg-header-color');
  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

no-results

@mixin no-results() { ... }@mixin no-results() { 
  padding: spacing.get('s2') spacing.get('s3');
  color: settings.$item-text-color-inactive;
  margin: auto;
 }
Description

No results message

Parameters

None.

Requires

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');
  cursor: pointer;
  transition: background-color 200ms;

  @media screen and (prefers-reduced-motion: reduce) {
    transition: none;
  }

  &:hover {
    background-color: settings.$hover-background-color;
    color: settings.$item-text-color-hover;

    @media (forced-colors: active) {
      outline: unit.rem(2px) solid Highlight;
      outline-offset: unit.rem(-2px);
    }
  }

  &:active {
    background-color: settings.$active-background-color;
    color: settings.$item-text-color-active;
  }

  &:focus {
    @include item-focus;
  }

  &: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

item-focus

@mixin item-focus() { ... }@mixin item-focus() { 
  background-color: settings.$focus-background-color;
  color: settings.$item-text-color-focus;
 }
Description

Item focus

Parameters

None.

Requires
Used by

item-selected

@mixin item-selected() { ... }@mixin item-selected() { 
  @include typography.style-as('utility-4', 'strong');

  background-color: settings.$selected-background-color;
  color: settings.$item-text-color-selected;
 }
Description

Item selected

Parameters

None.

checkbox-field

@mixin checkbox-field() { ... }@mixin checkbox-field() { 
  @include kib-checkbox.checkbox-field($block);

  flex-shrink: 0;
  order: 5;
  align-items: center;
 }
Description

Checkbox field wrapper (positioning context for native + control)

Parameters

None.

checkbox-control

@mixin checkbox-control() { ... }@mixin checkbox-control() { 
  @include kib-checkbox.checkbox-control(
    $block,
    $fill-element: 'checkbox-fill',
    $hover-scope: false
  );
 }
Description

Checkbox

Parameters

None.

checkbox-fill

@mixin checkbox-fill() { ... }@mixin checkbox-fill() { 
  @include kib-checkbox.checkbox-fill(
    $block,
    $control-element: 'checkbox-control',
    $hover-scope: false
  );
 }
Description

Checkbox fill

Parameters

None.

label

@mixin label() { ... }@mixin label() { 
  flex: 0 1 calc(100% - spacing.get('s2'));
  order: 2;
 }
Description

Item icon

Parameters

None.

Requires

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

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('ct', 'field', 'menu', 'container', 'bg-container-color') !default;
Description

background-color

hover-background-color

$hover-background-color: color.get('ct', 'field', 'menu', 'hover', 'bg-color') !default;
Description

hover-background-color

Used by

active-background-color

$active-background-color: color.get('ct', 'field', 'menu', 'pressed', 'bg-color') !default;
Description

active-background-color

focus-background-color

$focus-background-color: color.get('ct', 'field', 'menu', 'focus', 'bg-color') !default;
Description

focus-background-color

Used by

selected-background-color

$selected-background-color: color.get('ct', 'field', 'menu', 'selected', 'bg-color') !default;
Description

selected-background-color

Used by

item-transition-duration

$item-transition-duration: 0.2s !default;
Description

item transitions duration

Type

Number

Used by

item-typography

$item-typography: 'utility-4' !default;
Description

item typography token name

Type

String

Used by

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

item-text-color

$item-text-color: color.get('ct', 'field', 'menu', 'unselected', 'text-color') !default;
Description

item text color

Type

Color

item-text-color-inactive

$item-text-color-inactive: color.get('ct', 'field', 'menu', 'inactive', 'text-color') !default;
Description

item text color in inactive state

Type

Color

Used by

item-text-color-hover

$item-text-color-hover: color.get('ct', 'field', 'menu', 'hover', 'text-color') !default;
Description

item text color in hover state

Type

Color

Used by

item-text-color-active

$item-text-color-active: color.get('ct', 'field', 'menu', 'unselected', 'text-color') !default;
Description

item text color in active state

Type

Color

Used by

item-text-color-focus

$item-text-color-focus: color.get('ct', 'field', 'menu', 'focus', 'text-color') !default;
Description

item text color in focus state

Type

Color

Used by

item-text-color-selected

$item-text-color-selected: color.get('ct', 'field', 'menu', 'selected', 'text-color') !default;
Description

item text color in selected state

Type

Color

Used by