design: improve UI consistency and footer layout

- Update text sizing to text-base throughout for consistency
- Improve arrow icon visibility (gray-400 → gray-200 on hover)
- Reorganize tool badges: Open Source first, specialty second, Free third
- Update badge labels: Vert (Converter), Stirling (PDF), Units/Figlet (Open Source)
- Redesign footer: single-row layout with brand pill, centered copyright, GitHub link
- Update footer border: lighter gray-600, constrained to content width

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-09 16:53:03 +01:00
parent 9dd47173d9
commit 593c76de5c
5 changed files with 37 additions and 84 deletions

View File

@@ -27,15 +27,15 @@ export default function ToolCard({ title, description, icon, url, gradient, acce
transition={{ duration: 0.5, delay: index * 0.1 }}
whileHover={{ y: -10 }}
>
<div className="glass relative overflow-hidden rounded-2xl p-8 h-full transition-all duration-300 hover:shadow-2xl">
<div className="glass relative overflow-hidden rounded-2xl p-8 h-full transition-all duration-300 group-hover:shadow-2xl">
{/* Gradient overlay on hover */}
<div
className={`absolute inset-0 opacity-0 group-hover:opacity-30 transition-opacity duration-300 ${gradient}`}
className={`absolute inset-0 opacity-0 group-hover:opacity-15 transition-opacity duration-300 ${gradient}`}
/>
{/* Glow effect */}
<div className="absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity duration-300 blur-xl -z-10">
<div className={`w-full h-full ${gradient}`} />
<div className={`w-full h-full ${gradient} opacity-30`} />
</div>
{/* Icon */}
@@ -86,16 +86,7 @@ export default function ToolCard({ title, description, icon, url, gradient, acce
{/* Arrow icon */}
<motion.div
className="absolute bottom-8 right-8 text-gray-600 transition-colors duration-300"
style={{
color: '#6b7280',
}}
onMouseEnter={(e) => {
e.currentTarget.style.color = accentColor;
}}
onMouseLeave={(e) => {
e.currentTarget.style.color = '#6b7280';
}}
className="absolute bottom-8 right-8 text-gray-400 group-hover:text-gray-200 transition-colors duration-300"
initial={{ x: 0 }}
whileHover={{ x: 5 }}
>