Tilt-turn window
Markup where the component goes, CSS in your stylesheet. No JavaScript.
Paste into Claude, ChatGPT or Cursor after filling in {{USER_STACK}}, {{USER_STYLING}} and {{USER_CONSTRAINTS}}. Neutral keeps the greys you see here; Match my project asks the model to map them onto your own colour tokens.
Install with shadcn
Needs a free account token. Get a token
npx shadcn@latest add @movin/radio-windowAbout this component
A tilt-and-turn window as the picker: the handle turns down, across or up and the window closes, swings open on its side hinges or tilts in at the top, with a breeze coming through whenever it is not closed.
- Dependencies
- None
- Difficulty
- Advanced
- Reduced motion
- Respected
- Theme
- Light and dark
- Follows page color-scheme
Triggers3
- Click
- State change
- 3D
Techniques5
- preserve-3d
- 3D transform
- Perspective
- CSS transition
- SVG
Accessibility
Keyboard and screen readers
A role="radiogroup" with an aria-label around native radio inputs sharing one name, so the arrow keys move the choice and Tab enters the group once; :focus-visible on the input outlines its option.
Reduced motion
The window changes at once and the breeze is still.
Use it in anything you build, commercial and client work included. Licence