SkillAtlasSkill 详情

antislop-layoutmobile

Anti Slop: Rules for AI Coding Agents.

审核状态:已审核Quality 80Security 88

复制安装命令

用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。

复制前请先查看来源、License 和安全提示。

项目 README

来源文件:README.md

抓取于 2026年9月21日

antislop

License: MIT Version

skills.sh

antislop

Anti Slop: Rules for AI Coding Agents. It stops them from generating generic "AI slop" UI and copy, without letting the result turn sterile. It is a filter, not a style guide: no prescribed colors, fonts, or layouts. It is not only for building pages: it also writes and audits copy, so AI text stops reading like AI. And it never beautifies on its own; DESIGN.md (yours) is where beauty and direction come from.

New here? Start with the GUIDE.md. It explains what antislop is and how to install it, from zero.

What it does

  • 38 mandatory rules (R-01 to R-38) in three tiers: Hard Gate (absolute), Purpose-Gate (technique allowed, reason required), Quality Locks (consistency)
  • A Liveliness Toolkit with three dials (ENERGY / RHYTHM / MOTION) and a Design Read, so the result is alive and specific, not just "clean"
  • A Delivery Gate: a mandatory PASS/FAIL report in four blocks, run before anything ships
  • Additive skills, one per concern, so an agent only loads what a task needs

The core prevents slop but cannot invent direction. DESIGN.md (yours) supplies it; a sterile result means the direction was missing, not that the filter failed (R-37).

See the difference

The same brief, the same page, generated four times over. antislop filters; DESIGN.md supplies direction. They are two different jobs, and these are the four results. Copy and code follow as before-and-after pairs instead of four separate builds, because nothing else has to supply direction there.

UI

Three of the four builds. The first uses neither tool, the second only antislop, the third only DESIGN.md.

Nothing at allantislop aloneDESIGN.md alone
A generic landing page: a sparkle logo, a NEXT-GEN AI 2.0 beta pill above the headline, and a fake terminal reporting 0.0001ms latencyThe same page with antislop: honest copy on a restrained dark layout with a single accent colourThe same page with DESIGN.md only: a photographic hero, with the stat cards still reading 10,000% ROI Synergy Multiplier and a 5.0 rating from 500,000 founders
Where most AI output starts: a sparkle logo, a beta pill, and a fake terminal.Honest, because the filter removed the invented numbers. Plain, because beauty is not its job.The direction lands, but the slop stays, because DESIGN.md directs and does not filter.

The fourth uses both, and it is the only one of the four that is clean and directed at the same time:

antislop + DESIGN.md
The same page with antislop and DESIGN.md: a full-bleed illustrated hero with one honest headline and project-specific navigation
Honest numbers and a real direction in the same build. The filter removes what should not be there; DESIGN.md fills the space that leaves, which is the one thing neither tool manages alone.

Copy

One prompt, run twice.

BeforeAfter
An AI written Discord launch post: emoji bullet points, NEW DROP in capitals, and hype in every lineThe same launch post written with antislop-copywriting: plain sentences, no emoji bullets, and a note to cut any line with nothing real to say

Code

One file, run twice.

BeforeAfter
Python with box-drawing section banners, emoji, and a comment on every constant that restates the constantThe same Python with the banners and emoji gone, one comment left that says what the module does, and the code itself untouched

Every image in this section opens full size if you click it.

Install

antislop ships as a set of standard agent skills (one folder per skill, holding a SKILL.md). The core is always loaded; the other skills load only when the task needs them. This section is the reference: every install command, in one place. GUIDE.md walks through them from zero, and its Update and Remove sections cover every route the same way.

1. The installer (recommended)

One command, then answer the prompts. It asks which extra skills you want, where to install (this project or everywhere), and which agents you use, then copies the folders. It is also the only route that writes the pointer reloading antislop every session on a project install; a global install relies on the skills loading themselves by description.

npx antislop-ai

To update later, run the same command and choose Overwrite them when it finds the existing folders. Choosing Keep what is there installs nothing and leaves you on the old version.

2. The skills directory

antislop is listed on skills.sh, the open directory for agent skills:

npx skills add miqdadbadjuber/anti-slop

This copies the same folders as path 1 and nothing else: no pointer, so antislop reloads by description alone. GUIDE.md covers adding the pointer afterwards, and updating or removing this route.

3. The plugin (Claude Code)

Add the marketplace once, then install the plugin:

/plugin marketplace add https://github.com/miqdadbadjuber/anti-slop
/plugin install antislop@anti-slop

4. The plugin (Antigravity)

The same repo is an Antigravity plugin. Install it with the Antigravity CLI:

agy plugin install https://github.com/miqdadbadjuber/anti-slop

5. The plugin (Codex)

The same repo is a Codex plugin and marketplace. Add the marketplace once, then install the plugin:

codex plugin marketplace add miqdadbadjuber/anti-slop
codex plugin add antislop@anti-slop

6. The plugin (Cursor)

The same repo is a Cursor plugin. Add it as a plugin marketplace with the Cursor Agent CLI:

agent plugin marketplace add https://github.com/miqdadbadjuber/anti-slop

Then open Customize in Cursor, find antislop, and select Install, choosing project or user scope.

7. The plugin (Kimi Code)

The same repo is a Kimi Code plugin. Install it in a Kimi Code session, then start a new one:

/plugins install https://github.com/miqdadbadjuber/anti-slop

The URL resolves to the latest release. Kimi Code installs plugins per user, so this covers every project.

Where the skills live

Every skill is a folder of the open Agent Skills standard (<name>/SKILL.md), so it drops into any agent that reads the standard. The installer (path 1) installs into whichever of these you use, creating the folder if it is missing:

AgentReads antislop from
Claude Code.claude/skills/
Codex.codex/skills/
Antigravity.agents/skills/
OpenCode.opencode/skills/
Cursor.cursor/skills/
Gemini CLI.gemini/skills/
Hermes.hermes/skills/
GitHub Copilot.agents/skills/
Kimi Code.agents/skills/

The Gemini CLI row is legacy support: Antigravity replaced it, but the installer still writes there for existing setups.

Antigravity, Copilot, and Kimi Code share one folder. Copilot also reads .github/skills/ and .claude/skills/, and Kimi Code also reads .kimi-code/skills/, but the installer writes the folder they have in common, so picking them together installs antislop once.

Those are the project paths. A global install writes the same folder under your home directory, with three exceptions: OpenCode writes to ~/.config/opencode/skills/, Antigravity to ~/.gemini/config/skills/, and Codex to ~/.agents/skills/, the user-level folder Codex documents in place of its own ~/.codex/skills/. Copilot, OpenCode, and Kimi Code read that home-level folder too, so it is where a global install reaches them.

Hermes needs one extra step after a project install: it will not load skills out of a cloned repository until you run hermes skills trust once in that project.

Manual (single file, no packaging)

The core antislop.md alone is a complete filter you can paste into any chat window. Download it and tell your agent to read it; the First-Run wizard inside it installs skills the manual way:

curl -o antislop.md https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/antislop.md

Skills

SkillWhat it coversShips in
antislopThe core filter: rules, tiers, Delivery Gate, livelinessv3.0.0
antislop-uiUI / visual: layout, color, components, decoration, motion, structurev2.2.0
antislop-copywritingCopy & text: headlines, CTAs, tone, fake stats, anti-AI-writing patterns, markdown hygienev2.3.0
antislop-humanHuman: contrast (with the checker), keyboard, focus, statesv2.4.0
antislop-layoutmobileResponsive / mobile: reflowing across screen widths (phone to desktop), breakpoints, grids, overflow, tap targetsv2.5.0
antislop-codeCode comments: remove generic AI-slop comments, keep the valuable ones, never touch the codev3.1.0

Pick what matches the work:

  • UI work → antislop-ui
  • Copy work → antislop-copywriting
  • People work → antislop-human
  • Responsive layout work → antislop-layoutmobile
  • Code comments work → antislop-code
  • More than one kind of work → install several
  • None → the core alone is a complete filter

Usage modes

antislop is used one of two ways, chosen at the start of a session:

  • During guides the work while it is built, ending with the Delivery Gate. Use it when building new UI.
  • After audits finished work: a numbered findings list, you approve which to fix, then a follow-up report. Use it to clean up existing output.

Roadmap

v3.2.12 is the current release.

  • Kimi Code is an installer target. It reads .agents/skills at both project and user scope, so it shares the folder Antigravity, Copilot, Codex, and OpenCode already use, and reads the same AGENTS.md pointer. No new folder, no new file.
  • Kimi Code also has a plugin door. The repo ships .kimi-plugin/plugin.json, which registers the six skills and points the system prompt at rules/antislop.md. Install it with /plugins install https://github.com/miqdadbadjuber/anti-slop. Documented from the vendor's own docs, not yet run in a live session.
  • A motion comparison sits above the FAQ: the same builds from See the difference, animated. The star history chart still sits between the FAQ and the contributors.

Every earlier release, and what comes next, is in ROADMAP.md.

In motion

The same brief, before and after the filter

The same four images from See the difference, in motion.

FAQ

Is antislop a style guide?

No, a filter. It does not prescribe colors, fonts, or layouts. It rejects technique without purpose and requires liveliness; direction is yours.

Which agents does it work with?

All of them, but the install paths differ:

  • The installer and the skills directory support Claude Code, Codex, Antigravity, OpenCode, Cursor, Gemini CLI, Hermes, GitHub Copilot, and Kimi Code (the installer detects each agent's skill folder). These are the recommended paths.
  • The plugins are per-agent doors: the Claude Code marketplace plugin (path 3), the Antigravity plugin (path 4), the Codex plugin (path 5), the Cursor plugin (path 6), and the Kimi Code plugin (path 7), all installed from the same repo.
  • The single file (antislop.md) works with any agent that reads plain Markdown, including a plain chat window.

The packaged skills use the open Agent Skills standard (folder per skill), so they drop into any tool that reads the standard.

What is a "skill"?

A folder that goes deeper into one concern (UI, copywriting, accessibility, and so on), holding a SKILL.md with its rules. It references the core rules by number and never duplicates them, so adding a skill does not change the core.

Star History

Star History Chart

Contributors

Thanks to everyone who helps make antislop better.

antislop contributors

Found a new AI slop pattern, a rule that missed something, or a bug in the installer? Open an issue. PRs are welcome for new AI slop patterns, clarifications, or checklist items out of sync with their rule.


“antislop is a filter, not magic.
It clears the slop from your UI, text, and code.
A beautiful UI is DESIGN.md's job, and yours.”


License

MIT: LICENSE

Agent / MCP / Skill 创作

中风险

  • 来源需自行核对维护者身份。
  • 未检测到明显脚本安装指令。
  • 未检测到明显外部权限要求。
  • 未检测到高风险命令。
  • 扫描发现:1 条。

Codex — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/miqdadbadjuber/anti-slop.git
  3. 将 "skills/antislop-layoutmobile" 文件夹复制到 Codex 的 skills 目录中。
  4. 重启 Codex 让新的 skill 生效。

Codex — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Codex 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Codex 让新的 skill 生效。

Claude Code — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/miqdadbadjuber/anti-slop.git
  3. 将 "skills/antislop-layoutmobile" 文件夹复制到 Claude Code 的 skills 目录中。
  4. 重启 Claude Code 让新的 skill 生效。

Claude Code — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Claude Code 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Claude Code 让新的 skill 生效。

Cursor — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/miqdadbadjuber/anti-slop.git
  3. 将 "skills/antislop-layoutmobile" 文件夹复制到 Cursor 的 skills 目录中。
  4. 重启 Cursor 让新的 skill 生效。

Cursor — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Cursor 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Cursor 让新的 skill 生效。

GitHub Copilot — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/miqdadbadjuber/anti-slop.git
  3. 将 "skills/antislop-layoutmobile" 文件夹复制到 GitHub Copilot 的 skills 目录中。
  4. 重启 GitHub Copilot 让新的 skill 生效。

GitHub Copilot — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 GitHub Copilot 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 GitHub Copilot 让新的 skill 生效。

Windsurf — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/miqdadbadjuber/anti-slop.git
  3. 将 "skills/antislop-layoutmobile" 文件夹复制到 Windsurf 的 skills 目录中。
  4. 重启 Windsurf 让新的 skill 生效。

Windsurf — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Windsurf 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Windsurf 让新的 skill 生效。
查看 SKILL.md 原文
name: antislop-layoutmobile
description: "Mobile layout skill for antislop. Use for layouts that reflow across screen sizes, phone to desktop: grids, overflow, tap targets. Load with the core."
allowed-tools: Read Write Edit Glob Grep

antislop-layoutmobile

Anti Slop: Rules for AI Coding Agents. Mobile Layout skill

Part of the antislop system. Read together with antislop.md (the core). This skill deep-dives the responsive layout concern: how a layout must reflow across screen sizes, phone to desktop. Breakpoints, scale, grids, overflow, tap targets, and navigation. It references core rules by number and never duplicates or renumbers them. Load it when the task builds or edits a layout that has to hold up at any screen width.

How to use this skill

  • Load together with antislop.md whenever the task is mobile or responsive layout work. The core holds the mechanism (the purpose test, the three tiers, the Delivery Gate); this skill holds mobile-layout depth.
  • Every entry has the same shape: Tell (the pattern), Why (why it reads as slop), Fix (what to do instead), with the governing core rule cited as R-XX.
  • The principle behind this skill: mobile layout is a different layout, not the desktop layout at a smaller size. It must reflow: re-stack, rescale, and re-order with intent. Every pattern below is a way a layout fails to reflow.
  • The Delivery Gate in the core remains the gate. The "Layoutmobile Skill Checklist" at the end of this file is the mobile-specific supplement to run alongside it.

Breakpoints

Desktop-Only Layout

  • Tell: one layout state for every screen; the mobile view is the desktop layout squeezed into a phone.
  • Why: R-03 requires a mobile layout that is perfect, not an afterthought. A page that only shrinks has no mobile design at all: cards that worked side by side overlap, and text meant for a wide canvas crowds into a narrow one.
  • Fix: define a real mobile state at the breakpoint where the content stops working. The mobile layout reflows: columns stack, sizes drop, and order changes where the content needs it. If the mobile view is just the desktop view at a smaller width, the layout is not done.

Breakpoint Driven by Device List

  • Tell: breakpoints named after phone widths (375px, 414px, 768px) chosen because "that is the iPhone size", not because the content breaks there.
  • Why: device widths change every year and every model. A breakpoint is a point where the layout stops holding; forcing it to match a device list makes the layout follow a spec sheet instead of the content (R-03).
  • Fix: place breakpoints where the content actually breaks: when a column stops being readable, when a row of cards gets too narrow. Test by narrowing the viewport and watching where it snaps, then set the breakpoint there.

Mobile Styled Last

  • Tell: mobile rules bolted on as a trailing override: a long desktop stylesheet with a small media query at the end fixing one or two things.
  • Why: an override patch is not a mobile design. It fixes the symptom that got reported and leaves the next one, and the base styles stay tuned for a wide screen (R-03).
  • Fix: treat mobile as a designed state, not an override. Give the narrow viewport its own deliberate sizes and stacking, and verify the whole layout there, not just the patched spots (R-35).

Two-State Layout

  • Tell: a layout with exactly two states: a single stacked column below one breakpoint, and a wide multi-column grid above it, with nothing defined in between. A tablet or small laptop width then inherits whichever state is closest: the phone stack stretched absurdly wide, or the desktop grid crammed into a fraction of its intended canvas.
  • Why: a page is a continuous range of widths, and R-03 demands it hold up at every one of them, not just two chosen breakpoints. Two states leave the whole middle band of the range (roughly 600 to 1024 px, where tablets and small laptops live) as an accident: content that neither stacks with intent nor sits in a grid that fits. The layout reads as designed only at its two sample points and broken everywhere between.
  • Fix: define real states at the widths where the content stops working, and let them be as many as the content needs. A typical reflow is three states, not two: single column, then a two-column grid when cards get too wide as a single stack, then the full multi-column grid only when it genuinely fits. Verify by dragging the viewport through the whole range, not by checking two widths and calling it done (R-35).

Scale & Sizing

Desktop-Sized Everything

  • Tell: padding, gaps, hero heights, and card sizes carried unchanged from desktop to mobile, so every section looks blown up on a phone.
  • Why: an element sized for a 1440px canvas dominates a 375px one. What reads as confident on desktop becomes oversized on mobile: nothing fits, nothing breathes, and the page feels like it was designed for a screen that is not the one in hand (R-03). Spacing and type should follow the design rhythm (R-05), and that rhythm has a smaller register on mobile.
  • Fix: give mobile its own size step: a smaller type scale, tighter section padding, smaller gaps. Keep tap targets at their minimum size (see Tap Targets), but shrink everything else with intent at the breakpoint.

Fixed Pixel Type

  • Tell: font sizes in fixed px that never change between desktop and mobile, so headings and body text stay oversized on a phone.
  • Why: type that does not respond to the viewport is type sized for one screen. R-03 demands the mobile layout hold up, and R-06 requires typography that improves readability. A headline that spans the whole phone width or a body size tuned for a wide line breaks both.
  • Fix: use fluid type (clamp()) so sizes scale with the viewport, or set a smaller type step at the breakpoint. Verify the result at a narrow width (R-35), not just in the desktop preview.

100vh Sections

  • Tell: hero and section heights set to 100vh, so a section fills the whole phone screen and pushes everything else below the fold.
  • Why: a full-viewport section designed for a desktop monitor becomes a giant slab on a phone, and 100vh includes the browser chrome, so it overflows the visible area on mobile browsers. It dominates the layout instead of introducing it (R-03).
  • Fix: let sections size to their content (auto), or use the dynamic viewport unit (dvh) where a real full-height section is intended. Nothing below the fold should be an accident of viewport units.

Huge Empty Padding

  • Tell: desktop-scale section padding (96px, 128px) kept on mobile, creating tall empty gaps between sections on a phone.
  • Why: padding tuned for a large canvas turns into wasted vertical space on a small one. The page scrolls through emptiness, and the rhythm R-05 calls for becomes a void between every section.
  • Fix: reduce section padding at the breakpoint to a mobile register (roughly half or less), and check that the page scrolls at a natural density instead of through deserts of space.

Grids & Stacking

Columns That Don't Collapse

  • Tell: a multi-column grid keeps its side-by-side columns on mobile, so the columns shrink, the text wraps awkwardly, and elements collide.
  • Why: a grid is a promise about how much width is available. When the viewport narrows and the grid does not re-stack, every column gets a sliver, text becomes unreadable, and cards overlap (R-03). This is the collision failure: desktop's side-by-side becomes mobile's pileup.
  • Fix: collapse the grid to a single reflowing column at the breakpoint. Side-by-side becomes stacked, and each item gets the full width again. Re-verify at a narrow width (R-35).

Fixed-Width Grid

  • Tell: grid-template-columns set in fixed px, or grid areas that cannot reflow, so the grid stays rigid when the viewport shrinks.
  • Why: a fixed-px track does not care about the viewport; it keeps its width and forces overflow or collision. The layout was built for one canvas and cannot change shape (R-03).
  • Fix: size tracks with minmax() or auto-fit and auto-fill so columns shrink and wrap with the content, and define grid areas that collapse at the breakpoint. The grid should be fluid by default, rigid only where a fixed size is deliberate.

Forced 12-Column

  • Tell: a 12-column grid forced onto mobile content that needs one or two columns, so spans look arbitrary and the math fights the layout.
  • Why: a 12-column system is for a wide canvas with many columns of content. Forcing it on a phone makes every element a fraction of an invisible grid the user never sees, and the content gets fitted to the grid instead of the grid to the content (R-03).
  • Fix: let columns follow the content. On mobile the content usually wants one column, or two at most; the 12-column span only makes sense where the layout genuinely has that many things side by side.

Overflow

Horizontal Scroll Leak

  • Tell: the page scrolls sideways because some element is wider than the viewport: a table, a code block, an image, a long unbroken string.
  • Why: horizontal scrolling is a broken promise on mobile. The user cannot see where the page ends, and the layout visibly spills off the screen (R-03). It is the most common overflow slop because the offender is off-screen in the desktop preview and goes unnoticed until a phone opens it.
  • Fix: find the element wider than the viewport (a table that needs a reflow layout or a scroll container, a code block that wraps, images with max-width: 100%), then contain or reflow it. Verify the whole page has zero horizontal scroll at the narrowest target (R-35).

Overflow Hidden Clipping

  • Tell: overflow: hidden on a container that clips content at narrow widths, hiding text or controls instead of letting them fit.
  • Why: clipping is hiding a failure. When a container cuts off its content because the layout cannot fit it, the user loses information and interaction (R-03). The zoom and text-resize angle on this is covered by antislop-human.
  • Fix: let the content reflow instead of clipping: allow the container to grow, wrap its content, or collapse it at the breakpoint. Clip only where cropping is the design intent (like a thumbnail), never where it hides content.

Fixed-Width Children

  • Tell: flex or grid children with a fixed px width or min-width that burst out of their parent on a narrow screen.
  • Why: a child sized in absolute px does not care how much room its parent has. On mobile the parent shrinks and the child stays wide, so it overflows the container and the page (R-03).
  • Fix: size children with relative units and let them wrap (flex-wrap, fluid widths, min-width: 0 on grid children). A child should be allowed to shrink with its container, not hold a desktop size.

Tap Targets

Under-Sized Targets

  • Tell: buttons, links, and controls smaller than about 44 x 44 px, easy to hit on desktop with a cursor but hard to hit with a thumb.
  • Why: a desktop cursor has pixel accuracy; a thumb does not. A target that is fine at 16px becomes an exercise in frustration on a phone, and it fails the promise that the UI is usable on mobile (R-03).
  • Fix: give interactive targets a minimum touch area of 44 x 44 px, using padding or a larger hit box even when the visual is smaller. Verify the whole set of controls at a phone width (R-35).

Targets Too Close

  • Tell: 44px targets packed together with no gap, so a thumb tap hits the wrong one.
  • Why: target size matters only with target spacing. Two large controls touching each other behave like one large control: the user cannot reliably pick either (R-03).
  • Fix: leave a clear gap between adjacent interactive targets, at least a few px and ideally enough that the finger press area does not overlap. Spacing is the other half of tappability.

Hover-Only Interactions

  • Tell: menus, reveals, and tooltips that exist only on hover, so a touch user can never open them.
  • Why: there is no hover on a touchscreen. An interaction that only responds to hover simply does not exist for mobile users, and any control that relies on it is a dead end (R-03).
  • Fix: give every hover-only interaction a tap equivalent: a menu that opens on hover also opens on tap, a reveal also shows on click, and interactive elements show visible :active feedback so a tap registers. Test by using the UI with touch alone (R-35).

Mobile Navigation

Nav That Stays Desktop

  • Tell: the desktop top bar with its row of links kept side by side on mobile, so the links crowd, wrap into two rows, or spill past the viewport.
  • Why: a desktop nav is sized for a wide canvas. Kept as a row on a phone it becomes a mess of cramped links, and it is the first thing a mobile user meets (R-03). Navigation is where reflow matters most: the user has to find where to go before they can go anywhere.
  • Fix: collapse the nav into a mobile pattern at the breakpoint: a bottom nav for the handful of primary destinations, or a menu for the rest. The links reflow out of the row, and the primary destinations stay one thumb tap away. Verify it holds at a narrow width (R-35).

The Bare Hamburger

  • Tell: everything hidden behind a hamburger icon with no label and no hint, so a user never realizes the menu exists or cannot tell what it opens.
  • Why: a bare hamburger assumes the user already knows what the icon means and that a menu hides behind it. That is knowledge the mobile user may not have, and on mobile the hidden menu can hold the only way around the app (R-03).
  • Fix: keep the menu discoverable: label the hamburger ("Menu"), or keep the primary destinations visible and hide only the secondary ones. If a menu is the only way to reach something important, that reachability has to be obvious.

Bottom Nav That Eats Content

  • Tell: a fixed bottom nav bar that sits over the content, covering the last list items, the final button, or the form the user was trying to finish.
  • Why: a fixed bar takes real space on a small screen. If nothing reserves that space, the content scrolls under it and the user cannot reach what is hidden, especially at the very bottom of the page (R-03).
  • Fix: reserve the bar's height for the content: scroll padding on the page and safe-area insets where the device needs them, so nothing important is ever hidden behind it. Verify at a narrow width that the last item is reachable (R-35).

Sticky Nav Steals the Screen

  • Tell: a sticky header or tall bottom bar that holds a large fixed height, so a big slice of the phone screen is always taken by navigation.
  • Why: on a small viewport every fixed pixel of chrome is a pixel of content lost. A tall sticky header turns the visible area into a letterbox and the content into a sliver (R-03).
  • Fix: keep fixed nav compact: small enough that the content stays dominant, and collapse or shrink it on scroll where appropriate. Navigation should be present, not the main occupant of the screen.

Layoutmobile Skill Checklist

Run these alongside the core Delivery Gate when the task is mobile or responsive layout work. All answers must be yes:

  • Does the layout reflow into a distinct mobile state rather than a squeezed desktop? (R-03)
  • Are there defined states across the width range, not just phone and desktop, so tablet and small-laptop widths are never a stretched stack or a crammed grid? (R-03, R-35)
  • Do sizes (type, padding, gaps, section heights) use a mobile scale, not desktop sizes unchanged? (R-03, R-05)
  • Do multi-column grids collapse and stack instead of colliding? (R-03)
  • Is there no horizontal overflow and nothing clipped? (R-03)
  • Are interactive targets at least 44 x 44 px with spacing between them? (R-03)
  • Do hover-only interactions have a tap equivalent with visible feedback? (R-03)
  • Does the navigation reflow into a mobile pattern (bottom nav or menu) instead of a squeezed desktop row? (R-03)
  • Do fixed nav bars (bottom nav, sticky headers) never cover content and respect safe areas? (R-03)
  • Is the layout verified at mobile breakpoints? (R-35)

发现问题?提交给管理员复核

评分:

评论 (0)

暂无评论,成为第一个评论者吧!