Agent Skill that helps AI agents build mobile friendly, responsive, overflow-free web UI that stays consistent with your project
SaferSkills independently audited mobile-responsive (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Every piece of web UI this skill touches must (1) work flawlessly from 320px to large desktop, (2) never overflow horizontally, (3) look deliberately designed, and (4) stay visually consistent with the rest of the project, both past and future.
Work mobile-first: the base, unprefixed styles target the smallest screen, then you add complexity upward. Never start from desktop and shrink down.
Before writing or changing any UI, read what already exists so new work blends in instead of clashing. Beautiful and consistent beats clever and isolated.
of them.
4 / 8 / 16 / 24 / 32, or Tailwind's gap-2 gap-4 gap-6). Reuse the same steps.sm md lg, or custom values). Use the same set, and don't invent new breakpoints.the old cards. If the project has no convention yet, establish a clean one (see references/design-consistency.md) and apply it consistently so future components have a pattern to follow.
If tailwind.config, a theme file, or a design-tokens file exists, read it. That is the source of truth for spacing, breakpoints, and colors.
no media query.
(Tailwind sm: md: lg: are min-width; in CSS use @media (min-width: ...)).
Horizontal scroll on mobile is a defect, never acceptable. Prevent it at the source. Most common causes, with fixes:
w-full max-w-[Npx] (Tailwind) or width:100%; max-width:Npx.min-w-0 (and truncate on text that should ellipsis).img/video/iframe/svg get max-w-full h-auto.break-words / overflow-wrap: anywhere.overflow-x-auto so the table scrolls, not the page.100vw includes the scrollbar and overflows, so prefer w-full.overflow-hidden on a sized parent.After building, mentally (or with scripts/check-overflow.js) confirm zero horizontal scroll at every width in the device matrix below. Full deep-dive in references/overflow-prevention.md.
Responsive doesn't mean squished. Aim for layouts that look composed at every size.
a single stack on mobile (grid-cols-1 sm:grid-cols-2 lg:grid-cols-3), rather than keeping cramped columns.
clamp() or responsive utilities so theydon't dwarf small screens (text-2xl md:text-4xl).
px-4 md:px-8) socontent never kisses the edge; scale gaps down on mobile (gap-4 md:gap-8).
min-h-11, real padding).max-w-prose / ~65ch).md; don'tjust let them wrap into a mess.
order-* / flex-col-reverse so the most importantthing (usually the headline or primary CTA) comes first on mobile.
A layout isn't "mobile responsive" because it survives one phone width. Walk it across the matrix:
| Width | Represents |
|---|---|
| 320px | Smallest phones, the stress test |
| 375px | Standard phone |
| 414px | Large phone |
| 768px | Tablet portrait |
| 1024px | Tablet landscape / small laptop |
| 1280px | Desktop |
| 1440px+ | Large desktop |
At each one: no horizontal scroll, no clipped/overlapping content, readable type, tappable controls, intact alignment with neighboring sections. Then state in one or two sentences what you changed and why. Do not touch unrelated code.
max-width queries except for genuinedesktop-only behavior.
spacing/type scale. Reuse tokens and conventions (Step 0).
rem / % / fr / vw / minmax / clamp over fixedpx; never set fixed pixel heights on containers with variable content.
that looks intentional.
make sure your new component is consistent with them.
references/breakpoints.md: breakpoint values, device matrix, container queries, fluid type.references/overflow-prevention.md: every overflow cause, fix, and debugging technique.references/design-consistency.md: extracting and matching a project's design language; building a token system when none exists.references/frameworks.md: stack-specific syntax (Tailwind, plain CSS, CSS Modules, styled-components, Bootstrap, Flutter web).Before (fixed width, desktop-only, will overflow on phones):
<div className="flex w-[960px] gap-8 p-10">
<img src="/hero.png" width="600" />
<div>
<h1 className="text-5xl">Welcome</h1>
<p>Some long description...</p>
</div>
</div>After (fluid, stacks on mobile, no overflow, scales nicely, reuses the project's spacing steps):
<div className="flex flex-col md:flex-row w-full max-w-[960px] gap-4 md:gap-8 px-4 py-6 md:p-10">
<img src="/hero.png" className="w-full md:max-w-[600px] h-auto rounded-lg" />
<div className="min-w-0">
<h1 className="text-3xl md:text-5xl">Welcome</h1>
<p className="max-w-prose break-words">Some long description...</p>
</div>
</div>~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.