Skip to content

Init. custom site design - #1278

Open
trespaul wants to merge 1 commit into
NixOS:masterfrom
trespaul:init-custom
Open

Init. custom site design#1278
trespaul wants to merge 1 commit into
NixOS:masterfrom
trespaul:init-custom

Conversation

@trespaul

@trespaul trespaul commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

To avoid the docs site looking like Just Another Starlight Site, I've replaced Starlight with a custom design. See below for a list of changes — please let me know if (and how) I should split these into more granular commits.

The site rendered in this PR is basically non-functional / cosmetic, and all links point to the current documentation, but some components are already working with test data (e.g. TableOfContents). (See https://github.com/trespaul/nix.dev/tree/wip-custom for in-progress work).

Preview

Live preview: https://preview-nix-docs.trespaul.workers.dev/

light dark
image image

Things Done

  • remove Starlight
  • add packages
    • Expressive Code (directly)
    • Tailwind
    • astro-iconset & Material Design Icons
  • update packages
  • configure Sätteri to parse directives (rendering to HTML still to be implemented)
  • configure content to use custom loader
  • add custom site config for site-specific information (title, description, copyright, links)
  • add (most likely temporary) custom colour theme
  • with custom code highlighting themes (VS Code theme format — enormous files 😬 but I parameterised them for easy changes [although this requires them to be serialised and immediately deserialised to be read into Expressive Code 🤦])
  • scaffold custom components
    • Footer (copyright, copyright, imprint, privacy policy)
    • Head (just <head>)
    • Header (site title, search, mobile menu toggle, social icons, light/dark theme selector)
    • SiteTitle
    • SocialIcons
    • TableOfContents & TableOfContentsItem
  • skeleton/placeholder components
    • Sidebar
    • Search
    • MobileMenuToggle
    • ThemeSelector
  • layouts
    • Base: Head, Header, Sidebar, Footer
    • Page: wrap contents & TableOfContents in Base; define prose style
  • set tsconfig to strictest for Type Safety™
  • landing page: links to current docs

Things to be done next

(In no particular order:)

  • render directives (for asides, specifically)
  • prose design
    • asides
    • tables
    • tabs
    • don't centre align content when lines shorter than 80ch
  • sidebars
    • overflow scroll
    • collapsible sections
    • scroll observer for ToC
  • collapsible menus
  • setup fonts
  • align header elements
  • theme mode selector
  • code highlighting more vibrant?
  • inline code and Expressive Code same bg
  • skiplink
  • heading links has heading in view, not behind header
  • page
    • "edit this page" / page source links
    • prev/next links at bottom of page?
  • search (everything) (shared library?)
  • 404 page
  • content
    • fix content at the source
    • heading links
    • link checking
    • determine how to load all content
    • dynamic rendering
  • versioning (static content not versioned, but dynamic is)
  • sitemap?
  • render markdown in headings (specifically inline code)

- remove Starlight
- add packages
  - Expressive Code (directly)
  - Tailwind
  - astro-iconset & Material Design Icons
- update packages
- configure Sätteri to parse directives
  (rendering to HTML still to be implemented)
- configure content to use custom loader
- add custom site config for site-specific information
  (title, description, copyright, links)
- add tentative custom colour theme
- with Expressive Code themes (VS Code theme format)
- scaffold custom components
  - Footer (copyright, copyright, imprint, privacy policy)
  - Head (`<head>`)
  - Header (site title, search, mobile menu toggle,
    social icons, light/dark theme selector)
  - SiteTitle
  - SocialIcons
  - TableOfContents & TableOfContentsItem
- skeleton/placeholder components
  - Sidebar
  - Search
  - MobileMenuToggle
  - ThemeSelector
- layouts
  - Base: Head, Header, Sidebar, Footer
  - Page: wrap contents & TableOfContents in Base;
    define prose style
- set tsconfig to strictest for Type Safety™
- landing page: links to current docs
@trespaul
trespaul requested a review from a team as a code owner August 8, 2026 14:58
@nixos-discourse

Copy link
Copy Markdown

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/2026-08-05-documentation-team-meeting-notes/79372/2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants