#237
Scrollable
Seven tabs in a narrow container where the list scrolls horizontally with edge fades.
Hand this to your AI. It names the exact library parts, timings and accessibility promises of this demo.
Build the "Scrollable" pattern (@codeatlasdev/ui demo #237, navigation/tabs) in my app.
Call get_demo({ ids: ["#237"] }) first and keep its structure. It needs @codeatlasdev/[email protected].
Use: Settings areas with more sections than fit the width, especially on mobile.
Keep these library parts, with the props and tokens the demo uses:
- Tabs, TabsList, TabsTrigger, TabsContent from "@codeatlasdev/ui"
Behaviour to keep:
- `<TabsList fade>` over `{#each sections as s (s)}` producing `TabsTrigger` items
- `const sections` has 7 labels: General, Billing, Members, Webhooks, Security, Integrations, Danger zone
- `<Tabs value="integrations">` starts on the sixth tab
- Values come from `const key = (s: string) => s.toLowerCase().replace(' ', '-')`
- Wrapper is `.wrap` with `max-width: 360px`
Reduced motion: the demo handles it; keep that branch.
Keyboard: operable; keep the focus order and key handling.
Change only the copy and the data. Use the theme tokens (--ca-*), never raw colours. Library parts
- Tabs
@codeatlasdev/ui - TabsList
@codeatlasdev/ui - TabsTrigger
@codeatlasdev/ui - TabsContent
@codeatlasdev/ui
How it is built
- `<TabsList fade>` over `{#each sections as s (s)}` producing `TabsTrigger` items
- `const sections` has 7 labels: General, Billing, Members, Webhooks, Security, Integrations, Danger zone
- `<Tabs value="integrations">` starts on the sixth tab
- Values come from `const key = (s: string) => s.toLowerCase().replace(' ', '-')`
- Wrapper is `.wrap` with `max-width: 360px`
Related
Loading source.