ui-design
Guidelines for the Sonic Glitch design system, theme variables, and multi-theme readability (dark, light, high-contrast)
Skill by robertolupi
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/robertolupi-ui-design
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ui-design
What's inside
- Skill name
ui-design- Description
- Guidelines for the Sonic Glitch design system, theme variables, and multi-theme readability (dark, light, high-contrast)
- License
- AGPL-3.0
- Instructions
- 86 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# UI Design & Theme Guidelines
This document outlines the design conventions for the Deep Cuts desktop application. All frontend components must adhere to these guidelines to ensure consistent visual aesthetics, clean code, and accessibility across all themes.
## 1. The Sonic Glitch Design System
Deep Cuts uses custom CSS variables starting with `--sg-` for layout, colors, effects, and typography. **Never hardcode hex, RGB, RGBA, or HSL values** directly in components. Always use the design system tokens or derive from them with `color-mix()`.
### Core Theme Colors
- **App Shell & Panel Surfaces**: `var(--sg-surface)`, `var(--sg-surface-dim)`, `var(--sg-surface-low)`, `var(--sg-surface-container)`, `var(--sg-surface-slate)`.
- **Text & Foreground Elements**:
- `var(--sg-on-surface)`: Primary text / high emphasis.
- `var(--sg-on-surface-variant)`: Secondary text / medium emphasis.
- `var(--sg-on-surface-muted)`: Timestamps, captions, low emphasis.
- **Accents**:
- `var(--sg-primary)`: Cyber Cyan (used for active interactive states, filters).
- `var(--sg-secondary)`: Studio Pink (used for AI-generated metadata, vibes, descriptions).
- **Semantics**:
- `var(--sg-error)`: Red (errors, warnings, silence flags).
- `var(--sg-success)`: Green/teal (success indicators).
- `var(--sg-warning)`: Yellow/amber (warnings, notice highlights).
---
## 2. Multi-Theme Adaptability
The app supports three themes (Dark, Light, and Accessible High Contrast) configured via the `html[data-theme]` attribute. When implementing UI features, ensure they render beautifully and legibility is maintained under each:
### Dark Theme (`html[data-theme="dark"]` - Default)
- Neon glows and cyberpunk aesthetics are permitted.
- Uses dark gray/slate surfaces with bright cybercyan and pink highlights.
### Light Theme (`html[data-theme="light"]`)
- Ambient glow is suppressed (`--sg-ambient-bg: none`).
- Accents are shifted to desaturated, AA-safe color spectrums (e.g., deep teal instead of neon cyan, muted plum instead of neon magenta).
- Text contrast must meet a minimum of **4.5:1** for normal text and **3:1** for large text against their respective panel backgrounds.
### Accessible Theme (`html[data-theme="accessible"]`)
- Strict high contrast (pure black `#000000` background, pure white `#ffffff` or near-white text).
- Glassmorphism, background blurs, drop shadows, and radial gradients are disabled.
- Motion and transitions are disabled (`--sg-transition: none`).
- All interactive controls (buttons, inputs, dropdowns) must use solid high-contrast borders and sharp corners.
- Interactive elements must use foreground/background colors that yield high legibility (e.g. black text on a cyan button).
---
## 3. Creating Custom Styles and Classes
If you must define new component-specific styling (such as badges, specialized borders, or custom list rows):
1. **Map to Existing Semantics**:
For example, if you are styling a "Silence" or "Broken file" warning badge, do not use `color: red;` or a hardcoded hex color. Instead, use:
```css
.silence-badge {
color: var(--sg-error);
background: color-mix(in srgb, var(--sg-error) 8%, transparent);
border: 1px solid color-mix(in srgb, var(--sg-error) 30%, transparent);
}
```
2. **Support the Accessible High-Contrast Theme**:
Always add overrides in your CSS for the accessible theme to ensure readability. For example:
```css
html[data-theme="accessible"] .silence-badge {
border-radius: 0;
border: 2px solid var(--sg-on-surface) !important;
background: var(--sg-surface) !important;
color: var(--sg-on-surface) !important;
}
```
3. **Typography Standards**:
- UI elements and tables must use `var(--sg-font-ui)` (Inter / system font).
- Technical values, keys, and paths must use `var(--sg-font-mono)` (JetBrains Mono).
## 4. Verification Checklist
Before finishing UI work:
- Search changed components for hardcoded `#`, `rgb(`, `rgba(`, and inline `style="color`.
- Verify dark, light, and accessible themes.
- For canvas/SVG palettes, read colors from CSS variables via `getComputedStyle()` instead of duplicating literals in TypeScript.
- Confirm focus, hover, active, disabled, loading, empty, and error states are legible.
- If layout or styling changed materially, follow `skills/ui-debug/SKILL.md` for browser verification.
- **IPC imports**: any `invoke`/`listen` calls must come from `$lib/ipc`, not directly from `@tauri-apps/api/*`. See `skills/svelte-component/SKILL.md` §"IPC access".
- **Store idempotency**: stores that register Tauri listeners must keep an `initialized` flag, retain unlisten handles, and expose a `dispose()`. See `skills/svelte-component/SKILL.md` §"Tauri event listeners in components".From robertolupi/deep-cuts, AGPL-3.0.
More from robertolupi/deep-cuts
- 0.534score
write-blog-post
robertolupi
Draft, structure, and finalize a Deep Cuts blog-series post so it conforms to the post template, house voice, and cross-post link rules.
SkillCFreshness: C★ 7Claude Code +9 - 0.534score
ui-debug
robertolupi
Inspect, debug, and compare the Deep Cuts UI using an available browser tool.
SkillCFreshness: C★ 7Claude Code +9 - 0.534score
how-to-experiment
robertolupi
Experimental protocol for Deep Cuts research, prototypes, model evaluations, threshold tuning, ablations, metric comparisons, and claims about accuracy or…
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
git-commits
robertolupi
Rules for writing commit messages in the deep-cuts repository — subject line format, body content, scope naming, and what to omit
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
release-build
robertolupi
End-to-end checklist for building a signed macOS release — bump manifest min_app_version, verify sidecars, build, and inspect the .app
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
add-tauri-sidecar
robertolupi
How to bundle an external binary and its dylib dependencies with the Tauri app, patch rpaths, sign everything, and resolve the path at runtime
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
dev-guidelines
robertolupi
Guidelines to prevent development false starts, environment mismatches, and incorrect commands in the deep-cuts monorepo
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
using-python
robertolupi
How to run Python scripts and install packages in the deep-cuts project
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
add-analysis-pass
robertolupi
Checklist and guide for adding a new analysis pass to the trait-based modular pipeline
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
add-ipc-command
robertolupi
Pattern for adding a new Tauri IPC command (request/response or push event) in the deep-cuts monorepo
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
bump-dev-version
robertolupi
Bump the app version in Cargo.toml after a release to start the next dev cycle
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
db-migration
robertolupi
Safe pattern for adding SQLite schema migrations in the deep-cuts Rust/rusqlite_migration stack
SkillCFreshness: C★ 7Claude Code +9
Signals
- Stars
- 7
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Jun 7, 2026 (4 months ago)
- Last release
- Jun 8, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- AGPL-3.0
- Repository
- github.com/robertolupi/deep-cuts
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from robertolupi
- 0.534score
how-to-experiment
robertolupi
Experimental protocol for Deep Cuts research, prototypes, model evaluations, threshold tuning, ablations, metric comparisons, and claims about accuracy or…
SkillCFreshness: C★ 7Claude Code +9 - 0.534score
ui-debug
robertolupi
Inspect, debug, and compare the Deep Cuts UI using an available browser tool.
SkillCFreshness: C★ 7Claude Code +9 - 0.534score
write-blog-post
robertolupi
Draft, structure, and finalize a Deep Cuts blog-series post so it conforms to the post template, house voice, and cross-post link rules.
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
add-tauri-sidecar
robertolupi
How to bundle an external binary and its dylib dependencies with the Tauri app, patch rpaths, sign everything, and resolve the path at runtime
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
dev-guidelines
robertolupi
Guidelines to prevent development false starts, environment mismatches, and incorrect commands in the deep-cuts monorepo
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
git-commits
robertolupi
Rules for writing commit messages in the deep-cuts repository — subject line format, body content, scope naming, and what to omit
SkillCFreshness: C★ 7Claude Code +9
Cite this page
ui-design skill. Agent Mart. https://agentmart.dev/skills/robertolupi-ui-design (last updated 2026-10-24)