# Component Library Specification ## Overview Reusable component library for the explorer platform. ## Design System **Framework**: Tailwind CSS or styled-components **Design Tokens**: Colors, typography, spacing, shadows **Theme**: Light/dark mode support ## Component Catalog ### Common Components - Button - Input - Select - Modal - Table - Card - Badge - Tooltip - Loading spinner ### Blockchain-Specific Components - Address display (with copy, ENS lookup) - Transaction hash display - Block number display - Token amount display (with formatting) - Gas price display - Status badges (success/failed/pending) ### Data Display Components - Transaction list - Block list - Token list - Log viewer - Trace viewer - ABI viewer ## Component API Contracts ### Address Component ```typescript interface AddressProps { address: string; chainId?: number; showCopy?: boolean; showENS?: boolean; truncate?: boolean; } ``` ### Transaction Component ```typescript interface TransactionProps { hash: string; chainId: number; showDetails?: boolean; compact?: boolean; } ``` ## Styling Approach **Recommendation**: Tailwind CSS **Benefits**: - Utility-first CSS - Consistent design system - Small bundle size - Fast development ## References - Frontend Architecture: See `frontend-architecture.md`