| name | ui-styling-assistant |
| description | Focused CSS/styling helper that answers specific styling questions using Universal Design System tokens. Provides copy-paste CSS snippets with dark mode variants and responsive breakpoints. |
| version | 0.4.0 |
| triggers | ["css help","styling help","shadow","gradient","animation css","hover effect","button style","card style","dark mode css","responsive css","tailwind class","css custom property","border radius","box shadow","transition","transform","backdrop effect","glassmorphism","css gradient","focus style","input style","table style"] |
UI Styling Assistant — Claude Code Skill
A focused CSS/styling helper that provides copy-paste snippets using Universal Design System tokens. Always uses var() custom properties, includes dark mode variants, and shows responsive breakpoints.
Core Rule
Never output hardcoded values. Always reference Universal Design System tokens:
.card { border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.card { border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
Token Quick Reference
Colors
var(--color-brand-primary)
var(--color-brand-secondary)
var(--color-text-primary)
var(--color-text-secondary)
var(--color-bg-primary)
var(--color-bg-secondary)
var(--color-border-default)
var(--color-error)
var(--color-success)
Spacing
var(--space-1)
var(--space-2)
var(--space-3)
var(--space-4)
var(--space-6)
var(--space-8)
Radius
var(--radius-sm)
var(--radius-md)
var(--radius-lg)
var(--radius-xl)
Shadows
var(--shadow-sm)
var(--shadow-md)
var(--shadow-lg)
Motion
var(--duration-instant)
var(--duration-fast)
var(--duration-normal)
var(--duration-slow)
var(--ease-default)
var(--ease-out)
var(--ease-in)
Common Styling Recipes
Card with Hover Effect
.card {
background: var(--color-bg-primary);
border: 1px solid var(--color-border-default);
border-radius: var(--radius-lg);
padding: var(--space-6);
box-shadow: var(--shadow-sm);
transition: all var(--duration-fast) var(--ease-out);
}
.card:hover {
box-shadow: var(--shadow-md);
transform: translateY(-2px);
}
Button States
.btn {
background: var(--color-brand-primary);
color: var(--color-text-on-brand);
border-radius: var(--radius-md);
padding: var(--space-3) var(--space-4);
transition: all var(--duration-fast) var(--ease-out);
min-height: 44px;
}
.btn:hover { filter: brightness(1.05); transform: translateY(-1px); }
.btn:active { transform: scale(0.98); }
.btn:focus-visible {
outline: 2px solid var(--color-brand-primary);
outline-offset: 2px;
}
.btn:disabled { opacity: 0.5; cursor: not-allowed; }
Input Field
.input {
width: 100%;
padding: var(--space-3) var(--space-4);
border: 1px solid var(--color-border-default);
border-radius: var(--radius-md);
background: var(--color-bg-primary);
color: var(--color-text-primary);
font-size: var(--text-body-md);
transition: border-color var(--duration-fast) var(--ease-out);
}
.input:focus {
border-color: var(--color-brand-primary);
box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-primary) 15%, transparent);
outline: none;
}
.input::placeholder { color: var(--color-text-tertiary); }
Gradient Background
.gradient-hero {
background: linear-gradient(
135deg,
var(--color-brand-primary) 0%,
var(--color-brand-secondary) 100%
);
}
Glassmorphism
.glass {
background: color-mix(in srgb, var(--color-bg-primary) 80%, transparent);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid color-mix(in srgb, var(--color-border-default) 50%, transparent);
border-radius: var(--radius-lg);
}
Dark Mode Glow Border
.glow-card {
background: var(--color-bg-secondary);
border: 1px solid color-mix(in srgb, var(--color-brand-primary) 30%, transparent);
border-radius: var(--radius-md);
box-shadow:
0 0 0 1px color-mix(in srgb, white 5%, transparent),
0 4px 24px color-mix(in srgb, black 40%, transparent);
}
Scroll Reveal Animation
.reveal {
opacity: 0;
transform: translateY(24px);
transition: opacity var(--duration-slow) var(--ease-out),
transform var(--duration-slow) var(--ease-out);
}
.reveal.visible {
opacity: 1;
transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
.reveal { opacity: 1; transform: none; transition: none; }
}
Responsive Grid
.grid {
display: grid;
gap: var(--space-6);
grid-template-columns: 1fr;
}
@media (min-width: 768px) {
.grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
.grid { grid-template-columns: repeat(3, 1fr); }
}
Framework Output
When asked, provide the same styles as:
Tailwind Classes
<div class="bg-[var(--color-bg-primary)] border border-[var(--color-border-default)]
rounded-[var(--radius-lg)] p-6 shadow-[var(--shadow-sm)]
hover:shadow-[var(--shadow-md)] hover:-translate-y-0.5
transition-all duration-150 ease-out">
CSS Modules
.card {
background: var(--color-bg-primary);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-sm);
}
styled-components
const Card = styled.div`
background: var(--color-bg-primary);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-sm);
`;
Powered by Universal Design System v0.4.0