用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Objective-Arts/lens-dist --skill interaction命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | interaction |
| description | Interaction design - input fundamentals, sketching UX |
Design for how humans actually interact with devices. Input is not an afterthought.
Design is exploration. Sketches are not deliverables - they're thinking tools.
Rules:
Every input device has strengths and weaknesses. Design for the device.
New interactions take decades from invention to mainstream. Don't force novel interactions on users.
Constraints:
Rules:
/* Touch targets */
.touch-target {
min-width: 44px;
min-height: 44px;
padding: 12px; /* Generous padding */
}
/* Spacing between targets */
.button + .button {
margin-left: 8px; /* Minimum 8px gap */
}
Constraints:
Rules:
/* Hover states are mandatory */
.clickable:hover {
background: var(--hover-bg);
}
/* Smaller targets acceptable */
.desktop-button {
min-height: 32px; /* Can be smaller than touch */
}
Constraints:
Rules:
/* Focus must be visible (never outline: none without replacement) */
:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
}
/* Tab order: logical, top-to-bottom, left-to-right */
Time to reach a target depends on distance and size.
Time = a + b * log2(Distance/Size + 1)
Implications:
Rules:
┌─────────────────────────┐
│ Hard to reach │ ← Nav, settings
│ │
│ ────────────────── │
│ │
│ Natural reach │ ← Primary content
│ │
│ ────────────────── │
│ │
│ Easy (thumb) │ ← Primary actions
└─────────────────────────┘
Rules:
<!-- Bottom navigation for primary actions -->
<nav class="fixed bottom-0 left-0 right-0">
<a href="/" class="touch-target">Home</a>
<a href="/search" class="touch-target">Search</a>
<a href="/profile" class="touch-target">Profile</a>
</nav>
<!-- Input + action in thumb zone -->
<div class="fixed bottom-0 left-0 right-0 p-4">
<input type="text" class="w-full touch-target" />
<button class="touch-target primary">Send</button>
</div>
<!-- Destructive action away from confirm -->
<div class="dialog-actions">
<button class="cancel">Cancel</button>
<!-- Gap prevents accidental tap -->
<button class="destructive">Delete</button>
</div>
Modern devices support multiple inputs. Design for all.
/* Hover for mouse, active for touch */
.button:hover {
background: var(--hover);
}
@media (hover: none) {
/* Touch device: no hover state */
.button:hover {
background: inherit;
}
}
.button:active {
background: var(--active); /* Works for both */
}
| Gesture | Use For | Don't Use For |
|---|---|---|
| Tap | Primary action | (always works) |
| Long press | Context menu | Primary actions |
| Swipe | Delete, navigation | Required actions |
| Pinch | Zoom | (keep default behavior) |
| Drag | Reorder, move | (always provide alternative) |
Rule: Every gesture must have a visible alternative (button/menu).
Input diversity includes assistive technology.
<!-- Screen reader + keyboard accessible -->
<button
aria-label="Delete item"
tabindex="0"
role="button"
onkeydown="if(event.key==='Enter') handleDelete()"
>
<svg aria-hidden="true">...</svg>
</button>
| Bad | Why | Fix |
|---|---|---|
| 24px buttons | Can't tap accurately | 44px minimum |
| Hover-only menus | Unusable on touch | Tap to open |
| Removing focus outline | Unusable with keyboard | Style it, don't remove |
| Swipe-only delete | Hidden, no undo | Add delete button |
| Close buttons in corners | Hard to reach | Larger target, visible |
| Score | Meaning |
|---|---|
| 10 | Works perfectly with all input types |
| 7-9 | Minor input-specific issues |
| 4-6 | One input type clearly favored |
| 0-3 | Unusable with some input types |
Combine with:
/usability - Affordances that signal input methods/mobile - Mobile-first input patterns/motion - Feedback motion for input acknowledgment