search

Found

info Visão geral

Escolha um índice 0-255 na paleta ANSI 256 (16 sistema + cubo RGB 6×6×6 + 24 cinzas) e copie escapes \e[38;5;Nm, \e[48;5;Nm, formas bash e printf, e hex.

📘 Como usar

  1. Clique numa célula da paleta, ou digite um índice 0-255 para escolher uma cor
  2. Confira as duas faixas de preview (primeiro plano e fundo) para confirmar o visual
  3. Escolha a forma de sequência de escape (primeiro plano, fundo, bash, printf ou reset) que combine com seu destino

Seletor de cores ANSI 256

0-255
Cores do sistema (0-15)
Cubo RGB (16-231 / 6×6×6)
Escala de cinza (232-255)
Cor selecionada
Idx 196
Hex #ff0000
RGB 255, 0, 0
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
Escape de primeiro plano
\e[38;5;196m
Escape de fundo
\e[48;5;196m
Bash $'...' forma
$'\e[38;5;196m'
printf  forma
\033[38;5;196m
Reset
\e[0m
Copiado!
Article

Seletor de cores ANSI 256 | Toda a paleta xterm-256color em uma tela

Uma grade plana com as 256 cores definidas por xterm-256color: 16 cores de sistema, o cubo RGB 6×6×6 de 216 células e a rampa de 24 níveis de cinza. Clique numa célula ou digite um índice 0-255 e a ferramenta entrega o escape de primeiro plano \e[38;5;Nm, o de fundo \e[48;5;Nm, a forma bash $'...', a forma printf \033[...] e o reset \e[0m — cada um na sua própria linha, com botão de copiar individual, além de hex e RGB exibidos como informação. Pensada para o momento em que você está ajustando um colorscheme do Neovim, um starship.toml, a status-line do tmux ou um tema oh-my-zsh, e não quer ficar pulando entre uma cola aberta noutra aba e um PNG com a tabela de 256 cores.

💡 Sobre esta ferramenta

A numeração de 256 cores não é nem um pouco intuitiva. Os índices 0-15 são os slots "do sistema" que cada emulador pinta de um jeito. 16-231 é o cubo RGB, onde o índice vale 16 + r·36 + g·6 + b com cada canal em {0,1,2,3,4,5}. 232-255 é uma rampa de cinza com 8 + 10·N. A matemática é simples depois de ler uma vez, mas na prática — quando você quer "um azul um pouco mais escuro" ou "um verde um grau mais apagado" — recalcular o índice na mão é a fricção que faz muita gente desistir e partir pro hex truecolor.

Este seletor distribui as 256 células em três seções para você escolher no olho. A célula selecionada ganha um contorno #ec1380, e duas faixas de preview mostram a cor escolhida: uma como texto sobre fundo escuro, outra como fundo cheio com texto branco ou preto alternado conforme a luminância WCAG, para conferir o contraste antes de fixar a cor no tema. Se você digita um índice, a grade sincroniza; se clica numa célula, o campo numérico salta para aquela posição. Hex, RGB e as quatro formas de sequência atualizam juntos.

Cada saída fica no seu próprio cartão com botão de copiar. Use $'\e[38;5;Nm' quando estiver atribuindo a uma variável bash ou montando um PS1 (o bash interpreta o quoting ANSI-C). Use \033[38;5;Nm dentro de strings de formato printf ou em qualquer contexto POSIX sh. Deixe \e[38;5;Nm cru para echo -e e similares. O reset \e[0m fica numa linha separada para você pegar sem rolar a tela.

🧐 Perguntas frequentes

P. Por que os índices 0-15 parecem diferentes no meu terminal? Os slots 0-15 são a paleta "do sistema" que cada emulador sobrescreve com o tema. Solarized, Gruvbox, Tokyo Night e os esquemas padrão do iTerm2 ou Windows Terminal pintam esses slots de forma diferente. O seletor mostra o padrão do xterm, que bate com um xterm-256color puro mas não com o seu emulador com tema carregado. Se você precisa de cores portáveis entre temas, mire nos índices 16-231 (cubo RGB) — esses slots são fixos.

P. Qual a diferença entre \e[38;5;Nm e \033[38;5;Nm? Os dois codificam o mesmo byte de escape (0x1B). \e é uma extensão reconhecida pelo quoting ANSI-C do bash ($'...') e pelo zsh, enquanto \033 (octal) e \x1b (hex) são formas portáveis que o printf entende. Escolha \e para scripts só de bash, \033 para shell portável, e \x1b para linguagens com escapes ao estilo C.

P. Truecolor de 24 bits existe. Ainda preciso dos índices 256? Sim, quando o truecolor não é confiável. tmux abaixo de 2.2, screen, alguns hops via ssh e builds antigos de Cygwin descartam a forma de 24 bits e caem no ANSI de fallback. Se o seu tema precisa renderizar igual num xterm-256color cru e num alacritty moderno, o índice de 256 cores é o menor denominador comum. O truecolor (\e[38;2;R;G;Bm) é para ambientes onde você já verificou COLORTERM=truecolor.

P. Meu PS1 parece certo mas o cursor pula para a coluna errada. O bash usa o comprimento em bytes para medir o prompt e conta as sequências de escape como visíveis, a menos que você as envolva em \[ e \]. Use PS1='\[\e[38;5;82m\]\u@\h\[\e[0m\] ' (repare nos colchetes ao redor da sequência de cor). O zsh tem o mesmo problema e usa %{...%}. O starship resolve isso por você, o que explica boa parte da popularidade dele.

P. Como o preview de fundo decide se o texto fica preto ou branco? Ele usa a luminância relativa WCAG com limiar 0,5. Células cuja luminância linearizada passa de 0,5 recebem texto preto; o resto, texto branco. É uma checagem rápida de legibilidade, não uma garantia colorimétrica — o terminal real vai renderizar um pouco diferente conforme a GPU e o perfil do monitor.

P. O que acontece se eu digitar 300 ou -5 no campo de índice? O seletor faz clamp para [0, 255]. Uma entrada não-numérica é silenciosamente ignorada (o parse falha e nenhuma atualização dispara).

📚 Curiosidades

A extensão de 256 cores chegou com o patch #115 do xterm, por volta de 1999, segundo as notas de Thomas Dickey. Até então só existiam as 8 cores ANSI (\e[30m\e[37m) e o conjunto "bright" 90-97. O empurrão pelos 256 veio principalmente da comunidade emacs e Vim, que queria colorschemes mais ricos do que 16 slots permitiam; tty-color-define do emacs precede a extensão do xterm em alguns anos e foi a prova de conceito que os emuladores depois absorveram.

Os níveis do cubo [0, 95, 135, 175, 215, 255] parecem esquisitos porque não são equidistantes. Uma distribuição equidistante 0-51-102-153-204-255 mapearia mal o brilho percebido em sRGB, então o cubo foi calibrado para oferecer mais resolução nas sombras. Já a rampa de cinza 232-255 é um 8 + 10·N regular, e é por isso que as status-lines do tmux e os fundos atenuados se agrupam em torno de colour234colour240. O fato de se escrever colour e não color na config do tmux costuma ser atribuído à origem britânica do Nicholas Marriott; color funciona como alias por portabilidade, e ambas as grafias continuam funcionando hoje.

Para se aprofundar, a referência canônica é XTerm Control Sequences (Dickey, edição contínua) e a entrada xterm.terminfo no ncurses-term. A maioria das colas modernas de terminal pela internet deriva os números desses dois arquivos.