CSS 与 Tailwind

样式表架构

Chamilo 的样式按照以下顺序组织:

  1. Tailwind CSS — 用于布局、间距和颜色的实用类。配置为 important: true,以便实用类覆盖 PrimeVue 组件的默认样式。

  2. SCSS — 自定义样式位于 assets/css/scss/,按原子、分子、有机体、布局和组件分层组织。

  3. PrimeVue 组件样式 — 在 assets/css/scss/atoms/ 内按组件覆盖。

  4. 主题 colors.css — 自定义 CSS 属性用于当前活动的颜色主题,最后加载以覆盖所有其他样式。

PrimeFlex 在 package.json 中列出,但未被导入 — Tailwind 涵盖了所有实用类需求。

主样式表 (assets/css/app.scss)

app.scss 是 Webpack 的主样式表入口点。它导入:

  1. _tailwind.scss — Tailwind 指令 @tailwind base / components / utilities

  2. scss/index.scss — 汇总文件,导入所有 SCSS 部分文件

  3. 第三方 CSS (cropper, select2, daterangepicker, TinyMCE 皮肤, fancybox, timepicker, qtip)

  4. editor_content.scss — 注入到 TinyMCE 编辑器 iframe 主体中的样式

Tailwind 配置 (tailwind.config.js)

主要配置:

内容路径扫描 Vue 组件、遗留 PHP 页面、插件文件和 Twig 模板,以便在生产构建中清除未使用的实用类。

使用 CSS 变量的颜色系统

所有颜色令牌都由自定义 CSS 属性支持,而不是固定值:

辅助函数 colorWithOpacity 输出 rgb(var(--color-primary-base) / <opacity>),允许使用如 bg-primary/50 的透明度变体。实际 RGB 值由主题在 var/themes/{slug}/colors.css 中定义,并在运行时加载 — 参见颜色主题

Tailwind 插件

@tailwindcss/forms@tailwindcss/typography 已启用。

自定义排版比例

通过 theme.extend.fontSize 添加了四个额外的字体大小/行高对:

类名
字体大小 / 行高

text-body-1

16px / 24px

text-body-2

14px / 16px

text-caption

13px / 16px

text-tiny

11px / 16px

PostCSS

PostCSS (Tailwind + Autoprefixer) 在 webpack.config.js 中通过 enablePostCssLoader() 内联配置。没有独立的 postcss.config.js 文件。

专用样式表

文件
Webpack 入口
用途

assets/css/app.scss

app

应用主样式

assets/css/chat.scss

css/chat

聊天界面样式

assets/css/document.scss

css/document

文档查看器样式

assets/css/editor.scss

css/editor

TinyMCE 编辑器外壳样式

assets/css/editor_content.scss

css/editor_content

注入到编辑器 iframe 主体的样式

assets/css/markdown.scss

css/markdown

Markdown 渲染内容样式

assets/css/print.scss

css/print

打印样式表

assets/css/responsive.scss

css/responsive

响应式覆盖样式

assets/css/scorm.scss

css/scorm

SCORM 播放器样式

SCSS 模块结构 (assets/css/scss/)


在 Vue 组件中使用 Tailwind

由于在 tailwind.config.js 中设置了 important: true,Tailwind 的实用类可以可靠地覆盖 PrimeVue 组件的样式,而无需额外的特异性。

最后更新于

这有帮助吗?