Skip to content

Commit 873bb29

Browse files
authored
docs(toggle-group): web-first (#4849)
1 parent ed0a7ed commit 873bb29

5 files changed

Lines changed: 69 additions & 84 deletions

File tree

apps/www/app/content/components/toggle-group/en/code.mdx

Lines changed: 23 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,7 @@
1-
<Story story="PreviewEn" />
2-
<ReactComponentDocs />
1+
<Story story="PreviewEn" defaultOpen />
32

43
## Usage
5-
6-
```tsx
7-
import { ToggleGroup } from '@digdir/designsystemet-react';
8-
9-
<ToggleGroup data-toggle-group='Options' defaultValue="option1">
10-
<ToggleGroup.Item value="option1">Option 1</ToggleGroup.Item>
11-
<ToggleGroup.Item value="option2">Option 2</ToggleGroup.Item>
12-
</ToggleGroup>
13-
14-
```
15-
16-
## Examples
17-
18-
### Icons only
19-
Use [`Tooltip`](/en/components/docs/tooltip/code) to explain the actions when using only icons.
20-
21-
<Story story="OnlyIconsEn" />
22-
23-
### Controlled
24-
25-
<Story story="ControlledEn" />
26-
27-
### Secondary variant
28-
29-
<Story story="SecondaryEn" />
30-
31-
## HTML
32-
If you are using `@digdir/designsystemet-web`, you can implement `ToggleGroup` by using the `data-toggle-group` attribute.
4+
If you are using `@digdir/designsystemet-web`, you can implement toggle group by using the `data-toggle-group` attribute.
335

346
```html
357
<fieldset class="ds-toggle-group" data-toggle-group="Text alignment" data-variant="secondary">
@@ -55,7 +27,7 @@ You can read about what you need to do to implement this in the [accessibility d
5527
The class name `ds-toggle-group` is placed on a `<div>` with `role="radiogroup"`.
5628

5729
Each button in the group is a `<button>` with class name `ds-button` with `role="radio"` and `aria-checked` which indicates whether the button is selected or not.
58-
`data-variant` for selected buttons should match `data-variant` on `ToggleGroup`.
30+
`data-variant` for selected buttons should match `data-variant` on toggle group.
5931
The remaining buttons should have `data-variant="tertiary"`.
6032

6133
```html
@@ -86,6 +58,26 @@ The remaining buttons should have `data-variant="tertiary"`.
8658
```
8759

8860
## CSS variables and data attributes
61+
Sizes are controlled with [data-size](/en/fundamentals/code/sizes) and colors with [data-color](/en/fundamentals/code/colors).
62+
The component will inherit from the closest parent where these are set.
63+
8964
<CssVariables />
9065

9166
<CssAttributes />
67+
68+
## React
69+
70+
```tsx
71+
import { ToggleGroup } from '@digdir/designsystemet-react';
72+
73+
<ToggleGroup data-toggle-group='Options' defaultValue="option1">
74+
<ToggleGroup.Item value="option1">Option 1</ToggleGroup.Item>
75+
<ToggleGroup.Item value="option2">Option 2</ToggleGroup.Item>
76+
</ToggleGroup>
77+
```
78+
79+
### Controlled example
80+
81+
<Story story="ControlledEn" language="react" />
82+
83+
<ReactComponentDocs />

apps/www/app/content/components/toggle-group/en/overview.mdx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,20 @@ search_terms: switch, button
44

55
<Story story="PreviewEn" />
66

7-
**Use `ToggleGroup` when**
7+
**Use toggle group when**
88
- you need to switch between views, for example between a list and a graph
99
- content in a list or table needs to be filtered
1010

11-
**Avoid using `ToggleGroup` when**
11+
**Avoid using toggle group when**
1212
- there are so many options that they do not fit within the available width
1313
- the options contain long text, making the group heavy and difficult to scan
14-
- the options represent answers in a form - use [`Radio`](/en/components/docs/radio/overview) instead
15-
- the choice is an on/off setting - use [`Switch`](/en/components/docs/switch/overview) instead
14+
- the options represent answers in a form - use [radio](/en/components/docs/radio/overview) instead
15+
- the choice is an on/off setting - use [switch](/en/components/docs/switch/overview) instead
1616

1717
## Example
1818

1919
### Icons only
20-
A `ToggleGroup` without text should only be used when the icons are easy for users to understand. This may be suitable for expert users or internal services where the symbols are already familiar. Use [`Tooltip`](/en/components/docs/tooltip/overview) to clarify the actions when using icons alone.
20+
A toggle group without text should only be used when the icons are easy for users to understand. This may be suitable for expert users or internal services where the symbols are already familiar. Use [tooltip](/en/components/docs/tooltip/overview) to clarify the actions when using icons alone.
2121

2222
<Story story="OnlyIconsEn" />
2323

@@ -26,10 +26,10 @@ A `ToggleGroup` without text should only be used when the icons are easy for use
2626
<Story story="SecondaryEn" />
2727

2828
## Guidelines
29-
It is not always straightforward to decide when to use a `ToggleGroup` instead of components such as `Tabs` or `Radio`. The choice depends on the context and how the rest of the interface is structured.As a general rule, `ToggleGroup` should be used when the selection has a direct and visible effect in the interface — for example when the content on the page or a specific element is updated immediately based on the user’s choice.
29+
It is not always straightforward to decide when to use a toggle group instead of components such as tabs or radio. The choice depends on the context and how the rest of the interface is structured.As a general rule, toggle group should be used when the selection has a direct and visible effect in the interface — for example when the content on the page or a specific element is updated immediately based on the user’s choice.
3030

31-
A `ToggleGroup` should have at least two options, but not so many that they no longer fit horizontally. Ensure there is enough space for both the content of each option and the number of options without causing line breaks. Make sure the entire component fits on screen, including on mobile, and that all options remain clearly visible to users.
31+
A toggle group should have at least two options, but not so many that they no longer fit horizontally. Ensure there is enough space for both the content of each option and the number of options without causing line breaks. Make sure the entire component fits on screen, including on mobile, and that all options remain clearly visible to users.
3232

3333
## Text
3434
Include a label for the group that explains what the options refer to.
35-
Write clear, consistent labels for each option, ensuring they follow the same linguistic pattern. Use [`Tooltip`](/en/components/docs/tooltip/overview) to provide hints when needed, especially when using icons only.
35+
Write clear, consistent labels for each option, ensuring they follow the same linguistic pattern. Use [tooltip](/en/components/docs/tooltip/overview) to provide hints when needed, especially when using icons only.

apps/www/app/content/components/toggle-group/metadata.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"no": {
3-
"title": "ToggleGroup",
4-
"subtitle": "`ToggleGroup` samler relaterte alternativ. Komponenten består av ei gruppe knappar som heng saman, der berre éin knapp er mogleg å velje om gongen."
3+
"title": "Toggle group",
4+
"subtitle": "Toggle group samler relaterte alternativ. Komponenten består av ei gruppe knappar som heng saman, der berre éin knapp er mogleg å velje om gongen."
55
},
66
"en": {
7-
"title": "ToggleGroup",
8-
"subtitle": "`ToggleGroup` groups related options. The component consists of a group of buttons that are connected, where only one button can be selected at a time."
7+
"title": "Toggle group",
8+
"subtitle": "Toggle group groups related options. The component consists of a group of buttons that are connected, where only one button can be selected at a time."
99
},
1010
"image": "ToggleGroup.svg",
1111
"cssFile": "toggle-group.css"

apps/www/app/content/components/toggle-group/no/code.mdx

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,7 @@
1-
<Story story="Preview" />
2-
<ReactComponentDocs />
1+
<Story story="Preview" defaultOpen />
32

43
## Bruk
5-
6-
```tsx
7-
import { ToggleGroup } from '@digdir/designsystemet-react';
8-
9-
<ToggleGroup data-toggle-group='Alternativer' defaultValue="option1">
10-
<ToggleGroup.Item value="option1">Alternativ 1</ToggleGroup.Item>
11-
<ToggleGroup.Item value="option2">Alternativ 2</ToggleGroup.Item>
12-
</ToggleGroup>
13-
```
14-
15-
## Eksempel
16-
17-
### Kun ikoner
18-
Bruk [`Tooltip`](/no/components/docs/tooltip/code) for å forklare handlingane når du brukar berre ikon.
19-
20-
<Story story="OnlyIcons" />
21-
22-
### Kontrollert
23-
24-
<Story story="Controlled" />
25-
26-
### Secondary variant
27-
28-
<Story story="Secondary" />
29-
30-
## HTML
31-
Bruker du `@digdir/designsystemet-web` kan du implementere `ToggleGroup` ved å bruke `data-toggle-group`-attributtet.
4+
Bruker du `@digdir/designsystemet-web` kan du implementere toggle group ved å bruke `data-toggle-group`-attributtet.
325

336
```html
347
<fieldset class="ds-toggle-group" data-toggle-group="Tekstjustering" data-variant="secondary">
@@ -55,7 +28,7 @@ Du kan lese om kva du må gjere for å implementere dette i [tilgjengelighetsdok
5528
Klassenavnet `ds-toggle-group` blir lagt på ein `<div>` med `role="radiogroup"`.
5629

5730
Kvar knapp i gruppa er ein `<button>` med klassenavn `ds-button` med `role="radio"` og `aria-checked` som indikerer om knappen er vald eller ikkje.
58-
`data-variant` for valde knappar skal stemme med `data-variant``ToggleGroup`.
31+
`data-variant` for valde knappar skal stemme med `data-variant`toggle group.
5932
Resterande knappar skal ha `data-variant="tertiary"`.
6033

6134
```html
@@ -86,6 +59,26 @@ Resterande knappar skal ha `data-variant="tertiary"`.
8659
```
8760

8861
## CSS variablar og data-attributter
62+
Størrelsar styrast med [data-size](/no/fundamentals/code/sizes) og fargar med [data-color](/no/fundamentals/code/colors).
63+
Komponenten vil arve næraste forelder med desse satt.
64+
8965
<CssVariables />
9066

9167
<CssAttributes />
68+
69+
## React
70+
71+
```tsx
72+
import { ToggleGroup } from '@digdir/designsystemet-react';
73+
74+
<ToggleGroup data-toggle-group='Alternativer' defaultValue="option1">
75+
<ToggleGroup.Item value="option1">Alternativ 1</ToggleGroup.Item>
76+
<ToggleGroup.Item value="option2">Alternativ 2</ToggleGroup.Item>
77+
</ToggleGroup>
78+
```
79+
80+
### Eksempel på kontrollert
81+
82+
<Story story="Controlled" language="react" />
83+
84+
<ReactComponentDocs />

apps/www/app/content/components/toggle-group/no/overview.mdx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@ search_terms: valggruppe, enkeltvalg, switch
44

55
<Story story="Preview" />
66

7-
**Bruk `ToggleGroup` når**
7+
**Bruk toggle group når**
88
- du skal veksle mellom visningar, til dømes mellom liste og graf
99
- innhald i ei liste eller tabell skal filtrerast
1010

11-
**Unngå `ToggleGroup` når**
11+
**Unngå toggle group når**
1212
- du har så mange val at dei ikkje får plass i breidda
1313
- vala inneheld lange tekstar som gjer at gruppa verkar tung og uoversiktleg
14-
- alternativa er svar i eit skjema - bruk heller [`Radio`](/no/components/docs/radio/overview)
15-
- valet er ein av/på-innstilling - bruk heller [`Switch`](/no/components/docs/switch/overview)
14+
- alternativa er svar i eit skjema - bruk heller [radio](/no/components/docs/radio/overview)
15+
- valet er ein av/på-innstilling - bruk heller [switch](/no/components/docs/switch/overview)
1616

1717
## Eksempel
1818

1919
### Kun ikoner
20-
`ToggleGroup` står utan tekst bør berre brukast når ikona er lett forståelege for brukarane.
21-
Det kan til dømes vere ekspertbrukarar eller brukarar av interne tenester som kjenner symbola i den aktuelle `ToggleGroup` godt.
22-
Forklar handlingane med [`Tooltip`](/no/components/docs/tooltip/overview) når du brukar berre ikon.
20+
Toggle group står utan tekst bør berre brukast når ikona er lett forståelege for brukarane.
21+
Det kan til dømes vere ekspertbrukarar eller brukarar av interne tenester som kjenner symbola i den aktuelle toggle group godt.
22+
Forklar handlingane med [tooltip](/no/components/docs/tooltip/overview) når du brukar berre ikon.
2323

2424
<Story story="OnlyIcons" />
2525

@@ -28,12 +28,12 @@ Forklar handlingane med [`Tooltip`](/no/components/docs/tooltip/overview) når d
2828
<Story story="Secondary" />
2929

3030
## Retningslinjer
31-
Det er ikkje alltid heilt rett fram å avgjere når du bør bruke ein `ToggleGroup` i staden for eksempelvis `Tabs` eller `Radio`.
31+
Det er ikkje alltid heilt rett fram å avgjere når du bør bruke ein toggle group i staden for eksempelvis tabs eller radio.
3232
Valet kjem ofte an på situasjonen og korleis grensesnittet elles er bygd opp.
33-
Som ein tommelfingerregel bør `ToggleGroup` berre brukast når valet har ein direkte og synleg effekt i grensesnittet, til dømes at innhaldet på sida eller eit element vert oppdatert med ein gong basert på kva brukaren vel.
33+
Som ein tommelfingerregel bør toggle group berre brukast når valet har ein direkte og synleg effekt i grensesnittet, til dømes at innhaldet på sida eller eit element vert oppdatert med ein gong basert på kva brukaren vel.
3434

35-
`ToggleGroup` bør ha minst to val, men ikkje fleire enn at alle vala får plass i breidda.
35+
Toggle group bør ha minst to val, men ikkje fleire enn at alle vala får plass i breidda.
3636
Du må sjølv passe på at det er nok plass til både innhaldet i vala og talet på val utan å bryte linja. Pass på at heile komponenten får plass på skjermen, også på mobil, og at alle vala er godt synlege for brukarane.
3737

3838
## Tekst
39-
Ha gjerne med ei ledetekst for gruppa som forklarer kva vala gjeld. Skriv tydelege tekstar for vala i komponenten, og pass på at dei har same språklege form. Bruk gjerne [`Tooltip`](/no/components/docs/tooltip/overview) til å gje hint, særleg dersom du berre viser ikon.
39+
Ha gjerne med ei ledetekst for gruppa som forklarer kva vala gjeld. Skriv tydelege tekstar for vala i komponenten, og pass på at dei har same språklege form. Bruk gjerne [tooltip](/no/components/docs/tooltip/overview) til å gje hint, særleg dersom du berre viser ikon.

0 commit comments

Comments
 (0)