SnowLuma WebUI
SnowLuma's browser console is a Vite + React application for managing runtime status, OneBot configuration, logs, storage, and server settings.
Interaction conventions
- Destructive actions and second confirmations stay in modal dialogs.
- Operations that may take time show a bottom-right running state.
- Completed and failed operations use bottom-right result notices that close automatically after a visible countdown.
- Routine, high-frequency adjustments should not generate a notice for every intermediate edit.
- Data-backed surfaces use the Interior Skeleton Swap defaults (120 ms delay, 380 ms minimum visibility) so fast local responses do not flash a placeholder. Submission, upload, and other explicit operation progress keeps its spinner.
- Variable-height content must release the skeleton's reserved box after it is ready; do not introduce a second scrolling region inside the page.
- The mobile navigation menu uses a controlled Icon Morph whose visual state follows the actual drawer state.
- Failures must remain visible in the affected control and in the operation result; do not convert failed responses into successful feedback.
- Password change flows use floating labels and inline validation consistently.
- Password strength details appear only while the new-password field has focus and leave with the same motion language when focus moves away.
- The first-run wizard keeps agreement text as the primary reading surface and aligns each step's actions inside one responsive footer. Settings includes a visible developer page for safely replaying this wizard and exercising the page-level crash screen; replayed consent and passwords are never persisted.
Local development
From the repository root:
pnpm --filter webui dev
pnpm --filter webui typecheck
pnpm --filter webui lint
pnpm --filter webui test
pnpm --filter webui build