Agent skill

Fitts Law Touch Targets

by hashgraph-online in hashgraph-online/awesome-codex-plugins

A skill your agent uses when designing for touch — phones, tablets, kiosks, in-car displays, smart-TV remotes, anything where the input is a finger or thumb rather than a precise pointer.

Apache-2.0Auto-check passedMobile

Install Fitts Law Touch Targets

skills CLI
$ npx skills add hashgraph-online/awesome-codex-plugins --skill fitts-law-touch-targets -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install hashgraph-online/awesome-codex-plugins fitts-law-touch-targets --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/fitts-law-touch-targets .claude/skills/fitts-law-touch-targets && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
fitts-law-touch-targets
GitHub stars
1.3k
Token cost
~2.7k tokens
SKILL.md length
997 words
Files
2 (incl. references)
Skills in repo
716
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when designing for touch — phones, tablets, kiosks, in-car displays, smart-TV remotes, anything where the input is a finger or thumb rather than a precise pointer.

  • Works in 4 steps: The thumb test. Hold your phone… → The fingertip overlay. In design comps,… → Real-device testing on the smallest… → …
  • Designing for touch — phones
  • SKILL.md covers Minimum sizes, Spacing between targets, The thumb-reach map and Occlusion (the finger covers…, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Fitts Law Touch Targets is an agent skill from hashgraph-online/awesome-codex-plugins. Use this skill when designing for touch — phones, tablets, kiosks, in-car displays, smart-TV remotes, anything where the input is a finger or thumb rather than a precise pointer. Trigger when sizing buttons for mobile, debugging "users keep mistapping," designing a mobile bottom-nav, picking icon sizes for a phone toolbar, or reviewing whether a desktop UI is touch-friendly. Sub-aspect of fitts-law; read that first if you haven't already.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/touch-research.md`).

It sits in Mobile, covering Mobile UI design and Mobile testing and debugging. The repository describes itself as: A curated list of awesome OpenAI Codex / ChatGPT plugins, skills, and resources. The 1 Codex Marketplace. See live plugins at: https://hol.org/plugins/best-codex-plugins. The licence is Apache-2.0.

When your agent uses it

  • Designing for touch — phones
  • In-car displays
  • Smart-TV remotes
  • Anything where the input is a finger

Example prompts

  • “users keep mistapping,”
  • “/fitts-law-touch-targets”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. The thumb test. Hold your phone one-handed, naturally. Try to tap every primary action. Anything that requires a hand-shift is…
  2. The fingertip overlay. In design comps, overlay a 44×44 circle on every interactive element. Anything where the circle exceeds the visual…
  3. Real-device testing on the smallest target screen. A design that works on a Pixel 7 may fail on a small Android device or iPhone SE. Test…
  4. The bystander test. Watch someone else use your app. Where do they hesitate or correct themselves? Each correction is a Fitts-or-occlusion…

What it can do on your machine

Read from SKILL.md and the folder at commit 3e1456a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are html and css).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Fitts Law Touch Targets loads about 2.7k tokens when it runs, and up to ~3.9k if it reads all its reference files. Until then it costs about 117 tokens; SKILL.md has 997 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~117
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from hashgraph-online/awesome-codex-plugins at commit 3e1456a, republished under its Apache-2.0 licence (© hashgraph-online). 997 words, ~2,686 tokens.

Download SKILL.mdSave it as .claude/skills/fitts-law-touch-targets/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
fitts-law-touch-targets
description
Use this skill when designing for touch — phones, tablets, kiosks, in-car displays, smart-TV remotes, anything where the input is a finger or thumb rather than a precise pointer. Trigger when sizing buttons for mobile, debugging "users keep mistapping," designing a mobile bottom-nav, picking icon sizes for a phone toolbar, or reviewing whether a desktop UI is touch-friendly. Sub-aspect of `fitts-law`; read that first if you haven't already.

Fitts's Law for touch targets

The finger is a much wider, much less precise pointer than a mouse cursor. Fitts's Law still applies, but the constants change dramatically — and a few touch-specific phenomena (occlusion, thumb reach, edge gestures) layer on top. This skill covers the practical rules.

Minimum sizes

Every major touch platform publishes a recommended minimum. They converge:

Platform / specMinimum targetNotes
Apple HIG (iOS)44×44 ptThe most-cited number; matches average finger contact.
Material Design (Android)48×48 dpRoughly equivalent to Apple's 44pt at common densities.
Microsoft (Windows touch)40×40 effective pxSlightly smaller; Microsoft's research basis.
WCAG 2.5.5 (Level AAA)44×44 CSS pxStrictest accessibility minimum.
WCAG 2.5.8 (Level AA, 2.2)24×24 CSS px (with adequate spacing)Newer, more lenient minimum.

The practical rule: 44×44 CSS pixels for any touchable element. This is the safe number across platforms and accessibility levels. Going smaller is occasionally defensible in specific dense expert contexts; never as a default.

The visible icon inside the button can be smaller (16–24px is common). The hit area — the actual touchable region — is what 44×44 measures.

css
/* Right: a small icon with a generous tap area */
.icon-button {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 10px;        /* keeps icon centered while tap area stays at 44 */
  border: 0;
  background: transparent;
  border-radius: 22px;
}
.icon-button svg { width: 20px; height: 20px; }

Spacing between targets

Fitts's Law is about acquiring one target. When targets are clustered, spacing between them prevents accidental neighbor-taps. The convention:

  • At least 8px of clear space between adjacent touch targets.
  • 44×44 hit area applies to each target, even if visually they overlap (e.g., padded buttons share visual edges).

For dense clusters (chip rows, segmented controls), increase visual differentiation: bordered, with internal padding, with adequate gap.

The thumb-reach map

When a phone is held one-handed, the thumb can reach some screen regions easily and others only with strain. Research (Hoober and others) maps this:

+--------------------+
|       hard         |  <- top of screen, far from thumb base
|   hard | medium    |
| medium | easy      |
| medium | easy      |
| medium | easy      |  <- bottom-right (right hand) is easiest
+--------------------+

For right-handed users, the bottom-right of the screen is easiest; the top-left is hardest. Left-handed users mirror.

Practical implications:

  • Primary actions go in the lower portion of the screen. Floating action buttons (FAB) at bottom-right are a strong Fitts-and-thumb-reach win.
  • Bottom navigation beats top navigation for high-frequency tap-to-navigate patterns.
  • Top-bar actions should be infrequent or hand-agnostic (search, settings, profile menu — not "save" or "publish").
  • Reachability features (iOS double-tap-home; Android one-handed mode) exist because top corners are genuinely hard.
html
<!-- Bottom nav: thumb-friendly, primary destinations -->
<nav style="position: fixed; bottom: 0; left: 0; right: 0;">
  <!-- 3-5 destinations, evenly spaced, 56px+ tall -->
</nav>

<!-- FAB: bottom-right for right-handed primary action -->
<button style="position: fixed; bottom: 24px; right: 24px; width: 56px; height: 56px; border-radius: 28px;">
  <PlusIcon />
</button>

Occlusion (the finger covers the target)

Once the user's finger touches the screen, it covers the target. A few consequences:

  • Confirm visually after touch, not just on touch-up. The user wants to know the press registered before they lift.
  • Don't rely on the user reading text under their finger. Tooltips, micro-confirmations, "what does this do?" hints under the touch point are invisible.
  • Touch targets should provide visual state changes that radiate beyond the finger — color flash on the whole row, a ripple effect, an outline that extends past the contact area.

Material Design's ripple effect is a classic occlusion-mitigation: the ripple expands outward from the touch point, providing visible feedback that survives the finger's presence.

css
@keyframes ripple {
  to { transform: scale(4); opacity: 0; }
}
.button-pressed::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.2;
  animation: ripple 600ms;
}

Edge gestures and the safe area

Modern phones use the screen edges for system gestures (back-swipe, app-switcher, control-center). A button placed at the absolute edge competes with these gestures.

Practical rule: keep an 8–16px inset from the edges for primary interactive content. Use the system's safe-area insets for top notch and bottom home-indicator clearance:

css
.bottom-bar {
  padding-bottom: env(safe-area-inset-bottom);
}
.top-bar {
  padding-top: env(safe-area-inset-top);
}

The screen-edge Fitts-Law advantage still works for layout (a tap target abutting the edge is large in one dimension), but interaction must respect system gestures.

Hover states (and why they don't translate)

Touch devices have no hover. UI patterns that rely on hover-revealed actions (a row's "Edit" / "Delete" buttons that appear on cursor over) silently fail on touch. Mitigations:

  • Always-visible row actions (perhaps dimmed; see below). Touch users see and can tap them.
  • Press-and-hold to reveal a context menu (analogous to right-click).
  • Swipe gestures for revealed actions (iOS-style swipe-to-delete on a list row).

Don't ship "hover to discover the action" patterns to mobile.

Show full SKILL.md (370 more words)Show less

Worked examples

Example 1: a row in a list with an action button

Anti-pattern (mouse-only):

html
<li class="list-item">
  <span>Project Acme</span>
  <button class="hover-only" style="opacity: 0;">Open</button>
</li>
<style>
  .list-item:hover .hover-only { opacity: 1; }
</style>

On touch, the button is invisible — and even if you tap it, you can't see it.

Right (touch-friendly):

html
<li class="list-item" style="display: flex; align-items: center; padding: 12px 16px; min-height: 56px;">
  <span style="flex: 1;">Project Acme</span>
  <button aria-label="Open Acme" style="width: 44px; height: 44px;">
    <ChevronRightIcon />
  </button>
</li>

The action is always visible; the row itself meets the 44px height minimum (56px is even better).

Example 2: a numeric stepper
html
<div class="stepper" style="display: inline-flex; align-items: center; gap: 12px;">
  <button aria-label="Decrease" style="width: 44px; height: 44px;">−</button>
  <input type="number" value="1" style="width: 60px; height: 44px; text-align: center;" />
  <button aria-label="Increase" style="width: 44px; height: 44px;">+</button>
</div>

Both buttons are 44×44 with 12px gap to the input — generous spacing prevents misclicks.

Example 3: a floating action button (FAB)
html
<button class="fab" aria-label="New post" style="
  position: fixed;
  bottom: calc(24px + env(safe-area-inset-bottom));
  right: 24px;
  width: 56px; height: 56px;
  border-radius: 28px;
  background: var(--brand);
  color: white;
  display: grid; place-items: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
">
  <PlusIcon />
</button>

Bottom-right for thumb reach. 56×56 hit area. Safe-area-inset for home-indicator clearance. Subtle shadow because FABs do float above content.

Example 4: a tab bar
html
<nav class="tab-bar" style="
  position: fixed; bottom: 0; left: 0; right: 0;
  display: grid; grid-template-columns: repeat(5, 1fr);
  height: calc(56px + env(safe-area-inset-bottom));
  padding-bottom: env(safe-area-inset-bottom);
  background: white;
  border-top: 1px solid hsl(0 0% 90%);
">
  <button class="tab" aria-current="page">
    <HomeIcon style="width: 24px; height: 24px;" />
    <span style="font-size: 10px;">Home</span>
  </button>
  <!-- four more tabs -->
</nav>

<style>
  .tab {
    display: grid; place-items: center; gap: 2px;
    border: 0; background: transparent;
    color: hsl(0 0% 50%);
  }
  .tab[aria-current="page"] { color: var(--brand); }
</style>

5 tabs across the bottom. Each tab gets ~76px width × 56px height — generously above 44×44.

Anti-patterns

  • Tiny X close on a popover. A 16×16 X in the corner. On touch, nearly impossible to hit reliably.
  • Stacked menu items at 32px row height. The user means to tap "Settings" and gets "Sign out." Make rows ≥ 44px (preferably 48–56px) on touch.
  • Edge-flush primary actions. A "Send" button at the absolute right edge that triggers the system back-gesture instead. Inset 8–16px.
  • Hover-only actions. Row actions, contextual menus, tooltips that only appear on cursor-over. Either always-visible or accessible via tap-to-reveal.
  • Inert spacing. A 44×44 visual button with only 16×16 of actual touchable area (because some CSS issue). Audit with browser DevTools' touch emulator.

Heuristics

  1. The thumb test. Hold your phone one-handed, naturally. Try to tap every primary action. Anything that requires a hand-shift is wrong-position.
  2. The fingertip overlay. In design comps, overlay a 44×44 circle on every interactive element. Anything where the circle exceeds the visual element's bounds is fine; anything smaller than the circle is too small.
  3. Real-device testing on the smallest target screen. A design that works on a Pixel 7 may fail on a small Android device or iPhone SE. Test on actual hardware in actual hands.
  4. The bystander test. Watch someone else use your app. Where do they hesitate or correct themselves? Each correction is a Fitts-or-occlusion failure.
  • fitts-law (parent).
  • fitts-law-screen-edges — companion for desktop; some overlap on mobile (safe areas).
  • affordance (parent plugin) — touch targets need visual affordance to be discoverable.
  • accessibility-operable (process plugin) — touch target sizes are an accessibility minimum; don't go below.

© hashgraph-online, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/fitts-law-touch-targets of hashgraph-online/awesome-codex-plugins.

  • SKILL.md
  • references/touch-research.md

Open the folder on GitHubat commit 3e1456a

Compare with similar skills

Fitts Law Touch Targets next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Fitts Law Touch Targets compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fitts Law Touch Targets this skillhashgraph-online/awesome-codex-plugins1.3k—~2.7kAutomated safety check: PassApache-2.0
Phone Usepockebot/openpocket847—~1.1kAutomated safety check: PassMIT
Phoneagentrounak/PhoneAgent800—~2.2kAutomated safety check: PassMIT
Kortix Brandkortix-ai/suna20k—~4kAutomated safety check: PassCustom licence
HugeIcons Finder for Composesue1231513/orangechat4081 repos~467Automated safety check: PassCustom licence
Phone HarnessShawnPana/phone-harness3.2k—~7.7kAutomated safety check: PassMIT

Similar skills

  • Phone Use

    pockebot/openpocket

    Use OpenPocket MCP tools to inspect or control an Android emulator, physical Android phone, Android TV, or ADB-backed app.

    847 GitHub stars~1.1k tokensUpdated 3 mo ago
    MobileAuto-check passed
  • Phoneagent

    rounak/PhoneAgent

    Control a connected iPhone, iOS simulator, Android emulator, or Android device from macOS through PhoneAgent's JSON-RPC bridge.

    800 GitHub stars~2.2k tokensUpdated 1 mo ago
    MobileAuto-check passed
  • Kortix Brand

    kortix-ai/suna

    Load FIRST for anything that carries the Kortix look or voice: product or mobile UI, copy of any kind, decks, social, images, email, CLI output, anything with the logo, and reviews of these.

    20k GitHub stars~4k tokensUpdated today
    MobileAuto-check passed
  • HugeIcons Finder for Compose

    sue1231513/orangechat

    Looks up available HugeIcons by keyword from the compiled dependency JAR in the Gradle cache, then shows the correct Compose import for each match.

    408 GitHub starsUsed in 1 repo~467 tokens
    MobileAuto-check passed
  • Phone Harness

    ShawnPana/phone-harness

    Control the user's phone - an iPhone through the Mac's iPhone Mirroring window, an Android over adb, a rented cloud Android, or a cloud iPhone over HTTPS: open apps, tap, type, swipe, read the screen.

    3.2k GitHub stars~7.7k tokensUpdated today
    MobileAuto-check passed
  • Maa Issue Log Analysis

    MaaAssistantArknights/MaaAssistantArknights

    分析 MaaAssistantArknights 上游仓库公开 Issue(https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/...

    24k GitHub stars~4k tokensUpdated today
    MobileAuto-check passed

More from hashgraph-online/awesome-codex-plugins

All 715 skills in this repo
  • Anime Reaction Gif

    hashgraph-online/awesome-codex-plugins

    Create original anime-style reaction stickers as looping GIFs and MP4 previews, using generated character pose sheets and timed key poses.

    1.3k GitHub stars~922 tokensUpdated today
    Auto-check passed
  • Calibredb

    hashgraph-online/awesome-codex-plugins

    Manage and query Calibre libraries with the calibredb CLI (local paths or Calibre Content server URLs).

    1.3k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Rust API Test Harness

    hashgraph-online/awesome-codex-plugins

    A skill your agent uses when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test…

    1.3k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Art

    hashgraph-online/awesome-codex-plugins

    Make a studio's game look like something at build time — a cover from a real frame of the game (free), painted covers, backdrops, textures and character plates from image models through the…

    1.3k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Calle

    hashgraph-online/awesome-codex-plugins

    Use CALL-E from Codex through the calle CLI. An agent skill from hashgraph-online/awesome-codex-plugins.

    1.3k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Game Balance Economy

    hashgraph-online/awesome-codex-plugins

    Balance game difficulty, resources, rewards, probability, progression, economies, and dominant strategies.

    1.3k GitHub stars~618 tokensUpdated today
    Auto-check passed

Categories

Questions about Fitts Law Touch Targets

What does Fitts Law Touch Targets do?

A skill your agent uses when designing for touch — phones, tablets, kiosks, in-car displays, smart-TV remotes, anything where the input is a finger or thumb rather than a precise pointer. Fitts Law Touch Targets is an agent skill from hashgraph-online/awesome-codex-plugins. Use this skill when designing for touch — phones, tablets, kiosks, in-car displays, smart-TV remotes, anything where the input is a finger or thumb rather than a precise pointer.

When should I use Fitts Law Touch Targets?

Fitts Law Touch Targets fits situations like: designing for touch — phones; in-car displays; smart-TV remotes; anything where the input is a finger.

How do I install Fitts Law Touch Targets in Claude Code?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill fitts-law-touch-targets -a claude-code`. Or copy the skill folder (plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/fitts-law-touch-targets in hashgraph-online/awesome-codex-plugins) into .claude/skills/fitts-law-touch-targets in your project. Claude Code loads it when a task matches its description.

How do I install Fitts Law Touch Targets in Codex?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill fitts-law-touch-targets -a codex`. Or copy the skill folder (plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/fitts-law-touch-targets in hashgraph-online/awesome-codex-plugins) into .agents/skills/fitts-law-touch-targets in your project. Codex loads it when a task matches its description.

Can I use Fitts Law Touch Targets in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hashgraph-online/awesome-codex-plugins --skill fitts-law-touch-targets -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fitts-law-touch-targets, .gemini/skills/fitts-law-touch-targets, .github/skills/fitts-law-touch-targets and .opencode/skills/fitts-law-touch-targets in your project.

What does Fitts Law Touch Targets need to run?

SKILL.md names no scripts, command-line tools or credentials: Fitts Law Touch Targets is instructions for the agent only.

Does Fitts Law Touch Targets access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Fitts Law Touch Targets safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Fitts Law Touch Targets use?

Fitts Law Touch Targets is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Fitts Law Touch Targets use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.2k tokens, read only when the agent opens those files.

What are the alternatives to Fitts Law Touch Targets?

Skills that share tags, products or a category with Fitts Law Touch Targets: Phone Use (pockebot/openpocket, 847 stars), Phoneagent (rounak/PhoneAgent, 800 stars), Kortix Brand (kortix-ai/suna, 20k stars) and HugeIcons Finder for Compose (sue1231513/orangechat, 408 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fitts Law Touch Targets?

hashgraph-online (a GitHub organization) maintains it in hashgraph-online/awesome-codex-plugins, which has 1,267 GitHub stars. The repository holds 716 skills in this directory. The repository was last updated on October 10, 2026.

Source: hashgraph-online/awesome-codex-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.