Agent skill

Godot UI Theming

by thedivergentai in thedivergentai/GD-Agentic-Skills

Expert blueprint for UI themes using Theme resources, StyleBoxes, custom fonts, and theme overrides for consistent visual styling.

LGPL-3.0Auto-check passedFrontend & Design

Install Godot UI Theming

skills CLI
$ npx skills add thedivergentai/GD-Agentic-Skills --skill godot-ui-theming -a claude-code

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

GitHub CLI
$ gh skill install thedivergentai/GD-Agentic-Skills godot-ui-theming --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/thedivergentai/GD-Agentic-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/godot-ui-theming .claude/skills/godot-ui-theming && 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
godot-ui-theming
GitHub stars
821
Token cost
~3.7k tokens
SKILL.md length
1,314 words
Files
16 (incl. scripts, references)
Skills in repo
98
Repo updated
First seen
Licence
LGPL-3.0

At a glance

Expert blueprint for UI themes using Theme resources, StyleBoxes, custom fonts, and theme overrides for consistent visual styling.

  • Works in 8 steps: Shared-Color-Palette (The Static Pattern) → Theme-Type-Variations → Runtime StyleBox Color (duplicate first) → …
  • Implementing consistent UI styling OR supporting multiple themes
  • SKILL.md covers Available Scripts, NEVER Do in UI Theming, Decision Tree — Theme Ownership and Expert Theming Patterns, plus 2 more sections
  • Tasks that involve Theming and dark mode

What it does

Godot UI Theming is an agent skill from thedivergentai/GD-Agentic-Skills. Expert blueprint for UI themes using Theme resources, StyleBoxes, custom fonts, and theme overrides for consistent visual styling. Covers StyleBoxFlat/Texture, theme inheritance, dynamic theme switching, and font variations. Use when implementing consistent UI styling OR supporting multiple themes. Keywords Theme, StyleBox, StyleBoxFlat, addthemeoverride, font, theme inheritance, dark mode.

Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files, including scripts and reference files (for example `references/migration-notes.md` and `references/theme-authoring-recipes.md`).

It sits in Frontend & Design, covering Theming and dark mode and Game development. It works with Godot. The repository describes itself as: The official "Long-Term Memory" for Godot 4.7+ AI Agents. A high-density library of 99 expert skills and 27 genre blueprints, providing audited, strictly typed GDScript patterns… The licence is LGPL-3.0.

When your agent uses it

  • Implementing consistent UI styling OR supporting multiple themes
  • Tasks that involve Theming and dark mode
  • Tasks that involve Game development

Example prompts

  • “/godot-ui-theming”

Workflow steps

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

  1. Shared-Color-Palette (The Static Pattern)
  2. Theme-Type-Variations
  3. Runtime StyleBox Color (duplicate first)
  4. Runtime-Theme-Swapping (Accessibility)
  5. RTL / LTR Theme Mirroring
  6. Themed-Asset-Loading (Seasonal Variants)
  7. UI-Focus-Manager (Dynamic Controller Icons)
  8. Asset-Dependency-Audit (Draw-Call Reduction)

What it can do on your machine

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

    Ships 13 files in scripts/, which the agent can run.

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

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.godotengine.org

    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

Godot UI Theming loads about 3.7k tokens when it runs, and up to ~4.7k if it reads all its reference files. Until then it costs about 103 tokens; SKILL.md has 1,314 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~103
When it runs · the whole SKILL.md, loaded when a task matches
~3.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.7k

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); the scripts in this folder are not scanned.

SKILL.md

The full file from thedivergentai/GD-Agentic-Skills at commit 4c4d0ff, republished under its LGPL-3.0 licence (© thedivergentai). 1,314 words, ~3,697 tokens.

Download SKILL.mdSave it as .claude/skills/godot-ui-theming/SKILL.md (or your agent's skills folder). This skill also uses 15 other files; get the full folder from GitHub.
name
godot-ui-theming
description
Expert blueprint for UI themes using Theme resources, StyleBoxes, custom fonts, and theme overrides for consistent visual styling. Covers StyleBoxFlat/Texture, theme inheritance, dynamic theme switching, and font variations. Use when implementing consistent UI styling OR supporting multiple themes. Keywords Theme, StyleBox, StyleBoxFlat, add_theme_override, font, theme inheritance, dark mode.

UI Theming

Theme resources, StyleBox styling, font management, and override system define consistent UI visual identity.

Available Scripts

global_theme_manager.gd

Expert theme manager with dynamic switching, theme variants, and fallback handling.

ui_scale_manager.gd

Runtime theme switching and DPI/Resolution scale management.

theme_swapper.gd

Dynamic Dark/Light mode implementation using cascading theme root propagation.

danger_button_assignment.gd

Expert use of theme_type_variation for semantic UI styling without scene duplication.

dynamic_stylebox_color.gd

Safe runtime StyleBox modification. Demonstrates the critical duplicate() pattern for isolated overrides.

procedural_theme_safe.gd

Reliable theming for generated UI elements using NOTIFICATION_THEME_CHANGED.

custom_chart_drawing.gd

Pattern for reading active Theme properties (colors, fonts) in custom _draw() logic.

theme_isolation.gd

Ensuring HUD consistency by isolating nodes from parent themes and referencing Project Defaults.

pulsating_ui_theme.gd

Animating UI styles via Tweens. Targets StyleBox properties directly after duplication.

crisp_ui_scaler.gd

High-quality resolution-independent scaling using content_scale_factor to maintain font crispness.

memory_safe_custom_drawing.gd

Fixing the "disappearing stylebox" bug by caching resources at the class level for the RenderingServer.

rtl_theme_mirroring.gd

Bi-directional (RTL/LTR) UI support. Swaps theme variants dynamically based on layout direction.

focus_prompt_icon_swapper.gd

Controller/keyboard prompt icon bank swap + focus highlight panel. MANDATORY for accessibility prompt chrome.

NEVER Do in UI Theming

  • NEVER create StyleBox in _ready() for many nodes — Instantiating StyleBoxFlat.new() 100 times creates 100 unique objects. Use a Theme resource for shared heritage.
  • NEVER forget theme inheritance — Parent themes are ignored if a child has its own theme. Apply themes at the root and use theme_type_variation for specific overrides.
  • NEVER hardcode colors in StyleBox — Use theme.get_color() to maintain a single source of truth for your palette.
  • NEVER use add_theme_override for global styles — This is brittle. Define styles in a Theme resource for automatic propagation across the project.
  • NEVER modify theme resources during _draw() OR _process() — Frequent layout recalculations will severely degrade performance.
  • NEVER assign StyleBoxEmpty to focus styles without a fallback — This invisibly breaks controller/keyboard navigation [1]. Always provide a visible alternative (e.g. scale change).
  • NEVER use standard set() for theme properties — Calling node.set("font_color", red) fails. You MUST use the dedicated add_theme_color_override() API [3].
  • NEVER use expand_margin_* to increase clickable area — It only expands the VISUAL bounds. Use content_margin_* on the StyleBox or adjust the Control's size to ensure input works [5].
  • NEVER define StyleBoxes as local variables inside _draw() — They will be garbage collected before the RenderingServer can finish drawing them [7]. Store at class level.
  • NEVER duplicate scenes/themes just to change one color — Use theme_type_variation to create lightweight derived styles (e.g. "DangerButton") within the same Theme [8].
  • NEVER skip corner_radius_all on StyleBoxFlat — shorthand for uniform rounding; prefer it over four separate radius fields when all corners match.
  • NEVER confuse Theme items with Control overrides — add_theme_*_override beats Theme resource items on that node only; a child Control with its own theme still blocks parent cascade. Clear with remove_theme_*_override when swapping roots — do not leave stale overrides fighting the new Theme.

Decision Tree — Theme Ownership

GoalChooseNotes / script
App-wide lookProject Settings → GUI → ThemeAuthor in Theme editor — no per-node StyleBox tutorials here
One Control differsadd_theme_*_override on that nodeLocal only; never for global styles
Button/panel subtypetheme_type_variationSee danger_button_assignment.gd
Runtime color tweak without mutating shared Themestylebox.duplicate() then overrideSee dynamic_stylebox_color.gd

Fonts & StyleBoxes: edit via Theme editor / Project Theme. Runtime helpers: global_theme_manager.gd, theme_swapper.gd, procedural_theme_safe.gd.

Expert Theming Patterns

1. Shared-Color-Palette (The Static Pattern)

Maintain a single source of truth for UI colors accessible to both the Theme Editor and GDScript.

  • Theme Setup: In your .theme file, create a custom type called Palette and add Color items (e.g., primary, danger, accent).
  • Static Access: Use a SharedPalette class with static func get_primary() -> Color that pulls from ThemeDB.get_project_theme(). This ensures UI scripts and the visual theme never drift.
2. Theme-Type-Variations

Avoid duplicating button scenes or styleboxes for variants like "Danger" or "Ghost" styles.

  • Implementation: In the Theme Editor, create a new Type Variation. Set its Base Type to Button.
  • Inheritance: The variation inherits all properties from the base type. You only override what's different (e.g., set font_color to red for DangerButton).
  • Usage: Assign via code node.theme_type_variation = &"DangerButton" or via the Inspector dropdown.

MANDATORY: Read danger_button_assignment.gd — do not fork Button scenes for color variants.

3. Runtime StyleBox Color (duplicate first)

When a single Control needs a runtime tint, duplicate the StyleBox before mutating — shared Theme StyleBoxes must stay immutable.

MANDATORY: Read dynamic_stylebox_color.gd — never mutate a Theme StyleBox in place.

4. Runtime-Theme-Swapping (Accessibility)

Efficiently switch the visual style of the entire game for Light, Dark, or High-Contrast modes.

  • Cascading Updates: Assign a new Theme resource to the root Control node. Godot propagates this to every descendant.
  • Accessibility: Use NOTIFICATION_THEME_CHANGED to update elements that don't support automatic theming (like custom _draw() logic or RichText effects).
  • High-Contrast: Ensure High-Contrast themes use pure black/white and thicker focus outlines for low-vision accessibility.

MANDATORY: Read theme_swapper.gd — swap at the theme root; do not walk every Control assigning themes.

Show full SKILL.md (525 more words)Show less
5. RTL / LTR Theme Mirroring

Bi-directional layouts need mirrored StyleBox / type-variation banks when direction flips — not hand-flipped anchors alone.

MANDATORY: Read rtl_theme_mirroring.gd — swap theme variants from layout direction; do not hardcode LTR margins.

6. Themed-Asset-Loading (Seasonal Variants)

Godot Themes support more than just colors and fonts—they can store textures.

  • Setup: Define UI icons as Icon items within separate Theme resources (e.g., halloween.theme, christmas.theme).
  • Swapping: Swapping the root theme resource instantly cascades the new icon textures across all buttons and panels without manual logic.
7. UI-Focus-Manager (Dynamic Controller Icons)

Standard focus styles are static. For accessibility UX, swap prompt icons by device and tween a highlight panel to get_global_rect().

MANDATORY: Read focus_prompt_icon_swapper.gd — do not paste joypad icon paths into Control scripts.

Pairs with Runtime-Theme-Swapping (Accessibility) above and theme_swapper.gd for High-Contrast roots.

8. Asset-Dependency-Audit (Draw-Call Reduction)

Ensuring UI textures are optimized for rendering performance.

  • Atlas Packing: Use AtlasTexture to crop small UI elements from a singular large sheet. This reduces VRAM state changes and minimizes draw calls [14].
  • Compression Policy:
    • 2D/Pixel Art: Use Lossless compression to avoid blurry artifacts [15].
    • UI Backgrounds: Use Lossy or Basis Universal for large illustrations to save disk space without decreasing VRAM usage [15].
  • Audit: Use ResourceLoader.get_dependencies(scene_path) to ensure no uncompressed raw assets (e.g. .png) are leaking into the final export [19].

Deep recipes (on demand)

LLM-ignorance rule: if a general agent would not know it before reading, it lives here or in scripts/ — never delete, only move.

TopicReference
StyleBox / font setuptheme-authoring-recipes.md

Reference

Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing work to a peer domain — do not preload the whole lattice.

Official Documentation
  • GUI skinning — Theme resources, StyleBoxes, and cascading skin ownership.
  • Using the theme editor — Authoring Theme assets without hand-editing every Control override.
  • Theme type variations — Variants for button/panel subtypes without duplicating whole themes.
  • Using fonts — DynamicFont / font size theming for UI readability.
  • Custom GUI controls — When themed _draw() needs theme item lookups.
  • Size and anchors — Layout that survives theme scale and DPI changes.
  • Theme — Runtime get/set for colors, constants, icons, StyleBoxes.
  • ThemeDB — Project default theme and fallback resolution.
  • Control — Theme overrides and NOTIFICATION_THEME_CHANGED.
  • StyleBox — Panel/button chrome used by most Theme skins.
  • AtlasTexture — Pack UI icons to cut draw-call churn.
  • Input — Custom cursors and joypad-driven prompt icon swaps.
Prerequisites
Complements
Downstream / consumers
Master
  • godot-master — Library router and mirrored module entry for UI theming.

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

Files

SKILL.md and 15 other files (scripts, references) in skills/godot-ui-theming of thedivergentai/GD-Agentic-Skills.

  • SKILL.md
  • references/migration-notes.md
  • references/theme-authoring-recipes.md
  • scripts/crisp_ui_scaler.gd
  • scripts/custom_chart_drawing.gd
  • scripts/danger_button_assignment.gd
  • scripts/dynamic_stylebox_color.gd
  • scripts/focus_prompt_icon_swapper.gd
  • scripts/global_theme_manager.gd
  • scripts/memory_safe_custom_drawing.gd
  • scripts/procedural_theme_safe.gd
  • scripts/pulsating_ui_theme.gd
  • scripts/rtl_theme_mirroring.gd
  • scripts/theme_isolation.gd
  • scripts/theme_swapper.gd
  • scripts/ui_scale_manager.gd

Open the folder on GitHubat commit 4c4d0ff

Compare with similar skills

Godot UI Theming 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.

Godot UI Theming compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Godot UI Theming this skillthedivergentai/GD-Agentic-Skills821—~3.7kAutomated safety check: PassLGPL-3.0
UI Theme QAhashgraph-online/awesome-codex-plugins1.3k—~1.8kAutomated safety check: PassApache-2.0
Localizationjame581/GodotPrompter805—~3.2kAutomated safety check: PassMIT
UI KitRandallLiuXin/GodotMaker550—~2.8kAutomated safety check: PassCustom licence
Iconsconnorshea/vglist160—~321Automated safety check: PassMIT
Mobile Device QAtextura-agency/next16-claude-starter135—~5kAutomated safety check: NotesUnlicense

Similar skills

  • UI Theme QA

    hashgraph-online/awesome-codex-plugins

    A skill your agent uses to find and fix undisciplined Control-node UI in a Godot project — spacing that follows no ladder, font sizes with no modular scale, near-duplicate colours, and text that…

    1.3k GitHub stars~1.8k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Localization

    jame581/GodotPrompter

    A skill your agent uses when implementing localization (i18n/l10n) — TranslationServer, CSV/PO translation files, locale switching, RTL support, and pluralization in Godot 4.3+

    805 GitHub stars~3.2k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • UI Kit

    RandallLiuXin/GodotMaker

    Produce a complete reusable flat-first Godot UI Theme from a binding visual reference, with two provider-generated source sheets, fixed square nine-slice patches, stable AtlasTexture icons, and…

    550 GitHub stars~2.8k tokensUpdated 23 days ago
    Game DevelopmentAuto-check passed
  • Icons

    connorshea/vglist

    How to add icons to the vglist frontend using Lucide via @lucide/vue.

    160 GitHub stars~321 tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed
  • Mobile Device QA

    textura-agency/next16-claude-starter

    Make a site behave on real phones — the defects no Lighthouse run or headless scroll test sees, learned from site owners reviewing production sites on an iPhone.

    135 GitHub stars~5k tokensUpdated yesterday
    Frontend & DesignAuto-check: notes
  • Viewport

    kevinpbuckley/VibeUE

    Control the Unreal Editor level viewport — camera type/position, view mode, FOV, exposure, layout, and rendering settings (ViewportService).

    730 GitHub stars~3.9k tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed

More from thedivergentai/GD-Agentic-Skills

All 98 skills in this repo
  • Godot 2D Animation

    thedivergentai/GD-Agentic-Skills

    Expert patterns for 2D animation in Godot using AnimatedSprite2D and skeletal cutout rigs.

    821 GitHub stars~3.6k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot 3D World Building

    thedivergentai/GD-Agentic-Skills

    Expert patterns for 3D level design using GridMap with MeshLibrary, CSG constructive solid geometry, occlusion, and runtime GridMap builders.

    821 GitHub stars~3.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot Adapt 2D To 3D

    thedivergentai/GD-Agentic-Skills

    Expert patterns for migrating 2D games to 3D including node type conversions, camera systems (third-person, first-person, orbit), physics layer migration, sprite-to-model art pipeline, and control…

    821 GitHub stars~4.7k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot Adapt 3D To 2D

    thedivergentai/GD-Agentic-Skills

    Expert patterns for simplifying 3D games to 2D including dimension reduction strategies, 2.5D fake-depth, isometric ports, camera flattening, physics conversion, 3D-to-sprite art pipeline, and…

    821 GitHub stars~4.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot Agent Vision

    thedivergentai/GD-Agentic-Skills

    Agentic eyes for Godot work: cross-platform screenshot CLI (asset/region/window/screen) to budgeted WebP, TEMP editor viewport bridge under .gdskills/, and Taste Receptor Atlas v2 (~237…

    821 GitHub stars~3.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot Animation Tree Mastery

    thedivergentai/GD-Agentic-Skills

    Expert patterns for AnimationTree including StateMachine transitions, BlendSpace2D for directional movement, BlendTree for layered animations, root motion, transition conditions, advance…

    821 GitHub stars~3.6k tokensUpdated 1 mo ago
    Auto-check passed

Works with

Questions about Godot UI Theming

What does Godot UI Theming do?

Expert blueprint for UI themes using Theme resources, StyleBoxes, custom fonts, and theme overrides for consistent visual styling. Godot UI Theming is an agent skill from thedivergentai/GD-Agentic-Skills. Expert blueprint for UI themes using Theme resources, StyleBoxes, custom fonts, and theme overrides for consistent visual styling.

When should I use Godot UI Theming?

Godot UI Theming fits situations like: implementing consistent UI styling OR supporting multiple themes; tasks that involve Theming and dark mode; tasks that involve Game development.

How do I install Godot UI Theming in Claude Code?

Run `npx skills add thedivergentai/GD-Agentic-Skills --skill godot-ui-theming -a claude-code`. Or copy the skill folder (skills/godot-ui-theming in thedivergentai/GD-Agentic-Skills) into .claude/skills/godot-ui-theming in your project. Claude Code loads it when a task matches its description.

How do I install Godot UI Theming in Codex?

Run `npx skills add thedivergentai/GD-Agentic-Skills --skill godot-ui-theming -a codex`. Or copy the skill folder (skills/godot-ui-theming in thedivergentai/GD-Agentic-Skills) into .agents/skills/godot-ui-theming in your project. Codex loads it when a task matches its description.

Can I use Godot UI Theming 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 thedivergentai/GD-Agentic-Skills --skill godot-ui-theming -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/godot-ui-theming, .gemini/skills/godot-ui-theming, .github/skills/godot-ui-theming and .opencode/skills/godot-ui-theming in your project.

What does Godot UI Theming need to run?

SKILL.md names no scripts, command-line tools or credentials: Godot UI Theming is instructions for the agent only.

Does Godot UI Theming access the network?

SKILL.md names 1 domain. As links in the text: docs.godotengine.org. This is read from the text; nothing was executed.

Is Godot UI Theming 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Godot UI Theming use?

Godot UI Theming is published under the LGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Godot UI Theming use?

About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 986 tokens, read only when the agent opens those files.

What are the alternatives to Godot UI Theming?

Skills that share tags, products or a category with Godot UI Theming: UI Theme QA (hashgraph-online/awesome-codex-plugins, 1.3k stars), Localization (jame581/GodotPrompter, 805 stars), UI Kit (RandallLiuXin/GodotMaker, 550 stars) and Icons (connorshea/vglist, 160 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Godot UI Theming?

thedivergentai (a GitHub user) maintains it in thedivergentai/GD-Agentic-Skills, which has 821 GitHub stars. The repository holds 98 skills in this directory. The repository was last updated on September 9, 2026.

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