Theme

PlaygroundBeta

npm_versionnpm Paragon package page

Button

This component utilizes Button from React-Bootstrap and extends it with an ability to add icons before and after button label, see below for usage example.
See React-Bootstrap for additional documentation.

Core Buttons

Any Paragon component or export may be added to the code example.

Core Buttons (Inverse Pallete)

Any Paragon component or export may be added to the code example.

Utility Buttons

Any Paragon component or export may be added to the code example.

Size

Any Paragon component or export may be added to the code example.

When to use the inline size

Use inline size buttons for when a button sits with a line of text.

Any Paragon component or export may be added to the code example.

Block Buttons

Any Paragon component or export may be added to the code example.

Disabled

Any Paragon component or export may be added to the code example.

With empty href

For link to be disabled, it must have href defined with some value.

Any Paragon component or export may be added to the code example.

With Icons before or after

Any Paragon component or export may be added to the code example.

With a Spinner

Any Paragon component or export may be added to the code example.


Button.Deprecated

(Deprecated) basic usage

Any Paragon component or export may be added to the code example.

(Deprecated) color variants

Any Paragon component or export may be added to the code example.

(Deprecated) outline variants

Any Paragon component or export may be added to the code example.

(Deprecated) inverse variants

Any Paragon component or export may be added to the code example.

Any Paragon component or export may be added to the code example.

Theme Variables (SCSS)#

$btn-padding-y: $input-btn-padding-y !default;
$btn-padding-x: $input-btn-padding-x !default;
$btn-font-family: $input-btn-font-family !default;
$btn-font-size: $input-btn-font-size !default;
$btn-line-height: $input-btn-line-height !default;
$btn-padding-y-sm: $input-btn-padding-y-sm !default;
$btn-padding-x-sm: $input-btn-padding-x-sm !default;
$btn-font-size-sm: $input-btn-font-size-sm !default;
$btn-line-height-sm: $input-btn-line-height-sm !default;
$btn-padding-y-lg: $input-btn-padding-y-lg !default;
$btn-padding-x-lg: $input-btn-padding-x-lg !default;
$btn-font-size-lg: $input-btn-font-size-lg !default;
$btn-line-height-lg: $input-btn-line-height-lg !default;
$btn-border-width: $input-btn-border-width !default;
$btn-font-weight: $font-weight-normal !default;
$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;
$btn-focus-width: 2px !default;
$btn-focus-gap: 1px !default;
$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;
$btn-disabled-opacity: .65 !default;
$btn-active-box-shadow: none;
$btn-tertiary-color: $gray-700 !default;
$btn-tertiary-bg: transparent !default;
$btn-tertiary-hover-bg: $light-500 !default;
$btn-tertiary-active-bg: $light-500 !default;
$btn-inverse-tertiary-color: $white !default;
$btn-inverse-tertiary-bg: transparent !default;
$btn-inverse-tertiary-hover-bg: rgba(255, 255, 255, .1) !default;
$btn-inverse-tertiary-active-bg: rgba(255, 255, 255, .1) !default;
$btn-link-disabled-color: theme-color("gray", "light-text") !default;
$btn-block-spacing-y: .5rem !default;
$btn-border-radius: $border-radius !default;
$btn-border-radius-lg: $border-radius-lg !default;
$btn-border-radius-sm: $border-radius-sm !default;
$btn-transition: null;
$btn-focus-border-gap: $btn-focus-width + $btn-focus-gap !default;
$btn-focus-distance-to-border: $btn-focus-border-gap + $btn-border-width !default;
$btn-focus-border-radius: calc(#{$btn-border-radius} + #{$btn-focus-border-gap}) !default;

Props API#

Button Props API
  • buttonType string

    Used to determine the type of button to be rendered. See Bootstrap's buttons documentation for a list of applicable button types. For example, buttonType="light". The default is undefined.

  • className string

    Specifies Bootstrap class names to apply to the button. See Bootstrap's buttons documentation for a list of applicable class names. The default is an empty array.

  • children node Required

    Specifies the text that is displayed within the button.

  • inputRef func | shape {
    current: PropTypes.element,
    }

    A function that defines a reference for the button. An example inputRef from the calling component could look something like: inputRef={(input) => { this.button = input; }}. The default is an empty function.

    Default() => {}
  • isClose bool

    Used to determine if the button is a "Close" style button to leverage bootstrap styling. Example use case is with the Status Alert dismiss button. The default is false.

    Defaultfalse
  • onBlur func

    A function that would specify what the button should do when the onBlur event is triggered. For example, the button could change in color or buttonType when focus is changed. The default is an empty function.

    Default() => {}
  • onClick func

    A function that would specify what the button should do when the onClick event is triggered. For example, the button could launch a Modal. The default is an empty function.

    Default() => {}
  • onKeyDown func

    A function that would specify what the button should do when the onKeyDown event is triggered. For example, this could handle using the Escape key to trigger the button's action. The default is an empty function.

    Default() => {}
  • type string

    Used to set the type attribute on the button tag. The default type is button.

    Default'button'

Usage Insights#

Button

Project NameParagon VersionInstance Count
edx-ora220.9.21
edx-platform2.6.440
frontend-app-account20.28.520
frontend-app-admin-portal20.26.398
frontend-app-authn20.34.05
frontend-app-communications20.28.56
frontend-app-course-authoring20.32.013
frontend-app-discussions20.15.023
frontend-app-enterprise-public-catalog20.29.05
frontend-app-gradebook19.25.411
frontend-app-learner-dashboard20.19.038
frontend-app-learner-portal-enterprise20.31.131
frontend-app-learner-portal-programs20.28.42
frontend-app-learner-record20.28.47
frontend-app-learning20.28.443
frontend-app-library-authoring20.30.136
frontend-app-ora-grading19.9.017
frontend-app-payment20.18.22
frontend-app-profile20.32.37
frontend-app-publisher20.28.51
frontend-app-support-tools20.26.032
frontend-component-header-edx20.32.32
frontend-component-header20.34.03
catalog-search19.25.15
frontend-learner-portal-base12.2.01
frontend-lib-content-components20.32.031
frontend-lib-special-exams20.22.423
frontend-platform20.30.11
prospectus20.28.336
studio-frontend3.4.813