LogicButton
A LogicButton displays an operator within a boolean logic sequence.
install | yarn add @react-spectrum/button |
---|---|
version | 3.0.0-rc.2 |
usage | import {LogicButton} from '@react-spectrum/button' |
Example#
<LogicButton variant="and">And</LogicButton>
Content#
LogicButtons must have a variant and optionally can have a label. A visible label can be provided by passing children.
<LogicButton variant="or">Or</LogicButton>
Internationalization#
In order to internationalize a LogicButton, a localized string should be passed to the children
or aria-label
prop.
Events#
LogicButton supports user interactions via mouse, keyboard, and touch. You can handle all of these via the onPress
prop.
The following example uses an onPress
handler to update the variant.
function Example() {
let [variant setVariant] = ReactuseState('or');
return (
<LogicButton variant= variant onPress=() => setVariant(variant === 'or' ? 'and' : 'or')> variant</LogicButton>
);
}
Props#
Name | Type | Default | Description |
variant | 'and' | 'or' | — | The type of boolean sequence to be represented by the LogicButton. |
isDisabled | boolean | — | Whether the button is disabled |
elementType | string | JSXElementConstructor<any> | "button" | The HTML element or React element used to render the button, e.g. "div", "a", or RouterLink . |
children | ReactNode | — | The content to display in the button. |
href | string | — | A URL to link to if elementType="a". |
target | string | — | The target window for the link. |
autoFocus | boolean | — | Whether the element should receive focus on render |
UNSAFE_className | string | — | |
UNSAFE_style | CSSProperties | — |
Events
Name | Type | Default | Description |
onPress | (e: PressEvent) => void | — | Handler that is called when the press is released over the target. |
onPressStart | (e: PressEvent) => void | — | Handler that is called when a press interaction starts. |
onPressEnd | (e: PressEvent) => void | — | Handler that is called when a press interation ends, either over the target or when the pointer leaves the target. |
onPressChange | (isPressed: boolean) => void | — | Handler that is called when the press state changes. |
onPressUp | (e: PressEvent) => void | — | Handler that is called when a press is released over the target, regardless of whether it started on the target or not. |
onFocus | (e: FocusEvent) => void | — | Handler that is called when the element receives focus. |
onBlur | (e: FocusEvent) => void | — | Handler that is called when the element loses focus. |
onFocusChange | (isFocused: boolean) => void | — | Handler that is called when the element's focus status changes. |
onKeyDown | (e: KeyboardEvent) => void | — | Handler that is called when a key is pressed. |
onKeyUp | (e: KeyboardEvent) => void | — | Handler that is called when a key is released. |
Layout
Name | Type | Default | Description |
flex | string | number | boolean | — | |
flexGrow | number | — | |
flexShrink | number | — | |
flexBasis | number | string | — | |
alignSelf | 'auto'
| 'normal'
| 'start'
| 'end'
| 'flex-start'
| 'flex-end'
| 'self-start'
| 'self-end'
| 'center'
| 'stretch' | — | |
justifySelf | 'auto'
| 'normal'
| 'start'
| 'end'
| 'flex-start'
| 'flex-end'
| 'self-start'
| 'self-end'
| 'center'
| 'left'
| 'right'
| 'stretch' | — | |
flexOrder | number | — | |
gridArea | string | — | |
gridColumn | string | — | |
gridRow | string | — | |
gridColumnStart | string | — | |
gridColumnEnd | string | — | |
gridRowStart | string | — | |
gridRowEnd | string | — |
Spacing
Name | Type | Default | Description |
margin | DimensionValue | — | |
marginTop | DimensionValue | — | |
marginLeft | DimensionValue | — | |
marginRight | DimensionValue | — | |
marginBottom | DimensionValue | — | |
marginStart | DimensionValue | — | |
marginEnd | DimensionValue | — | |
marginX | DimensionValue | — | |
marginY | DimensionValue | — |
Sizing
Name | Type | Default | Description |
width | DimensionValue | — | |
minWidth | DimensionValue | — | |
maxWidth | DimensionValue | — | |
height | DimensionValue | — | |
minHeight | DimensionValue | — | |
maxHeight | DimensionValue | — |
Positioning
Name | Type | Default | Description |
position | 'static'
| 'relative'
| 'absolute'
| 'fixed'
| 'sticky' | — | |
top | DimensionValue | — | |
bottom | DimensionValue | — | |
left | DimensionValue | — | |
right | DimensionValue | — | |
start | DimensionValue | — | |
end | DimensionValue | — | |
zIndex | number | — | |
isHidden | boolean | — |
Accessibility
Name | Type | Default | Description |
role | string | — | |
id | string | — | |
tabIndex | number | — | |
aria-label | string | — | Defines a string value that labels the current element. |
aria-labelledby | string | — | Identifies the element (or elements) that labels the current element. |
aria-describedby | string | — | Identifies the element (or elements) that describes the object. |
aria-controls | string | — | Identifies the element (or elements) whose contents or presence are controlled by the current element. |
aria-owns | string | — | Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship between DOM elements where the DOM hierarchy cannot be used to represent the relationship. |
aria-hidden | boolean | 'false' | 'true' | — | Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable. |
Visual options#
Variant#
<LogicButton variant="or" marginRight="20px">Or</LogicButton>
<LogicButton variant="and">And</LogicButton>
Disabled#
<LogicButton variant="or" isDisabled>Or</LogicButton>