2025-11-07 11:26:19 +01:00
|
|
|
import ToolCard from './ToolCard';
|
2026-02-27 17:46:54 +01:00
|
|
|
import { tools } from '@/lib/tools';
|
2025-11-07 11:26:19 +01:00
|
|
|
|
|
|
|
|
export default function ToolsGrid() {
|
|
|
|
|
return (
|
2026-03-01 09:07:18 +01:00
|
|
|
<section id="tools" className="relative py-16 px-6">
|
|
|
|
|
<div className="max-w-5xl mx-auto">
|
|
|
|
|
|
2025-11-07 11:26:19 +01:00
|
|
|
{/* Section heading */}
|
2026-03-01 09:07:18 +01:00
|
|
|
<div
|
2026-03-01 16:48:04 +01:00
|
|
|
className="mb-10"
|
2026-03-01 09:07:18 +01:00
|
|
|
style={{ animation: 'fadeIn 0.5s ease-out both' }}
|
2025-11-07 11:26:19 +01:00
|
|
|
>
|
2026-03-01 16:48:04 +01:00
|
|
|
<h2 className="text-3xl sm:text-4xl font-bold tracking-tight text-foreground">
|
|
|
|
|
Available{' '}
|
|
|
|
|
<span className="bg-gradient-to-r from-primary via-violet-400 to-pink-400 bg-clip-text text-transparent">
|
|
|
|
|
Tools
|
2026-03-01 09:41:32 +01:00
|
|
|
</span>
|
2026-03-01 16:48:04 +01:00
|
|
|
</h2>
|
|
|
|
|
<p className="text-sm text-muted-foreground/40 mt-2">
|
|
|
|
|
{tools.length} tools — everything runs in your browser, no data leaves your machine
|
|
|
|
|
</p>
|
2026-03-01 09:07:18 +01:00
|
|
|
</div>
|
2025-11-07 11:26:19 +01:00
|
|
|
|
|
|
|
|
{/* Tools grid */}
|
2026-03-01 09:41:32 +01:00
|
|
|
<div className="grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-4">
|
2026-03-01 09:07:18 +01:00
|
|
|
{tools.map((tool, index) => (
|
|
|
|
|
<ToolCard
|
|
|
|
|
key={tool.href}
|
2026-03-01 17:28:47 +01:00
|
|
|
title={tool.title}
|
2026-03-01 09:07:18 +01:00
|
|
|
description={tool.summary}
|
|
|
|
|
icon={tool.icon}
|
|
|
|
|
url={tool.href}
|
|
|
|
|
badges={tool.badges}
|
|
|
|
|
index={index}
|
|
|
|
|
/>
|
|
|
|
|
))}
|
2025-11-07 11:26:19 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
);
|
|
|
|
|
}
|