Contribute

LTheme is a small theme, kept small on purpose. Bug reports, breakpoint fixes, and doc corrections are all welcome at github.com/max-ayn/ltheme-vitepress.

Local setup

sh
git clone https://github.com/max-ayn/ltheme-vitepress
cd ltheme-vitepress
pnpm install
pnpm docs:dev

This site itself (docs/) is the theme's dev sandbox: it consumes the theme via the self-referencing ltheme/theme import (see Use), so any change under src/theme is visible immediately at localhost:5173.

Where things live

  • src/theme/ — the theme itself: layout, styles, markdown plugins, Vue components.
  • src/theme/styles/components/ — one CSS file per component (sidebar.css, content.css, layout.css, …). Check breakpoints across files before adding a new one — several bugs here have come from the same rule being duplicated in two files with different cascade order.
  • src/theme/support/markdown-plugins.ts — the ^[...] sidenote syntax and the :::writing container.
  • docs/pages/ — this site's actual content, useful as a live example of every theme feature.

Before opening a PR

  • Run pnpm docs:build — it catches broken links and type errors in config.mts.
  • Check your change at a few widths, not just one. Most of this theme's mobile bugs have been a rule that worked at 393px but not at 700–950px, or vice versa.
  • Keep the diff scoped to the breakpoint or component you're fixing — this theme has accumulated enough duplicate/dead CSS rules already.