Back to Segmented Control-guidelines

CSS ComponentThe latest version of this package is: 17.0.30-alpha.0, Opens in new window

Segmented Control is a set of two or more segments. Segments act like radio buttons.

This component provides .css, .styl, .less and .scss -files.

To be able to install this component, please refer to the Project Setup documentation.

$ npm i @ids-core/segmented-control@17.0.30-alpha.0

Table of Contents

Edit this section, Opens in new window

Usage

<form class="if">
  <div class="if input-wrapper">
    <div
      class="if segmented-control"
      role="radiogroup"
      id="labelled-segmented-control"
      aria-labelledby="segment-label"
    >
      <input type="radio" checked id="segment-1" name="segment-example" />
      <label for="segment-1">Selected</label>
      <input type="radio" id="segment-2" name="segment-example" />
      <label for="segment-2">Segment</label>
    </div>
    <div class="if input-label-wrapper">
      <label class="if help" id="segment-label" for="labelled-segmented-control"> Label </label>
      <button
        type="button"
        class="if popover-button help"
        aria-label="Help for segmented control"
      ></button>
    </div>
  </div>
</form>
Edit this section, Opens in new window

Accessibility

Segmented control is a restyled group of radio buttons.

Segment container must have role="radiogroup", and must have associated label with it, commonly via aria-labelledby="{LABEL_ID}" Each radio button in a Segment should have its own id; as well as assigned the same name attribute, so that browser knows to group these controls together.

<form>
  <div class="if input-wrapper">
    <div
      class="if segmented-control"
      role="radiogroup"
      id="labelled-segmented-control"
      aria-labelledby="segment-accessibility-label"
    >
      <input
        class="if"
        type="radio"
        id="segment-accessibility-1"
        name="segment-accessibility-example"
      />
      <label class="if" for="segment-accessibility-1">Segment</label>

      <input
        class="if"
        type="radio"
        id="segment-accessibility-2"
        name="segment-accessibility-example"
      />
      <label class="if" for="segment-accessibility-2">Segment</label>
    </div>

    <div class="if input-label-wrapper">
      <label
        class="if input-label"
        id="segment-accessibility-label"
        for="labelled-segmented-control"
      >
        Label
      </label>
    </div>
  </div>
</form>

Therefore, if correct radio button markup has been used - accessibility comes for free from the browser. More info at w3.

Edit this section, Opens in new window

Tokens

All of the tokens can be used as preprocessor and CSS variables

Segmented Control tokens

Name Value Is aliased in
$ids-segmented-control-container-display
flex
$ids-segmented-control-container-flex-wrap-media-query-xs
wrap
$ids-segmented-control-container-direction-media-query-base
column
$ids-segmented-control-container-direction-media-query-xs
row
$ids-segmented-control-container-width-media-query-base
100%
$ids-segmented-control-container-width-media-query-xs
auto
$ids-segmented-control-container-order
2
$ids-segmented-control-container-height
auto
$ids-segmented-control-container-background-color
transparent
$ids-segmented-control-input-opacity
0
$ids-segmented-control-input-position
fixed
$ids-segmented-control-input-width
0
$ids-segmented-control-display
flex
$ids-segmented-control-direction
column
$ids-segmented-control-grow
0
$ids-segmented-control-shrink
0
$ids-segmented-control-height-lg
4rem
$ids-segmented-control-height-default
3rem
$ids-segmented-control-height-sm
2.25rem
$ids-segmented-control-height-xs
1.75rem
$ids-segmented-control-width
auto
$ids-segmented-control-margin-left
-0.125rem
$ids-segmented-control-spacing-inset-lg-unchecked
1.375rem 2.6875rem
$ids-segmented-control-spacing-inset-lg-checked
1.375rem 2.1875rem 1.375rem 3.1875rem
$ids-segmented-control-spacing-inset-default-unchecked
0.75rem 2.6875rem
$ids-segmented-control-spacing-inset-default-checked
0.75rem 2.1875rem 0.75rem 3.1875rem
$ids-segmented-control-spacing-inset-sm-unchecked
0.5rem 2.6875rem
$ids-segmented-control-spacing-inset-sm-checked
0.5rem 2.1875rem 0.5rem 3.1875rem
$ids-segmented-control-spacing-inset-xs-unchecked
0.25rem 2.6875rem
$ids-segmented-control-spacing-inset-xs-checked
0.25rem 2.1875rem 0.25rem 3.1875rem
$ids-segmented-control-border-default-unchecked
0.125rem solid rgb(110, 98, 94)
$ids-segmented-control-border-default-checked
0.125rem solid rgb(110, 98, 94)
$ids-segmented-control-border-hover-unchecked
0.125rem solid rgb(110, 98, 94)
$ids-segmented-control-border-hover-checked
0.125rem solid rgb(51, 30, 17)
$ids-segmented-control-border-radius-first-segment-default
0.375rem 0 0 0.375rem
$ids-segmented-control-border-radius-first-segment-xs
0.25rem 0 0 0.25rem
$ids-segmented-control-border-radius-last-segment-default
0 0.375rem 0.375rem 0
$ids-segmented-control-border-radius-last-segment-xs
0 0.25rem 0.25rem 0
$ids-segmented-control-background-color-default-unchecked
rgb(250, 249, 247)
$ids-segmented-control-background-color-default-checked
rgb(110, 98, 94)
$ids-segmented-control-background-color-hover-unchecked
rgb(250, 249, 247)
$ids-segmented-control-background-color-hover-checked
rgb(51, 30, 17)
$ids-segmented-control-background-repeat
no-repeat
$ids-segmented-control-background-size
1rem 1rem
$ids-segmented-control-background-position
left 1.6875rem center
$ids-segmented-control-color-default-unchecked
rgb(51, 30, 17)
$ids-segmented-control-color-default-checked
rgb(250, 249, 247)
$ids-segmented-control-color-hover-unchecked
rgba(18, 65, 162, 1)
$ids-segmented-control-color-hover-checked
rgb(250, 249, 247)
$ids-segmented-control-align-items
center
$ids-segmented-control-justify-content
center
$ids-segmented-control-text-align
center
$ids-segmented-control-white-space-media-query-base
nowrap
$ids-segmented-control-white-space-media-query-xs
normal
$ids-segmented-control-line-height
1.25rem
$ids-segmented-control-font-size
1rem
$ids-segmented-control-icon
url('data:image/svg+xml,%3Csvg width=%2716%27 height=%2716%27 viewBox=%270 0 16 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cg clip-path=%27url(%23clip0_1424_21)%27%3E%3Cpath d=%27M2 8.8L5.42857 12L14 4%27 stroke=%27%23faf9f7%27 stroke-width=%272.4%27 stroke-miterlimit=%2710%27 stroke-linecap=%27square%27/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id=%27clip0_1424_21%27%3E%3Crect width=%2716%27 height=%2716%27 fill=%27white%27/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A')
Edit this section, Opens in new window

Changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

16.0.0 (2023-01-10)

โš  BREAKING CHANGES

  • The first and last segment in a segment group have rounded corners. Size

variations of segments- large, small, x-small.

  • Merged PR 101974: feat(segmented-control): VID update for segmented control (addab60), closes #686994 #686994

14.22.2 (2022-05-03)

Miscellaneous chores

  • package locks: update package locks (813eac7)
  • update deps: package locks updates (38e7a90)

14.20.1 (2022-04-19)

Miscellaneous chores

  • changelog: regenerate all CHANGELOG.md files (64ab385) , closes #586342
  • changelog: regenerate all changelogs after updating changelog generation (70789c9) , closes #587270

14.18.3 (2022-04-13)

Bug Fixes

  • changelog: generate new CHANGELOG.md files for root and packages (349fda4) , closes #586063 . We regenerate the files to include all relevant commits and to use conventional-commits at 100%

14.16.0 (2022-04-07)

Bug Fixes

  • ๐Ÿ› Add missing imports for global CSS Variables (fbf6f06) , closes #582437

  • ๐Ÿค– Rebuild (2e20efb)

14.12.0 (2022-03-30)

Features

  • ๐ŸŽธ Add CSS Variables to Segmented Control (1772106) , closes #576801

Bug Fixes

  • ๐Ÿ› Remove comma that made the CSS wrong (8e2bc51) , closes #576499

Code Refactoring

14.10.0 (2022-03-04)

Bug Fixes

  • ๐Ÿ› Use 'utils' instead of 'util' for directory lookup (fb1da02)

14.9.0 (2022-03-03)

Miscellaneous chores

14.8.1 (2022-02-23)

Bug Fixes

  • ๐Ÿ› Add missing imports of typography CSS variables (e716c65) , closes #559412

reinstall (d425056)

bootstrap (9a713df)

merge (2b1c5f1)

reinstall (5221600)

reinstall (147df55)

  • use correct versions (f1b5deb)

  • Add engines for all packages (e95dfff)

reinstall (afce1f2)

reinstall (67f3140)

  • Add changelog.md to files (3338314)

Reinstall (a2abf51)

14.2.2 (2021-12-10)

Code Refactoring

  • ๐Ÿ’ก Change focus styles, remove whatinput (75fd31b) , closes #505205

  • rebuild and reinstall (f9fb687)

reinstall (885c74b)

14.0.3 (2021-11-14)

Bug Fixes

  • ๐Ÿ› Added ifdesignsystem.min.css (815c2eb) . โœ… Closes: 507732

  • fix changelogs manually (b1232b4)

reinstall (545a069)

reinstall (e149c2c)

13.12.3 (2021-11-09)

โš  BREAKING CHANGES

  • ๐Ÿงจ The scope for If Design System npm packages has now changed from @if-design-system to @ids-core. We have also renamed the repository from if-design-system to ids-core
  • ๐Ÿงจ Util is now renamed to Utils
  • ๐Ÿงจ We have now changed the navigation structure for the documentation site. Please update any saved links!
  • ๐Ÿงจ Navigation structure has now changed. Please see release notes!

Bug Fixes

  • ๐Ÿ› Changed hovered,selected-hovered state style, hot reload (26d4703) . โœ… Closes: 472113

Documentation Updates

  • โœ๏ธ Adjust documentation, examples etc (d161cd3)

  • โœ๏ธ Move position of the quick links (5cb0897)

  • โœ๏ธ Remove unneeded margins for shortcuts (36c7e8d)

  • โœ๏ธ Separate out CSS documentation (892e18e) , closes #467386

  • โœ๏ธ Update links and change navigation structure (0bfd27d) , closes #490579

Code Refactoring

  • ๐Ÿ’ก Categorize components (9965266) , closes #490579

  • ๐Ÿ’ก Reduce spacing tokens, use correct size tokens (97aa461)

  • ๐Ÿ’ก Rename scope and repository (3ea5423)

  • ๐Ÿ’ก Use new navigation structure for documentation (415aee5) , closes #490579

  • another change in the structure (38a0d2e)

Miscellaneous chores

  • ๐Ÿค– Prune changelogs (2c660c2)

  • ๐Ÿค– Rename util to utils (f78721f)

bootstrap (6fc1ed8)

  • fix all old references to util (d57bf17)

  • prepare for merge (0184490)

reinstall (da80dba)

  • Rename scope and repo (257684e)

  • use correct version for utils (49e72d9)

13.11.0 (2021-10-19)

Features

  • ๐ŸŽธ Input field hot reload (eac76b7)

13.7.0 (2021-09-22)

Documentation Updates

  • โœ๏ธ Update linking layout and naming (15c383b)

13.6.3 (2021-09-17)

Bug Fixes

13.6.0 (2021-09-08)

Documentation Updates

  • Use default shortcut listing for demo links (a746602)

  • ๐Ÿค– Use node v14 (4009973)

bootstrap (d23e139)

13.1.4 (2021-08-31)

Bug Fixes

12.14.1 (2021-08-12)

Miscellaneous chores

  • ๐Ÿค– Add ci task to package.json without tests (21222e0) , closes #457627

12.13.1 (2021-08-11)

Bug Fixes

  • ๐Ÿ› Whitelist docs dir for npm packaging (1a5cfd0) , closes #457621

12.12.1 (2021-08-10)

Bug Fixes

  • ๐Ÿ› Make sure components using fonts, have fonts bundled (d5bb642) , closes #354912

  • ๐Ÿค– Remove .gitignore, use npm package.json files instead, ignore zip files for npm pack (49f0269) , closes #412081 . This will whitelist files to be used in "npm pack"

  • ๐Ÿค– Reinstall (e660696)

  • ๐Ÿค– Update published date (61e7ccf)

12.6.1 (2021-05-28)

Bug Fixes

  • ๐Ÿ› Add fallback focus on segmented control (c80b32b) , closes #417460

12.6.0 (2021-05-27)

Bug Fixes

  • ๐Ÿ› Manually set firstPublished and lastModified (e83af7d)

  • ๐Ÿ› We don't need lastModified (e458a12)

12.1.0 (2021-05-07)

Documentation Updates

  • โœ๏ธ Remove old form-group from examples (9438540)

12.0.0 (2021-05-05)

โš  BREAKING CHANGES

  • ๐Ÿงจ All of the mixins have now been renamed
  • ๐Ÿงจ This extracts the Hero variation with no image into a separate, design updated component named Header
  • ๐Ÿงจ Footer is now renamed to Global Footer
  • ๐Ÿงจ Crosslinks have seized to exist. They are all extracted into separate components. This commit converts crosslink buttons into the new component Shortcuts

Features

  • ๐ŸŽธ Rename and extract and update hero with no image to (384eb77) , closes #336508 . Header component

Bug Fixes

  • ๐Ÿ› Update references (c08f107)

Code Refactoring

  • ๐Ÿ’ก Extract Label to Input Label (c8bbf70) , closes #336508

  • ๐Ÿ’ก Rename and consolidate mixins (67cf470) , closes #268081

  • ๐Ÿ’ก Rename crosslink buttons to Shortcuts (c05bf9c) , closes #336508

  • ๐Ÿ’ก Rename Footer to Global Footer (7cb7239) , closes #336508

Miscellaneous chores

  • ๐Ÿค– Convert typography tokens from theo to SD (e48f255)

  • ๐Ÿค– Convert util tokens from theo to style-dictionary (99fb4f5)

  • ๐Ÿค– Finalize breakpoint token conversion (f50ea0d)

  • ๐Ÿค– Make sure we have correct deps set, and used (5d2e0fb)

  • ๐Ÿค– Reinstall (2c763ea)

  • ๐Ÿค– Reinstall (69e1a5b)

  • ๐Ÿค– Update all design token references (c640d15)

  • ๐Ÿค– Update references to util variables (b79ec36)

  • ๐Ÿค– Updating links (70f166e)

rebuild (7edb430)

10.2.0 (2021-03-05)

Features

Documentation Updates

  • โœ๏ธ Add component preview file for segmented-control (582d58b)

  • Reinstall packages (3922c31)

  • update versions (f679926)

Edit this section, Opens in new window
Contact us, Opens in new window