← tasteMarkdown

Responsive and mobile

Condensed from: Taste Skill (https://github.com/Leonxlnx/taste-skill), UI UX Pro Max (https://github.com/nextlevelbuilder/ui-ux-pro-max-skill), Hallmark (https://github.com/Nutlope/hallmark), Open Design (https://github.com/nexu-io/open-design)

Approach

Breakpoints

Two shared breakpoints in rem (they follow the user's font size); add a third only where content breaks.

Range Gutter Section gap Changes
<40rem (640px) 16-20px 56-112px Display steps down, captions go inline, one column
40-60rem (960px) 24px 80-120px Grids → 1-2 columns, sticky panes unstick, sidebars fold
≥60rem 16-32px marketing, 24-40px app 120-240px Full grid; cap layout ~1760-1920px

Fluid type with clamp()

font-size: clamp(MIN, INTERCEPT + SLOPE·vw, MAX) where SLOPE = (max−min) / (maxViewport−minViewport) × 100 and INTERCEPT = min − SLOPE/100 × minViewport.

/* 32px @390 → 64px @1440 */
--step-head: clamp(2rem, 1.257rem + 3.048vw, 4rem);
/* body 16px @390 → 18px @1440 */
--step-body: clamp(1rem, .954rem + .19vw, 1.125rem);
/* poster display, full at 1440, held at 1920 */
--step-display: clamp(3rem, 1rem + 9vw, 9rem);

Units, viewport, safe areas

<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">

Touch and thumb zone

Navigation patterns

Context Pattern
Marketing phone One row: wordmark + one action + a "Menu" text button opening a full-screen sheet. ≤3 links: move them to the footer.
App phone, 3-5 destinations Bottom tab bar, icon + label always, ~56px + safe-area inset, active state by colour/weight.
App phone, many destinations 48px top bar with the screen name, menu button → full-screen sheet (nav, workspace switcher, account), ≤1 action.
≥1024px app Labelled sidebar 224-240px; an icon rail becomes the bottom bar on phones.

App screen patterns on a phone

Marketing page patterns on a phone

Clickable text never wraps

Buttons, primary nav links and CTAs stay one line from 320 to 1920px. In order:

  1. Shorten the label ("Read the documentation" → "Read the docs").
  2. white-space: nowrap on the control; let the row reflow.
  3. Collapse the row: links that no longer fit go behind the menu.

Chips and tags: flex: none; white-space: nowrap; the collection wraps, or overflows into an operable +3 disclosure.

Images and strings

Read by your agent through get_guide("responsive-mobile") in the taste MCP.