Renderer final readonly class
Minn\Front\Renderer · public/minn/src/Minn/Front/Renderer.php · 90 lines
The interim public theme: one clean template until the block-theme reader lands. The body-class tokens are the contract (stylesheets and crawlers key off them); the markup around them is engine-defined.
Uses 11
Used by 2
Constants and properties
| private | CSS = ':root { color-scheme: light dark; } body { margin: 0; font: 17px/1.6 "Hanken Grotesk", "Helvetica Neue", sans-serif; background: #fbfbfc; color: #1a1a1f; } @media (prefers-color-scheme: dark) { body { background: #0b0b0d; color: #ececed; } } .site-header, main, .site-footer { max-width: 680px; margin: 0 auto; padding: 0 24px; } .site-header { padding-top: 32px; } .site-title { font-weight: 800; letter-spacing: -0.02em; text-decoration: none; color: inherit; font-size: 20px; } main { padding-top: 40px; padding-bottom: 40px; } h1 { font-size: 36px; letter-spacing: -0.02em; line-height: 1.15; margin: 0 0 24px; } .post-list { list-style: none; margin: 0; padding: 0; } .post-list li { padding: 18px 0; border-top: 1px solid rgba(128,128,140,0.25); } .post-list a { font-weight: 600; color: inherit; text-decoration: none; font-size: 20px; } .post-list time { display: block; font-size: 13px; opacity: 0.6; } .post-list p { margin: 6px 0 0; opacity: 0.85; } .entry-content img { max-width: 100%; height: auto; } .site-footer { padding-bottom: 32px; font: 12px/1.6 "JetBrains Mono", monospace; opacity: 0.6; }' | |
| private | readonly Minn\Db $db | Promoted from the constructor. |
| private | readonly Minn\Front\Permalinks $permalinks | Promoted from the constructor. |
Public
| new | __construct(Minn\Db $db, Minn\Front\Permalinks $permalinks)# | |
| method | bodyClasses(): array# | The body classes the main query stands for (Theme\QueryClasses); none before one stands. @return list<string> |
| method | render(Minn\Front\Resolution $resolution, Minn\Content\Page $page): string# | The interim page for a resolution, without a theme: a listing shows the main query's page of posts. |
Internals 2
Private and protected methods: how the class does its work. Not a contract; they change whenever the code is tidied.
Nothing matches.