Skip to main content
This document provides standardized component specifications for the Paper UI design system. Use these as the baseline implementation for all MetaCogna Suite applications.

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 if noPadding prop

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 translate 2px 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:
Modals should scale and fade:

Dark Mode Support

All components automatically support dark mode through CSS custom properties:
  • Colors: Defined in :root and .dark selectors
  • 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: