Chrome 148: Prompt API leva um modelo de linguagem local para a web, e o CSS ganha força
O Chrome 148 chegou ao canal estável em 5 de maio de 2026, para Android, ChromeOS, Linux, macOS e Windows. Lendo as notas de lançamento, dá para separar a versão em duas histórias: uma de inteligência artificial rodando dentro do navegador e outra de CSS ficando mais expressivo. As duas interessam a quem constrói para a web, então vale olhar com calma.
Prompt API: um modelo de linguagem fornecido pelo navegador
O destaque é a Prompt API. Ela dá a desenvolvedores web acesso a um modelo de linguagem fornecido pelo próprio navegador e executado no dispositivo. A primeira versão aceita entrada de texto, imagem e áudio, e permite restringir a resposta a formatos definidos por expressão regular ou por JSON Schema.
Esse último ponto é o que mais me anima. Quem já tentou extrair dados estruturados de um modelo sabe quanto código defensivo vai em “e se o JSON vier quebrado?”. Com a restrição aplicada na geração, a página pode pedir uma classificação, uma extração de campos ou um resumo em formato fixo e confiar mais na forma do que volta. Não elimina validação, mas muda o tipo de erro com que você lida.
Também há um origin trial para parâmetros de amostragem da Prompt API, temperature e topK. Ou seja: o básico está no estável, e o ajuste fino ainda está em teste.
O impacto prático é rodar tarefas leves de IA sem mandar dados para um servidor, sem custo por token e sem depender de rede. O lado menos bonito é que isso amarra a funcionalidade a um modelo que você não escolhe e que só existe nesse navegador, então detecção de recurso e um caminho alternativo continuam obrigatórios.
CSS: menos boilerplate e mais controle da cascata
Do lado do CSS, a versão traz várias melhorias pequenas que se somam:
- Container queries só por nome.
@containeragora pode casar apenas pelocontainer-name, sem exigir umcontainer-type. Antes o tipo era obrigatório. at-rule()dentro de@supports. Permite detectar se o navegador suporta uma at-rule específica.- Palavra-chave
revert-rule. Faz a cascata voltar para a regra anterior que casava, parecido comrevert-layer. As notas destacam que ela combina bem comif(), para descartar uma regra quando uma condição falha. text-decoration-skip-ink: all. Aplica o “skip ink” a todos os glifos, inclusive CJK, que o valorautopula.- avar2. A versão 2 da tabela avar das fontes variáveis deixa um eixo de variação influenciar outro, o que permite “meta sliders” e arquivos de fonte menores.
Um exemplo simples: estilizar cards só por estarem dentro de um container chamado sidebar, sem declarar container-type:
.sidebar {
container-name: sidebar;
}
@container sidebar {
.card {
font-size: 0.875rem;
}
}
Fora do CSS puro, o atributo loading chegou a <video> e <audio>: loading="lazy" adia o carregamento da mídia até o elemento se aproximar da viewport, como já acontecia com <img> e <iframe>. É um ganho de performance quase gratuito em páginas com muita mídia.
Android, WebGPU e autenticação
A Web Serial API chegou ao Android, incluindo dispositivos USB e Bluetooth que emulam porta serial. O SharedWorker foi reativado no Android enquanto o comportamento de ciclo de vida do processo é investigado, e o construtor agora aceita extendedLifetime: true, que mantém o worker vivo depois que todos os clientes descarregam.
No WebGPU, linear_indexing adiciona dois valores built-in para compute shaders. No WebAuthn, o modo Immediate UI do navigator.credentials.get() mostra a interface de login se houver credencial conhecida ou rejeita com NotAllowedError se não houver, o que facilita decidir rapidamente entre passkey e formulário tradicional. E a localização do manifest permite traduzir nome, descrição, ícones e atalhos de web apps de acordo com o idioma do usuário.
Origin trials para acompanhar
A lista de origin trials é longa e dá pistas de para onde a plataforma vai: Container Timing (um atributo containertiming que reporta quando uma seção marcada é pintada pela primeira vez), HTML-in-canvas (desenhar elementos em contextos 2D, WebGL e WebGPU), Connection Allowlists (o servidor envia uma lista de conexões permitidas por cabeçalho HTTP), declarative CSS module scripts para shadow roots declarativos, um elemento HTML para instalar web apps e o OpaqueRange, que representa um trecho vivo de texto dentro de um campo de formulário. Origin trials são experimentos: servem para testar e dar feedback, não para construir produto em cima.
Minha leitura
A Prompt API no estável é o tipo de mudança que parece pequena no changelog e grande na prática. Saída restrita por JSON Schema transforma o modelo local em um componente previsível, e não só em um chatbot embutido. Mas eu trataria como aprimoramento progressivo: detectar, usar quando existir e cair para outra solução quando não existir.
No CSS, revert-rule e as container queries por nome são aquelas melhorias que você só percebe que faziam falta depois de usar. Se eu tivesse que escolher uma coisa para testar esta semana, seria o loading="lazy" em vídeos, porque o ganho é imediato e o risco é praticamente zero.