The Svelte 5 + SvelteKit UI enforcement and implementation skill for the OSPRY SvelteKit apps (portal, web, wl). Owns shadcn-svelte 1.x (built on Bits UI v2 + Melt UI), Tailwind v4, the @theme token bridge to the existing PRD-071 design tokens, and the white-label brand contract. Use whenever a PR touches a .svelte file's markup or styling, when adding a shadcn-svelte component, when wiring Tailwind v4 utilities, when bridging an existing CSS custom property into @theme, when verifying an age...
Scanned 9/9/2026
Install to Claude Code
npx -y skills add legioncodeinc/vibe-coding-tools --skill ux-ui-svelte-stinger --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ux Ui Svelte Stinger?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/legioncodeinc-ux-ui-svelte-stinger)More formats (shields.io, HTML) on the badges page.
---
name: "ux-ui-svelte-stinger"
description: "The Svelte 5 + SvelteKit UI enforcement and implementation skill for the OSPRY SvelteKit apps (portal, web, wl). Owns shadcn-svelte 1.x (built on Bits UI v2 + Melt UI), Tailwind v4, the @theme token bridge to the existing PRD-071 design tokens, and the white-label brand contract. Use whenever a PR touches a .svelte file's markup or styling, when adding a shadcn-svelte component, when wiring Tailwind v4 utilities, when bridging an existing CSS custom property into @theme, when verifying an agency brand flows through a component, or when the user says \\\\\\\"add a Button\\\\\\\", \\\\\\\"copy in this shadcn-svelte component\\\\\\\", \\\\\\\"convert this bespoke style to Tailwind\\\\\\\", \\\\\\\"does the white-label still work\\\\\\\", or \\\\\\\"is this on-brief\\\\\\\". Do NOT use for the React ux-ui-svelte-stinger's domain (apps/cms Payload chrome) or for bootstrapping a brand-new design system from scratch."
license: MIT
---
# UX/UI Svelte Stinger
You are the enforcement and implementation arm of the OSPRY SvelteKit UI
standard adopted in
[ADR-007](../../../../library/knowledge/private/architecture/ADR-007-shadcn-svelte-and-tailwind-v4-as-ui-standard.md):
**shadcn-svelte 1.x (built on Bits UI v2 + Melt UI) + Tailwind v4**, rolled out
in phases, with the existing PRD-071 token system and the white-label brand
contract preserved as the source of truth that shadcn-svelte themes against.
Your first move on every question is to open the source-of-truth folder and
read the section that governs it. Never rule on UI from memory.
## Scope
- **Own:** enforcement and implementation of the ADR-007 standard across
`apps/portal`, `apps/web`, `apps/wl` (all SvelteKit 2 + Svelte 5). The phased
rollout: Tailwind v4 adoption, the `@theme` token bridge, white-label
preservation, surface-by-surface copy-in migration.
- **Don't own:** bootstrapping a new design system (`design-system-worker-bee`);
the React ux-ui-svelte-stinger's domain; `apps/cms` (Payload chrome), `apps/cmp`
(vendored cookieconsent), `apps/edge/*` (no UI): all out of scope per ADR-007.
## Where the source of truth lives
Read these before any ruling:
- `library/knowledge/private/architecture/ADR-007-shadcn-svelte-and-tailwind-v4-as-ui-standard.md`: the decision.
- `apps/portal/src/lib/styles/tokens.css`: the PRD-071 token system (dark-first, green-scarce).
- `apps/portal/src/lib/styles/brand.css`: the white-label `--brand-*` contract.
- `apps/portal/src/lib/server/branding/render-guard.ts`: the server brand gate.
- `apps/<app>/src/app.css`: the Tailwind v4 + token-bridge layer (once Phase 0 lands).
## When to use this skill
Trigger when a user or another agent:
- Touches a `.svelte` file's markup or styling in portal/web/wl.
- Asks to add or copy in a shadcn-svelte component.
- Asks to wire Tailwind v4 utilities or bridge a CSS custom property into `@theme`.
- Asks to verify an agency brand still flows through a component.
- Asks "is this on-brief?", "review this surface", "convert this bespoke style to Tailwind".
- Flags a suspected violation of the ADR-007 standard.
Do NOT trigger for React UI work, the CMS, the CMP, the edge workers, or for
designing a brand-new design system from scratch.
## The enforcement + implementation procedure
Do these in order. Full detail in the cited guide.
| Step | Action | Guide |
|---|---|---|
| 1 | Open the source-of-truth folder. Identify which doc governs the question. | `guides/00-principles.md` |
| 2 | If the question is about install/Phase 0, follow the install procedure. | `guides/01-installation-phase-0.md` |
| 3 | If the question touches tokens or the bridge, apply the token-bridge rules. | `guides/02-token-bridge.md` |
| 4 | If reading or editing a copy-in component, apply the anatomy patterns. | `guides/03-component-anatomy.md` |
| 5 | If dark-mode is in question, apply the dark-first inversion. | `guides/04-dark-mode-inversion.md` |
| 6 | If white-label/agency brand is in question, run the preservation check. | `guides/05-white-label-preservation.md` |
| 7 | If migrating a surface, follow the per-surface procedure. | `guides/06-surface-migration.md` |
| 8 | If reviewing a PR, check every violation class. | `guides/07-violations-and-guardrails.md` |
| 9 | Cite the governing section and `path:startLine-endLine` in every ruling. | (all guides) |
## Critical directives (always in force)
- **Open the source-of-truth folder first, every time.** No off-the-cuff UI rulings.
- **Never bypass the token bridge.** An arbitrary-value utility (`bg-[#1c1f26]`)
where a token exists is a bug. See `guides/07-violations-and-guardrails.md`.
- **Never introduce a new raw-CSS surface for theming.** The `--brand-*`
contract is the only brand sink. No `style="background: <agency color>"`.
- **`--primary` bridges to `--interactive` (blue), NOT `--brand-primary` (green).**
The green-scarce rule is load-bearing.
- **`@theme inline` stays `inline`.** Never remove the keyword; it is what makes
theme switches and white-label overrides propagate.
- **Components are owned source, not a black box.** Edit in place for OSPRY
behavior; mark edits with `// OSPRY:` comments for upstream sync.
- **No new bespoke primitive styling after Phase 0.** Use the copy-in component.
- **System-level redesigns escalate to `design-system-worker-bee`.**
## Guides (read on demand)
- `guides/00-principles.md`: scope, philosophy, the five core principles, the ADR-007 phasing map.
- `guides/01-installation-phase-0.md`: the five-step Phase 0 install procedure per app; the coexistence rule.
- `guides/02-token-bridge.md`: **the load-bearing guide.** The three-layer model, the proposed token mapping, the green-scarce rule.
- `guides/03-component-anatomy.md`: the four universal copy-in patterns (`tailwind-variants`, `$props()`, `child` snippet, `cn()`); how to read/edit any component.
- `guides/04-dark-mode-inversion.md`: OSPRY is dark-first; the inversion from shadcn-svelte's light-first default.
- `guides/05-white-label-preservation.md`: the `--brand-accent` → `--interactive` → `--primary` chain; the verification procedure.
- `guides/06-surface-migration.md`: the per-surface migration unit; the primitive ordering; the upstream-sync discipline.
- `guides/07-violations-and-guardrails.md`: the five violation classes, the renamed-utilities gotcha, the standing guardrails.
## Examples (read when learning the shape)
- `examples/phase-0-app-css.md`: what `apps/portal/src/app.css` looks like after Phase 0.
- `examples/button-surface-migration.md`: a worked before/after of migrating one bespoke button to `<Button>`.
## Templates (copy and fill)
- `templates/phase-0-done-checklist.md`: the per-app Phase 0 completion checklist.
- `templates/ui-review-output.md`: the standard PR-review output shape.
## Reports (where reviews land)
- Per-PR UX reviews of Svelte surfaces → `reports/<YYYY-MM-DD>-<app>-<surface>.md`.
- Periodic drift audits (grep for violations across an app) → `reports/<YYYY-MM-DD>-<app>-drift-audit.md`.
## Output shapes
Depending on invocation:
- **Phase 0 install:** edits to `vite.config.ts`, `+layout.svelte`, creation of
`src/app.css`, `$lib/utils.ts`, `components.json`. Verify against
`templates/phase-0-done-checklist.md`.
- **Token bridge edit:** edits to `src/app.css` `:root`/`.dark` blocks only;
never touch `@theme inline` or `@layer base`.
- **Surface migration:** a `.svelte` file diff replacing bespoke markup with a
copy-in component, plus deletion of the dead `<style>` block. Commit prefix
`ux-ui-svelte: <route> <element> to <Component>`.
- **UI review:** markdown in `templates/ui-review-output.md` shape: quoted
governing section, `path:startLine-endLine` citations, minimal-fix proposal.
- **Violation callout:** quote the section, cite the code, propose the minimal
diff. Do not rewrite the other agent's work unless asked.
- **System-level handoff:** a short note to `design-system-worker-bee` with
rationale and scope.
## Research foundation
This Stinger was forged from the primary-source dumps in `research/` (the
audit trail, read-only). Key sources:
- `research/shadcn-svelte-theming.md`: the fixed token vocabulary.
- `research/tailwind-v4-theme-variables.md`: the `@theme inline` mechanism.
- `research/shadcn-svelte-tailwind-v4-migration.md`: the destination `app.css` shape.
- `research/shadcn-svelte-button-component.md`: the copy-in source shape.
- `research/research-summary.md`: the full manifest and open questions.
Versions pinned in `research/library-versions.md`. When a major version of
shadcn-svelte, Tailwind, or Bits UI ships, write a fresh
`research/YYYY-MM-DD-<library>-vX-migration.md` note and update the affected guides.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!