op-packages/luci-theme-aurora/CLAUDE.md
2026-04-13 03:35:37 +08:00

2.0 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Commands

All dev commands run from .dev/:

cd .dev/
pnpm dev      # Start Vite dev server (proxies to OpenWrt device)
pnpm build    # Clean + build production assets to htdocs/luci-static/
pnpm clean    # Remove build output only

No test suite or linter CLI. Formatting uses Prettier with format-on-save (.vscode/settings.json).

Architecture

Dual-layer build: source in .dev/ → OpenWrt-compatible output in htdocs/luci-static/.

  • .dev/src/media/main.csshtdocs/luci-static/aurora/main.css (TailwindCSS v4, lightningcss)
  • .dev/src/resource/*.jshtdocs/luci-static/resources/*.js (Terser, no bundling)
  • .dev/public/aurora/htdocs/luci-static/aurora/ (copied as-is)
  • ucode/template/themes/aurora/*.ut — server-side templates, not processed by Vite

CSS: single entry point .dev/src/media/main.css. All styling MUST use TailwindCSS v4 utility classes via @apply — no raw CSS properties (e.g. write @apply text-sm font-semibold; not font-size: 14px; font-weight: 600;). Use CSS Nesting syntax for selectors. Theme colors defined as OKLCH custom properties in :root and mapped via @theme inline. @layer at-rules stripped by PostCSS plugin for OpenWrt compatibility.

JavaScript: LuCI E() DOM API (not React/Vue). Minified but not bundled.

Dark mode: @custom-variant dark keyed on [data-darkmode=true], switching logic in header.ut.

Templates: header.ut, footer.ut, sysauth.ut — ucode templates rendered server-side on OpenWrt.

Key References

  • Development guide: .dev/docs/DEVELOPMENT.md — dev server setup, env config, proxy details, CI workflows, directory structure
  • Vite config: .dev/vite.config.ts — custom plugins (luci-js-compress, local-serve, ut-sync, remove-layers)
  • Version: PKG_VERSION and PKG_RELEASE in Makefile