Files
agoloman 63c83deb26 Revert "Bug 1606785 - Enable Prettier for CSS files r=desktop-theme-reviewers,Standard8,frontend-codestyle-reviewers,emilio" for causing multiple failures.
This reverts commit ec5fa1d4c0.

Revert "Bug 1606785 - Format Firefox CSS files with Prettier r=desktop-theme-reviewers,perftest-reviewers,places-reviewers,translations-reviewers,omc-reviewers,backup-reviewers,browser-installer-reviewers,sparky,dao,pdahiya,nrishel,kpatenio"

This reverts commit baa5d72bbd.

Revert "Bug 1606785 - Format browser/themes and toolkit/themes CSS files with Prettier r=desktop-theme-reviewers,pip-reviewers,tabbrowser-reviewers,places-reviewers,dao,mconley"

This reverts commit 9604b0a8ae.

Revert "Bug 1606785 - Format browser/themes/preferences CSS files with Prettier r=settings-reviewers,desktop-theme-reviewers,dao,mconley"

This reverts commit 686c1cf85f.

Revert "Bug 1606785 - Format urlbar CSS files with Prettier r=urlbar-reviewers,desktop-theme-reviewers,dao"

This reverts commit a7a4f31251.

Revert "Bug 1606785 - Format webcompat CSS files with Prettier r=webcompat-reviewers,denschub"

This reverts commit 41bc4d5237.

Revert "Bug 1606785 - Format search CSS files with Prettier r=search-reviewers,jteow"

This reverts commit 7bb7f82374.

Revert "Bug 1606785 - Format dom CSS files with Prettier r=emilio"

This reverts commit c22e910235.

Revert "Bug 1606785 - Format android CSS files with Prettier r=geckoview-reviewers,hiro"

This reverts commit c08e43fc3d.

Revert "Bug 1606785 - Format layout CSS files with Prettier r=layout-reviewers,dholbert"

This reverts commit 4f2a32d1a4.

Revert "Bug 1606785 - Format devtools CSS files with Prettier r=devtools-reviewers,nchevobbe,frontend-codestyle-reviewers"

This reverts commit c05f675ddf.

Revert "Bug 1606785 - Format recomp CSS files with Prettier r=reusable-components-reviewers,desktop-theme-reviewers,dao,mkennedy"

This reverts commit b10c7de8d0.

Revert "Bug 1606785 - Format sidebar CSS files with Prettier r=sidebar-reviewers,desktop-theme-reviewers,dao,nsharpley"

This reverts commit d32c555e37.

Revert "Bug 1606785 - Format shopping CSS files with Prettier r=shopping-reviewers,desktop-theme-reviewers,dao,rking"

This reverts commit 965887a708.

Revert "Bug 1606785 - Format profiles CSS files with Prettier r=profiles-reviewers,desktop-theme-reviewers,dao,mossop"

This reverts commit 8338860f74.

Revert "Bug 1606785 - Format genai and ml CSS files with Prettier r=firefox-ai-ml-reviewers,Mardak"

This reverts commit d66681f553.

Revert "Bug 1606785 - Format firefoxview CSS files with Prettier r=fxview-reviewers,desktop-theme-reviewers,dao,jsudiaman"

This reverts commit 530b815cad.

Revert "Bug 1606785 - Format aboutlogins, megalist, and form autofill CSS files with Prettier r=credential-management-reviewers,mtigley,desktop-theme-reviewers,dao"

This reverts commit 813c864381.
2025-05-21 04:49:28 +00:00
..

MozToggle

moz-toggle is a toggle element that can be used to switch between two states. It may be helpful to think of it as a button that can be pressed or unpressed, corresponding with "on" and "off" states.

<moz-toggle pressed
            label="Toggle label"
            description="This is a demo toggle for the docs.">
</moz-toggle>

When to use

  • Use a toggle for binary controls like on/off or enabled/disabled.
  • Use when the action is performed immediately and doesn't require confirmation or form submission.
  • A toggle is like a switch. If it would be appropriate to use a switch in the physical world for this action, it is likely appropriate to use a toggle in software.

When not to use

  • If another action is required to execute the choice, use a checkbox (i.e. a toggle should not generally be used as part of a form).

Code

The source for moz-toggle can be found under toolkit/content/widgets/moz-toggle. You can find an examples of moz-toggle in use in the Firefox codebase in both about:preferences and about:addons.

moz-toggle can be imported into .html/.xhtml files:

<script type="module" src="chrome://global/content/elements/moz-toggle.mjs"></script>

And used as follows:

<moz-toggle pressed
            label="Label for the toggle"
            description="Longer explanation of what the toggle is for"
            aria-label="Toggle label if label text isn't visible"></moz-toggle>

Fluent usage

Generally the label, description, and aria-label properties of moz-toggle will be provided via Fluent attributes. To get this working you will need to specify a data-l10n-id as well as data-l10n-attrs if you're providing a label and a description:

<moz-toggle data-l10n-id="with-label-and-description"
            data-l10n-attrs="label, description"></moz-toggle>

In which case your Fluent messages will look something like this:

with-label-and-description =
  .label = Label text goes here
  .description = Description text goes here

You do not have to specify data-l10n-attrs if you're only using an aria-label:

<moz-toggle data-l10n-id="with-aria-label-only"></moz-toggle>
with-aria-label-only =
  .aria-label = aria-label text goes here

Nested fields

moz-toggle supports nested or dependent fields via a nested named slot. These fields will be rendered below the toggle element, and will be indented to visually indicate dependence. Any nested fields will mirror the disabled state of the toggle and will also become disabled whenever the toggle is not pressed.

When nesting fields it's important to wrap the elements in a moz-fieldset to indicate to assistive technologies that the fields are related, and to provide a label for the group of controls:

<moz-fieldset label="Label for the group">
  <moz-toggle label="Parent toggle" pressed>
    <moz-checkbox slot="nested" label="Nested checkbox one" value="one"></moz-checkbox>
    <moz-checkbox slot="nested" label="Nested checkbox two" value="two" checked></moz-checkbox>
  </moz-toggle>
</moz-fieldset>
<moz-fieldset label="Label for the group">
  <moz-toggle label="Parent toggle" pressed>
    <moz-checkbox slot="nested" label="Nested checkbox one" value="one"></moz-checkbox>
    <moz-checkbox slot="nested" label="Nested checkbox two" value="two" checked></moz-checkbox>
  </moz-toggle>
</moz-fieldset>