# rn-button URL: /docs/native/components/button Pressable button component with multiple variants and sizes for user actions. ## Installation ```bash pnpm dlx @docyrus/cli add @docyrus/rn-button ``` **Dependencies:** - [react-native-reanimated](https://www.npmjs.com/package/react-native-reanimated) ## Usage ```tsx import { Button } from '@/components/docyrus-native/button'; ``` ## API Reference | Prop | Type | Default | Description | |------|------|---------|-------------| | `children` | `ReactNode` | — | Button content | | `variant` | `'default' \| 'secondary' \| 'destructive' \| 'outline' \| 'ghost' \| 'link'` | `'default'` | Visual style variant | | `size` | `'sm' \| 'md' \| 'lg' \| 'icon'` | `'md'` | Button size | | `disabled` | `boolean` | `false` | Disable interaction | | `loading` | `boolean` | `false` | Show loading spinner with smooth layout transition | | `feedbackVariant` | `'scale' \| 'scale-highlight' \| 'none'` | `'scale-highlight'` | Press feedback animation type | | `onPress` | `() => void` | — | Press handler | | `onLongPress` | `() => void` | — | Long press handler | | `className` | `string` | — | Additional CSS classes | | `textClassName` | `string` | — | Text CSS classes | | `accessibilityLabel` | `string` | — | Accessibility label | ## Type Exports | Type | Description | |------|-------------| | `ButtonProps` | Props for Button component | | `ButtonVariant` | `'default' \| 'secondary' \| 'destructive' \| 'outline' \| 'ghost' \| 'link'` | | `ButtonSize` | `'sm' \| 'md' \| 'lg' \| 'icon'` |