Pressable
Die Übersetzung dieser Seite fehlt oder ist veraltet, daher wird sie auf Englisch angezeigt. Auf Englisch lesen
Make custom content respond to presses. Use it for cards, icon buttons and actions with a custom appearance.
Give a custom action pressed feedback
import { Pressable, Text } from 'kuito';
export default function Open() {
return (
<Pressable
onPress={() => console.log('open')}
pressedOpacity={0.7}
pressedScale={0.97}
haptic="light"
padding={16}
>
<Text>Open</Text>
</Pressable>
);
}Behavior
pressedOpacity and pressedScale provide visual feedback; haptic adds a native touch response. Use onPress for the completed action, and start/end callbacks for press tracking. Give icon-only actions an accessible label.
Props
| Prop | Meaning |
|---|---|
onPress |
A completed press. Not called when a long press fired. |
onPressStart / onPressEnd |
Touch down / up or cancel. |
onLongPress |
Held for longPressDuration ms (500 by default). |
disabled |
Ignores touches. |
hitArea |
Extra touchable margin in points. |
pressedOpacity (Kuito) |
Opacity while pressed, like TouchableOpacity. 1 = none. |
pressedScale (Kuito) |
Scale while pressed, e.g. 0.97. 1 = none. |
haptic (Kuito) |
light, medium, heavy or selection on press-in. |
Continue
Read Accessibility for a complete workflow. See the complete prop reference for types and documented defaults.
Referenz
Signaturen
(props: PressableProps): KuitoElementParameter
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
props | PressableProps | Ja | — |
Rückgabe
Props: PressableProps
Props (einschließlich geerbter Props) 105
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
onPress | (event: PressEvent) => void | Nein | — |
onPressStart | (event: PressPhaseEvent) => void | Nein | — |
onPressEnd | (event: PressPhaseEvent) => void | Nein | — |
onLongPress | (event: PressPhaseEvent) => void | Nein | — |
opacity | Animatable<number> | Nein | — |
backgroundColor | Animatable<string> | Nein | — |
borderRadius | Animatable<number> | Nein | — |
borderColor | Animatable<string> | Nein | — |
width | Animatable<SizeValue> | Nein | — |
height | Animatable<SizeValue> | Nein | — |
translateX | Animatable<number> | Nein | — |
translateY | Animatable<number> | Nein | — |
scale | Animatable<number> | Nein | — |
scaleX | Animatable<number> | Nein | — |
scaleY | Animatable<number> | Nein | — |
rotate | Animatable<number> | Nein | Degrees. |
shadowColor | Animatable<string> | Nein | — |
shadowRadius | Animatable<number> | Nein | — |
shadowOffsetX | Animatable<number> | Nein | — |
shadowOffsetY | Animatable<number> | Nein | — |
padding | Prop<LengthPercentage> | Nein | — |
position | Prop<"relative" | "absolute"> | Nein | — |
children | KuitoNode | Nein | — |
id | string | Nein | — |
ref | ElementRef<ElementHandle> | Nein | — |
class | Prop<ClassNames> | Nein | Class names from a .css import or styles(): a string, or a list with falsy entries skipped, following the signals it reads. |
style | StyleDeclarations | Nein | Styles of this view alone, compiled at build time: CSS properties in
camelCase. A value that changes must set a native prop (opacity). |
onPressCapture | (event: PressEvent) => void | Nein | — |
key | string | number | Nein | — |
paddingTop | Prop<LengthPercentage> | Nein | — |
paddingRight | Prop<LengthPercentage> | Nein | — |
paddingBottom | Prop<LengthPercentage> | Nein | — |
paddingLeft | Prop<LengthPercentage> | Nein | — |
minWidth | Prop<SizeValue> | Nein | — |
maxWidth | Prop<SizeValue> | Nein | — |
minHeight | Prop<SizeValue> | Nein | — |
maxHeight | Prop<SizeValue> | Nein | — |
aspectRatio | Prop<number> | Nein | Width divided by height; sizes the missing side from the other. |
top | Prop<LengthPercentageAuto> | Nein | — |
right | Prop<LengthPercentageAuto> | Nein | — |
bottom | Prop<LengthPercentageAuto> | Nein | — |
left | Prop<LengthPercentageAuto> | Nein | — |
margin | Prop<LengthPercentageAuto> | Nein | — |
marginTop | Prop<LengthPercentageAuto> | Nein | — |
marginRight | Prop<LengthPercentageAuto> | Nein | — |
marginBottom | Prop<LengthPercentageAuto> | Nein | — |
marginLeft | Prop<LengthPercentageAuto> | Nein | — |
flexGrow | Prop<number> | Nein | — |
flexShrink | Prop<number> | Nein | — |
flexBasis | Prop<SizeValue | "content"> | Nein | — |
flex | Prop<number> | Nein | A grow factor from a zero basis, as CSS flex: n; 0 is inflexible. |
alignSelf | Prop<"auto" | SelfAlignment> | Nein | — |
direction | Prop<"ltr" | "rtl"> | Nein | The way lines run; unset, the parent's, and the app's first language's at the root. |
boxSizing | Prop<"border-box" | "content-box"> | Nein | — |
paddingInlineStart | Prop<LengthPercentage> | Nein | Padding on the side lines start from: the left in ltr, the right in rtl. |
paddingInlineEnd | Prop<LengthPercentage> | Nein | Padding on the side lines end at: the right in ltr, the left in rtl. |
marginInlineStart | Prop<LengthPercentageAuto> | Nein | Margin on the side lines start from: the left in ltr, the right in rtl. |
marginInlineEnd | Prop<LengthPercentageAuto> | Nein | Margin on the side lines end at: the right in ltr, the left in rtl. |
insetInlineStart | Prop<LengthPercentageAuto> | Nein | left in ltr, right in rtl. |
insetInlineEnd | Prop<LengthPercentageAuto> | Nein | right in ltr, left in rtl. |
role | Prop<Role> | Nein | — |
onAction | (event: AccessibilityActionEvent) => void | Nein | The screen reader action taken, by name. |
accessible | Prop<boolean> | Nein | Makes the view one screen reader element, read as its label or its children's text. |
label | Prop<string> | Nein | What a screen reader says for the view. |
hint | Prop<string> | Nein | What happens when the view is activated, read after the label. |
actions | Prop<readonly AccessibilityAction[]> | Nein | Actions a screen reader offers; onAction receives the one taken. |
live | Prop<"off" | "polite" | "assertive"> | Nein | ARIA's aria-live: announces changes to the view's content, on iOS too. |
aria-disabled | Prop<boolean> | Nein | — |
aria-selected | Prop<boolean> | Nein | — |
aria-checked | Prop<boolean | "mixed"> | Nein | — |
aria-busy | Prop<boolean> | Nein | — |
aria-expanded | Prop<boolean> | Nein | — |
aria-valuemin | Prop<number> | Nein | — |
aria-valuemax | Prop<number> | Nein | — |
aria-valuenow | Prop<number> | Nein | — |
aria-valuetext | Prop<string> | Nein | — |
gestures | readonly Composable[] | Nein | The view's gestures; several race unless composed with together or orElse. |
transition | Partial<Record<"opacity" | "backgroundColor" | "transform" | "borderRadius" | "borderColor" | "shadow" | "width" | "height" | "all", Animation<unknown> | AnimationSpec>> | Nein | How the animatable props move when they change, enter or leave, by group; a CSS transition compiles to it. |
animate | Partial<Record<AnimatableProps, string | number>> | Nein | Animatable props whose every change moves as transition says; the first value applies at once. |
enter | Effect | Nein | Where the view enters from: fade.and(slide.up(12)). |
exit | Prop<Effect> | Nein | Where the view leaves to; it stays on screen until it is there. The renderer gets true, and keeps the view until exited. |
layout | Animation<number> | Nein | How the view moves to a new frame the layout gives it: layout={spring()}. |
overflow | Prop<"visible" | "hidden" | "clip" | "scroll"> | Nein | hidden and scroll clip; as in CSS, either lets a flex item shrink below its content. |
borderWidth | Prop<number> | Nein | — |
backgroundGradient | { angle: number; colors: string[];} | Nein | — |
color | Prop<string> | Nein | — |
sharedId | Prop<string> | Nein | A view the navigation stack flies to the view with the same sharedId on the screen it pushes or pops to (docs/navigation.md#shared-elements). |
alignItems | Prop<SelfAlignment> | Nein | — |
justifyContent | Prop<ContentAlignment> | Nein | — |
gap | Prop<LengthPercentage> | Nein | — |
rowGap | Prop<LengthPercentage> | Nein | — |
columnGap | Prop<LengthPercentage> | Nein | — |
flexDirection | Prop<"row" | "column" | "row-reverse" | "column-reverse"> | Nein | — |
flexWrap | Prop<"nowrap" | "wrap" | "wrap-reverse" | "balance"> | Nein | — |
flexLineCount | Prop<number> | Nein | The minimum number of lines a wrapping container breaks into (CSS Flexbox 2). |
alignContent | Prop<ContentAlignment> | Nein | — |
keyboard | Prop<{ avoid?: "none" | "padding" | "position";}> | Nein | — |
disabled | Prop<boolean> | Nein | Takes no presses or input, as HTML disabled. |
pressedOpacity | Prop<number> | Nein | Opacity while pressed (like TouchableOpacity); 1 means no change. |
pressedScale | Prop<number> | Nein | Scale while pressed, e.g. 0.97; 1 means no change. |
longPressDuration | Prop<number> | Nein | Milliseconds before onLongPress; 500 by default. |
hitArea | Prop<number> | Nein | Extra touchable margin around the view, in points. |
haptic | Prop<"light" | "medium" | "heavy" | "selection"> | Nein | Haptic feedback on press-in. |
onPress — Methodensignaturen
Signaturen
onPressStart — Methodensignaturen
Signaturen
(event: PressPhaseEvent): voidParameter
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
event | PressPhaseEvent | Ja | — |
Rückgabe
void
onPressEnd — Methodensignaturen
Signaturen
(event: PressPhaseEvent): voidParameter
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
event | PressPhaseEvent | Ja | — |
Rückgabe
void
onLongPress — Methodensignaturen
Signaturen
(event: PressPhaseEvent): voidParameter
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
event | PressPhaseEvent | Ja | — |
Rückgabe
void
onPressCapture — Methodensignaturen
Signaturen
onAction — Methodensignaturen
Signaturen
(event: AccessibilityActionEvent): voidParameter
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
event | AccessibilityActionEvent | Ja | — |
Rückgabe
void
backgroundGradient — verschachtelte Felder
backgroundGradient Felder
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
angle | number | Ja | — |
colors | string[] | Ja | — |
Generiert aus den öffentlichen TypeScript-Deklarationen: Signaturen, Props und Standardwerte stammen aus der geprüften Quelle, Beschreibungen aus deren JSDoc. Kein Standardwert ist erfunden.