component-canvas
Skill10k starsChanged 16 days agoMITView on GitHub
Build a full-screen, interactive canvas to explore existing UI components and their variants with pan and zoom.
We split this skill into the rules it gives an agent
25 rules. About 0 are common, 24 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈24
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Do not modify component source, exports, styles, hooks, or behavior to make the canvas work.
- Distinctive: line 13
Do not patch libraries, browser APIs, rendered component DOM, or portal roots.
- Distinctive: line 15
Keep existing access controls.
- Distinctive: line 16
Leave unrelated work alone.
- Distinctive: line 17
Follow any restrictions on commands, browser access, dependencies, and edits.
- Distinctive: line 21
Read the repository conventions, routes, component public APIs, design tokens, and test setup.
- Distinctive: line 27
Add a minimal canvas route or entry point with one group and one component.
- Distinctive: line 28
Add the remaining groups with sample data.
- Distinctive: line 29
Add variant comparisons, then advanced gestures and persistence, one feature at a time.
- Distinctive: line 31
Keep canvas code in one place.
- Distinctive: line 33
Keep layout and camera logic separate from sample data and component source.
- Distinctive: line 38
If the project already supports light and dark themes, add an accessible toggle using its existing theme API.
- Distinctive: line 40
Use wide groups with equal-width example slots filling each row.
- Distinctive: line 48
Do not invent variants or generate every prop combination.
- Distinctive: line 54
Keep the component's own state styling (disabled opacity, checked color).
- Distinctive: line 55
Test hover, focus, and pressed states through real pointer and keyboard input, not added classes.
- Distinctive: line 57
Keep a variant list and coverage tests.
- Distinctive: line 58
If a component cannot show a responsive or visual case, explain the limit.
- Distinctive: line 72
Use providers with test data, mock services, or existing callback props to block live calls and real writes.
- Distinctive: line 74
Never use production credentials or data.
- Distinctive: line 75
If safe isolation is not available, omit the live example and explain why.
- Distinctive: line 80
Start ordinary pan on empty canvas space.
- Very specific: line 81
Do not cancel events broadly, and do not put touch-action: none on interactive content.
- Distinctive: line 99
Run the repository's checks when allowed.
- Distinctive: line 123
Do not describe the implementation as verified or the template as ready unless every check above passed.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Component canvas
Build a canvas that shows the project's existing components as they really behave. The canvas wraps components. It never changes them.
Ground rules
- Do not modify component source, exports, styles, hooks, or behavior to make the canvas work. Components must not import or depend on canvas code.
- Do not patch libraries, browser APIs, rendered component DOM, or portal roots.
- Show only the components the user asked for. Adding components, installing dependencies, changing a component's design, or making the canvas public requires permission first.
- Keep existing access controls.
- Leave unrelated work alone. If removing an earlier canvas integration, undo only its changes to components.
- Follow any restrictions on commands, browser access, dependencies, and edits.
Before building
Read the repository conventions, routes, component public APIs, design tokens, and test setup. Use the existing framework and libraries.
Ask the user only when the answer changes what gets built or touches shared code: which components are in scope, whether a new dependency is acceptable, or whether a live service may be previewed. For everything else, choose a sensible default, state it in the report, and proceed.
Build order
- Add a minimal canvas route or entry point with one group and one component. Confirm it works.
- Add the remaining groups with sample data.
- Add variant comparisons, then advanced gestures and persistence, one feature at a time.
Keep canvas code in one place. Check imports and package exports when moving files. Follow the project's language, validation, and test conventions. Do not add architectural layers or directory names the project does not already use.
Keep layout and camera logic separate from sample data and component source.
Layout
- Fill the viewport with a plain background.
- If the project already supports light and dark themes, add an accessible toggle using its existing theme API. Apply the selected theme to the canvas and native portals. If theme support is absent, omit the toggle. Do not invent themes or change component styles.
- Give every group the same padding, radius, and thin dashed border, subtle but visible in both themes. Use an existing muted color at roughly 25% opacity for borders. Place its plain title 8px above the border, using the muted text color without opacity.
- Use wide groups with equal-width example slots filling each row. Wrap when needed and keep generous horizontal and vertical gaps within and between groups. Spread the layout without enlarging components.
- Groups cannot be dragged. Their positions need not be hard-coded. Measure their actual bounds, including title, border, and padding. Ignore rendering-containment placeholders (empty boxes that reserve space before content renders), since they do not reflect real content size.
- Omit background dots, decorative cards, page menus, instruction banners, selection tools, and block editing. Component cards and menus may appear as examples.
Variants
- Show every supported named variant and useful state within the requested scope. Read the public APIs for styles, text and icon sizes, orientation, placement, alignment, modality, and collapse modes.
- Include useful content and composition examples.
- Do not invent variants or generate every prop combination. List what was omitted and why.
- Compare one prop or feature at a time. Hold everything else constant: same wrapper, same sample data, same text, icons, theme, and spacing.
- Change the style variant only in style comparisons. Size, state, placement, and other comparisons use a single style, usually the default.
Example: in a size comparison, every button reads "Continue" and uses variant="default". Only size changes. The style comparison changes variant and keeps size and text the same.
- Keep the component's own state styling (disabled opacity, checked color). Examples respond to input unless they show a disabled or read-only state.
- Test hover, focus, and pressed states through real pointer and keyboard input, not added classes.
- For portal examples, use the same trigger each time. Do not force several modals open at once.
- Keep a variant list and coverage tests. Use types if the project supports them.
- If a component cannot show a responsive or visual case, explain the limit. Do not change the component to fake it.
Interactions
- Clicks, text selection, typing, button and switch activation, focus, and nested scrolling must keep working.
- Canvas shortcuts (Space, arrows, Escape, native undo) apply to the canvas shell only. They must not take those keys away from preview controls.
- Handle preview navigation in the canvas host. Links to canvas groups move the camera instead of scrolling the page. Define what happens to links that leave the canvas, including links inside portals. Do not change component links or router internals.
- Portals stay in their native roots at screen-space size. Let the library handle positioning and modal focus. Use public container options only when needed. Check positioning and clickable areas under canvas transforms. If they break, report it or propose a separate preview document. Do not patch components.
- The canvas has no undo/redo, editing shortcuts, or history.
Safety for previews
Make each preview safe before it mounts:
- Use providers with test data, mock services, or existing callback props to block live calls and real writes.
- Static demo assets and local fixtures are fine.
- Never use production credentials or data.
- If safe isolation is not available, omit the live example and explain why. A separate document alone does not make a preview safe.
Camera
- Mouse and trackpad: pan, and zoom around the cursor. Touch: pan and pinch.
- Start ordinary pan on empty canvas space. Keep native gestures inside previews and portals.
- Do not cancel events broadly, and do not put
touch-action: noneon interactive content. - Handle pointer count changes, cancellation, lost capture, window blur, and hidden tabs. Release captures and clean up listeners, observers, timers, and animation frames on teardown.
- Apply gesture transforms at most once per animation frame. Avoid alternating layout reads and writes.
- Prevent group overlap when content expands or the viewport resizes. Avoid layout loops and unnecessary movement. Fit after layout settles. Fitting never rearranges groups.
- Move the camera to reveal keyboard focus outside the visible area. Native page scrolling must not move the canvas.
- Keyboard camera navigation works, with visible focus on canvas controls.
- Provide fit-all and reset icon buttons with accessible names. Keep them reachable even when the view is lost.
- Validate camera values and keep them within bounds.
Persistence
- Save only the camera, in a versioned format, under a storage key per project or workspace.
- Handle malformed or oversized data, unavailable storage, and quota errors.
- Migrate known older formats. For unknown formats, use safe defaults and discard old group positions and history.
- Reset restores the camera only. It does not clear preview state or drafts.
Checks
Run the repository's checks when allowed. Then, in the browser, confirm:
- The route mounts, imports and exports resolve, and the console shows no errors.
- Component source is unchanged.
- Listed variants appear, omissions are explained, groups have dashed borders, and non-style comparisons use one style.
- Keyboard camera navigation and visible focus work. Preview controls keep their native shortcuts and gestures.
- Nested scrolling, portal positioning, clickable areas, and modal focus work at several zoom levels and viewport sizes.
- Pan and pinch survive pointer changes and cancellation. Teardown releases resources.
- Groups do not overlap after expansion or resize. Fit works, and offscreen focus reveals correctly.
- Camera persists across reload. A storage failure falls back safely. Reset keeps preview drafts. Drafts need not survive reload unless requested.
- Groups cannot be dragged. The canvas has no undo/redo.
- Previews use safe test data and make no real project or account writes.
A check counts as passing only if it was run. If a check was skipped, say so.
Report
End every build or review with these headings:
- Changed: files and what changed in each. Note any component changes (there should be none).
- Checks run: each check and its result.
- Not working or not tested: known gaps, omitted variants and why, and anything unverified.
- Decisions made: defaults chosen without asking.
Do not describe the implementation as verified or the template as ready unless every check above passed.
Trending
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about ibelick/ui-skills
- @github-trending-js.bsky.social“🎉 Celebrating! 🎉 (500+ new stars) 📦 ibelick / ui-skills ⭐ 5,581 (+536) 🗒 TypeScript Skills for Design …”Bluesky · Jul 21, 2026 · 5 likes
- A Hacker News story“UI-Skills”Hacker News · Jul 15, 2026 · 5 points
- @yug1224.com“デザインエンジニアに必要なスキルを体系的にまとめた学習リソース集らしい UI実装の引き出しを増やしたいときにかなり役立ちそう yug1224 starred ibelick/ui-skills …”Bluesky · Jun 10, 2026 · 3 likes
- @github-trending-js.bsky.social“🔥 Hot Repo! 🔥 (100+ new stars) 📦 ibelick / ui-skills ⭐ 3,919 (+141) 🗒 TypeScript Skills for Design …”Bluesky · Jul 16, 2026 · 2 likes
- @github-trending-js.bsky.social“🚀 Skyrocketing! 🚀 (200+ new stars) 📦 ibelick / ui-skills ⭐ 2,103 (+258) 🗒 TypeScript Skills for Design …”Bluesky · Jun 9, 2026 · 2 likes
The biggest 5 of 43 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 43
Talked about on GitHub, Bluesky, the web and Hacker News (43 times).
On GitHub · 32
- Jul 19, 2026fp-design: add form-error association to §Accessibility checklist — jackypanster/pipeline-frontend1 reaction · 2 comments
- Oct 28, 2026docs: UI/UX 外部專案研究與畫面健檢(派工單 CA) — a91453/railway-game-ios0 reactions
- Oct 18, 2026P1 — Evidence-driven UX/UI audit and marketer-first redesign of weak product states — Rajeev-SG/gog-marketing0 reactions · 1 comment
- Oct 18, 2026docs(engineering): add a guide to designing web-app interfaces, UX evaluation and UX monitoring — a6m1n/my-claude-best0 reactions · 1 comment
- Oct 4, 2026[Candidate] ibelick/ui-skills/skills/fixing-accessibility - fixing-accessibility — ProSkillsMD/proskills0 reactions · 1 comment
27 more on GitHub
- Oct 4, 2026[Candidate] ibelick/ui-skills/skills/create-design-md - create-design-md — ProSkillsMD/proskills0 reactions · 1 comment
- Oct 4, 2026[Candidate] ibelick/ui-skills/skills/baseline-ui - baseline-ui — ProSkillsMD/proskills0 reactions · 1 comment
- Oct 4, 2026claude-code-plugins.github.ibelick.ui-skills: init at 0.2.3 — sudosubin/agents.nix0 reactions
- Sep 29, 2026Add ibelick/ui-skills as a categorized Skill Catalog source — garnser/codex-web0 reactions
- Sep 28, 2026agent-skills.github.ibelick.ui-skills: init at 0.2.3 — sudosubin/agents.nix0 reactions
- Sep 13, 2026[P1 UX HARDENING] Add interaction semantics and adversarial usability testing for frustrating UI failures — loftwah/clubsays it tested it0 reactions
- Aug 1, 2026[chore] fixing-accessibilityスキル導入と既存UIのアクセシビリティ改善 — ebichan88/swiss-stage0 reactions
- Jul 24, 2026feat: add ui-skills-root skill from ibelick/ui-skills — rajumanoj333/Zippy0 reactions · 4 comments
- Jul 19, 2026Github trending [ibelick/ui-skills] AI代理UI技能路由CLI — web1992/github-trending0 reactions
- Jul 17, 2026docs: ibelick/ui-skills のビジュアル解説を追加 — 53able/docs-site0 reactions
- Jul 15, 2026Design restraint pass: less glow, fewer dividers, spacing + de-slop DESIGN.md + improve-ui/emil — thomasluizon/orbit-ui-mobile0 reactions · 14 comments
- Jul 8, 2026Update skill sources from monitor run 28912227495 — aiskillstore/marketplace0 reactions
- Jun 8, 2026docs: add ui-skills visual doc page — 53able/docs-site0 reactions
- Feb 20, 2026fixing-motion-performance — AAswordman/OperitSkillMarket0 reactions
- Feb 20, 2026fixing-metadata — AAswordman/OperitSkillMarket0 reactions
- Feb 20, 2026fixing-accessibility — AAswordman/OperitSkillMarket0 reactions
- Feb 20, 2026baseline-ui — AAswordman/OperitSkillMarket0 reactions
- Feb 17, 2026New skill: /ibelick-fixing-metadata (safe risk) — aiskillstore/marketplace0 reactions
- Feb 16, 2026New skill: /ibelick-fixing-accessibility (safe risk) — aiskillstore/marketplace0 reactions
- Feb 11, 2026New skill: /ibelick-fixing-motion-performance (safe risk) — aiskillstore/marketplace0 reactions
- Feb 10, 2026New skill: /ibelick-baseline-ui (safe risk) — aiskillstore/marketplace0 reactions
- Feb 9, 2026New skill: /ibelick-baseline-ui (safe risk) — aiskillstore/marketplace0 reactions
- Jan 16, 2026Add skill: ibelick/ui-skills — VoltAgent/awesome-agent-skills0 reactions
- Jan 15, 2026[ADD SKILL] — Keith-CY/my-crazy-skills0 reactions · 1 comment
- Jan 15, 2026🤖 Auto-Add Skills with OpenCode: 2 new skill(s) — Keith-CY/my-crazy-skills0 reactions
- Jan 15, 2026[ADD SKILL] — Keith-CY/my-crazy-skills0 reactions · 1 comment
- Jan 11, 2026ui skill — edheltzel/old-atlas0 reactions · 1 comment
On Bluesky · 7
- Jul 21, 2026🎉 Celebrating! 🎉 (500+ new stars) 📦 ibelick / ui-skills ⭐ 5,581 (+536) 🗒 TypeScript Skills for Design Engineers — @github-trending-js.bsky.social5 likes and reposts · 1 reply
- Jun 10, 2026デザインエンジニアに必要なスキルを体系的にまとめた学習リソース集らしい UI実装の引き出しを増やしたいときにかなり役立ちそう yug1224 starred ibelick/ui-skills https://github.com/ibelick/ui-skills — @yug1224.com3 likes and reposts
- Jul 16, 2026🔥 Hot Repo! 🔥 (100+ new stars) 📦 ibelick / ui-skills ⭐ 3,919 (+141) 🗒 TypeScript Skills for Design Engineers — @github-trending-js.bsky.social2 likes and reposts
- Jun 9, 2026🚀 Skyrocketing! 🚀 (200+ new stars) 📦 ibelick / ui-skills ⭐ 2,103 (+258) 🗒 TypeScript Skills for Design Engineers — @github-trending-js.bsky.social2 likes and reposts · 1 reply
- Oct 9, 2026📦 ibelick / ui-skills ⭐ 9,543 (+47) 🗒 TypeScript Skills for Design Engineers — @github-trending-js.bsky.social1 likes and repost
2 more on Bluesky
- Aug 23, 2026🔥 Hot Repo! 🔥 (100+ new stars) 📦 ibelick / ui-skills ⭐ 7,485 (+110) 🗒 TypeScript Skills for Design Engineers — @github-trending-js.bsky.social1 likes and repost
- Jun 10, 2026https://github.com/ibelick/ui-skills — @tom-doerr.bsky.social1 likes and repost
On the web · 3
- Oct 29, 2026baseline-ui | Skills Marketplace — lobehub.com
- Oct 17, 2026improve-ui — AI agent skill — google.com
- Sep 27, 2026UI Skills by ibelick: Design Skills for Code Agents — google.com
On Hacker News · 1
- Jul 15, 2026UI-Skills5 points
In this repository9 other files it gives its agents.
- AGENTS.mdAGENTS.md
- baseline-uiSkill
- create-canvasSkill
- create-design-mdSkill
- fixing-accessibilitySkill
- fixing-metadataSkill
- fixing-motion-performanceSkill
- improve-uiSkill
- ui-skills-rootSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

