agentsclimarketplace

Glaze

Skill edbizarro/glaze/skills/Glaze

Turn any output you already have — a plan, a report, a summary, release notes, any text — into a beautiful, self-contained themed HTML page. Glaze *skins* content; it does not generate it. Ships an eight-theme library (synthwave · manga · brutalist · terminal · sumi · coffee · dieselpunk · neonops), each a self-contained CSS preset built from award-winning design techniques. Zero build step, no JS framework, fonts via Google Fonts, all CSS inlined so the file travels as a single standalone artifact. Extensible: a new theme is one CSS file. Output is verified by opening it in a browser. USE WHEN glaze, glaze this, render as HTML, themed HTML, style this output, make this pretty, beautify this plan/report/summary, skin this content, apply a theme, turn this into a styled page, --style, synthwave/manga/brutalist/terminal/sumi/coffee/dieselpunk/neonops HTML, show the theme catalog. NOT FOR generating the content itself (produce the content first, then glaze the result), static illustrations or diagrams, or video.From its SKILL.md

Install
npx -y skills add edbizarro/glaze --skill Glaze

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

11.8 KB, as published. Nobody here has run it

Glaze — content → themed HTML artifact

Glaze takes output you already have and renders it as a polished, standalone HTML page in a chosen visual theme. It does not invent the content — it skins it. The input is anything textual: a plan, a report, a summary, an extraction, release notes, a thread recap. If the content still needs to be produced (say, a wisdom extraction or a summary), produce it first, then glaze the result.

The output is self-contained and dependency-free: pure HTML and CSS, fonts via Google Fonts, no build step and no JS framework. It works in any Claude Code setup.

Invocation

glaze <content-or-reference> --style <theme>
  • <content> — pasted text, a file path, an already-extracted body, the previous message, or a named artifact. If it's ambiguous, ask what to glaze.
  • --style <theme> — one of: synthwave manga brutalist terminal sumi coffee dieselpunk neonops. Aliases: vaporwave→synthwave, anime→manga, neo/neobrutalist→brutalist, crt/tui→terminal, wabi/wabisabi/sumie→sumi, cafe→coffee, diesel/steampunk/brass→dieselpunk, neon/ops/dataops/hud/wipeout→neonops.
  • No --style given → resolve the saved no-style preference (see below). It only prompts while the preference is unset (the first no-style run); once set, it never prompts again.
  • --style random → choose one at random and say which (one-off; leaves the saved preference untouched).

No-style preference

When invoked without --style, read the No-style behavior field from the per-skill preferences file (in PAI: SKILLCUSTOMIZATIONS/Glaze/PREFERENCES.md):

  1. Unset (first run) → ask the user once, in a single interaction: always pick at random, or a fixed default — and if fixed, which theme (offer the library list). Persist the resolved answer to that field as either random or a concrete theme slug, then apply it.
  2. random → pick uniformly at random from the theme library — every Themes/*.css except _base.css (the shared base, not a theme) — and announce which.
  3. <theme> → use that theme, no prompt.

An explicit --style on the call always overrides the saved preference. If asking is impossible (headless/automated) and the preference is still unset, default to random (consistent with the no-style default), not any fixed theme.

Theme library

ThemeVibeSignature moveBest for
synthwaveneon outrun 80sreceding 3D grid + chromatic aberration + scanlineslaunches, retros, high-energy
mangacomic/anime pagediagonal ink panels + halftone + SFXrecaps, threads, fun
brutalistneo-brutalisthard offset shadows + clashing blocks + marqueeraw, honest, serious extractions
terminalCRT/TUI Tokyo NightCRT screen layer + vim statusbar + diff linestechnical content (safe default)
sumisumi-e / wabi-sabi間 ma + ensō + tate-gaki + hanko sealcalm, reflective, sophisticated
coffeespecialty roaster labeltasting-notes headline + roast meter + kraft grainpersonal, blog, editorial
dieselpunkinterwar brass & oiled steelriveted brass plates + engraved title + amber power-bar + gauges + phosphor stampbold industrial, ops, retro-futurist
neonopsdark ops-HUD (Designers-Republic / Wipeout)corner-bracketed cells + dot-matrix + marching hazard stripe + scanlines + magenta signal + blinking sys cursordashboards, ops, status reports, data

Each theme lives at Themes/<theme>.css and is fully self-contained. Themes/_base.css owns the theme-agnostic content model (layout, flow, responsiveness, print).

Content model (what every theme styles)

The canonical structure is in template.html. Keep markup to these classes so all themes render identically:

  • .glaze wrapper → .glaze-head ( .eyebrow, .title, .deck, optional .meta>.chip )
  • main → repeated .block ( <h2>, .points>li, optional repeated .quote>cite )
  • closing (optional): .takeaway(.lbl,p) · .block.twomin>ul · .block.refs>ul>li>strong
  • .glaze-foot → optional .classification + optional {{FOOTER_META}} (a footer signature from a prefs file; delete the placeholder if unused so no literal {{FOOTER_META}} leaks into the artifact)
  • hr.rule between major regions
  • Terminal-only opt-in: add class add/del to a .points li for green-+/red-− diff lines.

Decorative full-page layers (grid, CRT, washi, ensō, grain) are injected by the theme via body::before/::after and never require extra markup.

Workflow routing

TriggerWorkflow
glaze content / render as themed HTML / --style …Workflows/Render.md
add a new theme / "create a theme for X"Workflows/AddTheme.md
show the catalog / list the themes / compare themesopen Catalog.html (see below)

Catalog

Catalog.html is a self-contained gallery that renders one sample across all eight themes side by side — the visual menu. When someone wants to see or compare the themes, open Catalog.html in a browser (or send the file). Keep it in sync when themes are added or changed (see Workflows/AddTheme.md).

The Render pipeline applies each theme's core aesthetic automatically to the content model — synthwave's grid and sun, terminal's CRT layer plus vim statusbar and title cursor, manga's ink panels and halftone, brutalist's hard shadows and striped rules, sumi's washi and ensō and tate-gaki, coffee's kraft grain and serif, dieselpunk's riveted brass plates and amber power-bar, and neonops's corner-bracketed cells, marching hazard stripe, and scanlines. A few catalog flourishes are hand-built showcase decorations (the brutalist marquee, the manga ドン! SFX, the coffee roast meter), shown to sell the vibe — they are not emitted by template.html. To get coffee flavor pills or synthwave tags in real output, populate the optional .meta>.chip row (themes style it). The artifact a user receives shares the theme's identity, just without the one-off tile gimmicks.

Output & conventions

  • Write to the path the user gives, or a reports/ folder in the working directory. Suggested name: glaze-<slug>-<theme>-YYYY-MM-DD.html.
  • Content language follows the source. Match the source's date format.
  • The footer .classification is optional — set it only when the content carries a sensitivity label, otherwise drop it.
  • If your environment provides a per-skill preferences file, honor it (preferred language, default theme, classification label, footer signature, output dir) — but keep this skill body generic and dependency-free.

Verification (before declaring done)

Always verify the rendered artifact; don't just trust the markup. Open the file in a browser. If you have browser automation (headless Chrome, a screenshot tool, etc.), confirm the theme's signature elements rendered, the fonts loaded, and the prose is legible, then capture a screenshot. Check that mobile (≤640px) collapses cleanly.

Note: a screenshot tool may stall on pages with continuous animations (the synthwave grid, terminal flicker, brutalist marquee). Freeze them first by injecting *,*::before,*::after{animation:none !important}, then capture.

Gotchas

  • Escape source text — it's data, not markup. When filling placeholders, replace &→&amp;, <→&lt;, >→&gt; in every value from the source. Skipping this both breaks fidelity (if a < b, <placeholder>, 2>&1, code snippets render wrong or vanish) and lets untrusted source content (a glazed summary of an external page, third-party notes) inject live HTML/script into a file built to travel. The template ships Content-Security-Policy: script-src 'none' as a second layer that blocks any script that slips through — keep that meta tag. The only markup you add is the theme hooks you control (<em> in the title, add/del classes); never tags carried from the source.
  • document.fonts.check(...) is unreliable — it returns false for webfonts that are actually loaded (Google Fonts splits families into unicode-range subsets). Verify the load by inspecting [...document.fonts].filter(f=>f.status==='loaded') for the family and weight you use, or just trust the screenshot.
  • @import ordering — don't put @import inside the inlined <style> after other rules; it's ignored. The template avoids this by linking all fonts through a single <link> in <head>. Keep it that way.
  • Self-contained output — inline _base.css plus the chosen theme CSS into the <style> block. Don't link the theme files by relative path; the artifact is meant to travel (sent as a file, opened anywhere).
  • Don't over-skin readability away — sumi and coffee are editorial and calm; keep body text legible. The synthwave and terminal glow must not drown the prose.
  • Content fidelity — Glaze restyles, it never rewrites. Preserve the source wording, especially verbatim quotes.
  • "Self-contained" ≠ offline. All CSS is inlined, but fonts load from the Google Fonts CDN through the <head> <link>. With no network the page still renders — it just falls back to system fonts. That's fine for travel and sending; note it if a truly offline artifact is required (then self-host the fonts or accept the fallbacks).
  • <hr class="rule"> is a void element — never style it to hold text. Themes render it as a visual divider only (bars, brush strokes, gradients).

Examples

Example 1: glaze an extraction or summary

User: "summarize this video ... then make an HTML in synthwave style"
→ the summary/extraction is produced first (a separate step)
→ Glaze (Render): maps it to the content model, inlines _base + synthwave CSS
→ writes reports/glaze-<slug>-synthwave-YYYY-MM-DD.html, verifies in a browser

Example 2: theme not specified (no --style)

User: "glaze this summary"
→ Render: content is clear, but there's no --style → resolve the no-style preference
→ set to `random` → pick one at random and announce it (or a fixed theme → use it)
→ unset (first time) → ask once: always random, or a fixed default? persist the answer
→ assemble + verify + deliver

Example 3: re-skin existing content in another theme

User: "send the same thing in the coffee theme"
→ reuse the same content model, swap in Themes/coffee.css
→ new file glaze-<slug>-coffee-YYYY-MM-DD.html, verify, deliver

Example 4: add a new theme

User: "create a cyberpunk theme for Glaze"
→ AddTheme: research elite cyberpunk technique → write Themes/cyberpunk.css
→ register in the theme table + the --style list → smoke-test render

Keep looking

Skills are one crate of 628,853. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.