From 3b3dbd0a5d7c2c70a8097ac8cd7e0ea1cb2e550b Mon Sep 17 00:00:00 2001
From: Katie Langerman <18661030+langermank@users.noreply.github.com>
Date: Wed, 10 Sep 2025 11:12:45 -0700
Subject: [PATCH] fix
---
e2e/components/SegmentedControl.test.ts | 4 +++
.../SegmentedControl.dev.stories.tsx | 16 ++++++++++
.../SegmentedControl.module.css | 32 +++++++++++--------
3 files changed, 39 insertions(+), 13 deletions(-)
diff --git a/e2e/components/SegmentedControl.test.ts b/e2e/components/SegmentedControl.test.ts
index 5247403ed1d..ceb52a5c49d 100644
--- a/e2e/components/SegmentedControl.test.ts
+++ b/e2e/components/SegmentedControl.test.ts
@@ -68,6 +68,10 @@ const stories = [
title: 'Dev: With Sx And Css',
id: 'components-segmentedcontrol-dev--with-sx-and-css',
},
+ {
+ title: 'Dev: Truncation',
+ id: 'components-segmentedcontrol-dev--in-narrow-container',
+ },
] as const
test.describe('SegmentedControl', () => {
diff --git a/packages/react/src/SegmentedControl/SegmentedControl.dev.stories.tsx b/packages/react/src/SegmentedControl/SegmentedControl.dev.stories.tsx
index 3f44f7db7db..ab51a07d903 100644
--- a/packages/react/src/SegmentedControl/SegmentedControl.dev.stories.tsx
+++ b/packages/react/src/SegmentedControl/SegmentedControl.dev.stories.tsx
@@ -75,3 +75,19 @@ export const WithSxAndCss = () => (
)
+
+export const InNarrowContainer = () => (
+
+
+
+ Preview
+
+
+ Raw
+
+
+ Blame
+
+
+
+)
diff --git a/packages/react/src/SegmentedControl/SegmentedControl.module.css b/packages/react/src/SegmentedControl/SegmentedControl.module.css
index c0371ea8fdc..7ceebe643e2 100644
--- a/packages/react/src/SegmentedControl/SegmentedControl.module.css
+++ b/packages/react/src/SegmentedControl/SegmentedControl.module.css
@@ -1,14 +1,13 @@
.SegmentedControl {
display: inline-flex;
-
- /* TODO: use primitive `control.{small|medium}.size` when it is available */
- height: 32px;
+ height: var(--control-medium-size);
padding: 0;
margin: 0;
font-size: var(--text-body-size-medium);
background-color: var(--controlTrack-bgColor-rest);
border: var(--borderWidth-thin) solid var(--controlTrack-borderColor-rest, transparent);
border-radius: var(--borderRadius-medium);
+ max-width: 100%;
&:where([data-full-width]) {
display: flex;
@@ -16,8 +15,7 @@
}
&:where([data-size='small']) {
- /* TODO: use primitive `control.{small|medium}.size` when it is available */
- height: 28px;
+ height: var(--control-small-size);
font-size: var(--text-body-size-small);
}
}
@@ -30,6 +28,7 @@
/* stylelint-disable-next-line primer/spacing */
margin-bottom: -1px;
flex-grow: 1;
+ min-width: 0;
&:not(:last-child) {
/* stylelint-disable-next-line primer/spacing */
@@ -187,15 +186,22 @@
}
}
-.Text::after {
- display: block;
- height: 0;
+.Text {
+ flex: 1;
overflow: hidden;
- font-weight: var(--base-text-weight-semibold);
- pointer-events: none;
- visibility: hidden;
- content: attr(data-text);
- user-select: none;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+
+ &::after {
+ display: block;
+ height: 0;
+ overflow: hidden;
+ font-weight: var(--base-text-weight-semibold);
+ pointer-events: none;
+ visibility: hidden;
+ content: attr(data-text);
+ user-select: none;
+ }
}
.LeadingIcon {