recursal/MDN huggingface dataset:
Síncrono
========

**Síncrono** refere-se a comunicação em tempo real onde cada parte recebe ( e se necessário, processa e responde) mensagens instantaneamente (ou o mais próximo possível do instantâneo).

Um exemplo humano é o telefone — durante uma chamada telefônica você costuma responder para outra pessoa imediatamente.

Muitos comandos de programação são também síncronos — por exemplo quando você digita um cálculo, o ambiente irá retornar o resultado para você instantaneamente, a menos que você programe para não fazer.

Saiba mais
----------

### Technical reference

* Assíncrono
* Synchronous and asynchronous requests using the XMLHttpRequest() API
Gecko
=====

**Gecko** é um motor de layout desenvolvido pela Mozilla Project e utilizado em vários apps/dispositivos, incluindo Firefox e Firefox OS (en-US).

Web browsers precisam de um software chamado de motor de layout para interpretar HTML, CSS, JavaScript, e conteúdos embutidos (como imagens) e desenhar tudo para a sua tela. Apesar disso, Gecko garante que APIs associadas funcionem bem em qualquer sistema operacional que o Gecko suporte, e que APIs apropriadas sejam expotas somente aos alvos relevantes. Isso significa que o Gecko inclui, além de outras coisas, uma pilha de conexão de rede, pilha gráfica, motor de layout, uma máquina virtual de JavaScript e portando camadas.

Como todos os aplicativos do Firefox OS são Web apps, o Firefox OS usa o Gecko como seu aplicativo de execução também.

Aprenda mais
------------

### Conhecimento geral

* Gecko no Wikipedia
### Referência técnica

* A documentação do Gecko na MDN
Acessibilidade
==============

*Acessibilidade na Web (Web Accessibility)* (**A11Y**) refere-se às melhores práticas para manter um site útil, apesar das restrições físicas e técnicas. A acessibilidade da Web é formalmente definida e discutida no W3C através de Web Accessibility Initiative (en-US) (WAI).

Leia Mais
---------

### Conhecimento Geral

* Accessibility resources at MDN
* Web accessibility na Wikipedia
### Aprenda sobre acessibilidade na web

* Web Accessibility In Mind
### Referências Técnicas

* The ARIA documentation on MDN
* The Web Accessibility Initiative homepage
* The WAI-ARIA recommendation
TCP
===

TCP (*Transmission Control Protocol*, em português, Protocolo de Controle de Transmissão) é um importante protocolo de rede que permite dois *hosts* se conectem e troquem dados. TCP garante a entrega de dados e pacotes na mesma ordem que foram enviados. Vint Cerf e Bob Kahn, que na época eram cientistas da DARPA (*Defense Advanced Research Projects Agency*, em português, Agência de Pesquisas em Projetos Avançados de Defesa), projetaram TCP na década de 1970.

Saiba Mais
----------

### Conhecimento Geral

* Transmission Control Protocol na Wikipedia
Recursão
========

Um ato de uma função invocando a si mesma. A recursão é usada para resolver problemas que contêm subproblemas menores. Uma função recursiva pode receber dois inputs (entradas): um caso base (termina a recursão) ou um caso recursivo (continua a recursão).

Leia mais
---------

### Conhecimento Geral

* Recursividade (ciência da computação) no Wikipédia
* More details about recursion in JavaScript
Tópico de Alinhamento
=====================

No Alinhamento de Box do CSS (en-US), o **tópico (assunto) de alinhamento** é a coisa (ou coisas) que está sendo alinhada pelas propriedades.

Para o `justify-self` (en-US) e `align-self`, o tópico de alinhamento é o box de margem do box em que a propriedade está definida, usando o modo de escrita desse box.

Para o `justify-content` (en-US) e `align-content`, o modo de escrita do box também é usado. A definição do tópico de alinhamento depende do modo de layout que está sendo usado.

Contêineres de bloco (incluindo células de tabela)

Todo o conteúdo do bloco como uma única unidade.

Contêineres de colunas múltiplas (multicol)

As caixas de colunas, com qualquer espaçamento inserido entre as caixas de colunas adicionado às lacunas de coluna relevantes.

Contêineres flexíveis

 Para `justify-content` (en-US), os items flexíveis em cada linha flexível.
 Para `align-content`, as linhas flexíveis. Perceba que, isso só tem efeito em contêineres flexíveis de múltiplas linhas.


Contêineres grid

As trilhas do grid nos eixos apropriados, com qualquer espaçamento inserido entre trilhas adicionado à gutters relevantes. Gutters colapsados são tratados como uma oportunidade única para inserção no espaço.

Saiba mais
----------

* Alinhamento de Box do CSS (en-US)
Key
===

Uma key é uma parte de informação utilizada por um cipher (en-US) para encryption (en-US) e/ou decryption (en-US).Mensagens criptografadas devem permanecer seguras mesmo se tudo envolvendo o cryptosystem, com exceção da key, for de caráter público.

Em symmetric-key cryptography (en-US), a mesma chave é utilizada para criptografar e descriptografar. Em public-key cryptography (en-US), existem keys relacionadas conhecidas como keys públicas e keys privadas. A key pública é disponibilizada gratuitamente, enquanto, a key privada é mantida "em segredo". A key pública é capaz de criptografar mensagens as quais apenas a key privada correspondente é capaz de descriptografar, e vice-versa.

Aprenda mais
------------

* Kerckhoffs's principle na Wikipedia
### Dicionário

"Key": "Chave"
Localização
===========

Localização (L10n) é o processo de tradução de interfaces de software a partir de uma língua para outra e adaptá-lo para atender a uma cultura estrangeira. Esses recursos são para qualquer pessoa com interesse nos aspectos técnicos envolvidos na localização. Eles são para os desenvolvedores e todos os colaboradores.

Documentação
------------

Localização Guia Rápido

First read for volunteers wanting to start localizing.

XUL Tutorial:Localization

XUL Tutorial section on localizing XUL applications.

Writing localizable code

Best practices and guidelines for programmers to play nicely with localization.

Localizing Help files

How to separate content from HTML to make these files more easy to localize.

Custom dialog size

How to adjust window sizes to fit specific localizations.

Localizing extension descriptions

To localize the description of an extension (the string that shows up under extension's name in the Extensions window), you need to use a special preference key to override the description specified in your install.rdf file. This article contains instructions on how to modify this preference key.

Frequently Asked Localization Questions

Frequently asked questions about localization.

Related Topics
--------------

* Extensions,
* XUL
Doctype
=======

No HTML, o doctype é a introdução "`<!DOCTYPE html>`" encontrada no topo de todos os documentos. Seu único propósito é evitar que o browser mude para os chamados "quirks mode" quando renderizar um documento; isto é, o "`<!DOCTYPE html>`" doctype garante que o browser faça um esforço na tentativa de seguir as especificações relevantes, em vez de usar um modo de renderização diferente e que seja incompatível com algumas especificações.

Saiba mais
----------

### Conhecimento Geral

* Definição do DOCTYPE nas especificações do HTML
* Quirks Mode and Standards Mode
### Referência técnica

* Document.doctype, um método JavaScript que retorna o doctype
Cabeçalho de Requisição
=======================

Um **cabeçalho de requisição** é um cabeçalho HTTP (en-US) que pode ser utilizado em uma requisição HTTP, e não é relacionado ao conteúdo da mensagem. Cabeçalhos de requisição, como `Accept`, `Accept-*`, ou ainda `If-*` permitem realizar requisições condicionais; outros como `Cookie`, `User-Agent` ou `Referer` deixa o contexto mais preciso para que o servidor possa adaptar melhor a resposta.

Nem todos os cabeçalhos exibidos em uma requisição são *cabeçalhos de requisição.* Por exemplo, o `Content-Length` exibido em uma requisição `POST` é na realidade uma entity header, que referencia o tamanho do corpo da mensagem de requisição. Porém, esses *cabeçalhos de entidade* muitas vezes são chamados de *cabeçalhos de requisição*.

Adicionalmente, o sistema CORS define um subconjunto de cabeçalhos de requisição como simple headers (en-US), cabeçalhos de requisição que sempre são considerados como autorizados e não são explicitamente listados em respostas de requisições preflight.

Um certo número de cabeçalhos de requisição após uma requisição `GET`:
```

GET /home.html HTTP/1.1
Host: developer.mozilla.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://developer.mozilla.org/testpage.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1
If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT
If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"
Cache-Control: max-age=0
```


Estritamente, o cabeçalho `Content-Length` neste exemplo não é um cabeçalho de requisição como os outros, mas sim uma entity header:
```

POST /myform.html HTTP/1.1
Host: developer.mozilla.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Content-Length: 128
```

Learn more
----------

### Technical knowledge

* List of all HTTP headers
Argumento
=========

Um **argumento** é um valor (primitivo ou um objeto) passado como um input (entrada) para uma função.

Leia mais
---------

### Conhecimento Geral

* Diferenças de Parâmetro e Argumento no Wikipédia
### Referencia Técnica

* Os `arguments` de objeto no JavaScript
Valor
=====

No contexto de dados ou um objeto wrapper em torno desses dados, o valor é um valor primitivo que contém o wrapper do objeto. No contexto de uma variável ou propriedade, o valor pode ser primitivo ou refêrencia de um objeto (en-US).

Aprender mais
-------------

### Conhecimento geral

* Primitive wrapper class on Wikipedia
HTML
====

HTML (HyperText Markup Language) é uma linguagem descritiva que especifica a estrutura de uma página web.

Breve história
--------------

Em 1990, Tim Berners-Lee definiu o conceito de hipertexto como parte de sua visão da Web (en-US) , a qual Berners-Lee formalizou no ano seguinte através de uma marcação baseada em SGML. O IETF (en-US) começou a especificar formalmente o HTML em 1993, e depois de vários rascunhos, lançou a versão 2.0 em 1995. Em 1994 Berners-Lee fundou a W3C para desenvolver a Web. Em 1996, a W3C assumiu o HTML e publicou a recomendação HTML 3.2 um ano depois. A recomendação HTML 4.0 foi lançada em 1999 e se tornou um padrão ISO em 2000.

Nesse momento, a W3C quase abandonou o HTML em favor do XHTML, levando a fundação de um grupo independente chamado de WHATWG em 2004. Graças ao WHATWG, o trabalho em HTML5 (en-US) continuou: as duas organizações lançaram o primeiro rascunho em 2008 e o padrão final em 2014.

Conceito e sintaxe
------------------

Um documento HTML é um documento de texto simples estruturado com elementos. Elementos são acompanhados de abertura e fechamento de tags. Cada tag começa e termina com colchetes angulares (<>). Existem algumas tags vazias ou sem conteúdo que não podem incluir qualquer texto, como por exemplo a tag `<img>`.

Você pode estender tags HTML com atributos, os quais fornecem informações adicionais que afetam como o navegador interpreta o elemento:

![Detalhes da estrutura de um elemento HTML](/pt-BR/docs/Glossary/HTML/mdn_anatomia_de_um_elemento_html.png)

Um arquivo HTML normalmente é salvo com uma extensão .htm ou .html, é disponibilizado por um servidor web, e pode ser renderizado por qualquer navegador.

Leia mais
---------

### Conhecimento Geral

* HTML na Wikipedia
### Aprendendo HTML

* Nosso tutorial de HTML
* O curso web no codeacademy.com
### Referência Técnica

* A documentação HTML no MDN
* A especificação HTML (W3C)
Requisição Preflight
====================

Uma requisição *preflight* de CORS é uma requisição de CORS que verifica se o protocolo CORS é entendido e se o servidor aguarda o método e cabeçalhos('headers') especificados.

É uma requisição `OPTIONS`, que usa três cabeçalhos de solicitação HTTP: `Access-Control-Request-Method`, `Access-Control-Request-Headers`, e o cabeçalho `Origin`.

Uma requisição *preflight* é emitida automaticamente por um navegador, quando necessário. Geralmente, os desenvolvedores front-end não precisam criar essas solicitações. Ela acontece quando a requisição é qualificada "para ser preflighted" e omitida para requisições simples.

Por exemplo, o cliente pode perguntar ao servidor se este permitiria uma requisição `DELETE`, antes de enviá-la, usando uma requisição *preflight*:
```

OPTIONS /resource/foo
Access-Control-Request-Method: DELETE
Access-Control-Request-Headers: origin, x-requested-with
Origin: https://foo.bar.org
```


Se o servidor permitir, ele responderá à requisição *preflight*: com um cabeçalho de resposta `Access-Control-Allow-Methods`, que lista DELETE:
```

HTTP/1.1 204 No Content
Connection: keep-alive
Access-Control-Allow-Origin: https://foo.bar.org
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
```


A resposta da requisição *preflight* pode ser opcionalmente cacheada para requisições realizadas na mesma url usando o cabeçalho Access-Control-Max-Age como no exemplo acima.

Veja também
-----------

* CORS
* `OPTIONS`
Caractere
=========

Um *caractere* é um símbolo (letras, números, pontuação) ou de controle não imprimível (por exemplo, carriage return ou hífen). UTF-8 é o conjunto de caracteres mais comum e inclui os grafemas dos idiomas humanos mais populares.

Saiba Mais
----------

### Conhecimento Geral

* Caractere no Wikipedia
* Codificação de caracteres no Wikipedia
* ASCII on Wikipedia
* UTF-8 on Wikipedia
* Unicode on Wikipedia
Modelo de Objeto CSS (CSSOM)
============================

O **Modelo de Objeto CSS (CSSOM)** é um mapeamento de todos os seletores CSS e propriedades relevantes para cada seletor no formato de árvore, com um nó raiz, irmão, descendente, filho e outro relacionamento. O CSSOM é muito similar ao Modelo de Objeto de Documento (DOM). Ambos são parte do caminho de renderização crítica, o qual é uma série de etapas que devem acontecer para renderizar o site corretamente.

O CSSOM, junto ao DOM, para construir a árvore de renderização, que por sua vez é usada pelo navegador para apresentar e estilizar a página.

### CSSOM API

O Modelo de Objeto CSS é também um conjunto de APIs que permitem manipulação de CSS a partir do JavaScript. É semelhante ao DOM, mas para o CSS invés de HTML. Permite os seus usuários lerem e modificar o CSS dinamicamente.

Saiba mais
----------

* Preenchendo a página: como os navegadores funcionam (en-US)
Programação de Computadores
===========================

Programação é o processo que formula a solução de um problema computacional ou automatiza uma tarefa repetitiva na forma de uma série de instruções sequenciais em um programa executável.

Saiba mais
----------

### Conhecimentos gerais

* Programação de computadores na Wikipédia
Prefixos vendor
===============

Os *fabricantes de browsers*, por vezes, adicionam prefixos às propriedades experimentais ou fora dos padrões CSS, de modo que os desenvolvedores podem experimentá-las, enquanto —em teoria— as mudanças no comportamento dos navegadores não quebrarão o código durante o processo de padonização. Os desenvolvedores devem esperar para incluir a propriedade *não pré-fixada* até que o comportamento do navegador seja padronizado.

**Nota:** Os *fabricantes de browsers* estão trabalhando para parar de usar prefixos de fornecedores para recursos experimentais. Os desenvolvedores da Web têm vindo a usá-los em sites de produção, apesar de sua natureza experimental. Isso tornou mais difícil para os fornecedores de navegadores garantir a compatibilidade e trabalhar com novos recursos; também foi prejudicial aos navegadores menores que acabam forçados a adicionar prefixos de outros navegadores para carregar sites populares.

Ultimamente, a tendência é adicionar recursos experimentais por trás das bandeiras controladas pelo usuário e trabalhar com especificações menores que alcancem a estabilidade muito mais rápido.

Normalmente, os vendors usam esses prefixos:

* `-webkit- (`Chrome, Safari, versões mais recentes do Opera.)
* `-moz-` (Firefox)
* `-o-` (Versões antigas do Opera)
* `-ms-` (Internet Explorer)

Os vendedores também usam prefixos em APIs. Em interfaces, eles normalmente usam:

* `Webkit (`Chrome, Safari, versões mais recentes do Opera.)
* `Moz` (Firefox)
* `O` (Versões antigas do Opera)
* `MS` (Internet Explorer)

Em propriedades e métodos, eles normalmente usam:

* `webkit (`Chrome, Safari, versões mais recentes do Opera.)
* `moz` (Firefox)
* `o` (Versões antigas do Opera)
* `ms` (Internet Explorer)
Aprender mais
-------------

### Conhecimento geral

* Vendor prefix no Wikipedia
Grid Areas
==========

Um **grid area** é um ou mais grid cells (en-US) que compõem uma área retangular do grid. As Grid Areas quando se coloca um item usando line-based placement (en-US) (posicionamento baseado em colunas e linha)ou quando define áreas usando named grid areas (en-US)(substituindo o nome).

![Image showing a highlighted grid area](/pt-BR/docs/Glossary/Grid_Areas/1_grid_area.png)

Áreas do Grid devem ser de natureza regutangular; não é possível criar por exemplo uma área de grid em forma de T ou L .

No exemplo abaixo temos um grid contêiner com dois items de grid, nomeamos esses com a propriedade `grid-area` (en-US) e em seguida colocamos eles no grid usando `grid-template-areas` (en-US). Isso cria duas áreas de grid, uma cobrindo 4 áreas do grid e a outra duas áreas do grid.
```

\* {
  box-sizing: border-box;
}

.wrapper {
  border: 2px solid #f76707;
  border-radius: 5px;
  background-color: #fff4e6;
}

.wrapper > div {
  border: 2px solid #ffa94d;
  border-radius: 5px;
  background-color: #ffd8a8;
  padding: 1em;
  color: #d9480f;
}
```



```css
.wrapper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 100px 100px;
  grid-template-areas:
    "a a b"
    "a a b";
}
.item1 {
  grid-area: a;
}
.item2 {
  grid-area: b;
}
```



```html
<div class="wrapper">
  <div class="item1">Item</div>
  <div class="item2">Item</div>
</div>
```

Saiba Mais
----------

### Property reference

* `grid-template-columns`
* `grid-template-rows`
* `grid-auto-rows` (en-US)
* `grid-auto-columns` (en-US)
* `grid-template-areas` (en-US)
* `grid-area` (en-US)
### Further reading

* CSS Grid Layout Guide: *Basic concepts of grid layout*
* CSS Grid Layout Guide: *Grid template areas (en-US)*
* Definition of Grid Areas in the CSS Grid Layout specification
CSS
===

**CSS** (Cascading Style Sheets) é uma linguagem declarativa que controla a apresentação visual de páginas web em um navegador. O navegador aplica as declarações de estilo CSS aos elementos selecionados para exibi-los apropriadamente. Uma declaração de estilo contem as propriedades e seus valores, que determinam a aparência de uma página web.

CSS é uma das três principais tecnologias Web, junto com HTML e JavaScript. CSS normalmente estiliza Elementos HTML, mas também pode ser usada com outras linguagens de marcação como SVG ou XML.

Uma regra CSS é um conjunto de propriedades (en-US) associados a um seletor. Aqui está um exemplo que faz com que todos os parágrafos HTML fiquem amarelos num fundo preto:


```css
/\* O seletor "p" indica que todos os paragrafos no documento serão afetados por essa regra \*/
p {
  /\* A propriedade "color" define a cor do texto, neste caso amarelo. \*/
  color: yellow;

  /\* A propriedade "background-color" define a cor ao fundo, neste caso preto. \*/
  background-color: black;
}
```


"Cascading" ("em cascata") se refere às regras que decidem como seletores são priorizados ao mudar a aparência de uma página. Isso é uma característica muito importante, já que um website complexo pode ter milhares de regras CSS.

Aprenda mais
------------

### Conhecimento geral

* Aprenda CSS
* Cascading Style Sheets na Wikipedia
### Referências técnicas

* A documentação sobre CSS na MDN
* O trabalho atual do CSS Working Group (Em inglês)
### Aprenda CSS

* Curso de web no Codecademy.com (Em inglês)
* ~~Three Types of CSS~~ (Em inglês)
Number
======

No JavaScript, **Number** é um tipo de dado numérico no double-precision 64-bit floating point format (IEEE 754). Em outras linguagens de programação diferentes tipos numéricos podem existir, por exemplo: Integers (Inteiros), Floats (Pontos Flutuantes), Doubles (Dobros), ou Bignums.

Leia mais
---------

### Conhecimento Geral

* Inteiro\_(ciência\_da\_computação) no Wikipédia
* Bignum no Wikipédia
* Ponto\_flutuante no Wikipédia
### Technical reference

* The JavaScript data structure: Number
* The JavaScript global object `Number`
IPv6
====

**IPv6** é a versão mais atual do protocolo de comunicação subjacente da Internet. Lentamente o IPv6 está substituindo o IPv4, dentre outras razões porque o IPv6 permite vários endereços IPs diferentes.

Saiba mais
----------

### Conhecimento geral

* IPv6 na Wikipedia
Domínio
=======

Um domínio é uma autoridade na internet que controla seus próprios recursos. Seu "nome de domínio" é uma forma de endereçar essa autoridade como parte da hierarquia de uma URL — normalmente a parte mais memorável dela, por exemplo por ser uma marca.

Um nome de domínio totalmente qualificado (FQDN — sigla em inglês) contém todas as partes necessárias para pesquisar essa autoridade pelo seu nome, sem ambiguidade, usando o sistema DNS (en-US) da internet.

Por exemplo, em "developer.mozilla.org":

1. "org" é chamado de domínio de alto nível. Eles são registrados como um padrão da internet pela IANA - autoridade de atribuição de números da internet. Aqui "org" significa "organização" que está definido num *registro de domínio* de alto nível.
2. "mozilla" é o domínio. Se você quiser ter um domínio, você precisa registrá-lo com algum dos muitos registrars - registradores que são quem tem permissão para fazer isso num registro de domínio de alto nível.
3. "developer" é um "sub-domínio", algo que você como dono de um domínio pode definir sozinho. Muitos donos de domínio escolhem ter um subdomínio "www" apontando para o recurso World\_Wide\_Web (en-US), mas isso não é obrigatório (e tem caído em desuso).
Saiba mais
----------

* Nome de domínio na Wikipedia
caret
=====

Um **caret** (às vezes chamado de "cursor de texto") é um indicador exibido na tela para indicar onde a entrada de texto será inserida. A maioria das interfaces de usuário representam o caret usando uma linha vertical fina ou uma caixa do tamanho de um caractere que pisca, mas isso pode variar. Este ponto do texto é chamado de **ponto de inserção.** A palavra "*careta*" diferencia o ponto de inserção de texto do cursor do mouse.

Na web, um caret é usado para representar o ponto de inserção em `<input>` e `<textarea>` elementos, bem como quaisquer elementos cujo atributo `contenteditable` está definido, permitindo assim que o conteúdo do elemento seja editado pelo usuário.

Saiba Mais
----------

### Conhecimento geral

* Caret navigation no Wikipedia
### CSS relacionado com o caret

Você pode definir a cor do caret para o conteúdo editável de um determinado elemento definindo a propriedade CSS `caret-color` (en-US) para o valor apropriado `<color>`

### Elementos HTML que podem apresentar um caret

Esses elementos fornecem campos de entrada de texto ou caixas e, portanto, fazem uso do caret.

* `<input type="text">` (en-US)
* `<input type="password">`
* `<input type="search">` (en-US)
* `<input type="date">`, `<input type="time">`, `<input type="datetime">` (en-US) e `<input type="datetime-local">` (en-US)
* `<input type="number">` (en-US), `<input type="range">`
* `<input type="email">` (en-US), `<input type="tel">` (en-US) e `<input type="url">` (en-US)
* `<textarea>`
* Qualquer elemento com seu conjunto de atributo `contenteditable`.
Bandwidth
=========

Largura de banda é a medida de quanta informação pode trafegar através de uma conexão de dados, em um determinado espaço de tempo. É geralmente medida em multiplos de bits por segundo (bps), por exemplo megabits por segundo (Mbps) ou gigabits por segundo (Gbps).

Learn more
----------

* Bandwidth on Wikipedia