BookmarkCard
bookmarkcard-1779394643454.tsx
'use client'
import { useState } from 'react'
export default function BookmarkCard({
title = 'Empire UI Documentation',
url = 'empire-ui.com/docs',
desc = 'Complete guide to using Empire UI components in your React project.',
tags = ['docs','react','components'],
emoji = '📚',
saved = true,
}) {
const [bookmarked, setBookmarked] = useState(saved)
const [liked, setLiked] = useState(false)
return (
<div style={{ background:'#fff', borderRadius:'16px', padding:'16px', maxWidth:'340px', boxShadow:'0 2px 16px rgba(0,0,0,0.07)', border:'1px solid #f1f5f9' }}>
<div style={{ display:'flex', gap:'12px', marginBottom:'12px' }}>
<div style={{ width:'52px', height:'52px', borderRadius:'12px', background:'linear-gradient(135deg,#f0f4ff,#ede9fe)', display:'flex', alignItems:'center', justifyContent:'center', fontSize:'24px', flexShrink:0 }}>{emoji}</div>
<div style={{ flex:1, minWidth:0 }}>
<h3 style={{ margin:'0 0 2px', fontSize:'14px', fontWeight:700, color:'#1e293b', overflow:'hidden', textOverflow:'ellipsis', whiteSpace:'nowrap' }}>{title}</h3>
<div style={{ fontSize:'11px', color:'#94a3b8', overflow:'hidden', textOverflow:'ellipsis', whiteSpace:'nowrap' }}>{url}</div>
</div>
</div>
<p style={{ margin:'0 0 12px', fontSize:'12px', color:'#64748b', lineHeight:1.6, display:'-webkit-box', WebkitLineClamp:2, WebkitBoxOrient:'vertical', overflow:'hidden' }}>{desc}</p>
<div style={{ display:'flex', flexWrap:'wrap', gap:'5px', marginBottom:'12px' }}>
{tags.map(t=>(
<span key={t} style={{ background:'#f0f4ff', color:'#6366f1', padding:'3px 9px', borderRadius:'9999px', fontSize:'11px', fontWeight:600 }}>#{t}</span>
))}
</div>
<div style={{ display:'flex', justifyContent:'flex-end', gap:'6px' }}>
<button onClick={()=>setLiked(!liked)} style={{ background:'none', border:'1px solid #e2e8f0', borderRadius:'8px', padding:'5px 10px', cursor:'pointer', fontSize:'14px', color:liked?'#ef4444':'#94a3b8' }}>{liked?'❤️':'🤍'}</button>
<button onClick={()=>setBookmarked(!bookmarked)} style={{ background:'none', border:'1px solid #e2e8f0', borderRadius:'8px', padding:'5px 10px', cursor:'pointer', fontSize:'14px', color:bookmarked?'#f59e0b':'#94a3b8' }}>{bookmarked?'🔖':'📎'}</button>
<button style={{ background:'#6d28d9', color:'#fff', border:'none', borderRadius:'8px', padding:'5px 12px', cursor:'pointer', fontSize:'12px', fontWeight:600 }}>Open →</button>
</div>
</div>
)
}Component info
CategoryCards
Frameworkreact
TierFREE
Views0
Copies0
About
Bookmark/saved link card with preview, tags and quick actions
More from Cards
'use client';
import React, { useState, useEffect } from 'react';
interface StatsCardProps {
label: string;
value: number;
trend: 'up' | 'down';
percentageChange: number;
sparklineData: number[];
}
const StatsCard: React.FC<StatsCardPropStatsCard
Cards
import React from 'react';
import { useEffect, useState } from 'react';
interface NoisyCardProps {
children: React.ReactNode;
className?: string;
}
const NoisyCard: React.FC<NoisyCardProps> = ({ children, className }) => {
const [noise, setNoNoisyCard
Cards
import React, { useState, useEffect } from 'react';
interface HolographicCardProps {
children: React.ReactNode;
}
const HolographicCard: React.FC<HolographicCardProps> = ({ children }) => {
const [mousePosition, setMousePosition] = useState({ xHolographicCard
Cards
'use client';
import React, { useState } from 'react';
interface Notification {
id: number;
avatar: string;
message: string;
time: string;
unread: boolean;
}
const notifications: Notification[] = [
{ id: 1, avatar: 'https://via.placehoNotificationCard
Cards