Skip to content
cccskills
FreePublished on GitHubEnglish overview

generative_ui

Create interactive HTML widgets or standalone artifacts to explain information visually. Use it for diagrams, data visualizations, controls, and educational walkthroughs, with layouts adapted for chat embeds or a larger side pane.

OriginalShow the original description

How to render rich interactive HTML widgets inline in the chat or as standalone artifacts. Use this skill when you want to show the user diagrams, data visualizations, interactive controls, educational walkthroughs, or any rich visual content beyond plain text and markdown.

asgeirtj/system_prompts_leaks70,411 stars(GitHub 70,411 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Presenting a diagram alongside a chat explanation
  • Exploring data through an interactive visualization
  • Showing controls for a small demonstration
  • Building a larger dashboard or prototype

Overview

What it does

This skill creates HTML widgets embedded in chat or HTML screens that open in a side pane, helping present information that is hard to explain with text alone. Use it for diagrams, data visualizations, interactive controls, and step-by-step learning materials. The HTML file is self-contained and can optionally be embedded in the conversation. The guidance distinguishes compact content that fits in chat from larger dashboards, simulations, and app prototypes that need a standalone screen. Theme variables can be used to match the colors of the display environment.

When it helps

Use it when an explanation would benefit from diagrams or interactive elements, or when you want to inspect numbers and relationships visually. It supports formats ranging from a small learning widget alongside a short explanation to a larger visualization or prototype.

Example requests

  • “Create a diagram to go with this explanation.”
  • “Turn this data into an interactive chart.”
  • “Make a short learning widget that can be viewed in chat.”

Notes

Use write_to_file to create the HTML. External CDNs are restricted by the content security policy; only the specified gstatic script is allowed for Tailwind CSS. Chat embeds have a 500px height viewport, so avoid height settings that depend on the full screen.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Document check

AI checked the SKILL.md for operations that need care and for setup requirements. The score comes only from actually running the skill (hands-on test).

SafetyAre sending data, deleting files, and running commands disclosed?
BPartly lackingIt writes HTML and loads a script, with CSP restrictions specified.
Easy setupDoes it need few tools or API keys, and are they documented?
BPartly lackingIt assumes `write_to_file` and artifact display support; no setup steps are given.

Not counted in the score. Rated by AI (OpenAI Codex) as of Oct 30, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (1)

  • SKILL.md5.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Generative UI

You can render custom, rich, interactive user interfaces (inline widgets or larger artifacts) directly in the chat. This is a great way to communicate complex information to the user, generate rich visualizations, and even create small interactive experiences for the user.

Workflow

  1. Create the HTML Artifact: Use write_to_file to save a self-contained .html file (using Tailwind CSS and inline JavaScript) to the artifact directory. Set UserFacing: true in ArtifactMetadata.

  2. Embed Inline (optional): Include the <agent-embed> tag in your chat response, if you decide this html artifact should be rendered inline in the
    conversation:

    <agent-embed src="file:///<artifact_path>/widget.html"></agent-embed>
    

Constraints & Theming

  • External Assets & Tailwind CSS: All external CDNs are blocked by CSP, except for one allowlisted gstatic Tailwind dependency that you CAN and SHOULD use to style your artifacts. Include the following script tag in your <head> to enable Tailwind:

    <script src="https://www.gstatic.com/antigravity/web/dev/tailwindcss.min.js"></script>
    
  • Use Provided Theme Variables: The iframe injects the app's semantic design-system tokens, so widgets automatically match the host theme and the user's custom colors. Surfaces (--background, --content, --card, --sidebar), borders (--border), text (--foreground, --muted-foreground, --placeholder), and accents (--primary/--primary-foreground, --secondary/--secondary-foreground, --accent) are all available. Typography is applied for you on the document body — you do not need to set a font, and never use sub-12px micro-text (text-[10px], text-[11px], or CSS font-size below 12px; keep text-xs / 12px as the minimum floor unless the user asks).

  • Text & Surface Colors: Use semantic variables (bg-[var(--card)], text-[var(--foreground)], text-[var(--muted-foreground)]) instead of hardcoded dark/light utility classes (e.g., bg-slate-900, text-white) to ensure high contrast across both light and dark themes.

  • Do Not Declare Local Fallbacks on :root: Never define local color fallbacks on :root in a <style> block; the host environment manages theme variables dynamically.

  • HTML Boilerplate Template: Recommended base template:

    <!DOCTYPE html>
    <html>
    <head>
      <script src="https://www.gstatic.com/antigravity/web/dev/tailwindcss.min.js"></script>
    </head>
    <body class="bg-transparent text-[var(--foreground)] antialiased p-5">
      <div class="bg-[var(--card)] text-[var(--foreground)] border border-[var(--border)] rounded-xl p-5 shadow-sm">
        <h2 class="text-[var(--foreground)] font-semibold text-lg">Title</h2>
        <p class="text-[var(--muted-foreground)] text-sm">Description</p>
        <!-- Interactive content goes here -->
      </div>
    </body>
    </html>
    
  • General styling: Aim for a clean, premium aesthetic. For <canvas>, check document.documentElement.classList.contains('light') to adapt colors.

Deciding on Placement (Inline vs. Standalone)

Default to artifact only — reference the HTML artifact in your response and let the user open it in the side pane. Consider inlining when the widget is compact (comfortably under 500px tall) and directly illustrates the surrounding explanation (e.g., a small educational widget, plot, or diagram). Larger, more complex content (data dashboards, simulations, app prototypes) should stay artifact-only. Always follow the user's explicit preference if stated.

Designing Inline Widgets (Cards & Transparency)

When embedding inline in chat (<agent-embed>), style widgets as native chat
components:

  • Transparent Root Background: Always set <body class="bg-transparent ..."> so the widget blends seamlessly into the chat container.
  • Card-Based Layouts: Wrap inline content and controls in a card container (as shown in the Boilerplate Template above) to provide elevation and prevent loose text in light mode.
  • Standalone Artifacts: For full-page side-pane artifacts (like dashboards), use a solid background (e.g., bg-[var(--background)]).

Sizing Inline Embeds

For inline embeds, it is important to think small and compact.

Inline embeds only have a 500px height viewport. Past that the widget scrolls inside a small box and the user sees only a fragment of what you built, so don't build inlined widgets that are too tall.

  • Do not set a height attribute on <agent-embed>. It is ignored.
  • Think compact Think carefully about designing something that is compact and fits nicely inline in the chat height budget.
  • If the idea genuinely needs more room, make it a standalone artifact. A scrolling inline widget is usually wrong — full-height in the side pane beats cropped in the chat.

After generating the artifact, consider whether it is sufficiently compact to be useful inline and adjust if needed.

[!IMPORTANT] Never size an inline widget relative to the viewport: no
h-screen, min-h-screen, 100vh, or height: 100% on a top-level
container. The frame's viewport is derived from your content, so these feed
themselves and the widget collapses to a sliver. Use padding for breathing
room instead.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

3d-object

FreeSummary

Create a 3D object with three.js, inspect it from every angle in an interactive viewer, and download it as OBJ + MTL or GLB for use in other 3D applications.

  • Create a 3D object and inspect it from every angle
  • Export a model for further editing in Blender
  • Review an object's silhouette and materials
asgeirtj/system_prompts_leaks70.4KUpdated Oct 29, 2026

a11y-debugging

FreeSummary

Audit web accessibility with Chrome DevTools MCP and Lighthouse. Inspect semantic structure, labels, keyboard focus, tap target size, and color contrast, then identify page elements that may need changes based on web.dev guidance.

  • Finding missing labels or image alternatives
  • Checking heading structure and reading order
  • Testing keyboard navigation and modal focus
asgeirtj/system_prompts_leaks70.4KUpdated Oct 29, 2026

action-items

FreeSummary

Maintain a private task list with deadlines, next steps, waiting parties, and blockers. Update progress and dependencies, merge duplicate items, and archive closed tasks so ongoing commitments stay clear and easy to follow.

  • Record tasks and commitments with deadlines
  • Track pending replies and reasons work cannot proceed
  • Update task dependencies when prerequisites are completed
asgeirtj/system_prompts_leaks70.4KUpdated Oct 29, 2026

agents

FreeSummary

Coordinate a task from a verifiable goal through completion. Handle work directly or split independent tasks across separate agent sessions, track progress, verify results, and arrange pull request merging when included in the goal.

  • Split independent tasks across agents
  • Check progress across ongoing tasks
  • Resume a previously started project
asgeirtj/system_prompts_leaks70.4KUpdated Oct 29, 2026

Understand how Antigravity discovers and loads customizations, including which locations and priority rules apply. Use this guide to choose and create skills, rules, plugins, hooks, or MCP servers for agent workflows and external tool connections.

  • Understanding where workspace customizations are discovered
  • Checking which customization takes priority
  • Choosing between a skill, rule, plugin, or hook
asgeirtj/system_prompts_leaks70.4KUpdated Oct 29, 2026

animated-video

FreeSummary

Create animated HTML pages with smooth scene transitions and playback controls. An editable timeline lets users adjust scene lengths and speeds, with fixed landscape or portrait layouts prepared for video export.

  • Create an animated product walkthrough
  • Explain a message through moving text and graphics
  • Build a portrait animation for video export
asgeirtj/system_prompts_leaks70.4KUpdated Oct 29, 2026

See all skills by asgeirtj

Report a problem with this skill