1.7 KiB
Asset Architecture
Source assets live under assets/. Generated copies under output/ should be treated as build output.
Styles
assets/styles/themes/: design tokens and theme variables.assets/styles/base/: global HTML element defaults.assets/styles/layout/: site shell and page layout primitives.assets/styles/components/: reusable component styles.assets/styles/pages/: page-specific styles.assets/styles/features/: optional feature styles.assets/styles/utilities/: responsive and utility rules.assets/styles/vendor/: third-party CSS copied into the site.
The legacy top-level CSS files are compatibility manifests that import from these folders. Prefer editing the modular files.
Scripts
assets/scripts/core/: framework-free domain logic.assets/scripts/application/: use-case orchestration.assets/scripts/adapters/: browser, storage, network, and external-service adapters.assets/scripts/ui/: DOM presentation behaviour.assets/scripts/pages/: page-specific applications.assets/scripts/features/: optional site features.assets/scripts/vendor/: third-party libraries copied into the site.
The Emacs build manifest in lisp/build-assets.el loads modular script paths directly. Top-level script files remain as legacy loaders for older hand-written references.
Boundaries
Keep core logic independent from the DOM, storage, network, and generated Org HTML. UI modules may read and write the DOM. Adapters isolate browser APIs and external services. Page scripts should compose these pieces without becoming shared dependencies.
Avatar image support has been removed. Do not add files under assets/avatars/ or references to /assets/avatars/.