BBButton: pressed state for toggle buttons
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 30/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- react, typescript
- Ambito
- accessibility, frontend
Direzione di ricerca
Start in src/components/Button/styles.ts, where the hover rule and the & span color rule are defined, and in the BBButton component that receives props. Check how the existing variants are styled so a pressed state can hold through hover, active and focus, and how aria-pressed could be rendered when pressed is set. Done means pressed={true} and pressed={false} render aria-pressed, undefined renders nothing, and each variant's pressed style survives hover. The colors need a design decision first, so confirm them before implementing.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Is your feature request related to a problem? Please describe.
BBButton has no selected/pressed state, so a group of toggle buttons, where one option is picked, has to be painted by the consumer.
The BigBlueButton 4.0 poll panel's response-type picker is such a group: True/False, A/B/C/D, Yes/No/Abstention and User response. Its spec asks for a grey box when not selected and the dark brand blue with white text once picked, holding that fill through hover and press. To get there, the client:
- switches the variant (
primarywhen selected,tertiaryotherwise), then repaints both states from a wrapper with eight!importantdeclarations. They're needed because the library's hover rule,&&:hover:not(:has(> [data-is-aux-icon]:hover)), outranks any ordinary override. - paints the label separately, because the library sets the color on
& span, which beats a color inherited from the button.
The selected state also isn't exposed to assistive technology. BBButton has no aria-pressed and doesn't pass extra props through, so a screen reader hears four plain buttons and no selection.
More groups like this are coming as the client moves to BBButton:
- the poll/quiz tab selector, a custom
SegmentedButtonthat setsaria-presseditself; - the timer panel's Stopwatch/Timer switch, which still uses the legacy button.
Describe the solution you'd like
A pressed?: boolean prop:
- When set (
trueorfalse): the button rendersaria-pressed={pressed}. Leaving itundefinedmeans "not a toggle", as today. - Pressed style: each variant/color gets a pressed style that holds through hover, active and focus. The design team would define the colors; the poll spec above is one data point.
Describe alternatives you've considered
- Forwarding
aria-pressed(or ARIA props in general). It fixes the accessibility gap, but the style still needs!important. - A segmented-control or toggle-group component. For a group where exactly one option is selected,
role="radiogroup"with radio items may be more accurate thanaria-pressed, and it brings arrow-key navigation. It's a bigger addition. Apressedprop would still cover standalone toggles, such as mute or pin buttons.
Affected component(s)
BBButton
Proposed API / Usage Example
{responseTypes.map((t) => (
<BBButton
key={t.id}
label={t.label}
variant="secondary"
pressed={type === t.id}
onClick={() => setType(t.id)}
fullWidth
/>
))}
- Lingua principale
- TypeScript
- Stelle
- 2
- Fork
- 5
- Merge medio
- 1g 16h
- PR unite (30g)
- 12
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di bigbluebutton/bbb-ui-components-react
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
bigbluebutton/bbb-ui-components-react#108 ·
I maintainer di solito rispondono entro 2 giorni
-
BBButton: subtle variant with neutral color has an opaque white background, so it renders white on white in dark modeForse di nuovo libera @nisatsama l’ha presa 9 giorni fa e non c’è nessuna pull request aperta. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
bigbluebutton/bbb-ui-components-react#100 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 3/5 Mezza giornata Idoneità per principianti 55/100
bigbluebutton/bbb-ui-components-react#106 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 3/5 Mezza giornata Idoneità per principianti 45/100
bigbluebutton/bbb-ui-components-react#105 ·
I maintainer di solito rispondono entro 2 giorni
-
Add support for dark themeApertaenhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
bigbluebutton/bbb-ui-components-react#87 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di bigbluebutton/bbb-ui-components-react
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
wormhole-foundation/wormhole#5062 ·
I maintainer di solito rispondono entro 1 giorno
-
internal os specific
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
frostney/GocciaScript#1688 ·
I maintainer di solito rispondono entro 1 giorno
-
integration:hermes
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
vectorize-io/hindsight#5592 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
vercel/streamdown#673 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
apache/rocketmq-dashboard#6712 ·
I maintainer di solito rispondono entro 3 giorni