Aller au contenu principal

Théming et couleurs

Toutes les constantes visuelles de la lib sont centralisées dans deux classes : ApocalyColors pour les couleurs et ApocalyDimensions pour les espacements. Tu ne dois jamais hardcoder de valeur numérique dans ton mod.


Format des couleurs

Toutes les couleurs sont au format ARGB : l'alpha en premier octet, puis rouge, vert, bleu.

0xAARRGGBB
││││││││
││└┴┴┴── bleu (BB)
││└──── rouge (RR), vert (GG)
└────── alpha (AA) — 0x00 = transparent, 0xFF = opaque

Exemples :

  • 0xFF000000 = noir opaque
  • 0x80050505 = noir quasi-transparent (50 % alpha)
  • 0xFFFFAA00 = jaune opaque (la couleur Apocaly)

Palette ApocalyColors

import ca.tawess123.apocalyinterface.api.theme.ApocalyColors;

Panneaux et fonds

ConstanteValeurDescription
PANEL_BG0x80050505Fond du panneau principal, 50 % alpha
HEADER_BG0x66020202Fond de la barre de titre, 40 % alpha
SUB_BG0x80030303Fond de Card, 50 % alpha
SLOT_BGFond de slot vanilla stylé Apocaly

Bordures et séparateurs

ConstanteValeurDescription
BORDER0xFFFFAA00Bordure jaune signature — opaque
SUB_BORDER0x33FFFFFFBordure de Card, blanc 20 % alpha
DIVIDER0x55FFFFFFLigne Divider, blanc 33 % alpha

Texte

ConstanteValeurDescription
TITLE0xFFFFAA00Titre jaune (identique à BORDER)
TEXT0xFFE8E8E8Texte standard, blanc cassé
MUTED_TEXT0xFFA8A8A8Texte secondaire, gris
ACCENT0xFF9AD9FFValeur mise en avant, cyan clair

Couleurs sémantiques

ConstanteValeurUsage typique
SUCCESS0xFF55FF55Membre en ligne, action autorisée
SUCCESS_SOFT0xFF7CFF7CVariante succès plus douce
DANGER0xFFFF5555Erreur, action refusée, membre banni
DANGER_SOFT0xFFFF8E8EMembre hors ligne, alerte non critique
HOVER_TEXT0xFFFFFFCCTexte bouton survolé (jaune pâle)
HOVER_FILL0x33FFFFFFSurbrillance de ligne, blanc 20 % alpha

Podium (leaderboards)

ConstanteValeurUsage
GOLD0xFFFFD7001re place
SILVER0xFFC0C0C02e place
BRONZE0xFFCD7F323e place

Gradient de difficulté

ConstanteDescription
DIFF_VERY_EASYVert clair
DIFF_EASYJaune-vert
DIFF_NORMALJaune
DIFF_HARDOrange
DIFF_VERY_HARDRouge

Constantes ApocalyDimensions

import ca.tawess123.apocalyinterface.api.theme.ApocalyDimensions;
ConstanteValeurDescription
BORDER_THICKNESS2 pxÉpaisseur de la bordure du panneau principal
SUB_BORDER_THICKNESS1 pxÉpaisseur de la bordure de Card
HEADER_HEIGHT22 pxHauteur de la barre de titre
BUTTON_HEIGHT20 pxHauteur des boutons et champs de saisie
PANEL_MARGIN10 pxMarge interne du panneau (gauche et droite)
CARD_PADDING6 pxPadding interne des Cards
PANEL_GAP8 pxEspace entre deux panneaux (ApocalyMultiScreen)
SCREEN_EDGE_MARGIN4 pxMarge minimale entre le panneau et le bord d'écran

Ces valeurs sont utiles pour calculer des hauteurs de ScrollableColumn :

// 5 boutons visibles :
int h = 5 * ApocalyDimensions.BUTTON_HEIGHT + 4 * Column.DEFAULT_GAP;
// 5 × 20 + 4 × 4 = 116 px

Surcharger les couleurs par widget

La plupart des widgets exposent des méthodes de surcharge dans leur builder :

import ca.tawess123.apocalyinterface.api.theme.ApocalyColors;
import ca.tawess123.apocalyinterface.api.widget.Button;
import ca.tawess123.apocalyinterface.api.widget.Label;
import ca.tawess123.apocalyinterface.api.layout.Card;

// Label en rouge (danger)
Label.builder()
.text("monmod.label.avertissement")
.color(ApocalyColors.DANGER)
.build();

// Bouton avec bordure verte (succès)
Button.builder()
.text("monmod.btn.confirmer")
.borderColor(ApocalyColors.SUCCESS)
.accentColor(ApocalyColors.SUCCESS_SOFT)
.onClick(() -> confirmer())
.build();

// Card avec bordure dorée (podium)
Card.create()
.borderColor(ApocalyColors.GOLD)
.add(Label.builder().text("monmod.label.premier").title().build());
Utilise les constantes sémantiques

Préfère ApocalyColors.DANGER à 0xFFFF5555. Si la palette évolue, une seule constante change.


Couleurs prédéfinies des Labels

Label expose des raccourcis pour les couleurs les plus courantes :

MéthodeCouleurConstante
.title()JauneApocalyColors.TITLE
.accent()CyanApocalyColors.ACCENT
.muted()GrisApocalyColors.MUTED_TEXT
(défaut)Blanc casséApocalyColors.TEXT
.color(int)PersonnaliséToute valeur ARGB

Voir aussi