Button Ready
Buttons are used for interface actions. Primary style should be used only once per section for main call-to-action, while other styles can appear more frequently.
<nord-stack gap="s" direction="horizontal">
<nord-button href="#">Default</nord-button>
<nord-button href="#" variant="primary">Primary</nord-button>
<nord-button href="#" variant="danger">Danger</nord-button>
<nord-button href="#" variant="dashed">
<nord-icon slot="start" size="s" name="interface-filter"></nord-icon>
Filter
</nord-button>
<nord-button href="#">
<nord-icon size="s" color="var(--n-color-icon)" name="interface-menu-small" label="Options"></nord-icon>
</nord-button>
<nord-button href="#" variant="plain">Plain</nord-button>
<nord-button href="#" disabled>Disabled</nord-button>
</nord-stack>
Properties
Property | Attribute | Description | Type | Default |
---|---|---|---|---|
variant | variant | The style variant of the button. | "default" | "primary" | "dashed" | "plain" | "danger" | "switch" | "default" |
type | type | The type of the button. | "button" | "submit" | "reset" | "submit" |
size | size | The size of the button. This affects font-size and padding. | "s" | "m" | "l" | "m" |
href | href | When provided, renders the button as a link, with its href attribute set to the given value. | string | undefined | undefined |
download | download | When provided together with a href property, the button will trigger a file download instead of a page visit. | boolean | false |
target | target | When provided together with a href property, determines where to open the linked URL. The keywords have special meanings for where to load the URL: “_self” means the current browsing context, “_blank” usually a new tab but users can configure browsers this to open a new window instead, “_parent” means the parent browsing context of the current one, but if no parent exists, behaves as _self, and finally “top” means the topmost browsing context. | "_self" | "_blank" | "_parent" | "_top" | "_self" |
expand | expand | Controls whether the button expands to fill the width of its container. | boolean | false |
disabled | disabled | Makes the component disabled. This prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies. | boolean | false |
name | name | The name of the form component. | string | undefined | undefined |
value | value | The value of the form component. | string | "" |
Slots
Slot name | Description |
---|---|
Default slot | The button content |
start | Used to place content at the start of button text. Typically used for icons. |
end | Used to place content at the end of button text. Typically used for icons. |
Methods
Method name | Parameters | Description |
---|---|---|
focus(options?: FocusOptions) => void | options : An object which controls aspects of the focusing process. | Programmatically move focus to the component. |
blur() => void | N/A | Programmatically remove focus from the component. |
click() => void | N/A | Programmatically simulates a click on the component. |
Usage #
This section includes guidelines for designers and developers about the usage of this component in different contexts.
Do #
- Use clear and accurate labels.
- Use established button colors appropriately. For example, only use a danger button style for an action that’s difficult or impossible to undo.
- Prioritize the most important actions. Too many buttons will cause confusion.
- Be consistent with positioning of buttons in the user interface.
- Use strong, actionable verbs in labels such as “Add”, “Close”, “Cancel”, or “Save”.
Don’t #
- Don’t use buttons to link to other pages. Use regular link or a plain style instead where necessary.
- Don’t use buttons for navigation where the link appears within or following a sentence.
- Don’t use labels such as “Read more”, “Click here” or “More”.
Content guidelines #
Button labels should be clear, accurate and predictable. It should be possible for the user to understand what will happen when they click a button:
When writing button labels, always write them in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):
Avoid unnecessary words and articles in button labels, such as “the”, “an” or “a”:
Variants #
This section describes the different component variants, their purpose, and when to use each variant.
Name | Purpose |
---|---|
default | Default style is the most common button variant. Only switch to another variant if you need to adjust the visual weight of the element. |
primary | Primary style is reserved for main call-to-actions. Should be used only once per content area or panel, e.g. for a “Save” action. |
dashed | Dashed style should be used for actions that trigger filtering. |
danger | Danger style should be used for actions that delete data or otherwise make it hard to undo the action. |
plain | Used for less important or less common actions. Can be also used for linking to other pages. |
disabled | Used for actions that aren’t currently available or not available anymore. Also prevents users from being able to interact with the component, and conveys its inactive state to assistive technologies. |
switch | Switch style is reserved for the clinic switcher in the top left corner of an application. |
Additional considerations #
- Users of assistive technology expect a button to submit data or do an action. If you need the button to navigate into another view, use the
href
property which will output<a>
tag instead of a<button>
. - When you need to disable a button, use
disabled
property as it conveys this information correctly to assistive technologies like screen readers. - Button component provides 3 size variants; small, medium and large. The large size should only be used for marketing purposes or on areas such as an empty space/content notice.
Integration
For integration guidelines, please see Web Components documentation. This documentation explains how to implement and use Nord Web Components across different technologies such as Vue.js, React, or Vanilla JavaScript.
Localization
Nord provides a lightweight solution for localizing its components. Not all components need localizing, as for the most part snippets of text are set per instance. For full localization guidelines, please see Localization documentation.
Troubleshooting
If you experience any issues while using Nord Web Components, please head over to the Support page for more guidelines and ways to contact us.