AI-generated UI is too boring. Give it better taste vocabulary.

UnBoring

An open-source inspiration library for small UI ideas, motion details, AI prompts, negative prompts, and structured tokens that humans and agents can both understand.

Explore motion ideas

Steal the idea. Keep the taste.

UnBoring starts with motion because motion is where AI interfaces often feel cheap. Each entry is a tiny inspiration card: preview first, then the exact language you can paste into an AI tool or preserve as tokens for a future MCP or CLI workflow.

Motion ideas

Six restrained patterns for AI-generated interfaces that should feel useful, not generic.

Calm Staggered Fade Up

Reveal grouped content with a quiet, structured rhythm.

AI prompt
Use a subtle staggered fade-up entrance for the card group. Each item should start at opacity 0 and translateY(12px), then animate to opacity 1 and translateY(0). Use around 420ms duration, 80ms stagger delay, and a calm ease-out curve. The motion should feel premium, quiet, and structured.
Negative prompt
Do not use large movement, bounce, rotation, elastic easing, random delays, or a slow dramatic reveal. The entrance should not feel playful, theatrical, or attention-seeking.
Tokens
{
  "id": "calm-staggered-fade-up",
  "category": "motion",
  "trigger": "on page load or scroll into view",
  "target": "cards or list items",
  "from": { "opacity": 0, "y": "12px" },
  "to": { "opacity": 1, "y": "0px" },
  "duration": "420ms",
  "stagger": "80ms",
  "easing": "cubic-bezier(0.22, 1, 0.36, 1)"
}

Soft Hover Lift

Make clickable cards feel tactile without becoming flashy.

AI prompt
Add a soft hover lift interaction to clickable cards. On hover, move the card upward by 2px, slightly increase the shadow, and keep the transition around 180ms. The effect should feel tactile and restrained, not playful or bouncy.
Negative prompt
Do not scale the card aggressively, add glow effects, rotate the element, use springy bounce, or move it more than a few pixels. Avoid making every card feel like a toy.
Tokens
{
  "id": "soft-hover-lift",
  "category": "motion",
  "trigger": "hover",
  "target": "clickable card",
  "from": { "y": "0px", "shadow": "subtle" },
  "to": { "y": "-2px", "shadow": "slightly stronger" },
  "duration": "180ms",
  "easing": "ease-out"
}

Snappy Button Press

Give commands immediate physical feedback.

AI prompt
Add a snappy button press interaction. On pointer down, scale the button to 0.98, then return to 1 quickly on release. Keep the transition under 120ms. The interaction should feel immediate, physical, and responsive.
Negative prompt
Do not add bounce, vibration, rotation, color flashing, or a long press animation. The button should not wobble, jump, or distract from the action.
Tokens
{
  "id": "snappy-button-press",
  "category": "motion",
  "trigger": "pointer down / click",
  "target": "button",
  "from": { "scale": 1 },
  "to": { "scale": 0.98 },
  "duration": "100ms",
  "easing": "ease-out"
}

Command Menu Reveal

Open command surfaces with fast, centered focus.

AI prompt
Reveal the command menu with a fast, centered entrance. The panel should start at opacity 0, scale 0.98, and translateY(6px), then animate to opacity 1, scale 1, and translateY(0). Use around 160ms duration and ease-out. Keep it focused, fast, and utility-like.
Negative prompt
Do not slide the panel from far away, bounce it into place, blur the whole screen heavily, or delay the input field. The menu should feel ready immediately.
Tokens
{
  "id": "command-menu-reveal",
  "category": "motion",
  "trigger": "open command menu",
  "target": "floating panel",
  "from": { "opacity": 0, "scale": 0.98, "y": "6px" },
  "to": { "opacity": 1, "scale": 1, "y": "0px" },
  "duration": "160ms",
  "easing": "ease-out"
}

Accordion Expand

Reveal hidden content without a jarring layout jump.

Height and opacity move together so disclosure feels clear and lightweight.
AI prompt
Animate accordion expansion with height and opacity together. The content should expand from height 0 and opacity 0 to its natural height and opacity 1. Use around 220ms duration with ease-out. The motion should feel practical, clear, and lightweight.
Negative prompt
Do not instantly jump the layout, use a slow dramatic reveal, bounce the content, or animate unrelated elements. Keep frequent interactions short and practical.
Tokens
{
  "id": "accordion-expand",
  "category": "motion",
  "trigger": "click accordion header",
  "target": "accordion content",
  "from": { "height": 0, "opacity": 0 },
  "to": { "height": "auto", "opacity": 1 },
  "duration": "220ms",
  "easing": "ease-out"
}

Toast Slide In

Show feedback without interrupting the user's main task.

Prompt copied Ready to paste into your AI tool.
AI prompt
Show toast notifications with a subtle slide-and-fade entrance. The toast should start at opacity 0 and translateX(16px), then animate to opacity 1 and translateX(0). Use around 220ms duration and ease-out. Keep the motion lightweight and non-interruptive.
Negative prompt
Do not cover primary content, shake the toast, bounce it, use aggressive success colors, or make it feel like a modal. It should stay out of the way.
Tokens
{
  "id": "toast-slide-in",
  "category": "motion",
  "trigger": "show notification",
  "target": "toast",
  "from": { "opacity": 0, "x": "16px" },
  "to": { "opacity": 1, "x": "0px" },
  "duration": "220ms",
  "easing": "ease-out"
}

Built for humans. Ready for agents.

The visible page is for browsing. The structure is for later export: every entry already has stable ids, categories, prompts, negative prompts, and JSON tokens that can become an MCP resource, CLI search result, or prompt pack.

Open-source anti-boring UI.

Motion is the first shelf. Next: command surfaces, empty states, weird-but-useful controls, component details, and visual styles that AI tools can actually understand.

Browse motion