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.
(Deprecated) link variant
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#
- buttonType
stringUsed 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 isundefined. - className
stringSpecifies 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
nodeRequiredSpecifies the text that is displayed within the button.
- inputRef
func|shape{current:}PropTypes.element,Default() => {}A function that defines a reference for the button. An example
inputReffrom the calling component could look something like:inputRef={(input) => { this.button = input; }}. The default is an empty function. - isClose
boolDefaultfalseUsed 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.
- onBlur
funcDefault() => {}A function that would specify what the button should do when the
onBlurevent is triggered. For example, the button could change in color orbuttonTypewhen focus is changed. The default is an empty function. - onClick
funcDefault() => {}A function that would specify what the button should do when the
onClickevent is triggered. For example, the button could launch aModal. The default is an empty function. - onKeyDown
funcDefault() => {}A function that would specify what the button should do when the
onKeyDownevent is triggered. For example, this could handle using theEscapekey to trigger the button's action. The default is an empty function. - type
stringDefault'button'Used to set the
typeattribute on thebuttontag. The default type isbutton.
Usage Insights#
Button
| Project Name | Paragon Version | Instance Count | |
|---|---|---|---|
| edx-ora2 | 20.9.2 | 1 | |
| edx-platform | 2.6.4 | 40 | |
| frontend-app-account | 20.28.5 | 20 | |
| frontend-app-admin-portal | 20.26.3 | 98 | |
| frontend-app-authn | 20.34.0 | 5 | |
| frontend-app-communications | 20.28.5 | 6 | |
| frontend-app-course-authoring | 20.32.0 | 13 | |
| frontend-app-discussions | 20.15.0 | 23 | |
| frontend-app-enterprise-public-catalog | 20.29.0 | 5 | |
| frontend-app-gradebook | 19.25.4 | 11 | |
| frontend-app-learner-dashboard | 20.19.0 | 38 | |
| frontend-app-learner-portal-enterprise | 20.31.1 | 31 | |
| frontend-app-learner-portal-programs | 20.28.4 | 2 | |
| frontend-app-learner-record | 20.28.4 | 7 | |
| frontend-app-learning | 20.28.4 | 43 | |
| frontend-app-library-authoring | 20.30.1 | 36 | |
| frontend-app-ora-grading | 19.9.0 | 17 | |
| frontend-app-payment | 20.18.2 | 2 | |
| frontend-app-profile | 20.32.3 | 7 | |
| frontend-app-publisher | 20.28.5 | 1 | |
| frontend-app-support-tools | 20.26.0 | 32 | |
| frontend-component-header-edx | 20.32.3 | 2 | |
| frontend-component-header | 20.34.0 | 3 | |
| catalog-search | 19.25.1 | 5 | |
| frontend-learner-portal-base | 12.2.0 | 1 | |
| frontend-lib-content-components | 20.32.0 | 31 | |
| frontend-lib-special-exams | 20.22.4 | 23 | |
| frontend-platform | 20.30.1 | 1 | |
| prospectus | 20.28.3 | 36 | |
| studio-frontend | 3.4.8 | 13 |