Agent skill

Tabler Screenshot Maker

by tabler in tabler/tabler

Makes reproducible screenshots of Tabler components and screens for release notes, the website and social posts, using the repository's screenshots app.

MITAuto-check passedDevelopment

Install Tabler Screenshot Maker

skills CLI
$ npx skills add tabler/tabler --skill screenshots -a claude-code

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

GitHub CLI
$ gh skill install tabler/tabler screenshots --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/tabler/tabler.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/screenshots .claude/skills/screenshots && 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
screenshots
GitHub stars
42k
Token cost
~1.3k tokens
SKILL.md length
565 words
Files
1
Skills in repo
21
Repo updated
First seen
Licence
MIT

At a glance

Makes reproducible screenshots of Tabler components and screens for release notes, the website and social posts, using the repository's screenshots app.

  • Works in 7 steps: Pick a layout → Write the page → Show the state, do not script it → …
  • A new Tabler component needs a picture for release notes or the docs
  • SKILL.md covers 1. Pick a layout, 2. Write the page, 3. Show the state, do not… and 4. Look at it in the browser, plus 3 more sections
  • Calls pnpm, turbo and node

What it does

Each picture comes from an Astro page under screenshots/pages, so it can be retaken after any design change with the same framing, fonts and data. The agent picks one of two layouts: ScreenshotLayout, a 1024 by 768 card on a gradient with a logo, for a single component, or ScreenshotAppLayout, a 1708 by 1068 screen reduced to a 1280 pixel image, for whole app screens with sidebar and navbar.

Pages are built from the shared ui components with fixed data only, with no random values or moving dates. The capture only loads and shoots the page, never clicking, typing or hovering, so interactive states are written into the markup: filled inputs, hand-set active classes, and a fake cursor span placed with inline offsets. A still picture of a real state is acceptable, while faking a state the component cannot reach is not.

To preview a page, the skill runs pnpm run dev-screenshots on port 3020, which serves core assets emitted by an earlier dev run or build, and dark mode is checked with a theme query parameter. Finished PNGs land in screenshots/captures, which is not committed.

When your agent uses it

  • A new Tabler component needs a picture for release notes or the docs
  • An existing screenshot must be retaken after a design change
  • Showing a hover or filled-in state that the capture cannot click
  • Before editing anything under the screenshots folder

Example prompts

  • “Make a screenshot of the new clipboard card for the release notes.”
  • “Retake the dashboard screen picture now that the sidebar spacing changed.”
  • “Add a screenshot page that shows the password strength meter with a value already typed in.”

Requirements

  • A Tabler checkout with pnpm installed
  • Core assets emitted by an earlier dev run or build

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Pick a layout
  2. Write the page
  3. Show the state, do not script it
  4. Look at it in the browser
  5. Capture
  6. What the layout already handles
  7. Checklist

What it can do on your machine

Read from SKILL.md and the folder at commit dcacb65. 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

    Shell commands in SKILL.md call:

    • pnpm
    • turbo
    • node

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

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    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

Tabler Screenshot Maker loads about 1.3k tokens when it runs. Until then it costs about 114 tokens; SKILL.md has 565 words of instructions outside code blocks.

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

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 tabler/tabler at commit dcacb65, republished under its MIT licence (© tabler). 565 words, ~1,272 tokens.

Download SKILL.mdSave it as .claude/skills/screenshots/SKILL.md (or your agent's skills folder).
name
screenshots
description
Make a picture of a Tabler component or screen with the `screenshots/` app — the images used in release notes, the website, the README and social posts. Use whenever a new component or page deserves a picture, when an existing one has to be retaken after a design change, and before touching anything under `screenshots/`. Covers the two layouts, how to show a state the capture cannot click, running the server, capturing, and the build trap.

Make a Tabler screenshot

Every picture comes from a page in screenshots/pages/*.astro, so it can be made again after any change, with the same framing, fonts and data. Finished PNGs land in screenshots/captures/, which is not committed.

1. Pick a layout

LayoutFrameFor
ScreenshotLayout1024×768 card on a gradient, logo at the bottomone component or card
ScreenshotAppLayout1708×1068 screen, reduced to a 1280 px picturewhole app screens: sidebar, navbar, theme panel

ScreenshotLayout props: title, columns (caps the subject at columns * 310px), zoom, pageLibs (third-party libs from libs.json, e.g. ['apexcharts']), cssPlugins, rtl, showLogo, class.

Do not reach for zoom to fit more of a screen in — that is what ScreenshotAppLayout is for.

2. Write the page

  • Open with a comment saying what the scene is and why, the way the existing pages do.
  • Build it from @ui components, exactly like a demo page. Fixed data only: no Math.random, no dates that move. The picture has to be reproducible.
  • Do not add margin utilities to CardTitle or CardSubtitle. They bring their own spacing.
  • The file name becomes the picture name, so clipboard.astro gives clipboard.png.

3. Show the state, do not script it

The capture loads the page and shoots it. It never types, clicks or hovers. A component that only looks interesting after an interaction has to be handed that state:

  • Give inputs a value. A password field with a value makes the strength meter render a level on load; a filled field makes a countup animate to its number.
  • Write the state into the markup. The legend page sets active and off by hand; the clipboard page renders the copied row as a green check with no data-bs-toggle on it. A still picture of a real state is honest; faking a state the component cannot reach is not.
  • Point with the fake cursor. <span class="cursor" /> inside a position-relative parent. It sits below and left by default, so on a small icon it covers the subject — nudge it with an inline style="top: 90%; left: 70%".
Show full SKILL.md (229 more words)Show less

4. Look at it in the browser

sh
pnpm run dev-screenshots   # port 3020; the root `pnpm run dev` leaves this app out

It serves the core assets a previous pnpm run dev or build emitted, so start those first if the page renders unstyled. Check both colour modes with ?theme=dark.

5. Capture

sh
pnpm --dir screenshots run capture              # every page
pnpm --dir screenshots run capture clipboard    # just these slugs

Four files per page: <slug>.png, <slug>@2x.png, <slug>-dark.png, <slug>-dark@2x.png. Only the @2x picture is rasterized; the 1x one is downscaled from it, which keeps hairlines and text crisp.

The trap: capture runs turbo build first, and a build while a dev server is running breaks the server's watchers. Stop the dev servers, or iterate with a throwaway Playwright script instead:

js
// screenshots/.build/_tmp.mjs — inside the repo, so `playwright` resolves; delete it after
import { chromium } from 'playwright'
const browser = await chromium.launch()
const page = await browser.newPage({ viewport: { width: 1708, height: 1068 }, deviceScaleFactor: 2 })
await page.goto('http://localhost:3020/<slug>?theme=light', { waitUntil: 'load' })
await page.waitForFunction(() => document.documentElement.dataset.screenshotReady === 'true')
await page.addStyleTag({ content: '[data-screenshot-chrome] { display: none !important; }' })
await page.locator('#screenshot').screenshot({ path: '/tmp/shot.png' })
await browser.close()

Run it with node screenshots/.build/_tmp.mjs. A script outside the repo cannot resolve playwright.

6. What the layout already handles

  • Transitions, animations and the caret are off, so nothing is caught mid-frame.
  • Inter is loaded, so the picture shows the face the design was drawn in on every machine.
  • The theme comes from ?theme=, not from localStorage.
  • Anything marked data-screenshot-chrome is hidden before the shot.
  • The page signals data-screenshot-ready after two animation frames; the capture waits for it.

7. Checklist

  • Right layout for the subject, pageLibs set when the scene needs a chart or a plugin
  • Deterministic content, no random or time-based data
  • The interesting state is visible without an interaction
  • Looked at on port 3020 in light and dark
  • pnpm --dir screenshots run type-check clean (astro check)
  • Captured, and all four files checked

© tabler, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/screenshots of tabler/tabler.

Open the folder on GitHubat commit dcacb65

Compare with similar skills

Tabler Screenshot Maker 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.

Tabler Screenshot Maker compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tabler Screenshot Maker this skilltabler/tabler42k—~1.3kAutomated safety check: PassMIT
@pierre/diffs Code Renderingpierrecomputer/pierre6.2k2 repos~803Automated safety check: PassApache-2.0
Pierre Highlightspierrecomputer/pierre6.2k—~409Automated safety check: PassApache-2.0
Dsh Web UI Releaseningbainb/deepseek-harness-desktop776—~1.4kAutomated safety check: WarnBSD-3-Clause
Live UX PolishEveryInc/compound-engineering-plugin25k—~777Automated safety check: PassMIT
Vuetify Playgroundvuetifyjs/vuetify41k—~730Automated safety check: PassCustom licence

Similar skills

  • @pierre/diffs Code Rendering

    pierrecomputer/pierre

    Guides an agent through using @pierre/diffs to render syntax-highlighted files and diffs, and to build editing and review surfaces in React or plain JavaScript.

    6.2k GitHub starsUsed in 2 repos~803 tokens
    DevelopmentAuto-check passed
  • Pierre Highlights

    pierrecomputer/pierre

    Shows how to use @pierre/highlights for syntax-highlighted HTML or tokens, streaming and incremental tokenizing, and Zed-compatible themes with CSS variables.

    6.2k GitHub stars~409 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Dsh Web UI Release

    ningbainb/deepseek-harness-desktop

    Release and publish the dsh-web-ui monorepo (DSH Web GUI plugin family + skin collection) — bump all packages to one unified version, commit and tag, push the vX.Y.Z tag that triggers the GitHub…

    776 GitHub stars~1.4k tokensUpdated today
    DevelopmentAuto-check: warnings
  • Live UX Polish

    EveryInc/compound-engineering-plugin

    Collects your feedback on a running feature, typed or spoken and drawn in the browser, and turns it into focused UX fixes saved as local commits.

    25k GitHub stars~777 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Vuetify Playground

    vuetifyjs/vuetify

    Maintains the Vuetify repo's local Playground.vue so contributors get a realistic reproduction and a short demo they can paste into a pull request description.

    41k GitHub stars~730 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Pierre Trees File Tree

    pierrecomputer/pierre

    Use when an app uses @pierre/trees to render or control a file tree, including React, vanilla JavaScript, SSR, web components, selection, search, rename, drag…

    6.2k GitHub stars~473 tokensUpdated today
    Frontend & DesignAuto-check passed

More from tabler/tabler

All 21 skills in this repo
  • Starts the right Tabler dev server, keeps it from clashing with builds and verifies changes in the browser before a page or component is handed back.

    42k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Rules for adding or fixing client-side scripts in Tabler's Astro components so the copied preview HTML stays readable, self-contained and runs in the right order.

    42k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Sets the file structure, typing and Data API pattern for writing a new Bootstrap-style JavaScript component class in Tabler's vendored port of Bootstrap's JS.

    42k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Writes or updates the classnames front matter that renders the class table at the end of a Tabler component docs page.

    42k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Guidance for changing the Tabler framework's own JavaScript in core/js: the tabler.js and tabler-theme.js bundles, the Bootstrap port and their tests.

    42k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Tabler Core SCSS

    tabler/tabler

    Rules for adding or changing styles in Tabler's core/scss framework: file placement, custom properties, dark mode, RTL, tests and build gates.

    42k GitHub stars~2k tokensUpdated today
    Auto-check passed

Works with

Questions about Tabler Screenshot Maker

What does Tabler Screenshot Maker do?

Makes reproducible screenshots of Tabler components and screens for release notes, the website and social posts, using the repository's screenshots app. Each picture comes from an Astro page under screenshots/pages, so it can be retaken after any design change with the same framing, fonts and data. The agent picks one of two layouts: ScreenshotLayout, a 1024 by 768 card on a gradient with a logo, for a single component, or ScreenshotAppLayout, a 1708 by 1068 screen reduced to a 1280 pixel image, for whole app screens with sidebar and navbar.

When should I use Tabler Screenshot Maker?

Tabler Screenshot Maker fits situations like: A new Tabler component needs a picture for release notes or the docs; an existing screenshot must be retaken after a design change; showing a hover or filled-in state that the capture cannot click; before editing anything under the screenshots folder.

How do I install Tabler Screenshot Maker in Claude Code?

Run `npx skills add tabler/tabler --skill screenshots -a claude-code`. Or copy the skill folder (.agents/skills/screenshots in tabler/tabler) into .claude/skills/screenshots in your project. Claude Code loads it when a task matches its description.

How do I install Tabler Screenshot Maker in Codex?

Run `npx skills add tabler/tabler --skill screenshots -a codex`. Or copy the skill folder (.agents/skills/screenshots in tabler/tabler) into .agents/skills/screenshots in your project. Codex loads it when a task matches its description.

Can I use Tabler Screenshot Maker 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 tabler/tabler --skill screenshots -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/screenshots, .gemini/skills/screenshots, .github/skills/screenshots and .opencode/skills/screenshots in your project.

What does Tabler Screenshot Maker need to run?

Going by SKILL.md and its folder, Tabler Screenshot Maker needs the command-line tools its instructions call (pnpm, turbo and node). Our summary lists: A Tabler checkout with pnpm installed; Core assets emitted by an earlier dev run or build.

Does Tabler Screenshot Maker 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 Tabler Screenshot Maker 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 Tabler Screenshot Maker use?

Tabler Screenshot Maker 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 Tabler Screenshot Maker use?

About 1.3k tokens (SKILL.md is roughly 5.1k 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 Tabler Screenshot Maker?

Skills that share tags, products or a category with Tabler Screenshot Maker: @pierre/diffs Code Rendering (pierrecomputer/pierre, 6.2k stars), Pierre Highlights (pierrecomputer/pierre, 6.2k stars), Dsh Web UI Release (ningbainb/deepseek-harness-desktop, 776 stars) and Live UX Polish (EveryInc/compound-engineering-plugin, 25k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tabler Screenshot Maker?

tabler (a GitHub organization) maintains it in tabler/tabler, which has 41,821 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 6, 2026.

Source: tabler/tabler on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.