icon-action
The icon-action component consists of two parts, the icon-action
and it’s child icon
component. Because icon-actions only contain an icon as its content, it’s important to add an aria-label
attribute with a label of what the action does for accessibility.
<button class="icon-action" aria-label="Close button">
<svg role="img" class="icon">
<!-- SVG markup or link ID goes here... -->
</svg>
</button>
Disabled
When disabled using the disabled
attribute, an icon-action will inherit styles to visually appear noninteractive.
<button class="icon-action" disabled>
<svg role="img" class="icon">
<!-- SVG markup or link ID goes here... -->
</svg>
</button>
Loading
Icon-actions can also have a loading state by adding the is-loading
state class. This is useful when an icon-action has an action that has a delayed response in order to give users a visual indicator that their action is being processed.
<button class="icon-action is-loading" disabled>
<svg role="img" class="icon">
<!-- SVG markup or link ID goes here... -->
</svg>
</button>
icon-action_invert
A boolean icon-action modifier that allows icon-actions and their modifiers to provide an inversed version of themselves. Since not all icon-action styles require an inversed variant, this is typically used for when the background context of a button matters. Can be combined with icon-action_subtle
boolean modifier.
<button class="icon-action" aria-label="...">...</button>
<button class="icon-action icon-action_invert" aria-label="...">...</button>
Available Combinations
icon-action icon-action_invert
icon-action icon-action_invert icon-action_subtle
icon-action_state_[value]
Adds styles for changing the look and feel of an icon-action to better reflect the urgency or status of the action.
<button class="icon-action icon-action_state_info" aria-label="...">...</button>
<button class="icon-action icon-action_state_success" aria-label="...">...</button>
<button class="icon-action icon-action_state_caution" aria-label="...">...</button>
<button class="icon-action icon-action_state_danger" aria-label="...">...</button>
Available Variations
icon-action_state_info
icon-action_state_success
icon-action_state_caution
icon-action_state_danger
icon-action_subtle
A boolean icon-action modifier that allows icon-actions and their modifiers to provide a more subtle version of themselves. Can be combined with icon-action_invert
boolean modifier.
<button class="icon-action icon-action_subtle" aria-label="...">...</button>
<button class="icon-action icon-action_subtle icon-action_invert" aria-label="...">...</button>
Available Combinations
icon-action icon-action_subtle
icon-action icon-action_subtle icon-action_invert
Sass Variables
Variable | Default | Description |
---|---|---|
$prefix-block | null | String to prefix blocks with. |
$prefix-element | "__" | String to prefix elements with. |
$prefix-modifier | "_" | String to prefix modifiers with. |
$prefix-modifier-value | "_" | String to prefix modifier values with. |
$size | (core.$font-size * core.$line-height) | Sets the width and height properties. |
$transition-property | box-shadow, outline, outline-offset | Sets the transition-property property. |
$transition-duration | core.$transition-duration-short | Sets the transition-duration property. |
$transition-timing-function | core.$transition-timing-function | Sets the transition-timing-function property. |
$border-radius | core.$border-radius-circle | Sets the border-radius property. |
$border | null | Sets the border property. |
$border-color-hover | null | Sets the border-color property on :hover state. |
$border-color-focus | null | Sets the border-color property on :focus state. |
$border-color-active | null | Sets the border-color property on :active state. |
$background | rgba(core.$black, 0.4) | Sets the background property. |
$background-hover | rgba(core.$black, 0.5) | Sets the background property on :hover state. |
$background-focus | rgba(core.$black, 0.5) | Sets the background property on :focus state. |
$background-active | rgba(core.$black, 0.6) | Sets the background property on :active state. |
$box-shadow | 0 0 0 0 rgba(core.$black, 0) | Sets the box-shadow property. |
$box-shadow-hover | null | Sets the box-shadow property on :hover state. |
$box-shadow-focus | 0 0 0 0.2rem rgba(core.$black, 0.2) | Sets the box-shadow property on :focus state. |
$box-shadow-active | null | Sets the box-shadow property on :active state. |
$color | core.$color-invert | Sets the color property. |
$color-hover | null | Sets the color property on :hover state. |
$color-focus | null | Sets the color property on :focus state. |
$color-active | null | Sets the color property on :active state. |
$outline | none | Sets the outline property. |
$outline-hover | null | Sets the outline property on :hover state. |
$outline-focus | null | Sets the outline property on :focus state. |
$outline-active | null | Sets the outline property on :active state. |
$outline-offset | null | Sets the outline-offset property. |
$outline-offset-hover | null | Sets the outline-offset property on :hover state. |
$outline-offset-focus | null | Sets the outline-offset property on :focus state. |
$outline-offset-active | null | Sets the outline-offset property on :active state. |
$icon-stroke-width | 2.5px | Sets the stroke-width property on the child icon component. |
$icon-font-size | core.$font-size-sm | Sets the font-size property on the child icon component. |
$disabled-opacity | 0.6 | Sets the opacity property when disabled attribute is applied. |
$loading-size | 0.7em | Sets the size of the loading spinner. |
$loading-animation-duration | 0.6s | Sets the animation-duration property of the loading spinner. |
$loading-border-color | $color | Sets the border-color property of the loading spinner. |
$loading-border | 2px solid | Sets the border property of the loading spinner. |
$loading-border-tpl | 1 1 0 0 | The template for where to apply the border-color property. Takes boolean 1 and 0 values for top, right, bottom and left borders respectively. |