- Logo em duas cores (teal + cobre), inline no cabeçalho e rodapé para seguir o tema do site; SVGs estáticos com prefers-color-scheme. - scripts/generate-favicons.mjs passa a gerar favicons, ícones de app (maskable), site.webmanifest e a imagem Open Graph 1200x630. - Manifest com fundo/tema obsidiana e lang pt-BR. Claude-Session: https://claude.ai/code/session_016W1xmizFcmXLrmabSvfSuc Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
33 lines
1013 B
React
33 lines
1013 B
React
/**
|
|
* Marca do ESPDocs: o encapsulamento do chip com pinos à esquerda; os pinos e
|
|
* o corpo viram linhas de texto, a documentação. Inline para seguir o tema do
|
|
* site (--accent e --copper trocam entre claro e escuro, ao contrário de uma
|
|
* imagem externa, que só enxerga a preferência do sistema).
|
|
*/
|
|
export default function Logo({ className = "h-8 w-8", title }) {
|
|
return (
|
|
<svg
|
|
viewBox="0 0 64 64"
|
|
className={className}
|
|
fill="none"
|
|
strokeLinecap="round"
|
|
role={title ? "img" : undefined}
|
|
aria-label={title}
|
|
aria-hidden={title ? undefined : "true"}
|
|
>
|
|
{title && <title>{title}</title>}
|
|
<g stroke="var(--accent)" strokeWidth="3.4">
|
|
<path d="M2 21h7" />
|
|
<path d="M2 32h7" />
|
|
<path d="M2 43h7" />
|
|
</g>
|
|
<rect x="9.25" y="9.25" width="45.5" height="45.5" rx="13" stroke="var(--accent)" strokeWidth="4.5" />
|
|
<g stroke="var(--copper)" strokeWidth="4.5">
|
|
<path d="M19 21h26" />
|
|
<path d="M19 32h21" />
|
|
<path d="M19 43h15" />
|
|
</g>
|
|
</svg>
|
|
);
|
|
}
|