Layout recipes
Short recipes for chrome / layout atoms used in top-nav and character/loadout screens. Storybook: Samples~/Storybook (icon-rail, wedge-slider, parallax-stack, app-bar).
SusIconRail
Vertical (default) or horizontal category / loadout strip of circular items.
| Prop | Role |
|---|---|
Items | List<RailItem> — Label, Value, Icon, Disabled |
Model | Selected Value (or index string) |
Direction | vertical | horizontal |
OnChanged | Action<string> |
Root layout may need consumer USS overrides: Sharq scoping breaks self-target on .sus-icon-rail — put unscoped root rules in companion / theme USS.
Style hooks
USS class contract — override appearance without touching C#. States toggle via these classes:
sus-icon-rail__iconsus-icon-rail__itemsus-icon-rail__item--activesus-icon-rail__item--disabledsus-icon-rail__item--hsus-icon-rail__labelsus-icon-rail--horizontalsus-icon-rail--vertical
SusWedgeSlider
Segmented “volume wedge” (rising bars). Click along the row to set filled segment count.
| Prop | Role |
|---|---|
Label | Optional caption |
Value / Segments | Filled count 0…Segments |
ShowValue / ValueText | Numeric readout |
Disabled | Blocks input |
OnChanged | Action<int> |
Helper: Bind(label, filled, segments = 10).
Style hooks
USS class contract — override appearance without touching C#. States toggle via these classes:
sus-wedge-slidersus-wedge-slider__labelsus-wedge-slider__rowsus-wedge-slider__row--growsus-wedge-slider__segsus-wedge-slider__seg--h1sus-wedge-slider__seg--h10sus-wedge-slider__seg--h11sus-wedge-slider__seg--h12sus-wedge-slider__seg--h13sus-wedge-slider__seg--h14sus-wedge-slider__seg--h15sus-wedge-slider__seg--h16sus-wedge-slider__seg--h2sus-wedge-slider__seg--h3sus-wedge-slider__seg--h4sus-wedge-slider__seg--h5sus-wedge-slider__seg--h6sus-wedge-slider__seg--h7sus-wedge-slider__seg--h8sus-wedge-slider__seg--h9sus-wedge-slider__seg--onsus-wedge-slider__valuesus-wedge-slider__wrapsus-wedge-slider--disabled
SusParallaxStack
Pointer-driven layered stack: bg → pattern → subject → ui (tips) → chrome.
| Prop | Role |
|---|---|
PatternAmp / SubjectAmp / UiAmp | Parallax amplitude (px) |
Call EnsureLayers() after build to resolve Bg, Pattern, Subject, Ui, TipHost, Chrome. Add children into those layers; stack handles pointer move + lerp.
Style hooks
USS class contract — override appearance without touching C#. States toggle via these classes:
sus-parallax-stacksus-parallax-stack__bgsus-parallax-stack__chromesus-parallax-stack__patternsus-parallax-stack__subjectsus-parallax-stack__tipssus-parallax-stack__uisus-parallax-stack--off
SusAppBar
Top strip with prepend / default / append slots (+ optional extension when Prominent).
| Prop | Role |
|---|---|
Title | Label in content |
Density | default | compact | comfortable |
Color | primary | secondary | … | surface |
Flat / Absolute / Prominent | Visual / position modifiers |
Recipe: default slot = SusTabs; append = currency / action SusChips (see Storybook app-bar).
Style hooks
USS class contract — override appearance without touching C#. States toggle via these classes:
sus-app-barsus-app-bar__appendsus-app-bar__contentsus-app-bar__extensionsus-app-bar__prependsus-app-bar__rowsus-app-bar__titlesus-app-bar--absolutesus-app-bar--dangersus-app-bar--density-comfortablesus-app-bar--density-compactsus-app-bar--flatsus-app-bar--infosus-app-bar--primarysus-app-bar--prominentsus-app-bar--secondarysus-app-bar--successsus-app-bar--surfacesus-app-bar--warningsus-slot