Histórico

Changelog

O que mudou neste fork, da entrada mais recente para a mais antiga. As mudanças de API vêm marcadas como Alterado; até aqui não houve nenhuma quebra de contrato do /icons.

Seu arsenal, 46 assinaturas exclusivas

  • Adicionado Coleção Meu arsenal com os 43 ícones de tecnologias das referências e os três ícones da marca. Cada ID recebe uma animação padrão diferente, reservada a ele.
  • Adicionado 21 composições novas: Java com vapor, Tux com pés e piscada, salto do MySQL, caligrafia do Sass, cristal Obsidian, roteamento OpenRouter, validação Pydantic e assinatura JWT, entre outras. Biblioteca com 85 modelos e 170 previews.
  • Alterado A marca escreve e abre os brackets mais cedo; o monograma recebe ressonância no encontro das letras. A galeria filtra o arsenal, busca aliases e permite copiar a URL ou baixar os 46 em um SVG.
  • Adicionado Aliases para HTML5, CSS3, Node.js, VS Code e Docker Compose. São 270 IDs e 81 aliases; os SVGs fonte permanecem preservados.

64 composições de movimento

  • Adicionado Biblioteca com 64 modelos em oito universos, incluindo oito composições da marca e tratamentos de React, Python, Docker, GitHub, Git, Kubernetes e Bandit.
  • Adicionado Galeria de animações com pesquisa, filtros, comparação com qualquer ícone, prévia fixada, cópia de URL e download SVG nos dois temas.
  • Alterado API aceita model e expõe /api/animations. Geometria compartilhada, IDs isolados e CSS seletivo preservam a composição de ícones repetidos. Movimento reduzido e pausa por visibilidade continuam ativos.

Animações refinadas e interação suave

  • Alterado Os 270 IDs passam a usar 12 famílias de movimento, com ritmos por tecnologia, preparação de entrada e acentos internos em React, Python, Prettier, Gemini, Claude, Jupyter, Lucide, Motion e OpenRouter.
  • Adicionado Transição suave entre arte estática e animada, carregamento sob demanda, pausa fora da área visível e em abas ocultas, e fallback para o original se a animação não carregar.
  • Alterado Movimento reduzido interrompe as camadas da página. Primeiro quadro dos 459 SVGs conserva a pose original; testes de navegador cobrem as 12 famílias e a pausa por visibilidade.

Catálogo ampliado e montador mais confiável

  • Adicionado Treze tecnologias com temas claro/escuro e animação: Lucide, Ruff, Bandit, Radon, Biome, golangci-lint, Gemini, Claude, OpenRouter, Motion, Socket.IO, Jupyter e Jinja. Radon usa badge tipográfico próprio, identificado como tal.
  • Adicionado Aliases para nomes usados nos projetos, incluindo Dockerfile, Shell, Jupyter Notebook, PL/pgSQL e Procfile. Catálogo com 270 IDs, 459 SVGs e 73 aliases.
  • Corrigido Busca sem interpretação de HTML, recuperação de estado salvo inválido, filtro restaurado corretamente e foco de teclado preservado ao atualizar a grade.
  • Alterado Metadados leves compartilhados entre API e documentação, manifesto com requisição em voo compartilhada, testes de catálogo/estado e CI validando pull requests com Node 24.

Animação interna dos ícones

  • Adicionado Todos os 257 IDs têm versões com movimento interno: flutuação, pulsação, rotação ou luminosidade. No site, animam ao passar o mouse, focar pelo teclado ou selecionar.
  • Adicionado Controle de animação persistente, respeito à preferência de movimento reduzido e parâmetro opcional animation=true nos badges SVG.
  • Adicionado Downloads SVG e ZIP conservam a animação; PNG e WebP continuam estáticos. Testes nativos de Node cobrem todos os 433 SVGs e o contrato da API.

Design System, marca e responsividade

  • Adicionado Página /design-system, gerada no build a partir de site/css/tokens.css — o mesmo arquivo que o navegador carrega, para o styleguide não envelhecer calado.
  • Adicionado Componente de modal, o único da especificação que faltava. Modal e drawer passaram a compartilhar a mesma lógica de foco preso, Esc e retorno de foco.
  • Adicionado Página /marca ampliada para identidade completa: temas, escala de 96 a 16px, variante compacta, pesos, contexto de aplicação e diretrizes de uso.
  • Adicionado Página /sobre: o que é o fork, o que mudou em relação ao original, como publicar a própria instância e os créditos.
  • Adicionado scripts/responsivo.mjs: auditoria de 6 páginas × 15 larguras × 2 temas, afirmando ausência de rolagem horizontal, de transbordo e de alvo de toque abaixo de 44px.
  • Corrigido Grades declaradas com 1fr puro — que é minmax(auto, 1fr) — deixavam o mínimo virar min-content: uma URL longa num <pre> empurrava a página para 1808px numa janela de 1440. Todas passaram a minmax(0, 1fr).
  • Corrigido Abaixo de 400px o logotipo, o toggle de tema e o botão de menu não cabiam na mesma linha e estouravam a barra.
  • Alterado Títulos passaram a usar clamp() em vez de três degraus por media query, e o drawer entra a 1040px, onde a navegação de 7 itens realmente deixa de caber.
  • Alterado Alvos de toque de 44×44px sob pointer: coarse, e env(safe-area-inset-*) no cabeçalho e no toast.
  • Corrigido Fundos e arredondamento normalizados em 76 ícones: 16 fundos fora do token e 60 que desenhavam o canto num <path> em vez de rect rx="60".

Site completo

  • Adicionado Tokens do design system em site/css/tokens.css como fonte única de cor, tipografia, espaço, elevação e motion.
  • Adicionado Cabeçalho e rodapé compartilhados, com navegação, toggle de tema e menu mobile, compostos em build time por scripts/build-pages.mjs.
  • Adicionado Download dos ícones selecionados em SVG, PNG e WebP, individual ou em lote .zip, com resolução de 16 a 1024 px — tudo no cliente, sem endpoint novo.
  • Adicionado Busca por nome parcial, apelido e categoria, com contador de resultados e destaque do termo.
  • Adicionado Páginas de changelog e de erro 404.
  • Adicionado JetBrains Mono e IBM Plex Sans auto-hospedadas em fontes variáveis (77 KB no total), sem requisição a terceiro.
  • Alterado A marca passou a usar <gc/> na variante compacta e <gcruz/> no badge do ID gcruz; a abreviação da marca é gc, nunca g isolado.
  • Alterado CSS e JS saíram de dentro do HTML para arquivos próprios, com cache longo.
  • Removido Proposta de monograma g isolado, incompatível com a regra de abreviação da marca.

Badge <gc/>

  • Adicionado Ícone gctag: a marca em forma de tag, <gc/>, nos dois temas.

Família gc e categorias

  • Adicionado Logos <gc/>, <gc.dev/>, <gcruz/> e o monograma gc, mais o ícone gc.
  • Alterado A lista de ícones do readme passou a ser agrupada em 19 categorias, validadas como partição total e exclusiva por npm run readme:check.

Readme e correções da página

  • Corrigido A página não inicializava em origem opaca: tocar em localStorage lançava SecurityError e derrubava o script inteiro.
  • Corrigido O preview cortava as fileiras de baixo — um seletor .preview svg alcançava o SVG aninhado de cada ícone e deslocava a grade interna.
  • Alterado Readme refatorado, com os ícones da marca documentados.

Vercel e primeira página

  • Adicionado Hospedagem na Vercel ao lado do Cloudflare Workers, com a lógica compartilhada em lib/icons.mjs para as duas não divergirem.
  • Adicionado Biblioteca da marca <gcruz.dev/>: logotipos em contorno de glifo, sem depender de fonte instalada.
  • Adicionado 14 ícones novos, o sql, e o oracle refeito.
  • Corrigido perline aceitava 0 e negativos, gerando um SVG de altura infinita; ID desconhecido virava a string undefined dentro do SVG em vez de erro.