Overview
These baseline components follow Paper UI principles:- Digital Paper: Physical sheets with distinct borders and hard shadows
- Hard Edges: Minimal border radius (max 2px)
- High Contrast: Strict Ink/Paper polarity
PaperCard
The fundamental container component for content organization.TypeScript Interface
Implementation
Usage
Styling Specifications
- Background:
bg-paper(white/light background) - Border:
border-2 border-ink(2px solid border) - Shadow:
shadow-hard(4px 4px 0px 0px) - Title Typography: Serif font, bold, uppercase, tracking-wide
- Padding:
p-6(default) or none ifnoPaddingprop
Dark Mode
Automatically handled via CSS custom properties:- Paper becomes dark in dark mode
- Ink becomes light in dark mode
- Shadows adapt automatically
PaperButton
Interactive button component with variants and sizes.TypeScript Interface
Implementation
Usage
Variants
- primary: Ink background, paper text, hover to accent
- secondary: Paper background, ink text
- ghost: Transparent, gains border and shadow on hover
- danger: Warning color border and text
Active State
Buttons translate2px in both X and Y directions on click (active:translate-x-[2px] active:translate-y-[2px]) to simulate physical button press.
PaperInput
Text input field with label and error support.TypeScript Interface
Implementation
Usage
Styling Specifications
- Font: Monospace (
font-mono) - Paper UI principle for technical inputs - Border: 2px solid ink border
- Focus: Hard shadow (
shadow-hard) instead of ring - Label: Monospace, uppercase, bold, tracking-wide
- Error: Monospace font, warning color
PaperTextArea
Multi-line text input component.TypeScript Interface
Implementation
Usage
PaperSelect
Dropdown select component with custom styling.TypeScript Interface
Implementation
Usage
PaperBadge
Status indicator and label component.TypeScript Interface
Implementation
Usage
Styling Specifications
- Font: Monospace, uppercase, bold, tracking-wider
- Size:
text-xs(12px) for readability - Colors: Supports semantic colors with dark mode variants
PaperModal
Modal dialog component with overlay and animations.TypeScript Interface
Implementation
Usage
Animation Guidelines
Card Animations
Cards should use subtle fade-in animations:Button Interactions
Buttons should translate on active state:Modal Animations
Modals should scale and fade:Dark Mode Support
All components automatically support dark mode through CSS custom properties:- Colors: Defined in
:rootand.darkselectors - Components: Use semantic tokens (
bg-paper,text-ink, etc.) - No changes needed: Components adapt automatically
Ensure your Tailwind configuration uses CSS custom properties for colors. See Tailwind Configuration for details.
Dependencies
Required dependencies:Related Documentation
- Design System - Paper UI design principles
- Tailwind Configuration - Setup guide
- Component Guide - Usage patterns
- Application Review - Implementation review