Creative Tim UI Blocks
creativetimofficial/ui
Helps install, generate and review Creative Tim UI blocks: shadcn/ui-based React and Tailwind sections that follow a restrained, production-minded design philosophy.
Agent-native design system infrastructure. An agent skill from Railly/tinte.
$ npx skills add Railly/tinte --skill tinte -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Railly/tinte tinte --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/Railly/tinte.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/tinte .claude/skills/tinte && 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 "tinte" agent skill from https://github.com/Railly/tinte/tree/main/skills/tinte into .claude/skills/tinte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tinte", 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/Railly/tinte/tree/main/skills/tinteType 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 Railly/tinte --skill tinte -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Railly/tinte tinte --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Railly/tinte.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/tinte .agents/skills/tinte && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "tinte" agent skill from https://github.com/Railly/tinte/tree/main/skills/tinte into .agents/skills/tinte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tinte", 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 Railly/tinte --skill tinte -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Railly/tinte tinte --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Railly/tinte.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/tinte .cursor/skills/tinte && 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 "tinte" agent skill from https://github.com/Railly/tinte/tree/main/skills/tinte into .cursor/skills/tinte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tinte", 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/Railly/tinte.git --path skills/tinte--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 Railly/tinte --skill tinte -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Railly/tinte tinte --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Railly/tinte.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/tinte .gemini/skills/tinte && 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 "tinte" agent skill from https://github.com/Railly/tinte/tree/main/skills/tinte into .gemini/skills/tinte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tinte", 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 Railly/tinte tinteInstalls 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 Railly/tinte --skill tinte -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Railly/tinte.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/tinte .github/skills/tinte && 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 "tinte" agent skill from https://github.com/Railly/tinte/tree/main/skills/tinte into .github/skills/tinte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tinte", 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 Railly/tinte --skill tinte -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Railly/tinte tinte --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Railly/tinte.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/tinte .opencode/skills/tinte && 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 "tinte" agent skill from https://github.com/Railly/tinte/tree/main/skills/tinte into .opencode/skills/tinte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tinte", 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.
tinteAgent-native design system infrastructure. An agent skill from Railly/tinte.
Tinte is an agent skill from Railly/tinte. Agent-native design system infrastructure. Browse, install, and preview design systems from tinte.dev. Use when user asks about themes, design systems, presets, color palettes, or says "tinte". Works with shadcn/cli v4 presets and registries.
Its SKILL.md is about 1.6k 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. It works with shadcn/ui, Visual Studio Code and Next.js. The repository describes itself as: Compile your design system into an Agent Plugin. Extract an identity from any reference, emit SKILL.md + tokens.css, lint what bypasses your tokens. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7905be3. 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:
npxcurljqFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
tinte.devray.tinte.devFrom 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.
Tinte loads about 1.6k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 319 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 Railly/tinte at commit 7905be3, republished under its MIT licence (© Railly). 319 words, ~1,597 tokens.
.claude/skills/tinte/SKILL.md (or your agent's skills folder).Generate, compile, install, and preview design systems from one source of truth.
Tinte maintains a theme graph of 13 semantic OKLCH color tokens that compiles to shadcn/ui presets, VS Code themes, terminal configs, and 19+ other formats.
Every public Tinte theme is installable as a shadcn registry:base item.
npx shadcn@latest add https://tinte.dev/api/preset/{slug}npx shadcn@latest add https://tinte.dev/api/preset/{slug}/font?variable=sans
npx shadcn@latest add https://tinte.dev/api/preset/{slug}/font?variable=monoGET https://tinte.dev/api/preset/{slug}?type=packResponse:
{
"base": { "$schema": "...", "name": "...", "type": "registry:base", "cssVars": { "light": {...}, "dark": {...} } },
"fonts": [{ "$schema": "...", "name": "font-inter", "type": "registry:font", "font": {...} }],
"slug": "theme-slug",
"install": {
"base": "npx shadcn@latest add https://tinte.dev/api/preset/{slug}",
"fonts": ["npx shadcn@latest add https://tinte.dev/r/font/inter?variable=sans"]
}
}GET https://tinte.dev/api/themes/public?search={query}&limit=20&page=1Optional filters: ?vendor=tinte|tweakcn|rayso
Response includes themes[] with slug, name, concept, and color tokens.
GET https://tinte.dev/api/themes/slug/{slug}Returns full theme data including light/dark color blocks and overrides.
These routes serve raw registry:base and registry:font items:
GET https://tinte.dev/r/{slug} # registry:base or registry:theme
GET https://tinte.dev/r/{slug}?type=registry:base # explicit base type
GET https://tinte.dev/r/font/{family}?variable=sans # registry:fontUpload a screenshot or design image to extract a color theme:
curl -s -X POST https://ray.tinte.dev/api/v1/extract-theme \
-F "image=@design.png" | jqAI mode for higher fidelity:
curl -s -X POST "https://ray.tinte.dev/api/v1/extract-theme?mode=ai&model=anthropic/claude-haiku-4.5" \
-F "image=@design.png" | jqResponse:
{
"dark": { "bg": "#0a0a12", "bg_2": "#0f0f18", "ui": "...", "tx": "...", "pr": "...", "sc": "...", "ac_1": "...", "ac_2": "...", "ac_3": "..." },
"light": { "bg": "#fafafa", "bg_2": "#f0f0f0", ... },
"name": "Extracted Theme Name",
"gradient": "linear-gradient(...)",
"swatches": { "vibrant": { "hex": "#e84393" }, ... }
}Generate a code screenshot with any Tinte theme applied:
curl -s -X POST https://ray.tinte.dev/api/v1/screenshot \
-H 'Content-Type: application/json' \
-d '{
"code": "const x = 42;",
"language": "typescript",
"theme": "{slug}",
"title": "preview.ts"
}' -o preview.png1. GET https://tinte.dev/api/themes/public?search=minimal → pick theme
2. GET https://tinte.dev/api/preset/{slug}?type=pack → get install commands
3. npx shadcn@latest add https://tinte.dev/api/preset/{slug} → install base
4. npx shadcn@latest add https://tinte.dev/api/preset/{slug}/font?variable=sans → install fonts
5. npx shadcn info --json → verify1. POST ray.tinte.dev/api/v1/extract-theme -F image=@screenshot.png → get TinteBlock
2. Use extracted colors to search for matching themes or create new one
3. Install via preset API1. npx shadcn info --json → read current project config
2. GET https://tinte.dev/api/themes/public?search=dark+minimal → browse alternatives
3. npx shadcn@latest add https://tinte.dev/api/preset/{new-slug} → overwrite with new theme1. POST ray.tinte.dev/api/v1/screenshot with theme slug → get PNG
2. Open screenshot to verify visual resultTinte uses 13 semantic OKLCH tokens per mode (light/dark):
| Token | Role |
|---|---|
bg | Background |
bg_2 | Elevated surface |
ui | Border, separator |
ui_2 | Subtle border |
ui_3 | Hover state |
tx | Primary text |
tx_2 | Secondary text |
tx_3 | Muted text |
pr | Primary accent |
sc | Secondary accent |
ac_1 | Accent 1 |
ac_2 | Accent 2 |
ac_3 | Accent 3 |
These compile to 30+ shadcn CSS variables (background, foreground, card, primary, secondary, muted, accent, destructive, chart-1..5, sidebar-*, etc.) with OKLCH color space formatting.
tinte compiles a project identity into an installable Agent Plugin (agent-plugins.org 1.0.0) so coding agents generate on-brand UI instead of default slop.
tinte build --plugin --config tinte.config.json --out ./acme-plugin
# emits: plugin.json + skills/<name>-design/SKILL.md (composition law + identity)
# + references/tokens.css (OKLCH token API from the theme graph)
tinte lint src/ # scan for hex/rgb/hsl literals and Tailwind palette classes
tinte lint --json # machine-readable; exit 1 on violations (CI gate)The CLI never guesses colors. The agent looks, the CLI does the math:
tinte from --emit-script > extract.js
agent-browser open https://example.com && agent-browser wait --load networkidle
agent-browser eval "$(cat extract.js)" > candidates.json
# The agent (vision) reviews a screenshot to assign semantic roles if needed.
tinte from --normalize candidates.json --name example --out draft-identity.json
# Draft only: fill voiceWords/dosDonts by hand, then validate strictly via tinte build.--normalize detects primaryStyle: "inverted" (sites whose CTA is a foreground/background
pair, not a hue) and normalizes pill radii. Tokens that need app states (destructive, ring,
input) are reported as warnings, never invented.
© Railly, 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 skills/tinte of Railly/tinte.
Open the folder on GitHubat commit 7905be3
Tinte 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 |
|---|---|---|---|---|---|---|
| Tinte this skillRailly/tinte | 624 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Creative Tim UI Blockscreativetimofficial/ui | 12k | — | ~2.1k | Automated safety check: Notes | MIT | |
| Cosscrafter-station/petdex | 4.2k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Ss Learnbitjaru/styleseed | 970 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Nextjs Nextra Starter Distillpdsuwwz/nextjs-nextra-starter | 318 | — | ~596 | Automated safety check: Pass | MIT | |
| 8sl Consume Registry8starlabs/ui | 140 | — | ~781 | Automated safety check: Pass | MIT |
creativetimofficial/ui
Helps install, generate and review Creative Tim UI blocks: shadcn/ui-based React and Tailwind sections that follow a restrained, production-minded design philosophy.
crafter-station/petdex
Helps implement coss UI components correctly. An agent skill from crafter-station/petdex.
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…
pdsuwwz/nextjs-nextra-starter
Distill and apply this repository's Next.js Nextra starter architecture, implemented features, extension points, and migration patterns.
8starlabs/ui
A skill your agent uses when users want to install, integrate, or adapt 8StarLabs UI components in a Next.js plus shadcn project.
bitjaru/styleseed
Build, improve, or inspect UI with StyleSeed. An agent skill from bitjaru/styleseed.
Railly/tinte
Generate code screenshots via ray.tinte.dev API. An agent skill from Railly/tinte.
Railly/tinte
Design or substantially improve a landing page for tinte. An agent skill from Railly/tinte.
Works with
Categories
Agent-native design system infrastructure. An agent skill from Railly/tinte. Tinte is an agent skill from Railly/tinte. Agent-native design system infrastructure.
Tinte fits situations like: user asks about themes; tasks that involve Design systems.
Run `npx skills add Railly/tinte --skill tinte -a claude-code`. Or copy the skill folder (skills/tinte in Railly/tinte) into .claude/skills/tinte in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Railly/tinte --skill tinte -a codex`. Or copy the skill folder (skills/tinte in Railly/tinte) into .agents/skills/tinte 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 Railly/tinte --skill tinte -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tinte, .gemini/skills/tinte, .github/skills/tinte and .opencode/skills/tinte in your project.
Going by SKILL.md and its folder, Tinte needs the command-line tools its instructions call (npx, curl and jq). Our summary lists: Node.js.
SKILL.md names 2 domains. In commands or code: tinte.dev and ray.tinte.dev; the agent is likely to contact these when it follows the instructions. 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.
Tinte is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.4k 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 Tinte: Creative Tim UI Blocks (creativetimofficial/ui, 12k stars), Coss (crafter-station/petdex, 4.2k stars), Ss Learn (bitjaru/styleseed, 970 stars) and Nextjs Nextra Starter Distill (pdsuwwz/nextjs-nextra-starter, 318 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Railly (a GitHub user) maintains it in Railly/tinte, which has 624 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on August 8, 2026.
Source: Railly/tinte on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.