Connect Component To Figma
dequelabs/cauldron
Add a Figma Code Connect (.figma.tsx) file for a Cauldron React component.
A skill your agent uses when building UI with the ranui web-component library (elements like <r-button, <r-modal, <r-select, <r-input, <r-message) or its fluent DOM builder (ranui/builder —…
$ npx skills add chaxus/ran --skill ranui -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install chaxus/ran ranui --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/chaxus/ran.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/ranui/skills/ranui .claude/skills/ranui && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ranui" agent skill from https://github.com/chaxus/ran/tree/main/plugins/ranui/skills/ranui into .claude/skills/ranui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ranui", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/chaxus/ran/tree/main/plugins/ranui/skills/ranuiType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add chaxus/ran --skill ranui -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install chaxus/ran ranui --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/chaxus/ran.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/ranui/skills/ranui .agents/skills/ranui && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ranui" agent skill from https://github.com/chaxus/ran/tree/main/plugins/ranui/skills/ranui into .agents/skills/ranui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ranui", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add chaxus/ran --skill ranui -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install chaxus/ran ranui --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/chaxus/ran.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/ranui/skills/ranui .cursor/skills/ranui && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ranui" agent skill from https://github.com/chaxus/ran/tree/main/plugins/ranui/skills/ranui into .cursor/skills/ranui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ranui", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/chaxus/ran.git --path plugins/ranui/skills/ranui--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add chaxus/ran --skill ranui -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install chaxus/ran ranui --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/chaxus/ran.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/ranui/skills/ranui .gemini/skills/ranui && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ranui" agent skill from https://github.com/chaxus/ran/tree/main/plugins/ranui/skills/ranui into .gemini/skills/ranui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ranui", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install chaxus/ran ranuiInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add chaxus/ran --skill ranui -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/chaxus/ran.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/ranui/skills/ranui .github/skills/ranui && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ranui" agent skill from https://github.com/chaxus/ran/tree/main/plugins/ranui/skills/ranui into .github/skills/ranui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ranui", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add chaxus/ran --skill ranui -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install chaxus/ran ranui --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/chaxus/ran.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/ranui/skills/ranui .opencode/skills/ranui && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ranui" agent skill from https://github.com/chaxus/ran/tree/main/plugins/ranui/skills/ranui into .opencode/skills/ranui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ranui", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ranuiA skill your agent uses when building UI with the ranui web-component library (elements like <r-button, <r-modal, <r-select, <r-input, <r-message) or its fluent DOM builder (ranui/builder —…
Ranui is an agent skill from chaxus/ran. Use when building UI with the ranui web-component library (elements like <r-button, <r-modal, <r-select, <r-input, <r-message) or its fluent DOM builder (ranui/builder — Div/View/Span/signal/createEffect/EventManager). Covers the import map, the full element inventory, conventions, accessibility, and where the authoritative API reference lives.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design, covering Design systems and Accessibility. It works with TypeScript. The repository describes itself as: ranui — a Web Components UI library — plus ranuts utilities. Hand-built frontend infrastructure. The licence is MIT.
Read from SKILL.md and the folder at commit a73eadb. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ranui loads about 2k tokens when it runs. Until then it costs about 92 tokens; SKILL.md has 736 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from chaxus/ran at commit a73eadb, republished under its MIT licence (© chaxus). 736 words, ~1,982 tokens.
.claude/skills/ranui/SKILL.md (or your agent's skills folder).Framework-agnostic Web Components (Custom Elements + Shadow DOM). Works in React,
Vue, Svelte, Solid, or plain JS. Each element is <r-*> and is used like native HTML.
Styling crosses the shadow boundary via CSS variables, ::part(), or the
per-instance sheet attribute (escape hatch).
When ranui is installed in a project, its docs ship inside the package:
node_modules/ranui/docs/COMPONENTS.md — generated per-element API: every
element's attributes, typed properties, events (with detail shape), slots, and
::part() names. This is the source of truth for props/events. Regenerated in the
source repo via npm run doc:api.node_modules/ranui/docs/DESIGN.md — design system rules (color states,
spacing, motion, accessibility §7, pre-ship checklist).node_modules/ranui/docs/style-tokens-public.md — the CSS variable (theming
token) catalog.In the source repo (packages/ranui) there is also a deep CLAUDE.md (architecture,
builder internals, LESS conventions, testing) — not shipped in the npm package.
Per-component, tree-shakeable side-effect imports register the custom element:
import 'ranui/button'; // then use <r-button>
import 'ranui/modal';
import 'ranui/select';
import 'ranui/input';
import 'ranui/message'; // also exposes an imperative message API
import 'ranui/checkbox';Available element subpaths: button icon image input message skeleton tab tabpane radar modal select progress player popover dropdown content loading colorpicker math checkbox card router route link.
The fluent DOM builder + reactivity (no custom-element registration):
import { Div, View, Span, Label, ButtonBuilder, signal, createEffect, EventManager, Style } from 'ranui/builder';SSR helpers: import { defineSSR } from 'ranui/ssr-registry' (source) / ranui/ssr,
ranui/ssr-stream. Types: ranui/typings.
r-input, r-checkbox, r-select (+ r-option, r-dropdown-item),
r-colorpicker. These are form-associated custom elements
(attachInternals() + ElementInternals.setFormValue()) — their values are
collected by new FormData(form) when they're real descendants of a native
<form>, same as any native field — no wrapper component required. Use
serializeForm(form) (from ranui) to turn a submit into a plain object.r-message (toasts), r-modal, r-popover, r-loading,
r-skeleton, r-progress.r-card, r-section, r-tab/r-tabs, r-icon, r-img,
r-link, r-math, r-player, r-radar.r-router, r-route, r-link (history/hash SPA routing).r-conversation — renders an append-only event log. Register
each kind of content as a view (match/start/update fold state, mount/patch
render it) before the first push; it throws afterwards. Bottom-follow is on by
default and does not fight the reader; pinnedchange drives a "jump to latest" button.
Use <r-markdown> as the prose row — its mode="streaming" already closes half-streamed
markdown. Projection and cadence: ranuts/conversation.r-tool-card — set call / result / status from a declared
intent (generic / terminal / diff), never markup. Views must be pure functions
of the call's arguments, because they are recomputed on replay; an unrecognised card
degrades to generic instead of throwing.r-reasoning — expands while streaming is set, collapses when
it clears, and stops following once the reader opens or closes it themselves
(setting open from script counts). Feed content from ranuts/stream's
reasoning-delta blocks.r-attachments — holds the files staged with a message, previews them,
validates, and owns its object URLs (revoked on detach/clear/disconnect). It does not
collect files: call add(files) from paste, drop or a picker. Removal is detach(id),
because remove() already means "take yourself out of the document". Rejections are
reported, never silent.r-voice-button — a microphone button over ranuts' createSpeechRecognizer.
It reports the whole capture so far on each voiceresult (interim results are
revised), so remember the text already in the box at voicestart and concatenate once.
It never sends, hides itself where the API is absent, and only denied/failed are
worth surfacing — noSpeech/aborted are routine.ranui/builder)Div()/View('r-x')/Span()/... — chainable: .class(), .attr(), .part(),
.role(), .text(), .children(...), .on(event, handler), .build().signal(initial) → [getter, setter]; createEffect(fn) re-runs fn when the
signals it reads change (returns a disposer).EventManager — .on(target, type, handler) with .abort() to remove all
listeners at once (use in disconnectedCallback).Declarative — use elements like native HTML (after importing the subpath):
<r-select value="a">
<r-option value="a">Apple</r-option>
<r-option value="b">Banana</r-option>
</r-select>
<r-input label="Email" name="email"></r-input>Imperative — create, configure, and wire events (event detail shapes are in
COMPONENTS.md, e.g. r-select change → { value, label }):
import 'ranui/select';
import message from 'ranui/message';
const sel = document.createElement('r-select');
sel.setAttribute('value', 'a');
sel.addEventListener('change', (e) => console.log((e as CustomEvent).detail.value));
document.body.append(sel);
message.success('Saved'); // imperative toast API: info | success | warning | error | toastBuilder + reactivity — compose DOM with signals (great for framework-free views):
import { Div, ButtonBuilder, signal, createEffect } from 'ranui/builder';
const [count, setCount] = signal(0);
const label = Div().build();
createEffect(() => { label.textContent = `Count: ${count()}`; }); // re-runs on change
const btn = ButtonBuilder().text('inc').on('click', () => setCount(count() + 1)).build();
document.body.append(label, btn);r-message toasts announce via an aria-live region (errors = assertive alert).r-checkbox/r-input/r-select are form-associated and labelled; checkbox is
keyboard-toggleable (Space/Enter) with role=checkbox/aria-checked.r-tabs follows the WAI-ARIA tabs pattern (roles + roving tabindex + arrow keys).r-colorpicker sliders are role=slider with arrow-key adjustment; the swatch
opens via Enter/Space.prefers-reduced-motion.For custom UI you build, follow DESIGN.md §7 (keyboard nav, visible focus, ARIA).
defineSSR('r-name', Component), not
customElements.define directly (keeps SSR working).<label for> / aria-labelledby do NOT cross
into a component's shadow root — use the component's own label attribute/slot.ranui/button), never ranui/dist/... or internal @/....© chaxus, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/ranui/skills/ranui of chaxus/ran.
Open the folder on GitHubat commit a73eadb
Ranui next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ranui this skillchaxus/ran | 271 | — | ~2k | Automated safety check: Pass | MIT | |
| Connect Component To Figmadequelabs/cauldron | 129 | — | ~2k | Automated safety check: Pass | MPL-2.0 | |
| Monochromevaneenige/monochrome-ui | 132 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Components BuildAsymmetric-al/core | 381 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Ss Learnbitjaru/styleseed | 972 | — | ~1.3k | Automated safety check: Pass | MIT | |
| UI/UX Design System AdvisorGalaxy-Dawn/claude-scholar | 5.7k | 1 repos | ~1.1k | Automated safety check: Pass | MIT |
dequelabs/cauldron
Add a Figma Code Connect (.figma.tsx) file for a Cauldron React component.
vaneenige/monochrome-ui
Build accessible UI with monochrome, the framework-agnostic UI library for agents.
Asymmetric-al/core
Build modern, composable, and accessible React UI components following the components.build specification.
bitjaru/styleseed
Capture a human-approved UI design lesson as a privacy-minimized local StyleSeed candidate, review it, and prepare an opt-in share package without transmitting project code, prompts, screenshots, or…
Galaxy-Dawn/claude-scholar
Turns a vague UI request into a concrete design system with style, palette, typography and layout guidance from a search script, plus stack-specific implementation advice.
lobehub/lobe-ui
Build UI with the LobeHub design ecosystem — @lobehub/ui (plus its base-ui, chat, mobile, awesome, brand, mdx, i18n namespaces), @lobehub/icons, @lobehub/charts, @lobehub/fluent-emoji and…
chaxus/ran
A skill your agent uses when working with the ranuts utility library — DOM/BOM/string/object/number/color/time helpers and reactivity from ranuts/utils (e.g.
chaxus/ran
A skill your agent uses when designing, reviewing, or improving web UI visual quality, especially when a developer-built interface feels cluttered, flat, generic, poorly spaced, weakly hierarchical…
Works with
Categories
A skill your agent uses when building UI with the ranui web-component library (elements like <r-button, <r-modal, <r-select, <r-input, <r-message) or its fluent DOM builder (ranui/builder —…. Ranui is an agent skill from chaxus/ran. Use when building UI with the ranui web-component library (elements like <r-button, <r-modal, <r-select, <r-input, <r-message) or its fluent DOM builder (ranui/builder — Div/View/Span/signal/createEffect/EventManager).
Ranui fits situations like: building UI with the ranui web-component library (elements like <r-button; its fluent DOM builder (ranui/builder — Div/View/Span/signal/createEffect/EventManager).
Run `npx skills add chaxus/ran --skill ranui -a claude-code`. Or copy the skill folder (plugins/ranui/skills/ranui in chaxus/ran) into .claude/skills/ranui in your project. Claude Code loads it when a task matches its description.
Run `npx skills add chaxus/ran --skill ranui -a codex`. Or copy the skill folder (plugins/ranui/skills/ranui in chaxus/ran) into .agents/skills/ranui in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add chaxus/ran --skill ranui -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ranui, .gemini/skills/ranui, .github/skills/ranui and .opencode/skills/ranui in your project.
Going by SKILL.md and its folder, Ranui needs the command-line tools its instructions call (npm).
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Ranui is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ranui: Connect Component To Figma (dequelabs/cauldron, 129 stars), Monochrome (vaneenige/monochrome-ui, 132 stars), Components Build (Asymmetric-al/core, 381 stars) and Ss Learn (bitjaru/styleseed, 972 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
chaxus (a GitHub user) maintains it in chaxus/ran, which has 271 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 7, 2026.
Source: chaxus/ran on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.