Komponenter
Tabs
Tabs lar brukerne navigere mellom relaterte deler av innholdet, der én del vises om gangen. Dette er en effektiv måte å organisere og presentere relatert innhold på samme side.
Unable to parse html
const Preview = () => { return ( <Tabs defaultValue='value1'> <Tabs.List> <Tabs.Tab value='value1'>Tab 1</Tabs.Tab> <Tabs.Tab value='value2'>Tab 2</Tabs.Tab> <Tabs.Tab value='value3'>Tab 3</Tabs.Tab> </Tabs.List> <Tabs.Panel value='value1'>content 1</Tabs.Panel> <Tabs.Panel value='value2'>content 2</Tabs.Panel> <Tabs.Panel value='value3'>content 3</Tabs.Panel> </Tabs> ); }; render(<Preview />)
Bruk
Vi utvider u-tabs (u-elements.github.io), som er en web-komponent som implementerer tabs.
Legg på klassenavnet ds-tabs på <ds-tabs> elementet for å få Designsystemet styling.
Vi anbefaler å bruke <ds-tabs>, og ikke bygge egne tabs fra bunnen av, for å sikre god tilgjengelighet og funksjonalitet.
CSS variabler og data-attributter
Størrelser styres med data-size og farger meddata-color. Komponenten vil arve nærmeste forelder med disse satt.
| Navn | Verdi |
|---|---|
| --dsc-tabs-content-padding | var(--ds-size-4) var(--ds-size-5) |
| --dsc-tabs-list-border-bottom-style | solid |
| --dsc-tabs-list-border-bottom-width | var(--ds-border-width-default) |
| --dsc-tabs-list-border-color | var(--ds-color-neutral-border-subtle) |
| --dsc-tabs-tab-color | var(--ds-color-neutral-text-subtle) |
| --dsc-tabs-tab-color--hover | var(--ds-color-neutral-text-default) |
| --dsc-tabs-tab-color--selected | var(--ds-color-text-subtle) |
| --dsc-tabs-tab-padding | var(--ds-size-3) var(--ds-size-5) |
Ingen relevante data-attributter funnet.
React
Eksempel på kontrollert
Unable to parse html
const Controlled = () => { const [value, setValue] = useState('value1'); return ( <Tabs value={value} onChange={(newValue) => setValue(newValue)}> <Tabs.List> <Tabs.Tab value='value1'>Tab 1</Tabs.Tab> <Tabs.Tab value='value2'>Tab 2</Tabs.Tab> <Tabs.Tab value='value3'>Tab 3</Tabs.Tab> </Tabs.List> <Tabs.Panel value='value1'>content 1</Tabs.Panel> <Tabs.Panel value='value2'>content 2</Tabs.Panel> <Tabs.Panel value='value3'>content 3</Tabs.Panel> </Tabs> ); }; render(<Controlled />)
Eksempel på panel-gjenbruk
For å gjøre applikasjonen din raskere, kan du gjenbruke ett enkelt tabpanel og heller bytte ut innholdet:
Unable to parse html
const PanelReuse = () => { const [selectedTab, setSelectedTab] = useState('Om'); const tabs = [ ['Om', <div key='about'>Om</div>], ['Timeplan', <div key='timetable'>Timeplan</div>], ['Eksamen', <div key='exam'>Eksamen</div>], ] as const; return ( <Tabs defaultValue={selectedTab} onChange={setSelectedTab}> <Tabs.List> {tabs.map(([label]) => ( <Tabs.Tab key={label} value={label} aria-selected={`${selectedTab === label}`} > {label} </Tabs.Tab> ))} </Tabs.List> {tabs.map(([label, content]) => ( <Tabs.Panel key={label} value={label} hidden={selectedTab !== label}> {content} </Tabs.Panel> ))} </Tabs> ); }; render(<PanelReuse />)
Tabs
- value
- Description
Controlled state for `Tabs` component
- Type
string- Default
undefined
- defaultValue
- Description
Default selected tab value
- Type
string- Default
undefined
- onChange
- Description
Callback with selected `TabItem` `value`
- Type
((value: string) => void)- Default
undefined
| Name | Type | Default | Description |
|---|---|---|---|
| value | string | undefined | Controlled state for `Tabs` component |
| defaultValue | string | undefined | Default selected tab value |
| onChange | ((value: string) => void) | undefined | Callback with selected `TabItem` `value` |
TabsPanel
- value
- Description
When this value is selected as the current state, render this `TabsPanel` component. Must match the `value` of a `Tabs.Tab` component.
- Type
string
| Name | Type | Default | Description |
|---|---|---|---|
| value | string | - | When this value is selected as the current state, render this `TabsPanel` component. Must match the `value` of a `Tabs.Tab` component. |
TabsTab
- value
- Description
Unique value that will be set in the `Tabs` components state when the tab is activated
- Type
string
| Name | Type | Default | Description |
|---|---|---|---|
| value | string | - | Unique value that will be set in the `Tabs` components state when the tab is activated |