pswex-design-system 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +16 -0
- package/README.md +67 -0
- package/bin/instalar.mjs +62 -0
- package/package.json +31 -0
- package/skill/README.md +57 -0
- package/skill/SKILL.md +117 -0
- package/skill/assets/PROMPT-FIGMA.md +138 -0
- package/skill/assets/catalogo-icones.json +324 -0
- package/skill/assets/figma-variables.json +764 -0
- package/skill/assets/manifesto.json +1287 -0
- package/skill/assets/pswex.tokens.json +694 -0
- package/skill/assets/styles.css +381 -0
- package/skill/assets/tokens.css +81 -0
- package/skill/references/classes.md +27 -0
- package/skill/references/componentes.md +628 -0
- package/skill/references/cor.md +166 -0
- package/skill/references/fundos.md +43 -0
- package/skill/references/icones.md +71 -0
- package/skill/references/voz.md +76 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Licença
|
|
2
|
+
|
|
3
|
+
PSWEX Tecnologia, CNPJ 28.477.119/0001-79.
|
|
4
|
+
|
|
5
|
+
**Os tokens, o CSS, os componentes e a documentação** deste pacote podem ser usados
|
|
6
|
+
livremente por quem constrói para a PSWEX ou para a UPro: agência, fornecedor,
|
|
7
|
+
freelancer ou agente de IA contratado para isso.
|
|
8
|
+
|
|
9
|
+
**A marca, o nome, os ícones e a arte de fundo** continuam sendo propriedade da PSWEX
|
|
10
|
+
Tecnologia e não podem ser usados para identificar outra empresa nem em peça que não
|
|
11
|
+
seja da PSWEX ou da UPro.
|
|
12
|
+
|
|
13
|
+
**A fonte Gilroy não acompanha este pacote.** O CSS declara a família, o arquivo da
|
|
14
|
+
fonte é licenciado e precisa ser obtido de quem licencia.
|
|
15
|
+
|
|
16
|
+
Atualizado em 22/09/2026.
|
package/README.md
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Design system da PSWEX, como skill
|
|
2
|
+
|
|
3
|
+
Uma pasta só que serve Claude, Codex e ChatGPT. Versão 7.0.0, gerada
|
|
4
|
+
do contrato em 22/09/2026.
|
|
5
|
+
|
|
6
|
+
## O que tem dentro
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
SKILL.md as regras que valem sempre, leia primeiro
|
|
10
|
+
references/
|
|
11
|
+
cor.md as quatro famílias, 47 tokens, escala tipográfica
|
|
12
|
+
componentes.md os 36 componentes com props e exemplo
|
|
13
|
+
icones.md os 72 ícones e para que serve cada um
|
|
14
|
+
fundos.md a arte de fundo, a regra de escala e os 6 temas
|
|
15
|
+
classes.md o vocabulário de classe do CSS
|
|
16
|
+
voz.md como escrever o texto que vai dentro da peça
|
|
17
|
+
assets/
|
|
18
|
+
pswex.tokens.json padrão DTCG do W3C
|
|
19
|
+
figma-variables.json coleções, modos, escopos e code syntax
|
|
20
|
+
tokens.css as mesmas variáveis em CSS
|
|
21
|
+
manifesto.json os componentes em JSON, para a máquina ler
|
|
22
|
+
catalogo-icones.json
|
|
23
|
+
styles.css o CSS de produção inteiro
|
|
24
|
+
PROMPT-FIGMA.md pedido pronto para o agente do Figma
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Instalar
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
npx pswex-design-system
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Detecta Claude Code, Codex e Copilot CLI nesta máquina e instala em cada um.
|
|
34
|
+
`--local` instala dentro do projeto em vez do seu diretório de usuário,
|
|
35
|
+
`--onde` só mostra onde instalaria sem escrever nada.
|
|
36
|
+
|
|
37
|
+
## Instalar à mão
|
|
38
|
+
|
|
39
|
+
**Claude Code e claude.ai**
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
~/.claude/skills/pswex-design-system
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Codex**
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
~/.codex/skills/pswex-design-system
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Nos dois, um link simbólico para esta pasta faz a skill acompanhar o `git pull`.
|
|
52
|
+
|
|
53
|
+
**ChatGPT**
|
|
54
|
+
|
|
55
|
+
Não existe formato de skill. Num GPT personalizado, cole o conteúdo de `SKILL.md`
|
|
56
|
+
em Instructions e suba `references/` e `assets/` em Knowledge. Num projeto, o mesmo:
|
|
57
|
+
`SKILL.md` nas instruções do projeto e o resto como arquivo.
|
|
58
|
+
|
|
59
|
+
## Regerar
|
|
60
|
+
|
|
61
|
+
A skill é derivada do contrato, nunca editada à mão. De dentro de `design-system/`:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
python3 gerar-contrato.py && python3 gerar-docs-contrato.py && python3 gerar-skill.py
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Rode depois de qualquer mudança em `site/assets/pswex.css` ou em `design-system/src/`.
|
package/bin/instalar.mjs
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Instala a skill do design system da PSWEX nos agentes desta máquina.
|
|
4
|
+
*
|
|
5
|
+
* npx pswex-design-system instala em ~/.claude, ~/.codex, ~/.copilot
|
|
6
|
+
* npx pswex-design-system --local instala em ./.claude/skills, no projeto
|
|
7
|
+
* npx pswex-design-system --onde só mostra onde instalaria, não escreve
|
|
8
|
+
*
|
|
9
|
+
* Sem dependência: só o que vem no Node.
|
|
10
|
+
*/
|
|
11
|
+
import { cp, mkdir, readdir, rm, stat } from 'node:fs/promises';
|
|
12
|
+
import { existsSync } from 'node:fs';
|
|
13
|
+
import { homedir } from 'node:os';
|
|
14
|
+
import { join, dirname } from 'node:path';
|
|
15
|
+
import { fileURLToPath } from 'node:url';
|
|
16
|
+
|
|
17
|
+
const NOME = 'pswex-design-system';
|
|
18
|
+
const ORIGEM = join(dirname(fileURLToPath(import.meta.url)), '..', 'skill');
|
|
19
|
+
const args = new Set(process.argv.slice(2));
|
|
20
|
+
const local = args.has('--local');
|
|
21
|
+
const seco = args.has('--onde') || args.has('--dry-run');
|
|
22
|
+
|
|
23
|
+
const AGENTES = [
|
|
24
|
+
['Claude Code', '.claude'],
|
|
25
|
+
['Codex', '.codex'],
|
|
26
|
+
['Copilot CLI', '.copilot'],
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
const base = local ? process.cwd() : homedir();
|
|
30
|
+
const alvos = AGENTES
|
|
31
|
+
.map(([rotulo, dir]) => ({ rotulo, dir, destino: join(base, dir, 'skills', NOME) }))
|
|
32
|
+
.filter(a => local || existsSync(join(homedir(), a.dir)));
|
|
33
|
+
|
|
34
|
+
console.log(`\n Design system da PSWEX, skill ${process.env.npm_package_version || ''}`.trimEnd());
|
|
35
|
+
console.log(` origem: ${ORIGEM}\n`);
|
|
36
|
+
|
|
37
|
+
if (!alvos.length) {
|
|
38
|
+
console.log(' Nenhum agente encontrado nesta máquina.');
|
|
39
|
+
console.log(' Procurei por ~/.claude, ~/.codex e ~/.copilot.\n');
|
|
40
|
+
console.log(' Para instalar dentro de um projeto: npx pswex-design-system --local\n');
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
let contados = 0;
|
|
45
|
+
for (const { rotulo, destino } of alvos) {
|
|
46
|
+
if (seco) { console.log(` [mostrar] ${rotulo.padEnd(12)} ${destino}`); continue; }
|
|
47
|
+
try {
|
|
48
|
+
await rm(destino, { recursive: true, force: true });
|
|
49
|
+
await mkdir(dirname(destino), { recursive: true });
|
|
50
|
+
await cp(ORIGEM, destino, { recursive: true });
|
|
51
|
+
const n = (await readdir(destino, { recursive: true })).length;
|
|
52
|
+
console.log(` ok ${rotulo.padEnd(12)} ${destino} (${n} itens)`);
|
|
53
|
+
contados++;
|
|
54
|
+
} catch (e) {
|
|
55
|
+
console.log(` falhou ${rotulo.padEnd(12)} ${e.message}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (!seco) {
|
|
60
|
+
console.log(`\n ${contados} de ${alvos.length} instalados.`);
|
|
61
|
+
console.log(' Abra o agente e peça alguma coisa da PSWEX: ele carrega a skill sozinho.\n');
|
|
62
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pswex-design-system",
|
|
3
|
+
"version": "7.0.0",
|
|
4
|
+
"description": "Design system da PSWEX Tecnologia como skill de agente. Instala em Claude Code, Codex e Copilot CLI com um comando.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"design-system",
|
|
7
|
+
"design-tokens",
|
|
8
|
+
"skill",
|
|
9
|
+
"agent-skills",
|
|
10
|
+
"claude-code",
|
|
11
|
+
"codex",
|
|
12
|
+
"pswex",
|
|
13
|
+
"dtcg"
|
|
14
|
+
],
|
|
15
|
+
"type": "module",
|
|
16
|
+
"bin": {
|
|
17
|
+
"pswex-design-system": "bin/instalar.mjs"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"bin",
|
|
21
|
+
"skill",
|
|
22
|
+
"README.md",
|
|
23
|
+
"LICENSE.md"
|
|
24
|
+
],
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=18"
|
|
27
|
+
},
|
|
28
|
+
"license": "SEE LICENSE IN LICENSE.md",
|
|
29
|
+
"author": "PSWEX Tecnologia",
|
|
30
|
+
"homepage": "https://pswex.com.br"
|
|
31
|
+
}
|
package/skill/README.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Design system da PSWEX, como skill
|
|
2
|
+
|
|
3
|
+
Uma pasta só que serve Claude, Codex e ChatGPT. Versão 7.0.0, gerada
|
|
4
|
+
do contrato em 22/09/2026.
|
|
5
|
+
|
|
6
|
+
## O que tem dentro
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
SKILL.md as regras que valem sempre, leia primeiro
|
|
10
|
+
references/
|
|
11
|
+
cor.md as quatro famílias, 47 tokens, escala tipográfica
|
|
12
|
+
componentes.md os 36 componentes com props e exemplo
|
|
13
|
+
icones.md os 72 ícones e para que serve cada um
|
|
14
|
+
fundos.md a arte de fundo, a regra de escala e os 6 temas
|
|
15
|
+
classes.md o vocabulário de classe do CSS
|
|
16
|
+
voz.md como escrever o texto que vai dentro da peça
|
|
17
|
+
assets/
|
|
18
|
+
pswex.tokens.json padrão DTCG do W3C
|
|
19
|
+
figma-variables.json coleções, modos, escopos e code syntax
|
|
20
|
+
tokens.css as mesmas variáveis em CSS
|
|
21
|
+
manifesto.json os componentes em JSON, para a máquina ler
|
|
22
|
+
catalogo-icones.json
|
|
23
|
+
styles.css o CSS de produção inteiro
|
|
24
|
+
PROMPT-FIGMA.md pedido pronto para o agente do Figma
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Instalar
|
|
28
|
+
|
|
29
|
+
**Claude Code e claude.ai**
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
~/.claude/skills/pswex-design-system
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Codex**
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
~/.codex/skills/pswex-design-system
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Nos dois, um link simbólico para esta pasta faz a skill acompanhar o `git pull`.
|
|
42
|
+
|
|
43
|
+
**ChatGPT**
|
|
44
|
+
|
|
45
|
+
Não existe formato de skill. Num GPT personalizado, cole o conteúdo de `SKILL.md`
|
|
46
|
+
em Instructions e suba `references/` e `assets/` em Knowledge. Num projeto, o mesmo:
|
|
47
|
+
`SKILL.md` nas instruções do projeto e o resto como arquivo.
|
|
48
|
+
|
|
49
|
+
## Regerar
|
|
50
|
+
|
|
51
|
+
A skill é derivada do contrato, nunca editada à mão. De dentro de `design-system/`:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
python3 gerar-contrato.py && python3 gerar-docs-contrato.py && python3 gerar-skill.py
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Rode depois de qualquer mudança em `site/assets/pswex.css` ou em `design-system/src/`.
|
package/skill/SKILL.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pswex-design-system
|
|
3
|
+
description: >-
|
|
4
|
+
Design system da PSWEX Tecnologia. Use sempre que for criar, alterar ou revisar
|
|
5
|
+
qualquer peça da PSWEX ou da UPro: página, tela, componente, e-mail, post, anúncio,
|
|
6
|
+
apresentação, proposta ou arte de rede social. Traz 47 tokens de cor e medida,
|
|
7
|
+
36 componentes React, 72 ícones e 6 temas de fundo, mais as regras de
|
|
8
|
+
cor e de escrita da casa. Dispara em pswex, upro, design system, token, paleta,
|
|
9
|
+
identidade visual, componente, ícone, fundo, gradiente.
|
|
10
|
+
license: proprietário, uso interno PSWEX Tecnologia
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Design system da PSWEX
|
|
14
|
+
|
|
15
|
+
Versão 7.0.0, extraído do CSS que está em produção em 22/09/2026.
|
|
16
|
+
Se este documento e o CSS discordarem, o CSS ganha.
|
|
17
|
+
|
|
18
|
+
## O que carregar, e quando
|
|
19
|
+
|
|
20
|
+
Este arquivo tem as regras que valem sempre. O detalhe está em `references/`,
|
|
21
|
+
carregue só o que a tarefa pedir:
|
|
22
|
+
|
|
23
|
+
| Precisa de | Leia |
|
|
24
|
+
|---|---|
|
|
25
|
+
| cor, tema claro e escuro | `references/cor.md` |
|
|
26
|
+
| montar tela com componente pronto | `references/componentes.md` |
|
|
27
|
+
| escolher ícone | `references/icones.md` |
|
|
28
|
+
| fundo, gradiente, arte de rede social | `references/fundos.md` |
|
|
29
|
+
| classe CSS sem componente React | `references/classes.md` |
|
|
30
|
+
| escrever o texto da peça | `references/voz.md` |
|
|
31
|
+
|
|
32
|
+
Os arquivos que a máquina lê estão em `assets/`: `pswex.tokens.json` no padrão DTCG
|
|
33
|
+
do W3C, `figma-variables.json` para importar no Figma, `manifesto.json` com as props
|
|
34
|
+
de cada componente, `catalogo-icones.json` e o `styles.css` de produção inteiro.
|
|
35
|
+
|
|
36
|
+
## As quatro famílias de cor, e a regra que não se quebra
|
|
37
|
+
|
|
38
|
+
A divisão não é estética, é funcional.
|
|
39
|
+
|
|
40
|
+
- **Marca**: igual nos dois temas. Navy, vermelho, teal, mint, sky, leaf, lime e as
|
|
41
|
+
variações. Nunca vai direto em texto de corpo.
|
|
42
|
+
- **Tema**: inverte inteira no escuro. Todo fundo de tela e todo texto de tela sai daqui.
|
|
43
|
+
- **Sobre-cor**: texto e borda que ficam em cima de cor de marca. Não inverte, porque
|
|
44
|
+
o fundo também não inverte.
|
|
45
|
+
- **Layout**: medida, raio e sombra.
|
|
46
|
+
|
|
47
|
+
**A regra:** texto sobre cor da família marca usa a família sobre-cor. Texto sobre fundo
|
|
48
|
+
de tela usa a família tema. Cor de marca nunca vai direto em texto.
|
|
49
|
+
|
|
50
|
+
Ignorar isso é o que produz navy escrito em cima de navy, que é invisível. Já aconteceu aqui.
|
|
51
|
+
|
|
52
|
+
Dois casos que custaram caro e não se reabrem:
|
|
53
|
+
|
|
54
|
+
- Botão lime leva `--lime-ink`, que é navy. Branco no lime dá **1,90:1** e reprova.
|
|
55
|
+
Navy no lime dá **7,13:1**. Se alguém pedir branco, o certo é escurecer o fundo para
|
|
56
|
+
`--leaf-800`, que dá 5,85:1, e aí o botão perde força de chamada. Diga isso antes de fazer.
|
|
57
|
+
- Vermelho em cima de navy leva `--red-ondark`. O `--red` puro some no escuro.
|
|
58
|
+
|
|
59
|
+
## O resto das regras duras
|
|
60
|
+
|
|
61
|
+
1. **Um `btn--cta` por tela.** O lime é a ação que converte. Dois na mesma tela e nenhum funciona.
|
|
62
|
+
2. **Ícone nunca leva hex.** Todos são `stroke="currentColor"`, a cor vem do texto ao redor
|
|
63
|
+
e troca sozinha no tema escuro.
|
|
64
|
+
3. **Nunca hex direto em componente.** Sempre `var(--token)`. Hex quebra o tema escuro.
|
|
65
|
+
4. **Escreva em classe do sistema, não em CSS novo.** Quase tudo já existe.
|
|
66
|
+
5. **Gradiente só anda entre cores vizinhas.** Navy para teal, teal para sky, sky para mint,
|
|
67
|
+
e navy para verde passando pelo teal. Navy para vermelho não: a passagem vira roxo sujo,
|
|
68
|
+
então os dois nunca se encostam, tem um trecho escuro separando.
|
|
69
|
+
6. **Nunca use travessão** em texto de tela. Vírgula, ponto ou dois pontos.
|
|
70
|
+
7. **Nunca invente número.** Sem "+45%", sem "3x mais vendas". Sem fonte, não escreve.
|
|
71
|
+
|
|
72
|
+
## Como carregar em código
|
|
73
|
+
|
|
74
|
+
Não existe provider e não existe wrapper de tema. Os componentes emitem as classes do
|
|
75
|
+
CSS de produção.
|
|
76
|
+
|
|
77
|
+
```html
|
|
78
|
+
<link rel="stylesheet" href="assets/styles.css">
|
|
79
|
+
<script>const { Hero, Btn, Cards, Card, Servicos } = window.PSWEX;</script>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Tema, três estados, nessa ordem de precedência:
|
|
83
|
+
|
|
84
|
+
```css
|
|
85
|
+
:root /* claro, sempre definido */
|
|
86
|
+
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){...}}
|
|
87
|
+
[data-theme=dark] / [data-theme=light] /* escolha explícita ganha */
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Para uma prévia no escuro, carimbe `data-theme="dark"` no elemento e defina
|
|
91
|
+
`color: var(--fg)` nele: `data-theme` troca token, não troca cor herdada.
|
|
92
|
+
|
|
93
|
+
## Tipografia
|
|
94
|
+
|
|
95
|
+
Gilroy, cinco pesos, pilha `Gilroy, 'Segoe UI', system-ui, sans-serif`.
|
|
96
|
+
Corpo 17px com `line-height:1.62`. Gilroy é licenciada e não está no catálogo do Google,
|
|
97
|
+
nem no do Figma: num arquivo do Figma ela precisa estar instalada na máquina de quem abre.
|
|
98
|
+
A escala completa está em `references/cor.md`.
|
|
99
|
+
|
|
100
|
+
## Três quebras de layout que escondem componente
|
|
101
|
+
|
|
102
|
+
Errar a largura do quadro esconde metade da peça: `nav` some abaixo de 960px,
|
|
103
|
+
`split` vira uma coluna abaixo de 900px, e os `step` do celular saem da posição
|
|
104
|
+
absoluta e empilham abaixo de 1100px.
|
|
105
|
+
|
|
106
|
+
## O que não fazer
|
|
107
|
+
|
|
108
|
+
| Não | Porque |
|
|
109
|
+
|---|---|
|
|
110
|
+
| hex direto em componente | quebra o tema escuro e sai do sistema |
|
|
111
|
+
| texto branco no lime | 1,90:1, reprova em qualquer nível |
|
|
112
|
+
| `--red` em cima de navy | some, use `--red-ondark` |
|
|
113
|
+
| dois `btn--cta` na mesma tela | a tela deixa de ter uma ação principal |
|
|
114
|
+
| pintar ícone com hex | ele deixa de acompanhar o tema |
|
|
115
|
+
| escalar um fundo de outra proporção | a fita de luz achata, gere o formato certo |
|
|
116
|
+
| CSS novo para layout | quase tudo já existe no vocabulário de classe acima |
|
|
117
|
+
| travessão em texto de tela | a casa não usa, é vírgula, ponto ou dois pontos |
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Prompt para o agente do Figma
|
|
2
|
+
|
|
3
|
+
Copie daqui para baixo e mande para o agente.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Você vai reorganizar as variáveis de cor de um arquivo do Figma que já existe.
|
|
8
|
+
|
|
9
|
+
**Arquivo:** `qNVr6EBodmZYfsJlgUZNlw`
|
|
10
|
+
https://www.figma.com/design/qNVr6EBodmZYfsJlgUZNlw/
|
|
11
|
+
|
|
12
|
+
**Antes de tocar em qualquer coisa**, carregue as skills `figma-use` e
|
|
13
|
+
`figma-generate-library`, e leia o arquivo para saber o que já está lá. Não crie
|
|
14
|
+
nada antes de ter a lista do que existe. Trabalhe em passos pequenos e me mostre
|
|
15
|
+
o resultado de cada passo, nunca tudo de uma vez.
|
|
16
|
+
|
|
17
|
+
## O que eu quero
|
|
18
|
+
|
|
19
|
+
Hoje as variáveis estão numa lista rasa, com nomes tipo `cor/navy`. Isso não diz
|
|
20
|
+
para que serve cada cor, e é por isso que já aconteceu de alguém pintar texto navy
|
|
21
|
+
em cima de fundo navy.
|
|
22
|
+
|
|
23
|
+
Eu quero quatro coleções, com o caminho do nome dizendo a função da cor. São
|
|
24
|
+
47 variáveis no total, e os valores abaixo são a verdade: eles vieram do CSS
|
|
25
|
+
que está no ar, não de um resumo.
|
|
26
|
+
|
|
27
|
+
### PSWEX Marca
|
|
28
|
+
|
|
29
|
+
Modo: Unico. 20 variáveis.
|
|
30
|
+
|
|
31
|
+
| Variável | Valor | Escopo | Code syntax |
|
|
32
|
+
|---|---|---|---|
|
|
33
|
+
| `principal/navy` | `#232F3E` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--navy)` |
|
|
34
|
+
| `principal/red` | `#C7273E` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--red)` |
|
|
35
|
+
| `principal/teal` | `#1F4768` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--teal)` |
|
|
36
|
+
| `secundaria/mint` | `#C1EDCC` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--mint)` |
|
|
37
|
+
| `secundaria/sky` | `#7CCFDB` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--sky)` |
|
|
38
|
+
| `secundaria/leaf` | `#669933` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--leaf)` |
|
|
39
|
+
| `secundaria/lime` | `#99CC33` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--lime)` |
|
|
40
|
+
| `variacao/navy-700` | `#35485F` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--navy-700)` |
|
|
41
|
+
| `variacao/navy-800` | `#2B3A4D` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--navy-800)` |
|
|
42
|
+
| `variacao/navy-900` | `#1B2531` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--navy-900)` |
|
|
43
|
+
| `variacao/navy-950` | `#19212C` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--navy-950)` |
|
|
44
|
+
| `variacao/red-600` | `#A92135` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--red-600)` |
|
|
45
|
+
| `variacao/red-700` | `#941D2E` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--red-700)` |
|
|
46
|
+
| `variacao/sky-800` | `#267F8C` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--sky-800)` |
|
|
47
|
+
| `variacao/leaf-800` | `#4A6F25` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--leaf-800)` |
|
|
48
|
+
| `neutro/charcoal` | `#353437` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--charcoal)` |
|
|
49
|
+
| `neutro/gray-dark` | `#4D4D4C` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--gray-dark)` |
|
|
50
|
+
| `neutro/gray-mid` | `#656565` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--gray-mid)` |
|
|
51
|
+
| `neutro/ice` | `#FFFCF1` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--ice)` |
|
|
52
|
+
| `neutro/offwhite` | `#F4F4EE` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--offwhite)` |
|
|
53
|
+
|
|
54
|
+
### PSWEX Tema
|
|
55
|
+
|
|
56
|
+
Modo: Claro e Escuro. 16 variáveis.
|
|
57
|
+
|
|
58
|
+
| Variável | Claro | Escuro | Escopo | Code syntax |
|
|
59
|
+
|---|---|---|---|---|
|
|
60
|
+
| `fundo/bg` | `#FFFAFA` | `#12181F` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--bg)` |
|
|
61
|
+
| `fundo/surface` | `#FFFFFF` | `#1B242F` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--surface)` |
|
|
62
|
+
| `fundo/paper` | `#FFFFFF` | `#1B242F` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--paper)` |
|
|
63
|
+
| `fundo/snow` | `#FFFAFA` | `#151D26` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--snow)` |
|
|
64
|
+
| `fundo/beige` | `#F8F4E3` | `#1E2732` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--beige)` |
|
|
65
|
+
| `fundo/light` | `#F2F3F4` | `#1A222C` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--light)` |
|
|
66
|
+
| `fundo/teal-50` | `#E9F0F7` | `#17222E` | FRAME_FILL, SHAPE_FILL, STROKE_COLOR | `var(--teal-50)` |
|
|
67
|
+
| `texto/fg` | `#232F3E` | `#EEF3F8` | TEXT_FILL | `var(--fg)` |
|
|
68
|
+
| `texto/ink` | `#232F3E` | `#EEF3F8` | TEXT_FILL | `var(--ink)` |
|
|
69
|
+
| `texto/ink-2` | `#4D4D4C` | `#C3CFDC` | TEXT_FILL | `var(--ink-2)` |
|
|
70
|
+
| `texto/ink-3` | `#656565` | `#A3B2C2` | TEXT_FILL | `var(--ink-3)` |
|
|
71
|
+
| `texto/muted` | `#656565` | `#9FB0C2` | TEXT_FILL | `var(--muted)` |
|
|
72
|
+
| `acento/accent-txt` | `#C7273E` | `#F4808F` | TEXT_FILL | `var(--accent-txt)` |
|
|
73
|
+
| `acento/accent-2-txt` | `#1F4768` | `#8FC5DE` | TEXT_FILL | `var(--accent-2-txt)` |
|
|
74
|
+
| `linha/line` | `#D5DBE2` | `#2C3947` | STROKE_COLOR | `var(--line)` |
|
|
75
|
+
| `linha/line-300` | `#9CA7B4` | `#44566A` | STROKE_COLOR | `var(--line-300)` |
|
|
76
|
+
|
|
77
|
+
### PSWEX Sobre cor
|
|
78
|
+
|
|
79
|
+
Modo: Unico. 6 variáveis.
|
|
80
|
+
|
|
81
|
+
| Variável | Valor | Escopo | Code syntax |
|
|
82
|
+
|---|---|---|---|
|
|
83
|
+
| `texto/lime-ink` | `#232F3E` | TEXT_FILL | `var(--lime-ink)` |
|
|
84
|
+
| `texto/on-bright` | `#232F3E` | TEXT_FILL | `var(--on-bright)` |
|
|
85
|
+
| `texto/ondark-200` | `#AFBCCC` | TEXT_FILL | `var(--ondark-200)` |
|
|
86
|
+
| `texto/ondark-400` | `#94A6BC` | TEXT_FILL | `var(--ondark-400)` |
|
|
87
|
+
| `texto/red-ondark` | `#F4808F` | TEXT_FILL | `var(--red-ondark)` |
|
|
88
|
+
| `linha/line-inv` | `rgba(196,219,241,.24)` | STROKE_COLOR | `var(--line-inv)` |
|
|
89
|
+
|
|
90
|
+
### PSWEX Layout
|
|
91
|
+
|
|
92
|
+
Modo: Unico. 5 variáveis.
|
|
93
|
+
|
|
94
|
+
| Variável | Valor | Escopo | Code syntax |
|
|
95
|
+
|---|---|---|---|
|
|
96
|
+
| `medida/shell` | `1200.0` | WIDTH_HEIGHT, GAP | `var(--shell)` |
|
|
97
|
+
| `raio/r` | `14.0` | CORNER_RADIUS | `var(--r)` |
|
|
98
|
+
| `raio/r-lg` | `22.0` | CORNER_RADIUS | `var(--r-lg)` |
|
|
99
|
+
| `sombra/shadow` | `0 1px 3px rgba(35,47,62,.08),0 6px 14px -8px rgba(35,47,62,.12)` | nenhum | `var(--shadow)` |
|
|
100
|
+
| `sombra/shadow-lg` | `0 2px 6px rgba(35,47,62,.10),0 14px 28px -14px rgba(35,47,62,.18)` | nenhum | `var(--shadow-lg)` |
|
|
101
|
+
|
|
102
|
+
## As regras que não podem ser quebradas
|
|
103
|
+
|
|
104
|
+
**1. Cor da coleção Marca nunca recebe `TEXT_FILL`.** Repare que nenhuma variável
|
|
105
|
+
de `PSWEX Marca` tem `TEXT_FILL` na lista de escopo. Isso é de propósito: é o que
|
|
106
|
+
faz o Figma não oferecer essas cores no seletor de cor de texto, e é o que impede
|
|
107
|
+
navy escrito em cima de navy. Se você achar que faltou, não é falta, é a regra.
|
|
108
|
+
|
|
109
|
+
**2. Texto em cima de cor de marca sai de `PSWEX Sobre cor`.** Botão lime leva
|
|
110
|
+
`texto/lime-ink`, que é navy. Branco em cima do lime dá 1,90:1 de contraste e
|
|
111
|
+
reprova. Texto em cima de navy leva `texto/ondark-200` ou `texto/ondark-400`.
|
|
112
|
+
Vermelho em cima de navy leva `texto/red-ondark`, porque o vermelho puro some lá.
|
|
113
|
+
|
|
114
|
+
**3. Só a coleção Tema tem dois modos.** As outras três têm modo único, porque
|
|
115
|
+
cor de marca, texto sobre cor e medida não mudam com o tema.
|
|
116
|
+
|
|
117
|
+
**4. Code syntax WEB sempre com `var()` em volta.** É `var(--navy)`, não `--navy`.
|
|
118
|
+
Sem isso o Dev Mode devolve um nome que não funciona colado no CSS.
|
|
119
|
+
|
|
120
|
+
## Como migrar sem quebrar o arquivo
|
|
121
|
+
|
|
122
|
+
O arquivo já tem componentes montados que apontam para as variáveis antigas. A
|
|
123
|
+
ordem importa:
|
|
124
|
+
|
|
125
|
+
1. Crie as coleções e as variáveis novas. Não apague nada ainda.
|
|
126
|
+
2. Reaponte todo nó que usa variável antiga para a nova equivalente. Percorra
|
|
127
|
+
página por página e me devolva a contagem de nós reapontados em cada uma.
|
|
128
|
+
3. Só depois de a contagem de uso das antigas chegar a zero, apague as antigas.
|
|
129
|
+
4. Se sobrar alguma antiga com uso, me diga qual e onde, não apague por cima.
|
|
130
|
+
|
|
131
|
+
Nunca apague uma variável antes do passo 3. Se você não tiver certeza de que um
|
|
132
|
+
nó foi reapontado, pare e me pergunte.
|
|
133
|
+
|
|
134
|
+
## Onde me mostrar o resultado
|
|
135
|
+
|
|
136
|
+
Depois de cada passo, me mande um screenshot da página e a lista de IDs do que
|
|
137
|
+
você criou ou alterou. No fim, me mande a lista das quatro coleções com a
|
|
138
|
+
contagem de variáveis de cada uma, para eu conferir contra os números daqui.
|