@the-bearded-bear/claude-craft 8.8.1 → 8.8.2

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 (79) hide show
  1. package/Dev/i18n/de/Angular/commands/check-compliance.md +218 -168
  2. package/Dev/i18n/de/Common/agents/refactoring-specialist.md +146 -69
  3. package/Dev/i18n/de/Common/commands/add-technology.md +166 -68
  4. package/Dev/i18n/de/Common/commands/setup-ci.md +216 -33
  5. package/Dev/i18n/de/Laravel/commands/check-compliance.md +223 -115
  6. package/Dev/i18n/de/Python/checklists/new-feature.md +319 -44
  7. package/Dev/i18n/de/React/rules/02-architecture.md +483 -322
  8. package/Dev/i18n/de/React/rules/03-coding-standards.md +584 -368
  9. package/Dev/i18n/de/Symfony/commands/check-compliance.md +186 -114
  10. package/Dev/i18n/de/Symfony/rules/07-testing-symfony.md +679 -10
  11. package/Dev/i18n/de/UIUX/commands/a11y-component.md +284 -26
  12. package/Dev/i18n/de/UIUX/commands/design-tokens.md +199 -35
  13. package/Dev/i18n/de/UIUX/commands/user-flow.md +179 -16
  14. package/Dev/i18n/de/VueJS/commands/check-compliance.md +227 -102
  15. package/Dev/i18n/es/Angular/commands/check-compliance.md +217 -167
  16. package/Dev/i18n/es/Common/commands/add-technology.md +158 -60
  17. package/Dev/i18n/es/Laravel/commands/check-compliance.md +223 -115
  18. package/Dev/i18n/es/React/commands/check-testing.md +263 -169
  19. package/Dev/i18n/es/ReactNative/commands/check-testing.md +256 -198
  20. package/Dev/i18n/es/Symfony/commands/check-compliance.md +189 -117
  21. package/Dev/i18n/es/Symfony/commands/check-testing.md +301 -102
  22. package/Dev/i18n/es/Symfony/commands/migration-plan.md +267 -34
  23. package/Dev/i18n/es/UIUX/commands/a11y-component.md +274 -16
  24. package/Dev/i18n/es/UIUX/commands/design-tokens.md +186 -22
  25. package/Dev/i18n/es/UIUX/commands/user-flow.md +173 -10
  26. package/Dev/i18n/es/VueJS/commands/check-compliance.md +227 -102
  27. package/Dev/i18n/fr/Angular/commands/check-compliance.md +217 -167
  28. package/Dev/i18n/fr/Common/commands/ralph-run.md +138 -60
  29. package/Dev/i18n/fr/Laravel/commands/check-compliance.md +223 -115
  30. package/Dev/i18n/fr/React/commands/check-architecture.md +370 -53
  31. package/Dev/i18n/fr/React/commands/check-code-quality.md +454 -64
  32. package/Dev/i18n/fr/React/commands/check-testing.md +476 -102
  33. package/Dev/i18n/fr/Symfony/commands/check-compliance.md +188 -116
  34. package/Dev/i18n/fr/VueJS/commands/check-compliance.md +227 -102
  35. package/Dev/i18n/pt/Angular/commands/check-compliance.md +225 -175
  36. package/Dev/i18n/pt/Common/agents/ralph-conductor.md +211 -30
  37. package/Dev/i18n/pt/Common/commands/add-technology.md +149 -51
  38. package/Dev/i18n/pt/Common/commands/ralph-run.md +239 -35
  39. package/Dev/i18n/pt/Flutter/commands/analyze-performance.md +331 -46
  40. package/Dev/i18n/pt/Flutter/commands/check-compliance.md +234 -29
  41. package/Dev/i18n/pt/Flutter/commands/generate-feature.md +526 -51
  42. package/Dev/i18n/pt/Flutter/commands/generate-widget.md +515 -27
  43. package/Dev/i18n/pt/Flutter/commands/golden-update.md +322 -46
  44. package/Dev/i18n/pt/Flutter/commands/localization-check.md +278 -37
  45. package/Dev/i18n/pt/Laravel/commands/check-compliance.md +212 -104
  46. package/Dev/i18n/pt/React/commands/accessibility-check.md +151 -42
  47. package/Dev/i18n/pt/React/commands/bundle-analyze.md +300 -25
  48. package/Dev/i18n/pt/React/commands/check-architecture.md +369 -34
  49. package/Dev/i18n/pt/React/commands/check-code-quality.md +440 -34
  50. package/Dev/i18n/pt/React/commands/check-compliance.md +232 -62
  51. package/Dev/i18n/pt/React/commands/check-security.md +370 -31
  52. package/Dev/i18n/pt/React/commands/check-testing.md +473 -43
  53. package/Dev/i18n/pt/React/commands/generate-component.md +454 -19
  54. package/Dev/i18n/pt/React/commands/generate-hook.md +425 -24
  55. package/Dev/i18n/pt/React/commands/storybook-story.md +520 -35
  56. package/Dev/i18n/pt/ReactNative/commands/app-size.md +358 -387
  57. package/Dev/i18n/pt/ReactNative/commands/check-code-quality.md +246 -75
  58. package/Dev/i18n/pt/ReactNative/commands/check-compliance.md +191 -85
  59. package/Dev/i18n/pt/ReactNative/commands/check-security.md +363 -115
  60. package/Dev/i18n/pt/ReactNative/commands/check-testing.md +269 -79
  61. package/Dev/i18n/pt/ReactNative/commands/generate-screen.md +491 -324
  62. package/Dev/i18n/pt/ReactNative/commands/native-module.md +539 -82
  63. package/Dev/i18n/pt/ReactNative/commands/store-prepare.md +429 -185
  64. package/Dev/i18n/pt/ReactNative/rules/02-architecture.md +1084 -31
  65. package/Dev/i18n/pt/Symfony/commands/check-compliance.md +195 -123
  66. package/Dev/i18n/pt/UIUX/commands/a11y-audit.md +208 -24
  67. package/Dev/i18n/pt/UIUX/commands/a11y-component.md +281 -23
  68. package/Dev/i18n/pt/UIUX/commands/design-tokens.md +197 -33
  69. package/Dev/i18n/pt/UIUX/commands/user-flow.md +183 -20
  70. package/Dev/i18n/pt/VueJS/commands/check-compliance.md +228 -103
  71. package/Dev/i18n/pt/Workflow/commands/analyze.md +147 -146
  72. package/Dev/i18n/pt/Workflow/commands/design.md +205 -204
  73. package/Dev/i18n/pt/Workflow/commands/implement.md +184 -184
  74. package/Project/i18n/de/Sprint/commands/dev.md +339 -86
  75. package/Project/i18n/es/Sprint/commands/dev.md +342 -91
  76. package/Project/i18n/pt/Sprint/commands/dev.md +343 -92
  77. package/bundles/cursor/.cursorrules +1 -1
  78. package/bundles/windsurf/.windsurfrules +1 -1
  79. package/package.json +1 -1
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  description: Especificação de Acessibilidade de Componente
3
- argument-hint: [arguments]
3
+ argument-hint: [argumentos]
4
4
  ---
5
5
 
6
6
  # Especificação de Acessibilidade de Componente
7
7
 
8
- Você é um Especialista em Acessibilidade certificado. Você deve produzir as especificações de acessibilidade completas para um componente UI.
8
+ Você é um Especialista em Acessibilidade certificado. Você deve produzir especificações completas de acessibilidade para um componente de IU.
9
9
 
10
10
  ## Argumentos
11
11
  $ARGUMENTS
@@ -14,23 +14,23 @@ Argumentos:
14
14
  - Nome do componente
15
15
  - (Opcional) Tipo: button, input, modal, dropdown, tabs, accordion, tooltip, etc.
16
16
 
17
- Exemplo: `/uiux:a11y-component Modal` ou `/uiux:a11y-component "Seletor de Data" tipo:input`
17
+ Exemplo: `/uiux:a11y-component Modal` ou `/uiux:a11y-component "Date Picker" type:input`
18
18
 
19
- ## Modo Plano
19
+ ## Modo de Planejamento
20
20
 
21
- > **O modo plano é obrigatório.** Antes de executar, Claude ativa o modo plano para analisar o código impactado, propor um plano de implementação e aguardar sua validação antes de realizar qualquer alteração.
21
+ > **O modo de planejamento é obrigatório.** Antes de executar, Claude ativa o modo de planejamento para analisar o código impactado, propor um plano de implementação e aguardar a sua validação antes de fazer qualquer alteração.
22
22
 
23
23
  ## MISSÃO
24
24
 
25
25
  ### Etapa 1: Identificar o padrão ARIA
26
26
 
27
- Consultar o ARIA Authoring Practices Guide (APG) para o padrão correspondente.
27
+ Consultar o Guia de Práticas de Autoria ARIA (APG) para o padrão correspondente.
28
28
 
29
29
  ### Etapa 2: Produzir a especificação
30
30
 
31
31
  ```
32
32
  ══════════════════════════════════════════════════════════════
33
- ♿ ESPECIFICAÇÃO ACESSIBILIDADE: {NOME_COMPONENTE}
33
+ ♿ ESPECIFICAÇÃO DE ACESSIBILIDADE: {NOME_DO_COMPONENTE}
34
34
  ══════════════════════════════════════════════════════════════
35
35
 
36
36
  Tipo: {Button | Input | Dialog | Listbox | Tabs | ...}
@@ -42,14 +42,24 @@ Data: {data}
42
42
  ──────────────────────────────────────────────────────────────
43
43
 
44
44
  ### Elemento nativo recomendado
45
+
45
46
  ```html
46
- <!-- Sempre preferir elemento nativo -->
47
+ <!-- Sempre prefira o elemento nativo -->
47
48
  <{elemento} ...>
48
49
  {conteúdo}
49
50
  </{elemento}>
50
51
  ```
51
52
 
53
+ ### Se componente customizado for necessário
54
+
55
+ ```html
56
+ <div role="{role}" ...>
57
+ {conteúdo}
58
+ </div>
59
+ ```
60
+
52
61
  ### Estrutura completa
62
+
53
63
  ```html
54
64
  <!-- Exemplo completo com ARIA -->
55
65
  <div
@@ -57,7 +67,8 @@ Data: {data}
57
67
  aria-{atributo}="{valor}"
58
68
  tabindex="0"
59
69
  >
60
- <span id="{id}-label">{Label}</span>
70
+ <span id="{id}-label">{Rótulo}</span>
71
+ <div id="{id}-description">{Descrição}</div>
61
72
  {conteúdo}
62
73
  </div>
63
74
  ```
@@ -66,77 +77,324 @@ Data: {data}
66
77
  🏷️ ATRIBUTOS ARIA
67
78
  ──────────────────────────────────────────────────────────────
68
79
 
69
- ### Atributos requeridos
80
+ ### Atributos obrigatórios
81
+
70
82
  | Atributo | Valor | Quando | Descrição |
71
83
  |----------|-------|--------|-----------|
72
- | role | {role} | Sempre (se custom) | Define o tipo |
73
- | aria-label | "{texto}" | Se não label visível | Label acessível |
84
+ | role | {role} | Sempre (se customizado) | Define o tipo |
85
+ | aria-label | "{texto}" | Se sem rótulo visível | Rótulo acessível |
86
+ | aria-labelledby | "{id}" | Se rótulo visível | Referência ao rótulo |
74
87
 
75
88
  ### Atributos condicionais
89
+
76
90
  | Atributo | Valor | Quando | Descrição |
77
91
  |----------|-------|--------|-----------|
92
+ | aria-describedby | "{id}" | Se há descrição | Referência à descrição |
78
93
  | aria-expanded | "true"/"false" | Se expansível | Estado aberto/fechado |
94
+ | aria-controls | "{id}" | Se controla outro | ID do elemento controlado |
95
+ | aria-owns | "{id}" | Se DOM separado | Relação pai |
96
+ | aria-haspopup | "dialog"/"menu"/"listbox" | Se popup | Tipo de popup |
97
+ | aria-pressed | "true"/"false" | Se toggle | Estado pressionado |
98
+ | aria-selected | "true"/"false" | Se seleção | Estado selecionado |
99
+ | aria-checked | "true"/"false"/"mixed" | Se caixa de seleção | Estado marcado |
79
100
  | aria-disabled | "true" | Se desabilitado | Estado desabilitado |
101
+ | aria-invalid | "true" | Se erro | Estado inválido |
102
+ | aria-required | "true" | Se obrigatório | Campo obrigatório |
103
+ | aria-busy | "true" | Se carregando | Em progresso |
104
+ | aria-live | "polite"/"assertive" | Se dinâmico | Anunciar alteração |
105
+ | aria-atomic | "true" | Com aria-live | Anunciar tudo |
106
+
107
+ ### Estados por interação
108
+
109
+ | Estado | Atributos ARIA |
110
+ |--------|----------------|
111
+ | Padrão | {atributos base} |
112
+ | Hover | Sem alteração ARIA |
113
+ | Foco | Sem alteração ARIA |
114
+ | Expandido | aria-expanded="true" |
115
+ | Recolhido | aria-expanded="false" |
116
+ | Selecionado | aria-selected="true" |
117
+ | Desabilitado | aria-disabled="true" |
118
+ | Carregando | aria-busy="true" |
119
+ | Erro | aria-invalid="true", aria-errormessage="{id}" |
80
120
 
81
121
  ──────────────────────────────────────────────────────────────
82
122
  ⌨️ NAVEGAÇÃO POR TECLADO
83
123
  ──────────────────────────────────────────────────────────────
84
124
 
125
+ ### Teclas principais
126
+
85
127
  | Tecla | Ação | Detalhe |
86
128
  |-------|------|---------|
87
129
  | Tab | Foco no componente | Entra no componente |
88
- | Enter | Ativar | Ação principal |
89
- | Space | Ativar (toggle) | Para botões toggle |
130
+ | Shift+Tab | Foco anterior | Sai do componente |
131
+ | Enter | Ativar | Ação primária |
132
+ | Space | Ativar (toggle) | Para botões de alternância |
90
133
  | Escape | Fechar/Cancelar | Se popup/modal |
91
- | Setas | Navegação interna | Em listas |
134
+ | Seta para cima | Item anterior | Navegação em lista |
135
+ | ↓ Seta para baixo | Próximo item | Navegação em lista |
136
+ | ← Seta para esquerda | Item anterior (horizontal) | Abas, slider |
137
+ | → Seta para direita | Próximo item (horizontal) | Abas, slider |
138
+ | Home | Primeiro item | Navegação rápida |
139
+ | End | Último item | Navegação rápida |
140
+
141
+ ### Gestão do foco
142
+
143
+ | Situação | Comportamento |
144
+ |----------|---------------|
145
+ | Abertura | Foco no {primeiro elemento focalizável} |
146
+ | Fechamento | Foco retorna ao {elemento acionador} |
147
+ | Navegação interna | Roving tabindex OU aria-activedescendant |
148
+ | Armadilha de foco | {Sim para modal / Não para dropdown} |
149
+
150
+ ### Roving tabindex (se aplicável)
151
+
152
+ ```html
153
+ <!-- Apenas um elemento focalizável por vez -->
154
+ <div role="tablist">
155
+ <button role="tab" tabindex="0" aria-selected="true">Aba 1</button>
156
+ <button role="tab" tabindex="-1" aria-selected="false">Aba 2</button>
157
+ <button role="tab" tabindex="-1" aria-selected="false">Aba 3</button>
158
+ </div>
159
+ ```
160
+
161
+ ──────────────────────────────────────────────────────────────
162
+ 🎯 FOCO VISÍVEL
163
+ ──────────────────────────────────────────────────────────────
164
+
165
+ ### Estilo obrigatório (WCAG 2.4.11 AAA)
166
+
167
+ ```css
168
+ .{componente}:focus-visible {
169
+ /* Contorno visível */
170
+ outline: 2px solid var(--color-focus);
171
+ outline-offset: 2px;
172
+
173
+ /* Proporção de contraste ≥ 3:1 */
174
+ /* Área de foco ≥ perímetro visível */
175
+ }
176
+
177
+ /* Redefinir para mouse */
178
+ .{componente}:focus:not(:focus-visible) {
179
+ outline: none;
180
+ }
181
+ ```
182
+
183
+ ### Verificações
184
+
185
+ | Critério | Valor | Status |
186
+ |----------|-------|--------|
187
+ | Espessura do contorno | ≥ 2px | ✅ |
188
+ | Contraste do contorno | ≥ 3:1 | ✅ |
189
+ | Área visível | ≥ perímetro | ✅ |
190
+ | Visível em todos os fundos | Sim | ✅ |
92
191
 
93
192
  ──────────────────────────────────────────────────────────────
94
193
  🔊 ANÚNCIOS DO LEITOR DE TELA
95
194
  ──────────────────────────────────────────────────────────────
96
195
 
97
196
  ### Ao entrar (foco)
197
+
98
198
  ```
99
- "{Label}, {papel}, {estado}"
199
+ "{Rótulo}, {role}, {estado}"
200
+
100
201
  Exemplos:
101
202
  - "Enviar, botão"
102
203
  - "Menu principal, menu, recolhido"
204
+ - "Nome, campo de texto, obrigatório"
205
+ - "Newsletter, caixa de seleção, não marcada"
103
206
  ```
104
207
 
105
- ### Durante interação
208
+ ### Durante a interação
209
+
106
210
  | Ação | Anúncio |
107
211
  |------|---------|
108
212
  | Expansão | "expandido" / "recolhido" |
213
+ | Seleção | "selecionado" |
214
+ | Alternância | "ativado" / "desativado" |
215
+ | Carregando | "Carregando" |
216
+ | Sucesso | "{mensagem de sucesso}" |
109
217
  | Erro | "Erro: {mensagem}" |
110
218
 
219
+ ### Conteúdo dinâmico (aria-live)
220
+
221
+ ```html
222
+ <!-- Notificações educadas (não urgentes) -->
223
+ <div aria-live="polite" aria-atomic="true">
224
+ {mensagem toast}
225
+ </div>
226
+
227
+ <!-- Notificações urgentes (erros) -->
228
+ <div aria-live="assertive" aria-atomic="true">
229
+ {mensagem de erro}
230
+ </div>
231
+ ```
232
+
233
+ ──────────────────────────────────────────────────────────────
234
+ 📏 CONTRASTE (WCAG AAA)
235
+ ──────────────────────────────────────────────────────────────
236
+
237
+ ### Texto
238
+
239
+ | Tipo | Proporção requerida | Verificação |
240
+ |------|---------------------|-------------|
241
+ | Texto normal (< 18px) | ≥ 7:1 | {cor} / {fundo} = {proporção} |
242
+ | Texto grande (≥ 18px ou 14px negrito) | ≥ 4,5:1 | {cor} / {fundo} = {proporção} |
243
+
244
+ ### Elementos de IU
245
+
246
+ | Elemento | Proporção requerida | Verificação |
247
+ |----------|---------------------|-------------|
248
+ | Bordas | ≥ 3:1 | {cor} / {fundo} = {proporção} |
249
+ | Ícones | ≥ 3:1 | {cor} / {fundo} = {proporção} |
250
+ | Contorno de foco | ≥ 3:1 | {cor} / {fundo} = {proporção} |
251
+
252
+ ### Estados
253
+
254
+ | Estado | Verificação de contraste |
255
+ |--------|--------------------------|
256
+ | Padrão | ✅ {proporção} |
257
+ | Hover | ✅ {proporção} |
258
+ | Foco | ✅ {proporção} |
259
+ | Desabilitado | ⚠️ Não obrigatório, mas recomendado |
260
+
111
261
  ──────────────────────────────────────────────────────────────
112
262
  📐 ALVOS DE TOQUE (WCAG 2.5.5 AAA)
113
263
  ──────────────────────────────────────────────────────────────
114
264
 
265
+ ### Dimensões mínimas
266
+
115
267
  | Critério | Valor | Status |
116
268
  |----------|-------|--------|
117
269
  | Tamanho mínimo | 44 × 44 pixels CSS | ✅/❌ |
118
270
  | Espaçamento entre alvos | ≥ 8px | ✅/❌ |
119
271
 
272
+ ### Implementação
273
+
274
+ ```css
275
+ .{componente} {
276
+ min-width: 44px;
277
+ min-height: 44px;
278
+ /* OU padding para atingir 44px */
279
+ padding: 10px 16px; /* se altura do texto ~24px */
280
+ }
281
+
282
+ /* Botões com ícone */
283
+ .{componente}-icon {
284
+ width: 44px;
285
+ height: 44px;
286
+ display: flex;
287
+ align-items: center;
288
+ justify-content: center;
289
+ }
290
+ ```
291
+
292
+ ──────────────────────────────────────────────────────────────
293
+ 🧪 TESTES A REALIZAR
294
+ ──────────────────────────────────────────────────────────────
295
+
296
+ ### Automatizados
297
+
298
+ - [ ] axe DevTools: 0 violações
299
+ - [ ] Lighthouse Accessibility: 100/100
300
+ - [ ] ESLint jsx-a11y: 0 erros
301
+
302
+ ### Manuais
303
+
304
+ - [ ] Navegação completa por teclado
305
+ - [ ] Foco visível em cada etapa
306
+ - [ ] Sem armadilha de teclado
307
+ - [ ] Ordem de foco lógica
308
+
309
+ ### Leitor de tela
310
+
311
+ - [ ] VoiceOver (macOS/iOS): anúncios corretos
312
+ - [ ] NVDA (Windows): navegação em listas/tabelas
313
+ - [ ] TalkBack (Android): se móvel
314
+
315
+ ### Casos extremos
316
+
317
+ - [ ] Zoom 400%: sem perda de conteúdo
318
+ - [ ] Modo de alto contraste: visível
319
+ - [ ] Movimento reduzido: animações respeitadas
320
+
321
+ ──────────────────────────────────────────────────────────────
322
+ 💻 EXEMPLO DE IMPLEMENTAÇÃO
323
+ ──────────────────────────────────────────────────────────────
324
+
325
+ ```tsx
326
+ // {Componente}.tsx
327
+ import { forwardRef, useId } from 'react';
328
+
329
+ interface {Componente}Props {
330
+ label: string;
331
+ description?: string;
332
+ disabled?: boolean;
333
+ // ...outras props
334
+ }
335
+
336
+ export const {Componente} = forwardRef<HTML{Elemento}Element, {Componente}Props>(
337
+ ({ label, description, disabled, ...props }, ref) => {
338
+ const id = useId();
339
+ const descriptionId = description ? `${id}-description` : undefined;
340
+
341
+ return (
342
+ <{elemento}
343
+ ref={ref}
344
+ id={id}
345
+ role="{role}"
346
+ aria-label={label}
347
+ aria-describedby={descriptionId}
348
+ aria-disabled={disabled}
349
+ tabIndex={disabled ? -1 : 0}
350
+ {...props}
351
+ >
352
+ {/* Conteúdo */}
353
+
354
+ {description && (
355
+ <span id={descriptionId} className="sr-only">
356
+ {description}
357
+ </span>
358
+ )}
359
+ </{elemento}>
360
+ );
361
+ }
362
+ );
363
+
364
+ {Componente}.displayName = '{Componente}';
365
+ ```
366
+
120
367
  ──────────────────────────────────────────────────────────────
121
368
  ✅ CHECKLIST DE VALIDAÇÃO
122
369
  ──────────────────────────────────────────────────────────────
123
370
 
124
371
  ### Semântica
125
- - [ ] Elemento HTML nativo usado se possível
126
- - [ ] Role ARIA correto se custom
372
+ - [ ] Elemento HTML nativo utilizado quando possível
373
+ - [ ] Role ARIA correto se customizado
127
374
  - [ ] Estrutura DOM lógica
128
375
 
129
376
  ### ARIA
130
- - [ ] Atributos requeridos presentes
131
- - [ ] Sem excesso de ARIA (nativo > ARIA)
377
+ - [ ] Atributos obrigatórios presentes
378
+ - [ ] Atributos condicionais corretos
379
+ - [ ] Sem sobrecarga de ARIA (nativo > ARIA)
132
380
 
133
381
  ### Teclado
134
- - [ ] Focável (tabindex apropriado)
382
+ - [ ] Focalizável (tabindex apropriado)
135
383
  - [ ] Todas as ações via teclado
136
384
  - [ ] Sem armadilha de teclado
137
385
  - [ ] Foco visível conforme
138
386
 
387
+ ### Anúncios
388
+ - [ ] Rótulo anunciado ao focar
389
+ - [ ] Estados anunciados na mudança
390
+ - [ ] Erros com aria-live assertive
391
+
139
392
  ### Contraste
140
393
  - [ ] Texto ≥ 7:1 (AAA)
141
- - [ ] UI ≥ 3:1
394
+ - [ ] IU ≥ 3:1
395
+ - [ ] Foco ≥ 3:1
396
+
397
+ ### Toque
398
+ - [ ] Alvos ≥ 44×44px
399
+ - [ ] Espaçamento ≥ 8px
142
400
  ```