aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend/src/components/FeedItem.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/components/FeedItem.tsx')
-rw-r--r--frontend/src/components/FeedItem.tsx37
1 files changed, 20 insertions, 17 deletions
diff --git a/frontend/src/components/FeedItem.tsx b/frontend/src/components/FeedItem.tsx
index 80c8992..8333f75 100644
--- a/frontend/src/components/FeedItem.tsx
+++ b/frontend/src/components/FeedItem.tsx
@@ -41,26 +41,29 @@ export function FeedItem({ feed, onFeedUnsubscribed }: Props) {
};
return (
- <div className="rounded-lg border border-gray-200 bg-white p-4 shadow-sm">
- <div className="flex items-start justify-between">
- <div className="flex-1">
- <h3 className="text-lg font-semibold text-gray-900">{feed.title}</h3>
- <p className="mt-1 text-sm text-gray-500">
- <a href={feed.url} target="_blank" rel="noreferrer">
- {feed.url}
- </a>
+ <div className="group rounded-xl border border-stone-200 bg-white p-5 transition-all duration-200 hover:border-stone-300 hover:shadow-sm">
+ <div className="flex items-start justify-between gap-4">
+ <div className="min-w-0 flex-1">
+ <h3 className="truncate text-base font-semibold text-stone-900">
+ {feed.title}
+ </h3>
+ <a
+ href={feed.url}
+ target="_blank"
+ rel="noreferrer"
+ className="mt-1 block truncate text-sm text-stone-400 transition-colors hover:text-sky-600"
+ >
+ {feed.url}
+ </a>
+ <p className="mt-2 text-xs text-stone-400">
+ Last fetched: {formatDateTime(new Date(feed.fetchedAt))}
</p>
- <div className="mt-2 flex items-center gap-4 text-sm">
- <span className="text-gray-400">
- Last fetched: {formatDateTime(new Date(feed.fetchedAt))}
- </span>
- </div>
</div>
- <div className="flex items-center gap-2">
+ <div className="flex items-center gap-1">
<button
type="button"
onClick={() => handleMarkAllRead(feed.id)}
- className="rounded p-2 text-gray-600 hover:bg-gray-100 hover:text-gray-900"
+ className="rounded-lg p-2 text-stone-400 transition-all duration-150 hover:bg-stone-100 hover:text-stone-600"
title="Mark all as read"
>
<FontAwesomeIcon icon={faCheck} />
@@ -68,7 +71,7 @@ export function FeedItem({ feed, onFeedUnsubscribed }: Props) {
<button
type="button"
onClick={() => handleMarkAllUnread(feed.id)}
- className="rounded p-2 text-gray-600 hover:bg-gray-100 hover:text-gray-900"
+ className="rounded-lg p-2 text-stone-400 transition-all duration-150 hover:bg-stone-100 hover:text-stone-600"
title="Mark all as unread"
>
<FontAwesomeIcon icon={faCircle} />
@@ -76,7 +79,7 @@ export function FeedItem({ feed, onFeedUnsubscribed }: Props) {
<button
type="button"
onClick={() => handleUnsubscribeFeed(feed.id)}
- className="rounded p-2 text-red-600 hover:bg-red-50 hover:text-red-700"
+ className="rounded-lg p-2 text-stone-400 transition-all duration-150 hover:bg-red-50 hover:text-red-600"
title="Unsubscribe from feed"
>
<FontAwesomeIcon icon={faTrash} />