Aller au contenu
galdurdocs

Thème et packs de ressources

Toutes les couleurs et tous les espacements de Galdur UI viennent d’un seul fichier, theme.json. Il est relu avec les ressources, et un pack de ressources peut en changer tout ou partie.

⏱ 5 minGaldur UI 0.1.0Client

theme.json

assets/galdurui/theme.json est la seule source de la charte : les couleurs, et les espacements dans la section spacing.

assets/galdurui/theme.json
{  "background": "#2A2420",  "surface": "#352E29",  "text": "#F8F3E8",  "text_muted": "#C9BEAD",  "accent": "#B8341F",  "accent_hover": "#D9573D",  "accent_pressed": "#952A18",  "ember": "#D98A1F",  "spacing": {    "panel_padding": 16,    "gap": 8,    "button_padding_x": 6,    "button_min_width": 40,    "button_height": 20,    "list_row_height": 12,    "scrollbar_width": 4,    "field_height": 16,    "tab_height": 16,    "tab_padding_x": 8,    "progress_height": 12  }}

Couleurs

CléSert à
backgroundFond principal des écrans (charbon).
surfaceÉléments posés sur le fond : listes, champs.
textCouleur principale du texte (crème).
text_mutedTexte secondaire, moins contrasté.
accentCouleur d’accent au repos (redstone).
accent_hoverAccent sous la souris ou le focus clavier.
accent_pressedAccent pendant l’appui.
emberCouleur secondaire chaude, pour les mises en valeur.

Écris les couleurs en "#RRGGBB" (opaque) ou "#AARRGGBB". Un entier JSON est accepté ; s’il tient sur 24 bits (≤ 0xFFFFFF, donc sans octet alpha), il est lu comme RRGGBB opaque, avec un avertissement dans le journal, plutôt que de donner une couleur invisible.

Les espacements sont en pixels d’interface. Ils s’appliquent à la prochaine construction d’un écran.

Le changer avec un pack de ressources

Mets un theme.json au même chemin dans un pack de ressources : assets/galdurui/theme.json. Il peut être partiel : le fichier du jar fournit les valeurs par défaut de chaque clé absente.

blue_theme/assets/galdurui/theme.json
{  "background": "#18222E",  "surface": "#22303F",  "accent": "#2F6FB8",  "accent_hover": "#4F8FD9",  "accent_pressed": "#24568F",  "ember": "#3FC1D9",  "spacing": {    "button_height": 24,    "gap": 12  }}

C’est le pack thème bleu fourni par le mod de test (Options → Packs de ressources). text et la plupart des espacements manquent : ils reprennent les valeurs par défaut. Une couleur invalide (ni #RRGGBB ni #AARRGGBB) écrit un avertissement et garde aussi la valeur par défaut.

Recharger pendant qu’un écran est ouvert

Minecraft ignore F3+T tant qu’un écran est ouvert. Dans /galdurui test, utilise le bouton « Reload theme ».

Lire le thème dans le code

GaldurTheme donne les couleurs en ARGB (0xAARRGGBB), le format attendu par les méthodes de rendu de Minecraft, et les espacements en pixels.

Example.java
int accent = GaldurTheme.accent();int gap = GaldurTheme.gap();int custom = GaldurTheme.colorOrDefault("mymod_energy", 0xFF3FC1D9);
Ne garde jamais les valeurs du thème en cache

Relis couleurs et espacements à chaque image ou à chaque init(), jamais dans un champ static final : un pack de ressources peut les changer à tout moment.

Tes propres clés

Un mod peut lire ses propres clés de couleur avec colorOrDefault(key, fallback) et les tester avec has(key). Un pack de ressources qui veut habiller ton mod ajoute la clé dans son theme.json ; sans elle, ta valeur de repli est utilisée.

Un panneau au thème autour des layouts vanilla

GaldurPanelLayout entoure n’importe quel layout vanilla d’un panneau de fond au thème, avec la marge du thème. Utilise-le pour donner à un Screen fait main le même rendu que les fenêtres Galdur UI. Le panneau est dessiné avec un sprite en niveaux de gris teinté par le thème : voir Sprites.

© 2026 Galdur Studio · galdurstudio.com · Discord · LGPL-3.0-onlyProduit non officiel. Non approuvé par Mojang ou Microsoft, ni associé à eux.