npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

bootstrap5-toggle

v5.1.1

Published

Bootstrap Toggle is a bootstrap 5 plugin that converts checkboxes into toggles.

Downloads

8,016

Readme

GitHub license Latest release Bootstrap 5 JSDelivr Badge NPM Badge Build Test Security EOL Funding Rate this package

Bootstrap 5 Toggle

Bootstrap 5 Toggle is a bootstrap plugin/widget that converts checkboxes into toggles.


Library Distributions

| Version | Bootstrap Support | Last Release | End of Life | | :----------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | v5 | Bootstrap 5 | Latest release | EOL | | v4 | Bootstrap 5 | Latest release | EOL | | v3 | Bootstrap 4 | Latest release | EOL |

See EOL for each version in Security Policy Page.

Demos

Demos and API Docs: https://palcarazm.github.io/bootstrap5-toggle/

Related Bootstrap Plugins



Installation

CDN

JSDelivr Badge

ECMAS Interface

<link
  href="https://cdn.jsdelivr.net/npm/bootstrap5-toggle@#version#/css/bootstrap5-toggle.min.css"
  rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/bootstrap5-toggle@#version#/js/bootstrap5-toggle.ecmas.min.js"></script>

jQuery Interface

<link
  href="https://cdn.jsdelivr.net/npm/bootstrap5-toggle@#version#/css/bootstrap5-toggle.min.css"
  rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/bootstrap5-toggle@#version#/js/bootstrap5-toggle.jquery.min.js"></script>

Download

Latest release

NPM

NPM Badge

npm install bootstrap5-toggle@#version#

Yarn

yarn add bootstrap5-toggle@#version#

Usage

Initialize With HTML

Simply add data-toggle="toggle" to automatically convert a plain checkbox into a bootstrap 5 toggle.

<input id="chkToggle" type="checkbox" data-toggle="toggle" />

Initialize With Code

Toggles can also be initialized via JavaScript code.

EX: Initialize id chkToggle with a single line of JavaScript.

<input id="chkToggle" type="checkbox" checked />
<script>
  document.querySelector("#chkToggle").bootstrapToggle();
</script>

API

Options

  • Options can be passed via data attributes or JavaScript
  • For data attributes, append the option name to data- (ex: data-on="Enabled")
<input
  type="checkbox"
  data-toggle="toggle"
  data-onlabel="Enabled"
  data-offlabel="Disabled" />
<input type="checkbox" id="toggle-two" />
<script>
  document.querySelector("#toggle-two").bootstrapToggle({
    on: "Enabled",
    off: "Disabled",
  });
</script>

| Name | Type | Default | Description | | ---------- | ----------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | onlabel | string/html | "On" | Text of the on toggle | | offlabel | string/html | "Off" | Text of the off toggle | | size | string | "normal" | Size of the toggle. Possible values are: large, normal, small, mini. | | onstyle | string | "primary" | Style of the on toggle. Possible values are: primary, secondary, success, danger, warning, info, light, dark and with outline- prefix | | offstyle | string | "secondary" | Style of the off toggle. Possible values are: primary, secondary, success, danger, warning, info, light, dark and with outline- prefix | | onvalue | string | null | Sets on state value | | offvalue | string | null | Sets off state value | | ontitle | string | null | Title of the on toggle | | offtitle | string | null | Title of the off toggle | | style | string | | Appends the value to the class attribute of the toggle. This can be used to apply custom styles. Refer to Custom Styles for reference. | | width | integer | null | Sets the width of the toggle. if set to null, width will be auto-calculated. | | height | integer | null | Sets the height of the toggle. if set to null, height will be auto-calculated. | | tabindex | integer | 0 | Sets the tabindex of the toggle. | | tristate | boolean | false | Sets tristate support |

Methods

Methods can be used to control toggles directly.

<input id="toggle-demo" type="checkbox" data-toggle="toggle" />
<script>
  const toggleDemo = document.querySelector("#toggle-demo");
</script>

| Method | Example | Description | | ------------- | --------------------------------------------- | ------------------------------------------------------------------------------------- | | initialize | toggleDemo.bootstrapToggle() | Initializes the toggle plugin with options | | destroy | toggleDemo.bootstrapToggle('destroy') | Destroys the toggle | | rerender | toggleDemo.bootstrapToggle('rerender') | Rerender toggle with the appropriated size. Useful when parent is collapsed at first. | | on | toggleDemo.bootstrapToggle('on') | Sets the toggle to 'On' state | | off | toggleDemo.bootstrapToggle('off') | Sets the toggle to 'Off' state | | toggle | toggleDemo.bootstrapToggle('toggle') | Toggles the state of the toggle on/off | | enable | toggleDemo.bootstrapToggle('enable') | Enables the toggle | | disable | toggleDemo.bootstrapToggle('disable') | Disables the toggle | | readonly | toggleDemo.bootstrapToggle('readonly') | Disables the toggle but preserve checkbox enabled | | indeterminate | toggleDemo.bootstrapToggle('indeterminate') | Sets the toggle to 'indeterminate' state | | determinate | toggleDemo.bootstrapToggle('determinate') | Sets the toggle to 'determinate' state |

Events

Event Propagation

Note All events are propagated to and from input element to the toggle.

You should listen to events from the <input type="checkbox"> directly rather than look for custom events.

<input id="toggle-event" type="checkbox" data-toggle="toggle" />
<div id="console-event"></div>
<script>
  document.querySelector("#toggle-event").change(function (e) {
    document
      .querySelector("#console-event")
      .html("Toggle: " + e.target.prop("checked"));
  });
</script>

Stopping Event Propagation

Passing true to the on, off, toggle, determinate and indeterminate methods will enable the silent option to prevent the control from propagating the change event in cases where you want to update the controls on/off state, but do not want to fire the onChange event.

<input id="toggle-silent" type="checkbox" data-toggle="toggle" />
<button class="btn btn-success" onclick="toggleApiOnSilent()">
  On by API (silent)
</button>
<button class="btn btn-success" onclick="toggleApiOffSilent()">
  Off by API (silent)
</button>
<button class="btn btn-warning" onclick="toggleApiOnNotSilent()">
  On by API (not silent)
</button>
<button class="btn btn-warning" onclick="toggleApiOffNotSilent()">
  On by API (not silent)
</button>
<script>
  function toggleApiOnSilent() {
    document.querySelector("#toggle-silent").bootstrapToggle("on", true);
  }
  function toggleApiOffSilent() {
    document.querySelector("#toggle-silent").bootstrapToggle("off", true);
  }
  function toggleApiOnNotSilent() {
    document.querySelector("#toggle-silent").bootstrapToggle("on");
  }
  function toggleApiOffNotSilent() {
    document.querySelector("#toggle-silent").bootstrapToggle("off");
  }
</script>

API vs Input

This also means that using the API or Input to trigger events will work both ways.

<input id="toggle-trigger" type="checkbox" data-toggle="toggle" />
<button class="btn btn-success" onclick="toggleApiOn()">On by API</button>
<button class="btn btn-danger" onclick="toggleApiOff()">Off by API</button>
<button class="btn btn-success" onclick="toggleInpOn()">On by Input</button>
<button class="btn btn-danger" onclick="toggleInpOff()">Off by Input</button>
<script>
  function toggleApiOn() {
    document.querySelector("#toggle-trigger").bootstrapToggle("on");
  }
  function toggleApiOff() {
    document.querySelector("#toggle-trigger").bootstrapToggle("off");
  }
  function toggleInpOn() {
    document.querySelector("#toggle-trigger").prop("checked", true).change();
  }
  function toggleInpOff() {
    document.querySelector("#toggle-trigger").prop("checked", false).change();
  }
</script>

Collaborators welcom!

GitHub Contributors

¿Do you like the project? Give us a :star: in GitHub.