7.4.0 • Published 5 months ago

@purpurds/toggle v7.4.0

Weekly downloads
-
License
AGPL-3.0-only
Repository
-
Last release
5 months ago

import { Meta, Stories, ArgTypes, Primary, Subtitle } from "@storybook/blocks";

import * as ToggleStories from "./src/toggle.stories"; import packageInfo from "./package.json";

Toggle

Version {packageInfo.version}

Showcase

Properties

Installation

Via NPM

Add the dependency to your consumer app like "@purpurds/purpur": "^x.y.z"

In MyApp.tsx

import "@purpurds/purpur/styles";

Examples

In MyComponent.tsx

Controlled.


For when you have to controll and use the state of the toggle.

import { Toggle } from "@purpurds/purpur";

export const MyComponent = () => {
  const [isChecked, setIsChecked] = useState(false);
  return (
    <div>
      <Toggle
        id="my-toggle"
        checked={isChecked}
        onChange={setIsChecked}
        label="My toggle"
        labelPosition="right"
      />
    </div>
  );
};

Uncontrolled


For when you don't have to controll state of the toggle, e.g. when in a form.

NOTE: do not use toggles instead of checkboxes or radio buttons!

import { Toggle } from "@purpurds/purpur";

export const MyComponent = () => {
  /**
   * Toggle will render checked, and handle it's state itself.
   *
   * Since it is rendered in a form, it will render a checkbox input under the hood
   * that will reflect its value and state.
   */
  return (
    <form>
      <Toggle id="my-toggle" defaultChecked label="My uncontrolled toggle" />
    </form>
  );
};

With custom label (not recommended).


Use the aria-labelledby property and pass the id of the label.

import { Toggle } from "@purpurds/purpur";

export const MyComponent = () => {
  return (
    <div>
      <label id="my-custom-label" htmlFor="my-toggle">
        Custom label
      </label>
      <Toggle aria-labeledby="my-custom-label" id="my-toggle" {...otherProps} />
    </div>
  );
};

Without label (not recommended).


If there should be no label at all, use the aria-label to label the toggle for screen readers.

import { Toggle } from "@purpurds/purpur";

export const MyComponent = () => {
  return (
    <div>
      <Toggle aria-label="Toggle some awesome stuff!" id="my-toggle" {...otherProps} />
    </div>
  );
};
6.1.0

8 months ago

5.27.5

11 months ago

5.27.4

11 months ago

6.1.2

8 months ago

5.27.3

11 months ago

6.1.1

8 months ago

5.27.2

11 months ago

6.5.0

7 months ago

6.1.4

8 months ago

5.27.1

11 months ago

6.1.3

8 months ago

5.27.0

11 months ago

5.34.2

8 months ago

5.34.3

8 months ago

5.34.0

9 months ago

5.34.1

9 months ago

5.30.1

9 months ago

5.30.0

9 months ago

7.3.1

5 months ago

7.3.0

5 months ago

6.6.1

7 months ago

6.6.0

7 months ago

6.6.2

7 months ago

5.28.3

11 months ago

5.28.2

11 months ago

6.2.0

8 months ago

5.28.1

11 months ago

5.28.0

11 months ago

5.24.3

12 months ago

5.35.0

8 months ago

5.31.0

9 months ago

7.0.0

6 months ago

6.12.5

6 months ago

7.4.0

5 months ago

6.12.0

6 months ago

6.12.4

6 months ago

6.12.3

6 months ago

6.12.2

6 months ago

6.12.1

6 months ago

6.7.0

7 months ago

5.24.2

12 months ago

6.7.2

7 months ago

6.7.1

7 months ago

6.3.0

8 months ago

5.29.0

10 months ago

6.3.1

8 months ago

5.32.0

9 months ago

7.1.0

5 months ago

6.11.1

6 months ago

6.11.0

6 months ago

5.25.0

12 months ago

6.8.1

7 months ago

6.8.0

7 months ago

6.8.3

6 months ago

6.8.2

7 months ago

6.0.1

8 months ago

6.0.0

8 months ago

6.0.2

8 months ago

6.4.0

7 months ago

5.33.0

9 months ago

7.2.0

5 months ago

6.10.0

6 months ago

5.34.4

8 months ago

5.26.0

11 months ago

6.9.0

6 months ago

5.25.1-0

11 months ago

5.24.1

1 year ago

5.24.0

1 year ago

5.23.0

1 year ago

5.21.1

1 year ago

5.21.0

1 year ago

5.22.0

1 year ago

5.18.3

1 year ago

5.18.2

1 year ago

5.18.1

1 year ago

5.18.0

1 year ago

5.19.1

1 year ago

5.19.0

1 year ago

5.17.0

1 year ago

5.20.1

1 year ago

5.20.0

1 year ago

5.16.1

1 year ago

5.16.0

1 year ago

5.15.1

1 year ago

5.15.0

1 year ago

5.14.0

1 year ago

5.5.0

1 year ago

5.3.0

1 year ago

5.1.2

1 year ago

5.13.0

1 year ago

5.11.2

1 year ago

5.11.1

1 year ago

5.11.0

1 year ago

5.8.2

1 year ago

5.8.1

1 year ago

5.8.0

1 year ago

5.4.3

1 year ago

5.6.0

1 year ago

5.4.2

1 year ago

5.4.1

1 year ago

5.4.0

1 year ago

5.2.0

1 year ago

5.12.0

1 year ago

5.10.1

1 year ago

5.10.0

1 year ago

5.9.0

1 year ago

5.7.0

1 year ago

5.1.1

1 year ago

5.1.0

1 year ago

5.0.0

1 year ago

4.5.0

1 year ago

4.6.0

1 year ago

4.5.1

1 year ago

4.4.0

1 year ago

4.3.0

2 years ago

4.2.0

2 years ago

4.1.1

2 years ago

4.1.0

2 years ago

4.0.2

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

3.7.1

2 years ago

3.7.0

2 years ago

3.6.0

2 years ago

3.5.1

2 years ago

3.5.0

2 years ago

3.4.0

2 years ago

3.3.2

2 years ago

3.3.1

2 years ago

3.3.0

2 years ago

3.2.0

2 years ago

3.1.0

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

2.8.0

2 years ago