React Button Component

Buttons

Rocket
New Year sale. Skyrocket your business in 2025!
Extra 25% off for all sale items + Free CoreUI Icons PRO with every order!
Limited-time offer for the first 100 customers in 2025. Use code 2025SKY25 at checkout.

React button component for actions in tables, forms, cards, and more. CoreUI for React.js provides various styles, states, and size. Ready to use and easy to customize.

Other Frameworks

CoreUI components are available as native Angular, Bootstrap (Vanilla JS), and Vue components. To learn more please visit the following pages.

How to use React Button Component.#

CoreUI includes a bunch of predefined buttons components, each serving its own semantic purpose. React buttons show what action will happen when the user clicks or touches it. CoreUI buttons are used to initialize operations, both in the background or foreground of an experience.

Conveying meaning to assistive technologies

Using color to add meaning only provides a visual indication, which will not be conveyed to users of assistive technologies – such as screen readers. Ensure that information denoted by the color is either obvious from the content itself (e.g. the visible text), or is included through alternative means, such as additional text hidden with the .visually-hidden class.

Disable text wrapping#

If you don't want the react button text to wrap, you can add the .text-nowrap className to the <CButton>. In Sass, you can set $btn-white-space: nowrap to disable text wrapping for each button.

Button components#

The <CButton> component are designed for <button> , <a> or <input> elements (though some browsers may apply a slightly different rendering).

If you're using <CButton> component as <a> elements that are used to trigger functionality ex. collapsing content, these links should be given a role="button" to adequately communicate their meaning to assistive technologies such as screen readers.

Link

Outline buttons#

If you need a button, but without the strong background colors. Set variant="outline" prop to remove all background colors.

Ghost buttons#

If you need a ghost variant of react button, set variant="ghost" prop to remove all background colors.

Some of the button styles use a relatively light foreground color, and should only be used on a dark background in order to have sufficient contrast.

Sizes#

Larger or smaller react buttons? Add size="lg" or size="sm" for additional sizes.

You can even roll your own custom sizing with CSS variables:

Shapes#

Pill buttons#

Square buttons#

Disabled state#

Add the disabled boolean prop to any <CButton> component to make buttons look inactive. Disabled button has pointer-events: none applied to, disabling hover and active states from triggering.

Disabled buttons using the <a> component act a little different:

<a>s don't support the disabled attribute, so CoreUI has to add .disabled className to make buttons look inactive. CoreUI also has to add to the disabled button component aria-disabled="true" attribute to show the state of the component to assistive technologies.

The .disabled class uses pointer-events: none to try to disable the link functionality of <a>s, but that CSS property is not yet standardized. Besides, even in browsers that do support pointer-events: none, keyboard navigation remains unaffected, meaning that sighted keyboard users and users of assistive technologies will still be able to activate these links. So to be safe, we automatically add a tabindex="-1" attribute on disabled links (to prevent them from receiving keyboard focus) and use custom JavaScript to disable their functionality.

Block buttons#

Create buttons that span the full width of a parent—by using utilities.

Here we create a responsive variation, starting with vertically stacked buttons until the md breakpoint, where .d-md-block replaces the .d-grid class, thus nullifying the gap-2 utility. Resize your browser to see them change.

 

You can adjust the width of your block buttons with grid column width classes. For example, for a half-width "block button", use .col-6. Center it horizontally with .mx-auto, too.

Additional utilities can be used to adjust the alignment of buttons when horizontal. Here we've taken our previous responsive example and added some flex utilities and a margin utility on the button to right align the buttons when they're no longer stacked.

API#

Check out the documentation below for a comprehensive guide to all the props you can use with the components mentioned here.