diff --git a/.changeset/big-hats-clap.md b/.changeset/big-hats-clap.md
new file mode 100644
index 0000000000..4ebd6d7ba6
--- /dev/null
+++ b/.changeset/big-hats-clap.md
@@ -0,0 +1,6 @@
+---
+'@swisspost/design-system-documentation': minor
+'@swisspost/design-system-styles': minor
+---
+
+Added a new `segmented-button` component, which allows users to toggle between two or more content sections within the same area on the screen.
diff --git a/packages/documentation/cypress/e2e/components/segmented-button.cy.ts b/packages/documentation/cypress/e2e/components/segmented-button.cy.ts
new file mode 100644
index 0000000000..8782575862
--- /dev/null
+++ b/packages/documentation/cypress/e2e/components/segmented-button.cy.ts
@@ -0,0 +1,45 @@
+describe('Segmented Button', () => {
+ describe('Accessibility', () => {
+ beforeEach(() => {
+ cy.visit('/iframe.html?id=snapshots--segmented-button');
+ cy.get('.segmented-button', { timeout: 30000 }).should('be.visible');
+ cy.injectAxe();
+ });
+
+ it('Has no detectable a11y violations on load for all variants', () => {
+ cy.checkA11y('#root-inner');
+ });
+ });
+
+ describe('Responsiveness', () => {
+ beforeEach(() => {
+ cy.visit('/iframe.html?id=snapshots--segmented-button');
+ cy.get('.segmented-button', { timeout: 30000 }).should('be.visible');
+ });
+
+ it('Displays vertical layout when viewport is narrower than 600px', () => {
+ cy.viewport(500, 600);
+ cy.get('.segmented-button')
+ .should('have.css', 'flex-direction', 'column');
+ });
+ });
+
+ describe('Input Selection', () => {
+ beforeEach(() => {
+ cy.visit('/iframe.html?id=snapshots--segmented-button');
+ cy.get('.segmented-button', { timeout: 30000 }).should('be.visible');
+ });
+
+ it('Allows selecting an input and updates the state', () => {
+ cy.get('.segmented-button label').first().click();
+
+ cy.get('.segmented-button label input').first().should('be.checked');
+
+ cy.get('.segmented-button label').eq(1).click();
+
+ cy.get('.segmented-button label input').eq(1).should('be.checked');
+
+ cy.get('.segmented-button label input').first().should('not.be.checked');
+ });
+ });
+});
diff --git a/packages/documentation/cypress/snapshots/components/segmented-button.snapshot.ts b/packages/documentation/cypress/snapshots/components/segmented-button.snapshot.ts
new file mode 100644
index 0000000000..f7224a3f6b
--- /dev/null
+++ b/packages/documentation/cypress/snapshots/components/segmented-button.snapshot.ts
@@ -0,0 +1,7 @@
+describe('Segmented-button', () => {
+ it('default', () => {
+ cy.visit('/iframe.html?id=snapshots--segmented-button');
+ cy.get('.segmented-button', { timeout: 30000 }).should('be.visible');
+ cy.percySnapshot('Segmented-button', { widths: [1440] });
+ });
+});
diff --git a/packages/documentation/src/stories/components/segmented-button/segmented-button.docs.mdx b/packages/documentation/src/stories/components/segmented-button/segmented-button.docs.mdx
new file mode 100644
index 0000000000..73aaaebc93
--- /dev/null
+++ b/packages/documentation/src/stories/components/segmented-button/segmented-button.docs.mdx
@@ -0,0 +1,34 @@
+import { Meta, Canvas, Controls } from '@storybook/blocks';
+import * as SegmentedButtonStories from './segmented-button.stories';
+import StylesPackageImport from '@/shared/styles-package-import.mdx';
+
+
+
+
+ # Segmented Button
+
+
+
+
+The segmented button is a single-select component.
+It allows users to toggle between two or more content sections within the same area on the screen.
+
+
+
+ If the labels are too long or the number of options is excessive for the available space,
+ consider using a select component. Keep in mind that long labels may cause layout issues,
+ such as text overflowing or word breaks.
+