---
name: code-showcase-core-components
description: Core component library and design system patterns. Use when building UI, using design tokens, or working with the component library.
risk: none
source: https://github.com/ChrisWiles/claude-code-showcase/tree/main/.claude/skills/core-components
source_repo: ChrisWiles/claude-code-showcase
source_type: community
date_added: 2026-07-01
license: MIT
license_source: https://github.com/ChrisWiles/claude-code-showcase/blob/main/LICENSE
---
# Core Components
## When to Use
Use this skill when you need core component library and design system patterns. Use when building UI, using design tokens, or working with the component library.
This entry describes the upstream project's component API/token names, not a bundled component library or universal React Native API. Verify actual exports, tokens and props in the target repository before using snippets. CardProps/variantStyles, handlers and imported components are illustrative dependencies; token use alone does not prove contrast, labeling or behavior.
## Design System Overview
Use components from your core library instead of raw platform components. This ensures consistent styling and behavior.
## Design Tokens
**NEVER hard-code values. Always use design tokens.**
### Spacing Tokens
```tsx
// CORRECT - Use tokens
// WRONG - Hard-coded values
```
| Token | Value |
|-------|-------|
| `$1` | 4px |
| `$2` | 8px |
| `$3` | 12px |
| `$4` | 16px |
| `$6` | 24px |
| `$8` | 32px |
### Color Tokens
```tsx
// CORRECT - Semantic tokens
// WRONG - Hard-coded colors
```
| Semantic Token | Use For |
|----------------|---------|
| `$textPrimary` | Main text |
| `$textSecondary` | Supporting text |
| `$textTertiary` | Disabled/hint text |
| `$primary500` | Brand/accent color |
| `$statusError` | Error states |
| `$statusSuccess` | Success states |
### Typography Tokens
```tsx
```
| Token | Size |
|-------|------|
| `$xs` | 12px |
| `$sm` | 14px |
| `$md` | 16px |
| `$lg` | 18px |
| `$xl` | 20px |
| `$2xl` | 24px |
## Core Components
### Box
Base layout component with token support:
```tsx
{children}
```
### HStack / VStack
Horizontal and vertical flex layouts:
```tsx
Username
Title
Content
```
### Text
Typography with token support:
```tsx
Hello World
```
### Button
Interactive button with variants:
```tsx
```
| Variant | Use For |
|---------|---------|
| `solid` | Primary actions |
| `outline` | Secondary actions |
| `ghost` | Tertiary/subtle actions |
| `link` | Inline actions |
### Input
Form input with validation:
```tsx
```
### Card
Content container:
```tsx
Card Title
Card content
```
## Layout Patterns
### Screen Layout
```tsx
const MyScreen = () => (
{/* Content */}
);
```
### Form Layout
```tsx
```
### List Item Layout
```tsx
{title}
{subtitle}
```
## Anti-Patterns
```tsx
// WRONG - Hard-coded values
// CORRECT - Design tokens
// WRONG - Raw platform components
import { View, Text } from 'react-native';
// CORRECT - Core components
import { Box, Text } from 'components/core';
// WRONG - Inline styles
// CORRECT - Token props
```
## Component Props Pattern
When creating components, use token-based props:
```tsx
interface CardProps {
padding?: '$2' | '$4' | '$6';
variant?: 'elevated' | 'outlined' | 'filled';
children: React.ReactNode;
}
const Card = ({ padding = '$4', variant = 'elevated', children }: CardProps) => (
{children}
);
```
## Integration with Other Skills
- **react-ui-patterns**: Use core components for UI states
- **testing-patterns**: Mock core components in tests
- **storybook**: Document component variants
## Limitations
- Use this skill only when the task clearly matches its upstream source and local project context.
- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.
- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.