The theme format is simple YAML that uses truncated names from the dear imgui ImGuiStyleVar_ and ImGuiCol_ enums. The name and type conversion uses the following algorithm:

  1. Remove prefixes from the enum member, like ImGuiStyleVar_ and ImGuiCol_
  2. Set the value to its type, colours use arrays with 4 members, style variables can be floats or arrays with 2 members

Example config

This is an example config containing all variables that we let you modify. This is the default classic dark dear imgui colour scheme:

Text:                     [ 1.00, 1.00, 1.00, 1.00  ]
TextDisabled":            [ 0.50, 0.50, 0.50, 1.00  ]
WindowBg":                [ 0.06, 0.06, 0.06, 0.94  ]
ChildBg":                 [ 0.00, 0.00, 0.00, 0.00  ]
PopupBg":                 [ 0.08, 0.08, 0.08, 0.94  ]
Border":                  [ 0.43, 0.43, 0.50, 0.50  ]
BorderShadow":            [ 0.00, 0.00, 0.00, 0.00  ]
FrameBg":                 [ 0.16, 0.29, 0.48, 0.54  ]
FrameBgHovered":          [ 0.26, 0.59, 0.98, 0.40  ]
FrameBgActive":           [ 0.26, 0.59, 0.98, 0.67  ]
TitleBg":                 [ 0.04, 0.04, 0.04, 1.00  ]
TitleBgActive":           [ 0.16, 0.29, 0.48, 1.00  ]
TitleBgCollapsed":        [ 0.00, 0.00, 0.00, 0.51  ]
MenuBarBg":               [ 0.14, 0.14, 0.14, 1.00  ]
ScrollbarBg":             [ 0.02, 0.02, 0.02, 0.53  ]
ScrollbarGrab":           [ 0.31, 0.31, 0.31, 1.00  ]
ScrollbarGrabHovered":    [ 0.41, 0.41, 0.41, 1.00  ]
ScrollbarGrabActive":     [ 0.51, 0.51, 0.51, 1.00  ]
CheckMark":               [ 0.26, 0.59, 0.98, 1.00  ]
SliderGrab":              [ 0.24, 0.52, 0.88, 1.00  ]
SliderGrabActive":        [ 0.26, 0.59, 0.98, 1.00  ]
Button":                  [ 0.26, 0.59, 0.98, 0.40  ]
ButtonHovered":           [ 0.26, 0.59, 0.98, 1.00  ]
ButtonActive":            [ 0.06, 0.53, 0.98, 1.00  ]
Header":                  [ 0.26, 0.59, 0.98, 0.31  ]
HeaderHovered":           [ 0.26, 0.59, 0.98, 0.80  ]
HeaderActive":            [ 0.26, 0.59, 0.98, 1.00  ]
Separator":               [ 0.43, 0.43, 0.50, 0.50  ]
SeparatorHovered":        [ 0.10, 0.40, 0.75, 0.78  ]
SeparatorActive":         [ 0.10, 0.40, 0.75, 1.00  ]
ResizeGrip":              [ 0.26, 0.59, 0.98, 0.20  ]
ResizeGripHovered":       [ 0.26, 0.59, 0.98, 0.67  ]
ResizeGripActive":        [ 0.26, 0.59, 0.98, 0.95  ]
Tab":                     [ 0.336 0.336 0.684 0.786 ]
TabHovered":              [ 0.26, 0.59, 0.98, 0.80  ]
TabActive":               [ 0.336 0.336 0.684 0.786 ]
TabUnfocused":            [ 0.336 0.336 0.684 0.786 ]
TabUnfocusedActive":      [ 0.336 0.336 0.684 0.786 ]
DockingPreview":          [ 0.336 0.336 0.684 0.786 ]
DockingEmptyBg":          [ 0.20, 0.20, 0.20, 1.00  ]
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  ]
TableHeaderBg":           [ 0.19, 0.19, 0.20, 1.00  ]
TableBorderStrong":       [ 0.31, 0.31, 0.35, 1.00  ]
TableBorderLight":        [ 0.23, 0.23, 0.25, 1.00  ]
TableRowBg":              [ 0.00, 0.00, 0.00, 0.00  ]
TableRowBgAlt":           [ 1.00, 1.00, 1.00, 0.06  ]
TextSelectedBg":          [ 0.26, 0.59, 0.98, 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  ]
ModalWindowDimBg":        [ 0.80, 0.80, 0.80, 0.35  ]
Alpha:                    1
DisabledAlpha:            0.6
WindowPadding:            [ 8, 8 ]
WindowRounding:           0
WindowBorderSize:         1
WindowMinSize:            [ 32, 32 ]
WindowTitleAlign:         [ 0, 0.5 ]
ChildRounding:            0
ChildBorderSize:          1
PopupRounding:            0
PopupBorderSize:          1
FramePadding:             [ 4, 3 ]
FrameRounding:            0
FrameBorderSize:          0
ItemSpacing:              [ 8, 4 ]
ItemInnerSpacing:         [ 4, 4 ]
IndentSpacing:            21
CellPadding:              [ 4, 2 ]
ScrollbarSize:            14
ScrollbarRounding:        9
GrabMinSize:              12
GrabRounding:             0
TabRounding:              4
ButtonTextAlign:          [ 0.5, 0.5 ]
SelectableTextAlign:      [ 0, 0 ]
SeparatorTextBorderSize:  3
SeparatorTextAlign:       [ 0, 0.5 ]
SeparatorTextPadding:     [ 20, 3 ]
DockingSeparatorSize:     2