diff --git a/frontend/src/components/PackageCard.jsx b/frontend/src/components/PackageCard.jsx
index a52a519..47d8b4b 100644
--- a/frontend/src/components/PackageCard.jsx
+++ b/frontend/src/components/PackageCard.jsx
@@ -1,5 +1,5 @@
import { useNavigate } from 'react-router-dom';
-import { CheckCircle, AlertTriangle, Star, ArrowDownToLine } from 'lucide-react';
+import { CheckCircle, AlertTriangle, Star, ArrowRight } from 'lucide-react';
export default function PackageCard({ pkg }) {
const navigate = useNavigate();
@@ -9,55 +9,61 @@ export default function PackageCard({ pkg }) {
return (
navigate(`/package/${pkg.name}`)}
role="button"
tabIndex={0}
onKeyDown={(e) => e.key === 'Enter' && navigate(`/package/${pkg.name}`)}
>
- {/* Top row: name + badge */}
-
-
-
-
- {pkg.name}
-
- {pkg.installed &&
}
- {pkg.out_of_date &&
}
+
+ {/* Top: Name and badges */}
+
+
+
+
+ {pkg.name}
+
+ {pkg.installed &&
}
+ {pkg.out_of_date &&
}
+
+
+ {pkg.version || '—'}
+
-
- {pkg.version || '—'}
-
+
{sourceLabel}
-
{sourceLabel}
+
+ {/* Mid: Description */}
+
+ {pkg.description || 'No description available'}
+
- {/* Description */}
-
- {pkg.description || 'No description available'}
-
-
- {/* Footer */}
-
-
- {pkg.votes !== undefined && (
+ {/* Bottom: Stats & Action */}
+
+
+ {pkg.votes !== undefined && pkg.votes > 0 && (
- {pkg.votes}
+ {pkg.votes}
)}
{pkg.popularity > 0 && (
- {pkg.popularity.toFixed(2)}
+ Pop: {pkg.popularity.toFixed(1)}
)}
- {pkg.installed ? (
-
Installed
- ) : (
-
- Get
-
- )}
+
+
+ Details
+
);
diff --git a/frontend/src/components/SearchBar.jsx b/frontend/src/components/SearchBar.jsx
index 7a088d1..d4b3483 100644
--- a/frontend/src/components/SearchBar.jsx
+++ b/frontend/src/components/SearchBar.jsx
@@ -10,7 +10,7 @@ export default function SearchBar({ onSearch, initialQuery = '' }) {
}, [query, onSearch]);
return (
-