Windi CSS —— 能替代 Tailwind CSS 的 CSS 框架
Windi CSS 是下一代工具优先的 CSS 框架。如果你已经熟悉了 Tailwind CSS,可以把 Windi CSS 看作是按需供应的 Tailwind 替代方案,它为你提供了更快的加载体验,完美兼容 Tailwind v2.0,并且拥有很多额外的酷炫功能。
为什么选择 Windi CSS?
通过扫描 HTML 和 CSS 按需生成工具类(utilities),Windi CSS 致力于在开发中提供 更快的加载体验 以及更快的 HMR,并且在生产环境下无需对 CSS 进行 Purge(一种在生产环境中对未使用的 CSS 进行清除而节省体积的技术)。
基础用法
Windi CSS 支持 Tailwind CSS 的所有工具类,无需任何额外配置。
你可以像平常一样正常编写你的组件,同时在样式表中使用实用类:
<div class="py-8 px-8 max-w-sm mx-auto bg-white rounded-xl shadow-md space-y-2 sm:(py-4 flex items-center space-y-0 space-x-6)"> <img class="block mx-auto h-24 rounded-full sm:(mx-0 flex-shrink-0)" src="/img/erin-lindford.jpg" alt="Woman's Face" /> <div class="text-center space-y-2 sm:text-left"> <div class="space-y-0.5"> <p class="text-lg text-black font-semibold">Erin Lindford</p> <p class="text-gray-500 font-medium">产品经理</p> </div> <button class="px-4 py-1 text-sm text-purple-600 font-semibold rounded-full border border-purple-200 hover:(text-white bg-purple-600 border-transparent) focus:(outline-none ring-2 ring-purple-600 ring-offset-2)"> 消息 </button> </div> </div>
只有你使用的工具类才会产生相应的 CSS。
集成
我们为主流工具提供了最佳的适配,在每一个工具上都有最好的开发体验。请参阅 集成指南,选择你最喜欢的工具即刻体验!
配置 Windi CSS
Windi CSS 中的配置与你在 Tailwind CSS 中所期望的相似,但有额外的增强和特性。
如果你要从 Tailwind 迁移,请先查看 迁移指南。
配置文件
默认情况下,Windi CSS 会在你的项目根目录下搜索配置文件。以下是有效的名称:
windi.config.ts
windi.config.js
tailwind.config.ts
tailwind.config.js
得益于 sucrase,支持原生 ES 模块和开箱即用的 TypeScript。
为了获得配置的类型检查,你可以从 windicss/helpers
导入 defineConfig
函数:
import { defineConfig } from 'windicss/helpers' export default defineConfig({ /* 配置项... */ })
// @ts-check - enable TS check for js file import { defineConfig } from 'windicss/helpers' export default defineConfig({ /* 配置项... */ })
defineConfig
是带有类型提示的帮助函数,这意味着如果你不需要自动补全/类型检查,你也可以忽略此处。
export default { /* 配置项... */ }
你可以使用编辑器的自动补全功能,来查看可用的配置字段。对功能配置的描述将在对应页面中进行展示。
配置示例
import { defineConfig } from 'windicss/helpers' import colors from 'windicss/colors' import plugin from 'windicss/plugin' export default defineConfig({ darkMode: 'class', // or 'media' theme: { extend: { screens: { 'sm': '640px', 'md': '768px', 'lg': '1024px', 'xl': '1280px', '2xl': '1536px', }, colors: { gray: colors.coolGray, blue: colors.lightBlue, red: colors.rose, pink: colors.fuchsia, }, fontFamily: { sans: ['Graphik', 'sans-serif'], serif: ['Merriweather', 'serif'], }, spacing: { 128: '32rem', 144: '36rem', }, borderRadius: { '4xl': '2rem', }, }, }, plugins: [ plugin(({ addUtilities }) => { const newUtilities = { '.skew-10deg': { transform: 'skewY(-10deg)', }, '.skew-15deg': { transform: 'skewY(-15deg)', }, } addUtilities(newUtilities) }), plugin(({ addComponents }) => { const buttons = { '.btn': { padding: '.5rem 1rem', borderRadius: '.25rem', fontWeight: '600', }, '.btn-blue': { 'backgroundColor': '#3490dc', 'color': '#fff', '&:hover': { backgroundColor: '#2779bd', }, }, '.btn-red': { 'backgroundColor': '#e3342f', 'color': '#fff', '&:hover': { backgroundColor: '#cc1f1a', }, }, } addComponents(buttons) }), plugin(({ addDynamic, variants }) => { addDynamic('skew', ({ Utility, Style }) => { return Utility.handler .handleStatic(Style('skew')) .handleNumber(0, 360, 'int', number => `skewY(-${number}deg)`) .createProperty('transform') }, variants('skew')) }), require('windicss/plugin/filters'), require('windicss/plugin/forms'), require('windicss/plugin/aspect-ratio'), require('windicss/plugin/line-clamp'), require('windicss/plugin/typography')({ modifiers: ['DEFAULT', 'sm', 'lg', 'red'], }), ], })

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | MySQL 模糊查询再也不用 like+% 了
前言 我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务网站需要根据用户的查询条件,在可能需要在商品的详细介绍中进行查找,这些都不是B+树索引能很好完成的工作。 通过数值比较,范围过滤等就可以完成绝大多数我们需要的查询了。但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较,全文索引就是为这种场景设计的。 全文索引(Full-Text Search)是将存储于数据库中的整本书或整篇文章中的任意信息查找出来的技术。它可以根据需要获得全文中有关章、节、段、句、词等信息,也可以进行各种统计和分析。 在早期的 MySQL 中,InnoDB 并不支持全文检索技术,从 MySQL 5.6 开始,InnoDB 开始支持全文检索。 倒排索引 全文检索通常使用倒排索引(inverted index)来实现,倒排索引同 B+Tree 一样,也是一种索引结构。它在辅助表中存储了单词与单词自身在一个或多个文档中所在位置之间的映射,这通常...
- 下一篇
比利时国防部网络遭 Log4shell 漏洞相关的严重网络攻击
据比利时 VRT 新闻报导,这周早些时候,比利时国防部承认他们遭受了严重的网络攻击,该攻击基于此前我们报导的Apache Log4j 相关漏洞。强烈的网络攻击导致比利时国防部的一些活动瘫痪,如邮件系统就已经停机了好几天。 比利时相关发言人奥利维尔·塞维林 (Olivier Séverin) 表示:“国防部在周四发现其可访问互联网的计算机网络受到攻击。接着我们就迅速采取隔离措施隔离了受影响的部分设备,当务之急是保持国防网络的运行。”接着他再度补充“整个周末,我们的团队都被动员起来控制这次攻击的影响。接下来我们将继续监控此次攻击活动,并警告我们的合作伙伴,” 能影响到国家信息安全层面,Log4j 相关的漏洞严重性不言而喻。 除了比利时,据以色列的网络安全解决方案提供商 Check Point Software Technologies 称,一群与伊朗政权有关的黑客(被称为 Charming Kitten 或 APT 35),利用 Log4j 中的漏洞对以色列的七个目标网站或站群发起攻击,其中包括政府网站。 此外,美国网络安全和基础设施安全局(CISA)就命令所有联邦民事机构“必须在圣诞节前...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7安装Docker,走上虚拟化容器引擎之路