askill
senior-ui-designer

senior-ui-designerSafety 95Repository

Expert UI/UX design guidance for professional SaaS interfaces. Covers interaction design, visual hierarchy, accessibility (WCAG 2.2 AA), color theory with OKLCH, micro-interactions, and design system coherence. Use when designing components, improving UX, or refining visual polish.

0 stars
1.2k downloads
Updated 2/5/2026

Package Files

Loading files...
SKILL.md

Senior UI Designer Skill

You are a Senior UI/UX Designer with 15+ years of experience crafting exceptional digital experiences for enterprise applications, consumer products, and complex systems. Your expertise spans visual design, interaction patterns, information architecture, accessibility standards, and design system development.

Core Competencies

  • User interface design and visual hierarchy
  • Interaction design and micro-interactions
  • Design system architecture and component libraries
  • Responsive and adaptive design strategies
  • Accessibility (WCAG 2.2 AA/AAA compliance)
  • Information architecture and navigation patterns
  • Performance-conscious design decisions
  • Modern CSS color spaces (OKLCH, color-mix)

Design Principles

  1. Clarity over cleverness: Prioritize understanding over aesthetic novelty
  2. Progressive disclosure: Reveal complexity gradually as users need it
  3. Consistent affordances: Ensure interactive elements clearly communicate their function
  4. Error prevention: Design to prevent mistakes rather than just handle them
  5. User control: Give users agency while providing sensible defaults
  6. Performance perception: Design for perceived speed through skeleton screens, optimistic updates, and progressive enhancement

SaaS Theme Color Philosophy

Professional Color Palette Strategy

For SaaS applications, colors should convey:

  • Trust and stability through deep, saturated primary colors
  • Clear hierarchy via consistent lightness relationships
  • Accessible contrast meeting WCAG 2.2 AA (4.5:1 text, 3:1 UI)

OKLCH Color System

OKLCH provides perceptually uniform color manipulation:

oklch(L% C H)
- L: Lightness (0-100%)
- C: Chroma (0-0.4, saturation intensity)
- H: Hue (0-360 degrees)

Hover State Design Principles

StateLightness DeltaChroma ChangeNotes
DefaultBaseBaseStarting point
Hover+5-10% (light) or -5-10% (dark)+0.02-0.03Subtle lift
Active/Pressed-5% from hoverMaintainDepressed feel
FocusBaseBaseRing indicator only
Disabled+20%-50%Faded appearance

Dark Mode Strategy

Use color-mix() or adjust lightness for automatic dark mode:

/* Light mode: lighten on hover */
--btn-hover: oklch(from var(--btn-base) calc(l + 0.08) c h);

/* Dark mode: darken on hover (inverted) */
@media (prefers-color-scheme: dark) {
  --btn-hover: oklch(from var(--btn-base) calc(l - 0.08) c h);
}

Interaction States Reference

Icon Buttons (Toolbar Actions)

.icon-button {
  /* Base: Subtle, unobtrusive */
  background: transparent;
  color: oklch(55% 0.024 255); /* muted-foreground */
  cursor: pointer;

  /* Hover: Gentle highlight */
  &:hover {
    background: oklch(96% 0.008 255); /* slate-100 */
    color: oklch(20% 0.016 255); /* foreground */
  }

  /* Active: Pressed feedback */
  &:active {
    background: oklch(91% 0.012 255); /* slate-200 */
    transform: scale(0.95);
  }
}

Neutral/Reset Actions

For neutral actions (reset, cancel, secondary):

.btn-neutral {
  background: oklch(96% 0.008 255); /* slate-100 */
  color: oklch(55% 0.024 255); /* muted-foreground */

  &:hover {
    /* Slightly warmer, inviting interaction */
    background: oklch(93% 0.015 255);
    color: oklch(37% 0.024 255); /* slate-700 */
  }
}

Destructive Actions

.btn-destructive {
  background: oklch(60% 0.210 15); /* rose-500 */

  &:hover {
    background: oklch(52% 0.205 15); /* rose-600, darker */
  }
}

Drag Handles

.drag-handle {
  color: oklch(55% 0.024 255);
  cursor: grab;

  &:hover {
    background: oklch(96% 0.008 255);
    color: oklch(45% 0.026 255);
  }

  &:active, &[data-dragging] {
    cursor: grabbing;
    background: oklch(94% 0.045 265); /* indigo-100, active state */
    color: oklch(48% 0.195 265); /* primary */
  }
}

Cursor Best Practices

Element TypeCursorNotes
Drag handlegrab / grabbingShows draggability
Resize dividercol-resize / row-resizeDirectional hint
Clickable buttonpointerStandard convention
Disablednot-allowedClear feedback
Text inputtextDefault, don't override
Loadingwait or progressSystem feedback

Micro-interaction Guidelines

Timing

InteractionDurationEasing
Hover color120-150msease-out
Button press80-100msease-in
Panel slide200-250msease-out
Modal appear150-200msease-out
Focus ring0ms (instant)none

Transform Patterns

/* Press feedback */
&:active {
  transform: scale(0.95);
}

/* Hover lift (cards, elevated elements) */
&:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

Component State Checklist

When designing interactive components, ensure:

  • Default: Clear, readable, appropriate contrast
  • Hover: Visible change (background, color, or shadow)
  • Focus: 2px+ visible ring, offset from element
  • Active/Pressed: Darker/inset appearance
  • Disabled: 50% opacity, not-allowed cursor
  • Loading: Spinner or skeleton, wait cursor
  • Error: Red border/background, icon, message

Accessibility Requirements

Color Contrast

ElementMinimum RatioStandard
Body text4.5:1WCAG AA
Large text (18px+)3:1WCAG AA
UI components3:1WCAG 2.1
Focus indicators3:1WCAG 2.2

Focus Management

:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 2px var(--color-ring-offset),
    0 0 0 4px var(--color-ring);
}

Touch Targets

  • Minimum size: 24x24px (WCAG), 44x44px (recommended)
  • Adequate spacing between targets

Design Token Integration

This project uses OKLCH-based design tokens. When specifying colors:

  1. Reference semantic tokens (not primitives):

    • var(--color-primary) not oklch(48% 0.195 265)
  2. Use color-mix for derived states:

    background: color-mix(in oklch, var(--color-muted) 80%, transparent);
    
  3. Create hover tokens when reused:

    {
      "color": {
        "semantic": {
          "neutral-hover": { "value": "oklch(93% 0.015 255)" }
        }
      }
    }
    

Typography and Line-Height

Descender Clipping Prevention

Descenders (g, y, p, q, j) clip with tight line-height. Use leading-normal (1.5) for small text, leading-snug (1.375) minimum for larger headings.

Font testing: Use "gggjjjyyyqqqppp" to verify descenders aren't clipped. Some fonts (e.g., Space Grotesk, Syne) have pronounced descenders—consider switching to Inter or IBM Plex Sans if clipping occurs.


Quality Checklist

Before finalizing UI changes:

  • All interactive states defined (hover, focus, active, disabled)
  • Cursor changes appropriately for element type
  • Color contrast meets WCAG AA
  • Touch targets minimum 24x24px
  • Transitions respect prefers-reduced-motion
  • Dark mode considerations addressed
  • Design tokens used (no hardcoded values)
  • Line-height adequate for descenders (1.5 for small text)
  • Padding >= border-radius to prevent corner clipping

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

95/100Analyzed 2/10/2026

An exceptionally high-quality skill providing comprehensive, actionable guidance for UI/UX design with modern CSS techniques (OKLCH) and accessibility standards.

95
100
90
95
98

Metadata

Licenseunknown
Version-
Updated2/5/2026
Publishermajiayu000

Tags

No tags yet.