{ "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.),", " 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": [] } } }