-
Notifications
You must be signed in to change notification settings - Fork 148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add a new switch component #960
base: main
Are you sure you want to change the base?
Conversation
|
commit: |
…/qwik-ui into add_component_switch
I done |
it's weird, I have no idea with this error. I didn’t delete the tailwind file |
onClick$={[handleClickSync$, handleClick$]} | ||
> | ||
<input | ||
{...rest} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like we need 4 pieces here:
Switch.Track, Switch.Thumb, Switch.Trigger (a button or div), and Switch.HiddenInput
But this is based on the current structure. I would follow the research process here:
I think we could merge this in as a draft state if you wanted to start consuming the current version. With the current feedback above a lot of changes are still needed to be prod ready. (and processes have improved since this PR) Props to the continued effort on this @JerryWu1234 💪 . Many parts of this were not documented, and have since been documented in qwik.design I will start writing some docs on form support as well |
Hey Jerry! Here's the new docs on form handling: |
Hey @JerryWu1234 let's remove this changeset since this would upgrade Qwik UI by a major version |
OK |
…/qwik-ui into add_component_switch
What is it?
Switch Component Implementation
This PR implements a headless Switch component with the following features:
Features
role="switch"
bind:checked
signaldisabled
checked
onChange$
onClick$
autoFocus
defaultChecked
Test Coverage
Component Structure
SwitchRoot
: Main component wrapperSwitchInput
: Core switch functionalitySwitchLabel
: Accessible labelingUsage Example
This implementation follows WAI-ARIA best practices and provides a flexible foundation for custom styling while maintaining accessibility.
Why is it needed?
Checklist:
pnpm change
and documented my changes