Temas: escolha um visual ou traga o seu.
Um tema é um arquivo JSON pequeno. Ele contém cores, tipografia, forma, aparência e uma paleta de terminal. O ColliePWA vem com quatro temas, e você pode importar outros a partir de um arquivo no seu telefone.
01/O que é
Um tema é um arquivo de aparências.
Um tema define as cores do aplicativo, uma vez para uma metade clara e outra para uma metade escura. Ele também pode definir uma fonte, uma fonte para títulos, uma forma, uma aparência e as cores do espelho do terminal. Forma e aparência são dez palavras, como radius, shadow e density. O layout, os tamanhos de toque e o significado de um status continuam como estão, de modo que bloqueado continua bloqueado em qualquer tema.
Cada valor em um arquivo é uma palavra fechada ou uma cor validada. O arquivo não pode executar código e não pode carregar um arquivo, uma fonte ou uma imagem.
Um tema e Aparência são duas configurações. O tema define quais cores usar. Aparência define qual metade mostrar: Sistema, Claro ou Escuro.
02/Escolha
Escolha um tema em Configurações.
Abra Configurações, depois Aparência, e toque em um tema. Ele é aplicado na hora, sem recarregar a página, e na próxima vez que você abrir o ColliePWA o primeiro quadro já estará nesse tema. Um toque em Collie restaura o padrão.
Um tema que define uma tipografia ajusta a sua tipografia uma vez. Você ainda pode alterá-la depois no cartão Tipografia.
Collie
Tipografia: Aldrich
O visual que você conhece: cinzas neutros, com Aldrich para a tipografia.
Nightwatch
Tipografia: IBM Plex Sans
flat · bold · strong · band · heavy
Para o telefone de plantão à noite. Uma metade escura em preto puro, plana e quadrada, com linhas pesadas, um destaque em âmbar suave e uma faixa âmbar suave atrás do cabeçalho e das barras.
Paleta do terminal
Daylight
Tipografia: Geist
Títulos: Atkinson Hyperlegible Next
round · lifted · roomy · gradient · cards · sentence
Para sol forte e baixa visão. Texto de corpo com contraste AAA, cartões arredondados e espaçosos, uma página que se desloca em direção ao rodapé e cores de status que vão do azul ao laranja, e não do vermelho ao verde.
Paleta do terminal
Harbour
Tipografia: Atkinson Hyperlegible Next
Títulos: Space Grotesk
soft · lifted · grain · thin
Para quem vem do terminal. Cinza-azulado frio com um destaque em verde-petróleo, cantos suaves, granulado fino e ícones finos, além de uma paleta de terminal baseada em Solarized sobre um azul quase preto.
Paleta do terminal
03/Importe
Importe um tema de um arquivo.
- 1Coloque um arquivo de tema no seu telefone. Ele termina em
.jsone tem menos de 64 KiB. - 2Em Configurações, abra o cartão Tema sob Aparência, toque em Importar e escolha o arquivo.
- 3Leia a prévia. Ela mostra as cores de ambas as metades, a forma, as cores do terminal e um relatório de contraste. Um contraste fraco exibe um aviso, e você ainda pode aplicar o tema. Um arquivo que viola as regras é recusado, e nada é alterado.
Um tema altera a aparência do aplicativo e nada mais. Ele não pode executar código, carregar arquivos ou se comunicar com um servidor.
Um dispositivo mantém até oito temas importados. Não há importação por link, e os temas não são sincronizados entre dispositivos.
04/Escreva
Escreva o seu.
O caminho mais rápido é começar com um tema nativo. Exporte o tema, altere id e name, edite as cores, as palavras de forma ou a paleta do terminal e importe-o novamente. Um tema importado não pode usar o id de um tema nativo.
Este é um harbour.json simplificado, um arquivo de versão 2. As linhas ... representam as partes omitidas.
{
"version": 2,
"id": "harbour",
"name": "Harbour",
"author": "Collie",
"light": {
"background": "oklch(0.95 0.01 235)",
"foreground": "oklch(0.26 0.025 250)",
"card": "oklch(0.985 0.004 235)",
"...": "..."
},
"dark": {
"background": "oklch(0.21 0.018 250)",
"foreground": "oklch(0.93 0.012 240)",
"card": "oklch(0.255 0.02 252)",
"...": "..."
},
"fonts": { "ui": "atkinson", "display": "grotesk" },
"surface": {
"radius": "soft",
"shadow": "lifted",
"density": "default",
"weight": "default",
"border": "default",
"ground": "grain",
"chrome": "page",
"rows": "rules",
"icons": "thin",
"labels": "caps"
},
"ansi": {
"0": "#073642",
"1": "#f0504a",
"2": "#859900",
"...": "..."
}
}Os 43 tokens
Um arquivo de tema pode nomear apenas estes tokens, divididos em quatro grupos. Um arquivo com qualquer outra chave é recusado.
| Grupo | O que ele pinta | Tokens |
|---|---|---|
| Superfícies e cores de texto21 | A página, cartões, cabeçalho e barras, texto, botões, bordas e o anel de foco. |
|
| Status6 | Os estados do agente e a cor de informação. |
|
| Sintaxe6 | As cores de texto em diffs e código. |
|
| Identidade do host10 | As cores que diferenciam as suas máquinas. |
|
Forma e aparência
O bloco surface contém dez palavras. Cada uma vem de uma lista fechada, e um token omitido mantém seu padrão, a primeira palavra da sua lista. Um número avulso nunca é aceito, logo um tema não pode quebrar um tamanho de toque.
radius- O canto de um cartão, de uma linha, de um campo e de um botão.
sharpsoftround
shadow- A sombra sob painéis elevados.
defaultflatlifted
density- Quanto espaço existe dentro e entre os controles.
defaultroomy
weight- O peso com que o texto em medium e semibold é renderizado.
defaultbold
border- A espessura de uma linha fina.
defaultstrong
ground- A página por trás de tudo: plana, um gradiente suave ou um granulado fino.
flatgradientgrain
chrome- O cabeçalho e as barras: na cor da página ou em uma faixa própria.
pageband
rows- Uma lista como um grupo emoldurado com regras, ou como um cartão para cada linha.
rulescards
icons- A espessura do traço de cada ícone.
defaultthinheavy
labels- Rótulos pequenos de seção, em maiúsculas ou em estilo frase.
capssentence
Paleta do terminal
O bloco ansi contém 18 cores ou nenhuma: as 16 cores do terminal, ink e ground. Cada uma é #rrggbb ou oklch(L C H), e cada uma passa por uma validação.
- Valores
- Um valor é uma cor:
#rrggbb,#rrggbbaaouoklch(L C H), com/ Apara opacidade. L varia de 0 a 1, C de 0 a 0.5 e H de 0 a 360, todos como números simples. - Metades
- Forneça
light,darkou ambos. A metade que você omitir é preenchida a partir do Collie, token por token. - Fontes
- O campo opcional
fonts.uidefine uma das fontes que o ColliePWA inclui. O campo opcionalfonts.displaydefine uma fonte para títulos. Nenhuma outra fonte é aceita. - O que é recusado
- Uma chave fora da lista, uma versão diferente de 1 ou 2, um valor que não seja uma cor ou palavra de forma,
var(),url()ou qualquer outra função, o id de um tema nativo e um arquivo com mais de 64 KiB. A mensagem indica a causa, e nada é aplicado. - Versão
versioné 1 ou 2. Um arquivo com um blocosurface, uma fontefonts.displayou um blocoansiindica 2. Um arquivo version 2 requer o ColliePWA 1.22.0 ou mais recente.
05/Compartilhar
Exporte e compartilhe.
A exportação grava o tema ativo como um arquivo .collie-theme.json. Envie para alguém, ou mantenha em um repositório, e essa pessoa importa da mesma forma que você fez.