gohud

GoStyle — um lugar só onde as coisas são feitas

← Widgets

Chame Button.new() direto e o respiro, a altura e a quebra de linha se desencontram um pouquinho de uma tela para outra. Esse desencontro é invisível em uma revisão de código e óbvio em uma captura de tela.

GrupoFunções
Estruturacolumn row wrap_row padding spacer divider responsive_grid aspect foldable
Textolabel label_key line section typography
Botõesbutton button_key icon_button list_button list_row apply_icon style_choice_card style_chip_button style_chip_label
Entradaline_edit textarea toggle checkbox slider picker select dropdown radio_group segmented choice_grid
Exibiçãocard chip hud_panel chip_panel avatar skeleton alert table tabs breadcrumb progress empty_state
Peças de superfíciesurface box floating disc face_padding
Auxiliaresform fit_words natural_width tooltip_node card_body let_input_through
O box() sempre devolve um StyleBoxFlat, porque quem chama recebe o objeto e ajusta bg_color ou corner_radius. Use surface() quando uma forma personalizada precisa sobreviver.

Linhas de lista com uma descrição

GoStyle.list_button(GoIconSet.SWORD, "Guardiã do Juramento", _inspect, Color.TRANSPARENT,
    "Espada longa  /  Ataque 42", false)

Uma linha com uma segunda linha de texto ganha respiro igual em cima e embaixo, mais folgado que o de uma linha simples, e o par título/descrição fica centralizado na vertical ao lado do ícone — inclusive quando um contêiner estica a linha e depois que a descrição quebra em várias linhas. A linha inteira continua sendo um único alvo de toque.

exemplo medieval_light — linhas de lista de duas linhas, slots rápidos e barras
Linhas de duas linhas, slots e barras no exemplo medieval — as mesmas chamadas da fábrica sob medieval_light.

Linhas que fluem

Coloque os controles em um wrap_row na largura natural deles. Com a quebra de linha ligada, a largura mínima de um botão cai para quase nada e a fileira dimensiona a célula por ela — o rótulo desaba para um caractere por linha. A fábrica evita isso por você.

Nunca deixe uma lista vazia realmente vazia

page.add_child(GoStyle.empty_state(GoIconSet.BOX, "Nada por aqui ainda"))

As pessoas leem uma tela em branco como quebrada.

Ganchos para subclasses

Todo ponto em que um widget filho é construído passa por um método sobrescrevível, então um projeto que cria subclasses dos tipos do gohud consegue colocar as próprias subclasses dentro dos widgets sem copiar código.

GanchoWidgetPadrão
_make_scroll()GoCoachMark, GoSurfaceGoScroll.new()
_make_close_button()GoPromptCard, GoSurfaceGoIconButton.new()
_make_surface()GoSheet, GoDialogsGoSurface.new()
_should_pause()GoCoachMarkEsconde o cartão enquanto um modal está aberto