agentleFS
malinskibeniaminmalinskibeniamin/skills/mobile-native/SKILL.md

mobile-native

Skill4 starsChanged 10 days agoMITView on GitHub

Fix mobile web viewport, touch, safe-area, keyboard, scrolling, or PWA chrome issues. Use for phone-specific web behavior, not React Native or Swift.

22 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use animate-expo, write-swift and 3 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • sanmidableSkill

    animate-expo

    Also in 13 projects that use this

  • sanmidableSkill

    write-swift

    Also in 14 projects that use this

  • cal1888Skill

    pick-ui-library

    Pick the right library for a given frontend task from a curated, opinionated list — numbers, OTP inputs, charts, command menus, virtualization, drag and drop, toasts, state, styling, and more. Only runs when explicitly invoked; it does not trigger on its own.

    Also in 16 projects that use this

  • wxyhgkSkill

    find-animation-opportunities

    Search a codebase or UI for places that don't animate but should, and reject everything that shouldn't. Read-only; it proposes motion with exact values, it does not implement it. Use when the user asks "what could be animated here?" or wants to "make this feel more alive". For fixing existing animations, use improve-animations or review-animations instead.

    Also in 17 projects that use this

  • arkanSkill

    review-animations

    Reviews animation and motion code against a high craft bar derived from Emil Kowalski's design engineering philosophy. Default to flagging; approval is earned.

    Also in 17 projects that use this

The file

We split this skill into the rules it gives an agent

9 rules. 0 are common, 5 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 22 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Remove browser/platform friction without disabling accessibility.

    line 6
  2. Distinctive:

    Read PLATFORM.md for keyboard, gesture, overscroll, and PWA details.

    line 35
  3. Very specific:

    Check current browser support before applying optional viewport/meta features.

    line 36
  4. Very specific:

    Keep width=device-width, initial-scale=1.

    line 42
  5. Very specific:

    Never set user-scalable=no or cap zoom at maximum-scale=1.

    line 43
  6. Very specific:

    Do not replace click with pointerdown activation: press feedback differs from committing an action.

    line 46
  7. Distinctive:

    Keep listeners passive unless a narrowly justified cancellation actually needs otherwise.

    line 51
  8. Distinctive:

    If hardware is unavailable, report code/emulation evidence and the remaining phone checks.

    line 58
  9. Distinctive:

    Do not expose the dev server on the network solely to satisfy this skill.

    line 59

“Common” is measured: kept by at least 6 in 10 of the 22 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Remove browser/platform friction without disabling accessibility. Adapted from Emil Kowalski; provenance. Review requests stay read-only; fixes follow project TDD and delivery gates.

Diagnose and scope

For responsive grouping, RTL and safe-area structure, read interface compatibility, then better-layout. For font rendering or input zoom, use better-typography without disabling user scaling or replacing this skill's device checks.

Identify the reported phone/browser, layout, input path, keyboard/PWA mode, and supported devices. Reproduce before changing defaults. Use capability queries rather than user-agent sniffing; touch and mouse can coexist. Existing UI primitives and tokens remain owners.

SymptomNarrow correction
Sticky hover after tapGate decorative hover with (hover: hover) and (pointer: fine); keep focus/press feedback
Tap highlight competes with designed feedbackScope transparent tap highlight to controls only after equivalent feedback exists
Bottom action under browser chrome100dvh for the app shell; 100svh for stable hero content
Input focus zoomAt least 16 CSS px computed input text; retain user scaling
Press feels lateCSS :active/pointer-down feedback; keep activation on accessible click/submit
Scroll chains behind a sheetoverscroll-behavior: contain on the actual scroller
Notch/home indicator covers contentviewport-fit=cover, then padding with env(safe-area-inset-*, 0px)
Control label selected while draggingScope user-select: none to that control; keep readable content selectable
Custom horizontal gesture fights scrollingLocal touch-action: pan-y pinch-zoom; preserve vertical scroll and pinch zoom
Theme chrome mismatchesTheme metadata consistent with actual resolved app theme

Read PLATFORM.md for keyboard, gesture, overscroll, and PWA details. Check current browser support before applying optional viewport/meta features. For custom drag/swipe/sheet tracking, release physics or cancellation, load gestures; this skill retains browser/viewport ownership.

Preserve function

  • Keep width=device-width, initial-scale=1; preserve pinch zoom and large text. Never set user-scalable=no or cap zoom at maximum-scale=1.
  • Restrict gesture ownership to its handle/surface. Preserve pinch zoom when setting touch-action; none is not a general drag fix. Prefer native scroll/snap when it works.
  • Do not replace click with pointerdown activation: press feedback differs from committing an action. Keyboard activation, scrolling away, and pointercancel must work.
  • Root overscroll changes are product-specific. Keep browser refresh/scroll behavior on documents; contain only the app region that owns the gesture.
  • Preserve copy/select, link context menus, focus rings, and semantic control roles. Keep listeners passive unless a narrowly justified cancellation actually needs otherwise.

Verify

Replay touch and keyboard journeys, pinch zoom/200% text, portrait/landscape, open keyboard, address-bar expansion/collapse, nested scrolling, and supported light/dark/PWA modes. Browser emulation checks layout; record which behaviors were confirmed on physical hardware. If hardware is unavailable, report code/emulation evidence and the remaining phone checks. Do not expose the dev server on the network solely to satisfy this skill.

Report symptom -> changed declaration -> observed behavior, plus unverified device paths.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.