Skip to content

Actions are essential building blocks for the interface that perform inline operations.

Overview

Typically living within other components, Actions are flexible buttons that have an icon, can have a text label, notification style indicator, active state, and other useful properties.

Actions are distinct components, since they are more visually prominent. Whereas, Buttons are suited well for primary operations and call-to-actions such as "Save", "Cancel", "Back", and "Next".

Usage

Sample

Accessibility

ARIA attributes

It is recommended to limit the use of ARIA attributes to ensure access and interactivity with your solutions. Developers should evaluate each specified attribute to support more audiences. For instance, if Action toggles another component's visibility on interaction, the expanded property name could be specified to provide additional context to assisitive technologies.

Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
let actionElExpanded = false;

actionEl.addEventListener("click", () => {
  actionElExpanded = !actionElExpanded;
  actionEl.aria = {
    expanded: actionElExpanded
  }
});

Keyboard navigation

KeyFunction
SpacePresses the component.
EnterPresses the component.
TabMoves focus in and out of the component.
Tab and ShiftMoves focus in and out of the component.

Writing and copy

  • Keep text for Action labels simple and succinct
  • Avoid using more than 1-2 words in each item
  • Do not use punctuation like commas or periods in Action label text
  • Do not use contractions (you're, aren't, can't, haven't) in order to reduce confusion
  • Avoid writing Action text as questions
  • Recommended character maximum for each item: 15

API reference

Properties

PropertyAttributeDescriptionTypeDefault
activeactiveWhen true, the component is highlighted.booleanfalse
alignmentalignmentSpecifies the horizontal alignment of button elements with text content.Alignment
appearanceappearance
deprecatedin v5.0.0, removal target v6.0.0 - No longer necessary.
Specifies the appearance of the component.
Extract<"solid" | "transparent", Appearance>"transparent"
ariaWhen specified, overrides or extends ARIA properties and attributes on the component's button. Refer to the component's accessibility section for configuration considerations.Partial<Pick<AriaAttributesCamelCased, "controlsElements" | "describedByElements" | "expanded" | "hasPopup" | "labelledByElements" | "ownsElements" | "pressed" | "checked"> & Pick<LuminaJsx.HTMLAttributes, "role">> | undefined
compactcompact
deprecatedin v2.11.0, removal target v5.0.0 - No longer necessary.
When true, the side padding of the component is reduced.
booleanfalse
disableddisabledWhen true, interaction is prevented and the component is displayed with lower opacity.booleanfalse
formformSpecifies the id of the component's associated form. When not set, the component is associated with its ancestor form element, if one exists.string
iconiconSpecifies an icon to display.IconName
iconFlipRtlicon-flip-rtlWhen true, the icon will be flipped when the element direction is right-to-left ("rtl").booleanfalse
indicatorindicatorWhen true, displays a visual indicator.booleanfalse
labellabelSpecifies an accessible label for the component. If no label is provided, the label inherits what's provided for the text prop.string
loadingloadingWhen true, a busy indicator is displayed.booleanfalse
messageOverridesOverrides individual strings used by the component.Record<string, unknown> | undefined
scalescaleSpecifies the size of the component.Scale"m"
textrequiredtextSpecifies text that accompanies the icon.string
textEnabledtext-enabledWhen true, indicates whether the text is displayed.booleanfalse
typetypeSpecifies the default behavior of the component.HTMLButtonElement["type"]"button"

Slots

NameDescription
default (unnamed)A slot for adding non-interactive content, such as a calcite-icon.

Styles

NameDescription
--calcite-action-background-color-hoverSpecifies the component's background color when hovered.
--calcite-action-background-color-pressSpecifies the component's background color when active.
--calcite-action-background-color-pressed
deprecated Use --calcite-action-background-color-press. Specifies the component's background color when active.
--calcite-action-background-colorSpecifies the component's background color.
--calcite-action-corner-radius-end-end
deprecated Use --calcite-action-corner-radius. Specifies the component's corner radius end end.
--calcite-action-corner-radius-end-start
deprecated Use --calcite-action-corner-radius. Specifies the component's corner radius end start.
--calcite-action-corner-radius-start-end
deprecated Use --calcite-action-corner-radius. Specifies the component's corner radius start end.
--calcite-action-corner-radius-start-start
deprecated Use --calcite-action-corner-radius. Specifies the component's corner radius start start.
--calcite-action-corner-radiusSpecifies the component's corner radius.
--calcite-action-indicator-colorSpecifies the component's indicator color.
--calcite-action-text-color-pressSpecifies the component's text color when pressed or hovered.
--calcite-action-text-color-pressed
deprecated Use --calcite-action-text-color-press. Specifies the component's text color when hovered.
--calcite-action-text-colorSpecifies the component's text color.

Methods

NameDescriptionSignature
componentOnReadyCreate a promise that resolves once component is fully loaded.componentOnReady(): Promise<this>
setFocusSets focus on the component.setFocus(options?: FocusOptions): Promise<void>

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.