A composable form layout with sections, collapsible areas, flip-card read/edit panels, and built-in Goshtoso field rendering. Supports HTMX validation and external submit triggers.

Goshtoso Component

Go + Templ

Complete Form (built-in field types)

Identification

Lowercase letters, numbers, and hyphens only
  • No matches found
Custom component — any templ.Component works as children

Network

Pod Subnet CIDR 10.244.0.0/16
Service Subnet CIDR 10.96.0.0/12
Default: 10.244.0.0/16
Default: 10.96.0.0/12
  • No matches found

Node Pools

Control Plane

  • No matches found

Workers

  • No matches found
Cancel

Field Validation States

Validation Examples

This cluster ID is already taken
Must be between 3 and 63 characters Only lowercase letters, numbers, and hyphens

External Submit (Modal Pattern)

The form has no footer. The submit button uses form="external-form" to trigger submission from outside.

Upgrade

  • No matches found
Usage Example
// Built-in field types — set Input, Combobox, Textarea, Toggle, etc. directly
@form.FieldGroup(form.FieldGroupConfig{
    ID: "name", Label: "Name", Required: true,
    Input: &textinput.Config{ID: "name", Name: "name"},
})
@form.FieldGroup(form.FieldGroupConfig{
    ID: "provider", Label: "Provider",
    Combobox: &gocombobox.Config{ID: "provider", Name: "provider", Options: opts},
})

// Custom component — use { children... } for anything not built-in
@form.FieldGroup(form.FieldGroupConfig{ID: "tags", Label: "Tags"}) {
    @myCustomTagsInput(tags)  // any templ.Component
}

// Flip Section — read-only front, editable back
@form.FlipSection(form.FlipSectionConfig{
    SectionConfig: form.SectionConfig{Title: "Network"},
}, networkReadView()) {
    @form.FieldGroup(form.FieldGroupConfig{
        Label: "Pod CIDR",
        Input: &textinput.Config{ID: "pod-cidr", Name: "pod_cidr", Value: "10.244.0.0/16"},
    })
}

// External submit (modal pattern — no footer, button uses form="..." attribute)
@form.Form(form.Config{ID: "modal-form", HTMX: &form.HTMXConfig{Post: "/api", Swap: "none"}}) { ... }
<button type="submit" form="modal-form">Submit</button>

This site uses localStorage to remember your theme preference. No tracking cookies.