Button
ready

A button component with multiple variants (primary, secondary, tertiary, icon, unstyled) and form integration support.

Example

Loading

Code

HTML

import { NbhdButton } from '@fbin-web/neighborhood-core';
<nbhd-button> Button Text </nbhd-button>

React

import { NbhdButton } from '@fbin-web/neighborhood-react';

const App = () => (
  <>
    <NbhdButton>Button Text</NbhdButton>
  </>
);

Properties

Property Attribute Type Default Description
type type button | submit | reset button The native button type. Use submit when the button should trigger form submission.
variant variant primary | secondary | tertiary | plain | unstyled | link primary The visual style variant for the button.
ariaLabel aria-label string Accessible label used for screen readers, especially for icon-only buttons.
cssClass css-class string Additional CSS classes to apply to the button.
iconOnly icon-only boolean false Whether the button is icon-only. This is independent of the variant and should be paired with an aria-label.
disabled disabled boolean false Disables the button and prevents interactions while the element remains in the DOM.

Slots

Name Description
(default) button's label.
prefix Before label.
suffix After label

CSS Parts

Name Description
base The component's base wrapper.
prefix Container that wraps the prefix.
label The button's label.
suffix Container that wraps the suffix.

Primary

Styling properties for primary button variant.

Property Default Value
--nbhd-action-primary-backgroundColor var(--nbhd-color-action-primary-background)
--nbhd-action-primary-backgroundPosition 110% 0
--nbhd-action-primary-backgroundRepeat no-repeat
--nbhd-action-primary-backgroundSize 205% 100%
--nbhd-action-primary-borderColor var(--nbhd-color-action-primary-border)
--nbhd-action-primary-borderRadius var(--nbhd-border-radius-sm)
--nbhd-action-primary-borderStyle solid
--nbhd-action-primary-color var(--nbhd-color-action-primary-foreground)
--nbhd-action-primary-fontFamily var(--nbhd-typography-action-fontFamily)
--nbhd-action-primary-fontSize var(--nbhd-typography-action-fontSize)
--nbhd-action-primary-fontStyle normal
--nbhd-action-primary-fontWeight var(--nbhd-typography-action-fontWeight)
--nbhd-action-primary-inlineSize auto
--nbhd-action-primary-letterSpacing 2px
--nbhd-action-primary-lineHeight var(--nbhd-typography-action-lineHeight)
--nbhd-action-primary-paddingBlock var(--nbhd-base-space-3)
--nbhd-action-primary-paddingInline var(--nbhd-base-space-9)
--nbhd-action-primary-textTransform uppercase
--nbhd-action-primary-gradient-opacity 0.25
--nbhd-action-primary-hover-backgroundColor var(--nbhd-color-action-primary-hover-background)
--nbhd-action-primary-hover-backgroundPosition 0 0
--nbhd-action-primary-hover-borderColor var(--nbhd-color-action-primary-hover-border)
--nbhd-action-primary-hover-color var(--nbhd-color-action-primary-hover-foreground)
--nbhd-action-primary-hover-letterSpacing var(--nbhd-action-primary-letterSpacing)
--nbhd-action-primary-active-backgroundColor var(--nbhd-color-action-primary-active-background)
--nbhd-action-primary-active-borderColor var(--nbhd-color-action-primary-active-border)
--nbhd-action-primary-active-color var(--nbhd-color-action-primary-active-foreground)
--nbhd-action-primary-bpMd-fontSize var(--nbhd-typography-action-bpMd-fontSize)
--nbhd-action-primary-bpMd-lineHeight var(--nbhd-action-primary-lineHeight)

Secondary

Styling properties for the secondary button variant.

Property Default Value
--nbhd-action-secondary-backgroundColor var(--nbhd-color-action-secondary-background)
--nbhd-action-secondary-backgroundPosition 110% 0
--nbhd-action-secondary-backgroundRepeat no-repeat
--nbhd-action-secondary-backgroundSize 205% 100%
--nbhd-action-secondary-borderColor var(--nbhd-color-action-secondary-border)
--nbhd-action-secondary-borderRadius var(--nbhd-border-radius-sm)
--nbhd-action-secondary-borderStyle solid
--nbhd-action-secondary-color var(--nbhd-color-action-secondary-foreground)
--nbhd-action-secondary-fontFamily var(--nbhd-typography-action-fontFamily)
--nbhd-action-secondary-fontSize var(--nbhd-typography-action-fontSize)
--nbhd-action-secondary-fontStyle normal
--nbhd-action-secondary-fontWeight var(--nbhd-typography-action-fontWeight)
--nbhd-action-secondary-inlineSize auto
--nbhd-action-secondary-letterSpacing 2px
--nbhd-action-secondary-lineHeight var(--nbhd-typography-action-lineHeight)
--nbhd-action-secondary-paddingBlock var(--nbhd-base-space-3)
--nbhd-action-secondary-paddingInline var(--nbhd-base-space-9)
--nbhd-action-secondary-textTransform uppercase
--nbhd-action-secondary-gradient-opacity 1
--nbhd-action-secondary-hover-backgroundColor var(--nbhd-color-action-secondary-hover-background)
--nbhd-action-secondary-hover-backgroundPosition 0 0
--nbhd-action-secondary-hover-borderColor var(--nbhd-color-action-secondary-hover-border)
--nbhd-action-secondary-hover-color var(--nbhd-color-action-secondary-hover-foreground)
--nbhd-action-secondary-hover-letterSpacing var(--nbhd-action-secondary-letterSpacing)
--nbhd-action-secondary-active-backgroundColor var(--nbhd-color-action-secondary-active-background)
--nbhd-action-secondary-active-borderColor var(--nbhd-color-action-secondary-active-border)
--nbhd-action-secondary-active-color var(--nbhd-color-action-secondary-active-foreground)
--nbhd-action-secondary-bpMd-fontSize var(--nbhd-typography-action-bpMd-fontSize)
--nbhd-action-secondary-bpMd-lineHeight var(--nbhd-action-primary-lineHeight)

Tertiary

Styling properties for the tertiary CTA variant.

Property Default Value
--nbhd-action-tertiary-backgroundColor transparent
--nbhd-action-tertiary-borderWidth 0
--nbhd-action-tertiary-color var(--nbhd-color-action-tertiary-foreground)
--nbhd-action-tertiary-fontFamily var(--nbhd-typography-action-fontFamily)
--nbhd-action-tertiary-fontSize var(--nbhd-typography-bodySmall-fontSize)
--nbhd-action-tertiary-letterSpacing normal
--nbhd-action-tertiary-paddingBlock var(--nbhd-base-space-0) var(--nbhd-base-space-3)
--nbhd-action-tertiary-paddingInline var(--nbhd-base-space-0)
--nbhd-action-tertiary-textTransform none
--nbhd-action-tertiary-transitionDuration 0.1s
--nbhd-action-tertiary-transitionProperty all
--nbhd-action-tertiary-zIndex var(--nbhd-base-z-1)
--nbhd-action-tertiary-underline-color var(--nbhd-color-action-tertiary-border)
--nbhd-action-tertiary-underline-height 2px
--nbhd-action-tertiary-underline-zIndex var(--nbhd-base-z-below)
--nbhd-action-tertiary-hover-backgroundColor var(--nbhd-color-action-tertiary-hover-background)
--nbhd-action-tertiary-hover-color var(--nbhd-color-action-tertiary-hover-foreground)
--nbhd-action-tertiary-hover-underline-color var(--nbhd-color-action-tertiary-hover-border)
--nbhd-action-tertiary-hover-underline-height 5px
--nbhd-action-tertiary-active-backgroundColor var(--nbhd-color-action-tertiary-active-background)
--nbhd-action-tertiary-active-color var(--nbhd-color-action-tertiary-active-foreground)
--nbhd-action-tertiary-active-underline-color var(--nbhd-color-action-tertiary-active-border)
--nbhd-action-tertiary-active-underline-height 5px

Plain

Styling properties for the plain Button variant.

Property Default Value
--nbhd-action-plain-backgroundColor var(--nbhd-color-action-plain-background)
--nbhd-action-plain-borderWidth var(--nbhd-border-width-none)
--nbhd-action-plain-color var(--nbhd-color-action-plain-foreground)
--nbhd-action-plain-fontFamily var(--nbhd-typography-action-fontFamily)
--nbhd-action-plain-fontSize var(--nbhd-typography-action-fontSize)
--nbhd-action-plain-fontWeight var(--nbhd-typography-action-fontWeight)
--nbhd-action-plain-lineHeight var(--nbhd-typography-action-lineHeight)
--nbhd-action-plain-letterSpacing normal
--nbhd-action-plain-paddingBlock var(--nbhd-base-space-0) var(--nbhd-base-space-3)
--nbhd-action-plain-paddingInline var(--nbhd-base-space-0)
--nbhd-action-plain-textTransform none
--nbhd-action-plain-hover-backgroundColor var(--nbhd-color-action-plain-hover-background)
--nbhd-action-plain-hover-color var(--nbhd-color-action-plain-hover-foreground)
--nbhd-action-plain-active-backgroundColor var(--nbhd-color-action-plain-active-background)
--nbhd-action-plain-active-color var(--nbhd-color-action-plain-active-foreground)

Styling properties for the link Button variant.

Property Default Value
--nbhd-action-link-backgroundColor var(--nbhd-color-action-link-background)
--nbhd-action-link-borderWidth var(--nbhd-border-width-none)
--nbhd-action-link-color var(--nbhd-color-action-link-foreground)
--nbhd-action-link-fontFamily var(--nbhd-typography-action-fontFamily)
--nbhd-action-link-fontSize var(--nbhd-typography-action-fontSize)
--nbhd-action-link-fontStyle normal
--nbhd-action-link-fontWeight var(--nbhd-typography-action-fontWeight)
--nbhd-action-link-lineHeight var(--nbhd-typography-action-lineHeight)
--nbhd-action-link-letterSpacing normal
--nbhd-action-link-paddingBlock var(--nbhd-base-space-0)
--nbhd-action-link-paddingInline var(--nbhd-base-space-0)
--nbhd-action-link-textDecoration underline
--nbhd-action-link-textTransform none
--nbhd-action-link-hover-backgroundColor var(--nbhd-color-action-link-hover-background)
--nbhd-action-link-hover-color var(--nbhd-color-action-link-hover-foreground)
--nbhd-action-link-active-backgroundColor var(--nbhd-color-action-link-active-background)
--nbhd-action-link-active-color var(--nbhd-color-action-link-active-foreground)

Unstyled

Styling properties for the unstyled Button variant.

Property Default Value
--nbhd-action-unstyled-backgroundColor transparent
--nbhd-action-unstyled-borderWidth var(--nbhd-border-width-none)
--nbhd-action-unstyled-color var(--nbhd-color-text-primary)
--nbhd-action-unstyled-fontFamily var(--nbhd-typography-action-fontFamily)
--nbhd-action-unstyled-fontSize var(--nbhd-typography-action-fontSize)
--nbhd-action-unstyled-fontWeight var(--nbhd-typography-body-fontWeight)
--nbhd-action-unstyled-lineHeight var(--nbhd-typography-action-lineHeight)
--nbhd-action-unstyled-paddingBlock var(--nbhd-base-space-0)
--nbhd-action-unstyled-paddingInline var(--nbhd-base-space-0)