thyme 0.7.0

Themable Immediate Mode GUI
Documentation
# A minimal theme with definitions for the provided example fonts.
# No image definitions are included in this theme, instead those are in separate
# files to allow easy hot-swapping
# It includes definitions for all of the basic types of widgets.
# This file works standalone or can be included in a larger theme.

fonts:
  medium:
    source: Roboto-Medium
    size: 20
    # add Greek and Coptic characters to defaults
    characters:
      - lower: 0x0020
        upper: 0x007e
      - lower: 0x00A1
        upper: 0x00FF
      - lower: 0x0370
        upper: 0x03FF
  small:
    source: Roboto-Medium
    size: 16
    # use default characters: 0x0020 to 0x007e and 0x00A1 to 0x00FF
  small_italic:
    source: Roboto-Italic
    size: 16
  small_bold:
    source: Roboto-Bold
    size: 16
  small_bold_italic:
    source: Roboto-BoldItalic
    size: 16
  heading1:
    source: Roboto-Medium
    size: 24
  heading2:
    source: Roboto-Medium
    size: 22
widgets:
  tooltip:
    background: gui/small_button_normal
    font: small
    text_align: Center
    size_from: [Text, FontLine]
    border: { all: 5 }
  greyed_out:
    background: gui/greyed_out
  horizontal_slider:
    size: [0, 15]
    width_from: Parent
    border: { top: 6, bot: 5, left: 5, right: 5 }
    children:
      slider_bar:
        align: TopLeft
        width_from: Parent
        height_from: Parent
        background: gui/slider_horizontal
      slider_button:
        from: button
        background: gui/slider_button
        size: [15, 15]
  combo_box:
    from: button
    children:
      expand:
        from: dropdown_expand
      combo_box_popup:
        from: scrollpane_vertical
        width_from: Parent
        height_from: Normal
        size: [10, 120]
        pos: [-5, 18]
        background: gui/small_button_normal
        children:
          content:
            size: [-18, -10]
            pos: [0, 5]
            children:
              entry:
                from: button
                width_from: Parent
                size: [0, 25]
  scrollpane_vertical:
    from: scrollpane
    children:
      content:
        size: [-18, 0]
      scrollbar_vertical:
        from: scrollbar_vertical
        size: [20, 0]
  scrollpane:
    width_from: Parent
    height_from: Parent
    children:
      content:
        border: { all: 2 }
        height_from: Parent
        width_from: Parent
        align: TopLeft
        layout: Vertical
        size: [-18, -20]
        pos: [0, 0]
        child_align: TopLeft
      scrollbar_horizontal:
        from: scrollbar_horizontal
      scrollbar_vertical:
        from: scrollbar_vertical
  dropdown_expand:
    size: [12, 12]
    align: Right
    foreground: gui/arrow_down
  scroll_left:
    from: scroll_button
    align: Left
    foreground: gui/arrow_left
  scroll_right:
    from: scroll_button
    align: Right
    foreground: gui/arrow_right
  scroll_up:
    from: scroll_button
    align: Top
    foreground: gui/arrow_up
  scroll_down:
    from: scroll_button
    align: Bot
    foreground: gui/arrow_down
  scroll_button:
    wants_mouse: true
    background: gui/scroll_button
    size: [20, 20]
    border: { all: 4 }
  scrollbar_horizontal:
    size: [-29, 20]
    pos: [0, 0]
    align: BotLeft
    width_from: Parent
    background: gui/scrollbar_horizontal
    children:
      left:
        from: scroll_left
      right:
        from: scroll_right
      scroll:
        wants_mouse: true
        background: gui/small_button
        align: Left
        border: { all: 4 }
  scrollbar_vertical:
    size: [20, -20]
    pos: [0, 0]
    align: TopRight
    height_from: Parent
    background: gui/scrollbar_vertical
    children:
      up:
        from: scroll_up
      down:
        from: scroll_down
      scroll:
        wants_mouse: true
        background: gui/small_button
        align: Top
        border: { all: 4 }
  progress_bar:
    size: [100, 24]
    background: gui/small_button_normal
    border: { all: 4 }
    child_align: TopLeft
    children:
      bar:
        background: gui/progress_bar
        size_from: [Parent, Parent]
  input_field:
    font: small
    border: { height: 4, width: 5 }
    background: gui/input_field
    text_align: Left
    wants_mouse: true
    size: [150, 24]
    child_align: TopLeft
    children:
      caret:
        size: [2, -2]
        height_from: Parent
        background: gui/caret
  text_area_item:
    from: label
    text_align: TopLeft
  text_area:
    border: { all: 5 }
    size_from: [Parent, Children]
    custom:
      tab_width: 6.0
      column_width: 90.0
      list_bullet: "* "
    children:
      paragraph_normal:
        from: text_area_item
        font: small
      paragraph_strong:
        from: text_area_item
        font: small_bold
      paragraph_emphasis:
        from: text_area_item
        font: small_italic
      paragraph_strong_emphasis:
        from: text_area_item
        font: small_bold_italic
      heading1_normal:
        from: text_area_item
        font: heading1
      heading2_normal:
        from: text_area_item
        font: heading2
  bg_label:
    from: label
    background: gui/small_button_normal
  label:
    font: small
    border: { width: 5 }
    text_align: Center
    size_from: [Parent, FontLine]
  check_button:
    from: button
    background: gui/small_button_no_active
    foreground: gui/check
  button:
    font: small
    wants_mouse: true
    background: gui/small_button
    text_align: Center
    size: [150, 24]
    border: { all: 5 }
  spinner:
    size: [80, 20]
    layout: Horizontal
    layout_spacing: [5, 5]
    child_align: Left
    children:
      decrease:
        from: button
        text: "-"
        background: gui/small_button
        size: [20, 20]
      value:
        from: label
        size: [30, 0]
        font: medium
        width_from: Normal
      increase:
        from: button
        text: "+"
        background: gui/small_button
        size: [20, 20]
  window_base:
    background: gui/window_bg
    wants_mouse: true
    layout: Vertical
    layout_spacing: [5, 5]
    border: { left: 5, right: 5, top: 29, bot: 5 }
    size: [300, 400]
    child_align: Top
    children:
      titlebar:
        wants_mouse: true
        background: gui/small_button
        size: [10, 30]
        pos: [-6, -30]
        border: { all: 5 }
        width_from: Parent
        child_align: Center
        align: TopLeft
        children:
          title:
            from: label
            text: "Main Window"
            font: medium
            width_from: Parent
          close:
            from: window_close
      handle:
        wants_mouse: true
        background: gui/window_handle
        size: [12, 12]
        align: BotRight
        pos: [-2, 0]
  window:
    from: window_base
  window_close:
    wants_mouse: true
    background: gui/small_button
    foreground: gui/close_icon
    size: [20, 20]
    border: { all: 4 }
    align: TopRight
  tree:
    size_from: [Parent, Children]
    border: { all: 5 }
    background: gui/frame
    children:
      expand:
        from: button
        align: TopLeft
        pos: [0, 0]
        text: "+"
        text_align: Center
        size: [20, 20]
      collapse:
        from: button
        align: TopLeft
        pos: [0, 0]
        text: "-"
        text_align: Center
        size: [20, 20]