Un préréglage réunit les trois. Les champs que vous laissez vides retombent sur les valeurs par défaut.
| Couche | Ce qu'elle décide | Comment la changer |
|---|---|---|
Theme |
Les couleurs, les tailles, l'échelle typographique, et la forme de tout ce que le moteur dessine — panneaux de boutons, champs de saisie, onglets, illustrations des interrupteurs | Écrivez un .tres, ou générez-en un avec tools/make_theme.py |
GoSkin |
La forme de tout ce que le code dessine — le joystick, la face des emplacements rapides, l'anneau du repère guidé, les puces, les squelettes, les séparateurs, les en-têtes de section | Dérivez-le et ne redéfinissez que les méthodes qui vous intéressent |
GoIconSet |
Les icônes par leur nom — 84 dessins par défaut, ou les 16 dessins gravés du jeu médiéval par-dessus. Un pack de textures ou une police d'icônes ; le code appelant est identique dans les deux cas | Fournissez un jeu, ou ne redéfinissez que quelques noms |
StyleBoxFlat —
mettez le rayon à zéro et vous obtenez un angle droit ; il n'y a rien entre les deux. Coins coupés en
diagonale, une seule arête épaissie, un halo extérieur : le moteur n'en dessine aucun. Et le joystick et le
repère guidé sont dessinés dans _draw(), où un thème n'a aucune prise.
En choisir un
GoUi.use_preset(GoThemePresets.SCIFI_DARK)
Cette seule ligne change le thème, le skin et les icônes. Depuis l'éditeur, passez par
Paramètres du projet → Gohud → Theme → Preset ; depuis une ressource de configuration,
GoConfig.preset.
Garder un champ à vous
GoUi.use_preset(GoThemePresets.SCIFI_DARK)
GoUi.config.icons = my_icons # vos icônes, tout le reste vient du préréglage
Renseigner explicitement theme, skin ou icons l'emporte sur le préréglage.
Les quatorze préréglages intégrés
| Préréglage | Panneaux | Skin · icônes |
|---|---|---|
default_dark · default_light | Panneaux StyleBoxFlat arrondis sur une échelle d'ombres graduée ; les boutons principaux se soulèvent et s'enfoncent à l'appui | GoSkin · 84 icônes par défaut |
scifi_dark · scifi_light | Panneaux GoStyleBoxCut chanfreinés avec arête néon et halo ; marques de focus GoStyleBoxBracket | GoSkinSciFi — joystick hexagonal · icônes par défaut |
medieval_dark · medieval_light | Cadres GoStyleBoxMedieval forgés — fer et cuir, ou parchemin — avec rivets et ornements d'angle sur les menus | GoSkinMedieval · 16 icônes gravées par-dessus celles par défaut |
material_light · material_dark Nouveau | Material 3 Expressive pour les écrans d'application — boutons en pilule de 40dp dans une zone tactile de 48dp, dialogues de 28dp, cartes pleines, champs à contour, le curseur Expressive ; les composants d'application (barre de navigation, barre d'app supérieure, FAB, barre de recherche, chips, progression, sélecteur de date) suivent les jetons de composant M3 | GoSkinMaterial · icônes par défaut |
kids_light · kids_dark Nouveau | Pour les enfants — le coffre à jouets : contours épais et rebord plein sous chaque touche, qui s'enfonce quand on appuie ; champs de texte creusés, onglets en bulle, barres en gelée ; chaque type de contrôle dans sa propre couleur de crayon, emplacements rapides en bonbon, badges autocollants, joystick arc-en-ciel et graphiques colorés. Les tailles et la police du projet restent les mêmes. | GoSkinKids · icônes par défaut |
arcade_light · arcade_dark Nouveau | Une borne d'arcade dessinée par GoStyleBoxArcade : chaque touche peinte d'un dégradé de haut en bas, d'un reflet blanc et d'un rebord qui s'enfonce à l'appui, dans un contour d'encre bleu marine, son libellé blanc cerné d'encre — primaire vert, touches bleues, danger rouge, petites touches lavande. D'épais panneaux avec un cadre coloré autour d'un fond pâle ; un bandeau de titre doré et une touche de fermeture ronde et rouge sur les fenêtres. | GoSkinArcade · icônes par défaut |
comic_light · comic_dark Nouveau | Des cases de bande dessinée tracées par GoStyleBoxComic : un épais contour d'encre et une ombre franche sur chaque face, qui disparaît à l'appui ; interrupteurs, cases à cocher et poignées de curseur encrés, un cartouche de titre jaune sur les fenêtres. L'épaisseur du contour, la taille de l'ombre et l'affichage ou non des ombres sont des réglages de GoConfig. | GoSkinComic · icônes par défaut |
Les quatorze, côte à côte
Le même écran de galerie où seul le nom du préréglage change — pas une ligne de code des widgets ne diffère. Chaque capture est un téléphone tenu à la verticale, 390×844.

default_dark
default_light
scifi_dark
scifi_light
medieval_dark
medieval_light
material_light
material_dark
kids_light
kids_dark
comic_light
comic_dark
arcade_light
arcade_darkMédiéval : fer, cuir et parchemin
medieval_dark associe le fer sombre et le cuir à l'or ancien. medieval_light
emploie le parchemin et l'encre. Les deux utilisent GoSkinMedieval, les widgets existants, et
16 icônes originales aux détails gravés ; les icônes de navigation retombent sur le jeu d'origine.
GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)
# Ou : GoUi.use_preset(GoThemePresets.MEDIEVAL_LIGHT)
Choisissez le préréglage avant de créer votre UI. Les redéfinitions explicites de
GoConfig.theme, skin ou icons restent prioritaires. Ouvrez
res://addons/gohud/examples/medieval/medieval.tscn et appuyez sur F6 pour une fiche de
personnage, une besace et un journal de quêtes fonctionnels. Ses boutons changent de variante et ouvrent
le détail des objets.


Les cadres de menu portent un rivet et un petit ornement d'angle ; le HUD, toujours visible, garde une
arête discrète. Les points de vie, le mana et l'endurance utilisent des remplissages rouge, bleu et olive.
Cinzel est limitée aux titres et aux sous-titres ; le corps de texte conserve la police du projet hôte ou
celle par défaut. La police fournie inclut sa licence dans
assets/fonts/cinzel/OFL.txt.
Le jeu gravé redessine bag, book, box, coin, crown,
flag, heart, key, map, potion, shield,
star, sword et user, et ajoute scroll et seal.
Tout autre nom retombe sur le jeu par défaut : close et settings gardent donc leurs
dessins d'origine dans tous les préréglages. Cinzel couvre l'écriture latine ; donnez aux titres localisés
leur propre police via shape.fonts.
DPITexture ; un vrai emplacement rapide utilise le skin ; modifier les molettes d'un skin copié
atteint l'emplacement sans toucher au préréglage ; et revenir en arrière restaure la géométrie par défaut
et science-fiction.
Créez votre propre royaume
python3 addons/gohud/tools/new_theme.py kingdom --from medieval_dark
# Modifiez themes/palettes/kingdom.json, puis :
python3 addons/gohud/tools/make_theme.py kingdom
godot --headless --path . --import
# En GDScript, avant de créer les widgets :
GoUi.use_preset(&"kingdom")
Un thème JSON peut hériter d'un autre thème JSON. Les valeurs omises conservent les réglages du parent ; l'héritage circulaire est rejeté. Le préréglage généré conserve le jeu d'icônes de son parent.
| Réglage | Effet |
|---|---|
shape.material | 0 : fer · 1 : cuir · 2 : parchemin. Contrôle les marques de la surface. |
shape.grain_alpha | Opacité de la texture. Mettez 0 pour une surface nette. |
shape.ornament_scale · shape.bevel_strength | Taille de l'ornement d'angle des menus et intensité du reflet biseauté. |
shape.fonts | Associe les rôles title, subtitle, caption, body et button à des fichiers de police res:// internes à l'add-on. Les rôles omis gardent leur police héritée. |
skin.dials | Rayon des emplacements rapides, visibilité des rivets, grain et reflet. Le tableau complet ci-dessous liste chaque molette. |
Material 3 : une apparence pour les écrans d'application Nouveau
material_light et material_dark apportent Material 3 Expressive à gohud — les formes, les tailles et
la typographie des composants M3, chaque valeur étant lue dans le jeu de jetons M3 officiel (material-web,
tokens/versions/latest). Prenez-les là où un écran doit ressembler à une application plutôt qu'à un menu de jeu :
boutiques, boîtes de réception, pages de compte et de réglages, classements, application compagnon.
GoUi.use_preset(GoThemePresets.MATERIAL_LIGHT)
# Ou : GoUi.use_preset(GoThemePresets.MATERIAL_DARK)

material_light
material_dark
GoDialogs · material_light
GoDialogs · material_darkCe qui change
| Partie | Dans Material 3 |
|---|---|
| Boutons | Des pilules (l'arrondi complet). La plaque fait 40dp de haut, centrée dans la cible tactile de 48dp : la zone d'appui ne rétrécit donc pas ; la plaque d'un bouton compact fait 32dp. Les libellés sont en Roboto, graisse 500. |
| Boîtes de dialogue et feuilles | Coins de 28dp (extra-large), marge intérieure de 24dp et un titre de 24sp — GoDialogs, GoSurface, GoSheet et chaque pop-up construit sur eux. |
| Cartes | Des cartes pleines avec des coins de 12dp et une marge intérieure de 16dp. |
| Champs et curseurs | Des champs de texte à contour ; le curseur Expressive avec sa poignée haute. |
| Chips et segments | Coins de 8dp (small). |
| Composants d'application | GoNavBar, GoAppBar, GoFab, GoSearchBar, les chips, GoProgress et GoDatePicker suivent les jetons de composant M3. |
| Typographie | Roboto, fournie avec le kit, pour les titres, sous-titres, légendes et boutons. Le corps de texte garde la police de votre projet : le coréen, le japonais, le chinois ou l'arabe s'affichent toujours. |
| Opacité | Chaque panneau est opaque — les surfaces M3 sont pleines. (Les panneaux par défaut, science-fiction et médiévaux sont opaques à 80 %, si bien que le jeu transparaît.) |
| Skin | GoSkinMaterial : le tiroir est la feuille latérale modale M3, la face de la console est la barre d'outils flottante M3, les bannières reposent sur surface_container_low. |
tools/check_contrast.py mesure les deux apparences comme toutes les autres.
Roboto est sous licence SIL Open Font License 1.1 (assets/fonts/roboto/OFL.txt) et n'est utilisée que par les préréglages
Material.
Enfants : le coffre à jouets Nouveau
kids_light (crème et pêche avec un primaire raisin) et kids_dark (fond myrtille, primaire jaune soleil,
pilules menthe) forment une apparence faite pour les jeux d'enfants et les applications d'apprentissage — épaisse, vive et moelleuse,
le genre de chose qu'un petit doigt a envie d'appuyer.
GoUi.use_preset(&"kids_light")
# Ou : GoUi.use_preset(&"kids_dark")

kids_light
kids_dark
GoDialogs · kids_light
GoDialogs · kids_darkCe qui change
| Partie | Dans les apparences enfants |
|---|---|
| Chaque face | Un bonbon en gelée, dessiné par GoStyleBoxJelly : un contour épais, un rebord plein sous tout ce qui s'appuie, un corps plus clair en haut et plus profond en bas, et un reflet blanc en haut à gauche. Touches, rangées de liste, titres repliables, champs, barres, curseurs et panneaux le portent tous. |
| Appui | Le rebord disparaît et la face s'enfonce à sa place, puis la gelée s'écrase — large et plate un instant, puis elle reprend sa forme d'un rebond élastique. Cela vaut pour chaque bouton créé par gohud ; reduce_motion le désactive. |
| Champs, onglets, barres | Un champ de texte est la même gelée retournée — un puits creusé. Les onglets sont des bulles, les barres ont un reflet de gelée. |
| Couleur | Chaque type de commande dans sa propre couleur de crayon, choisie par le même générateur que pour toutes les apparences : chaque seuil de contraste tient donc toujours. |
| Fenêtres | Un ruban ensoleillé (menthe la nuit) derrière le titre d'une fenêtre — le titre rétrécit, jusqu'à 15, pour tenir sur une ligne — et un bouton de fermeture rond en bonbon, couleur crayon de danger, avec une croix blanche. |
| Parties du skin | GoSkinKids : les emplacements rapides sont des blocs de bonbon qui s'enfoncent pendant le temps de recharge, les badges sont des autocollants, les chips et la pilule de navigation de petites gelées, les avatars des bonbons ronds, le joystick un arc-en-ciel, les graphiques utilisent des crayons, les alertes et les avis sont des notes autocollantes au bord plein. |
| Opacité | Les panneaux, les cartes, les avis et les pop-ups sont opaques. |

Créez votre propre coffre à jouets
python3 addons/gohud/tools/new_theme.py candy --from kids_light
# Modifiez themes/palettes/candy.json, puis :
python3 addons/gohud/tools/make_theme.py candy
GoUi.use_preset(&"candy")
Bande dessinée : encre épaisse Nouveau
comic_light (panneaux blancs sur une page crème papier, un primaire cobalt) et comic_dark (panneaux ardoise sur une
page de nuit, contours crème, un primaire jaune) dessinent chaque face comme une case de bande dessinée — un épais contour d'encre avec une
ombre franche derrière.
GoUi.use_preset(&"comic_light")
# Ou : GoUi.use_preset(&"comic_dark")

comic_light
comic_dark
GoDialogs · comic_light
GoDialogs · comic_darkCe qui change
| Partie | Dans les apparences bande dessinée |
|---|---|
| Chaque face | Dessinée par GoStyleBoxComic : la couleur de surface dans un épais contour couleur d'encre, et une ombre franche vers le bas et la droite. Les touches, les rangées de liste, les champs, les onglets, les barres, les curseurs, les panneaux et les pop-ups la portent tous. |
| Appui | L'ombre disparaît et la face s'enfonce à sa place. |
| Commandes | Les interrupteurs, les cases à cocher, les boutons radio et les poignées de curseur sont encrés eux aussi, chacun avec sa propre petite ombre. |
| Fenêtres | Un cartouche jaune derrière le titre d'une fenêtre et un bouton de fermeture rond encré. |
| Parties du skin | GoSkinComic : les emplacements rapides, les puces, les badges, les avatars, les avis, la barre de navigation, le FAB et les cases de date sont encrés ; le bouton du joystick projette une ombre ; les graphiques utilisent des primaires franches. |
| Opacité | Les panneaux, les cartes, les avis et les pop-ups sont opaques ; les cartes du HUD sont opaques à 92 %. |
Réglages d'encre et d'ombre
Trois réglages de GoConfig changent d'un coup toutes les faces bande dessinée. Rien n'est reconstruit — l'écran se redessine dès que vous les modifiez.
GoUi.config.comic_border_width = 2.0 # le contour (dp) — 3 par défaut
GoUi.config.comic_shadow_size = 6.0 # l'ombre (dp) — 4 par défaut
GoUi.config.comic_shadow = false # aucune ombre nulle part
Un widget peut faire bande à part, quel que soit le réglage :
GoStyle.comic_shadow(skip_button, false) # ce bouton reste à plat
GoStyle.comic_shadow(card, true, true) # cette carte et tout ce qu'elle contient gardent leur ombre
GoStyle.comic_border(title, 5.0) # un contour plus épais sur celui-ci

Créez votre propre bande dessinée
python3 addons/gohud/tools/new_theme.py inked --from comic_light
# Modifiez themes/palettes/inked.json, puis :
python3 addons/gohud/tools/make_theme.py inked
GoUi.use_preset(&"inked")
Arcade : touches peintes et panneaux épais Nouveau
arcade_light (panneaux blancs sur une page bleu ciel) et arcade_dark (panneaux bleu marine sur une page de nuit)
habillent chaque écran comme une borne d'arcade : chaque touche est peinte — un dégradé d'un haut clair vers un bas plus soutenu,
un trait de reflet blanc et un rebord qui s'enfonce à l'appui, dans un contour d'encre bleu marine — et chaque panneau est épais, un
cadre coloré autour d'un fond pâle.
GoUi.use_preset(&"arcade_light")
# Ou : GoUi.use_preset(&"arcade_dark")

arcade_light
arcade_dark
GoDialogs · arcade_light
GoDialogs · arcade_darkCe qui change
| Partie | Dans les apparences arcade |
|---|---|
| Touches | Dessinées par GoStyleBoxArcade : un corps en dégradé, un reflet blanc autour du coin supérieur gauche, un rebord plus soutenu et un contour d'encre bleu marine. La touche principale est verte, les touches normales et l'onglet choisi bleus, les touches de danger corail et rouges, les petites touches et les autres onglets lavande. |
| Libellés | Blancs et cernés d'encre sur chaque touche peinte. Chaque peinture est ajustée jusqu'à ce que ce libellé se lise à chaque hauteur de son dégradé — 4,6:1 ou plus, le contour comptant comme partie de la lettre, comme le font les WCAG. |
| Appui | Le rebord disparaît, la touche s'enfonce à sa place puis rebondit. |
| Panneaux | Les panneaux, les cartes, les cartes du HUD et les pop-ups sont épais : un cadre coloré (6dp autour d'une fenêtre, 4 autour d'une carte ou d'une carte du HUD, 3 autour d'un menu ou d'un avis) avec son propre reflet et son propre rebord, autour d'un fond pâle bordé d'un trait d'encre. Leur marge intérieure grandit un peu pour l'accueillir, si bien que le texte ne touche jamais le cadre. |
| Champs et barres | Les champs de texte et les rainures des barres sont des creux ; le remplissage d'une barre est un tube peint et brillant, dans la teinte vive de sa couleur. |
| Fenêtres | Un bandeau doré portant un titre blanc cerné d'encre, et une touche de fermeture ronde et rouge avec une croix blanche. |
| Parties du skin | GoSkinArcade : les emplacements rapides et les puces sont des capuchons de touche, un emplacement en recharge s'allume d'un liseré doré, les badges sont des plaques claires, les alertes sont encadrées de leur couleur, la carte choisie s'allume d'un liseré doré, le FAB est une touche dorée et le joystick un socle brillant à quatre flèches. |
| Opacité | Les panneaux, les cartes, les avis et les pop-ups sont opaques ; les cartes du HUD sont opaques à 94 %. |
Peindre une touche de sa propre couleur
Le thème peint les touches selon leur type. Un menu dont chaque touche veut sa propre couleur les peint une à une — la face au survol ressort un peu plus claire, celle de l'appui un peu plus soutenue, et la face désactivée reste éteinte :
menu.add_child(GoStyle.arcade_paint(GoStyle.button("Resume", _resume, GoStyle.Tone.PRIMARY), Color("#4ACB3E")))
menu.add_child(GoStyle.arcade_paint(GoStyle.button("Shop", _shop), Color("#FF8A1E")))
GoStyle.arcade_paint(stage_card, Color("#E3343D"), true) # le cadre d'un panneau, et chaque touche qu'il contient
arcade_paint() ne fait rien.

Créez votre propre arcade
python3 addons/gohud/tools/new_theme.py cabinet --from arcade_light
# Modifiez themes/palettes/cabinet.json — les couleurs *_vivid sont les peintures —, puis :
python3 addons/gohud/tools/make_theme.py cabinet
GoUi.use_preset(&"cabinet")