quick-html
Build a single self-contained HTML file with Tailwind and CDN imports, no build step.
Skill by MarvinJWendt
Chalk Labs
Need help deploying quick-html?
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/marvinjwendt-quick-html
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: frontend, backend
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 Nov 1, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/quick-html
What's inside
- Skill name
quick-html- Description
- Build a single self-contained HTML file with Tailwind and CDN imports, no build step. Reports, local experiment frontends, and debug UIs served by a backend.
- License
- MIT
- Instructions
- 104 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
# quick-html
One `.html` file that opens in a browser and needs nothing else: no build step, no bundler, no Node. Dependencies load from jsDelivr and the markup stays readable, so the next agent to touch the page edits the thing that actually runs.
Three shapes come up: a report handed to a human, a frontend for a local experiment, and a debug UI a backend serves out of its own binary. Same file either way.
Write the file to disk and print the path. This never becomes a published artifact.
## Naming
A page a backend serves is `index.html`. A file a human opens is named after what it holds, so `kubernetes-cost-report-2026.html` rather than `report.html`. It lands in the working directory unless the repo has an obvious place for static files.
## Stack
Tailwind v4 through the browser build, `https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4`. Configuration goes in an inline `<style type="text/tailwindcss">` block, not a JS config object.
Alpine drives every page, the theme toggle and the tabs included. Any state beyond those is Alpine too.
Everything else is your call. These are the defaults to beat:
| Need | Package |
| --- | --- |
| charts | `chart.js` |
| tables that sort, filter or page | `tabulator-tables`, otherwise plain markup driven by Alpine |
| markdown | `marked` |
| syntax highlighting | `shiki` |
| icons | `lucide` |
| CSV parsing | `papaparse` |
| diagrams | `mermaid` |
| dates | native `Intl`, no package |
Shiki is ESM only, so it loads through `<script type="module">` from `https://cdn.jsdelivr.net/npm/shiki@<major>/+esm`. Its dual-theme mode emits both palettes as CSS variables in one pass, which is what keeps highlighted code readable on both sides of the theme toggle.
### Versions
Pin the major: `chart.js@4`. Never `@latest`, never a full version. Patches then arrive on their own and a new major cannot.
Resolve that major as you write the file, and again when you edit a page whose pins look old:
```sh
curl -s https://registry.npmjs.org/chart.js/latest | jq -r .version
```
If the major moved, pin the new one and migrate the code that used the old API.
## Chrome
A navbar across the top: the project or tool name as plain text on the left, tabs in the middle once there is more than one view, theme toggle on the right. A live page may put a refresh button and a last-updated timestamp beside the toggle. Nothing else belongs up there.
Tabs route through the hash (`#/logs`), so a reload keeps the view and a link points at one.
### Theme
Three states: system, light, dark. System is the default and follows `prefers-color-scheme` live through a `matchMedia` listener, not only at load. The choice persists in `localStorage`.
Two things break this quietly. Tailwind v4 resolves `dark:` against the media query alone, so class-based switching needs `@custom-variant dark (&:where(.dark, .dark *));` declared in the Tailwind style block. And the class has to land on `<html>` from an inline script in `<head>` that runs before the first paint, or every load flashes light.
### Looks
Professional, technical, and dense. These are data pages, so spacing stays tight. System font stack, no webfont. Monospace for anything a human scans rather than reads: IDs, hashes, durations, timestamps.
A neutral base (`slate` or `zinc`) plus one accent. Take the accent from the project when it has a palette of its own, otherwise pick one that suits what the tool does. Pages across different projects do not have to look alike.
Real `<button>` elements, visible focus rings, labelled inputs. That is the whole accessibility bar.
## Data
A page a backend serves fetches from that backend. A page handed to a human carries its data inline in `<script id="data" type="application/json">`.
Fetching pages need all three states: loading, empty, and failed. The failure state prints the status and the response body, since the page exists to debug something and a swallowed error defeats it.
Live pages refresh on a button, plus an interval the user can switch on and off and see. Poll silently and nobody can tell whether the page or the tool went stale. Reach for SSE or a WebSocket only when the backend already speaks one.
A report gets a `@media print` block, so it prints to a PDF worth sending to someone who will never run the tool.
## Readability
Agents do most of the later editing, and the file is their input. Keep it legible:
- A comment at the top: what the page is, where its data comes from, how to run it.
- Order: header comment, Tailwind theme block, markup, then one `<script>` holding the Alpine components.
- Section comments between major blocks of markup.
- `x-data` stays a single line on the element. Longer components live in the script as `Alpine.data('name', ...)`.
- Nothing minified, nothing generated, nothing pasted in as a blob.
## Prose on the page
Load `unslop` for the text that ships in the interface: labels, empty states, error copy, tooltips, headings. Load `technical-writing` too when prose carries the page, as in a report built of findings and paragraphs.
Charts route to `dataviz`. Colour that holds up in both themes is its subject, not this one.
## Editing a page that exists
Bring it to these rules, including the parts it currently contradicts, and report what you changed. A page on Tailwind v3 or without a theme toggle gets migrated, not matched.
## Checking it
Opening the page costs time, so spend it where it pays: once after finishing a one-shot report, or when part of the page is involved enough that you are unsure it works. The user saying something looks wrong is the other trigger. Not after every edit.
## When to stop
Say so instead of pushing the single file further once it needs a build step, routing past tabs, or components shared across pages, and when the repo already has a frontend stack this belongs in.From MarvinJWendt/skills, MIT.
More from MarvinJWendt/skills
- 0.587score
set-up-skills
MarvinJWendt
Wire a repository's skills so `.agents/skills/` is the single source of truth and every agent reads it through a symlink.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
set-up-agents-md
MarvinJWendt
Make `AGENTS.md` the single source of truth for a repository's agent instructions and symlink every agent's own instruction file to it.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
technical-writing
MarvinJWendt
Layered technical-writing standard: text size and scope, Diátaxis structure, Google developer style sentences, STE instruction rules, Global English syntax.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
writing-comments
MarvinJWendt
How code comments get written: what earns one, how it reads, the sediment to keep out, and the passes it goes through.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
unslop
MarvinJWendt
Cut AI tells from prose and give it a human voice.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
orchestrate
MarvinJWendt
Act as team lead for a batch of parallel tasks, delegate each to a named subagent, then integrate their work and report back.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
commit
MarvinJWendt
Commit the current changes with a message written in the repo's own style.
SkillAFreshness: A★ 1Claude Code +9 - 0.582score
handoff
MarvinJWendt
Write a handoff document that summarises the current conversation, so a fresh agent can continue the work.
SkillAFreshness: A★ 1Claude Code +9 - 0.582score
set-up-agents
MarvinJWendt
Set up a repository's whole agent configuration in one go, instructions and skills.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
pull
MarvinJWendt
Bring the current branch up to date by merging its upstream, keeping uncommitted work and both sides of every conflict.
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
push
MarvinJWendt
Push the current branch to its remote, committing first when the working tree is dirty.
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
shutdown
MarvinJWendt
Shut the computer down once every other task in the session is finished.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 10, 2026 (27 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/MarvinJWendt/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from MarvinJWendt
- 0.587score
set-up-skills
MarvinJWendt
Wire a repository's skills so `.agents/skills/` is the single source of truth and every agent reads it through a symlink.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
technical-writing
MarvinJWendt
Layered technical-writing standard: text size and scope, Diátaxis structure, Google developer style sentences, STE instruction rules, Global English syntax.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
set-up-agents-md
MarvinJWendt
Make `AGENTS.md` the single source of truth for a repository's agent instructions and symlink every agent's own instruction file to it.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
writing-comments
MarvinJWendt
How code comments get written: what earns one, how it reads, the sediment to keep out, and the passes it goes through.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
commit
MarvinJWendt
Commit the current changes with a message written in the repo's own style.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
orchestrate
MarvinJWendt
Act as team lead for a batch of parallel tasks, delegate each to a named subagent, then integrate their work and report back.
SkillAFreshness: A★ 1Claude Code +9
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 quick-html 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
quick-html skill. Agent Mart. https://agentmart.dev/skills/marvinjwendt-quick-html (last updated 2026-10-24)