feat: animate heart icon, dynamic tools count in stats, trim tool summaries
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,7 @@ export default function Footer() {
|
||||
{/* Copyright */}
|
||||
<p className="text-sm text-muted-foreground flex items-center gap-1">
|
||||
© {currentYear} Kit.
|
||||
<Heart className="h-4 w-4 text-primary shrink-0" fill="currentColor" />
|
||||
<Heart className="h-4 w-4 text-primary shrink-0 animate-pulse" fill="currentColor" />
|
||||
<a
|
||||
href="https://pivoine.art"
|
||||
target="_blank"
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
'use client';
|
||||
|
||||
import { tools } from '@/lib/tools';
|
||||
import { motion } from 'framer-motion';
|
||||
|
||||
const stats = [
|
||||
{
|
||||
number: '5',
|
||||
number: tools.length,
|
||||
label: 'Tools',
|
||||
icon: (
|
||||
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
|
||||
@@ -127,7 +127,7 @@ export function AppSidebar() {
|
||||
<div className="flex items-center justify-between">
|
||||
<p className="flex items-center gap-1 text-[10px] text-muted-foreground">
|
||||
© {new Date().getFullYear()} Kit.
|
||||
<Heart className="h-2.5 w-2.5 text-primary shrink-0" fill="currentColor" />
|
||||
<Heart className="h-2.5 w-2.5 text-primary shrink-0 animate-pulse" fill="currentColor" />
|
||||
<a
|
||||
href="https://pivoine.art"
|
||||
target="_blank"
|
||||
|
||||
@@ -60,7 +60,7 @@ export const tools: Tool[] = [
|
||||
href: '/media',
|
||||
description: 'Browser-based media conversion for video, audio, and images.',
|
||||
summary:
|
||||
'Modern browser-based file converter powered by WebAssembly. Convert videos, images, and audio locally without server uploads. Privacy-first with no file size limits.',
|
||||
'Modern browser-based file converter powered by WebAssembly. Convert videos, images, and audio locally without server uploads.',
|
||||
icon: MediaIcon,
|
||||
badges: ['Open Source', 'Converter', 'Free'],
|
||||
},
|
||||
@@ -71,7 +71,7 @@ export const tools: Tool[] = [
|
||||
href: '/favicon',
|
||||
description: 'Create a complete set of icons for your website.',
|
||||
summary:
|
||||
'Generate a complete set of favicons for your website. Includes PWA manifest and HTML embed code. All processing happens locally in your browser.',
|
||||
'Generate a complete set of favicons for your website. Includes PWA manifest and HTML embed code.',
|
||||
icon: FaviconIcon,
|
||||
badges: ['Open Source', 'Generator', 'Free'],
|
||||
},
|
||||
@@ -93,7 +93,7 @@ export const tools: Tool[] = [
|
||||
href: '/animate',
|
||||
description: 'Visual editor for CSS keyframe animations with live preview.',
|
||||
summary:
|
||||
'Build and export CSS @keyframe animations visually. Configure timing, easing, transforms, and more — with a live preview and 20+ built-in presets. Export to plain CSS or Tailwind v4.',
|
||||
'Build and export CSS @keyframe animations visually. Configure timing, easing, transforms, and more — with a live preview and 20+ built-in presets.',
|
||||
icon: AnimateIcon,
|
||||
badges: ['Open Source', 'CSS', 'Free'],
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user