DevUI Custom Theme Format

DevUI is the name of the ImGui implementation in Strata. DevUI supports custom themes provided in the GAME path under resource/devui/themes. Themes are automatically indexed on game startup and can be changed at any time via the top menu bar, or via devui_theme in the console.

These are KeyValues 3 files with various properties defining different ImGui style parameters. Most of these match names in the ImGuiStyle structure, ImGuiCol_ enum and the ImGuiStyleVar_ enum.

A functional example theme can be found in p2ce under p2ce/resource/devui/themes/strata.kv3.

{ // NOTE: The defaults presented here are not accurate. You will need to edit your own theme accordingly. // Font parameters Font = "panorama/fonts/LexendDeca-Regular.ttf" // Relative to the "GAME" search path. FontSize = 16 // Float Alpha = 0.5 DisabledAlpha = 0.5 WindowRounding = 0.5 WindowBorderSize = 0.5 WindowBorderHoverPadding = 0.5 ChildRounding = 0.5 ChildBorderSize = 0.5 PopupRounding = 0.5 PopupBorderSize = 0.5 FrameRounding = 0.5 FrameBorderSize = 0.5 IndentSpacing = 0.5 ColumnsMinSpacing = 0.5 ScrollbarSize = 0.5 ScrollbarRounding = 0.5 GrabMinSize = 0.5 GrabRounding = 0.5 LogSliderDeadzone = 0.5 ImageBorderSize = 0.5 TabRounding = 0.5 TabBorderSize = 0.5 TabCloseButtonMinWidthSelected = 0.5 TabCloseButtonMinWidthUnselected = 0.5 TabBarBorderSize = 0.5 TabBarOverlineSize = 0.5 TableAngledHeadersAngle = 0.5 SeparatorTextBorderSize = 0.5 MouseCursorScale = 0.5 CurveTessellationTol = 0.5 CircleTessellationMaxError = 0.5 HoverStationaryDelay = 0.5 HoverDelayShort = 0.5 HoverDelayNormal = 0.5 FontScaleDpi = 0.5 FontScaleMain = 0.5 FontSizeBase = 0.5 // ImVec2 -- Specified as 2-component array WindowPadding = [0.1, 0.1] WindowMinSize = [0.1, 0.1] WindowTitleAlign = [0.1, 0.1] FramePadding = [0.1, 0.1] ItemSpacing = [0.1, 0.1] ItemInnerSpacing = [0.1, 0.1] CellPadding = [0.1, 0.1] TouchExtraPadding = [0.1, 0.1] ButtonTextAlign = [0.1, 0.1] SelectableTextAlign = [0.1, 0.1] SeparatorTextAlign = [0.1, 0.1] SeparatorTextPadding = [0.1, 0.1] DisplayWindowPadding = [0.1, 0.1] DisplaySafeAreaPadding = [0.1, 0.1] // ImGuiDir -- valid values: "up", "down", "left", "right", "none" WindowMenuButtonPosition = "up" ColorButtonPosition = "up" // Bool AntiAliasedLines = 0 AntiAliasedLinesUseTex = 0 AntiAliasedFill = 0 // Colors -- May be 3/4 component hex or normalized float array // Normalized float arrays have 3 or 4 components with values between 0 and 1. // Hex colors must be prefixed by a '#' and are a string. Colors = { Text = [1.00, 1.00, 1.00, 1.00] TextDisabled = [0.40, 0.40, 0.40, 1.00] ChildBg = "#222222" WindowBg = "#222222" PopupBg = "#222222" Border = "#333333" BorderShadow = [1.00, 1.00, 1.00, 0.06] FrameBg = "#444444" FrameBgHovered = "#666666" FrameBgActive = "#444444" TitleBg = "#a32b2b" TitleBgActive = "#f0413c" TitleBgCollapsed = "#a32b2baa" MenuBarBg = "#222222" ScrollbarBg = [0.24, 0.24, 0.24, 0.53] ScrollbarGrab = [0.41, 0.41, 0.41, 1.00] ScrollbarGrabHovered = [0.52, 0.52, 0.52, 1.00] ScrollbarGrabActive = [0.76, 0.76, 0.76, 1.00] CheckMark = [0.65, 0.65, 0.65, 1.00] SliderGrab = "#f0413c" SliderGrabActive = [0.64, 0.64, 0.64, 1.00] Button = [0.54, 0.54, 0.54, 0.35] ButtonHovered = [0.52, 0.52, 0.52, 0.59] ButtonActive = [0.76, 0.76, 0.76, 1.00] Header = [0.38, 0.38, 0.38, 1.00] HeaderHovered = [0.47, 0.47, 0.47, 1.00] HeaderActive = [0.76, 0.76, 0.76, 0.77] Separator = [0.000, 0.000, 0.000, 0.137] SeparatorHovered = [0.700, 0.671, 0.600, 0.290] SeparatorActive = [0.702, 0.671, 0.600, 0.674] ResizeGrip = "#f0413c" ResizeGripHovered = "#a32b2b" ResizeGripActive = "#a32b2b" PlotLines = [0.61, 0.61, 0.61, 1.00] PlotLinesHovered = [1.00, 0.43, 0.35, 1.00] PlotHistogram = [0.90, 0.70, 0.00, 1.00] PlotHistogramHovered = [1.00, 0.60, 0.00, 1.00] TextSelectedBg = [0.73, 0.73, 0.73, 0.35] ModalWindowDimBg = [0.80, 0.80, 0.80, 0.35] DragDropTarget = [1.00, 1.00, 0.00, 0.90] NavHighlight = [0.26, 0.59, 0.98, 1.00] NavWindowingHighlight = [1.00, 1.00, 1.00, 0.70] NavWindowingDimBg = [0.80, 0.80, 0.80, 0.20] DockingEmptyBg = [0.38, 0.38, 0.38, 1.00] Tab = "#444444" TabHovered = "#f0413c" TabActive = "#f0413c" TabUnfocused = "#ef8686" TabUnfocusedActive = "#ef8686" DockingPreview = [0.85, 0.85, 0.85, 0.28] TableRowBg = "#222222" TableRowBgAlt = "#333333" } }