algorithmic-color-pale…
Derive a full UI colour palette algorithmically from one or two brand colours. Darker and lighter variants for interactive states, desaturated greys from the…
Mobile, tablet, and desktop are different interaction paradigms — not the same layout scaled up or down. Sections can be hidden, repositioned, or made sticky on mobile. Navigation and primary actions move. Use when designing responsive layouts, adapting desktop UI for mobile, or
$ npx -y skills add dembrandt/dembrandt-skills --skill responsive-paradigms --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/responsive-paradigmsContext preview
The summary Claude sees to decide when to auto-load this skill.
Mobile, tablet, and desktop are different interaction paradigms — not the same layout scaled up or down. Sections can be hidden, repositioned, or made sticky on mobile. Navigation and primary actions move. Use when designing responsive layouts, adapting desktop UI for mobile, or
name: responsive-paradigms
description: Mobile, tablet, and desktop are different interaction paradigms — not the same layout scaled up or down. Sections can be hidden, repositioned, or made sticky on mobile. Navigation and primary actions move. Use when designing responsive layouts, adapting desktop UI for mobile, or deciding what to show on each breakpoint.
metadata:
priority: 8
pathPatterns:
- "**/*.css"
- "**/*.scss"
- "**/*.tsx"
- "**/*.jsx"
- "tailwind.config.*"
- "design-system/**"
- "components/**"
promptSignals:
phrases:
- "responsive"
- "mobile"
- "tablet"
- "breakpoint"
- "desktop"
- "adaptive"
- "bottom nav"
- "hamburger"
- "touch"
- "logo"
- "header"
retrieval:
aliases:
- responsive design
- mobile layout
- tablet layout
- breakpoints
- adaptive UI
- bottom navigation
- mobile navigation
- responsive logo sizing
intents:
- design for mobile
- adapt desktop layout to mobile
- decide what to show on each breakpoint
- design mobile navigation
- handle layout changes at breakpoints
examples:
- how should this sidebar behave on mobile
- design the mobile version of this dashboard
- what changes between desktop and mobile for this layoutMobile, tablet, and desktop are fundamentally different interaction contexts. The input method, screen real estate, viewing distance, and session intent all differ. Responsive design is not the same layout at different widths — it is a different design decision at each breakpoint.
---
Not every section needs to appear on every breakpoint at the same position — or at all.
Secondary content (related articles, supplementary sidebars, decorative illustrations) can be hidden below a breakpoint. Ask: does a mobile user need this? If no, `display: none` at mobile is correct.
The default responsive move is simply to **stack** — a horizontal row of blocks becomes a vertical column as the viewport narrows. This preserves order and grouping, so the user's mental model of the page survives the breakpoint unchanged. Reach for it first.
**Repositioning an element is also allowed — but only if it stays within roughly the same container area / region.** A sidebar that sits to the left on desktop can move below the main content on mobile, or collapse into an expandable section: it's still "the stuff next to / around the main content", just re-flowed. That's fine.
What to avoid: repositioning that **moves an element into a different container or scope** — a control lifted from its card into the global header reads as a different UI, not a reflow. Keep the parent region stable; change only how it flows within it.
Desktop: Mobile:
[Main] [Sidebar] → [Main]
[▼ Related] ← collapsed accordion, still "around the main content"An element that is `position: sticky` on desktop may need to become a fixed bottom bar on mobile, or be removed from sticky positioning entirely to free up screen space.
.toolbar {
position: static; /* mobile: inline, not sticky */
}
@media (min-width: 1024px) {
.toolbar {
position: sticky;
top: var(--header-height);
}
}| Desktop | Mobile | |---|---| | Persistent top nav or sidebar | Bottom tab bar or hamburger drawer | | Visible labels + icons | Icons only (bottom nav) or full list (drawer) | | Hover states on nav items | None — touch only | | Dropdowns on hover | Tap to expand, full-screen or sheet |
As space tightens, a label can be **shortened** or dropped to **icon-only**. Shortening hides information, so keep the full version reachable — the same "clamp + recover" contract as truncated text (see [[repeated-component-alignment]]):
---
Design and build mobile first, then enhance for larger screens. Mobile forces prioritisation — what makes it onto mobile is what actually matters.
/* Mobile first: base styles are mobile */
.container { padding: var(--space-4); }
/* Enhance for larger screens */
@media (min-width: 768px) {
.container { padding: var(UX and design-system skills for AI agents. Install once, and your agent knows how to design. --all installs every skill at once. They load only when a prompt needs them, so there is no runtime cost to having them all. Want to pick by hand?
Repo: dembrandt/dembrandt-skills
Derive a full UI colour palette algorithmically from one or two brand colours. Darker and lighter variants for interactive states, desaturated greys from the…
The persistent shell around an application — the top bar, the app launcher, the tenant and environment cue, and in heavy tools a status bar. In an estate of…
Product visuals — hero shots, demos, screenshots, landing-page panels — must reproduce the real product, not a stylised poster of it. Design with real content…
A brand's visual tone — playful or serious, rounded or angular — should be consistent across all UI elements. Shape language in typography, border-radius, and…
Every interactive element needs a complete set of visual states — rest, hover, active/pressed, focus, disabled, and loading. States should be derived…
Rebuild an existing web page 1:1 from measurement instead of by eye — into Figma, Penpot, or code. Captures the rendered page, the raw source and the computed…