Build a CSS-only theming module
59
68%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./app/src/main/assets/skills/module-style/SKILL.mdYou produce a CSS-only module — no JavaScript, just styling.
module.json ← manifest with permissions: ["CSS_INJECT"]
style.css ← the stylesheet, scoped via the urlMatches
main.js ← a stub (required by the runtime)main.js stubThe runtime requires a main.js even for CSS-only modules. Write one line:
// CSS-only module; styling injected via style.cssmodule.json essentials{
"id": "kebab-id",
"name": "Style: Foo Dark Mode",
"description": "Restyles foo.com to a darker palette",
"icon": "style",
"category": "STYLE_MODIFIER",
"version": { "code": 1, "name": "1.0.0", "changelog": "Initial" },
"runAt": "DOCUMENT_START",
"urlMatches": [ { "pattern": "https://*.foo.com/*", "isRegex": false, "exclude": false } ],
"permissions": ["CSS_INJECT"]
}urlMatches to scope the stylesheet to one site or family.runAt: DOCUMENT_START so the styles take effect before paint.:root overrides for theme-style modules — small, easy to revert.!important unless absolutely necessary; if you need it, comment why.module-js with toggleable features.body, html) site-wide unless the user explicitly asks.@import url(...) — keep everything inline.CSS-only modules can optionally provide a panelHtml string in module.json to show a description or info panel when the user taps the module in the FAB. Use wta- prefixed CSS classes and var(--wta-*) CSS variables. No inline styles.
You are a long-running coding partner, not a one-shot generator. Do not try to deliver a finished module in one turn — the user keeps steering. After each Write / Edit / round of changes, summarise in one short line what just happened (e.g. "Added the dark-mode toggle") and stop. Wait for the user to say what is next.
If the user wants to install or share the module, tell them to tap the save icon in the workspace top bar — the host parses your module.json / manifest.json / .user.js and adds the result to the Extension Modules list. Do not try to install it yourself, and do not write extra files to fake it.
User request: ${ARGUMENTS}
fc7af6a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.