algorithmic-color-pale…
Derive a full UI palette from one or two brand colours — state variants, brand-tinted greys, semantic colours. Use when building…
Mobile, tablet and desktop are different paradigms, not one layout scaled. Use when designing responsive layouts or deciding what each breakpoint shows.
Claude Code
$ npx -y skills add dembrandt/dembrandt-skills --skill responsive-paradigms --agent claude-code
Codex
$ npx skills add dembrandt/dembrandt-skills --skill responsive-paradigms -a codex -y
Cursor
$ npx skills add dembrandt/dembrandt-skills --skill responsive-paradigms -a cursor -y
Gemini CLI
$ npx skills add dembrandt/dembrandt-skills --skill responsive-paradigms -a gemini-cli -y
GitHub Copilot
$ npx skills add dembrandt/dembrandt-skills --skill responsive-paradigms -a github-copilot -y
OpenCode
$ npx skills add dembrandt/dembrandt-skills --skill responsive-paradigms -a opencode -y
Windsurf
$ npx skills add dembrandt/dembrandt-skills --skill responsive-paradigms -a windsurf -y
name: responsive-paradigms
description: Mobile, tablet and desktop are different paradigms, not one layout scaled. Use when designing responsive layouts or deciding what each breakpoint shows.
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(--space-8); }
}
@media (min-width: 1024px) {
.container {
display: grid;
grid-template-columns: 1fr 300px;
gap: var(--space-8);
}
}
/* Ultra-wide proteEnterprise UX secrets, now built into your AI agent. Your agent writes the component in seconds. It does not know the modal should be a drawer, or that the grey it picked fails contrast. These skills carry that judgment: what to do, and what breaks otherwise.
Derive a full UI palette from one or two brand colours — state variants, brand-tinted greys, semantic colours. Use when building…
Top bar, sidebar rail, app launcher, tenant and environment cue, status bar. Use when designing the persistent shell, a…
Product visuals must show the real product with real data. Use when building landing pages, hero sections, screenshots or demo…
Shape language across type, radius and icons carries brand personality. Use when starting a design system, picking icons or…
Rest, hover, active, focus, disabled and loading states, derived from the base colour. Use when designing buttons, links, inputs…
Rebuild a live web page 1:1 from measurement into Figma, Penpot or code, then verify it. Use when reproducing a page or checking…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.