From a6281aa06ac36a3efaadb56518c49e0a63d6f816 Mon Sep 17 00:00:00 2001 From: Arthurk12 Date: Fri, 2 Oct 2026 10:21:42 -0300 Subject: [PATCH 1/4] fix(BBButton): keep 1px transparent border when disabled A disabled BBButton renders 2px narrower and 2px shorter than the same button enabled. The enabled style reserves a 1px transparent border when the color has no visible border, but the disabled style sets `border: none`. The disabled palette has no border color, so every disabled button drops its border, and toggling `disabled` resizes the button and moves the layout around it (e.g. the Share button in the BBB media-sharing modal shifts its anchored modal by 2px). Fall back to `1px solid transparent` in the disabled branch, matching the enabled style, so the box is the same in both states. --- src/components/Button/styles.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Button/styles.ts b/src/components/Button/styles.ts index b44c596..2219e6c 100644 --- a/src/components/Button/styles.ts +++ b/src/components/Button/styles.ts @@ -90,13 +90,13 @@ const commonButtonStyles = css` } color: ${color}; ${background ? `background-color: ${background}` : `background-color: none`}; - border: ${border ? `1px solid ${border}` : 'none'}; + border: ${border ? `1px solid ${border}` : '1px solid transparent'}; &&:hover, &&:active { color: ${color}; ${background ? `background-color: ${background}` : `background-color: none`}; - border: ${border ? `1px solid ${border}` : 'none'}; + border: ${border ? `1px solid ${border}` : '1px solid transparent'}; } &&:focus { From e46e2a35a875e1e395e84be3e12097c707d8c71d Mon Sep 17 00:00:00 2001 From: Arthurk12 Date: Fri, 2 Oct 2026 10:21:42 -0300 Subject: [PATCH 2/4] fix(BBButton): use valid transparent fallback for disabled background The disabled style falls back to `background-color: none`, which is not valid CSS and is dropped by the browser. Use `transparent`, which is what the fallback means. The branch is unreachable with the current disabled palette, but it should stay correct if the palette changes. --- src/components/Button/styles.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Button/styles.ts b/src/components/Button/styles.ts index 2219e6c..8e257de 100644 --- a/src/components/Button/styles.ts +++ b/src/components/Button/styles.ts @@ -89,13 +89,13 @@ const commonButtonStyles = css` color: ${color}; } color: ${color}; - ${background ? `background-color: ${background}` : `background-color: none`}; + ${background ? `background-color: ${background}` : `background-color: transparent`}; border: ${border ? `1px solid ${border}` : '1px solid transparent'}; &&:hover, &&:active { color: ${color}; - ${background ? `background-color: ${background}` : `background-color: none`}; + ${background ? `background-color: ${background}` : `background-color: transparent`}; border: ${border ? `1px solid ${border}` : '1px solid transparent'}; } From e42ec7074eb4a7a659bb76897137e709841317c1 Mon Sep 17 00:00:00 2001 From: Arthurk12 Date: Fri, 2 Oct 2026 13:16:30 -0300 Subject: [PATCH 3/4] feat(BBButton): add fullWidth prop and forward className BBButton sizes itself to its label and gives consumers no way to change that: it has no width prop and does not forward `className`, so `styled(BBButton)` has no effect. Consumers that need a button to fill a footer, popover or dialog row wrap it in a div and reach into it with a `> *` child selector, which depends on the component's markup and targets the wrong element in the stacked layout, where the root is a wrapper div rather than the