BBButton: subtle variant with neutral color has an opaque white background, so it renders white on white in dark mode
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- react, typescript
- Domain
- frontend
Research direction
Start by reading the button variant definitions shown from dist/components/Button.js and locate the corresponding source and tests for BBButton's subtle neutral variant. Compare it with subtle.default and check the existing theme-variable behavior. Done means the neutral subtle button has a transparent background, readable text, and the specified light-gray hover background without changing other variants.
Written by the indexing model from the issue text.
Description
Description
The subtle + neutral combination uses the same colours as primary.neutral: an opaque --color-neutral-white background with --color-gray text. Every other subtle button has a transparent background, as in subtle.default.
In the BigBlueButton HTML5 client's dark theme, --color-gray turns white. --color-neutral-white is deliberately left alone, because the library also uses it as the label colour over brand backgrounds. The button ends up white on white.
Found on the pre-flight "Settings" button (bigbluebutton/bigbluebutton#25842).
Steps to reproduce
- Render
<BBButton variant="subtle" color="neutral" label="Settings" onClick={...} />on a dark surface. - Override
--color-graywith a light colour, as the client's dark theme does.
Expected: a transparent background, as on the other subtle buttons, with readable text.
Actual: a white pill with near-invisible text. In the light theme the white pill also stands out on any surface that isn't white.
Cause
From dist/components/Button.js (0.8.0):
subtle: {
default: { color: R, iconColor: N, background: "transparent", border: !1, hoverColor: R, hoverBackground: E, hoverBorder: !1, outline: N },
neutral: { color: C, background: k, border: !1, hoverColor: C, hoverBackground: S, hoverBorder: !1, outline: B }, // same as primary.neutral
}
// k = --color-neutral-white, C = --color-gray, S = --color-brand-aux, E = --color-light-gray
Suggested fix
Make subtle.neutral transparent like subtle.default and change only the text colour:
neutral: { color: C, iconColor: C, background: "transparent", border: !1, hoverColor: C, hoverBackground: E, hoverBorder: !1, outline: N },
The hover then uses --color-light-gray, which themes can already override.
Workaround
The client uses variant="subtle" without color.
- Dominant language
- TypeScript
- Stars
- 2
- Forks
- 5
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 9
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from bigbluebutton/bbb-ui-components-react
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 30/100
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 45/100
-
Add standard component for notifications (BBBToast)May be free again @Arthurk12 claimed this 31 days ago, and no pull request is open. Openenhancement
bigbluebutton/bbb-ui-components-react#72 · 1 assignee ·
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 45/100
All issues in bigbluebutton/bbb-ui-components-react
Similar issues
-
dx hacktoberfest help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
documentation
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
cloudflare/agents#2498 ·
Maintainers usually reply within 1 day
-
Missing repro Platform: Android
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
software-mansion/react-native-reanimated#10816 · 2 comments ·
Maintainers usually reply within 1 day
-
e2e-failure ready-to-code
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
redhat-developer/rhdh-plugin-export-overlays#4129 ·
Maintainers usually reply within 1 day