Skip to content

Calendar

A keyboard-navigable month grid for single-date selection.

Loading interactive demo…

#Import

Import ui from github.com/egoist/quickgui/go/ui.

import (
	"github.com/egoist/quickgui/go/ui"
)

#Usage

func CalendarExample(weeks [][]string) *ui.Element {
	calendar := ui.NewCalendar().DefaultValue("2026-09-03")
	weekElements := make([]*ui.Element, 0, len(weeks))
	for index, week := range weeks {
		dayElements := make([]*ui.Element, 0, len(week))
		for _, day := range week {
			dayElements = append(dayElements, calendar.Day(day).Child(day))
		}
		weekElements = append(weekElements, calendar.Week(index).Children(dayElements))
	}
	return calendar.Root().Children(weekElements)
}

#Anatomy

  • calendar.Root
  • calendar.Week
  • calendar.Day

#API reference

Expand an entry for its description and complete signature. A dash means no declaration default is documented.

NewCalendar

View source
ui.NewCalendar(props ...CalendarRootProps) *CalendarComponent

NewCalendar declares a Calendar instance. Optional props provide initial settings.

Reffunc(*native.Node)—

Receives the retained native node after construction. Keep imperative work in event or lifecycle callbacks.

func(*native.Node)
View source
Styleany—

Reusable layout, typography, color, and interaction-state styles. Build with ui.Style() and compose with Merge.

any
View source
ChildrenPartChildren—

Content mounted inside the component. Compound child callbacks run after the parent context exists.

PartChildren
View source
Disabledany—

Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.

any
View source
Rolestring—

Accessibility role override. Prefer the component’s built-in semantics.

string
View source
FocusOnPointerany—

Whether a pointer press moves keyboard focus to the control.

any
View source
Groupany—

Names this element as a group for descendant interaction-state styling.

any
View source
AriaLabelany—

Accessible name, especially for icon-only controls or controls without a visible label.

any
View source
TabIndex*float64—

Controls sequential keyboard focus order. Omit to retain the component’s default focus behavior.

*float64
View source
OnClickfunc(*native.Event)—

Called after QuickGUI resolves an activation, including supported keyboard activation.

func(*native.Event)
View source
OnDoubleClickfunc(*native.Event)—

Callback for double click. The signature below lists the event payload.

func(*native.Event)
View source
OnContextMenufunc(*native.Event)—

Callback for context menu. The signature below lists the event payload.

func(*native.Event)
View source
OnPointerfunc(*native.Event)—

Callback for pointer. The signature below lists the event payload.

func(*native.Event)
View source
OnMouseEnterfunc(*native.Event)—

Callback for mouse enter. The signature below lists the event payload.

func(*native.Event)
View source
OnMouseLeavefunc(*native.Event)—

Callback for mouse leave. The signature below lists the event payload.

func(*native.Event)
View source
OnMouseDownfunc(*native.Event)—

Callback for mouse down. The signature below lists the event payload.

func(*native.Event)
View source
OnMouseUpfunc(*native.Event)—

Callback for mouse up. The signature below lists the event payload.

func(*native.Event)
View source
OnKeyDownfunc(*native.Event)—

Callback for key down. The signature below lists the event payload.

func(*native.Event)
View source
OnKeyUpfunc(*native.Event)—

Callback for key up. The signature below lists the event payload.

func(*native.Event)
View source
OnFocusfunc(*native.Event)—

Callback for focus. The signature below lists the event payload.

func(*native.Event)
View source
OnBlurfunc(*native.Event)—

Callback for blur. The signature below lists the event payload.

func(*native.Event)
View source
Valuefunc() *string—

The current controlled value. Update application state from the change callback to accept a new value.

func() *string
View source
DefaultValuestring—

Initial value for uncontrolled state. Use Value when the application should own subsequent changes.

string
View source
Minstring—

Lower bound of the accepted value.

string
View source
Maxstring—

Upper bound of the accepted value.

string
View source
OnValueChangefunc(*string, *native.Event)—

Reports an accepted value change. Use the callback payload to update controlled state.

func(*string, *native.Event)
View source
FirstWeekdayany—

First weekday column, where Monday is 0 and Sunday is 6.

any
View source
OnFocusChangefunc(string, *native.Event)—

Callback for focus change. The signature below lists the event payload.

func(string, *native.Event)
View source
OnMonthChangefunc(string, *native.Event)—

Callback for month change. The signature below lists the event payload.

func(string, *native.Event)
View source

Calendar.Disabled

View source
calendar.Disabled(value any) *CalendarComponent

Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.

Calendar.Value

View source
calendar.Value(value any) *CalendarComponent

The current controlled value. Update application state from the change callback to accept a new value.

Calendar.DefaultValue

View source
calendar.DefaultValue(value string) *CalendarComponent

Initial value for uncontrolled state. Use Value when the application should own subsequent changes.

Calendar.Min

View source
calendar.Min(value string) *CalendarComponent

Lower bound of the accepted value.

Calendar.Max

View source
calendar.Max(value string) *CalendarComponent

Upper bound of the accepted value.

Calendar.OnValueChange

View source
calendar.OnValueChange(value func(*string, *native.Event)) *CalendarComponent

Reports an accepted value change. Use the callback payload to update controlled state.

Calendar.FirstWeekday

View source
calendar.FirstWeekday(value any) *CalendarComponent

First weekday column, where Monday is 0 and Sunday is 6.

Calendar.OnFocusChange

View source
calendar.OnFocusChange(value func(string, *native.Event)) *CalendarComponent

Callback for focus change. The signature below lists the event payload.

Calendar.OnMonthChange

View source
calendar.OnMonthChange(value func(string, *native.Event)) *CalendarComponent

Callback for month change. The signature below lists the event payload.

Calendar.Root

View source
calendar.Root() *Element

Configures root for this part. The declared type and source define the accepted value.

Calendar.Week

View source
calendar.Week(value int, options ...CalendarWeekProps) *Element

Configures week for this part. The declared type and source define the accepted value.

Calendar.WeekWith

View source
calendar.WeekWith(props CalendarWeekProps) *Element

WeekWith supplies explicit properties for this part.

Reffunc(*native.Node)—

Receives the retained native node after construction. Keep imperative work in event or lifecycle callbacks.

func(*native.Node)
View source
Styleany—

Reusable layout, typography, color, and interaction-state styles. Build with ui.Style() and compose with Merge.

any
View source
ChildrenPartChildren—

Content mounted inside the component. Compound child callbacks run after the parent context exists.

PartChildren
View source
Disabledany—

Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.

any
View source
Rolestring—

Accessibility role override. Prefer the component’s built-in semantics.

string
View source
FocusOnPointerany—

Whether a pointer press moves keyboard focus to the control.

any
View source
Groupany—

Names this element as a group for descendant interaction-state styling.

any
View source
AriaLabelany—

Accessible name, especially for icon-only controls or controls without a visible label.

any
View source
TabIndex*float64—

Controls sequential keyboard focus order. Omit to retain the component’s default focus behavior.

*float64
View source
OnClickfunc(*native.Event)—

Called after QuickGUI resolves an activation, including supported keyboard activation.

func(*native.Event)
View source
OnDoubleClickfunc(*native.Event)—

Callback for double click. The signature below lists the event payload.

func(*native.Event)
View source
OnContextMenufunc(*native.Event)—

Callback for context menu. The signature below lists the event payload.

func(*native.Event)
View source
OnPointerfunc(*native.Event)—

Callback for pointer. The signature below lists the event payload.

func(*native.Event)
View source
OnMouseEnterfunc(*native.Event)—

Callback for mouse enter. The signature below lists the event payload.

func(*native.Event)
View source
OnMouseLeavefunc(*native.Event)—

Callback for mouse leave. The signature below lists the event payload.

func(*native.Event)
View source
OnMouseDownfunc(*native.Event)—

Callback for mouse down. The signature below lists the event payload.

func(*native.Event)
View source
OnMouseUpfunc(*native.Event)—

Callback for mouse up. The signature below lists the event payload.

func(*native.Event)
View source
OnKeyDownfunc(*native.Event)—

Callback for key down. The signature below lists the event payload.

func(*native.Event)
View source
OnKeyUpfunc(*native.Event)—

Callback for key up. The signature below lists the event payload.

func(*native.Event)
View source
OnFocusfunc(*native.Event)—

Callback for focus. The signature below lists the event payload.

func(*native.Event)
View source
OnBlurfunc(*native.Event)—

Callback for blur. The signature below lists the event payload.

func(*native.Event)
View source
Index*int—

Zero-based index associated with this repeated part.

*int
View source

Calendar.Day

View source
calendar.Day(value string, options ...CalendarDayProps) *Element

Calendar date represented by this day cell.

Calendar.DayWith

View source
calendar.DayWith(props CalendarDayProps) *Element

DayWith supplies explicit properties for this part.

Reffunc(*native.Node)—

Receives the retained native node after construction. Keep imperative work in event or lifecycle callbacks.

func(*native.Node)
View source
Styleany—

Reusable layout, typography, color, and interaction-state styles. Build with ui.Style() and compose with Merge.

any
View source
ChildrenPartChildren—

Content mounted inside the component. Compound child callbacks run after the parent context exists.

PartChildren
View source
Disabledany—

Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.

any
View source
Rolestring—

Accessibility role override. Prefer the component’s built-in semantics.

string
View source
FocusOnPointerany—

Whether a pointer press moves keyboard focus to the control.

any
View source
Groupany—

Names this element as a group for descendant interaction-state styling.

any
View source
AriaLabelany—

Accessible name, especially for icon-only controls or controls without a visible label.

any
View source
TabIndex*float64—

Controls sequential keyboard focus order. Omit to retain the component’s default focus behavior.

*float64
View source
OnClickfunc(*native.Event)—

Called after QuickGUI resolves an activation, including supported keyboard activation.

func(*native.Event)
View source
OnDoubleClickfunc(*native.Event)—

Callback for double click. The signature below lists the event payload.

func(*native.Event)
View source
OnContextMenufunc(*native.Event)—

Callback for context menu. The signature below lists the event payload.

func(*native.Event)
View source
OnPointerfunc(*native.Event)—

Callback for pointer. The signature below lists the event payload.

func(*native.Event)
View source
OnMouseEnterfunc(*native.Event)—

Callback for mouse enter. The signature below lists the event payload.

func(*native.Event)
View source
OnMouseLeavefunc(*native.Event)—

Callback for mouse leave. The signature below lists the event payload.

func(*native.Event)
View source
OnMouseDownfunc(*native.Event)—

Callback for mouse down. The signature below lists the event payload.

func(*native.Event)
View source
OnMouseUpfunc(*native.Event)—

Callback for mouse up. The signature below lists the event payload.

func(*native.Event)
View source
OnKeyDownfunc(*native.Event)—

Callback for key down. The signature below lists the event payload.

func(*native.Event)
View source
OnKeyUpfunc(*native.Event)—

Callback for key up. The signature below lists the event payload.

func(*native.Event)
View source
OnFocusfunc(*native.Event)—

Callback for focus. The signature below lists the event payload.

func(*native.Event)
View source
OnBlurfunc(*native.Event)—

Callback for blur. The signature below lists the event payload.

func(*native.Event)
View source
Daystring—

Calendar date represented by this day cell.

string
View source
part.Child(content).Style(style)

Every part returns a fluent element. Strings, numbers, elements, and deferred child factories compose directly.

ChildChild(child any) *Element—

Child appends content and returns this element. Content can be an element, native node, scalar, accessor, or node-returning construction callback.

Child(child any) *Element
View source
ChildrenChildren(children ...any) *Element—

Children appends multiple children in order without replacing existing content. It also accepts []any, []*Element, and []*native.Node slices as arguments. Read the retained child nodes through element.Node.Children.

Children(children ...any) *Element
View source
StyleStyle(style StyleBuilder) *Element—

Style merges a reusable style. Scalar accessors retain independent native bindings.

Style(style StyleBuilder) *Element
View source
OnClickOnClick(handler func()) *Element—

OnClick handles a click without an unused event parameter.

OnClick(handler func()) *Element
View source
RefRef(handler func(*native.Node)) *Element—

Ref exposes the native handle once at this point in the declaration chain.

Ref(handler func(*native.Node)) *Element
View source