View Toggle
Mixins
base
@mixin base() { ... }
@mixin base() { --right-margin: #{spacing.get('s1')}; --background-color: #{settings.$view-toggle-container-background-color}; --item-background-color: #{settings.$view-toggle-item-default-background-color}; gap: settings.$view-toggle-container-gap; border: solid settings.$view-toggle-container-border-width settings.$view-toggle-container-border-color; border-radius: settings.$view-toggle-container-border-radius; background-color: settings.$view-toggle-container-background-color; padding: settings.$view-toggle-container-padding; display: inline-flex; box-sizing: content-box; width: max-content; }
Description
base styles
Parameters
None.
Requires
- [function]
get
- [variable]
view-toggle-container-background-color
- [variable]
view-toggle-item-default-background-color
- [variable]
view-toggle-container-gap
- [variable]
view-toggle-container-border-width
- [variable]
view-toggle-container-border-color
- [variable]
view-toggle-container-border-radius
- [variable]
view-toggle-container-padding
item-base
@mixin item-base() { ... }
@mixin item-base() { @include typography.style-as('button-medium'); --item-text-color: #{settings.$view-toggle-text-color}; --item-focus-ring-border-color: transparent; display: flex; position: relative; gap: settings.$view-toggle-item-gap; align-items: center; &:hover { --item-background-color: #{settings.$view-toggle-item-hover-background-color}; } &:active { --item-background-color: #{settings.$view-toggle-item-pressed-background-color}; } @media (forced-colors: active) { &[aria-current='true'] { color: LinkText !important; } } &:focus { --item-focus-ring-border-color: #{settings.$view-toggle-item-focus-ring-border-color}; z-index: 1; } &:focus-visible { outline: none; } :first-of-type { margin-left: spacing.get('s1'); } :last-of-type { margin-right: spacing.get('s1'); } ::after { content: ''; position: absolute; top: settings.$view-toggle-item-focus-ring-border-distance; right: settings.$view-toggle-item-focus-ring-border-distance; bottom: settings.$view-toggle-item-focus-ring-border-distance; left: settings.$view-toggle-item-focus-ring-border-distance; border-radius: settings.$view-toggle-container-border-radius; border: solid settings.$view-toggle-item-focus-ring-border-width var(--item-focus-ring-border-color); display: flex; color: inherit; z-index: -1; } border: settings.$view-toggle-item-selected-border-width solid settings.$view-toggle-item-default-background-color; background-color: var(--item-background-color); padding: spacing.get('s1'); padding-right: spacing.get('s1'); border-radius: settings.$view-toggle-item-border-radius; flex-wrap: nowrap; flex-shrink: 0; cursor: pointer; }
Description
item base styles
Parameters
None.
Requires
- [function]
get
- [variable]
view-toggle-text-color
- [variable]
view-toggle-item-gap
- [variable]
view-toggle-item-hover-background-color
- [variable]
view-toggle-item-pressed-background-color
- [variable]
view-toggle-item-focus-ring-border-color
- [variable]
view-toggle-item-focus-ring-border-distance
- [variable]
view-toggle-container-border-radius
- [variable]
view-toggle-item-focus-ring-border-width
- [variable]
view-toggle-item-selected-border-width
- [variable]
view-toggle-item-default-background-color
- [variable]
view-toggle-item-border-radius
label
@mixin label() { ... }
@mixin label() { display: inline-flex; vertical-align: middle; text-align: left; }
Description
item base content styles
Parameters
None.
icon
@mixin icon() { ... }
@mixin icon() { flex-shrink: 0; display: inline-block; vertical-align: middle; width: settings.$view-toggle-item-icon-size; height: settings.$view-toggle-item-icon-size; > svg { fill: currentColor; } > :only-child { display: block; width: inherit; height: inherit; } }
hide-label
@mixin hide-label() { ... }
@mixin hide-label() { --right-margin: 0; padding: unit.rem(4px); border-radius: settings.$view-toggle-item-border-radius; &::after { border-radius: inherit; } }
Description
icon only styles
Parameters
None.
Requires
- [function]
rem
- [variable]
view-toggle-item-border-radius
icon-no-labels
@mixin icon-no-labels() { ... }
@mixin icon-no-labels() { margin: 0; > svg { margin: 0; } }
Description
icon without label styles
Parameters
None.
visually-hidden
@mixin visually-hidden() { ... }
@mixin visually-hidden() { @include a11y.visually-hidden; }
Description
visually hide button text styles
Parameters
None.
selected
@mixin selected() { ... }
@mixin selected() { --item-background-color: #{settings.$view-toggle-item-on-background-color}; cursor: default; border: settings.$view-toggle-item-selected-border-width solid settings.$view-toggle-item-selected-border-color; &:hover { --item-background-color: #{settings.$view-toggle-item-on-background-color}; } &:active { --item-background-color: #{settings.$view-toggle-item-on-background-color}; } }
Description
active styles
Parameters
None.
Requires
- [variable]
view-toggle-item-on-background-color
- [variable]
view-toggle-item-selected-border-width
- [variable]
view-toggle-item-selected-border-color
Variables
view-toggle-typography
$view-toggle-typography: 'button-medium' !default;
Description
typography token name
Type
String
view-toggle-container-border-color
$view-toggle-container-border-color: color.get(
'action',
'view-toggle',
'container',
'border'
) !default;
view-toggle-container-gap
$view-toggle-container-gap: unit.rem(2px) !default;
view-toggle-item-gap
$view-toggle-item-gap: spacing.get('s2') !default;
view-toggle-container-border-width
$view-toggle-container-border-width: unit.rem(1px) !default;
view-toggle-container-border-radius
$view-toggle-container-border-radius: border.get('br03') !default;
view-toggle-container-padding
$view-toggle-container-padding: unit.rem(3px) !default;
view-toggle-container-background-color
$view-toggle-container-background-color: color.get(
'action',
'view-toggle',
'off',
'default-bg'
) !default;
view-toggle-item-icon-size
$view-toggle-item-icon-size: $view-toggle-line-height;
view-toggle-item-border-radius
$view-toggle-item-border-radius: border.get('br03') !default;
view-toggle-item-default-background-color
$view-toggle-item-default-background-color: color.get(
'action',
'view-toggle',
'off',
'default-bg'
) !default;
view-toggle-item-hover-background-color
$view-toggle-item-hover-background-color: color.get(
'action',
'view-toggle',
'off',
'hover-bg'
) !default;
view-toggle-item-pressed-background-color
$view-toggle-item-pressed-background-color: color.get(
'action',
'view-toggle',
'off',
'pressed-bg'
) !default;
view-toggle-item-on-background-color
$view-toggle-item-on-background-color: color.get(
'action',
'view-toggle',
'on',
'default-bg'
) !default;
view-toggle-item-selected-border-color
$view-toggle-item-selected-border-color: color.get(
'action',
'view-toggle',
'container',
'border'
) !default;
view-toggle-item-selected-border-width
$view-toggle-item-selected-border-width: unit.rem(1px) !default;
view-toggle-item-focus-ring-border-color
$view-toggle-item-focus-ring-border-color: color.get('text', 'primary') !default;
view-toggle-item-focus-ring-border-width
$view-toggle-item-focus-ring-border-width: unit.rem(2px) !default;
view-toggle-item-focus-ring-border-distance
$view-toggle-item-focus-ring-border-distance: unit.rem(-5px) !default;
view-toggle-text-color
$view-toggle-text-color: color.get('text', 'primary') !default;
view-toggle-text-selected-color
$view-toggle-text-selected-color: color.get('text', 'inverse') !default;
Description
text/foreground selected color
Type
Color