Novo suporte a codecs, design atualizado e suporte à CLI!
O Squoosh é um app de compactação de imagens que nossa equipe criou e lançou no Chrome Dev Summit 2018. Ele foi criado para facilitar a experimentação com diferentes codecs de imagem e mostrar os recursos da Web moderna.
Hoje, estamos lançando uma grande atualização do app com mais suporte a codecs, um novo design e uma nova maneira de usar o Squoosh na linha de comando, chamada Squoosh CLI.
Novo suporte a codecs
Agora oferecemos suporte a OxiPNG, MozJPEG, WebP e AVIF, além de codecs com suporte nativo no seu navegador. Um novo codec foi disponibilizado novamente com o uso do WebAssembly. Ao compilar um codificador e decodificador de codec como um módulo do WebAssembly, os usuários podem acessar e experimentar codecs mais recentes, mesmo que o navegador preferido não ofereça suporte a eles.
Lançamento de um Squoosh de linha de comando!
Desde o lançamento original em 2018, o pedido comum dos usuários era interagir com o Squoosh de maneira programática sem a interface. Ficamos um pouco indecisos sobre esse caminho, já que nosso app era uma interface sobre ferramentas de codec baseadas em linha de comando. No entanto, entendemos o desejo de interagir com o pacote inteiro de codecs em vez de várias ferramentas. A Squoosh CLI faz exatamente isso.
Você pode instalar a versão Beta da Squoosh CLI executando npm i @squoosh/cli ou executá-la
diretamente usando npx @squoosh/cli [parameters].
A Squoosh CLI é escrita em Node e usa os mesmos módulos do WebAssembly que a PWA
usa. Com o uso extensivo de workers, todas as imagens são decodificadas, processadas e codificadas em paralelo.
Também usamos o Rollup para agrupar tudo em um arquivo JavaScript para garantir que a instalação via
npx seja rápida e sem problemas. A CLI também oferece compactação automática, em que tenta reduzir a
qualidade de uma imagem o máximo possível sem degradar a fidelidade visual
(usando a métrica Butteraugli).
Com a Squoosh CLI, você pode compactar as imagens no seu app da Web em vários formatos e usar o
<picture> elemento
para permitir que o navegador escolha a melhor versão. Também planejamos criar
plug-ins para Webpack, Rollup e outras ferramentas de build para tornar a compactação de imagens
uma parte automática do processo de build.
Mudança no processo de build do Webpack para o Rollup
A mesma equipe que criou o Squoosh passou um tempo significativo analisando as ferramentas de build deste ano para o Relatório de ferramentas e decidiu mudar nosso processo de build do Webpack para o Rollup.
O projeto foi iniciado com o Webpack porque queríamos testá-lo como uma equipe e, na época, em 2018, o Webpack era a única ferramenta que nos dava controle suficiente para configurar o projeto da maneira que queríamos. Com o tempo, descobrimos que o sistema de plug-ins fácil do Rollup e a simplicidade com o ESM o tornaram uma escolha natural para esse projeto.
Design de interface atualizado
Também atualizamos o design da interface do app com blobs como um elemento visual. É um pequeno
trocadilho sobre como tratamos os dados no nosso código. O Squoosh transmite dados de imagem como um blob, então pareceu
natural incluir alguns blobs no design (entendeu?).
O uso de cores também foi aprimorado para que a cor fosse mais do que um destaque, mas também um vetor para distinguir e reforçar qual imagem está no contexto das opções. No geral, a página inicial é um pouco mais vibrante e a ferramenta em si é um pouco mais clara e concisa.
O que vem a seguir?
Planejamos continuar trabalhando no Squoosh. À medida que o novo formato de imagem for lançado, queremos que nossos usuários tenham um lugar onde possam usar o codec sem muito esforço. Também esperamos expandir o uso da Squoosh CLI e integrar mais ao processo de build de um aplicativo da Web.
O Squoosh sempre foi de código aberto, mas nunca nos concentramos em aumentar a comunidade. Em 2021, planejamos expandir nossa base de colaboradores e ter um processo de integração melhor para o projeto.
Você tem alguma ideia para o Squoosh? Informe no nosso Issue Tracker. A equipe vai tirar férias de inverno prolongadas, mas prometemos entrar em contato no ano novo.