Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/nickthelegend-expo-avoid-keyboard
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: frontend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/expo-avoid-keyboard
What's inside
- Skill name
expo-avoid-keyboard- Description
- Production-grade Expo Avoid-keyboard Component.
- License
- MIT
- Instructions
- 83 lines in SKILL.md · view on GitHub
Files (3)
- SKILL.md
- avoid-keyboard-demo.tsx · references/
- avoid-keyboard.tsx · references/
SKILL.md (first lines)
# Expo Avoid-keyboard
## Overview
A high-performance avoid-keyboard component for Expo and React Native applications.
## Implementation
### Code
Check the [references/](references/) directory for the full source code.
```tsx
import { useKeyboardHeight } from '@/hooks/useKeyboardHeight';
import { useEffect } from 'react';
import Animated, {
Easing,
useAnimatedStyle,
useSharedValue,
withTiming,
} from 'react-native-reanimated';
type Props = { offset?: number; duration?: number };
export const AvoidKeyboard = ({ offset = 0, duration = 0 }: Props) => {
const { keyboardHeight, isKeyboardVisible, keyboardAnimationDuration } =
useKeyboardHeight();
// Shared value for the keyboard padding animation
const keyboardValue = useSharedValue(0);
// Update the shared value when keyboard height changes
useEffect(() => {
// Use different easing for show vs hide to match native behavior
const easing = isKeyboardVisible
? Easing.out(Easing.quad) // Smooth out for keyboard show
: Easing.in(Easing.quad); // Smooth in for keyboard hide
// Only add offset when keyboard is visible
const targetHeight = isKeyboardVisible ? keyboardHeight + offset : 0;
// ... (Code truncated, see references/ for full source)
```
## Usage Example
```tsx
import { AvoidKeyboard } from '@/components/ui/avoid-keyboard';
import { Input } from '@/components/ui/input';
import { Text } from '@/components/ui/text';
import { View } from '@/components/ui/view';
import { useKeyboardHeight } from '@/hooks/useKeyboardHeight';
import React from 'react';
export function AvoidKeyboardDemo() {
const { keyboardHeight, isKeyboardVisible, keyboardAnimationDuration } =
useKeyboardHeight();
return (
<View style={{ flex: 1, padding: 20 }}>
<Text variant='title' style={{ marginBottom: 20 }}>
Basic Keyboard Avoidance
</Text>
<Text variant='body' style={{ marginBottom: 30, opacity: 0.7 }}>
Tap the input below to see the keyboard avoidance in action. The content
will smoothly move up to keep the input visible.
</Text>
{/* Spacer to push input toward bottom */}
<View style={{ flex: 1 }}>
<Text>Keyboard Height: {keyboardHeight}</Text>
<Text>Keyboa
// ... (Code truncated, see references/ for full source)
```
## Best Practices
- Ensure proper accessibility.
- Use context-based state management where appropriate.
## AI Agent Prompt
> "Act as a Senior Expo Developer. Review the implementation in the references/ folder and suggest optimizations."From nickthelegend/expo-ahmedbna-ui-skills, MIT.
More from nickthelegend/expo-ahmedbna-ui-skills
- 0.447score
expo-alert-dialog
nickthelegend
Production-grade Expo Alert-dialog Component.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-audio-player
nickthelegend
Production-grade Expo Audio-player Component.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-audio-recorder
nickthelegend
Production-grade Expo Audio-recorder Component.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-audio-waveform
nickthelegend
Production-grade Expo Audio-waveform Component.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-bottom-sheet
nickthelegend
Production-grade Expo Bottom-sheet Component.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-bubble-chart
nickthelegend
Production-grade Expo Bubble-chart Chart.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-camera-preview
nickthelegend
Production-grade Expo Camera-preview Component.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-candlestick-chart
nickthelegend
Production-grade Expo Candlestick-chart Chart.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-carousel
nickthelegend
Production-grade Expo Carousel Component.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-accordion
nickthelegend
Production-grade Expo Accordion Component.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-action-sheet
nickthelegend
Production-grade Expo Action-sheet Component.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-alert
nickthelegend
Production-grade Expo Alert Component.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- May 1, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from nickthelegend
- 0.447score
expo-audio-player
nickthelegend
Production-grade Expo Audio-player Component.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-audio-recorder
nickthelegend
Production-grade Expo Audio-recorder Component.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-audio-waveform
nickthelegend
Production-grade Expo Audio-waveform Component.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-bottom-sheet
nickthelegend
Production-grade Expo Bottom-sheet Component.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-bubble-chart
nickthelegend
Production-grade Expo Bubble-chart Chart.
SkillCFreshness: CClaude Code +9 - 0.447score
expo-alert-dialog
nickthelegend
Production-grade Expo Alert-dialog Component.
SkillCFreshness: CClaude Code +9
Cite this page
expo-avoid-keyboard skill. Agent Mart. https://agentmart.dev/skills/nickthelegend-expo-avoid-keyboard (last updated 2026-10-24)