Frontend Guide
lightly-ai/lightly-studio
Read before writing or reviewing any frontend code in lightlystudioview - Svelte, TypeScript, or SvelteKit files.
Manages shadcn-svelte components and projects — adding, updating, fixing, debugging, styling, and composing UI.
$ npx skills add exceptionless/Exceptionless --skill shadcn-svelte -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install exceptionless/Exceptionless shadcn-svelte --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/exceptionless/Exceptionless.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/shadcn-svelte .claude/skills/shadcn-svelte && 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 "shadcn-svelte" agent skill from https://github.com/exceptionless/Exceptionless/tree/main/.agents/skills/shadcn-svelte into .claude/skills/shadcn-svelte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "shadcn-svelte", 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/exceptionless/Exceptionless/tree/main/.agents/skills/shadcn-svelteType 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 exceptionless/Exceptionless --skill shadcn-svelte -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install exceptionless/Exceptionless shadcn-svelte --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/exceptionless/Exceptionless.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/shadcn-svelte .agents/skills/shadcn-svelte && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "shadcn-svelte" agent skill from https://github.com/exceptionless/Exceptionless/tree/main/.agents/skills/shadcn-svelte into .agents/skills/shadcn-svelte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "shadcn-svelte", 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 exceptionless/Exceptionless --skill shadcn-svelte -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install exceptionless/Exceptionless shadcn-svelte --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/exceptionless/Exceptionless.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/shadcn-svelte .cursor/skills/shadcn-svelte && 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 "shadcn-svelte" agent skill from https://github.com/exceptionless/Exceptionless/tree/main/.agents/skills/shadcn-svelte into .cursor/skills/shadcn-svelte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "shadcn-svelte", 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/exceptionless/Exceptionless.git --path .agents/skills/shadcn-svelte--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 exceptionless/Exceptionless --skill shadcn-svelte -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install exceptionless/Exceptionless shadcn-svelte --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/exceptionless/Exceptionless.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/shadcn-svelte .gemini/skills/shadcn-svelte && 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 "shadcn-svelte" agent skill from https://github.com/exceptionless/Exceptionless/tree/main/.agents/skills/shadcn-svelte into .gemini/skills/shadcn-svelte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "shadcn-svelte", 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 exceptionless/Exceptionless shadcn-svelteInstalls 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 exceptionless/Exceptionless --skill shadcn-svelte -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/exceptionless/Exceptionless.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/shadcn-svelte .github/skills/shadcn-svelte && 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 "shadcn-svelte" agent skill from https://github.com/exceptionless/Exceptionless/tree/main/.agents/skills/shadcn-svelte into .github/skills/shadcn-svelte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "shadcn-svelte", 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 exceptionless/Exceptionless --skill shadcn-svelte -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install exceptionless/Exceptionless shadcn-svelte --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/exceptionless/Exceptionless.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/shadcn-svelte .opencode/skills/shadcn-svelte && 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 "shadcn-svelte" agent skill from https://github.com/exceptionless/Exceptionless/tree/main/.agents/skills/shadcn-svelte into .opencode/skills/shadcn-svelte/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "shadcn-svelte", 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.
shadcn-svelteManages shadcn-svelte components and projects — adding, updating, fixing, debugging, styling, and composing UI.
Shadcn Svelte is an agent skill from exceptionless/Exceptionless. Manages shadcn-svelte components and projects — adding, updating, fixing, debugging, styling, and composing UI. Provides project context, component docs, and usage examples. Applies when working with shadcn-svelte, the CLI, design-system presets, or any project with a components.json file. Also triggers for "shadcn-svelte init", "add component", or registry URLs.
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including assets (for example `agents/openai.yml`, `cli.md` and `customization.md`).
It sits in Frontend & Design, covering Design systems. It works with Svelte and shadcn/ui. The repository describes itself as: Exceptionless application. The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 300e8ca. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(npx shadcn-svelte@latest *)Bash(pnpm dlx shadcn-svelte@latest *)Bash(bunx --bun shadcn-svelte@latest *)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxpnpmbunxgitFrom 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:
shadcn-svelte.comFrom 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.
Shadcn Svelte loads about 3.6k tokens when it runs. Until then it costs about 95 tokens; SKILL.md has 1,218 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 exceptionless/Exceptionless at commit 300e8ca, republished under its Apache-2.0 licence (© exceptionless). 1,218 words, ~3,614 tokens.
.claude/skills/shadcn-svelte/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.A framework for building UI, components, and design systems for Svelte. Components are added as source to the user's project via the CLI.
IMPORTANT: Run all CLI commands using the project's package runner:
npx shadcn-svelte@latest,pnpm dlx shadcn-svelte@latest, orbunx --bun shadcn-svelte@latest— based on the project's package manager. Examples below usenpx shadcn-svelte@latestbut substitute the correct runner for the project.
Read components.json at the project root and, when you need the live file layout, list the directory given by the aliases.ui path (resolved with the same rules as the CLI).
Each component lives in its own folder with an index.ts barrel. Match the installation docs:
import * as Dialog from "$lib/components/ui/dialog" then Dialog.Content, Dialog.Title, Card.Root, Card.Header, etc. — whatever the barrel exports (short names and/or Root as … aliases).import { Button } from "$lib/components/ui/button" and <Button>, not import * as Button + Button.Root. Same pattern for { Input }, { Badge }, { Spinner }, { Checkbox }, { Separator }, { Skeleton }, etc.import * as Dialog from "$lib/components/ui/dialog";
import { Button } from "$lib/components/ui/button";
import { Separator } from "$lib/components/ui/separator";Use the real aliases from components.json (often $lib/components/ui/...), not hardcoded paths.
npx shadcn-svelte@latest add with no arguments to browse available components, or check Components before writing custom UI.variant="outline", size="sm", etc.bg-primary, text-muted-foreground — never raw values like bg-blue-500.These rules are always enforced. Each links to a file with Incorrect/Correct code pairs.
class for layout, not styling. Never override component colors or typography.space-x-* or space-y-*. Use flex with gap-*. For vertical stacks, flex flex-col gap-*.size-* when width and height are equal. size-10 not w-10 h-10.truncate shorthand. Not overflow-hidden text-ellipsis whitespace-nowrap.dark: color overrides. Use semantic tokens (bg-background, text-muted-foreground).cn() for conditional classes. Don't write manual template literal ternaries.z-index on overlay components. Dialog, Sheet, Popover, etc. handle their own stacking.Field.FieldGroup + Field.Field. Never use raw div with space-y-* or grid gap-* for form layout.InputGroup uses InputGroup.Input/InputGroup.Textarea. Never raw Input/Textarea inside InputGroup.Root.InputGroup.Root + InputGroup.Addon.ToggleGroup. Don't loop Button with manual active state.Field.FieldSet + Field.FieldLegend for grouping related checkboxes/radios. Don't use a div with a heading.data-invalid + aria-invalid. data-invalid on Field, aria-invalid on the control. For disabled: data-disabled on Field, disabled on the control.Select.Item → Select.Group. DropdownMenu.Item → DropdownMenu.Group. Command.Item → Command.Group.Dialog.Trigger / AlertDialog.Trigger, or control open state with bind:open on the root — see component docs.Dialog.Title, Sheet.Title, Drawer.Title required for accessibility. Use class="sr-only" if visually hidden.Card.Header/Card.Title/Card.Description/Card.Content/Card.Footer. Don't dump everything in Card.Content.isPending/isLoading. Compose with Spinner inside Button + disabled; use data-icon="inline-start" / inline-end on Spinner for correct spacing (import { Button }, import { Spinner }).Tabs.Trigger must be inside Tabs.List. Never render triggers directly in Tabs.Avatar always needs Avatar.Fallback. For when the image fails to load.div.Alert. Don't build custom styled divs.Empty. Don't build custom empty state markup.svelte-sonner. Use toast() from svelte-sonner with the Sonner component from your UI folder.Separator instead of <hr> or a div with border-only classes.Skeleton for loading placeholders. No custom animate-pulse divs.Badge instead of custom styled spans.<Button> use data-icon. data-icon="inline-start" or data-icon="inline-end" on the icon.size-4 or w-4 h-4.iconLibrary (e.g. @lucide/svelte), not string keys.npx shadcn-svelte@latest init --preset <code>.These are the most common patterns that differentiate correct shadcn-svelte code. For edge cases, see the linked rule files above.
<script lang="ts">
import * as Field from "$lib/components/ui/field";
import { Input } from "$lib/components/ui/input";
import { Button } from "$lib/components/ui/button";
import SearchIcon from "@lucide/svelte/icons/search";
import { Badge } from "$lib/components/ui/badge";
import * as Avatar from "$lib/components/ui/avatar";
</script>
<!-- Form layout: Field.FieldGroup + Field.Field, not div + Label. -->
<Field.FieldGroup>
<Field.Field>
<Field.FieldLabel for="email">Email</Field.FieldLabel>
<Input id="email" />
</Field.Field>
</Field.FieldGroup>
<!-- Validation: data-invalid on Field, aria-invalid on the control. -->
<Field.Field data-invalid>
<Field.FieldLabel for="email">Email</Field.FieldLabel>
<Input id="email" aria-invalid />
<Field.FieldDescription>Invalid email.</Field.FieldDescription>
</Field.Field>
<!-- Icons in buttons: data-icon, no sizing classes. -->
<Button>
<SearchIcon data-icon="inline-start" />
Search
</Button>
<!-- Spacing: gap-*, not space-y-*. -->
<div class="flex flex-col gap-4"></div>
<!-- Equal dimensions: size-*, not w-* h-*. -->
<Avatar.Root class="size-10">
<Avatar.Image src="/u.png" alt="User" />
<Avatar.Fallback>U</Avatar.Fallback>
</Avatar.Root>
<!-- Status colors: Badge variants or semantic tokens, not raw colors. -->
<Badge variant="secondary">+20.1%</Badge>| Need | Use |
|---|---|
| Button/action | Button with appropriate variant (import { Button }) |
| Form inputs | Input, Select, Combobox, Switch, Checkbox, RadioGroup, Textarea, InputOTP, Slider |
| Toggle between 2–5 options | ToggleGroup.Root + ToggleGroup.Item |
| Data display | Table, Card, Badge, Avatar |
| Navigation | Sidebar, NavigationMenu, Breadcrumb, Tabs, Pagination |
| Overlays | Dialog (modal), Sheet (side panel), Drawer (bottom sheet), AlertDialog (confirmation) |
| Feedback | svelte-sonner (toast), Alert, Progress, Skeleton, Spinner |
| Command palette | Command inside Dialog |
| Charts | Chart (LayerChart) |
| Layout | Card, Separator, Resizable, ScrollArea, Accordion, Collapsible |
| Empty states | Empty |
| Menus | DropdownMenu, ContextMenu, Menubar |
| Tooltips/info | Tooltip, HoverCard, Popover |
Use components.json and the filesystem — not a separate info command:
aliases → use the actual alias prefix from config (e.g. $lib/), never hardcode unrelated projects.tailwind.css → the global CSS file where theme variables live. Edit this file for theme tweaks; don't add a second globals file unless the user already uses one.style → visual treatment (e.g. nova, vega, …) and registry style path.iconLibrary → determines icon packages (@lucide/svelte, @tabler/icons-svelte, etc.). Never assume @lucide/svelte.registry → where the CLI fetches components; default official registry at shadcn-svelte.com.resolvedPaths (conceptual) → the CLI resolves aliases to absolute paths; list aliases.ui on disk to see installed components.See cli.md for commands and flags.
Open https://shadcn-svelte.com/docs/components/<name>.md for docs and examples. When creating, fixing, debugging, or using a component, read the official page first so you follow the documented APIs.
components.json and list the UI components directory when needed.add, list files under the resolved ui path. Don't import components that haven't been added, and don't re-add ones already present unless updating.npx shadcn-svelte@latest add with no arguments (interactive list), or the docs site.npx shadcn-svelte@latest add <name> or a registry URL. To refresh existing files from the registry, use npx shadcn-svelte@latest update (see cli.md).aliases. Rewrite imports to use the project's ui / lib aliases from components.json.iconLibrary.add.Use the update command to pull the latest registry versions of components already in the project. Review changes with git diff after update.
npx shadcn-svelte@latest update [component] or --all.--overwrite on add without the user's explicit approval when it would destroy intentional edits.# Initialize shadcn-svelte in your project.
npx shadcn-svelte@latest init
# Initialize with a preset string from the docs site builder.
npx shadcn-svelte@latest init --preset <code>
# Add components (interactive when run with no names).
npx shadcn-svelte@latest add
npx shadcn-svelte@latest add button card dialog
npx shadcn-svelte@latest add --all
# Update components already installed.
npx shadcn-svelte@latest update button
npx shadcn-svelte@latest update --all --yes
# Build a custom registry (registry authors).
npx shadcn-svelte@latest registry buildRegistry: default https://shadcn-svelte.com/registry — override in components.json if needed.
Docs: shadcn-svelte.com
© exceptionless, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 10 other files (assets) in .agents/skills/shadcn-svelte of exceptionless/Exceptionless.
Open the folder on GitHubat commit 300e8ca
Shadcn Svelte 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 |
|---|---|---|---|---|---|---|
| Shadcn Svelte this skillexceptionless/Exceptionless | 2.5k | — | ~3.6k | Automated safety check: Pass | Apache-2.0 | |
| Frontend Guidelightly-ai/lightly-studio | 896 | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Atlaspacifio/ui | 154 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Weft FrontendWeaveMindAI/weft | 2k | — | ~8k | Automated safety check: Notes | Custom licence | |
| Frontend BuilderWeaveMindAI/weft | 2k | — | ~2.6k | Automated safety check: Pass | Custom licence | |
| UI StylingOhh-889/skyroc | 795 | 13 repos | ~2.5k | Automated safety check: Pass | MIT |
lightly-ai/lightly-studio
Read before writing or reviewing any frontend code in lightlystudioview - Svelte, TypeScript, or SvelteKit files.
pacifio/ui
Atlas — a design language and UI guide system for agent interfaces.
WeaveMindAI/weft
Read when the user wants a page, app or site for the program, and before dispatching the frontend-builder: the verified scaffold commands, the default stack (pnpm, SvelteKit, PostgreSQL, BetterAuth…
WeaveMindAI/weft
Builds the project's frontend under front/ end to end, unsupervised.
Ohh-889/skyroc
Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.
supabase/evals
Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI.
exceptionless/Exceptionless
This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.
exceptionless/Exceptionless
Systematically dogfood Exceptionless locally. An agent skill from exceptionless/Exceptionless.
exceptionless/Exceptionless
Inspect local Aspire resource health, logs, traces, and browser telemetry.
exceptionless/Exceptionless
Query, aggregate, patch, or paginate Exceptionless data through its Elasticsearch repository abstractions.
exceptionless/Exceptionless
Evaluate semantic-version impact and generate formatted changelogs from git history since the last release tag.
exceptionless/Exceptionless
Build Svelte forms with TanStack Form, Zod validation, and API error mapping.
Categories
Manages shadcn-svelte components and projects — adding, updating, fixing, debugging, styling, and composing UI. Shadcn Svelte is an agent skill from exceptionless/Exceptionless. Manages shadcn-svelte components and projects — adding, updating, fixing, debugging, styling, and composing UI.
Shadcn Svelte fits situations like: shadcn-svelte init; tasks that involve Design systems.
Run `npx skills add exceptionless/Exceptionless --skill shadcn-svelte -a claude-code`. Or copy the skill folder (.agents/skills/shadcn-svelte in exceptionless/Exceptionless) into .claude/skills/shadcn-svelte in your project. Claude Code loads it when a task matches its description.
Run `npx skills add exceptionless/Exceptionless --skill shadcn-svelte -a codex`. Or copy the skill folder (.agents/skills/shadcn-svelte in exceptionless/Exceptionless) into .agents/skills/shadcn-svelte 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 exceptionless/Exceptionless --skill shadcn-svelte -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/shadcn-svelte, .gemini/skills/shadcn-svelte, .github/skills/shadcn-svelte and .opencode/skills/shadcn-svelte in your project.
Going by SKILL.md and its folder, Shadcn Svelte needs the command-line tools its instructions call (npx, pnpm, bunx and git). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Bash(npx shadcn-svelte@latest *), Bash(pnpm dlx shadcn-svelte@latest *), Bash(bunx --bun shadcn-svelte@latest *).
SKILL.md names 1 domain. In commands or code: shadcn-svelte.com; the agent is likely to contact it 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.
Shadcn Svelte is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 14k 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 Shadcn Svelte: Frontend Guide (lightly-ai/lightly-studio, 896 stars), Atlas (pacifio/ui, 154 stars), Weft Frontend (WeaveMindAI/weft, 2k stars) and Frontend Builder (WeaveMindAI/weft, 2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
exceptionless (a GitHub organization) maintains it in exceptionless/Exceptionless, which has 2,457 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 8, 2026.
Source: exceptionless/Exceptionless on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.