Docs/Componenti
// componente
Better Icon
Micro-componente da 8 righe: prende un'icona SVG e la mette dentro un cerchio colorato di 48×48. Serve a dare peso visivo alle icone nelle liste di feature, dove un SVG nudo si perde. Non ha "use client", quindi puoi usarlo tranquillamente dentro un server component.
File
components/BetterIcon.tsx
Uso base
components/Features.tsx
tsx
import BetterIcon from "@/components/BetterIcon";
<BetterIcon>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="currentColor"
className="w-6 h-6"
>
<path d="M11.983 1.907a.75.75 0 0 0-1.292-.657l-8.5 9.5A.75.75 0 0 0 2.75 12h6.572l-1.305 6.093a.75.75 0 0 0 1.292.657l8.5-9.5A.75.75 0 0 0 17.25 8h-6.572l1.305-6.093Z" />
</svg>
</BetterIcon>Props
children: React.ReactNode— obbligatoria. Passa l'SVG dell'icona. Dimensione consigliataw-6 h-6: il wrapper èw-12 h-12, così resta metà di spazio attorno.
Personalizzare
- Colore: usa
bg-primary/20 text-primarydi DaisyUI, quindi segue il tema inconfig.colors.theme. Per allinearlo al look neobrutalista di ZeroToShip sostituisci con i token del tema:
components/BetterIcon.tsx
tsx
<div
className="w-12 h-12 inline-flex items-center justify-center"
style={{
background: "var(--mustard)",
border: "var(--border-brutal)",
borderRadius: "0.25rem",
color: "var(--ink)",
}}
>
{children}
</div>- Dimensione: cambia
w-12 h-12. Se lo fai, ricordati di adeguare la classe dell'SVG che passi come children. - Forma:
rounded-full→roundedper un quadrato smussato, come nel resto del tema.
Nel repo attuale nessuna pagina lo importa: è un pezzo di libreria pronto all'uso, non un componente della landing.