前端与 UI
无独立 Node 前端。Django Templates + 预编译 Tailwind CSS v4 + 少量原生 JS。
资源
| 路径 | 用途 |
|---|---|
theme/static_src/src/styles.css、components.css | 源(本地改样式时) |
theme/static/css/dist/styles.css | 已提交的编译产物;生产 collectstatic 用这个 |
core/templatetags/ui_components.py | {% button %} {% form_field %} |
.cursor/skills/cssaportal-ui-components/SKILL.md | 组件约定 |
static/js/form-submit-guard.js | 防重复提交 |
static/js/file-preview-modal.js | 预览 |
仓库没有 package.json。改 static_src 后必须按 django-tailwind 文档重新编译并提交 dist,否则生产看不到变化。
约定
- Design tokens + BEM,优先用 template tag 而不是复制按钮 class
- 图标:Bootstrap Icons CDN(各 base 模板)
- 语言:界面中文;
LANGUAGE_CODE=zh-hans