fix(legal): MSA/SLA content, hide DPA/Security Addendum, On This Page TOC + mobile dropdown - #1626
Merged
Conversation
- Add an opt-in collapsible prop to TableOfContents.astro that groups h3 sub-headings under their parent h2 behind a chevron toggle, so long docs (e.g. the MSA) don't list every sub-section at once. The group containing the active heading auto-expands on scroll and collapses the rest; the chevron also allows manually peeking at other groups. Handbook's usage is untouched (defaults to false). - Wire collapsible=true into the legal page's TOC. - Widen .legal-content's horizontal padding to md:px-10 lg:px-16, matching .handbook-content, to fix the squished feel between the sidenav/content/TOC columns. - Fix font-size regression on the h2 group headers: the new .toc-group wrapper had dropped the datum-text-sm sizing .toc-item used to provide via inheritance. - Fix the active-dot indicator getting clipped: overflow-y-auto (added for the long-TOC scroll fix) forces overflow-x to clip too per the CSS Overflow spec, cutting off the dot's intentional negative-left bleed onto the dashed guide line. Added pl-2 as safe clearance. - Fix missing gap between .toc-sublist items — without it, a wrapped line within one heading and the gap to the next heading looked identical. Also size legal's h3 sub-items down to datum-text-xs for clearer hierarchy (handbook's h3 sizing is untouched).
Publish the MSA and SLA content updates as-is. Hold DPA and Security Addendum back — the new source docs disclosed real security-posture changes (no dedicated SIEM, no IDS, backups not geographically separated, no pen test performed) and contradict themselves in places (MFA provider, SIEM/log-retention status, backup-testing cadence) that need a legal/security answer before either goes live. - Add a draft flag to the legal content schema (same pattern already used by handbook/other collections) and set it on both pages. - Filter draft entries out of getStaticPaths so the routes 404 and don't clutter the sidebar nav. - Drop both from the footer Trust Center links.
Effective Date definition flipped earlier->later, Security Addendum defined term and Exhibit C reference removed, Section 7.2 softened from 'aligned with SOC 2 Type II' to 'pursuing SOC 2 Type II', and placeholder URLs de-bracketed. Section 14.6 still references the now- removed Security Addendum/Section 7.5 concept — left as-is, mirroring the source; flagged for the doc owner separately.
- Icon-first pill matching .legal-toc-reopen exactly, so the toggle looks identical whether the panel is shown or hidden. - Drop the rotating chevron in favor of a static PanelRight icon in both places. - Make the reopen row sticky (top-9, matching the panel's own offset) so it stays reachable while scrolling instead of scrolling away.
.toc-panel-toggle and .legal-toc-reopen were duplicating the same pill recipe in two different files, which is exactly how cursor-pointer ended up on one and not the other. Extracted the shared shape/cursor/ spacing into one .toc-pill-toggle class both buttons now carry, so the two states can't drift apart again.
Bug fixes: - Active-dot indicator was getting clipped: overflow-hidden on .toc-nav and .toc-sublist (added for the collapse slide animation) clipped the dot's intentional negative-left bleed onto the dashed guide line. Dropped the CSS max-height animation in favor of instant hidden/flex toggling — correctness over a nice-to-have transition. - Reopen button was vertically squished: it was a flex item of a zero-height row, and the default align-items: stretch compressed it down to match, squeezing away its top/bottom padding entirely (this was the real "padding is broken on inactive" bug, not a horizontal padding issue as first suspected). - Reopen button's horizontal position didn't match the panel's own toggle: rewrote it from a flex child to position:absolute with left: calc(100% - 7.0625rem), an offset confirmed empirically via getBoundingClientRect (not by re-deriving column widths by hand, which kept missing padding contributions from .legal-content and .toc-container). width: w-max was required alongside it — shrink-to- fit sizing for an absolutely positioned element with only `left` set uses "available space" as its width ceiling, not natural content width, which was silently wrapping the button's text. - Icon sizing rule was scoped to .toc-panel-toggle specifically, so the reopen button's icon (which doesn't have that parent class) fell back to Lucide's 24x24 default and overflowed the pill. Made it unscoped. - Restored PanelRightOpen/PanelRightClose icons with explicit width/height props (not just a CSS class) after ruling out padding, sizing, and browser-cache theories one by one via direct curl/ Playwright verification. Feature: - Added a mobile/tablet "On This Page" dropdown, collapsed by default, reusing the existing panelCollapsible mechanism (no new UI, just a narrower-viewport default state set via matchMedia on load). Below md, CSS order utilities move it to render right after the sidenav instead of after all the article content, where plain DOM order would otherwise strand a "jump to section" aid. Below lg, its position/overflow reset to static — it scrolls with the page like the sidenav's own mobile toggle, not stuck like the desktop panel. - Reduced .legal-toc's own mobile top/bottom padding — sandwiched between .legal-sidenav's pb-8 and .legal-content's pt-9 (padding doesn't collapse between separate elements), its own pt-5/pb-8 was compounding into ~52px/~68px gaps. Every fix in here was verified via curl + a fresh headless-Chromium Playwright session (exact computed styles, pixel measurements, click- through interaction tests) before being reported as done, after an earlier attempt broke the layout by skipping that step.
Contributor
🔎 SEO & Meta ReviewAnalyzed 1 of 97 built HTML pages (mode: 📊 Score summary
No previous audit found — trend will appear next run. SEO ReviewSummary: The single page analysed is in good shape — canonical, robots, Open Graph, Twitter Card, and JSON-LD are all present and well-formed. One minor issue: the meta description is slightly short of the recommended 130-character floor. 2. Critical IssuesNone identified. 3. Improvements
4. Per-page notes
|
felixwidjaja
requested review from
AriaEdo and
ronggur
and removed request for
ronggur
August 12, 2026 11:06
AriaEdo
approved these changes
Aug 12, 2026
ronggur
approved these changes
Aug 12, 2026
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.
Summary
Publishes the MSA/SLA content updates, hides DPA/Security Addendum pending review, and ships the "On This Page" collapsible TOC work (originally PR #1623, merged into this branch per request) plus a round of bug fixes and a new mobile dropdown for it.
Content changes
draft: trueon a new legal-collection schema field, same pattern the handbook already uses) — the new source docs disclosed real security-posture changes (no dedicated SIEM, no IDS, backups not geographically separated, no pen test performed) and contradict themselves in places (MFA provider, SIEM/log-retention status, backup-testing cadence) that need a legal/security answer before either goes live. Removed from the sidebar and footer Trust Center links; routes 404."On This Page" TOC
.legal-contentreclaim the freed width.lg, the panel now renders as a collapsed-by-default dropdown (same pattern as the sidenav's own mobile toggle) instead of not rendering at all. CSSorderutilities place it right after the sidenav rather than after all the article content, where plain DOM order would otherwise strand it.Bugs found and fixed along the way
overflow-hiddenadded for the collapse slide animation — dropped the animation in favor of instant show/hide.align-items: stretchon its zero-height flex parent (the actual "padding is broken" bug — turned out to have nothing to do with horizontal padding, which several rounds of investigation had already proven correct).position: absolutewith an offset confirmed viagetBoundingClientRect, not derived by hand (the column-width math kept missing padding contributions from other elements)..legal-toc's own padding was compounding additively with its stacked neighbors' padding into ~52–68px gaps.Test plan
npx astro check— 0 errors throughout200), DPA/Security Addendum hidden (404) and removed from sidebar/footer navcurl(compiled CSS/served markup) and a fresh headless-Chromium Playwright session — exact computed styles, pixel-measured positions, full click-through interaction tests (collapse, reopen, group toggle) — after an earlier fix attempt broke the layout by skipping this stepNote on PR #1623
This branch merged in #1623's commit directly (per request, to combine both efforts into one branch/PR). That PR is now redundant — closing it as superseded by this one once this merges avoids the same commit landing twice.
🤖 Generated with Claude Code