apple-bento-grid
Create Apple-inspired bento grid presentation cards for showcasing project stats, timelines, and achievements.
Skill by Joe Hu
Chalk Labs
Need help deploying apple-bento-grid?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/hubeiqiao-apple-bento-grid
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: presentations, frontend, data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 2
codeload.github.com· found in install commandgithub.com· found in code
Files it touches
~/.claude/skills/apple-bento-grid
What's inside
- Skill name
apple-bento-grid- Description
- Create Apple-inspired bento grid presentation cards for showcasing project stats, timelines, and achievements. Generates self-contained HTML files with zero-gap grids, stat cards, pill tags, bar charts, and dark quote cards — optimized for screenshot export. Supports both light (Apple signature #f5f5f7) and dark (#000) themes. Use when the user asks to build stat cards, bento grids, project summary cards, dashboard cards, Apple-style presentation layouts, project overviews, achievement showcases, or any visual summary of numbers and milestones. Also use when the user wants to create slides, infographics, or visual reports with a clean Apple aesthetic.
- License
- MIT
- Compatibility
- Requires internet for Google Fonts. Optional Playwright for screenshot export.
- Metadata
- date: 2026-03-17 · author: Joe Hu · version: 1.0.0
- Instructions
- 186 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (31)
- marketplace.json · .claude-plugin/
- plugin.json · .claude-plugin/
- .gitignore
- LICENSE
- README.md
- SKILL.md
- design-system.md
- evals.json · evals/
- dark-horizontal.html · examples/
- dark-horizontal.png · examples/
- light-horizontal.html · examples/
- light-horizontal.png · examples/
- light-vertical.html · examples/
- light-vertical.png · examples/
- real-cny-2026-square.html · examples/
- real-cny-2026-square.png · examples/
- real-corpus-dark-horizontal.html · examples/
- real-corpus-dark-horizontal.jpg · examples/
- real-corpus-dark-vertical.html · examples/
- real-corpus-dark-vertical.jpg · examples/
- real-january-light-horizontal.webp · examples/
- real-january-light-vertical.webp · examples/
- real-project-light-horizontal.webp · examples/
- real-project-light-vertical.webp · examples/
- package-lock.json · scripts/
- package.json · scripts/
- screenshot.mjs · scripts/
- launch-copy.md · social/
- og-preview.html · social/
- og-preview.jpg · social/
- og-preview.png · social/
SKILL.md (first lines)
# Apple Bento Grid ## Problem Creating visually polished presentation graphics typically requires design tools like Figma or Keynote. This skill generates Apple-quality bento grid layouts as self-contained HTML files that screenshot into pixel-perfect images — no design tool needed. ## Overview Generate self-contained HTML files that render Apple-inspired bento card grids. Each output is a single HTML file with inline CSS — no dependencies except Google Fonts. Cards fill a tight CSS grid with minimal gaps, ready for Playwright screenshot export at 2x resolution. Both light and dark themes are available. ## Workflow 1. **Read the design system selectively**: Reference [`design-system.md`](design-system.md) as needed: - **Always read**: Section 2 (Zero-Gap Grid) + Section 3 (Layout Templates) — the grid foundation - **Read per card type**: Section 5.1–5.7 as needed for the cards you're using - **Read for theme**: Section 1 (light tokens) or Section 9 (dark tokens) - **Read once for first generation**: Section 8 (HTML Skeleton) as a structural starting point 2. **Gather the user's content** — what stats, milestones, categories, and quotes to showcase 3. **Choose a theme** — suggest light, dark, or both based on the context (see Theme Selection below) 4. **Choose a layout** — pick from the 3 layout templates based on card count and orientation 5. **Compose cards** — select card types and fill with the user's content; prioritize density (no empty-feeling cards) 6. **Ask about logos/images** — if the user has a logo or images, incorporate them (see Logos & Images below) 7. **Generate the HTML** — produce a single self-contained HTML file 8. **Visual review** — open the HTML in a browser and screenshot it to check for issues (see Visual Review below) 9. **Offer a vertical version** — after generating a landscape grid, ask: "Want a vertical (portrait) version for social media?" and generate a Template C adaptation if yes 10. **Screenshot** (optional) — use the Playwright script to capture PNGs at 2x ## Visual Review After generating the HTML, always view the output to catch visual issues before presenting to the user. Use Playwright, browser MCP tools, or `open` to render the file, then check for: **Orphan lines** — A single pill tag or word wrapping alone to a new row. Fix by removing one pill so the remaining pills fill evenly, or add enough pills to fill two full rows. **Empty space** — Cards that look sparse with too much whitespace. Fix by adding a subtitle, badge, or extra description text to fill the card. **Text overflow** — Numbers or labels that are too long for their card width. Fix by reducing font-size or abbreviating (e.g., "$2.4M" not "$2,400,000"). **Broken grid** — Visible row gaps or misaligned cards. Check: no `align-items: start`, gap is exactly 6px, all grid cells are occupied. **Font fallback** — Text rendering in system fonts instead of Sora/DM Sans. Ensure Google Fonts link is present and page has network access. **Screenshot clipping** — Right or bottom edges of cards cut off in the exported PNG. Fix by ensuring viewport width matches the grid CSS width exactly and the clip uses `box.x`/`box.y` from `boundingBox()`, not `x: 0, y: 0`. If any issues are found, fix the HTML and re-check. Do not present to the user until the output passes visual review. ## Theme Selection Suggest a theme based on context. When unsure, generate both. | Context | Suggested Theme | |---------|----------------| | Slide deck / presentation | **Dark** — higher visual impact on projectors | | Social media / portfolio | **Dark** — stands out in feeds | | Report / document embed | **Light** — matches white page backgrounds | | Print / PDF | **Light** — saves ink, better legibility | | User says "Apple style" | **Light** — Apple's signature look | | User says "modern" or "sleek" | **Dark** — contemporary feel | | No preference stated | **Both** — generate two files, let user choose | See design-system.md **Section 9** for complete dark theme tokens, or **Section 1** for light theme tokens. ## Output Format Always produce a **single self-contained HTML file** with: - `<!DOCTYPE html>` + `<html lang="en">` - Google Fonts `<link>` tags in `<head>` - All CSS in a single `<style>` block - All content in `<body>` — no JavaScript needed ## Card Types Available | Card | Use For | Key Feature | |------|---------|-------------| | **Hero** | Taglines, headlines | Gradient top-border, spans 2 rows | | **Stat** | Numbers + labels | Color-coded accent per category | | **Category** | Grouped items (phases, teams, quarters) | Color label + subtitle + pill tags | | **Bar Chart** | Growth / comparison over time | Gradient bars, header badge | | **Badge** | Tool attribution, featured callout | Icon pill + stat number | | **Quote** | Mission statement, testimonial | Dark bg, white text, green `<em>` | | **Highlight** | Hero number (3x, 10x, 100%) | Full-gradient background | ## Layout Templates | Template | Columns | Width | Aspect Ratio | Best For | |----------|---------|-------|--------------|----------| | A: Horizontal | 4-col | 1200px | 52/25 | 12-16 cards, slides | | B: Horizontal | 3-col | 1100px | 52/22 | 8-10 cards, focused | | C: Vertical | 2-col | 600px | none (content) | 8-14 cards, social | ## Critical: Zero-Gap Grid Rules These 5 rules are mandatory for Apple-like appearance. See design-system.md Section 2 for details. 1. **NEVER** set `align-items: start` — default `stretch` fills cells 2. Use `aspect-ratio` on horizontal layouts to lock container shape 3. Rows: `1fr` for horizontal, `auto` for vertical 4. Gap: `6px` (not 8px) 5. Every grid cell must be occupied — no empty cells ## Screenshot Export Use the Playwright script at `scripts/screenshot.mjs` to capture pixel-perfect PNGs. ```bash cd scripts npm install npx playwright install chromium node screenshot.mjs ``` Edit the `pages` array in `screenshot.mjs` to point to your HTML files. Each entry needs: `file` (HTML path), `output` (PNG path), `viewportWidth` (match grid width). **Critical: Viewport must match grid width.** If the viewport is wider than the grid, the grid gets centered and the clip can cut off the right edge. Always set `viewportWidth` to the exact grid CSS width (1200 for 4-col, 1100 for 3-col, 600 for 2-col). **Critical: Clip must use element position.** When clipping to the grid element, use `box.x` and `box.y` from `boundingBox()`, not `x: 0, y: 0`. If the grid is centered in a wider viewport, `x: 0` will start the clip before the grid and cut off the right side. **After screenshotting, always view the output image** to verify no edges are clipped. Check that the rightmost and bottommost cards are fully visible with their border-radius intact. ## Logos & Images
From hubeiqiao/apple-bento-grid, MIT.
Signals
- Stars
- 236
- Forks
- 16
- Open issues
- 0
- Last commit
- Mar 17, 2026 (7 months ago)
- Last release
- Mar 17, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0.0
- License
- MIT
- Repository
- github.com/hubeiqiao/apple-bento-grid
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get apple-bento-grid running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
apple-bento-grid skill. Agent Mart. https://agentmart.dev/skills/hubeiqiao-apple-bento-grid (last updated 2026-10-24)