# Mecanismo de renderização

O mecanismo de renderização (também conhecido como motor de layout, motor de renderização ou mecanismo de navegação) é o principal componente de software de todos os principais navegadores da web. A principal tarefa de um mecanismo de renderização é transformar documentos HTML e outros recursos de uma página da internet em uma representação visual interativa no aparelho do usuário.

## Nome e escopo

O mecanismo de renderização não é um programa de computador independente, mas uma parte importante de um programa maior, como um navegador da internet, do qual o termo é derivado.
Além de "mecanismo de renderização", dois outros termos são de uso comum em relação aos conceitos relacionados: "motor de layout" e "motor de renderização". Em teoria, o layout e a renderização (ou "pintura") poderiam ser manipulados por mecanismos separados. Na prática, no entanto, eles são fortemente acoplados e raramente considerados separadamente.
Além do layout e da renderização, um mecanismo de renderização reforça a política de segurança entre documentos, manipula a navegação por hiperlinks e dados enviados por formulários e implementa a estrutura do Modelo de Objeto de Documentos (DOM) exposta aos scripts da página.
A execução do código JavaScript (JS) é uma questão separada, pois todos os principais navegadores web usam um mecanismo dedicado para isso. A linguagem JS foi criada originalmente para uso em navegadores, mas agora também é usada em outros lugares, portanto, a implementação dos mecanismos JS é dissociada dos mecanismos de renderização. Em um navegador da web, os dois mecanismos trabalham em conjunto por meio da estrutura de dados (DOM) compartilhada.
Os mecanismos de renderização são usados em outros tipos de programas, além dos navegadores da web. Os clientes de e-mail precisam deles para exibir e-mails em HTML. A estrutura de software Electron, que é alimentada pelos dois mecanismos do navegador Google Chrome, foi usada para criar muitos aplicativos.

## Layout e renderização

O layout de uma página da web é normalmente especificado pelo CSS (Cascading Style Sheets). Cada folha de estilo é composta por uma série de regras que o mecanismo de renderização interpreta. Por exemplo, algumas regras especificam detalhes da tipografia, como fonte, cor e tamanho do texto. O mecanismo combina todas as regras CSS relevantes para calcular coordenadas gráficas precisas para a representação visual que será apresentada na tela.
Alguns mecanismos podem começar a renderizar antes que todos os recursos de uma página sejam baixados. Isso pode resultar em alterações visuais à medida que mais dados são recebidos, como imagens sendo gradualmente preenchidas ou um flash de conteúdo não estilizado.

## Mecanismos notáveis

Uso de navegadores na Wikipédia durante fevereiro de 2014 :
| Google Chrome, Opera, e outros variantes (Blink) | Google Chrome, Opera, e outros variantes (Blink) | 43,00% | 43,00% |
| Internet Explorer (Trident) | Internet Explorer (Trident) | 25,80% | 25,80% |
| Firefox e outros variantes (Gecko) | Firefox e outros variantes (Gecko) | 18,22% | 18,22% |
| Safari e outros variantes (WebKit) | Safari e outros variantes (WebKit) | 5,90% | 5,90% |
| Opera (Presto) | Opera (Presto) | 2,31% | 2,31% |
| Outros | Outros | 4.77% | 4.77% |
| Uso de navegadores não móveis no acesso da Wikimedia em fevereiro de 2014. |||||
Como a plataforma da web é um conjunto de padrões abertos, há várias implementações de mecanismos de navegação.
O Gecko é o mecanismo de navegador da Mozilla, usado no navegador Firefox, no cliente de e-mail Thunderbird e no pacote de internet SeaMonkey. Já Goanna é uma bifurcação do Gecko usado no navegador Pale Moon.
A Apple criou o mecanismo WebKit para seu navegador Safari, bifurcando o mecanismo KHTML do projeto KDE.
O Google originalmente usou o WebKit para o navegador Chrome, mas finalmente o bifurcou para criar o mecanismo Blink. Todos os navegadores baseados em Chromium usam o Blink, assim como os aplicativos criados com CEF (Chromium Embedded Framework), Electron ou qualquer outra estrutura que incorpore o Chromium.
Embora a Apple permita navegadores de terceiros como alternativas ao Safari em dispositivos iOS, todos os navegadores distribuídos por meio da App Store devem usar o WebKit como mecanismo. Por exemplo, o Opera Mini para iOS usa o WebKit, enquanto todas as outras variantes do Opera usam o Blink. O Opera costumava usar seu próprio mecanismo, o Presto.
A Microsoft mantinha seu próprio mecanismo, o EdgeHTML proprietário, que é o sucessor de seu mecanismo Trident. No entanto, o EdgeHTML agora é usado apenas para aplicativos da Plataforma Universal do Windows, pois o navegador Microsoft Edge foi refeito com o mecanismo Blink.