Skip to content

fix: traduzir strings do admin e TagPicker, corrigir ícone de tag sem cor - #134

Merged
ram0ng1 merged 1 commit into
masterfrom
melhoria
May 24, 2026
Merged

fix: traduzir strings do admin e TagPicker, corrigir ícone de tag sem cor#134
ram0ng1 merged 1 commit into
masterfrom
melhoria

Conversation

@ram0ng1

@ram0ng1 ram0ng1 commented May 24, 2026

Copy link
Copy Markdown
Owner
  • admin/index.tsx: trans() agora passa extract:true e interpola fallback, sem isso o Translator devolvia NestedStringArray e o admin ficava preso em inglês.
  • TagPicker: localiza "Choose N primary/secondary tag(s)" e "Bypass tag requirements" via novas chaves em ramon-avocado.forum.home.
  • TagPicker dropdown: deixa de setar background:'' inline quando a tag não tem cor — combinado ao color:#fff do CSS, ficava ícone branco invisível no tema claro. CSS recebe fallback background:var(--primary-color).

… cor

- admin/index.tsx: trans() agora passa extract:true e interpola
  fallback, sem isso o Translator devolvia NestedStringArray e o
  admin ficava preso em inglês.
- TagPicker: localiza "Choose N primary/secondary tag(s)" e
  "Bypass tag requirements" via novas chaves em ramon-avocado.forum.home.
- TagPicker dropdown: deixa de setar background:'' inline quando a
  tag não tem cor — combinado ao color:#fff do CSS, ficava ícone
  branco invisível no tema claro. CSS recebe fallback
  background:var(--primary-color).
@ram0ng1 ram0ng1 added correcao Correção de erro (patch) release labels May 24, 2026
@ram0ng1 ram0ng1 self-assigned this May 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🔬 Performance benchmark

Home (/)

Métrica PR Master (baseline) Δ
Performance (score) 88 93 🔴 -5pp (-5.4%)
FCP 682 ms 681 ms 🔴 +1 ms (0.2%)
LCP 1881 ms 1736 ms 🔴 +145 ms (8.3%)
TBT 147 ms 0 ms 🔴 +147 ms
CLS 0.000 0.000 (=)
Speed Index 1181 ms 869 ms 🔴 +312 ms (35.9%)
TTI 1928 ms 1736 ms 🔴 +192 ms (11.0%)

💡 Recomendações (Lighthouse + dicas Flarum 2 / Avocado)

  • Sem compressão de texto — economia ~880 ms · ~1098 KB
    Habilite gzip/brotli no servidor (nginx: gzip on; gzip_types text/css application/javascript; ou brotli on; brotli_types ...). Esse é um setting de host, não da extensão, mas reportar aqui ajuda.
  • JavaScript não utilizado — economia ~640 ms · ~515 KB
    Use import() dinâmico para componentes só usados em rotas específicas (TeamPage, AvocadoSearchPage). O webpack faz split automático se você usar import("./components/TeamPage") dentro do routes ao invés de import estático no topo do index.tsx.
  • CSS não utilizado — economia ~480 ms · ~538 KB
    O bundle forum.css carrega tudo de less/forum/**. Divida por rota (Home/Discussion/Tag) via Extend\Frontend->css() condicional no JS, ou use PurgeCSS no webpack para o build de produção.
  • Cache HTTP curto — 8 resources found
    Os assets versionados em /assets/forum-<hash>.js deveriam ter Cache-Control: public, max-age=31536000, immutable. Configure no nginx/apache, não no Flarum.

/discussions

Métrica PR Master (baseline) Δ
Performance (score) 92 93 🔴 -1pp (-1.1%)
FCP 687 ms 681 ms 🔴 +6 ms (0.9%)
LCP 1769 ms 1741 ms 🔴 +28 ms (1.6%)
TBT 5 ms 0 ms 🔴 +5 ms
CLS 0.000 0.000 (=)
Speed Index 902 ms 868 ms 🔴 +34 ms (4.0%)
TTI 1769 ms 1741 ms 🔴 +28 ms (1.6%)

💡 Recomendações (Lighthouse + dicas Flarum 2 / Avocado)

  • Sem compressão de texto — economia ~920 ms · ~1103 KB
    Habilite gzip/brotli no servidor (nginx: gzip on; gzip_types text/css application/javascript; ou brotli on; brotli_types ...). Esse é um setting de host, não da extensão, mas reportar aqui ajuda.
  • CSS não utilizado — economia ~520 ms · ~544 KB
    O bundle forum.css carrega tudo de less/forum/**. Divida por rota (Home/Discussion/Tag) via Extend\Frontend->css() condicional no JS, ou use PurgeCSS no webpack para o build de produção.
  • JavaScript não utilizado — economia ~520 ms · ~538 KB
    Use import() dinâmico para componentes só usados em rotas específicas (TeamPage, AvocadoSearchPage). O webpack faz split automático se você usar import("./components/TeamPage") dentro do routes ao invés de import estático no topo do index.tsx.
  • Cache HTTP curto — 9 resources found
    Os assets versionados em /assets/forum-<hash>.js deveriam ter Cache-Control: public, max-age=31536000, immutable. Configure no nginx/apache, não no Flarum.

/tags

Métrica PR Master (baseline) Δ
Performance (score) 93 93 (=)
FCP 680 ms 683 ms 🟢 -2 ms (-0.3%)
LCP 1678 ms 1748 ms 🟢 -70 ms (-4.0%)
TBT 0 ms 0 ms (=)
CLS 0.000 0.000 (=)
Speed Index 796 ms 798 ms 🟢 -2 ms (-0.2%)
TTI 1678 ms 1748 ms 🟢 -70 ms (-4.0%)

💡 Recomendações (Lighthouse + dicas Flarum 2 / Avocado)

  • Sem compressão de texto — economia ~880 ms · ~1098 KB
    Habilite gzip/brotli no servidor (nginx: gzip on; gzip_types text/css application/javascript; ou brotli on; brotli_types ...). Esse é um setting de host, não da extensão, mas reportar aqui ajuda.
  • JavaScript não utilizado — economia ~480 ms · ~540 KB
    Use import() dinâmico para componentes só usados em rotas específicas (TeamPage, AvocadoSearchPage). O webpack faz split automático se você usar import("./components/TeamPage") dentro do routes ao invés de import estático no topo do index.tsx.
  • CSS não utilizado — economia ~440 ms · ~543 KB
    O bundle forum.css carrega tudo de less/forum/**. Divida por rota (Home/Discussion/Tag) via Extend\Frontend->css() condicional no JS, ou use PurgeCSS no webpack para o build de produção.
  • Cache HTTP curto — 8 resources found
    Os assets versionados em /assets/forum-<hash>.js deveriam ter Cache-Control: public, max-age=31536000, immutable. Configure no nginx/apache, não no Flarum.

🥑 Dicas gerais para acelerar o tema (Flarum 2 + Avocado)

  1. Build de produção minificado — confirme que npm run build rodou com mode: production (já é o caso no js/package.json). Webpack tree-shakes import { x } from "flarum/..." se o consumo for explícito.
  2. Split por rotaindex.tsx importa todos os Components no topo. Trocar para import() dinâmico nas rotas raramente acessadas (TeamPage, AvocadoSearchPage, TagsPage) reduz o forum.js inicial.
  3. Less crítico inline — Flarum 2 serve forum.css bloqueando. Considere extrair o CSS above-the-fold (header + 1ª thread visível) e injetar inline via Extend\Frontend->content(InlineCriticalCss::class).
  4. Avatares — sirva via <img loading="lazy"> em todos os ThreadCards/PostCards que não estiverem no fold inicial.
  5. <link rel="preconnect"> — se você usa CDN para fontes ou avatares S3, adicione preconnects no header.
  6. Extend\Frontend->js() rodam síncronos — todo arquivo js/dist/forum.js é parseado no boot. Cada extend() no index.tsx roda antes da primeira pintura.
  7. opcache + view cache — no host: opcache.enable=1, opcache.validate_timestamps=0 em produção, e php flarum cache:clear no deploy.
  8. HTTP/2 + Brotli no host — o Flarum gera bundles grandes; sem brotli você paga em transferência.

Lighthouse desktop, 1 run por URL. 🟢 = melhorou vs master · 🔴 = regrediu.

@ram0ng1
ram0ng1 merged commit 0a00767 into master May 24, 2026
15 checks passed
ram0ng1 added a commit that referenced this pull request Jun 11, 2026
fix: traduzir strings do admin e TagPicker, corrigir ícone de tag sem cor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

correcao Correção de erro (patch)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant