diff --git a/components/ascii/FontPreview.tsx b/components/ascii/FontPreview.tsx
index 584b405..a2fbeae 100644
--- a/components/ascii/FontPreview.tsx
+++ b/components/ascii/FontPreview.tsx
@@ -13,7 +13,7 @@ import {
MessageSquareCode,
Type,
} from 'lucide-react';
-import { cn, actionBtn } from '@/lib/utils';
+import { cn, actionBtn, cardBtn } from '@/lib/utils';
import { toast } from 'sonner';
export type CommentStyle = 'none' | '//' | '#' | '--' | ';' | '/* */' | '' | '"""';
@@ -133,20 +133,20 @@ export function FontPreview({
{onCopy && (
-
diff --git a/components/media/FileConverter.tsx b/components/media/FileConverter.tsx
index 8db9d40..1dbf5c2 100644
--- a/components/media/FileConverter.tsx
+++ b/components/media/FileConverter.tsx
@@ -17,7 +17,7 @@ import { addToHistory } from '@/lib/media/storage/history';
import { downloadBlobsAsZip, generateOutputFilename } from '@/lib/media/utils/fileUtils';
import type { ConversionJob, ConversionFormat, ConversionOptions } from '@/types/media';
import { ShieldCheck, Download, RotateCcw, Loader2 } from 'lucide-react';
-import { cn, actionBtn } from '@/lib/utils';
+import { cn, actionBtn, cardBtn } from '@/lib/utils';
type MobileTab = 'upload' | 'convert';
@@ -470,7 +470,7 @@ export function FileConverter() {
Results
{completedCount > 0 && (
-
+
{completedCount > 1 ? `Download all (${completedCount}) as ZIP` : 'Download'}
diff --git a/components/qrcode/QRPreview.tsx b/components/qrcode/QRPreview.tsx
index 23bc0b0..6ba8b59 100644
--- a/components/qrcode/QRPreview.tsx
+++ b/components/qrcode/QRPreview.tsx
@@ -1,7 +1,7 @@
'use client';
import { Copy, Share2, Image as ImageIcon, FileCode, QrCode } from 'lucide-react';
-import { cn, actionBtn } from '@/lib/utils';
+import { cn, actionBtn, cardBtn } from '@/lib/utils';
import type { ExportSize } from '@/types/qrcode';
interface QRPreviewProps {
@@ -42,11 +42,11 @@ export function QRPreview({
Preview
-
+
Copy
-
+
Share
@@ -77,7 +77,7 @@ export function QRPreview({
-
+
SVG
diff --git a/lib/utils/styles.ts b/lib/utils/styles.ts
index 8d902d4..00fb2de 100644
--- a/lib/utils/styles.ts
+++ b/lib/utils/styles.ts
@@ -2,6 +2,10 @@
* Shared Tailwind class strings for consistent UI patterns across tools.
*/
+/** Smaller button for card title rows (copy, share, export icons next to a section label) */
+export const cardBtn =
+ 'flex items-center gap-1 px-2 py-1 text-[10px] font-mono glass rounded-md border border-border/30 text-muted-foreground hover:text-primary hover:border-primary/30 hover:bg-primary/10 transition-all disabled:opacity-40 disabled:cursor-not-allowed';
+
/** Standard action button used throughout all tools (copy, download, share, apply…) */
export const actionBtn =
'flex items-center gap-1.5 px-3 py-1.5 text-xs font-mono glass rounded-lg border border-border/30 text-muted-foreground hover:text-primary hover:border-primary/30 hover:bg-primary/10 transition-all disabled:opacity-40 disabled:cursor-not-allowed';