pick-ui-library
Use only when explicitly invoked as /pick-ui-library or by name, never through automatic task matching. Recommends one maintained library for a React or web frontend task: primitives, toasts, charts, drag and drop, virtualized lists, animation, state or styling helpers. React and web only, not Quickshell, QML, Hyprland or terminal UI. Motion method is animate, CSS is css-ui, React behaviour is react-ui.
- License 许可
- GPL-3.0
- 最近更新
- 2026-11-13
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- pick-ui-library
- description
- Use only when explicitly invoked as /pick-ui-library or by name, never through automatic task matching. Recommends one maintained library for a React or web frontend task: primitives, toasts, charts, drag and drop, virtualized lists, animation, state or styling helpers. React and web only, not Quickshell, QML, Hyprland or terminal UI. Motion method is animate, CSS is css-ui, React behaviour is react-ui.
- disable-model-invocation
- true
03 SKILL.md 正文
Picking The Right Library
A lookup for React and web work. Given a task ("I need toasts"), match it to the list and recommend one library. The picks are deliberate and taste-driven: do not substitute others unless the user asks or the task is not covered. Hand-rolling what a maintained library does is the failure this skill prevents.
How to use it
- Identify the task, not the library the user named. "A dropdown" is a UI-primitives task even if they asked about something else.
- Check
package.jsonfirst. A listed library already installed is used. A competitor (react-window instead of Virtuoso) is flagged but not swapped unless asked. - Recommend one library, say what it is for in one sentence, and install and wire it when that is part of the request. A clear answer is not a menu.
- A task the list does not cover is said so explicitly; recommend from your own knowledge and make clear you left the list.
The list
| Task | Library |
|---|---|
| Unstyled accessible primitives (dialogs, popovers, menus, selects) | base-ui |
| Command menu (cmd-K palette) | cmdk |
| Toasts and notifications | Sonner |
| One-time password and verification code input | input-otp |
| Control panels and tweakable GUIs | Leva, alternative dialkit |
| General animation (springs, layout, enter and exit) | motion |
| Animated numbers (counters, prices, stats) | NumberFlow |
| Animated text | torph |
| 3D globes | Cobe |
| Dynamic OG images (HTML and CSS to SVG or PNG) | Satori |
| Syntax highlighting | shiki |
| Live streaming charts that scroll with time | Liveline |
| Every other chart | recharts |
| Drag and drop | dnd kit |
| Long lists and large tables | Virtuoso |
| State management | zustand |
Conditional className strings |
clsx |
| Typed variant styling for Tailwind | cva |
| Theme switching without a flash | next-themes |
Reach for motion only for springs, layout and exit animations or gesture-driven values; a hover or fade is a plain CSS transition. clsx is for ad-hoc conditions, cva when a component has real variants (size, intent, state); they compose.
Mismatches to catch
- Toasts built by hand or with a modal library: Sonner.
- A
divdropdown or dialog with manual focus handling: base-ui, which brings focus trapping and dismissal. - A number animated by re-rendering text: NumberFlow.
- A 1,000-row list rendered directly: Virtuoso before pagination hacks.
- Shared state passed as a web of props: zustand.
- Template-literal className ternaries three deep: clsx, or cva when variant-shaped.
Say it in the reply
The one library, the one-sentence reason, what package.json already held, and whether the task
was outside the list.
Source: emilkowalski/skills pick-ui-library (MIT).
04 同仓库更多 Skills
worktrunk
Use when working with git worktrees or wt (worktrunk): creating, switching, merging or removing a branch workspace, configuring wt (project or personal config, workflow hooks around switch, commit and merge, commit-message generation, hook approvals), or a wt command that failed. Triggers: make a worktree for this branch, wt merge, wt remove, configure wt, .config/wt.toml, run tests before merge, install deps when a worktree is created, wt hook, wt switch does not cd, nastav wt, wt nefunguje.
web-ladder
Use when a task needs something the internet holds: look something up, search the web, find which page answers a question, read a page, check a library's current docs, a page that needs a browser or shows a captcha. Runs one research loop: searxng search, keywords, cases, search again up to three times, Context7 for a library, Tavily when the keywords will not come, one page in a browser, the person on a wall. Triggers: look this up, search the web, find out online, read this page, check the docs, the page is blocked, captcha, najdi na webu, otevri tu stranku. A multi-round question goes to the qsm-web:web-research agent; one tool's commands are its own skill (searxng, browserbox, opensrc).
searxng
Use when running a web search through the person's own SearXNG instance with qsm-web searxng: choosing a search profile or engines, the instance, time range or language, reading its JSON, a suspended engine. Triggers: search with searxng, qsm-web searxng, search profile, niche search, academic search, IT search, vyhledavaci profil, searxng is down, which engines. The research loop around it is the web-ladder skill.
opensrc
Use when the source code of an open-source library or repository is needed on disk to read: the docs are silent, the behaviour must be checked in code, the version the project pins. Runs qsm-web opensrc get with a package spec or a repository address. Triggers: get the source of this package, clone this library, read the library's code, qsm-web opensrc, stahni zdrojak knihovny. Library docs are the Context7 skill; the research loop is the web-ladder skill.
browserbox
Use when one page needs a real browser through qsm-web browserbox: content built by script, a page that blocks plain fetching, a captcha to solve or hand to the person, a scripted sequence of clicks, a login the person is present for. Triggers: open it in a browser, the page is empty without JavaScript, captcha, take over the browser, run these steps on the page, log in to this site, browserbox. When to reach for a browser at all is the web-ladder skill.
usage
Use when the user wants a review of how they use Claude Code, or setup hands over after a first install: review my Claude Code usage, audit my setup, what does my setup cost, where did my tokens go, clean up my Claude Code, usage report, zkontroluj moje pouzivani. One walkthrough of four stages (machine, work, habits, extensions), questions after each, then one plan. A question about one topic (which hooks are slow) goes to that topic's skill; this session's tokens alone is `/qsm-usage`.