@luanpdd/kit-mcp 1.31.0 → 1.33.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.
Files changed (30) hide show
  1. package/README.md +1 -1
  2. package/kit/COMPATIBILITY.md +5 -0
  3. package/kit/agents/designer-ui.md +216 -0
  4. package/kit/agents/supabase-auth-bootstrapper.md +15 -1
  5. package/kit/agents/supabase-auth-hook-writer.md +418 -0
  6. package/kit/agents/supabase-mfa-implementer.md +439 -0
  7. package/kit/agents/supabase-oauth-server-implementer.md +507 -0
  8. package/kit/agents/supabase-social-auth-implementer.md +451 -0
  9. package/kit/agents/supabase-sso-saml-architect.md +549 -0
  10. package/kit/commands/supabase.md +21 -1
  11. package/kit/file-manifest.json +29 -6
  12. package/kit/skills/supabase-auth-hardening/SKILL.md +674 -0
  13. package/kit/skills/supabase-auth-hooks/SKILL.md +875 -0
  14. package/kit/skills/supabase-auth-methods/SKILL.md +486 -0
  15. package/kit/skills/supabase-auth-sessions/SKILL.md +579 -0
  16. package/kit/skills/supabase-auth-ssr/SKILL.md +60 -14
  17. package/kit/skills/supabase-enterprise-sso-saml/SKILL.md +545 -0
  18. package/kit/skills/supabase-jwt-signing-keys/SKILL.md +399 -0
  19. package/kit/skills/supabase-mfa/SKILL.md +488 -0
  20. package/kit/skills/supabase-oauth-server/SKILL.md +537 -0
  21. package/kit/skills/supabase-social-oauth/SKILL.md +480 -0
  22. package/kit/skills/supabase-third-party-auth/SKILL.md +450 -0
  23. package/kit/skills/ui-anti-padroes-ia/SKILL.md +261 -0
  24. package/kit/skills/ui-contexto-produto/SKILL.md +248 -0
  25. package/kit/skills/ui-cor-estrategia/SKILL.md +213 -0
  26. package/kit/skills/ui-critica-auditoria/SKILL.md +260 -0
  27. package/kit/skills/ui-motion-funcional/SKILL.md +264 -0
  28. package/kit/skills/ui-ritmo-espacial/SKILL.md +259 -0
  29. package/kit/skills/ui-tipografia/SKILL.md +211 -0
  30. package/package.json +1 -1
@@ -0,0 +1,211 @@
1
+ ---
2
+ name: ui-tipografia
3
+ description: Use ao escolher fontes, tamanhos, pesos ou hierarquia tipográfica — sistema canônico Display + Body + Mono distintos (sem monocultura Inter), max 4 tamanhos × 2 pesos, line-height 1.5 body / 1.2 heading, line-length 50-75ch body / 30-50ch hero, banidas Fraunces/Geist/Mona Sans/Plus Jakarta Sans/Space Grotesk/Recoleta/Instrument Sans em produto novo (fontes saturadas no default IA).
4
+ ---
5
+
6
+ # UI — Tipografia
7
+
8
+ ## Quando usar
9
+
10
+ LLM carrega esta skill quando:
11
+
12
+ - "Que fonte uso?" / "Escolher tipografia"
13
+ - "Hierarquia tipográfica" / "type scale"
14
+ - "Heading parece genérico" / "tipo parece acidental"
15
+ - Preenchendo seção **Tipografia** de DESIGN.md
16
+ - Editando `tailwind.config.*` font tokens
17
+
18
+ ## Regras absolutas
19
+
20
+ **REGRA #1 (3 famílias distintas):** Sistema canônico tem **display + body + mono**, três tipos visualmente distintos. Inter como todas as três = monocultura (T07).
21
+
22
+ **REGRA #2 (max 4 sizes × 2 weights):** Exatamente 3-4 tamanhos em uso ativo, máximo 2 pesos. Se você precisa de mais, há um problema de hierarquia, não de escala tipográfica.
23
+
24
+ **REGRA #3 (line-length real):** Body 50-75 chars per line. Hero 30-50 chars. Container width = `ch` unit, não pixel. Texto que estica viewport inteira = ilegível.
25
+
26
+ **REGRA #4 (line-height por contexto):** Body 1.5, headings 1.2, mono/code 1.4. Não 1.6 "para respirar" (afrouxa demais).
27
+
28
+ **REGRA #5 (defaults banidos em produto novo):** Fraunces, Geist, Mona Sans, Plus Jakarta Sans, Space Grotesk, Recoleta, Instrument Sans — saturadas no default IA. Use só com justificativa em MARCA.md (ex: "Geist intencional para match com infra cloud space").
29
+
30
+ ## Escala canônica
31
+
32
+ ### Type scale (em px, base 16)
33
+
34
+ | Nome | px | uso |
35
+ |------|----|----|
36
+ | `xs` | 12 | Microcopy, labels secundárias, badges |
37
+ | `sm` | 14 | UI controls, table cells, dense lists |
38
+ | `base` | 16 | Body padrão, paragraphs |
39
+ | `lg` | 20 | Lead paragraph, dialog title |
40
+ | `xl` | 24 | h3 |
41
+ | `2xl` | 32 | h2 |
42
+ | `4xl` | 48 | h1 (produto) |
43
+ | `6xl` | 72 | h1 (hero marca) |
44
+
45
+ **Use 3-4 destas em ativo.** Esconda o resto do Tailwind via `fontSize` override no config.
46
+
47
+ ### Pesos
48
+
49
+ Apenas 2 pesos por família:
50
+ - **Body:** `400` (regular) + `600` (semibold para emphasis)
51
+ - **Display:** `400` (regular) + `700` (bold) OU peso único caracteristicamente forte
52
+
53
+ Pesos proibidos sem justificativa: `300` (light), `100` (thin) — fica frágil em LCD comum + baixa legibilidade.
54
+
55
+ ### Line-height
56
+
57
+ ```css
58
+ --lh-tight: 1.1; /* hero 6xl+ */
59
+ --lh-heading: 1.2; /* h1, h2 */
60
+ --lh-snug: 1.35; /* lg lead */
61
+ --lh-body: 1.5; /* base body */
62
+ --lh-mono: 1.4; /* code */
63
+ ```
64
+
65
+ ### Line-length
66
+
67
+ ```css
68
+ .prose { max-width: 65ch; } /* body content */
69
+ .hero { max-width: 18ch; } /* big heading */
70
+ .lead { max-width: 50ch; } /* large intro paragraph */
71
+ ```
72
+
73
+ `ch` unit > pixel para textos. Em mono use `30em`.
74
+
75
+ ## Pareamentos canônicos (com nome próprio)
76
+
77
+ ### Marca editorial
78
+ - Display: **GT Sectra** (Grilli Type) ou **Söhne Breit** (Klim)
79
+ - Body: **Söhne** (Klim) ou **Inter Display**
80
+ - Mono: **JetBrains Mono** ou **Berkeley Mono**
81
+
82
+ ### Produto calm/clinical
83
+ - Display: **Söhne Breit** (Klim) ou **ABC Diatype** (Dinamo)
84
+ - Body: **Söhne** ou **ABC Diatype**
85
+ - Mono: **JetBrains Mono**
86
+
87
+ ### Produto warm/playful
88
+ - Display: **GT Maru** (Grilli) ou **Söhne Schmal**
89
+ - Body: **GT Walsheim** ou **Söhne**
90
+ - Mono: **MD IO** (Mass-Driver)
91
+
92
+ ### Editorial serif moment
93
+ - Display: **Tiempos Headline** (Klim) ou **GT Sectra**
94
+ - Body: **Tiempos Text** ou **Söhne**
95
+ - Mono: **JetBrains Mono**
96
+
97
+ ### Free / open-source fallback (justificar em MARCA.md)
98
+ - Display: **Manrope** (free) ou **Inter Display** (free variante!)
99
+ - Body: **Inter** OK como único free se for **apenas** body
100
+ - Mono: **JetBrains Mono** (free)
101
+
102
+ > **Inter no display** é sempre tell de IA. Inter Display (variante distinta) é aceitável.
103
+
104
+ ## Hierarquia — patterns
105
+
106
+ ### Hierarquia por size + weight + color (3 alavancas)
107
+
108
+ ```tsx
109
+ // Bom — 3 alavancas, claramente diferenciado
110
+ <h2 className="text-2xl font-semibold text-foreground">Section</h2>
111
+ <p className="text-sm font-normal text-muted-foreground">Caption</p>
112
+
113
+ // Ruim — só size, peso body, muddy
114
+ <h2 className="text-base text-foreground">Section</h2>
115
+ <p className="text-sm text-foreground">Caption</p>
116
+ ```
117
+
118
+ ### Widow/orphan em heading
119
+
120
+ Last word sozinho em line = widow. Use `text-wrap: balance` ou `&nbsp;` no penúltimo separator.
121
+
122
+ ```tsx
123
+ <h1 className="text-balance">Build better software with one calm tool</h1>
124
+ ```
125
+
126
+ ### Letter-spacing
127
+
128
+ - Display tamanhos grandes (`4xl`+): `tracking-tight` (-0.01em) ou `-0.02em`
129
+ - Body: default `tracking-normal`
130
+ - All-caps: `tracking-wider` mas SOMENTE em badge pequena (rótulo uppercase decorativo acima de heading é proibido — ver T04 em anti-padroes-ia)
131
+
132
+ ## Anti-patterns
133
+
134
+ ### Anti-pattern 1: 6+ tamanhos diferentes em uma tela
135
+
136
+ **Errado:** `text-xs`, `text-sm`, `text-base`, `text-lg`, `text-xl`, `text-2xl` todos numa página.
137
+
138
+ **Por quê:** REGRA #2 — hierarquia inflacionada, agente IA depois perde sinal sobre o que é importante.
139
+
140
+ **Certo:** restringir a 4. Se "preciso de mais", problema é decisão de info architecture, não de tipo.
141
+
142
+ ### Anti-pattern 2: Inter em display + body + mono
143
+
144
+ **Errado:**
145
+ ```css
146
+ :root {
147
+ --font-display: Inter;
148
+ --font-sans: Inter;
149
+ --font-mono: Inter;
150
+ }
151
+ ```
152
+
153
+ **Por quê:** T07 — monocultura é tell #1 de "IA gerou isto".
154
+
155
+ **Certo:** display + body distintos, mesmo que ambos sans. Mono é monospace, sempre distinto.
156
+
157
+ ### Anti-pattern 3: weight `300` para hero
158
+
159
+ **Errado:** `<h1 className="font-light text-6xl">Build it</h1>`
160
+
161
+ **Por quê:** thin no display falha em retina baixa + perde presença. Era moda 2015-2018, agora datado.
162
+
163
+ **Certo:** `font-medium` ou `font-semibold`. Hero quer presença, não fragilidade.
164
+
165
+ ### Anti-pattern 4: body em 14px porque "fica clean"
166
+
167
+ **Errado:** `<body class="text-sm">`
168
+
169
+ **Por quê:** 14px body falha em legibilidade > 40 anos + cansa em sessões longas. AA exige 16px effective.
170
+
171
+ **Certo:** 16px body min. 14px só em controls densos, tables, captions.
172
+
173
+ ### Anti-pattern 5: hero text estica viewport
174
+
175
+ **Errado:**
176
+ ```tsx
177
+ <h1 className="text-7xl">Build something amazing with our platform today and ship faster than ever</h1>
178
+ ```
179
+
180
+ **Por quê:** REGRA #3 — line-length destruído, leitura interrompida múltiplas vezes.
181
+
182
+ **Certo:** wrap container 18-25ch + balance:
183
+ ```tsx
184
+ <h1 className="text-7xl max-w-[18ch] text-balance leading-[1.05] tracking-tight">
185
+ Ship faster.
186
+ </h1>
187
+ <p className="text-lg max-w-[50ch] mt-4 text-muted-foreground">
188
+ Sub-headline com contexto em line-length confortável.
189
+ </p>
190
+ ```
191
+
192
+ ## Detecção
193
+
194
+ ```bash
195
+ # tamanhos em uso (deveria ser 3-4)
196
+ grep -rohE "text-(xs|sm|base|lg|xl|2xl|3xl|4xl|5xl|6xl|7xl|8xl|9xl)\b" src --include="*.tsx" 2>/dev/null | sort -u | wc -l
197
+
198
+ # pesos em uso (deveria ser 2)
199
+ grep -rohE "font-(thin|extralight|light|normal|medium|semibold|bold|extrabold|black)\b" src --include="*.tsx" 2>/dev/null | sort -u
200
+
201
+ # Inter monocultura
202
+ grep -rohE "Inter\b" src --include="*.css" --include="*.ts" 2>/dev/null | wc -l
203
+
204
+ # defaults banidos
205
+ grep -rohE "(Fraunces|Geist|Mona Sans|Plus Jakarta Sans|Space Grotesk|Recoleta|Instrument Sans)" src 2>/dev/null
206
+ ```
207
+
208
+ ## Ver também
209
+
210
+ - [ui-anti-padroes-ia](../ui-anti-padroes-ia/SKILL.md) — T03, T04, T07, T08 detalhados
211
+ - [ui-contexto-produto](../ui-contexto-produto/SKILL.md) — onde Display/Body/Mono são declarados
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luanpdd/kit-mcp",
3
- "version": "1.31.0",
3
+ "version": "1.33.0",
4
4
  "description": "Generic infrastructure to ship YOUR personal kit of agents/commands/skills as an MCP server, with cross-IDE sync (Claude Code, Cursor, Codex, Gemini, Windsurf, Antigravity, Copilot, Trae).",
5
5
  "type": "module",
6
6
  "bin": {