feat(site): adopt the noctcore theme with the nocturne preset and redesign rule pages - #52
Merged
Merged
Conversation
Pin packageManager, the four setup-bun steps and the CONTRIBUTING requirement to 1.4.2. bun 1.4.2 reads and keeps the v1 text lockfile; the only lockfile change is the workspace version fields it syncs from package.json, with no resolution change.
Astro only skips its usage telemetry on CI. Set ASTRO_TELEMETRY_DISABLED=1 on each astro invocation so local dev, build, preview and sync send nothing too. bun runs scripts through its own shell on Windows, so the prefix works there.
Replace theme.css with the noctcore docs theme (base.css, components.css and presets/nocturne.css, in that load order) plus site.css for what the theme does not cover. The preset imports its own fonts, so the Head override that only loaded them goes. Expressive Code takes Nocturne's code themes and keeps the verdict plugin.
Every --nc-* token base.css and components.css read must be set by the preset for dark and for light; a missing one resolves to nothing and fails no build.
The site title reads as the noctcore wordmark over its crescent rule, then the product; on a phone only the product. A rule page title shows its namespace, quiet, over the rule name.
sync.ts writes the doc's summary as the page lead and replaces the one-line metadata with a six-cell facts strip (package, preset, autofix, suggestions, options, type information; harness cells for lint-meta rules), plus a status cell on a deprecated rule. The readmes and deprecation tests pinned the old line and now check the strip.
…le tables Rows carry data-label so they stack at phone width, the emoji become text badges with the opt-in and needs-options markers, the all-rules index opens with summary numbers and a heading row per package, and a rule id splits into namespace over name inside one code element.
Each card leads with the short name and version and shows how its rules split across the recommended preset, as a bar and in words.
Wrap the landing page's Yes, if and Probably not, if paragraphs in the fit pair. The prose is unchanged.
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
The docs site moves onto the noctcore theme's token system with the Nocturne preset (the current night-sky look, refined), and the rule pages, the rule index and the package cards get a redesign. The showcase-kit site uses the sibling Observatory preset from the same token contract (noctcore/showcase-kit#8).
Merge #51 first: this branch contains its bun 1.4.2 commit, so this diff shrinks to the site once that lands.
site/src/styles/noctcore/):base.cssmaps the--nc-*tokens onto Starlight's variables once,components.cssholds the shared pieces, andpresets/nocturne.csssets the tokens for dark and light and imports its own fonts (Space Grotesk and JetBrains Mono, already self-hosted).site.csskeeps this site's own rules. Expressive Code gets Nocturne's code colours, and the existing verdict plugin stays.noctcore / ESLint plugins, and a rule's title splits into a quiet namespace (noctcore-contracts/) over the rule name.The Incorrect and Correct frames get a tinted title bar, a coloured edge and a cross or tick, using the existing
verdict-*classes.rules.jsonandllms.txtkeep their shape.astroscript setsASTRO_TELEMETRY_DISABLED=1, because Astro only skips its usage telemetry on CI.A fix worth knowing: Starlight's Markdown content puts a top margin between sibling elements, which broke the grid pieces. Their cells reset it in
components.css.Test plan
bun install --frozen-lockfile,bun run build,bun run typecheck,bun run test(ESLint 10 and 9)bun run docs:build: 130 pages, 113 rule pages for 113 docs, 18575 root-relative links,rules.json113 entries with 113 URLsbun run --cwd site test(40 pass);bun run docs:readmesleaves the tree unchanged