Refatoracao tokens design system - #191
Merged
Merged
Conversation
- Introduced a new setting in the admin panel to choose between the default and editorial hero styles for the discussion page. - Implemented the editorial hero style, which features a low, flat band design, replacing the tall header with a smaller title and adjusted layout. - Added corresponding LESS styles for the editorial variant, ensuring proper layout and appearance. - Updated locale files for English and Brazilian Portuguese to include new settings and descriptions. - Created a PHP class to manage the setting of the hero style attribute in the HTML document before the first paint, preventing flash of the default style.
…/ram0ng1/avocado into refatoracao-tokens-design-system
- Added a new editorial variant for the discussion page that widens the reading column and introduces a conversation spine. - Replaced the previous hero style with a standard hero while maintaining the editorial layout. - Updated styles in DiscussionPage, DiscussionEditorial, and PostBadges to accommodate the new layout. - Removed the deprecated DiscussionHeroStyle class and added DiscussionStyle to manage the editorial style attribute. - Updated localization files to reflect changes in discussion style terminology.
Contributor
📦 Bundle size🟡 Crescimento pequeno — gzip total +0.5 KB (+0.7%), abaixo do limiar de regressão (2% / 2 KB).
gzip nível 9. 🟢 = menor que o master · 🔴 = maior. Report-only — não bloqueia o merge. |
Contributor
🔒 Regressão de segurança (Semgrep diff vs
|
Contributor
🔬 Performance benchmarkHome (
|
| Métrica | PR | Master (baseline) | Δ |
|---|---|---|---|
| Performance (score) | 86 | 82 | 🟢 4pp (4.9%) |
| FCP | 1482 ms | 1781 ms | 🟢 -300 ms (-16.8%) |
| LCP | 1837 ms | 1989 ms | 🟢 -152 ms (-7.6%) |
| TBT | 0 ms | 61 ms | 🟢 -61 ms (-100.0%) |
| CLS | 0.000 | 0.000 | (=) |
| Speed Index | 1482 ms | 1781 ms | 🟢 -300 ms (-16.8%) |
| TTI | 1838 ms | 1989 ms | 🟢 -151 ms (-7.6%) |
💡 Recomendações (Lighthouse + dicas Flarum 2 / Avocado)
- Sem compressão de texto — economia ~960 ms · ~1160 KB
Habilite gzip/brotli no servidor (nginx:gzip on; gzip_types text/css application/javascript;oubrotli on; brotli_types ...). Esse é um setting de host, não da extensão, mas reportar aqui ajuda. - CSS não utilizado — economia ~520 ms · ~581 KB
O bundleforum.csscarrega tudo deless/forum/**. Divida por rota (Home/Discussion/Tag) viaExtend\Frontend->css()condicional no JS, ou use PurgeCSS no webpack para o build de produção. - Recursos bloqueando o render — economia ~520 ms
Mova CSS não-crítico para<link rel="preload">ou injete inline o CSS above-the-fold doforum.less. Em Flarum 2, oforum.cssé servido como bloqueante por padrão — consideremedia="print" onloadpara folhas não-críticas (ex.: dark theme). - JavaScript não utilizado — economia ~500 ms · ~536 KB
Useimport()dinâmico para componentes só usados em rotas específicas (TeamPage, AvocadoSearchPage). O webpack faz split automático se você usarimport("./components/TeamPage")dentro doroutesao invés de import estático no topo doindex.tsx. - Cache HTTP curto — 8 resources found
Os assets versionados em/assets/forum-<hash>.jsdeveriam terCache-Control: public, max-age=31536000, immutable. Configure no nginx/apache, não no Flarum.
/discussions
| Métrica | PR | Master (baseline) | Δ |
|---|---|---|---|
| Performance (score) | 86 | 86 | (=) |
| FCP | 1481 ms | 1502 ms | 🟢 -20 ms (-1.3%) |
| LCP | 1864 ms | 1807 ms | 🔴 +57 ms (3.1%) |
| TBT | 0 ms | 0 ms | (=) |
| CLS | 0.000 | 0.000 | (=) |
| Speed Index | 1481 ms | 1502 ms | 🟢 -20 ms (-1.3%) |
| TTI | 1864 ms | 1807 ms | 🔴 +57 ms (3.1%) |
💡 Recomendações (Lighthouse + dicas Flarum 2 / Avocado)
- Sem compressão de texto — economia ~960 ms · ~1166 KB
Habilite gzip/brotli no servidor (nginx:gzip on; gzip_types text/css application/javascript;oubrotli on; brotli_types ...). Esse é um setting de host, não da extensão, mas reportar aqui ajuda. - JavaScript não utilizado — economia ~580 ms · ~562 KB
Useimport()dinâmico para componentes só usados em rotas específicas (TeamPage, AvocadoSearchPage). O webpack faz split automático se você usarimport("./components/TeamPage")dentro doroutesao invés de import estático no topo doindex.tsx. - CSS não utilizado — economia ~520 ms · ~587 KB
O bundleforum.csscarrega tudo deless/forum/**. Divida por rota (Home/Discussion/Tag) viaExtend\Frontend->css()condicional no JS, ou use PurgeCSS no webpack para o build de produção. - Recursos bloqueando o render — economia ~520 ms
Mova CSS não-crítico para<link rel="preload">ou injete inline o CSS above-the-fold doforum.less. Em Flarum 2, oforum.cssé servido como bloqueante por padrão — consideremedia="print" onloadpara folhas não-críticas (ex.: dark theme). - Cache HTTP curto — 9 resources found
Os assets versionados em/assets/forum-<hash>.jsdeveriam terCache-Control: public, max-age=31536000, immutable. Configure no nginx/apache, não no Flarum.
/tags
| Métrica | PR | Master (baseline) | Δ |
|---|---|---|---|
| Performance (score) | 87 | 87 | (=) |
| FCP | 1490 ms | 1507 ms | 🟢 -18 ms (-1.2%) |
| LCP | 1748 ms | 1770 ms | 🟢 -22 ms (-1.2%) |
| TBT | 0 ms | 1 ms | 🟢 -1 ms (-100.0%) |
| CLS | 0.000 | 0.000 | (=) |
| Speed Index | 1490 ms | 1507 ms | 🟢 -18 ms (-1.2%) |
| TTI | 1748 ms | 1770 ms | 🟢 -22 ms (-1.2%) |
💡 Recomendações (Lighthouse + dicas Flarum 2 / Avocado)
- Sem compressão de texto — economia ~920 ms · ~1161 KB
Habilite gzip/brotli no servidor (nginx:gzip on; gzip_types text/css application/javascript;oubrotli on; brotli_types ...). Esse é um setting de host, não da extensão, mas reportar aqui ajuda. - Recursos bloqueando o render — economia ~520 ms
Mova CSS não-crítico para<link rel="preload">ou injete inline o CSS above-the-fold doforum.less. Em Flarum 2, oforum.cssé servido como bloqueante por padrão — consideremedia="print" onloadpara folhas não-críticas (ex.: dark theme). - JavaScript não utilizado — economia ~500 ms · ~566 KB
Useimport()dinâmico para componentes só usados em rotas específicas (TeamPage, AvocadoSearchPage). O webpack faz split automático se você usarimport("./components/TeamPage")dentro doroutesao invés de import estático no topo doindex.tsx. - CSS não utilizado — economia ~480 ms · ~586 KB
O bundleforum.csscarrega tudo deless/forum/**. Divida por rota (Home/Discussion/Tag) viaExtend\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>.jsdeveriam terCache-Control: public, max-age=31536000, immutable. Configure no nginx/apache, não no Flarum.
🥑 Dicas gerais para acelerar o tema (Flarum 2 + Avocado)
- Build de produção minificado — confirme que
npm run buildrodou commode: production(já é o caso nojs/package.json). Webpack tree-shakesimport { x } from "flarum/..."se o consumo for explícito. - Split por rota —
index.tsximporta todos os Components no topo. Trocar paraimport()dinâmico nas rotas raramente acessadas (TeamPage, AvocadoSearchPage, TagsPage) reduz oforum.jsinicial. - Less crítico inline — Flarum 2 serve
forum.cssbloqueando. Considere extrair o CSS above-the-fold (header + 1ª thread visível) e injetar inline viaExtend\Frontend->content(InlineCriticalCss::class). - Avatares — sirva via
<img loading="lazy">em todos os ThreadCards/PostCards que não estiverem no fold inicial. <link rel="preconnect">— se você usa CDN para fontes ou avatares S3, adicione preconnects no header.Extend\Frontend->js()rodam síncronos — todo arquivojs/dist/forum.jsé parseado no boot. Cadaextend()noindex.tsxroda antes da primeira pintura.- opcache + view cache — no host:
opcache.enable=1,opcache.validate_timestamps=0em produção, ephp flarum cache:clearno deploy. - 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.