Rostos dos Assistants: emoji no lugar do mascote
Todo Assistant passa a ter um emoji, escolhido entre todos os do conjunto, num fundo que a pessoa pode montar. O estado sai do rosto e fica no ponto e na palavra. As capturas estão em tamanho real, com a tela de hoje ao lado da mesma tela com o rosto novo.
Há nove decisões, cada uma com a minha recomendação, e logo abaixo delas o Studio como proposto, para experimentar.
Mudou na versão 4: qualquer cor, com seletor de cor de verdade e as oito cores como atalho, no fundo, em cada ponto do degradê e na borda (D6); espessura da borda contínua, de 1 a 2 px, com o intervalo medido (D7). O formato guardado mudou junto (D3, D8).
Barra lateral
Onde o tamanho mais pesa: o rosto tem 18 px. Hoje são oito quadrados azuis quase iguais.




Chat
Painel lateral de 320 px. As respostas usam o rosto de 22 px.




Cabeçalho do painel e estados
O rosto fica parado. Enquanto o Assistant não está pronto, o estado aparece ao lado do nome, no lugar do modelo.








O movimento fica só no ponto, um pulso lento: Working
Celular
Largura real de 390 px.












Rooms
Vários Assistants falam em seguida, e quem fala precisa ser reconhecido sem ler o nome.




Studio de hoje
É o que o novo Studio substitui. O proposto está logo abaixo das decisões.




Medições
Os números que sustentam as decisões.
O que o conjunto inteiro acrescenta
| Parte | Arquivos | Sem compressão | No executável (zip) |
|---|---|---|---|
| Desenhos do Noto, com tons de pele | 3.750 | 41,7 MB | 18,7 MB |
| Só os sem tom de pele | 1.705 | 16,5 MB | 8,9 MB |
| Bandeiras de países | 259 | 4,7 MB | 1,7 MB |
| Índice de nomes em inglês e português | 1 | 350 KB | 82 KB |
| Total recomendado (com tons e bandeiras) | 4.010 | 46,7 MB | 20,5 MB |
- O executável tem hoje 136,1 MB. Com o conjunto, passa a cerca de 156,6 MB, mais 15%.
- Primeira carga do app: nada muda. Hoje são 18,6 MB de JS e CSS no computador e 15,6 MB no celular, sem compressão, e o editor entra numa parte carregada à parte.
- Ao abrir o editor: índice de 82 KB e os desenhos visíveis, cerca de 170 KB no total. É estimativa, 60 desenhos pela mediana de 2,9 KB comprimidos.
- Cada rosto na tela pede só o próprio desenho, uma vez, e fica em cache. A mediana é 7,7 KB; o maior tem 287 KB.
- No celular, nada vai junto no aplicativo: a página e os desenhos vêm do computador.
A lista com todos os emoji
| Medido com 1.682 emoji | Lista virtualizada | Todos na página |
|---|---|---|
| Células na página | 117 | 1.682 |
| Primeira pintura | 11 ms | 683 a 3.512 ms |
| Busca por tecla, em inglês e português | 0,1 ms | 0,1 ms |
| Rolagem normal, 95% dos quadros | 30 a 43 ms | não medida |
| Atravessar a lista toda em 3 s, 95% dos quadros | 125 ms | 134 ms |
| Pior quadro nessa travessia | 267 ms | 158 ms |
Medido num navegador sem placa de vídeo, que desenha tudo no processador. O número absoluto é pessimista; serve para comparar. A travessia em 3 s é um caso extremo, e nela a virtualização não ganha nos quadros, ganha na abertura. Na construção a medição se repete no app real.
O custo de desenhar o fundo
| Técnica, com 1.500 rostos na tela | Quadro típico ao redesenhar | Comparado à cor sólida |
|---|---|---|
| Cor sólida | 26,9 ms | base |
| Degradê em CSS | 28,6 ms | +6% |
| Transparência sobre cor conhecida | 28,5 ms | +6% |
| Sombra | 32,9 ms | +22% |
| Brilho, sem filtro | 38,5 ms | +43% |
| Ruído por imagem | 46,2 ms | +72% |
| Borda interna | 49,9 ms | +86% |
Filtro por rosto (filter) | 52,6 ms | +96% |
Desfoque por rosto (backdrop-filter) | 184 ms | +584% |
Uma tela real tem de 8 a 30 rostos, cerca de 50 vezes menos que este teste. Recomendo só CSS estático: nenhum filter nem backdrop-filter por linha. As variantes em SVG ficaram de fora porque o teste de redesenho delas não mediu o que devia.
O que quebra, medido
| Contraste do fundo com a tela, pior das 8 cores | 100% | 60% | 30% |
|---|---|---|---|
| Barra lateral, escuro | 2,68 | 1,67 | 1,23 |
| Barra lateral, claro | 4,99 | 2,37 | 1,49 |
| Chat, escuro | 2,85 | 1,72 | 1,24 |
| Chat, claro | 4,86 | 2,34 | 1,48 |
- Legibilidade a 18 px: degradê de duas cores aparece; degradê de um tom, sombra, ruído e borda sobre cor sólida não se distinguem da cor sólida.
- Transparência: a 60% segura. A 30% só com borda. Sem fundo, os emoji claros somem no tema claro e a cor deixa de identificar.
- Contraste: mesmo a 100%, o magenta fica em 2,68:1 no escuro, abaixo da meta de 3:1. Quem identifica é o emoji; o fundo ajuda.
- Vidro (o fundo translúcido da janela no computador): a barra lateral continua opaca mesmo nele, e a captura confirmou isso. Só o cabeçalho do painel fica sobre o material. Ali, num papel de parede claro e no tema escuro, o fundo cai a 1,03:1 mesmo sólido. Por isso a transparência mistura com uma cor conhecida e nunca deixa ver o que está atrás.
- Não testado: o Vidro real do Windows. Simulei o material no navegador de teste.
Decisões
Cada imagem segue o tema escolhido aqui.
D1. Qual desenho usar
Recomendo Noto Emoji. A 18 px, ele se distingue melhor que o Twemoji. A pasta com os desenhos tem licença própria, Apache 2.0, e pode ir no produto levando o aviso de copyright e o texto da licença. A OFL do arquivo principal cobre as fontes. As bandeiras são de domínio público ou isentas de direito autoral. Os nomes vêm do emojibase, MIT. Tudo fica listado no arquivo
NOTICE. É leitura das licenças, não parecer jurídico.D2. Como enviar o conjunto inteiro
Recomendo um único zip dentro do executável, 20,5 MB, com os desenhos servidos um a um e só quando pedidos. Funciona sem internet, usa só a biblioteca padrão do Go e não muda a primeira carga. Tirar os tons economizaria 9,8 MB, mas você pediu o conjunto inteiro. Entram 259 bandeiras de países. Inglaterra, Escócia e País de Gales não têm desenho nessa pasta e ficam de fora.
D3. O que fica guardado no Assistant
Formato na versão 4:
{"h":"1f9d1_200d_1f4bb","tone":0,"kind":"solid","c":"#7C3AED","alpha":100,"bw":0,"bc":"auto"}. Cada cor é um HEX de seis dígitos;bwé a espessura medida no rosto de 18 px, com até duas casas;bcéauto,lighterou um HEX. São 93 bytes no caso simples e 193 no maior (degradê de três cores e borda com cor própria).Recomendo guardar só o código do emoji e o fundo, cerca de 200 bytes, sem copiar o desenho. Você sugeriu levar o desenho junto. Com o conjunto dentro do programa, celular e computador buscam o mesmo desenho no mesmo lugar e veem o mesmo rosto, sem carregar o conjunto. Copiar custaria três coisas:
- Hoje a aparência salva é só dado, nunca um desenho que o navegador executa. É uma decisão registrada, e mudá-la é escolha sua.
- 201 desenhos são maiores que o limite de 32 KB para salvar um Assistant.
- Cada lista de Assistants levaria todos os desenhos junto.
Se um dia o conjunto sair do programa, a cópia passa a valer. Um emoji sem desenho disponível, como um mais novo restaurado numa versão antiga, mostra a inicial do nome no fundo escolhido.
D4. Tons de pele e gênero
O conjunto tem 332 emoji com cinco tons e 192 entradas específicas de homem ou mulher. Recomendo mostrar a pessoa neutra em amarelo por padrão, com um único seletor de tom que vale para a lista toda e fica lembrado neste aparelho. As versões de homem e mulher saem da grade e aparecem na busca. Assim a lista fica com 1.728 itens em vez de 4.000.
D5. Sugestão por papel, com profissões primeiro
Recomendo profissões primeiro, como você pediu, com um limite de quatro pessoas por grupo; depois disso, objetos. As profissões renderizam certo, sem desenho quebrado. Mas a 18 px oito pessoas viram cabeças amarelas parecidas, e só a cor separa. A mistura identifica melhor. Exemplos: Developer
, DevOps
, Research
, Finance
, Support
. A tabela é local, em inglês e português, sem chamar modelo; a sugestão não repete emoji dentro do grupo, e a pessoa pode repetir se quiser. Um agente que cria um Assistant pode mandar o emoji; sem ele, recebe a mesma sugestão.
Objetos 

Oito profissões 

Profissões primeiro, depois objetos 

D6. Cor, degradê e transparência
Recomendo qualquer cor, escolhida num seletor de cor de verdade, com as oito cores como atalho. Vale para o fundo sólido, para cada ponto do degradê e para a borda. Cada lugar de cor tem os mesmos três controles, com 36 px de altura:
- As oito cores: um clique, como hoje.
- Seletor do sistema: o mesmo controle de cor que o Studio de hoje já usa. No computador ele abre o seletor do Chromium, com área de cor, matiz, conta-gotas e campos RGB, HSL e HEX. Não traz dependência nova.
- Campo HEX: aceita
#7C3AED,7c3aedou#73E. Se o texto não for uma cor, mostra "Use HEX, such as #2563EB." e o rosto não muda.
Degradê: 2 ou 3 pontos e 8 direções. Cada ponto tem um quadrado com a sua cor; clicar nele escolhe o ponto que os controles de cor editam, e a posição tem seu próprio controle. Transparência: de 30% a 100%; abaixo de 60% a borda fica ligada. Não recomendo modelos prontos de degradê, porque aí seria o produto a desenhá-los.
Aviso, nunca bloqueio: quando o fundo, já com a transparência, fica com contraste menor que 1,5:1 com o fundo de um dos temas e não há borda, aparece uma linha, "This background fades on the light theme.", com o botão Add border. No degradê, o aviso aparece quando todos os pontos somem. A cor continua permitida.
Sólido 

Degradê, duas cores 

60% 

30% com borda 

D7. Borda, o único efeito
Recomendo só a borda, com espessura contínua de 1 a 2 px e qualquer cor. Por padrão não há borda. O que ficou de fora está em "Não proposto", mais abaixo.
- Liga e desliga: um interruptor, Show border. Ligada, a borda começa em 1,5 px.
- Espessura: um controle deslizante de 1 a 2 px, sem degraus prontos. O valor é medido no rosto de 18 px e cresce junto nos maiores: de 1,4 a 2,9 px no de 26 px, de 5,3 a 10,7 px no de 96 px. O passo de 0,05 px existe só para as setas do teclado; é menor que um pixel da tela.
- Por que de 1 a 2 px, medido: abaixo de 1 px a borda não aparece a 18 px. O emoji ocupa 14 dos 18 px, e medi onde cada um dos 1.661 desenhos base do Noto começa: o típico fica a 2,42 px da beira do rosto. A borda encosta no desenho em 1,4% deles com 2 px, em 11% com 2,25 px, em 92% com 2,5 px e em 99% com 3 px. Os 24 que encostam com 2 px são desenhos que vão até a beira do próprio quadrado. 2 px é o maior valor que deixa o emoji livre.
- Cor: Auto, o padrão, fica clara no tema escuro e escura no claro. Lighter usa a cor do fundo, mais clara. Custom abre os mesmos controles da D6: as oito cores, o seletor e o HEX.
- Avisos: "This border fades on the dark theme." quando a cor some num tema, e "This border blends into the background." quando fica igual ao fundo sólido. As duas continuam permitidas. Branco e preto não são atalhos porque cada um some num tema; continuam possíveis pelo seletor, com o aviso.
- Transparência: abaixo de 60% a borda fica ligada, em 1,5 px se nenhuma foi escolhida, e o interruptor mostra o motivo.
Tamanho real, com as três cores de fundo mais difíceis, nas espessuras que o controle alcança. A linha de 2,5 px está fora do intervalo, só para mostrar a diferença. Sendo honesto: a 18 px, 1,5 e 2 px quase não se distinguem; o controle contínuo pesa mais no rosto do chat, no Studio e em telas com escala acima de 100%.
D8. Migração e receitas salvas
Recomendo dar um emoji a todos os Assistants existentes pela tabela da D5, num campo novo, e deixar a receita do mascote guardada sem uso.
- Cor: a cor de fundo salva vira a cor do rosto, exatamente, como HEX. Quem ainda está no azul padrão recebe as oito cores em ordem, para não continuar tudo azul.
- Receita antiga: fica intacta no campo atual e nada mais escreve nele. Se esse campo mudasse de formato, uma versão antiga que restaurasse um backup novo não conseguiria mostrar nenhum Assistant, porque hoje uma receita inválida derruba a lista inteira. O campo sai numa versão futura.
- Templates: os que têm mascote ganham emoji ao serem usados; os novos levam o rosto novo.
- Sem Assistant: as telas vazias que hoje mostram o mascote padrão passam a mostrar o agent tile.
D9. Estados
Recomendo tirar os estados do rosto e deixá-los no ponto e na palavra. A barra lateral e a lista do celular já têm os seus. O cabeçalho do chat não tem, e a 320 px não cabem nome, modelo e estado; por isso o estado ocupa o lugar do nome do modelo enquanto o Assistant não estiver pronto.
Studio proposto
Exatamente como recomendo construir, com o conjunto inteiro de emoji. Experimente: o que está aqui é o que entra no produto. Os textos estão em inglês, como no produto.
Só os controles recomendados, com os padrões recomendados. Nesta página, Apply não salva; o salvamento entra quando o Studio for construído. O seletor do sistema abre por cima desta página; no app do Android ele é o seletor do próprio Android, que não testei.
Não proposto: só para comparar
Nada disto está no Studio. Fica aqui para você ver por que ficou de fora.














- Brilho: no claro ele borra, as linhas ficam desiguais e custa 43% a mais para desenhar.
- Sombra e ruído: a 18 px não se distinguem da cor sólida.
- Degradê de um tom: a 18 px parece cor sólida.
- 30% sem borda, e nenhum fundo: emoji claro some e a cor deixa de identificar.
- Desfoque, mistura de camadas, imagem de fundo e degradê animado: são os mais caros ou viram editor de imagem, sem mudar o que se vê nesse tamanho.
Outras bordas, tamanho real
| Auto | Branco | Preto | Âmbar | |
|---|---|---|---|---|
| 0,5 px | ||||
| 1,5 px | ||||
| 3 px |
| Auto | Branco | Preto | Âmbar | |
|---|---|---|---|---|
| 0,5 px | ||||
| 1,5 px | ||||
| 3 px |
- 0,5 px: não aparece.
- 1,5 px: na versão 3 eu disse que virava 2 px em tela comum. Medi de novo na versão 4: o Chromium não arredonda, ele mistura o segundo pixel (1,25 px pinta 30% dele, 1,5 px 50%, 1,75 px 75%). Por isso os valores entre 1 e 2 px aparecem, como borda mais suave, e agora estão no controle (D7).
- 3 px: encosta no emoji e toma conta da cor.
- Âmbar: legível, mas é a cor de "Needs you"; numa borda pareceria um estado.
O que acompanha a mudança
Para saber o que entra e o que fica de fora.
Como o rosto viaja
- Backup: o rosto fica no banco de dados principal, que já entra em todo backup e volta na restauração. Não nasce fonte nova de dados. Um backup antigo, sem rosto, recebe emoji ao abrir, como na migração.
- Celular e computador: os dois leem o mesmo Assistant do mesmo computador e desenham pela mesma função, então o degradê sai igual. Os recentes e o tom ficam em cada aparelho.
- Outro computador: um Assistant não sai da máquina onde mora. O rosto vem de lá, e o desenho também. Se aquele computador tiver uma versão antiga, o editor pede para atualizá-lo em vez de falhar ao salvar.
- Formato: só valores conferidos, como cor em HEX, ângulo, porcentagem e espessura da borda. Nunca texto livre de estilo.
A regra contra enfeite continua igual
- A regra vale para o que o produto desenha. Botões, menus e o restante da interface seguem sem emoji como ícone, sem degradê e sem vidro.
- O rosto é escolha da pessoa, guardada na receita. Quem não mexe recebe cor sólida, e o produto não traz degradê pronto.
- Os emoji vêm dos dados, como imagem, sem estarem escritos no código da interface. A distinção fica escrita na regra, sem afrouxá-la.
Não muda
- Logo, agent tile, splash e lockup COGNIX[WS].
O que estas telas não provam
- O proposto foi desenhado por cima da tela real no navegador de teste. O código do produto não mudou.
- Conversas e estados são simulados, sem modelo e sem login.
- Não testei o Windows real, o Vidro real nem um celular físico.
- O editor é protótipo: a navegação por teclado e o salvamento entram na construção.