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

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

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;
 }
Description

No results message

Parameters

None.

Requires

item

@mixin item() { ... }@mixin item() { 
  @include typography.style-as('form-text');

  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: spacing.get('s2') spacing.get('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

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);
  }
 }
Description

Highlighted/selected item

Parameters

None.

Requires
Used by

item-hover

@mixin item-hover() { ... }@mixin item-hover() { 
  @include item-active;
 }
Description

Hovered item

Parameters

None.

Requires

checkbox

@mixin checkbox() { ... }@mixin checkbox() { 
  @include kib-choices.choice-control-custom-base;
  @include kib-checkbox.checkbox-control-custom-base;

  right: spacing.get('s1');
 }
Description

Checkbox

Parameters

None.

Requires

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);
  }
 }
Description

Selected checkbox

Parameters

None.

Requires

selected-checkbox-fill

@mixin selected-checkbox-fill() { ... }@mixin selected-checkbox-fill() { 
  @include kib-checkbox.checkbox-control-fill-checked;
 }
Description

Selected checkbox fill

Parameters

None.

Variables

background-color

$background-color: color.get('field', 'primary') !default;
Description

background-color