diff --git a/packages/storybook/src/css-utrecht-accordion.stories.tsx b/packages/storybook/src/css-utrecht-accordion.stories.tsx
new file mode 100644
index 00000000..16a705e9
--- /dev/null
+++ b/packages/storybook/src/css-utrecht-accordion.stories.tsx
@@ -0,0 +1,116 @@
+/* @license CC0-1.0 */
+
+import type { Meta, StoryObj } from '@storybook/react';
+import { AccordionProvider } from '@utrecht/component-library-react/dist/css-module';
+import { ReactNode } from 'react';
+import readme from './documentation/accordion.md?raw';
+
+interface AccordionStoryProps {
+ label: string;
+ body: ReactNode;
+ expanded?: boolean;
+ expandedAccordion?: boolean;
+}
+
+const AccordionStory = ({ expanded, label, body }: AccordionStoryProps) => (
+
+);
+
+const meta = {
+ title: 'CSS Component/Accordion',
+ id: 'css-utrecht-accordion',
+ component: AccordionProvider,
+ args: {
+ label: '',
+ body: '',
+ expandedAccordion: false,
+ },
+ argTypes: {
+ label: {
+ name: 'label',
+ type: { name: 'string', required: true },
+ table: {
+ defaultValue: { summary: '' },
+ category: 'API',
+ },
+ },
+ body: {
+ name: 'body',
+ type: { name: 'string', required: true },
+ table: {
+ defaultValue: { summary: '' },
+ category: 'API',
+ },
+ },
+ expandedAccordion: {
+ name: 'expandedAccordion',
+ type: { name: 'boolean', required: false },
+ table: {
+ defaultValue: { summary: false },
+ category: 'API',
+ },
+ },
+ },
+ tags: ['autodocs'],
+ parameters: {
+ design: {
+ type: 'figma',
+ url: 'https://www.figma.com/design/ck81CE8SNzePi30jCEu7MK/NLDS---Gemeente-Tilburg---Bibliotheek?node-id=828%3A920&t=Y2YZ0H2902enM7la-1',
+ },
+ docs: {
+ description: {
+ component: readme,
+ },
+ },
+ },
+ render: AccordionStory,
+} satisfies Meta;
+export default meta;
+
+type Story = StoryObj;
+
+export const Default: Story = {
+ args: {
+ label: 'Lorem ipsum',
+ body: `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
+ laborum.`,
+ expandedAccordion: true,
+ },
+};
+
+const accordionData = [
+ {
+ label: 'Lorem ipsum 1',
+ body: `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
+ laborum.`,
+ expandedAccordion: true,
+ },
+ {
+ label: 'Lorem ipsum 2',
+ body: `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
+ laborum.`,
+ expandedAccordion: false,
+ },
+ {
+ label: 'Lorem ipsum 3',
+ body: `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
+ laborum.`,
+ expandedAccordion: false,
+ },
+];
+
+export const Multiple: Story = {
+ render: () => ,
+};
diff --git a/packages/storybook/src/documentation/accordion.md b/packages/storybook/src/documentation/accordion.md
new file mode 100644
index 00000000..8d96d82e
--- /dev/null
+++ b/packages/storybook/src/documentation/accordion.md
@@ -0,0 +1,3 @@
+# Accordion
+
+The accordion component is a container that can be collapsed and expanded. It is used to hide and show content.
diff --git a/proprietary/design-tokens/src/common/tilburg/line.tokens.json b/proprietary/design-tokens/src/common/tilburg/line.tokens.json
new file mode 100644
index 00000000..6667d3b4
--- /dev/null
+++ b/proprietary/design-tokens/src/common/tilburg/line.tokens.json
@@ -0,0 +1,14 @@
+{
+ "tilburg": {
+ "line": {
+ "border-color": {
+ "value": "{tilburg.color.gray.200}",
+ "type": "color"
+ },
+ "border-width": {
+ "value": "{tilburg.border-width.sm}",
+ "type": "borderWidth"
+ }
+ }
+ }
+}
diff --git a/proprietary/design-tokens/src/components/utrecht/accordion.tokens.json b/proprietary/design-tokens/src/components/utrecht/accordion.tokens.json
new file mode 100644
index 00000000..870ff882
--- /dev/null
+++ b/proprietary/design-tokens/src/components/utrecht/accordion.tokens.json
@@ -0,0 +1,166 @@
+{
+ "utrecht": {
+ "accordion": {
+ "border-radius": {
+ "type": "borderRadius",
+ "value": "0px"
+ },
+ "section": {
+ "border-block-end-width": {
+ "type": "borderWidth",
+ "value": "{tilburg.border-width.sm}"
+ },
+ "border-width": {
+ "type": "borderWidth",
+ "value": "auto"
+ },
+ "border-color": {
+ "value": "{tilburg.line.border-color}",
+ "type": "color"
+ }
+ },
+ "panel": {
+ "border-color": {
+ "value": "transparent",
+ "type": "color"
+ },
+ "border-width": {
+ "type": "borderWidth",
+ "value": "{tilburg.border-width.lg}"
+ },
+ "padding-block-end": {
+ "value": "{tilburg.space.block.rabbit}",
+ "type": "spacing"
+ },
+ "padding-block-start": {
+ "value": "{tilburg.space.block.rabbit}",
+ "type": "spacing"
+ },
+ "padding-inline-end": {
+ "value": "{tilburg.space.inline.mouse}",
+ "type": "spacing"
+ },
+ "padding-inline-start": {
+ "value": "{tilburg.space.inline.mouse}",
+ "type": "spacing"
+ }
+ },
+ "button": {
+ "font-size": {
+ "value": "{tilburg.document.font-size}",
+ "type": "fontSizes"
+ },
+ "line-height": {
+ "value": "{tilburg.document.line-height}",
+ "type": "lineHeights"
+ },
+ "icon": {
+ "margin-inline": {
+ "value": "{tilburg.space.text.mouse}",
+ "type": "spacing"
+ },
+ "size": {
+ "type": "sizing",
+ "value": "{tilburg.icon.functional.size}"
+ }
+ },
+ "padding-block-end": {
+ "value": "{tilburg.space.block.snail}",
+ "type": "spacing"
+ },
+ "padding-block-start": {
+ "value": "{tilburg.space.block.snail}",
+ "type": "spacing"
+ },
+ "padding-inline-end": {
+ "value": "{tilburg.space.inline.mouse}",
+ "type": "spacing"
+ },
+ "padding-inline-start": {
+ "value": "{tilburg.space.inline.mouse}",
+ "type": "spacing"
+ },
+ "hover": {
+ "background-color": {
+ "type": "color",
+ "value": "{tilburg.color.gray.100}"
+ },
+ "border-color": {
+ "value": "transparent",
+ "type": "color"
+ },
+ "color": {
+ "type": "color",
+ "value": "{tilburg.interaction.hover.color}"
+ }
+ },
+ "expanded": {
+ "background-color": {
+ "value": "{tilburg.color.gray.50}",
+ "type": "color"
+ },
+ "border-color": {
+ "value": "transparent",
+ "type": "color"
+ },
+ "color": {
+ "type": "color",
+ "value": "{tilburg.interaction.color}"
+ }
+ },
+ "background-color": {
+ "type": "color",
+ "value": "{tilburg.color.gray.50}"
+ },
+ "border-color": {
+ "value": "transparent",
+ "type": "color"
+ },
+ "color": {
+ "type": "color",
+ "value": "{tilburg.interaction.color}"
+ },
+ "focus": {
+ "background-color": {
+ "type": "color",
+ "value": "{tilburg.focus.background-color}"
+ },
+ "border-color": {
+ "value": "transparent",
+ "type": "color"
+ },
+ "color": {
+ "type": "color",
+ "value": "{tilburg.focus.color}"
+ }
+ },
+ "active": {
+ "background-color": {
+ "type": "color",
+ "value": "{tilburg.color.gray.200}"
+ },
+ "border-color": {
+ "value": "transparent",
+ "type": "color"
+ },
+ "color": {
+ "type": "color",
+ "value": "{tilburg.interaction.active.color}"
+ }
+ },
+ "border-width": {
+ "type": "borderWidth",
+ "value": "{tilburg.border-width.sm}"
+ },
+ "font-family": {
+ "value": "{tilburg.document.font-family}",
+ "type": "fontFamilies"
+ },
+ "font-weight": {
+ "value": "{tilburg.document.strong.font-weight}",
+ "type": "fontWeights"
+ }
+ }
+ }
+ }
+}