# @syncfusion/ej2-buttons

> A package of feature-rich Essential JS 2 components such as Button, CheckBox, RadioButton and Switch.

Latest version **34.2.6** (published 2026-09-01) · SEE LICENSE IN license license · 0 weekly downloads

## Install

```sh
npm install @syncfusion/ej2-buttons
pnpm add @syncfusion/ej2-buttons
yarn add @syncfusion/ej2-buttons
bun add @syncfusion/ej2-buttons
```

## Health

**Score 65/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; large bundle.

## Facts

| | |
|---|---|
| Version | 34.2.6 |
| Published | 2026-09-01 |
| First published | 2017-05-19 |
| Weekly downloads | 0 |
| License | SEE LICENSE IN license |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 17.5 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 449 |
| Author | Syncfusion Inc. |
| Maintainers | syncfusionorg, essentialjs2, syncfusion-javascript |
| Keywords | ej2, syncfusion, JavaScript, TypeScript, ej2-buttons, button, ej2 button, checkbox, ej2 checkbox, checkboxes, radio button, radiobutton, radiobuttons, ej2 radiobutton, switch, ej2 switch, primary button, flat button, round button, icon button, togglebutton, toggle button, form control, form controls, input, floating action button, floating button, fab |

## Links

- npm: https://www.npmjs.com/package/@syncfusion/ej2-buttons
- Repository: https://github.com/syncfusion/ej2-javascript-ui-controls
- Homepage: https://www.syncfusion.com/javascript-ui-controls
- Issues: https://github.com/syncfusion/ej2-javascript-ui-controls/issues
- npm.io page: https://npm.io/package/@syncfusion/ej2-buttons

## Dependencies (1)

- [@syncfusion/ej2-base](https://npm.io/package/@syncfusion/ej2-base.md) ~34.2.6

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 34.2.6 (latest) — 2026-09-01
- 26.1.35-7502 (beta) — 2025-10-07
- 34.2.2 — 2026-08-05
- 34.1.30 — 2026-07-09
- 34.1.29 — 2026-07-06
- 33.2.15 — 2026-06-23
- 33.2.5 — 2026-05-05
- 33.2.3 — 2026-04-21
- 33.1.49 — 2026-04-14
- 33.1.44 — 2026-03-16
- 32.2.9 — 2026-03-10
- 32.2.7 — 2026-02-24
- 32.2.3 — 2026-02-05
- 32.1.24 — 2026-01-20
- 32.1.23 — 2026-01-13
- … 209 more at https://npm.io/package/@syncfusion/ej2-buttons/versions

## README

# JavaScript Button Controls

> **Using this package with an AI coding agent**
>
> Before generating Syncfusion® code, ask your AI coding agent to run the Syncfusion® setup using the following prompt:
>
> ```text
> Set up this project for Syncfusion® before generating code. Fetch and follow the official instructions at https://ai.syncfusion.com/agent-setup/prompt.md, then report the detected platform, installed skill pack, MCP status, and any required licensing action.
> ```
> The setup detects your project’s platform and loads the appropriate Syncfusion® skill pack. No Syncfusion® account or MCP key is required to install or read Syncfusion® agent skills.
>
> **Platform reference:** [https://ai.syncfusion.com/javascript/llms.txt](https://ai.syncfusion.com/javascript/llms.txt)

## What's Included in the JavaScript Buttons Package

The JavaScript Buttons package includes the following list of controls.

### JavaScript Button

The [JavaScript Button](https://www.syncfusion.com/javascript-ui-controls/js-button?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm) control is a custom HTML5 button component. It has several built-in features such as support for icons, predefined styles, different button types, different button sizes, and UI customization.

<p align="center">
    <a href="https://ej2.syncfusion.com/documentation/button/getting-started/#getting-started?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm">Getting Started</a>.
    <a href="https://ej2.syncfusion.com/demos/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm#/fluent2/button/default.html">Online demos</a>.
    <a href="https://www.syncfusion.com/javascript-ui-controls/js-button?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm">Learn more</a>.
</p>

<p align="center">
<img alt="JavaScript Button Control" src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/javascript/javascript-button.png">
</p>

#### Key features

* [Types](https://ej2.syncfusion.com/documentation/button/types-and-styles#button-types) - Provided with different types of Button.
* [Predefined styles](https://ej2.syncfusion.com/documentation/button/types-and-styles#button-styles) - Provided with predefined styles of Button.
* [Sizes](https://ej2.syncfusion.com/documentation/button/types-and-styles#button-size) - Provided with different sizes of Button.
* [Icons](https://ej2.syncfusion.com/documentation/button/types-and-styles#icons) - Supports text and icon on the Button.

### JavaScript CheckBox

The [JavaScript CheckBox](https://www.syncfusion.com/javascript-ui-controls/js-checkbox?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm) control is a custom checkbox-type HTML5 input component for selecting one or more options from a list of predefined choices. It supports an indeterminate state, different sizes, custom labels and positions, and UI customization.

<p align="center">
    <a href="https://ej2.syncfusion.com/documentation/check-box/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm">Getting Started</a> .
    <a href="https://ej2.syncfusion.com/demos/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm#/fluent2/button/checkbox.html">Online demos</a> .
    <a href="https://www.syncfusion.com/javascript-ui-controls/js-checkbox?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm">Learn more</a>
</p>

<p align="center">
<img alt="JavaScript CheckBox Control" src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/javascript/javascript-checkbox.png">
</p>

#### Key features

* [States](https://ej2.syncfusion.com/documentation/check-box/getting-started#change-the-checkbox-state) - Provided with different states of CheckBox.
* [Label](https://ej2.syncfusion.com/documentation/check-box/label-and-size#label) - Supports label and its positioning.
* [Sizes](https://ej2.syncfusion.com/documentation/check-box/label-and-size#size) - Provided with different sizes of CheckBox.

### JavaScript RadioButton

The [JavaScript RadioButton](https://www.syncfusion.com/javascript-ui-controls/js-radio-button?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm) control is a custom radio-type HTML5 input component for selecting one option from a list of predefined choices. It supports different states, sizes, labels, label positions, and UI customizations.

<p align="center">
    <a href="https://ej2.syncfusion.com/documentation/radio-button/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm">Getting Started</a> .
    <a href="https://ej2.syncfusion.com/demos/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm#/fluent2/button/radio-button.html">Online demos</a> .
    <a href="https://www.syncfusion.com/javascript-ui-controls/js-radio-button?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm">Learn more</a>
</p>

<p align="center">
<img alt="JavaScript RadioButton Control" src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/javascript/javascript-radio-button.png">
</p>

#### Key features

* [States](https://ej2.syncfusion.com/documentation/radio-button/getting-started#change-the-radiobutton-state) - Provided with different states of RadioButton.
* [Label](https://ej2.syncfusion.com/documentation/radio-button/label-and-size#label) - Supports label and its positioning.
* [Sizes](https://ej2.syncfusion.com/documentation/radio-button/label-and-size#size) - Provided with different sizes of RadioButton.

### JavaScript Switch

The [JavaScript Switch](https://www.syncfusion.com/javascript-ui-controls/js-toggle-switch-button?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm) control is a custom HTML5 input-type component control that allows you to perform a toggle (on/off) action between checked and unchecked states. It supports different sizes, labels, label positions, and UI customization.

<p align="center">
    <a href="https://ej2.syncfusion.com/documentation/switch/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm">Getting Started</a> .
    <a href="https://ej2.syncfusion.com/demos/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm#/fluent2/button/switch.html">Online demos</a> .
    <a href="https://www.syncfusion.com/javascript-ui-controls/js-toggle-switch-button?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm">Learn more</a>
</p>

<p align="center">
<img alt="JavaScript Switch Control" src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/javascript/javascript-toggle-switch-button.png">
</p>

#### Key features

* [Text](https://ej2.syncfusion.com/documentation/switch/getting-started#set-text-on-switch) - Supports text.
* [Sizes](https://ej2.syncfusion.com/documentation/switch/how-to#change-size) - Provided with different sizes of Switch.

### JavaScript Floating Action Button

The [JavaScript Floating Action Button](https://www.syncfusion.com/javascript-ui-controls/js-fab?utm_source=npm&utm_medium=listing&utm_campaign=javascript-buttons-npm) control performs the primary action that appears in front of all screen contents. It has several built-in features such as support for icons, predefined styles, positions, and UI customization.

<p align="center">
    <a href="https://ej2.syncfusion.com/documentation/floating-action-button/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-buttons-npm">Getting Started</a> .
    <a href="https://ej2.syncfusion.com/demos/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-buttons-npm#/fluent2/floating-action-button/overview.html">Online demos</a> .
    <a href="https://www.syncfusion.com/javascript-ui-controls/js-fab?utm_source=npm&utm_medium=listing&utm_campaign=javascript-buttons-npm">Learn more</a>
</p>

<p align="center">
<img alt="JavaScript Floating Action Button Control" src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/javascript/javascript-fab.png">
</p>

#### Key features

* [Icons](https://ej2.syncfusion.com/documentation/floating-action-button/icons) - Supports addition of both text and icon on the Button.
* [Predefined styles](https://ej2.syncfusion.com/documentation/floating-action-button/styles) - Provided with predefined styles for the Floating Action Button.
* [Positions](https://ej2.syncfusion.com/documentation/floating-action-button/positions) - Positioned anywhere on the target. If the target is not defined, then Floating Action Button is positioned based on the browser viewport.

### JavaScript Speed Dial

The [JavaScript Speed Dial](https://www.syncfusion.com/javascript-ui-controls/js-speed-dial?utm_source=npm&utm_medium=listing&utm_campaign=javascript-buttons-npm) control is an extension of the floating action button that displays a list of action buttons when clicked. It has several built-in features such as support for items, predefined styles, positions, and UI customization.

<p align="center">
    <a href="https://ej2.syncfusion.com/documentation/speed-dial/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-buttons-npm">Getting Started</a> .
    <a href="https://ej2.syncfusion.com/demos/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-buttons-npm#/fluent2/speed-dial/default.html">Online demos</a> .
    <a href="https://www.syncfusion.com/javascript-ui-controls/js-speed-dial?utm_source=npm&utm_medium=listing&utm_campaign=javascript-buttons-npm">Learn more</a>
</p>

<p align="center">
<img alt="JavaScript Speed Dial Control" src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/javascript/javascript-speeddial.gif">
</p>

#### Key features

* [Items](https://ej2.syncfusion.com/documentation/speed-dial/items) - Provides different items support for the Speed Dial.
* [Predefined styles](https://ej2.syncfusion.com/documentation/speed-dial/styles) - Provided with predefined styles for the Speed Dial.
* [Positions](https://ej2.syncfusion.com/documentation/speed-dial/positions) - Positioned anywhere on the target. If the target is not defined, then Speed Dial is positioned based on the browser viewport.
* [Modes](https://ej2.syncfusion.com/documentation/speed-dial/display-modes) - Supports display of items in both linear and radial modes.
* [Modal](https://ej2.syncfusion.com/documentation/speed-dial/modal) - Adds an overlay to prevent the background interaction.
* [Templates](https://ej2.syncfusion.com/documentation/speed-dial/template) - Customize Speed Dial items and the popup content using templates.

<p align="center">
Trusted by the world's leading companies
  <a href="https://www.syncfusion.com/">
    <img src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/syncfusion/syncfusion-trusted-companies.webp" alt="Syncfusion logo">
  </a>
</p>

## Setup

To install `buttons` and its dependent packages, use the following command,

```sh
npm install @syncfusion/ej2-buttons
```

## Supported frameworks

Button controls are also offered to following list of frameworks.

| [<img src="https://ej2.syncfusion.com/github/images/angular-new.svg" height="50" />](https://www.syncfusion.com/angular-ui-components?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Angular](https://www.syncfusion.com/angular-ui-components?utm_medium=listing&utm_source=github)&nbsp;&nbsp;&nbsp;&nbsp; | [<img src="https://ej2.syncfusion.com/github/images/react.svg"  height="50" />](https://www.syncfusion.com/react-ui-components?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[React](https://www.syncfusion.com/react-ui-components?utm_medium=listing&utm_source=github)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | [<img src="https://ej2.syncfusion.com/github/images/vue.svg" height="50" />](https://www.syncfusion.com/vue-ui-components?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Vue](https://www.syncfusion.com/vue-ui-components?utm_medium=listing&utm_source=github)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | [<img src="https://ej2.syncfusion.com/github/images/netcore.svg" height="50" />](https://www.syncfusion.com/aspnet-core-ui-controls?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;[ASP.NET&nbsp;Core](https://www.syncfusion.com/aspnet-core-ui-controls?utm_medium=listing&utm_source=github)&nbsp;&nbsp; | [<img src="https://ej2.syncfusion.com/github/images/netmvc.svg" height="50" />](https://www.syncfusion.com/aspnet-mvc-ui-controls?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;[ASP.NET&nbsp;MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls?utm_medium=listing&utm_source=github)&nbsp;&nbsp; | 
| :-----: | :-----: | :-----: | :-----: | :-----: |

## Showcase samples

* Expanse Tracker - [Source](https://github.com/syncfusion/ej2-sample-ts-expensetracker), [Live Demo](https://ej2.syncfusion.com/showcase/typescript/expensetracker/?utm_source=npm&utm_campaign=button#/dashboard)
* Loan Calculator - [Source](https://github.com/syncfusion/ej2-sample-ts-loancalculator), [Live Demo](https://ej2.syncfusion.com/showcase/typescript/loancalculator/?utm_source=npm&utm_campaign=button)

## Resources

* [Documentation](https://ej2.syncfusion.com/documentation/button/getting-started)
* [Theme Studio](https://ej2.syncfusion.com/themestudio/)
* [Custom Resource Generator](https://crg.syncfusion.com/)
* [What's New](https://www.syncfusion.com/products/whatsnew/essential-js2?utm_medium=listing&utm_source=github)
* [Road Map](https://www.syncfusion.com/products/roadmap/essential-js2?utm_medium=listing&utm_source=github)
* [E-Books](https://www.syncfusion.com/ebooks?tag=javascript&utm_medium=listing&utm_source=github)

## Support

Product support is available through following mediums.

* [Support ticket](https://support.syncfusion.com/support/tickets/create) - Guaranteed Response in 24 hours | Unlimited tickets | Holiday support
* [Community forum](https://www.syncfusion.com/forums/essential-js2?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm)
* [GitHub issues](https://github.com/syncfusion/ej2-javascript-ui-controls/issues/new)
* [Request feature or report bug](https://www.syncfusion.com/feedback/javascript?utm_source=npm&utm_medium=listing&utm_campaign=javascript-button-npm)
* Live chat

## Changelog

Check the changelog [here](https://github.com/syncfusion/ej2-javascript-ui-controls/blob/master/controls/buttons/CHANGELOG.md?utm_source=npm&utm_campaign=button). Get minor improvements and bug fixes every week to stay up to date with frequent updates.

## License and copyright

> This is a commercial product and requires a paid license for possession or use. Syncfusion<sup>®</sup> licensed software, including this component, is subject to the terms and conditions of Syncfusion<sup>®</sup> [EULA](https://www.syncfusion.com/eula/es/). To acquire a license for 140+ [JavaScript UI controls](https://www.syncfusion.com/javascript-ui-controls), you can [purchase](https://www.syncfusion.com/sales/products) or [start a free 30-day trial](https://www.syncfusion.com/account/manage-trials/start-trials).

> A [free community license](https://www.syncfusion.com/products/communitylicense) is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.

See [LICENSE FILE](https://github.com/syncfusion/ej2-javascript-ui-controls/blob/master/license?utm_source=npm&utm_campaign=button) for more info.

© Copyright 2026 Syncfusion<sup>®</sup> Inc. All Rights Reserved. The Syncfusion<sup>®</sup> Essential Studio<sup>®</sup> license and copyright applies to this distribution.

---
_Source: https://npm.io/package/@syncfusion/ej2-buttons · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
