Frontend Slides
zarazhangrui/frontend-slides
Builds animated HTML slide decks that run in the browser with no dependencies, or converts PowerPoint files to the web, starting from visual style previews.
A skill your agent uses whenever the question is how to make a composition feel organized — what belongs with what, where groups end, how related items can be visually bound without resorting to…
$ npx skills add hashgraph-online/awesome-codex-plugins --skill proximity -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins proximity --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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/perception-and-hierarchy-principles/skills/proximity .claude/skills/proximity && rm -rf skills-srcUse ~/.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/
Install the "proximity" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity into .claude/skills/proximity/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proximity", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximityType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill proximity -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins proximity --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity .agents/skills/proximity && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "proximity" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity into .agents/skills/proximity/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proximity", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill proximity -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins proximity --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity .cursor/skills/proximity && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "proximity" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity into .cursor/skills/proximity/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proximity", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hashgraph-online/awesome-codex-plugins.git --path plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill proximity -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins proximity --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity .gemini/skills/proximity && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "proximity" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity into .gemini/skills/proximity/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proximity", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hashgraph-online/awesome-codex-plugins proximityInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hashgraph-online/awesome-codex-plugins --skill proximity -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity .github/skills/proximity && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "proximity" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity into .github/skills/proximity/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proximity", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill proximity -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins proximity --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity .opencode/skills/proximity && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "proximity" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity into .opencode/skills/proximity/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proximity", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
proximityA skill your agent uses whenever the question is how to make a composition feel organized — what belongs with what, where groups end, how related items can be visually bound without resorting to…
Proximity is an agent skill from hashgraph-online/awesome-codex-plugins. Use this skill whenever the question is how to make a composition feel organized — what belongs with what, where groups end, how related items can be visually bound without resorting to borders or boxes. Trigger when laying out forms, tables, navigation, lists, cards, dashboards, or any composition with multiple distinguishable groups of content. Trigger when a layout "feels disorganized," when users are confused which label goes with which input, when grouping is being attempted with borders that look heavy, or…
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/gestalt-and-grouping-research.md`).
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.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 78497e5. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are html).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Proximity loads about 3k tokens when it runs, and up to ~4.7k if it reads all its reference files. Until then it costs about 196 tokens; SKILL.md has 1,224 words of instructions outside code blocks.
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.
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.
The full file from hashgraph-online/awesome-codex-plugins at commit 78497e5, republished under its Apache-2.0 licence (© hashgraph-online). 1,224 words, ~3,050 tokens.
.claude/skills/proximity/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Proximity is one of the original Gestalt grouping laws: elements close together are perceived as belonging together; elements farther apart are perceived as separate. It is the cheapest grouping mechanism in the designer's toolkit — it requires no ink, no color, no chrome, only the deliberate distribution of space. Used well, proximity makes most other grouping tools (borders, backgrounds, dividers) unnecessary.
When the human visual system encounters a set of similar elements, it organizes them into groups based on relative spatial distance. Items that share a small gap are perceived as a unit; items separated by a larger gap are perceived as belonging to different units. This perceptual grouping happens preattentively — before conscious thought, before reading. It is one of the most reliable findings in perception research, observed in infants, across cultures, and across animal species.
Every layout makes implicit proximity claims. If a label is equidistant from the input above and the input below, the user must read carefully to figure out which it labels. If two cards are visually identical to two surrounding cards, they read as one group of four — even when conceptually they're two pairs.
Proximity failures are silent: users don't report "this label is ambiguous"; they just take longer, make more mistakes, and feel a low-grade frustration they can't articulate. This is why proximity is one of the highest-leverage things to get right in dense interfaces — small spacing decisions determine whether the page feels organized or chaotic.
In short: anywhere you have ≥3 elements and need to communicate which belong together.
The trick is creating a spacing hierarchy: gaps inside a group should be smaller than gaps between groups, and the difference should be perceptually obvious. A 4px gap looks roughly like a 6px gap; the eye can't tell. A 4px gap is unmistakably tighter than a 16px gap.
A useful spacing scale (most design systems land somewhere near this):
gap-1 = 0.25rem (4px) inside a tight pair (label/input)
gap-2 = 0.5rem (8px) inside a closely related set
gap-3 = 0.75rem (12px) between fields in a section
gap-4 = 1rem (16px) between minor groups
gap-6 = 1.5rem (24px) between sections
gap-8 = 2rem (32px) between major regions
gap-12 = 3rem (48px) between page-level zonesAdjacent values in the scale should differ by at least 1.5× — preferably 2× — for the eye to register them as different ranks of grouping. Don't use both gap-3 and gap-4 in the same composition for different grouping levels; they look identical.
Anti-pattern (ambiguous):
<form>
<label>Email</label>
<input type="email" />
<label>Password</label>
<input type="password" />
</form>With default browser margins, each label sits roughly equidistant from the input above and the input below. The user has to read to figure out the pairing.
Right (proximity binds the pair):
<form style="display: grid; gap: 1rem;"> <!-- gap-4 between fields -->
<div style="display: grid; gap: 0.25rem;"> <!-- gap-1 between label and input -->
<label for="email">Email</label>
<input id="email" type="email" />
</div>
<div style="display: grid; gap: 0.25rem;">
<label for="password">Password</label>
<input id="password" type="password" />
</div>
</form>Now the gap inside each pair (4px) is unmistakably tighter than the gap between pairs (16px). Pairing reads instantly without any reading.
<style>
.settings { display: grid; gap: 3rem; } /* gap-12 between sections */
.section { display: grid; gap: 1rem; } /* gap-4 between fields */
.section h2 { margin-bottom: 0.5rem; } /* heading slightly closer to its fields */
.field { display: grid; gap: 0.25rem; } /* gap-1 inside label/input pair */
</style>
<form class="settings">
<section class="section">
<h2>Profile</h2>
<div class="field"><label>Name</label><input /></div>
<div class="field"><label>Email</label><input /></div>
</section>
<section class="section">
<h2>Notifications</h2>
<div class="field"><label>Frequency</label><select>...</select></div>
<div class="field"><label>Channels</label><input /></div>
</section>
<section class="section">
<h2>Security</h2>
<div class="field"><label>Password</label><input type="password" /></div>
</section>
</form>Three nested ranks of proximity (4px / 16px / 48px) carry the entire grouping. No borders, no boxes, no dividers, no color — just space.
<style>
.card { display: grid; gap: 1rem; padding: 1.5rem; }
.card-header { display: grid; gap: 0.25rem; } /* title + metadata are paired */
.card-actions { display: flex; gap: 0.5rem; margin-top: 0.5rem; }
</style>
<article class="card">
<header class="card-header">
<h3>Q4 financial review</h3>
<p class="meta">Updated 3 minutes ago · Owner: Maria</p>
</header>
<p>This quarter shows record revenue across the SMB segment...</p>
<div class="card-actions">
<button>Open</button>
<button>Share</button>
</div>
</article>Three groupings: title-metadata (tight pair), body (its own paragraph), actions (their own row). Each cluster reads independently; together they form the card.
<nav style="display: grid; gap: 1.5rem;"> <!-- gap between sections -->
<div style="display: grid; gap: 0.25rem;"> <!-- tight gap between links -->
<a href="/dashboard">Dashboard</a>
<a href="/projects">Projects</a>
<a href="/team">Team</a>
</div>
<div style="display: grid; gap: 0.25rem;">
<a href="/settings">Settings</a>
<a href="/billing">Billing</a>
<a href="/logout">Sign out</a>
</div>
</nav>Two clear sections, no dividers needed. The eye reads the gap between them as a section break.
border: 1px solid grey around every group adds visual weight without doing what proximity already does for free. Borders are a fallback for when proximity isn't enough.uniform-connectedness — when proximity isn't enough, a shared background or container creates a stronger group; proximity tried first.similarity — items that look alike are also grouped; combines with proximity.good-continuation — items aligned on an axis read as a row, even with internal spacing.hierarchy — proximity establishes grouping, hierarchy establishes ranking between groups.signal-to-noise-ratio — proximity reduces noise by replacing chrome (borders, backgrounds) with negative space.horror-vacui — proximity requires whitespace; resist filling it.proximity-form-fields — applying proximity to form layouts, label-input pairs, sections.proximity-data-tables — row spacing, column spacing, total rows, group separators.proximity-navigation — sidebar groups, top-nav clusters, mobile menus.Proximity is the principle most likely to be invisible when working and noisy when failing. The reward for getting it right is that the page feels organized in a way no one can quite pinpoint — they just don't get confused.
© 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
SKILL.md and 1 other file (references) in plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity of hashgraph-online/awesome-codex-plugins.
Open the folder on GitHubat commit 78497e5
Proximity 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Proximity this skillhashgraph-online/awesome-codex-plugins | 1.2k | — | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Frontend Slideszarazhangrui/frontend-slides | 30k | 16 repos | ~7k | Automated safety check: Pass | MIT | |
| Algorithmic Art with p5.jsanthropics/skills | 180k | 38 repos | ~4.9k | Automated safety check: Pass | Apache-2.0 | |
| Canvas Designanthropics/skills | 180k | 52 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Impeccablebestofjs/bestofjs | 3.1k | 27 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Brand and Design Toolkitnextlevelbuilder/ui-ux-pro-max-skill | 134k | 1 repos | ~3.5k | Automated safety check: Pass | MIT |
zarazhangrui/frontend-slides
Builds animated HTML slide decks that run in the browser with no dependencies, or converts PowerPoint files to the web, starting from visual style previews.
anthropics/skills
Creates original generative art in two steps: a written algorithmic philosophy, then a p5.js sketch with seeded randomness and an interactive viewer for exploring parameters.
anthropics/skills
Creates original posters and static art as PNG or PDF by first writing a short design philosophy, then expressing it visually on a canvas.
bestofjs/bestofjs
A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…
nextlevelbuilder/ui-ux-pro-max-skill
Bundles design tasks behind one skill: brand identity, tokens, UI styling, logos, corporate identity mockups, slides, banners, icons and social images.
heygen-com/hyperframes
Collects motion rules, scene blueprints, transitions and runtime adapters for HyperFrames video compositions, with GSAP as the default animation runtime.
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.
hashgraph-online/awesome-codex-plugins
Manage and query Calibre libraries with the calibredb CLI (local paths or Calibre Content server URLs).
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…
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…
hashgraph-online/awesome-codex-plugins
Balance game difficulty, resources, rewards, probability, progression, economies, and dominant strategies.
hashgraph-online/awesome-codex-plugins
Analyze nonfiction manuscripts for reader engagement signals, including heading-level word counts, slow starts, long slogs, weak takeaway titles, value pacing, beta-reader comment dropoff, and…
A skill your agent uses whenever the question is how to make a composition feel organized — what belongs with what, where groups end, how related items can be visually bound without resorting to…. Proximity is an agent skill from hashgraph-online/awesome-codex-plugins. Use this skill whenever the question is how to make a composition feel organized — what belongs with what, where groups end, how related items can be visually bound without resorting to borders or boxes.
Proximity fits situations like: the question is how to make a composition feel organized — what belongs with what; where groups end; how related items can be visually bound without resorting to borders; laying out forms.
Run `npx skills add hashgraph-online/awesome-codex-plugins --skill proximity -a claude-code`. Or copy the skill folder (plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity in hashgraph-online/awesome-codex-plugins) into .claude/skills/proximity in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hashgraph-online/awesome-codex-plugins --skill proximity -a codex`. Or copy the skill folder (plugins/HDeibler/universal-design-principles/plugins/perception-and-hierarchy-principles/skills/proximity in hashgraph-online/awesome-codex-plugins) into .agents/skills/proximity in your project. Codex loads it when a task matches its description.
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 proximity -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/proximity, .gemini/skills/proximity, .github/skills/proximity and .opencode/skills/proximity in your project.
SKILL.md names no scripts, command-line tools or credentials: Proximity is instructions for the agent only.
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.
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.
Proximity 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.
About 3k tokens (SKILL.md is roughly 12k 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.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Proximity: Frontend Slides (zarazhangrui/frontend-slides, 30k stars), Algorithmic Art with p5.js (anthropics/skills, 180k stars), Canvas Design (anthropics/skills, 180k stars) and Impeccable (bestofjs/bestofjs, 3.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hashgraph-online (a GitHub organization) maintains it in hashgraph-online/awesome-codex-plugins, which has 1,242 GitHub stars. The repository holds 686 skills in this directory. The repository was last updated on October 8, 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.