Layout utilities — position (relative/absolute + offsets), the full flexbox vocabulary (direction, grow/shrink, align, justify), and aspect-ratio classes.
<!-- Position Relative -->
<engine:VisualElement class="relative" />
<!-- Position Absolute-->
<engine:VisualElement class="absolute" />Format: top-{value} / right-{value} / bottom-{value} / left-{value}
Uses same length variables mentioned at Styling/Size.
<!-- set left -->
<engine:VisualElement class="left-4" />
<!-- set right-->
<engine:VisualElement class="right-10p" />
<!-- set top -->
<engine:VisualElement class="top-full" />
<!-- set bottom -->
<engine:VisualElement class="bottom-20-neg" />⚠️ These classes resolve through
var(--length-N), and current Luna builds no longer ship the--length-*definitions. Define them in your own USS — copy-paste block on Size → USS variables — or the pixel-valued offset classes won't take effect. (The percentage variants likeright-10puse literal values and work as-is — except the-80pones: all eightleft/right/top/bottom-80pclasses ship as580%and their-80p-negcounterparts as-580%. Write a one-line override, e.g..left-80p { left: 80%; }, until fixed upstream.)
<!-- flex-direction: row -->
<engine:VisualElement class="flex-row" />
<!-- flex-direction: row-reverse -->
<engine:VisualElement class="flex-row-reverse" />
<!-- flex-direction: column-->
<engine:VisualElement class="flex-col" />
<!-- flex-direction: column-reverse -->
<engine:VisualElement class="flex-col-reverse" />Values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
<!-- flex-grow -->
<engine:VisualElement class="grow-4" />
<engine:VisualElement class="grow-15" />
<!-- flex-shrink -->
<engine:VisualElement class="shrink-0" />
<engine:VisualElement class="shrink-8" />⚠️ Stick to 0–8 for now. The shipped stylesheet misdeclares the upper end of the scale: the selectors for
grow-10…grow-15andshrink-10…shrink-15are all typo'd as.grow-9/.shrink-9. The practical result:grow-9/shrink-9currently resolve to 15 (last declaration wins), andgrow-10throughgrow-15don't exist. Values 0–8 behave as named; for anything higher, write your own one-line rule until this is fixed upstream.
| Class | Properties |
|---|---|
| items-auto | align-items: auto |
| items-start | align-items: flex-start |
| items-end | align-items: flex-end |
| items-center | align-items: center |
| items-stretch | align-items: stretch |
| Class | Properties |
|---|---|
| justify-start | justify-content: flex-start |
| justify-center | justify-content: center |
| justify-end | justify-content: flex-end |
| justify-between | justify-content: space-between |
| justify-around | justify-content: space-around |
| justify-evenly | justify-content: space-evenly |
| Class | Properties |
|---|---|
| self-auto | align-self: auto |
| self-start | align-self: flex-start |
| self-end | align-self: flex-end |
| self-center | align-self: center |
| self-stretch | align-self: stretch |
| Class | Properties |
|---|---|
| align-auto | align-content: auto |
| align-start | align-content: flex-start |
| align-end | align-content: flex-end |
| align-center | align-content: center |
| align-stretch | align-content: stretch |
Utility classes to set the aspect ratio of an element. These classes set the CSS aspect-ratio property.
| Class | Aspect Ratio |
|---|---|
| aspect-auto | auto |
| aspect-square | 1 / 1 |
| aspect-video | 16 / 9 |
| aspect-1-1 | 1 / 1 |
| aspect-1-2 | 1 / 2 |
| aspect-2-1 | 2 / 1 |
| aspect-2-3 | 2 / 3 |
| aspect-3-2 | 3 / 2 |
| aspect-3-4 | 3 / 4 |
| aspect-4-3 | 4 / 3 |
| aspect-4-5 | 4 / 5 |
| aspect-5-4 | 5 / 4 |
| aspect-9-16 | 9 / 16 |
| aspect-16-9 | 16 / 9 |
| aspect-21-9 | 21 / 9 |
<!-- Square aspect ratio -->
<engine:VisualElement class="aspect-square" />
<!-- Video aspect ratio (16:9) -->
<engine:VisualElement class="aspect-video" />
<!-- Custom 4:3 aspect ratio -->
<engine:VisualElement class="aspect-4-3" />--length-* variable block the position classes consume@import chainSettings
Theme
Light
Contrast
Material
Dark
Dim
Material Dark
System
Sidebar(Light & Contrast only)
Font Family
DM Sans
Wix
Inclusive Sans
AR One Sans
Direction