Files

98 lines
5.4 KiB
JSON

{
"version": 1,
"about": [
"Which parts of Steam's UI pop out of their window in stereo depth (native mode, docs/NATIVE.md).",
"Read by device/lgs_layers.js; tokens %{Name} resolve like theme CSS.",
"Per surface: key (exact overlay key) or keyPrefix (pooled popups; the surface is then reported as NAME.<id>),",
" cover = the element whose rounded box glassd fills with this surface's glass (material), hiding Steam's panel there;",
" with all: true every outermost match is a shape of its own (bar segments, a popup's cards), never one box around them,",
" frameKey = only while the dashboard frame showing that overlay is visible, laserOnly = only in laser (not controller) mode.",
"Per layer rule: sel, optional pseudo (::before/::after: the capsule is that pseudo-element),",
" dz = depth toward the viewer in metres, lift = extra dz while focused (focus selector, default .gpfocus/.gpfocuswithin;",
" 'always' when sel already only matches focused elements), outset/inset in CSS px, r = 'capsule' | CSS px | computed radius,",
" max = elements per rule, material = slab material (liquid, panel, thick, window).",
"Layer ids are slots: a rule's first element is reported as the rule id, later ones as id.1, id.2 (the id follows the match).",
"Rules are in priority order: a layer that overlaps one kept earlier is dropped, as are covered (under a scrim),",
"transparent, clipped-away and offscreen ones, and, while their scroller scrolls, the ones that move with it.",
"Content (lists, grids, text, art) stays on the window plane; only ornaments, floating controls, menus/sheets",
"and the focused card pop. Never glass on glass: a cover shape is not also popped. Keep each surface under 24 layers."
],
"defaults": { "material": "liquid", "maxLayers": 20 },
"surfaces": {
"main": {
"key": "valve.steam.gamepadui.main",
"frameKey": "valve.steam.gamepadui.main",
"material": "window",
"cover": {
"sel": "%{BasicUiRoot}:not(:has(> %{MainNavMenuMainSplit} > %{BasicHome}%{PopupBody>TransparentBackground}))"
},
"layers": [
{ "id": "menu", "sel": "%{*BasicContextMenuModal>contextMenuContents}",
"dz": 0.03, "material": "thick", "max": 3 },
{ "id": "sheet", "sel": "%{*GamepadDialogContent>ModalPosition} > %{*GamepadDialogContent_InnerWidth>GamepadDialogContent}",
"dz": 0.03, "material": "thick" },
{ "id": "sheet-panel", "sel": "%{*GamepadDialogContent>ModalPosition} > div.Panel:not(%{*GamepadDialogContent>ModalClickToDismiss}):has(> %{ScrollPanel})",
"dz": 0.03, "material": "thick" },
{ "id": "filters", "sel": "%{DialogWrapper>CompatFilterDialog}",
"dz": 0.03, "material": "thick" },
{ "id": "hdr-back", "sel": "#header %{BackContainer}", "pseudo": "::before",
"dz": 0.015, "r": "capsule" },
{ "id": "hdr-search", "sel": "#header%{Profile>Header}", "pseudo": "::after",
"dz": 0.015, "r": "capsule" },
{ "id": "footer", "sel": "#Footer%{BasicFooter}", "pseudo": "::after",
"dz": 0.012, "r": "capsule" },
{ "id": "tabs", "sel": "%{TabHeaderRowWrapper}", "pseudo": "::after",
"dz": 0.012, "r": "capsule", "max": 2 },
{ "id": "tab-arrow", "sel": ":is(%{GamepadLibrary}, %{RecentSection} ~ %{TabbedContent}) %{TabHeaderRowWrapper} %{Arrows}",
"dz": 0.012, "r": "capsule", "max": 4 },
{ "id": "sort-filter", "sel": "%{SortAndFilterContainer}",
"dz": 0.015, "r": "capsule" },
{ "id": "play", "sel": "%{PlayButtonContainer}",
"dz": 0.015, "lift": 0.005, "outset": 3, "r": "capsule" },
{ "id": "app-button", "sel": "%{PartnerEventOverlayContainer>AppDetailsMain} %{Container>MenuButton}",
"dz": 0.01, "lift": 0.004, "outset": 3, "r": "capsule", "max": 3 },
{ "id": "card", "focus": "always", "lift": 0.008, "outset": 4,
"sel": "%{LibraryItemBox}:is(.gpfocus, .Focusable:focus), %{GamepadSearch} %{ResultTemplate}.gpfocuswithin %{ResultTemplateImage}, %{GamepadLibrary} %{Collection}:is(.gpfocus, :focus), %{RecentlyCompletedItem}.gpfocus, %{RecentSection} ~ %{TabbedContent} %{GameCapsule}.gpfocus, %{InGameGame}.gpfocus, %{Seen>MarketingMessage}.gpfocus, %{SeasonalSale}.gpfocus, %{BasicGameCarouselItem} %{TextBoxCarouselContents}.gpfocus" },
{ "id": "button", "focus": "always", "lift": 0.005, "outset": 3, "r": "capsule",
"sel": "button.DialogButton.gpfocus" }
]
},
"bar": {
"key": "valve.steam.gamepadui.bar",
"material": "liquid",
"cover": { "sel": "%{PopupBody>DashboardBar} > %{BarSurface}", "all": true, "r": "capsule" },
"layers": []
},
"barpopup": {
"keyPrefix": "valve.steam.gamepadui.barpopup.",
"material": "panel",
"cover": {
"sel": "%{DashboardBarPopupContents}, %{QuickAccessMenu}, %{DashboardMenu}%{Variant_TabMenu}",
"all": true
},
"layers": []
},
"frame.menu": {
"keyPrefix": "valve.steam.gamepadui.frame.menu.",
"frameKey": "valve.steam.gamepadui.main",
"laserOnly": true,
"material": "panel",
"cover": { "sel": "%{DashboardMenu}%{Variant_FrameMenu}" },
"layers": []
},
"floatingfooter": {
"key": "valve.steam.gamepadui.floatingfooter",
"material": "panel",
"cover": { "sel": "#Footer%{BasicFooter}%{FloatingVRFooter}", "r": "capsule" },
"layers": []
}
}
}