← Easy UI

Component Reference

All ~39 Easy UI components, grouped by area – with tag, key attributes and a UXML example. The manifest is always authoritative (Assets/EasyUI/AI/easyui.manifest.json); do not invent classes or attributes that aren't listed there.

i

Every component is authorable in UXML and C#. Enum values are written as the member name (e.g. variant="Primary"). Some components need an additional stylesheet – see Stylesheets.

Layout & Container

TagPurposeKey attributes
EuiRootToken host & topmost element of every hierarchy; sets breakpoint classes.breakpoint-small, breakpoint-medium, auto-focus
EuiPanelStyled surface / container.
EuiCardCard with an optional title header; children go into the content.title
EuiModalDimmed backdrop with a centered card.title, open, close-on-backdrop
EuiAccordionItemCollapsible section with a header.title, expanded
EuiScrollViewStyled scroll view (give it a fixed height).
EuiSafeAreaInsets content around the device safe area (notches). Wrap your HUD in this.

Buttons & Inputs

TagPurposeKey attributes
EuiButtonButton in 4 variants, 3 sizes.text, variant (Primary/Secondary/Ghost/Danger), size (Small/Medium/Large)
EuiToggleSwitch (INotifyValueChanged<bool>).label, value
EuiSliderValue slider.low-value, high-value, value
EuiStepperNumeric +/- stepper.value, min, max, step
EuiTextFieldText field with label.label, value
EuiDropdownSelection dropdown.label, options (CSV)
EuiRatingStarsStar rating.value, max
EuiSegmentedControlSegmented toggle.items (CSV), value (index)
EuiColorPickerColor selection from swatches.colors (CSV hex), value (index)
Example
<eui:EuiButton text="Play" variant="Primary" size="Large" />
<eui:EuiDropdown label="Quality" options="Low, Medium, High" />
<eui:EuiSegmentedControl items="Day,Week,Month" value="1" />

Feedback & Status

TagPurposeKey attributes
EuiProgressBarBar with a color role (e.g. red HP, blue mana).value (0..1), label, tone (Primary/Danger/Success/Warning/Info)
EuiToastNotification banner; at runtime via EuiToast.Show(root, msg, tone).text, tone (Info/Success/Warning/Danger)
EuiSpinnerRotating loading spinner (Painter2D).thickness, fill-token
EuiChipTag/chip with an optional remove button.text, closable, tone
EuiBadgeSmall status label.text, tone (Primary/Danger/Muted/Success/Warning/Info)
EuiSkeletonLoading placeholder.lines, avatar
EuiAvatarRound avatar with initials.initials
TagPurposeKey attributes
EuiTabsTabs (INotifyValueChanged<int>).tabs (CSV), value
EuiBreadcrumbPath navigation.items (CSV), separator
EuiPaginationPage navigation.pages, value (1-based)
EuiDataTable / EuiDataRowTable; rows as children, columns share the width.Table: columns (CSV) · Row: cells (CSV)
EuiCalendarMonth calendar with selection.month, days, start, today, value
Example
<eui:EuiDataTable columns="Name,Level,Gold">
  <eui:EuiDataRow cells="Nova,42,1240" />
  <eui:EuiDataRow cells="Rok,37,860" />
</eui:EuiDataTable>

Game UI

TagPurposeKey attributes
EuiDialogueBoxDialogue box with speaker, text, portrait, continue hint.speaker, text, hint, show-portrait
EuiCurrencyCurrency display with icon.icon, amount, tone (Gold/Gem/Neutral)
EuiLeaderboard / EuiLeaderboardRowLeaderboard; rows as children.Row: rank, player, score, highlight
EuiAbilityButtonAbility slot with hotkey & cooldown sweep.icon, hotkey, cooldown (0..1), cooldown-text
EuiQuestLog / EuiQuestEntryQuest list; entries as children.Entry: title, objective, progress, done
EuiItemSlotInventory/hotbar slot (icon via background-image).icon, count, selected
Example
<eui:EuiDialogueBox speaker="Nova" text="We shouldn't be here."
  hint="Space" show-portrait="true" />
<eui:EuiAbilityButton icon="🔥" hotkey="Q" cooldown="0.4" cooldown-text="3" />

Game Controls

TagPurposeKey attributes
EuiJoystickVirtual touch joystick; value normalized (-1..1, y-up).return-to-center
EuiDPadFour-way D-pad; value = pressed direction.
EuiRadialProgressCircular ring for cooldowns/timers (Painter2D).value (0..1), thickness, fill-token
EuiRadialMenuRadial menu / weapon wheel (Painter2D).items (CSV), value, fill-token

Shapes & Text

EuiShape draws crisp panels, rings and badges procedurally (Painter2D) – without importing sprites. It has no intrinsic size: always set width/height. For theme-consistent colors, use fill-token/border-token/shadow-token instead of literal colors (requires an EuiRoot ancestor).

TagPurposeKey attributes
EuiShapeProcedural surface with gradient, border, soft shadow.fill-token, corner-radius, use-gradient, gradient-angle, border-width, shadow-*
EuiLocalizedLabelLabel whose text comes from a localization key.key
Example
<eui:EuiShape style="width:170px; height:110px;" fill-token="primary" corner-radius="20" />

Stylesheets

Always loaded: EasyUI.Tokens.uss, EasyUI.Core.uss, EasyUI.Button.uss, EasyUI.Controls.uss. Additionally, depending on the component:

StylesheetRequired for
EasyUI.GameControls.ussEuiJoystick, EuiRadialProgress, EuiTabs, EuiRadialMenu
EasyUI.Widgets.ussEuiModal, EuiDPad, EuiBadge
EasyUI.Content.ussEuiItemSlot, EuiScrollView, .eui-grid/.eui-row
EasyUI.Feedback.ussEuiToast, EuiSpinner, EuiChip, EuiAvatar
EasyUI.GameUI.ussEuiDialogueBox, EuiCurrency, EuiLeaderboard, EuiAbilityButton, EuiQuestLog
EasyUI.General.ussEuiSegmentedControl, EuiBreadcrumb, EuiPagination, EuiSkeleton, EuiDataTable, EuiCalendar, EuiColorPicker
EasyUI.Anchors / .Responsive / .Focus / .StatesAnchor, responsive, focus and state helper classes

The Screen Wizard and the UxmlWriter helpers wire up the matching ComponentSheets automatically – when building manually, follow the list above.