1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- // SPDX-License-Identifier: Unlicense OR MIT
- // Package material implements the Material design.
- //
- // To maximize reusability and visual flexibility, user interface controls are
- // split into two parts: the stateful widget and the stateless drawing of it.
- //
- // For example, widget.Clickable encapsulates the state and event
- // handling of all clickable areas, while the Theme is responsible to
- // draw a specific area, for example a button.
- //
- // This snippet defines a button that prints a message when clicked:
- //
- // var gtx layout.Context
- // button := new(widget.Clickable)
- //
- // for button.Clicked(gtx) {
- // fmt.Println("Clicked!")
- // }
- //
- // Use a Theme to draw the button:
- //
- // theme := material.NewTheme(...)
- //
- // material.Button(theme, button, "Click me!").Layout(gtx)
- //
- // # Customization
- //
- // Quite often, a program needs to customize the theme-provided defaults. Several
- // options are available, depending on the nature of the change.
- //
- // Mandatory parameters: Some parameters are not part of the widget state but
- // have no obvious default. In the program above, the button text is a
- // parameter to the Theme.Button method.
- //
- // Theme-global parameters: For changing the look of all widgets drawn with a
- // particular theme, adjust the `Theme` fields:
- //
- // theme.Palette.Fg = color.NRGBA{...}
- //
- // Widget-local parameters: For changing the look of a particular widget,
- // adjust the widget specific theme object:
- //
- // btn := material.Button(theme, button, "Click me!")
- // btn.Font.Style = text.Italic
- // btn.Layout(gtx)
- //
- // Widget variants: A widget can have several distinct representations even
- // though the underlying state is the same. A widget.Clickable can be drawn as a
- // round icon button:
- //
- // icon := widget.NewIcon(...)
- //
- // material.IconButton(theme, button, icon, "Click me!").Layout(gtx)
- //
- // Specialized widgets: Theme both define a generic Label method
- // that takes a text size, and specialized methods for standard text
- // sizes such as Theme.H1 and Theme.Body2.
- package material
|