Agent skill

Spatial Design

by rshankras in rshankras/claude-code-apple-skills

Designing for visionOS — spatial layout and ergonomics (60pt eye targets, field-of-view placement, dynamic scale), eyes-and-hands input with hover rules, motion and visual comfort (the 0.2 Hz rule…

MITAuto-check passed

Install Spatial Design

skills CLI
$ npx skills add rshankras/claude-code-apple-skills --skill spatial-design -a claude-code

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

GitHub CLI
$ gh skill install rshankras/claude-code-apple-skills spatial-design --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/rshankras/claude-code-apple-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/visionos/spatial-design .claude/skills/spatial-design && 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
spatial-design
GitHub stars
783
Token cost
~2.4k tokens
SKILL.md length
1,133 words
Files
2
Skills in repo
41
Repo updated
First seen
Licence
MIT

At a glance

Designing for visionOS — spatial layout and ergonomics (60pt eye targets, field-of-view placement, dynamic scale), eyes-and-hands input with hover rules, motion and visual comfort (the 0.2 Hz rule…

  • Reviewing any visionOS app
  • SKILL.md covers When This Skill Activates, The prime directive: find the…, Layout & ergonomics and Input: eyes target, hands…, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Immersive experience

What it does

Spatial Design is an agent skill from rshankras/claude-code-apple-skills. Designing for visionOS — spatial layout and ergonomics (60pt eye targets, field-of-view placement, dynamic scale), eyes-and-hands input with hover rules, motion and visual comfort (the 0.2 Hz rule, vection, depth-cue agreement), immersion strategy, spatial sound, and the video-format decision guide. Use when designing or reviewing any visionOS app, window, volume, or immersive experience.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `immersive-environments.md`).

The repository describes itself as: Claude Code skills for Apple platform development (iOS, macOS, iPadOS) — product validation, code generation, App Store optimization, and more. The licence is MIT.

When your agent uses it

  • Reviewing any visionOS app
  • Immersive experience

Example prompts

  • “/spatial-design”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Edit, Glob, Grep

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

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

  • Network

    Links to these hosts (documentation or services it may open):

    • developer.apple.com

    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

Spatial Design loads about 2.4k tokens when it runs. Until then it costs about 102 tokens; SKILL.md has 1,133 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~102
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

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 rshankras/claude-code-apple-skills at commit 9ffb831, republished under its MIT licence (© rshankras). 1,133 words, ~2,446 tokens.

Download SKILL.mdSave it as .claude/skills/spatial-design/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
spatial-design
description
Designing for visionOS — spatial layout and ergonomics (60pt eye targets, field-of-view placement, dynamic scale), eyes-and-hands input with hover rules, motion and visual comfort (the 0.2 Hz rule, vection, depth-cue agreement), immersion strategy, spatial sound, and the video-format decision guide. Use when designing or reviewing any visionOS app, window, volume, or immersive experience.
allowed-tools
Read, Write, Edit, Glob, Grep
last_verified
2026-07-16
review_by
2027-06-22

Spatial Design (visionOS)

The design rules that make a visionOS app comfortable instead of exhausting — distilled from Apple's spatial-design sessions (WWDC23–26). Widget-specific rules live in visionos/widgets; custom immersive-environment production and budgets live in immersive-environments.md.

When This Skill Activates

  • Designing or reviewing a visionOS app, window, volume, or immersive space
  • "Users say it's tiring / uncomfortable / hard to hit controls"
  • Porting an iPad app and deciding what should become spatial
  • Adding hover effects, custom gestures, environments, or spatial audio
  • Choosing a video experience format (spatial, 180°, 360°, wide-FOV, Apple Immersive)

The prime directive: find the key moment

Don't window a 2D app. Identify the one thing only possible on visionOS — the "key moment" — and build around it. Immersion has three approaches, and full immersion is not mandatory: full environments · integration with real surroundings (scene sensing) · meaningful audio.

Layout & ergonomics

  • Wide beats tall — layouts match the human field of view; turning the head left/right is easier than up/down. Center = primary content; edges = secondary, infrequent actions.
  • Default placement sits along the natural line of sight, a bit further than arm's reach; extended reading goes farther out, centered and slightly below eye line.
  • Design in points, not meters — dynamic scale keeps windows legible at any distance (they scale up as they move away). Never fixed scale for UI; keep custom UI facing the viewer.
  • Depth is hierarchy, used sparingly — "prefer subtle depth" (a modal pushes its parent back). Keep text flat; 3D text is hard to read at an angle.
  • Glass, never solid window backgrounds — solid colors block the world, don't adapt to lighting, and "can feel constricting." Elements on glass use vibrancy + white text/symbols; system colors over custom (they're calibrated for legibility). Brand color goes in backgrounds or whole buttons, not glyphs.
  • Typography runs heavier than iOS: body = medium (vs regular), titles = bold (vs semibold), slightly increased tracking. Avoid small/lightweight custom fonts.
  • Component specs: vertical tab bar fixed left, ≤6 items, expands on gaze · ornaments overlap the window's bottom edge by 20pt, borderless buttons inside · sheets appear centered at the parent's Z while the parent dims and pushes back · nested corners concentric (outer radius = inner + padding).
  • SwiftUI spatial layout: stacks default to .back depth alignment — switch to .front when content should read toward the viewer; rotation3DLayout (not rotation3DEffect) when rotation must affect layout; SpatialContainer/spatialOverlay for shared 3D space; scaledToFit3D() for models.

Input: eyes target, hands confirm

  • Every interactive element gets ≥60pt of total target area (≈2.5°, ~4.4cm at 1m) — the element can be smaller if surrounding spacing makes up the difference. Standard buttons: 44pt + ≥8pt clearance; stacked buttons ≥16pt apart; list rows 4pt padding so hover effects don't overlap.
  • Keep interactive content at one depth — frequent focus-depth changes cause eye strain.
  • Eye-target shapes: circles, pills, rounded rectangles; no sharp edges or thick outlines; center text/glyphs with generous padding.
  • Every interactive element needs a hover effect — and only interactive elements get one (never read-only data). Hover runs out-of-process: gaze stays private until a gesture.
  • Hover rules (WWDC24/25): keep it subtle (a 5% scale is the reference); short delays prevent flicker (reveal effects: ~0.8s in / 0.2s out); effects start from a visible element — no invisible hotspots; high-traffic controls (toolbars, table cells) use ONLY the standard highlight; keep an anchoring element static; respect Reduce Motion (swap for cross-fade).
  • Standard gesture language first (pinch = tap, pinch-drag = scroll, two-hand zoom/rotate). Custom gestures must be explainable, repeatable without fatigue, distinct from system gestures, and false-positive-tested; map them to real-world actions.
  • Prefer interaction at a distance (eyes target, hands rest in lap) for long sessions; direct touch is for up-close manipulation — compensate for missing tactility (raise buttons, brighten as the finger approaches, snap state + spatial sound on contact).
  • Look-to-scroll only in reading/browsing surfaces, never scan-and-pick lists; auto-hiding controls should persist while looked at.
Show full SKILL.md (511 more words)Show less

Motion & visual comfort (the failure modes)

  • Depth cues must agree — size, blur, occlusion, shadow, texture density. Conflicts cause double vision and fatigue. Beware repeating patterns (eyes lock onto different repeats).
  • Vection: large moving content that fills the view reads as self-motion → discomfort. Make big moving content semitransparent so passthrough anchors the viewer.
  • Avoid oscillations around 0.2 Hz (one cycle per 5s); if unavoidable, low amplitude + semitransparency, and honor Reduce Motion with an oscillation-free alternative.
  • No head-locked content; if unavoidable: small, central, far — or lazy-follow.
  • Camera motion inside windows: keep the content horizon level with the real horizon; slow, predictable focus of expansion inside the field of view; never fast pure rotations — cut with a quick fade instead. Avoid close-range fly-bys.
  • Moving the user or the scene: fade out during motion, fade back when settled. Design stationary-first — the system fades immersive content when people move.
  • Eyes rotate most comfortably downward and left/right; upward/diagonal fixation is for brief interactions only. Slow dark→bright transitions (allow adaptation).

Spatial sound as a design material

  • Two layers: point-source emitters (positioned, room-matched reverb is automatic) + looping ambient surround beds. Even a windowed app may fill the room with a soundscape.
  • Randomize repeats — pitch, amplitude, sample choice, position, timing. Nothing loops audibly from the same spot.
  • Mix with distance: a few dB down AND pushed farther away = background.
  • Use direction to steer attention (footsteps from the left before an entrance); attach multiple emitters to characters (feet omnidirectional, mouth directional).
  • UI sounds: subtle — heard constantly. Match character/timing to the visual transitions.

Interactive experiences (from Encounter Dinosaurs)

Adapt to the real room (portal up to 4m across in big rooms; set-distance + dimmed passthrough in tiny ones) · open small and welcoming, onboard that content reacts to people · use head position for eye contact (proximity signals interactivity; averted attention signals not) · consistent interaction rules — inconsistency shatters immersion · pace emotion with low-relief breaks (nonstop interaction physically exhausts) · gentle in-world boundaries over hard failures · accessibility is spatial too: VoiceOver, Dwell, captions, audio descriptions, Dynamic Type.

Video format decision guide

You wantUse
Flat storytelling2D/3D/spatial video, windowed or docked (3D needs expanded)
"Being there," forward-facingStereo 180° (half-equirectangular)
Look-anywhere360° (equirectangular 2:1, typically mono)
Action-cam POVWide-FOV APMP (120–180°, parametric lens projection)
Premium cinematic immersionApple Immersive Video (8160×7200/eye @ 90fps, up to 210°×180°)

Comfort rule: immersive playback puts the head where the camera was — high-motion scenes auto-reduce immersion (QuickLook/AVKit/RealityKit); encode stereo as MV-HEVC, never side-by-side. APMP formats never play inline.

Scene behavior defaults

Prefer scene restoration (windows come back where placed); disable only for transient/welcome windows (restorationBehavior(.disabled), defaultLaunchBehavior(.suppressed)). Adapt volumes to walls/tables via surface snapping info (authorization required). Handle Digital Crown recentering (onWorldRecenter). Progressive immersion with an aspect ratio is a comfort lever for vertical/high-motion content.

Output Format

Spatial design review:

Area | Finding | Comfort/ergonomic rule violated | Fix

ordered: comfort violations (motion/depth/head-lock) first — they end sessions; then input targets; then layout polish. Route environment production to immersive-environments.md, widgets to visionos/widgets.

References

© rshankras, MIT. 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 in skills/visionos/spatial-design of rshankras/claude-code-apple-skills.

  • SKILL.md
  • immersive-environments.md

Open the folder on GitHubat commit 9ffb831

Compare with similar skills

Spatial Design 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.

Spatial Design compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Spatial Design this skillrshankras/claude-code-apple-skills783—~2.4kAutomated safety check: PassMIT
Spatial Designsickn33/agentic-awesome-skills47k1 repos~2.6kAutomated safety check: PassMIT
Design Consultationgarrytan/gstack136k—~15kAutomated safety check: NotesMIT
Design Spatialsickn33/agentic-awesome-skills47k1 repos~4.6kAutomated safety check: PassMIT
Design Systemaffaan-m/ECC275k—~698Automated safety check: PassMIT
Design Guidepaperclipai/paperclip99k1 repos~3.1kAutomated safety check: PassMIT

Similar skills

  • Spatial Design

    sickn33/agentic-awesome-skills

    Web and App implementation guide for Spatial Design. An agent skill from sickn33/agentic-awesome-skills.

    47k GitHub starsUsed in 1 repo~2.6k tokens
    MobileAuto-check passed
  • Design Consultation

    garrytan/gstack

    Learns about your product, studies the landscape and writes a DESIGN.md with a full design system covering type, color, layout, spacing and motion.

    136k GitHub stars~15k tokensUpdated today
    Frontend & DesignAuto-check: notes
  • Design Spatial

    sickn33/agentic-awesome-skills

    Design — spatial composition

    47k GitHub starsUsed in 1 repo~4.6k tokens
    Auto-check passed
  • Design System

    affaan-m/ECC

    Generate a design system from an existing codebase or audit one for visual consistency: extract tokens (colors, typography, spacing, shadows) into design-tokens.json and CSS custom properties with…

    275k GitHub stars~698 tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed
  • Design Guide

    paperclipai/paperclip

    Paperclip UI design system guide for building consistent, reusable frontend components.

    99k GitHub starsUsed in 1 repo~3.1k tokens
    Frontend & DesignAuto-check passed
  • Audits a design against Dieter Rams' ten principles of good design, scores each with evidence, and hands off a make-plan prompt for a new, refined or redesigned outcome.

    98k GitHub stars~4.6k tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from rshankras/claude-code-apple-skills

All 41 skills in this repo
  • Accessibility Generator

    rshankras/claude-code-apple-skills

    Generate accessibility infrastructure for VoiceOver, Dynamic Type, and accessibility features.

    783 GitHub stars~1.4k tokensUpdated 2 mo ago
    Auto-check: notes
  • Animation Patterns

    rshankras/claude-code-apple-skills

    SwiftUI animation patterns including springs, transitions, PhaseAnimator, KeyframeAnimator, SF Symbol effects, scroll-driven effects, mesh gradients, text renderers, and shader effects.

    783 GitHub stars~2.1k tokensUpdated 2 mo ago
    Auto-check passed
  • App Description Writer

    rshankras/claude-code-apple-skills

    Generate compelling App Store descriptions that convert browsers into users.

    783 GitHub stars~1.3k tokensUpdated 2 mo ago
    Auto-check passed
  • App Icon Generator

    rshankras/claude-code-apple-skills

    Generates an app icon for macOS or iOS — a fast CoreGraphics placeholder and/or flat layered source art to finish in Icon Composer (the Liquid Glass / iOS 26+ standard).

    783 GitHub stars~5.1k tokensUpdated 2 mo ago
    Auto-check: notes
  • App Namer

    rshankras/claude-code-apple-skills

    Turn an app idea into validated, App-Store-ready name candidates.

    783 GitHub stars~3.4k tokensUpdated 2 mo ago
    Auto-check passed
  • Bundles And Licensing

    rshankras/claude-code-apple-skills

    Revenue beyond the single-app price tag — own-app bundles, Family Sharing as a conversion lever, cross-developer bundles & suites, and institutional licensing via Group Purchases / Apple School &…

    783 GitHub stars~1.8k tokensUpdated 2 mo ago
    Auto-check passed

Questions about Spatial Design

What does Spatial Design do?

Designing for visionOS — spatial layout and ergonomics (60pt eye targets, field-of-view placement, dynamic scale), eyes-and-hands input with hover rules, motion and visual comfort (the 0.2 Hz rule…. Spatial Design is an agent skill from rshankras/claude-code-apple-skills.2 Hz rule, vection, depth-cue agreement), immersion strategy, spatial sound, and the video-format decision guide.

When should I use Spatial Design?

Spatial Design fits situations like: reviewing any visionOS app; immersive experience.

How do I install Spatial Design in Claude Code?

Run `npx skills add rshankras/claude-code-apple-skills --skill spatial-design -a claude-code`. Or copy the skill folder (skills/visionos/spatial-design in rshankras/claude-code-apple-skills) into .claude/skills/spatial-design in your project. Claude Code loads it when a task matches its description.

How do I install Spatial Design in Codex?

Run `npx skills add rshankras/claude-code-apple-skills --skill spatial-design -a codex`. Or copy the skill folder (skills/visionos/spatial-design in rshankras/claude-code-apple-skills) into .agents/skills/spatial-design in your project. Codex loads it when a task matches its description.

Can I use Spatial Design 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 rshankras/claude-code-apple-skills --skill spatial-design -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/spatial-design, .gemini/skills/spatial-design, .github/skills/spatial-design and .opencode/skills/spatial-design in your project.

What does Spatial Design need to run?

SKILL.md names no scripts, command-line tools or credentials: Spatial Design is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Write, Edit, Glob, Grep.

Does Spatial Design access the network?

SKILL.md names 1 domain. As links in the text: developer.apple.com. This is read from the text; nothing was executed.

Is Spatial Design 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 Spatial Design use?

Spatial Design is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Spatial Design use?

About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Spatial Design?

Skills that share tags, products or a category with Spatial Design: Spatial Design (sickn33/agentic-awesome-skills, 47k stars), Design Consultation (garrytan/gstack, 136k stars), Design Spatial (sickn33/agentic-awesome-skills, 47k stars) and Design System (affaan-m/ECC, 275k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Spatial Design?

rshankras (a GitHub user) maintains it in rshankras/claude-code-apple-skills, which has 783 GitHub stars. The repository holds 41 skills in this directory. The repository was last updated on July 24, 2026.

Source: rshankras/claude-code-apple-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.