--- title: Widgets UI type: docs weight: 12 --- Cette page documente tous les types de widgets disponibles dans le système UI de Hytale. ## Widgets Conteneurs ### Group Conteneur de base pour organiser d'autres widgets. ``` Group #Container { Anchor: (Width: 400, Height: 300); Background: (Color: #000000(0.5)); LayoutMode: Top; Padding: (Full: 16); // Widgets enfants... } ``` **Propriétés Clés :** - `Anchor` - Position et taille - `Background` - Couleur ou texture de fond - `LayoutMode` - Mode d'arrangement des enfants - `Padding` - Espacement intérieur - `Visible` - Afficher/masquer - `FlexWeight` - Poids de dimensionnement flexible ## Widgets Texte ### Label Affiche du texte statique ou dynamique. ``` Label #Title { Text: "Bonjour le monde"; Style: ( FontSize: 24, TextColor: #ffffff, RenderBold: true, HorizontalAlignment: Center, VerticalAlignment: Center ); Anchor: (Height: 40); } ``` **Propriétés Clés :** - `Text` - Contenu texte (chaîne ou `%translation.key`) - `Style` - Objet LabelStyle - `Anchor` - Position et taille - `Padding` - Marge du texte ## Widgets Boutons ### Button Bouton cliquable sans label texte. ``` Button #CloseButton { Anchor: (Width: 32, Height: 32); Style: ( Default: (Background: "CloseButton.png"), Hovered: (Background: "CloseButtonHovered.png"), Pressed: (Background: "CloseButtonPressed.png"), Disabled: (Background: "CloseButtonDisabled.png"), Sounds: @ButtonSounds ); } ``` ### TextButton Bouton avec label texte. ``` TextButton #SubmitButton { Text: %ui.button.submit; Style: ( Default: ( Background: (TexturePath: "Button.png", Border: 12), LabelStyle: (FontSize: 16, TextColor: #ffffff) ), Hovered: ( Background: (TexturePath: "ButtonHovered.png", Border: 12), LabelStyle: (FontSize: 16, TextColor: #ffffff) ), Pressed: ( Background: (TexturePath: "ButtonPressed.png", Border: 12), LabelStyle: (FontSize: 16, TextColor: #cccccc) ), Sounds: @ButtonSounds ); Anchor: (Height: 44); Padding: (Horizontal: 24); } ``` ### BackButton Bouton retour/fermer pré-stylisé. ``` BackButton {} ``` ### ActionButton Bouton qui affiche un nom d'action avec sa touche associée. ``` ActionButton #BindingInventory { Disabled: true; LayoutMode: Right; Alignment: Right; ActionName: %client.hud.inputBindings.inventory; Anchor: (Top: 15); } ``` ## Widgets de Saisie ### TextField Champ de saisie texte mono-ligne. ``` TextField #NameInput { Anchor: (Height: 38); Style: @DefaultInputFieldStyle; PlaceholderStyle: @DefaultInputFieldPlaceholderStyle; Background: (TexturePath: "InputBox.png", Border: 16); Padding: (Horizontal: 10); PlaceholderText: %ui.placeholder.enterName; } ``` ### NumberField Champ de saisie numérique. ``` NumberField #QuantityInput { Anchor: (Width: 100, Height: 38); Style: @DefaultInputFieldStyle; Background: (TexturePath: "InputBox.png", Border: 16); Padding: (Horizontal: 10); Min: 1; Max: 100; } ``` ### CompactTextField Champ de texte extensible style recherche. ``` CompactTextField #SearchInput { Anchor: (Height: 30); CollapsedWidth: 34; ExpandedWidth: 200; PlaceholderText: %ui.search.placeholder; Style: (FontSize: 16); PlaceholderStyle: (TextColor: #3d5a85, RenderUppercase: true, FontSize: 14); Padding: (Horizontal: 12, Left: 34); Decoration: ( Default: ( Icon: (Texture: "SearchIcon.png", Width: 16, Height: 16, Offset: 9), ClearButtonStyle: @ClearButtonStyle ) ); ExpandSound: (SoundPath: "Sounds/Expand.ogg", Volume: 6); CollapseSound: (SoundPath: "Sounds/Collapse.ogg", Volume: 5); } ``` ### Slider Contrôle curseur horizontal. ``` Slider #VolumeSlider { Anchor: (Width: 200, Height: 16); Style: ( Background: (TexturePath: "SliderBackground.png", Border: 2), Handle: "SliderHandle.png", HandleWidth: 16, HandleHeight: 16, Sounds: ( Activate: (SoundPath: "Tick.ogg", Volume: 10), MouseHover: (SoundPath: "Hover.ogg", Volume: 6) ) ); Min: 0; Max: 100; Value: 50; } ``` ### SliderNumberField Curseur combiné avec affichage numérique. ``` SliderNumberField #BrightnessSlider { Anchor: (Width: 270, Height: 5); SliderStyle: @DefaultSliderStyle; NumberFieldStyle: @DefaultInputFieldStyle; } ``` ### CheckBox Case à cocher. ``` CheckBox #EnableOption { Anchor: (Width: 22, Height: 22); Background: (TexturePath: "CheckBoxFrame.png", Border: 7); Padding: (Full: 4); Style: ( Unchecked: ( DefaultBackground: (Color: #00000000), HoveredBackground: (Color: #00000000), ChangedSound: (SoundPath: "Untick.ogg", Volume: 6) ), Checked: ( DefaultBackground: (TexturePath: "Checkmark.png"), HoveredBackground: (TexturePath: "Checkmark.png"), ChangedSound: (SoundPath: "Tick.ogg", Volume: 6) ) ); Value: false; } ``` ### DropdownBox Menu de sélection déroulant. ``` DropdownBox #LanguageSelector { Anchor: (Width: 330, Height: 32); Style: ( DefaultBackground: (TexturePath: "Dropdown.png", Border: 16), HoveredBackground: (TexturePath: "DropdownHovered.png", Border: 16), PressedBackground: (TexturePath: "DropdownPressed.png", Border: 16), DefaultArrowTexturePath: "DropdownCaret.png", ArrowWidth: 13, ArrowHeight: 18, LabelStyle: (TextColor: #96a9be, FontSize: 13), PanelBackground: (TexturePath: "DropdownBox.png", Border: 16), EntryHeight: 31, EntriesInViewport: 10, Sounds: @DropdownBoxSounds ); } ``` ## Widgets d'Affichage ### Sprite Image animée ou statique. ``` Sprite #LoadingSpinner { Anchor: (Width: 32, Height: 32); TexturePath: "Spinner.png"; Frame: (Width: 32, Height: 32, PerRow: 8, Count: 72); FramesPerSecond: 30; } ``` ### AssetImage Affiche une image d'asset (icône d'item, etc.). ``` AssetImage #ItemIcon { Anchor: (Width: 64, Height: 64); } ``` ### ProgressBar Barre de progression. ``` ProgressBar #HealthBar { Anchor: (Width: 200, Height: 20); BarTexturePath: "HealthBarFill.png"; Alignment: Horizontal; Direction: Start; Value: 0.75; } ``` **Propriétés :** - `Alignment` - `Horizontal` ou `Vertical` - `Direction` - `Start` ou `End` - `Value` - 0.0 à 1.0 ## Widgets d'Inventaire ### ItemGrid Grille d'affichage pour les items d'inventaire. ``` ItemGrid #HotbarGrid { SlotsPerRow: 9; Style: ( SlotBackground: "ItemSlot.png", SlotSize: 64, SlotSpacing: 4, HoveredSlotBackground: "ItemSlotHovered.png", SelectedSlotBackground: "ItemSlotSelected.png" ); Background: (TexturePath: "HotbarBackground.png", Border: 10); Padding: 4; RenderItemQualityBackground: true; AreItemsDraggable: true; } ``` ## Widgets de Navigation ### TabNavigation Navigation par onglets. ``` TabNavigation #CategoryTabs { Style: ( TabStyle: ( Default: (Background: "Tab.png", IconAnchor: (Width: 44, Height: 44)), Hovered: (Background: "TabHovered.png"), Pressed: (Background: "TabPressed.png") ), SelectedTabStyle: ( Default: (Background: "TabSelected.png", Overlay: "TabSelectedOverlay.png") ), TabSounds: @TabSounds ); } ``` ## Propriétés de Tooltip De nombreux widgets supportent les tooltips : ``` TextButton #InfoButton { TooltipText: %ui.tooltip.info; TextTooltipStyle: ( Background: (TexturePath: "TooltipBackground.png", Border: 24), MaxWidth: 400, LabelStyle: (Wrap: true, FontSize: 16), Padding: 24 ); } ``` ## Tableau Récapitulatif des Widgets | Widget | Usage | |--------|-------| | `Group` | Conteneur pour la mise en page | | `Label` | Affichage de texte | | `Button` | Bouton cliquable | | `TextButton` | Bouton avec texte | | `BackButton` | Bouton retour pré-stylisé | | `ActionButton` | Action avec affichage de touche | | `TextField` | Saisie de texte | | `NumberField` | Saisie numérique | | `CompactTextField` | Champ de recherche extensible | | `Slider` | Contrôle curseur | | `SliderNumberField` | Curseur avec affichage numérique | | `CheckBox` | Case à cocher | | `DropdownBox` | Menu déroulant de sélection | | `Sprite` | Image/animation | | `AssetImage` | Affichage d'icône d'asset | | `ProgressBar` | Indicateur de progression | | `ItemGrid` | Grille d'inventaire | | `TabNavigation` | Navigation par onglets |