# Cor e paletas

Escolha cores, crie e edite a paleta do sprite, use paletas da sua biblioteca e trabalhe com cor indexada.

_Os atalhos estão escritos para Windows e Linux. No Mac, use ⌘ Cmd onde está Ctrl e ⌥ Option no lugar de Alt._

Você pinta com duas cores por vez, o **primeiro plano** e o **fundo**, e guarda as cores que
um sprite usa na **paleta** dele. As paletas de que você gosta podem ser salvas na sua biblioteca e usadas em qualquer
sprite.

## Primeiro plano e fundo

O botão esquerdo do mouse pinta com a cor de primeiro plano e o botão direito com a cor de
fundo. Elas começam como preto e branco.

- **Clique** em uma amostra da paleta para torná-la a cor de primeiro plano; **clique com o botão direito** para
  o fundo. Pelo teclado, `Enter` escolhe o primeiro plano e `Shift+Enter` o
  fundo. Em uma tela sensível ao toque, toque na amostra e depois no botão de **fundo** da paleta (abaixo).
- Pressione `X` para trocar as duas.
- Segure `Alt` sobre a tela, ou use a Conta-gotas, para pegar uma cor do sprite.
- O painel **Cores** mostra as duas. Clique em uma para escolher qual delas o seletor de cor edita; o
  título do seletor diz **Editando primeiro plano** ou **Editando fundo**. Uma cor que corresponde a uma entrada
  da paleta mostra o índice dela (`Idx-3`); caso contrário aparece como **Personalizada**.
- **Arraste** uma cor de primeiro plano ou de fundo no painel Cores para ajustá-la sem abrir o
  seletor: para a direita muda o matiz, para cima clareia e para baixo escurece. Segure `Shift` para mudar a
  saturação em vez do matiz.
- **Recentes** guarda as últimas dez cores de primeiro plano que você escolheu. Clique em uma para usá-la de novo.

As escolhas seguem o modo de cor do sprite: em um sprite em tons de cinza, uma cor vira o cinza correspondente, e em um
sprite indexado ela se ajusta à cor mais próxima da paleta.

## O seletor de cor

O painel **Seletor de cor** escolhe qualquer cor. Suas abas mostram diferentes maneiras de escolher:

| Aba | Mostra |
| - | - |
| **Tons** | um quadrado de saturação e brilho, com um controle deslizante de matiz |
| **Espectro** | matiz na horizontal, luminosidade na vertical, com um controle deslizante de saturação |
| **Roda** | uma roda de matiz e saturação, com um controle deslizante de brilho |
| **Controles deslizantes** | controles deslizantes de canal e campos numéricos, em RGB, HSV, HSL ou OKLCH |
| **Normal map** | cores para normal maps (ative nas configurações) |

- **Opacidade** define a transparência da cor.
- O campo de texto aceita qualquer cor que você digitar ou colar (`#ff8800`, `rgb(...)`, `oklch(...)`); o
  botão ao lado alterna entre HEX, RGB, HSL e OKLCH.
- O botão de conta-gotas pega uma cor de qualquer lugar da sua tela, nos navegadores que permitem.
- As **configurações** (a engrenagem) escolhem quais abas aparecem, o espaço de cor (HSV, uma roda RYB de pintor,
  ou OKLCH, em que passos iguais parecem igualmente claros), uma **harmonia** (complementar, tríade e mais)
  mostrada como amostras de cor, e se o seletor se ajusta a passos.

Em um sprite em tons de cinza, o seletor é um único controle deslizante de brilho.

## A paleta

O painel **Paleta** guarda as cores do sprite.

| Botão | O que faz |
| - | - |
| **+** | Adiciona a cor de primeiro plano (se ela ainda não estiver lá). |
| **Trocar** | Troca as cores de primeiro plano e de fundo. |
| **Ordenar** | Ordena a paleta, ou o intervalo selecionado, por matiz, saturação, brilho, luminância, um canal ou alfa, em ordem crescente ou decrescente, na mesma ordem do Aseprite. As cores totalmente transparentes vêm sempre primeiro, e ordenar por matiz coloca os cinzas primeiro (do escuro ao claro) em ordem crescente e por último em ordem decrescente. |
| **Criar rampa** | Com um intervalo selecionado: preenche as cores entre as duas pontas com um degradê uniforme, ou insere novas cores intermediárias. |
| **Rampa de sombreamento** | Com um intervalo selecionado: faz dele a lista de Sombras da tinta de Sombreamento. Com a ferramenta Gradiente, faz do intervalo as Paradas do gradiente. |
| **Trava de paleta** (o cadeado, sprites RGBA) | Ativa ou desativa a [Trava de paleta](https://pxstud.io/pt-br/docs/manual/guides/color.md#palette-lock). |
| **Ferramentas de paleta** (**...**) | [Auditoria de paleta](https://pxstud.io/pt-br/docs/manual/guides/color.md#palette-audit), [Limpar paleta](https://pxstud.io/pt-br/docs/manual/guides/color.md#cleaning-up-the-palette), Trava de paleta e os [grupos da paleta](https://pxstud.io/pt-br/docs/manual/guides/color.md#palette-groups). |
| **Biblioteca** | Abre a Biblioteca de paletas. |

Abaixo deles, a amostra selecionada pode ser **editada**, tornada a cor de **fundo**, **substituída**
pela cor de primeiro plano ou **removida**.

Trabalhando com amostras:

- **Shift+clique** (ou `Shift` e as setas) seleciona um intervalo.
- **Arraste** uma amostra, ou pressione `Alt` e uma seta, para reordenar.
- **Clique duplo** ou pressione `F2` para editar uma cor.
- `Del` remove a cor selecionada.

As alterações na paleta fazem parte do sprite, então podem ser desfeitas.

As mesmas ferramentas de paleta estão em Sprite > Paleta > Auditoria de paleta..., Sprite > Paleta > Limpar paleta... e
Sprite > Paleta > Trava de paleta.

### Grupos da paleta

Um grupo dá nome a uma sequência de entradas da paleta, como "Pele" ou "Folhagem". O nome aparece como
uma etiqueta acima das amostras.

- Para criar um, selecione uma amostra ou use **Shift+clique** em um intervalo, depois escolha **Novo grupo a partir do
  intervalo...** no menu **...** e dê um nome. Um novo grupo corta qualquer grupo com que se sobreponha.
- **Clique** em uma etiqueta para selecionar as cores do grupo como um intervalo, pronto para ordenar, criar uma rampa ou
  usar como Sombras.
- Dê um **clique duplo** em uma etiqueta (ou escolha **Editar grupo...** com uma das amostras dele selecionada) para
  renomeá-lo ou removê-lo. **Remover todos os grupos** limpa todos.

Os grupos nomeiam posições da paleta, não cores: mover, ordenar ou remover cores não move um
grupo. Os grupos são salvos com o sprite e valem para toda paleta quando a paleta muda
ao longo do tempo.

### Auditoria de paleta

Sprite > Paleta > Auditoria de paleta... lista toda cor que a arte usa e que não está na paleta, as mais usadas
primeiro, com a contagem de pixels e a cor da paleta mais próxima. Para cada uma você pode:

- **Adicionar** à paleta.
- **Remapear**: os pixels dela passam a ter a cor da paleta à direita. É a cor mais próxima,
  a menos que você escolha outra na lista.

**Adicionar todas à paleta** e **Remapear todas** fazem isso com todas as cores de uma vez. A lista é atualizada conforme você avança, e
avisa quando todas as cores estão na paleta. Remapear altera os cels de todas as camadas que você pode editar
(camadas bloqueadas e ocultas são ignoradas) nos quadros que compartilham a paleta do quadro ativo. É
um único passo de desfazer.

A auditoria é para sprites RGBA; um sprite indexado só usa cores da paleta.

### Limpar a paleta

Sprite > Paleta > Limpar paleta... organiza a paleta em vigor no quadro ativo:

- **Mesclar cores duplicadas** mantém a primeira de cada conjunto de cores idênticas.
- **Mesclar cores semelhantes** também mescla cores a uma **Distância** menor que a de uma cor anterior (cerca de 2
  mal se nota, 10 é claramente diferente).
- **Remover cores não usadas** remove as cores que nenhum pixel usa.

A caixa de diálogo mostra a paleta que vai restar antes de você aplicar. Em um sprite indexado, os pixels
acompanham suas cores para as novas posições, os pixels de uma cor semelhante mesclada ficam com a cor que
foi mantida, e a entrada transparente nunca é removida. Em sprites RGBA e em tons de cinza, só as
amostras mudam.

### Trava de paleta

Com a **Trava de paleta** ativada (o cadeado no painel Paleta, ou Sprite > Paleta > Trava de paleta), um sprite
RGBA se comporta como um indexado enquanto você desenha: todo pixel que uma ferramenta pinta se ajusta à
cor mais próxima da paleta, inclusive as bordas suaves do pincel, tintas mescladas e degradês. As cores de primeiro plano
e de fundo também se ajustam à paleta. Os pixels sobre os quais você não pinta mantêm suas cores; use
a [Auditoria de paleta](https://pxstud.io/pt-br/docs/manual/guides/color.md#palette-audit) para trazer a arte existente para a paleta.

A Trava de paleta é salva com o sprite. Colar, mover e transformar pixels, e os
ajustes do menu Filtro, não são ajustados.

## A Biblioteca de paletas

O botão **Biblioteca** abre a Biblioteca de paletas, com duas abas.

**Integradas** lista as paletas que vêm com o editor: consoles e computadores clássicos, e
paletas populares do Lospec, cada uma com o crédito ao autor. Funcionam offline e sem conta. Pesquise
por nome ou tag, e então:

- **Usar** substitui a paleta do sprite por ela; **Anexar** adiciona as cores dela.
- O botão de salvar salva uma cópia em Minhas paletas, mantendo o crédito.
- **Encontre mais no Lospec** abre a [lista de paletas do Lospec](https://lospec.com/palette-list); importe
  uma em Minhas paletas.

**Minhas paletas** guarda as paletas que você salvou. São só suas; com o Sync, também ficam guardadas na sua
conta.

- **Salvar em Minhas paletas** salva a paleta atual do sprite com um nome.
- **Carregar** substitui a paleta do sprite por uma salva; **Anexar** adiciona só as cores que ela
  ainda não tem.
- **Importar...** lê `.gpl` (GIMP), `.pal` (JASC), `.hex`, `.txt` (Paint.NET), `.act`,
  `.aco` e `.ase` (Adobe Photoshop e Swatch Exchange; amostras CMYK e Lab são convertidas
  sem perfil de cor), arquivos do Aseprite e imagens (todas as cores distintas, em ordem de leitura).
- **Importar do Lospec** aceita o nome ou o endereço de uma paleta em lospec.com, por exemplo
  `endesga-32`. **Encontre mais no Lospec**, ao lado, abre a lista de paletas do Lospec.
- **Exportar** salva a paleta como `.gpl`, `.pal`, `.hex`, `.act`, `.aco`, `.ase` ou uma faixa `.png`
  com um pixel por cor. `.hex`, `.png`, `.gpl` e `.pal` mantêm a transparência (`.gpl` e `.pal` do jeito que o
  Aseprite grava); `.act` mantém só uma cor transparente, e `.aco` e `.ase` não mantêm nenhuma.

Carregar uma paleta da biblioteca copia as cores dela para o sprite: alterar a paleta da biblioteca depois
não muda os sprites que já a usam. Em um sprite indexado, carregar substitui as cores posição
por posição e cada pixel mantém o número da sua entrada, então a arte mostra as novas cores (uma troca de paleta).
Se a paleta carregada for menor que as entradas que os pixels usam, essas entradas mantêm as cores
antigas.

## Modos de cor

O modo de cor de um sprite decide como seus pixels guardam a cor. Escolha-o ao criar o sprite, ou
converta depois com Sprite > Converter para cor RGB, Sprite > Converter para tons de cinza ou
Sprite > Converter para cor indexada... (também em Arquivo > Renomear sprite...).

- **RGBA** guarda uma cor completa, com transparência, em cada pixel. A paleta é um conjunto de
  amostras para escolher.
- **Tons de cinza** guarda um tom de cinza e sua transparência.
- **Indexado** guarda, em cada pixel, o número de uma entrada da paleta (até 256). Mude uma entrada
  e todo pixel que a usa muda de cor; reordene ou ordene a paleta e os pixels acompanham
  suas cores; remova uma entrada e seus pixels ficam transparentes.

Sprite > Converter para cor indexada... abre uma caixa de diálogo com uma prévia ao vivo do cel ativo:

- **Paleta:** **Manter a paleta atual** (configure-a antes; se a entrada transparente dela, a
  primeira por padrão, for uma cor visível, a primeira cor totalmente transparente da paleta vira
  a entrada transparente, ou, se não houver nenhuma, uma entrada transparente é inserida antes dela para que
  aquela cor continue; só as primeiras 256 cores são mantidas), ou **Gerar a partir do sprite**
  com até **Cores** (de 2 a 256) escolhidas dos pixels do próprio sprite. Uma paleta gerada
  substitui a atual, inclusive as paletas que mudam ao longo do tempo; a primeira entrada dela é
  transparente, a menos que o Plano de fundo seja a única camada.
- **Dithering:** **Nenhum** ajusta cada pixel à cor mais próxima da paleta. Os padrões ordenados
  (**Bayer 2x2**, **4x4**, **8x8**) misturam as duas cores mais próximas em uma grade regular que fica parada
  de um quadro para o outro, o que combina com animação. **Floyd-Steinberg** e **Atkinson** espalham o erro de cada
  pixel para os vizinhos, para um visual mais suave e granulado; o Atkinson mantém realces e
  sombras mais limpos. A difusão de erro pode tremeluzir na animação, porque uma pequena mudança move o
  grão.
- **Quantidade** (0 a 100): a intensidade do dithering.

Pixels quase totalmente transparentes (alfa abaixo de 8 em 255) ficam transparentes, e um pixel
visível nunca cai em uma cor da paleta totalmente transparente. Converter para tons de cinza descarta a
cor: cada pixel mantém seu brilho como o Aseprite o mede (os pesos Rec. 709, então vermelho puro
vira 54, verde 182 e azul 18 em 255). Também substitui a paleta por 256 cinzas, do preto
ao branco, e descarta as paletas que mudam ao longo do tempo e os grupos da paleta, então converter depois para
indexado leva cinzas a cinzas. As duas conversões podem ser desfeitas; converter de indexado para RGBA não perde nada.

Em um sprite indexado, uma entrada da paleta representa o **transparente**: a primeira, a menos que você mude
**Cor transparente** em Arquivo > Renomear sprite.... Ela acompanha sua entrada quando você adiciona, remove,
reordena ou ordena cores. Se você remover a própria entrada transparente, seus pixels continuam transparentes:
outra cor totalmente transparente assume, ou, se não houver, a posição logo depois da última cor.

## Profundidade de cor

Sprite > Profundidade de cor... fixa o sprite em um perfil de cor de hardware, do jeito que um Mega Drive
só conseguia mostrar 8 níveis de vermelho, verde e azul. Escolha uma predefinição (profundidades
genéricas como RGB565, consoles por fabricante, computadores domésticos) ou **Personalizada** para
o seu próprio número de **bits** ou **níveis** por canal, em cores ou em escala de cinza. A caixa
de diálogo mostra uma prévia em faixas do que o perfil permite, quantas cores são e, com 16 níveis
ou menos, os valores exatos.

Aplicar ajusta ao perfil cada pixel de cada camada e quadro, os tiles, a paleta (e as paletas que
mudam ao longo do tempo) e as cores de primeiro plano e de fundo, em uma única etapa de desfazer.
Em um sprite indexado só a paleta muda: os pixels mantêm suas entradas. Um perfil em escala de
cinza transforma cada cor em um cinza; um sprite em escala de cinza só aceita perfis de cinza.

Depois disso o sprite fica no perfil: tudo o que você desenhar, preencher, colar, transformar,
ajustar, importar ou rodar por um script cai em uma cor permitida, e o mesmo vale para as edições
da paleta, o seletor de cor (os controles deslizantes mostram os passos como faixas), o conta-gotas
e Substituir cor. Os efeitos de camada e as camadas de ajuste também só mostram cores permitidas,
então aplicá-los de forma definitiva não muda nada na tela. O perfil ativo aparece acima do
seletor de cor e em Arquivo > Renomear sprite....

**Nenhuma (8 bits)** remove o perfil. As cores ficam como estão: a precisão perdida não volta (use
Desfazer para isso). As camadas de referência não são alteradas, e misturar pixels translúcidos ou
camadas com opacidade e modos de mesclagem ainda pode dar na tela cores entre os passos, como em um
sprite indexado.

Escolher um console na aba **Consoles** de Arquivo > Novo sprite... oferece a profundidade de cor dele e,
nos sistemas com paleta fixa como o NES ou o PICO-8, a paleta dele. O perfil é salvo nos arquivos
`.pxstudio`; uma exportação para o Aseprite grava os pixels como estão, e ao abri-la aqui o sprite
volta a ficar fixado. Os níveis de um canal de n bits são distribuídos por igual de 0 a 255
(3 bits: 0, 36, 73, 109, 146, 182, 219, 255). Parte do hardware não é totalmente linear; as
observações dizem onde o perfil faz uma aproximação.

| Perfil | Grupo | Profundidade de cor | Cores | Observações |
| - | - | - | - | - |
| **RGB565** | Genéricos | 5-6-5 bits | 65536 | Cor de 16 bits (high color): 5 bits de vermelho e azul, 6 de verde. |
| **RGB444** | Genéricos | 4-4-4 bits | 4096 | Cor de 12 bits, 4 bits por canal (a do Amiga). |
| **RGB332** | Genéricos | 3-3-2 bits | 256 | Cor de 8 bits: 3 bits de vermelho e verde, 2 de azul. |
| **Escala de cinza de 8 bits** | Genéricos | cinza de 8 bits | 256 | 256 cinzas. |
| **Escala de cinza de 4 bits** | Genéricos | cinza de 4 bits | 16 | 16 cinzas. |
| **Escala de cinza de 2 bits** | Genéricos | cinza de 2 bits | 4 | 4 cinzas. |
| **Escala de cinza de 1 bits** | Genéricos | cinza de 1 bits | 2 | Preto e branco. |
| **Game Boy** | Nintendo | cinza de 2 bits | 4 | 4 tons de verde LCD: escala de cinza de 2 bits ou a paleta verde. |
| **Game Boy Color** | Nintendo | 5-5-5 bits | 32768 | Cor de 15 bits, 5 bits por canal. |
| **Game Boy Advance** | Nintendo | 5-5-5 bits | 32768 | Cor de 15 bits, 5 bits por canal. |
| **NES** | Nintendo | Paleta fixa | | Uma paleta fixa de cerca de 54 cores. |
| **SNES** | Nintendo | 5-5-5 bits | 32768 | Cor de 15 bits, 5 bits por canal. |
| **Nintendo DS** | Nintendo | 5-5-5 bits | 32768 | Cor de 15 bits para gráficos 2D, 5 bits por canal. |
| **Master System** | Sega | 2-2-2 bits | 64 | Cor de 6 bits, 2 bits por canal: 64 cores. |
| **Mega Drive / Genesis** | Sega | 3-3-3 bits | 512 | Cor de 9 bits, 3 bits por canal: 512 cores. Níveis equidistantes; a rampa real se curva um pouco. |
| **Game Gear** | Sega | 4-4-4 bits | 4096 | Cor de 12 bits, 4 bits por canal. |
| **PlayStation** | Sony | 5-5-5 bits | 32768 | Cor de 15 bits, 5 bits por canal (24 bits só para vídeo). |
| **Atari Lynx** | Atari | 4-4-4 bits | 4096 | Cor de 12 bits, 4 bits por canal. |
| **Neo Geo Pocket Color** | Outros portáteis | 4-4-4 bits | 4096 | Cor de 12 bits, 4 bits por canal. |
| **WonderSwan Color** | Outros portáteis | 4-4-4 bits | 4096 | Cor de 12 bits, 4 bits por canal. |
| **Playdate** | Outros portáteis | cinza de 1 bits | 2 | Preto e branco. |
| **PC Engine / TurboGrafx-16** | Outros consoles | 3-3-3 bits | 512 | Cor de 9 bits, 3 bits por canal: 512 cores. |
| **Neo Geo** | Outros consoles | 5-5-5 bits | 32768 | Aproximado como cor de 15 bits: o hardware adiciona um bit escuro compartilhado. |
| **Commodore 64** | Computadores domésticos | Paleta fixa | | Uma paleta fixa de 16 cores. |
| **Amiga OCS/ECS** | Computadores domésticos | 4-4-4 bits | 4096 | Cor de 12 bits, 4 bits por canal: 4096 cores. |
| **Atari ST** | Computadores domésticos | 3-3-3 bits | 512 | Cor de 9 bits, 3 bits por canal: 512 cores. |
| **Atari STE** | Computadores domésticos | 4-4-4 bits | 4096 | Cor de 12 bits, 4 bits por canal. |
| **Amstrad CPC** | Computadores domésticos | 3-3-3 níveis | 27 | 27 cores: cada canhão desligado, pela metade ou no máximo. |
| **IBM CGA** | Computadores domésticos | Paleta fixa | | Uma paleta fixa de 16 cores (4 por vez em 320x200). |
| **PC VGA (Mode 13h)** | Computadores domésticos | 6-6-6 bits | 262144 | Cor de 18 bits, 6 bits por canal (256 por vez). |
| **PICO-8** | Consoles de fantasia | Paleta fixa | | Uma paleta fixa de 16 cores. |
| **TIC-80** | Consoles de fantasia | Paleta fixa | | 16 cores, Sweetie 16 por padrão. |

## Paletas que mudam ao longo do tempo

Em um sprite com mais de um quadro, o painel de paleta pode iniciar uma **nova paleta a partir deste
quadro**: uma cópia da atual que vale desse quadro até a próxima mudança. As edições então
mudam apenas esse trecho da animação. **Remover** volta à paleta anterior.

O **ciclo de cores** (sprites indexados) gira uma faixa de cores da paleta enquanto a animação é reproduzida,
para água, fogo e luzes piscando, sem tocar em nenhum pixel. Adicione um ciclo, escolha o primeiro e o
último índice da paleta, a direção e quantos quadros dura cada passo, e pressione Reproduzir para ver.
Os ciclos são salvos apenas em arquivos `.pxstudio`; **Gravar nos quadros** os transforma em paletas por quadro
(adicionando quadros se necessário) para que apareçam em GIFs e vídeos exportados.

## Sombras para a tinta de Sombreamento

A tinta de Sombreamento move pixels ao longo de uma lista de cores, as suas **Sombras**. Com a tinta definida como Sombreamento,
as opções da ferramenta mostram a lista: arraste cores da paleta para ela, pressione **+ Primeiro plano** para adicionar a cor de
primeiro plano, arraste para reordenar e clique em uma cor para removê-la. Selecionar um intervalo na paleta com a
lista vazia a preenche, assim como o botão **Rampa de sombreamento** da paleta. O botão esquerdo desloca
os pixels para a frente na lista e o botão direito para trás.
