From dc6b6463691ecdfc1ed9d9ca0d6e825e6c51199d Mon Sep 17 00:00:00 2001 From: Serhiy Khvashchuk Date: Tue, 3 Nov 2026 17:57:34 +0100 Subject: [PATCH] fix(toggle): keep the track width when the toggle is full-width With className="w-full" and a long hint, the flex row squeezed the ToggleBase track (sm 36px became about 25px). Add shrink-0 to the track, the same way Checkbox and Radio bases already do, and add a "Toggles full width" story that shows long and short hints side by side. --- components/base/toggle/toggle.demo.tsx | 19 +++++++++++++++++++ components/base/toggle/toggle.story.tsx | 3 +++ components/base/toggle/toggle.tsx | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/components/base/toggle/toggle.demo.tsx b/components/base/toggle/toggle.demo.tsx index ad2a00b..02b7789 100644 --- a/components/base/toggle/toggle.demo.tsx +++ b/components/base/toggle/toggle.demo.tsx @@ -74,3 +74,22 @@ export const ToggleSlimBase = () => ( ); + +export const TogglesFullWidth = () => ( +
+ + + + +
+); diff --git a/components/base/toggle/toggle.story.tsx b/components/base/toggle/toggle.story.tsx index b4546fd..00c84df 100644 --- a/components/base/toggle/toggle.story.tsx +++ b/components/base/toggle/toggle.story.tsx @@ -21,3 +21,6 @@ TogglesSlim.storyName = "Toggles slim"; export const ToggleSlimBase = () => ; ToggleSlimBase.storyName = "Toggle slim base"; + +export const TogglesFullWidth = () => ; +TogglesFullWidth.storyName = "Toggles full width"; diff --git a/components/base/toggle/toggle.tsx b/components/base/toggle/toggle.tsx index ad8eda6..5e30f19 100644 --- a/components/base/toggle/toggle.tsx +++ b/components/base/toggle/toggle.tsx @@ -51,7 +51,7 @@ export const ToggleBase = ({ className, isHovered, isDisabled, isFocusVisible, i return (