Preview
Installation
- CLI
- Manual
Usage
Basic Tweet
Tweet with Media
Quoted Tweet
Props
Author information for the tweet
The tweet text content. Supports multi-line text with
\n characters.When the tweet was posted. Accepts Date object or ISO string. Automatically formats as relative time (e.g., “2h”, “Mar 3”).
Number of likes. Automatically formatted (e.g., 1.2K, 3.5M).
Number of retweets. Automatically formatted.
Number of replies. Automatically formatted.
URL to an image to display in the tweet. Limited to 320px height.
A quoted tweet to display within this tweet
Additional CSS classes to apply to the card
Features
Author Information
Displays profile picture, name, handle, and optional verified badge. The header uses a 48x48px circular avatar.Engagement Metrics
All engagement buttons (reply, retweet, like, share) include:- Interactive hover states with color-coded backgrounds
- Icon animations
- Formatted count displays (1K, 1.2M format)
- Zero counts are hidden for cleaner UI
Media Support
Images are displayed in a rounded container with:- Max height of 320px
- Responsive width
- Border styling that adapts to dark mode
Quoted Tweets
Nested quote cards feature:- Smaller avatar (20x20px)
- Truncated content (2 line clamp)
- Distinct border to separate from main content
Timestamp Formatting
Automatically formats timestamps:- Less than 1 hour: “Just now”
- Less than 24 hours: “Xh”
- Older: “Mon DD” format
Dark Mode Support
Fully supports dark mode with theme-aware colors for backgrounds, text, borders, and hover states.Usage in Gaia
The Twitter Card is used for native tweet embedding, allowing users to consume social content without leaving the dashboard. Perfect for social media monitoring, content curation, and engagement tracking.Accessibility
- All interactive buttons include
aria-labelattributes - Semantic HTML with proper button elements
- Keyboard navigation support
- Screen reader friendly with descriptive labels
The component uses Next.js Image for avatars but standard img tags for media to avoid layout issues with dynamic image sizes.