Materialize feature badges#574
Draft
authzed-catherine wants to merge 7 commits into
Draft
Conversation
Contributor
|
Preview deployment status for this pull request.
|
The badge was carrying two jobs in one control: which Materialize feature a page documents, and how finished that feature is. A pill is the right form for the first and a poor one for the second — it has no room to say what "Early Access" means or who to contact — and since both features share the same status today, it read as ten repetitions of a word that couldn't explain itself. Split them. The pill carries identity plus an asterisk; a colour-matched note carries what the asterisk means, docked in the TOC rail beside the pill it belongs to. Same accent token on both, so they read as one marker across two columns rather than two unrelated notices. Nextra hides the TOC below 80rem, which would leave the asterisk pointing at nothing on a laptop, so the note also renders inline under the pills and CSS shows exactly one. That 80rem is duplicated from Nextra's own `x:max-xl:hidden` — it isn't exposed as a variable, so a future Nextra bump needs to re-check it. Also lifts the Sandworm accent palette out of `.docs-home` onto :root and html.dark. It was scoped to the landing page, so feature-badge.css had to hardcode the teal and violet HSL values with a comment as the only link back to the source of truth. The badge now reads them via var(), and its two html.dark override blocks go away since the tokens flip themselves. The --stone-* ramp stays scoped: it's inverted for that page, not general-purpose. Page-to-feature mapping moves into lib/materialize-features.ts. Nextra's toc.extraContent is a global slot with no access to page props, so the note can only learn its feature from the route; keeping a prop on the pill as well would have been a second source of truth. MDX now uses a bare <FeatureBadge /> and Snapshots renders both pills from it. Early access is a separate flag from the feature list, so a feature going GA is a one-line change that drops its asterisk and note while keeping pill and colour. Colour values are unchanged throughout: --teal-500 resolves to 178 35% 33% light / 177 28.2% 45.9% dark and --violet-500 to 253 62% 50% / 253 73.4% 63.1%, matching what shipped. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…gram - New concept pages: Hydration and Watched Permissions, grounded in the Tiger source (../internal/tiger) - Overview page: adds a system architecture diagram showing the services behind Materialize (Snapshotter, Hydrator, Datastore, SpiceDB, Cache Server, Event Log) and how they connect to a customer's own systems - Renamed "Consuming Client" to "Event Processor" (guide + diagram) to avoid confusion with a SpiceDB client - Recolored the Accelerated Queries badge/diagram accent from teal to blue for better legibility, still sourced from the authzed.com palette - Flagged the new/changed pages as "Needs Review" in the sidebar nav Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…to the overview and some improvements to the concept pages
Reworks the diagram to follow AuthZed's Sandworm design system (design/diagrams.md): dashed 7-3 scope containers vs. solid node borders, mono-caps container labels riding the dashed edge, orthogonal connectors with rounded corners, and stone/teal color tokens instead of black/grey. Also fixes several label-overlap and text-wrapping issues found along the way. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.
Description
Identified the Materialize content for the accelerated queries use-case versus the event streams use-case.
Follow-up: pill + note split
The badge was carrying two jobs in one control — which feature a page documents, and how finished that feature is. A pill suits the first and not the second: it has no room to say what "Early Access" means or who to contact, and since both features share the same status today it read as ten repetitions of a word that couldn't explain itself.
Split into two markers that read as one:
Snapshots documents both features and renders both pills from a single tag.
Implementation notes for reviewers
Accent tokens moved to
:root. The Sandworm palette was scoped under.docs-home, sofeature-badge.csshad to hardcode the teal and violet HSL values with a comment as the only link back to the source of truth. They now live inapp/globals.cssand the badge reads them viavar(), which also removes its twohtml.darkoverride blocks — the tokens flip themselves. Colour values are unchanged:--teal-500is178 35% 33%light /177 28.2% 45.9%dark,--violet-500is253 62% 50%/253 73.4% 63.1%. The--stone-*ramp stays scoped to.docs-home; it's inverted for that page and isn't general-purpose.Authoring changed. MDX now uses a bare
<FeatureBadge />; the page-to-feature mapping lives inlib/materialize-features.ts. This is forced by Nextra —toc.extraContentis a global slot with no access to page props, so the note can only learn its feature from the route, and keeping a prop on the pill as well would have been a second source of truth. Adding a new Materialize page now means adding an entry to that map. Worth a second opinion: the inline prop may be preferable even at the cost of duplication.80rem(x:max-xl:hidden), which would leave the asterisk pointing at nothing on a laptop. The note therefore renders in both placements and CSS shows exactly one. That80remis duplicated infeature-notes.cssbecause Nextra doesn't expose it as a variable — a future Nextra upgrade needs to re-check it, or the two placements desync and you get either both notes or neither.Early access is a separate flag from the feature list, so a feature reaching GA is a one-line change that drops its asterisk and note while keeping its pill and colour.
Testing
pnpm buildpasses (92 pages),pnpm format:checkclean./materialize/concepts/snapshots(two pills, two notes) and the single-feature pages (one each); confirmed nothing leaks onto non-Materialize pages.Open questions
getting-started/limitationsis the only Materialize page besides Overview without a badge. Deliberate, or an oversight?References