Repository navigation
feat(ui): adopt the shared public-site layout from mctl-design 0.15.0 - #860
Conversation
mctl.ai, docs.mctl.ai and tg.mctl.ai had drifted apart in layout. The owner settled on one shell, which mctl-design 0.15.0 ships as site.css. tg.mctl.ai's 920px .wrap gave an 872px content column (284-1156 at a 1440 viewport), so nothing lined up with the header brand or the sibling sites. The header and footer now sit full-bleed in <body> and use the .mctl-site-* classes, so the 100vw breakout hacks are gone. The landing hero, section titles and card grid use the full container (1400px plus 20px gutters, i.e. 20-1420 at 1440). Every other page is long-form and keeps the 720px reading width via .mctl-site-prose. The design CSS pin moves to 0.15.0 and adds site.css to the set. The strict-CSP pages cannot load external CSS, so site.css is mirrored verbatim and inlined there, and the content pages inline it as the CDN fallback, as tokens.css already does. A test keeps the mirror's version in step with the pin.
|
Claude finished @mashkovd's task in 1m 31s —— View job Review of PR #860 (commit
|
Antigravity (agy) review — informationalModel: gemini-3.8-flash-high · commit No significant issues found. |
|
Skipping — this commit (3432cf4) already has a Claude review verdict. Push a new commit, or check the run log if you expected a fresh pass and the previous run actually failed. |
Antigravity (agy) review — informationalModel: gemini-3.8-flash-high · commit No significant issues found. |
|
Skipping — this commit (011ed0f) already has a Claude review verdict. Push a new commit, or check the run log if you expected a fresh pass and the previous run actually failed. |
Antigravity (agy) review — informationalModel: gemini-3.8-flash-high · commit No significant issues found. |
|
Skipping — this commit (9e02160) already has a Claude review verdict. Push a new commit, or check the run log if you expected a fresh pass and the previous run actually failed. |
Antigravity (agy) review — informationalModel: gemini-3.8-flash-high · commit No significant issues found. |
|
Skipping — this commit (bf49b0c) already has a Claude review verdict. Push a new commit, or check the run log if you expected a fresh pass and the previous run actually failed. |
Antigravity (agy) review — informationalModel: gemini-3.8-flash-high · commit No significant issues found. |
Why
mctl.ai, docs.mctl.ai and tg.mctl.ai drifted apart in layout. The owner settled on one shell, which mctl-design 0.15.0 ships as
site.css(mctlhq/mctl-design#171):On tg.mctl.ai the 920px
.wrapproduced an 872px content column (284-1156 at a 1440 viewport), so nothing lined up with the header brand or the sibling sites.What changes
internal/ui/chrome.go): the header is.mctl-site-header>.mctl-site-container.mctl-site-header__inner>.mctl-site-brand. The footer is.mctl-site-footer>.mctl-site-container.mctl-site-footer__innerwith__links/__copy. Both now sit directly in<body>, so the100vw/calc(50% - 50vw)breakout is gone. Nav, the CSS-only mobile menu checkbox and the theme toggle are unchanged.<div class="wrap">wrapper is replaced by<main class="mctl-site-container page">..mctl-site-herowith__text,__title,__ledeand__actions. Every section is.mctl-site-sectionwith anh2.mctl-site-section__title. The use-case cards are.mctl-site-grid. The local hero, section-title,.cta-rowand.card-gridrules are deleted..mctl-site-prose(720px)..mctl-site-container.site.cssjoinsmctl.cssandglobal.cssin the set. The strict-CSP pages cannot load external CSS, soassets/site.cssis a verbatim mirror of the published file. It is inlined there throughui.ComponentsCSS, and inlined on content pages as the CDN fallback before the CDN link, the same arrangementtokens.cssalready uses.tokens.cssgains the layout and subtitle roles thatsite.cssreads (prose width, section padding, stack, subtitle and body roles). Their values are unchanged from 0.14.0.https://ui.mctl.aionstyle-src. Strict-CSP pages inline everything. There is no SRI.TestSiteCSSMirrorMatchesPinnedVersionfails if the mirror's version header drifts fromDesignVersion. NewTestNoLocalPageWrapfails if.wrap,100vw,.topbar {ormax-width: 920pxcome back.This ships together with #845 (merged, unreleased), whose
.topbar-innerfix this PR replaces with.mctl-site-container.Measured locally (1440 and 375 viewports)
.auth-main)documentElement.scrollWidthThe mobile menu was checked too: the checkbox opens a full-width panel under the 64px header. Light and dark themes both checked.
The 0.15.0 CDN directory returned 404 at test time because #171 was not merged yet. So the local check ran on the inlined mirror, which is the fallback path. With 0.15.0 published, the CDN copy loads with identical content.
Merge order
Merge only after mctlhq/mctl-design#171 is merged and
https://ui.mctl.ai/0.15.0/{mctl,global,site}.cssserves 200. Until then the pages render from the inline fallback.🤖 Generated with Claude Code