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 opaque0x80050505= noir quasi-transparent (50 % alpha)0xFFFFAA00= jaune opaque (la couleur Apocaly)
Palette ApocalyColors
import ca.tawess123.apocalyinterface.api.theme.ApocalyColors;
Panneaux et fonds
| Constante | Valeur | Description |
|---|---|---|
PANEL_BG | 0x80050505 | Fond du panneau principal, 50 % alpha |
HEADER_BG | 0x66020202 | Fond de la barre de titre, 40 % alpha |
SUB_BG | 0x80030303 | Fond de Card, 50 % alpha |
SLOT_BG | — | Fond de slot vanilla stylé Apocaly |
Bordures et séparateurs
| Constante | Valeur | Description |
|---|---|---|
BORDER | 0xFFFFAA00 | Bordure jaune signature — opaque |
SUB_BORDER | 0x33FFFFFF | Bordure de Card, blanc 20 % alpha |
DIVIDER | 0x55FFFFFF | Ligne Divider, blanc 33 % alpha |
Texte
| Constante | Valeur | Description |
|---|---|---|
TITLE | 0xFFFFAA00 | Titre jaune (identique à BORDER) |
TEXT | 0xFFE8E8E8 | Texte standard, blanc cassé |
MUTED_TEXT | 0xFFA8A8A8 | Texte secondaire, gris |
ACCENT | 0xFF9AD9FF | Valeur mise en avant, cyan clair |
Couleurs sémantiques
| Constante | Valeur | Usage typique |
|---|---|---|
SUCCESS | 0xFF55FF55 | Membre en ligne, action autorisée |
SUCCESS_SOFT | 0xFF7CFF7C | Variante succès plus douce |
DANGER | 0xFFFF5555 | Erreur, action refusée, membre banni |
DANGER_SOFT | 0xFFFF8E8E | Membre hors ligne, alerte non critique |
HOVER_TEXT | 0xFFFFFFCC | Texte bouton survolé (jaune pâle) |
HOVER_FILL | 0x33FFFFFF | Surbrillance de ligne, blanc 20 % alpha |
Podium (leaderboards)
| Constante | Valeur | Usage |
|---|---|---|
GOLD | 0xFFFFD700 | 1re place |
SILVER | 0xFFC0C0C0 | 2e place |
BRONZE | 0xFFCD7F32 | 3e place |
Gradient de difficulté
| Constante | Description |
|---|---|
DIFF_VERY_EASY | Vert clair |
DIFF_EASY | Jaune-vert |
DIFF_NORMAL | Jaune |
DIFF_HARD | Orange |
DIFF_VERY_HARD | Rouge |
Constantes ApocalyDimensions
import ca.tawess123.apocalyinterface.api.theme.ApocalyDimensions;
| Constante | Valeur | Description |
|---|---|---|
BORDER_THICKNESS | 2 px | Épaisseur de la bordure du panneau principal |
SUB_BORDER_THICKNESS | 1 px | Épaisseur de la bordure de Card |
HEADER_HEIGHT | 22 px | Hauteur de la barre de titre |
BUTTON_HEIGHT | 20 px | Hauteur des boutons et champs de saisie |
PANEL_MARGIN | 10 px | Marge interne du panneau (gauche et droite) |
CARD_PADDING | 6 px | Padding interne des Cards |
PANEL_GAP | 8 px | Espace entre deux panneaux (ApocalyMultiScreen) |
SCREEN_EDGE_MARGIN | 4 px | Marge 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éthode | Couleur | Constante |
|---|---|---|
.title() | Jaune | ApocalyColors.TITLE |
.accent() | Cyan | ApocalyColors.ACCENT |
.muted() | Gris | ApocalyColors.MUTED_TEXT |
| (défaut) | Blanc cassé | ApocalyColors.TEXT |
.color(int) | Personnalisé | Toute valeur ARGB |
Voir aussi
- Référence Label — options de couleur
- Référence Button — states de couleur du bouton
- Référence Card —
borderColor()