Sobre
Um fork com instância própria
Este é um fork do skillicons.dev, o serviço que devolve vários ícones de tecnologia como um único SVG. O código de composição é o mesmo; o que muda é o conjunto de ícones, a hospedagem e o site em volta.
Por que um fork, e não o original
O domínio skillicons.dev serve apenas o repositório
oficial. Os 270 IDs daqui incluem
16 que não existem lá — entre eles oracle
refeito, sql, jwt, render e os
três da marca. Pedir um deles ao domínio oficial devolve
400.
Manter um fork publicado é o que torna esses ícones utilizáveis. A API é idêntica à do original, então qualquer snippet existente continua funcionando trocando só o domínio.
O que mudou em relação ao original
O histórico completo, com data e tipo, está no changelog.
| Área | O que mudou |
|---|---|
| Ícones |
16 novos, o oracle redesenhado, e os fundos e o
arredondamento normalizados em 76 arquivos
|
| API |
perline passou a rejeitar 0 e negativos, que
geravam um SVG de altura infinita; ID desconhecido devolve
400 nomeando quais, em vez de renderizar a string
undefined
|
| Hospedagem |
Vercel ao lado do Cloudflare Workers, com a lógica compartilhada
em lib/icons.mjs para as duas não divergirem
|
| Site | Montador com busca e download, catálogo por categoria, design system, identidade de marca e changelog |
| Marca |
Os logotipos <gcruz.dev/> como SVG, e três
deles disponíveis como ícone da API
|
Como a composição funciona
Cada ícone é um SVG de 256×256 guardado em icons/. O
endpoint não devolve os arquivos: ele os concatena num único documento,
cada um dentro de um <g transform="translate(…)">
numa grade de células de 300×300. É por isso que um badge com dez
tecnologias custa uma requisição, e não dez.
Essa escolha tem uma consequência que vale saber: como tudo vira um
documento só, id repetido entre dois ícones colidiria.
Por isso as convenções de icons/ pedem que se evite
id e <defs>, e que texto seja desenhado
como <path> em vez de <text>.
Publicar a sua própria instância
Todo o passo a passo está em DEPLOY.md. O resumo:
Vercel
Importe o repositório, deixe o framework como Other e
publique. O vercel.json já define build e output; não
há variável de ambiente nem secret a configurar. Serve a API e o
site.
Cloudflare Workers
npx wrangler login e yarn deploy. Serve
só a API. O bundle precisa caber no limite de 1 MiB comprimido do
plano gratuito — hoje está em cerca de 805 KiB.
Rodar localmente: npm run dev:web sobe o site e a API em
localhost:4173, com a mesma ordem de roteamento da Vercel.
Créditos e licenças
| O quê | De quem | Licença |
|---|---|---|
| Projeto original | tandpfun | MIT |
| Logotipos de tecnologias | Cada empresa ou projeto | Marcas dos respectivos donos, aqui apenas para identificação |
| JetBrains Mono | JetBrains | OFL-1.1 |
| IBM Plex Sans | IBM | OFL-1.1 |
Marca <gcruz.dev/> |
Guilherme Cruz | Uso restrito ao titular |
Se o projeto original foi útil para você, considere apoiar quem o criou: ko-fi.com/thijsdev.