Bevy ECS skill for 2D sprite animation. Keywords: Bevy, sprite, animation, AnimationPlayer, AnimationClip, 2D.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
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.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
실행 점수 미검증
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Theme resources, StyleBox styling, font management, and override system define consistent UI visual identity.
Expert theme manager with dynamic switching, theme variants, and fallback handling.
Runtime theme switching and DPI/Resolution scale management.
Dynamic Dark/Light mode implementation using cascading theme root propagation.
Expert use of theme_type_variation for semantic UI styling without scene duplication.
Safe runtime StyleBox modification. Demonstrates the critical duplicate() pattern for isolated overrides.
Reliable theming for generated UI elements using NOTIFICATION_THEME_CHANGED.
Pattern for reading active Theme properties (colors, fonts) in custom _draw() logic.
Ensuring HUD consistency by isolating nodes from parent themes and referencing Project Defaults.
Animating UI styles via Tweens. Targets StyleBox properties directly after duplication.
High-quality resolution-independent scaling using content_scale_factor to maintain font crispness.
Fixing the "disappearing stylebox" bug by caching resources at the class level for the RenderingServer.
Bi-directional (RTL/LTR) UI support. Swaps theme variants dynamically based on layout direction.
Controller/keyboard prompt icon bank swap + focus highlight panel. MANDATORY for accessibility prompt chrome.
_ready() for many nodes — Instantiating StyleBoxFlat.new() 100 times creates 100 unique objects. Use a Theme resource for shared heritage.theme_type_variation for specific overrides.theme.get_color() to maintain a single source of truth for your palette.add_theme_override for global styles — This is brittle. Define styles in a Theme resource for automatic propagation across the project._draw() OR _process() — Frequent layout recalculations will severely degrade performance.StyleBoxEmpty to focus styles without a fallback — This invisibly breaks controller/keyboard navigation [1]. Always provide a visible alternative (e.g. scale change).set() for theme properties — Calling node.set("font_color", red) fails. You MUST use the dedicated add_theme_color_override() API [3].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]._draw() — They will be garbage collected before the RenderingServer can finish drawing them [7]. Store at class level.theme_type_variation to create lightweight derived styles (e.g. "DangerButton") within the same Theme [8].corner_radius_all on StyleBoxFlat — shorthand for uniform rounding; prefer it over four separate radius fields when all corners match.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.| Goal | Choose | Notes / script |
|---|---|---|
| App-wide look | Project Settings → GUI → Theme | Author in Theme editor — no per-node StyleBox tutorials here |
| One Control differs | add_theme_*_override on that node | Local only; never for global styles |
| Button/panel subtype | theme_type_variation | See danger_button_assignment.gd |
| Runtime color tweak without mutating shared Theme | stylebox.duplicate() then override | See 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.
Maintain a single source of truth for UI colors accessible to both the Theme Editor and GDScript.
.theme file, create a custom type called Palette and add Color items (e.g., primary, danger, accent).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.Avoid duplicating button scenes or styleboxes for variants like "Danger" or "Ghost" styles.
Button.font_color to red for DangerButton).node.theme_type_variation = &"DangerButton" or via the Inspector dropdown.MANDATORY: Read danger_button_assignment.gd — do not fork Button scenes for color variants.
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.
Efficiently switch the visual style of the entire game for Light, Dark, or High-Contrast modes.
Theme resource to the root Control node. Godot propagates this to every descendant.NOTIFICATION_THEME_CHANGED to update elements that don't support automatic theming (like custom _draw() logic or RichText effects).MANDATORY: Read theme_swapper.gd — swap at the theme root; do not walk every Control assigning themes.
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.
Godot Themes support more than just colors and fonts—they can store textures.
halloween.theme, christmas.theme).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.
Ensuring UI textures are optimized for rendering performance.
AtlasTexture to crop small UI elements from a singular large sheet. This reduces VRAM state changes and minimizes draw calls [14].ResourceLoader.get_dependencies(scene_path) to ensure no uncompressed raw assets (e.g. .png) are leaking into the final export [19].LLM-ignorance rule: if a general agent would not know it before reading, it lives here or in
scripts/— never delete, only move.
| Topic | Reference |
|---|---|
| StyleBox / font setup | theme-authoring-recipes.md |
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.
_draw() needs theme item lookups.아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Bevy ECS skill for 2D sprite animation. Keywords: Bevy, sprite, animation, AnimationPlayer, AnimationClip, 2D.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Spawn and tune Bevy 0.20 directional, point, and spot lights, cascade shadows, distance fog, and a nearest-light shadow budget. Use when a 3D scene needs a sun, local lights, or fog on the camera. Keywords: DirectionalLight, PointLight, SpotLight, CascadeShadowConfig, DistanceFog, bevy_light.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Bevy ECS skill for PBR materials. Keywords: Bevy, StandardMaterial, PBR, material, ExtendedMaterial.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Bevy ECS skill for 3D level assembly. Keywords: Bevy, level, scene, mesh, world, ECS.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Bevy ECS skill for abilities. Keywords: Bevy, ability, cooldown, ECS, gameplay.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Rewrite Bevy 2D actors and cameras into 3D meshes and Camera3d while keeping gameplay components. Use when a Bevy 2D game should gain a perspective camera, mesh draw, and a planar velocity lifted onto XZ. Keywords: Camera2d, Camera3d, Sprite, Mesh3d, StandardMaterial, WishVelocity.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.