Olive CSS:Lisp 驱动的类 Tailwind 纯 CSS 工具类框架
摘要
Olive CSS 是一个用 Guile Scheme 编写的全新工具类 CSS 框架,语法与 Tailwind 相似,可在任何 Web 项目中直接替代使用。
<p><a href="https://lobste.rs/s/unbgyx/olive_css_lisp_powered_vanilla_css">评论</a></p>
查看缓存全文
缓存时间: 2026/04/22 21:06
# olive-css
源码地址:https://codeberg.org/jjba23/olive-css
- [授权协议](https://codeberg.org/jjba23/olive-css#user-content-headline-1)
- [安装与使用](https://codeberg.org/jjba23/olive-css#user-content-headline-2)
- [定制 Olive CSS](https://codeberg.org/jjba23/olive-css#user-content-headline-3)
- [设计哲学](https://codeberg.org/jjba23/olive-css#user-content-headline-4)
- [使用 Olive CSS 的项目](https://codeberg.org/jjba23/olive-css#user-content-headline-5)
- [行为准则](https://codeberg.org/jjba23/olive-css#user-content-headline-6)
- [Olive CSS 项目](https://codeberg.org/jjba23/olive-css#user-content-headline-7)
- [与 Tailwind CSS 对比](https://codeberg.org/jjba23/olive-css#user-content-headline-8)
- [故障排查](https://codeberg.org/jjba23/olive-css#user-content-headline-9)
https://jointhefreeworld.org/ggg/dist/scheme-guile.svg
https://jointhefreeworld.org/ggg/dist/gnu-guix.svg
https://jointhefreeworld.org/ggg/dist/maak.svg
https://jointhefreeworld.org/ggg/dist/license-lgpl3+.svg
https://jointhefreeworld.org/ggg/dist/license-fdl13+.svg
*受 Tailwind 语法启发的纯 CSS 工具类框架,易学易改,用 Lisp(Guile Scheme)写成*
任何 Web 项目都能用,无论是否用 Scheme,可作为 Tailwind 的“近似”替代品。
本项目采用 GNU Lesser General Public License v3 或更新版本授权。
更多特性与语法见文档:/jjba23/olive-css/src/branch/trunk/docs/olive/olive.org([在线浏览](https://codeberg.org/jjba23/olive-css/src/branch/trunk/docs/olive/olive.org))
Guile Scheme API 技术文档:[https://jointhefreeworld.org/api-docs/olive-css/API.html](https://jointhefreeworld.org/api-docs/olive-css/API.html)
像其他工具类框架一样使用:
```html
<p class="text-green-600">Hello Olive CSS!</p>
```
如果喜欢我的作品,请[请我喝杯咖啡☕](https://bmc.link/jjbigorra)支持,让我保持动力!
---
## 授权协议
olive-css 及其全部源码均为自由软件,采用 GNU Lesser General Public License v3(或你方便的新版本)授权。
[https://www.gnu.org/licenses/lgpl-3.0.html](https://www.gnu.org/licenses/lgpl-3.0.html)
展示站、文档与示例(含本文)采用 GNU Free Documentation License v1.3(或你方便的新版本)授权。
[https://www.gnu.org/licenses/fdl-1.3.html](https://www.gnu.org/licenses/fdl-1.3.html)
---
https://jointhefreeworld.org/static-assets/olive-css/olive-css-new-small.png
---
## 安装与使用
下载预编译版本(位于 `resources/css/`)或自行构建,然后通过 HTTP 服务,并在 HTML 的 `<link>` 标签引入即可。
**关于体积**:默认 `olive.min.css` 包含全部类、变体与媒体查询,体积较大。上线前建议按需禁用功能,生成优化后的定制版本。
影响体积的主要因素:颜色数量、断点/媒体查询数量。经验法则:若不用 `xl` 或 `2xl` 断点,可关闭;仅保留所需颜色。
Guile Scheme 的 `parameterize` 语法让这一切非常简单,也可关闭暗黑模式以显著减小体积。详见 `scripts/olive-css-gen.scm`。
同时请确保 Web 服务器开启 GZIP/Brotli 压缩并正确缓存 CSS。
### 定制 Olive CSS
定制是一等公民。借助 Guile Scheme,可开关功能、调整尺寸与颜色,并轻松添加自己的工具类。
关键定制点:
- 选择需要的断点(`sm`、`md`、`lg`、`xl`、`2xl`)
- 用 `parameterize` 开关暗黑模式
- 自定义调色板,仅保留项目所需颜色
也可用 `addmq` 与 `addhover` 生成自己的响应式或悬停变体。
参考 `scripts/olive-css-gen.scm`、`src/olive-css/main.scm` 及 API 文档。
---
## 设计哲学
Olive CSS 不是又一个 Tailwind 克隆,只是受其启发,设计原则如下:
**可 Hack**
用 Scheme 代码即可扩展或修改任意部分。
**自由**
100% 自由软件,LGPLv3+ 与 FDL 1.3+ 授权。
**自给自足**
依赖极少,构建轻快。
**表达力**
轻松添加**任意** CSS 特性及自定义调色板/规则。
它鼓励学习与实验,而非把复杂性藏在僵硬的工具链后面。
---
## 使用 Olive CSS 的项目
## 行为准则
本项目遵循 jointhefreeworld 行为准则:
[https://jointhefreeworld.org/blog/articles/personal/jointhefreeworld-code-of-conduct/index.html](https://jointhefreeworld.org/blog/articles/personal/jointhefreeworld-code-of-conduct/index.html)
简言之:我们营造包容、尊重、协作的环境,以 GNU 项目的自由、平等、社区理念为指导,相信相互尊重的协作是创造优秀自由软件的关键。
---
## Olive CSS 项目
为自由软件做贡献是一种体现慷慨、协作与赋能的美好行为。我们欢迎所有人加入 olive-css 项目,鼓励以各种形式积极参与:改进代码、提建议、头脑风暴、提升模块化/灵活性等。随时联系我聊天、讨论或反馈!
Backlog 与看板:
[https://lucidplan.jointhefreeworld.org/tickets/olive-css](https://lucidplan.jointhefreeworld.org/tickets/olive-css)
---
## 与 Tailwind CSS 对比
| 特性 | Tailwind CSS | Olive CSS |
|---|---|---|
| 实现语言 | JavaScript | λ Guile Scheme |
| 定制能力 | 一般(靠配置) | ✔️ 极强(代码级 DSL) |
| 函数式 API | ❌ | ✔️ |
| 自由软件 | ❌(MIT,非 copyleft) | ✔️(LGPL v3+ 与 FDL) |
| 输出控制 | 有限,JIT 受限 | 完全按需生成 |
若你需要完全自由、可 Hack、高表达力且透明的 Tailwind 替代品,Olive CSS 是理想选择。
---
## 故障排查
**输出体积过大**
在构建脚本里禁用未使用的断点、变体或颜色。
**找不到类**
添加类逻辑后需重新生成构建。
**暗黑模式无效**
确保 HTML 元素有 `data-theme="dark"`,且构建时包含暗黑查询。
**CSS 无效**
检查自定义规则定义,尤其 oklch 颜色格式。
相似文章
在浏览器中试用 LispE
关于在浏览器中试用 LispE(一种 Lisp 方言)的简要介绍或链接。
@abhishekray:推出 Opslane,在真实浏览器中测试你的 Claude 代码改动 灵感来自 @garrytan 的 GStack /qa 技能。——读取规…
Opslane 是一款新工具,让开发者能在真实浏览器中测试 Claude 生成的代码改动:读取需求文档、构建验收标准,并针对本地开发服务器运行测试。
热接线Lisp机器
一位开发者分享了他们使用Emacs和Org-mode构建零依赖静态网站生成器的经验,讨论了现有工具(如org-publish)的局限性,以及他们创建发布方案以保留工作流程的过程。
@nolansym:免费开源的 Shadcn 组件
cult-ui 发布了 92+ 开源 AI 代理 UI 模式和全栈 Next.js 模板,用于借助 shadcn 构建可复制的组件库。
关于分叉 Web
开发者 Rodrigo Arias Mallo 提议通过创建一套替代性的、简化的 HTML/Web 规范来实现 Web 的分叉,目标包括严格的语义化版本控制、正式且无歧义的语法,以及限制规范体量以促进浏览器多样性。该提议与轻量级浏览器 Dillo 项目相关联。