Combobox
Lazy Level
A cascader with lazy loading: the next level arrives after a delay, and skeletons of exactly the future row height stand in its place.
React + Tailwind, shadcn-compatible: press “Copy for AI” and your Cursor or Claude Code agent installs it with the shadcn CLI.
What you can change
- the panel heading through heading
- the request duration through delay
- the loadingText, countText, paneText, selectedText and noLeafText captions
A link for your AI agent: preview, code and instructions.
Preview

Use it with AI
- 1. Copy the link.
- 2. Write to your agent in your own words and drop the link into the sentence.
- 3. The agent opens the link and installs the component from the registry.
put this on the home page as the hero:
https://vibeui.club/c/cascader-012?lang=en&theme=dark
Not sure where to paste it? Step-by-step guide
Show the full instructions
What the link says, spelled out. Use it when your agent cannot open links — paste this text instead.
Loading…
How to use
<Cascader012 heading="Region and city" delay={700} />A sample call. The agent installs the component itself from the registry via the “Copy for AI” link.
Settings
- Delay, ms
delay· default: 700- Heading
heading· default: Region and city- Accent
accent· default: theme colour- Surface
background· default: theme colour
More in Combobox
FAQ
- How do I add Lazy Level with Cursor or Claude Code?
- Press “Copy for AI” on this page and paste it into your agent's chat. The instruction contains the shadcn CLI install command, the dependencies and what to keep, so the agent installs this exact component instead of recreating a lookalike.
- What does Lazy Level depend on?
- No npm packages beyond React and Tailwind CSS.
- What can I change in Lazy Level?
- Adapt: the panel heading through heading; the request duration through delay; the loadingText, countText, paneText, selectedText and noLeafText captions. Keep as installed: the local --vibeui-cascader-012-* palette — do not swap it for your theme tokens; clearing the timer in the useEffect cleanup: without it fast switching delivers data for a branch nobody is on; the skeleton height matching the future row — otherwise the panel jumps the moment data arrives.
- Is Lazy Level free?
- Yes. The preview is open without an account; with a free account you can copy up to 20 components a month.
For developers
npx shadcn@latest add https://vibeui.club/r/pro/cascader-012.jsonThis command needs a signed link: sign in and open “Component source” below — it issues a working link valid for 30 minutes. All install options
Technical notes
The component is self-contained: one file, no dependencies, its own palette in the local --vibeui-cascader-012-* variables. Client-side: the chosen branch and leaf live in useState, while the loading flag is derived by comparing «what is shown» with «what is chosen» — setState is never called in the body of the effect and there is no extra render. The delay emulates a request through setTimeout inside useEffect, and the timer is cleared in the cleanup: without that, fast switching overwrites itself and the list ends up holding a branch nobody is on any more. The skeleton repeats the height of the future row, so the panel does not jump when the data arrives, and the list itself is marked aria-busy — a screen reader announces the loading instead of staying silent. The theme comes from the surrounding color-scheme through light-dark(): the panel has no surface of its own by default, it sits directly on the page background and darkens with it, the skeleton fill included.
Tags
- cascader
- lazy
- loading
- skeleton
Component source
The same file your agent installs. Here in case you would rather copy it by hand.
Loading…