50 lines
1.8 KiB
Markdown
50 lines
1.8 KiB
Markdown
# Button
|
|
|
|
|
|
A simple button widget which can be pressed using a mouse click or by pressing ++return++
|
|
when it has focus.
|
|
|
|
- [x] Focusable
|
|
- [ ] Container
|
|
|
|
## Example
|
|
|
|
The example below shows each button variant, and its disabled equivalent.
|
|
Clicking any of the non-disabled buttons in the example app below will result in the app exiting and the details of the selected button being printed to the console.
|
|
|
|
=== "Output"
|
|
|
|
```{.textual path="docs/examples/widgets/button.py"}
|
|
```
|
|
|
|
=== "button.py"
|
|
|
|
```python
|
|
--8<-- "docs/examples/widgets/button.py"
|
|
```
|
|
|
|
=== "button.css"
|
|
|
|
```sass
|
|
--8<-- "docs/examples/widgets/button.css"
|
|
```
|
|
|
|
## Reactive Attributes
|
|
|
|
| Name | Type | Default | Description |
|
|
| ---------- | ------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
|
| `label` | `str` | `""` | The text that appears inside the button. |
|
|
| `variant` | `str` | `"default"` | Semantic styling variant. One of `default`, `primary`, `success`, `warning`, `error`. |
|
|
| `disabled` | `bool` | `False` | Whether the button is disabled or not. Disabled buttons cannot be focused or clicked, and are styled in a way that suggests this. |
|
|
|
|
## Messages
|
|
|
|
### ::: textual.widgets.Button.Pressed
|
|
|
|
## Additional Notes
|
|
|
|
* The spacing between the text and the edges of a button are due to border, _not_ padding. To create a button with zero visible padding, use the `border: none;` declaration.
|
|
|
|
## See Also
|
|
|
|
* [Button](../api/button.md) code reference
|