CSS 优先 + 轻量组件封装:一个 10KB 组件库的实践

发布日期:2026-06-06 10:02:34   浏览量 :5
发布日期:2026-06-06 10:02:34  
5

标题:“CSS 优先 + 轻量组件封装:一个 10KB 组件库的实践”
描述:“从 UnoCSS 回归原生 CSS,一种由设计令牌驱动的组件库解决方案。四层 CSS 架构、极简的 Vue 组件、打包体积分析以及可维护性对比,展示如何用 500 行代码构建一个 10KB 的组件库。”
标签:[Vue, CSS, 设计系统, 架构]

系列:Vue 3 组件库开发指南

从 UnoCSS 回归原生 CSS,一种由设计令牌驱动的组件库解决方案。

本文涵盖:四层 CSS 架构(颜色、布局、组件、主入口),Button.vue 的实现(无 <style> 块,约 50 行代码),打包体积与可维护性对比,以及一套极简的工具类集合(仅约 30 个类)。

一、回顾:第一篇文章的结论

在上一篇文章中,我分享了将现有设计令牌映射到 UnoCSS 的失败尝试。核心结论如下:

  • 设计令牌是基础,原子化 CSS 只是一层外衣
  • 强制映射只会增加维护成本,而没有实际收益
  • 对于拥有成熟设计令牌的项目,原子化 CSS 并非必需品

那么,如果不使用原子化 CSS,组件库该如何编写?

本文将给出答案。

二、最终架构:四层 CSS 文件

整个样式系统分为四层,职责明确且依赖关系分层:

┌─────────────────────────────────────────────────────────────┐
│                   设计令牌层 (自动生成)       │
│  ┌─────────────────────┐    ┌─────────────────────────────┐ │
│  │    colors.css       │    │       layout.css            │ │
│  │  颜色令牌       │    │  布局令牌              │ │
│  │  (40+ 变量)    │    │  (间距/字体/动画)   │ │
│  │  【API 层】       │    │                             │ │
│  └──────────┬──────────┘    └─────────────┬───────────────┘ │
│             └──────────────┬──────────────┘                 │
│                            ↓                                │
│                   组件样式层 (手写)       │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                 components/                          │   │
│  │    每个组件独立的 CSS 文件                │   │
│  │    (.mg-button, .mg-card, .mg-input...)              │   │
│  │            引用 var(--ui-*) 令牌              │   │
│  └──────────────────────────┬──────────────────────────┘   │
│                             ↓                               │
│                       入口层 (手写)             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                    main.css                          │   │
│  │  导入令牌文件 + 组件文件 + 全局重置 │   │
│  └─────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

文件职责

文件/目录 职责

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9