Pressable
The Pressable
is a functional component use to make interactive elements such as buttons, links, and more.
#
Importing the Component#
Importimport { Pressable } from "pearl-ui";
#
Usage<Pressable p="4" onPress={() => { console.log("I was pressed!"); }} backgroundColor="primary.500"> <Text>Press me!</Text></Pressable>
#
Customizing the Pressed stateThe Pressable
component allows you to customize the appearance of the component when it is in a pressed state. This can be done using the _pressed
prop. See the example below for more details:
// Customizing the pressed state<Pressable p="4" onPress={() => { console.log("I was pressed!"); }} backgroundColor="primary.500" _hovered={{ backgroundColor: "primary.700" }} _pressed={{ backgroundColor: "primary.800" }}> <Text>Press me!</Text></Pressable>
#
Customizing the Disabled stateThe Pressable
component allows you to customize the appearance of the component when it is in a disabled state. This can be done using the _disabled
prop. See the example below for more details:
// Customizing the disabled state<Pressable p="4" onPress={() => { console.log("I was pressed!"); }} backgroundColor="primary.500" isDisabled={true} _disabled={{ backgroundColor: "pink" }}> <Text>Press me!</Text></Pressable>
#
Example#
AccessibilityPressable
has therole
ofbutton
.Pressable
has the default label set as 'Press me!'. A custom label can be specified using theaccessibilityLabel
prop.Pressable
expects anactionDescription
prop to specify the intented outcome of interacting with the component eg. 'Closes modal', 'Go to the homepage', etc.
#
Component Properties#
Supported Styling PropertiesPressable
supports all properties related to the Box component.
#
Additional PropertiesName | Required | Type | Default | Description |
---|---|---|---|---|
onPress | No | Function called when the component is pressed. | ||
onPressIn | No | Called immediately when a touch is engaged, before onPressOut and onPress . | ||
onPressInDelay | No | null | Duration (in milliseconds) to wait after press down before calling onPressIn. | |
onPressOut | No | Called when a touch is released. | ||
onLongPress | No | Called if the time after onPressIn lasts longer than 500 milliseconds. This time period can be customized with delayLongPress | ||
hitSlop | No | Sets additional distance outside of element in which a press can be detected. | ||
isDisabled | No | false | If true, the press behavior is disabled. | |
_pressed | No | {} | Style properties that are applied when the component is in a pressed state. | |
_hovered | No | {} | Style properties that are applied when the component is in a hovered state. | |
_disabled | No | {} | Style properties that are applied when the component is in a disabled state. |