TailwindCSS v3.0 正式发布!一大波新特性来袭!

e59f95de638879ad01d726413f0bbcc4.gif

作者 | 一只图雀

来源 | 程序员巴士

今天给大家介绍一篇关于 Tailwind 最新发布的 v3.0 相关的内容。

2021 年 12 月 10 日,TailwindCSS 的创始人 Adam Wathan 宣布 TailwindCSS v3.0 正式发布,带来了一系列性能上的改进、对开发工作流的改善以及大量的新特性。

那么这颗在 CSS 工程化领域极为耀眼的新星在 v3.0 为我们带来了那些有趣的新特性呢?我们接下来就来一一的介绍它们。

随时随地的 Just-in-Time 模式

Tailwind 2.x 里面引入了一种新的模式,Just-in-Time 模式,可以保持开发和生产构建是一致的,且都是按需构建,相比之前 Tailwind 需要将所有基础的内容进行构建来说大大提升了性能,针对任何构建工具,如 Webpack 只需要 800ms 就可以构建完成,而在之前,可能需要 30-45s。

而且得益于 JIT 模式,Tailwind 支持了 “任意值辅助类” 等一系列新的特性。

之前使用 JIT 时,需要在配置文件里面指定模式:

// tailwind.config.jsmodule.exports = {// ...mode: 'jit',// ...
}

然后你就可以享受到极快的构建速度,而且可以使用任意值的辅助类,如:

<div class="top-[-113px]"></div>

这在之前的 Tailwind 版本中是不允许的,如果需要覆盖这种任意值的情况,你还是得定义一个类名,然后撰写对应的 CSS:

<div class="arbitrary-values"></div><style>
.arbitrary-values {top: -113px;
}
</style>

这种形式显得 Tailwind 比较割裂,所以在 JIT 模式下,因为支持按需构建,所以这种任意值的形式也可以使用 Tailwind 统一的语法进行书写。

而在 v3.0 中,Tailwind 内置了 JIT,无需在配置文件里面声明 JIT 模式,默认就是按需构建、可使用任意辅助类、开发和生产构建方式与产物统一,避免了不一致性、还获得了极大的性能优化。

所有的颜色都开箱即用

在 v3.0 之前,为了关注在开发模式下 CSS 体积的大小,Tailwind 必须要小心的限制可用的颜色,但是在 v3.0 之后,我们可以引入了很多新的调色板颜色,如 cyan(天蓝色)、rose(玫瑰色)、fuchsia(紫红色)、lime(酸橙色)以及 15 中灰色的阴影,而无需担心日益增大的 CSS 文件体积。

989ee5c604c4e741bcca6d4f652cc76b.png

支持有颜色的阴影

之前 Tailwind 想要以一种组合式的方式支持带颜色的阴影是很困难的,虽然长期以来,用户都在述求这一项功能,但是一直也没有实现。经过 5 次失败的尝试,最终在 Tailwind v3.0 中实现了这项功能,现在你可以在 Tailwind 中使用这些有颜色的阴影了:

比如下述代码:

<button class="bg-cyan-500 shadow-lg shadow-cyan-500/50 ...">Subscribe</button>
<button class="bg-blue-500 shadow-lg shadow-blue-500/50 ...">Subscribe</button>
<button class="bg-indigo-500 shadow-lg shadow-indigo-500/50 ...">Subscribe</button>

可以得到如下的效果:

a4c542d8c7b4d82683016f56bc7d0256.png

滚动捕捉 API

我们加入了一个完善的用于实现 CSS 滚动捕捉模块的辅助类集合,使得你可以直接在 HTML 里面实现非常丰富的滚动捕捉的效果:

什么是滚动捕捉?也就是滑动到下一个 Item 时,可以选择滑动到此 Item 的某个位置,比如下列的定位在图片中间。

682ef1ff644a1e7396cf078cc0cad99a.gif

而上面的效果只需要如下的较为简单的 Tailwind 辅助类:

<div class="snap-x ..."><div class="snap-center ..."><img src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80" /></div><div class="snap-center ..."><img src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80" /></div><div class="snap-center ..."><img src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80" /></div><div class="snap-center ..."><img src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80" /></div><div class="snap-center ..."><img src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80" /></div><div class="snap-center ..."><img src="https://images.unsplash.com/photo-1559333086-b0a56225a93c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80" /></div>
</div>

在一个 snap 容器里,snap-center、snap-start 等是用于滚动定位的设置项,而 Scroll Margin 则是用于设置相对于定位的偏移,使用形如 scroll-m{side}-{size} 这样的格式进行设置,如 scroll-ml-6 ,则是相对左边再偏移 6 个单位的长度:

<div class="snap-x ..."><div class="scroll-ml-6 snap-start ..."><img src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80" /></div><div class="scroll-ml-6 snap-start ..."><img src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80" /></div><div class="scroll-ml-6 snap-start ..."><img src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80" /></div><div class="scroll-ml-6 snap-start ..."><img src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80" /></div><div class="scroll-ml-6 snap-start ..."><img src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80" /></div>
</div>

如上述代码,snap-center 则会在滚动的时候定位在图片的开始位置,而加了 scroll-ml-6 之后,会再相对左边偏移 6 个单位,变成如下效果:

4519117f67d78dfb0ad606b2d8a0e5a6.gif

多列布局

我们加入了 columns 列布局支持,也被称之为 “新闻版式布局” 类型,这种布局非常有用,同时应用在底部的导航栏布局设计时也是非常有用的。

如我们大多数网站底部的多列导航栏设计,以 Tailwind 官网为例:

f815fec3ef64bdf6b166c38ed40ac225.png

当你使用对应的辅助类如下时:

<div class="columns-1 sm:columns-3 ..."><p>...</p><!-- ... -->
</div>

你可以获得如下的效果:

546a4304ca556703dc4792eb56b8113e.png

原生的表单控制样式

我们加入了对 CSS accent-color 属性的支持,如为表单里面的文件输入框按钮添加样式,这使得你能够细粒度的为原生的表单控制按钮添加样式,如下代码:

<form><div class="flex items-center space-x-6"><div class="shrink-0"><img class="h-16 w-16 object-cover rounded-full" src="https://images.unsplash.com/photo-1580489944761-15a19d654956?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1361&q=80" alt="Current profile photo" /></div><label class="block"><span class="sr-only">Choose profile photo</span><input type="file" class="block w-full text-sm text-gray-500file:mr-4 file:py-2 file:px-4file:rounded-full file:border-0file:text-sm file:font-semiboldfile:bg-violet-50 file:text-violet-700hover:file:bg-violet-100"/></label></div><label class="mt-6 flex items-center justify-center space-x-2 text-sm font-medium text-gray-600"><input type="checkbox" class="accent-violet-500" checked/><span>Yes, send me all your stupid updates</span></label>
</form>

可以获得如下效果:

为选择文件前:

77bf8491e16aeb00c5ce3e8574beb705.png

选择文件后:

1bcfa1ea8f43d4921daf14b05392b927.png

打印修饰符

我们添加了 print 修饰符,使得你可以在用户打印你的网站时如何展现:

<div><article class="print:hidden"><h1>My Secret Pizza Recipe</h1><p>This recipe is a secret, and must not be shared with anyone</p><!-- ... --></article><div class="hidden print:block">Are you seriously trying to print this? It's secret!</div>
</div>

比如上述的代码逻辑为,在打印模式下,第一个 article 块不展示,而 div 块展示。

现代 aspect ratio API

我们添加了原生的 aspect ratio ****属性的支持,因为现在浏览器的支持度已经非常高了,即我们可以获得比较完美的横纵比。

比如如下代码,可以设置视频的最佳横纵比:

<iframe class="w-full aspect-video ..." src="https://www.youtube.com/..."></iframe>

上述代码得到如下结果:

0aee2b40f83c8051e05a6a0c3cc6b9a9.png

好看的下划线样式

我们现在也支持修改下划线的颜色、粗细等属性了~

如下面的代码:

<p>I’m Derek, an astro-engineer based in Tatooine. I like to build X-Wings at<a href="#" class="underline decoration-sky-500 decoration-2">My Company, Inc</a>. Outside of work, Ilike to <a href="#" class="underline decoration-pink-500 decoration-dotted decoration-2">watch pod-racing</a>and have <a href="#" class="underline decoration-indigo-500 decoration-wavy decoration-2">light-saber</a>fights.
</p>

可以得到如下的效果:

e12fdfc368d2ee9cf16178c8f088b480.png

RTL 与 LTR 修饰符

我们也加入了对 RTL(从右到左)与 LTR(从做到右)等多方向布局的实验性支持,如下代码:

<div class="group flex items-center"><img class="shrink-0 h-12 w-12 rounded-full" src="..." alt="" /><div class="ltr:ml-3 rtl:mr-3"><p class="text-sm font-medium text-gray-700 group-hover:text-gray-900">...</p><p class="text-sm font-medium text-gray-500 group-hover:text-gray-700">...</p></div>
</div>

可以获得如下效果:

88c157391ae7ccd62a1ff73cd762315f.png

Portrait 与 Landscape 修饰符

我们也添加了在不同屏幕方向的修饰符支持,如 portrait (竖屏)、landscape (横屏)修饰符,使得你可以通过不同的修饰符控制在对应屏幕方向上的样式:

<div><div class="portrait:hidden"><!-- ... --></div><div class="landscape:hidden"><p>This experience is designed to be viewed in landscape. Please rotate yourdevice to view the site.</p></div>
</div>

任意值辅助类支持

虽然看起来不太合理,但是我们依然添加了任意 CSS 值的 Tailwind 辅助类,并使得你可以结合 hoverlg 等修饰符使用:

<div class="[mask-type:luminance] hover:[mask-type:alpha]"><!-- ... -->
</div>

或者像 56px 或者 44px 这种任意值,与 lg 修饰符一起使用:

<div class="[--scroll-offset:56px] lg:[--scroll-offset:44px]"><!-- ... -->
</div>

使用 CDN 来使用 Tailwind

目前没有一个很好的基于 CSS 的 CDN 方式来使用 Tailwind CSS v3.0,所以我们构建了一个 JavaScript 库来帮助你使用它:

<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Example</title><script src="https://cdn.tailwindcss.com/"></script></head><body><!-- --></body>
</html>

这种方式仅限于在开发环境下使用,或者当你想构建一个 demo 或者想要尝试一个有趣的想法时,你可以这样使用。只需要在任何想要使用 Tailwind 特性的 HTML 文档里添加 script 标签来引用 https://cdn.tailwindcss.com/ 即可。

以上就是 TailwindCSS v3.0 更新的全部特性了,看到这里,你觉得 TailwindCSS v3.0 怎么样呢?你做好将其用于生产、或者加入构建你下一个应用时的工具箱的准备了🐴?

768162a44af775d3e647971e844afee2.gif

2b9d6a859551b34d71ba128209131aaf.png

往期推荐

虚幻引擎5上的《黑客帝国》全新体验,爱了爱了

元宇宙真的是割韭菜吗?

Redis会遇到的坑,你踩过几个?

核弹级漏洞,把log4j扒给你看!

70fedbdda1ab1cbdbece3a79ecd8f42a.gif

点分享

a7479c5e740697a0e70946f3c9f969a7.gif

点收藏

e00521e2619571e3da28af19575dfbc6.gif

点点赞

40c7341b35b31bf1708952f40603590f.gif

点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

曦智科技发布最新光子计算处理器PACE

成功验证光子计算优越性&#xff0c;以光子技术突破集成电路产业边界 2021年12月15日&#xff0c;全球领先的光子计算芯片公司曦智科技&#xff08;Lightelligence&#xff09;发布了其最新高性能光子计算处理器——PACE&#xff08;Photonic Arithmetic Computing Engine&…

python 下载图片到内存卡_python - 获取图像大小而不将图像加载到内存中

如果您不关心图像内容&#xff0c;PIL可能是一种过度杀伤力。我建议解析python magic模块的输出&#xff1a;>>> t magic.from_file(teste.png)>>> tPNG image data, 782 x 602, 8-bit/color RGBA, non-interlaced>>> re.search((\d) x (\d), t).g…

搭载第四代自研神龙架构 阿里云发布RDMA增强型实例等多款新品

12月21日消息&#xff0c;阿里云发布多款基于自研神龙架构的弹性计算新品&#xff0c;包括RDMA增强型实例、800G GPU超算实例、FPGA计算型实例、GPU图形计算型实例等&#xff0c;在性能方面大幅提升&#xff0c;同时增加了多种服务形态&#xff0c;将计算延伸至客户身边&#x…

最新光子计算处理器面世:单个光子芯片集成超万个光子器件,频率达1GHz

12月15日&#xff0c;光子计算芯片公司曦智科技&#xff08;Lightelligence&#xff09;发布了其最新高性能光子计算处理器&#xff1a;PACE&#xff08;Photonic Arithmetic Computing Engine&#xff0c;光子计算引擎&#xff09;。该处理器单个光子芯片中集成超过10,000个光…

Snowflake如日中天是否代表Hadoop已死?大数据体系到底是什么?

简介&#xff1a; 本文作者关涛是大数据系统领域的资深专家&#xff0c;在微软&#xff08;互联网/Azure云事业群&#xff09;和阿里巴巴&#xff08;阿里云&#xff09;经历了大数据发展20年过程中的后15年。本文试从系统架构的角度&#xff0c;就大数据架构热点&#xff0c;每…

金蝶携手工商银行完成首单数字人民币费用报销业务

2021年12月17日&#xff0c;金蝶业务系统成功完成首单使用数字人民币进行的公转私支付业务。据悉&#xff0c;这是中国工商银行股份有限公司&#xff08;以下简称“工商银行”&#xff09;第一笔使用“数字人民币银企直连”进行的公转私支付费用报销业务&#xff0c;也是金蝶成…

Java对象转换方案分析与mapstruct实践

简介&#xff1a; 随着系统模块分层不断细化&#xff0c;在Java日常开发中不可避免地涉及到各种对象的转换&#xff0c;如&#xff1a;DO、DTO、VO等等&#xff0c;编写映射转换代码是一个繁琐重复且还易错的工作&#xff0c;一个好的工具辅助&#xff0c;减轻了工作量、提升开…

致敬 hacker |盘点内存虚拟化探索之路

简介&#xff1a; 内存虚拟化相比裸机&#xff0c;仍然存在较大差异&#xff0c;是当下值得关注的问题&#xff01; 云与虚拟化 云计算是通过 Internet 服务的方式提供动态可伸缩资源的计算模式&#xff0c;经过多年的发展已成为企业 IT 技术的重要支撑。虚拟化是云计算的核心…

minwindow java_java中setMinWindowLayout()是什么呀?

展开全部分析代码 ,可以看出SInfo 是JFrame的子类.setMinWindowLayout() 方法,就可能就是该类自定义的方法,因为JFrame并没e68a8462616964757a686964616f31333431373937有该方法.根据该方法名推测, 这个方法应该就是设置界面布局的方法,主要用于调整组件(按钮,输入框...等)的位…

走进新华三解决方案 360°业务能力中心,读懂新华三如何助力企业数字化转型

随着数字化转型步入“深水区”&#xff0c;云计算、5G、AI 等新一代技术落地应用各行各业。企业对“端到端”解决方案的需求愈发强烈&#xff0c;亟待统一规划、建设和交付的“端到端”解决方案。对此&#xff0c;作为业界领先的数字化解决方案领导者&#xff0c;新华三自 2019…

阿里云马涛:什么是操作系统的云原生?

简介&#xff1a; 云原生已经成为IT界最流行的一个定语&#xff0c;似乎不谈云原生就out了&#xff0c;但什么才是真正的云原生&#xff1f; 注&#xff1a;本文作者马涛&#xff0c;阿里云智能研究员、阿里巴巴集团内核团队创始人之一、阿里云基础软件部操作系统团队负责人。…

pip 安装_安装 pip 轻松管理 PyPI 软件包 | Linux 中国

在 Linux、Mac 或 Windows 上为旧版 Python 安装 pip。-- Vijay Singh KhatriPython 是一种功能强大、流行广泛的编程语言&#xff0c;在常规编程、数据科学等很多方面它都有丰富的软件包可供使用。但这些软件包通常都不会在 Python 安装时自动附带&#xff0c;而是需要由用户自…

技术解析:一文看懂 Anolis OS 国密生态 | 龙蜥专场

简介&#xff1a; Anolis OS国密是社区在Anolis OS上做的国密技术解决方案。 编者注&#xff1a;本文系两位演讲者整理&#xff0c;他们在2021年阿里云开发者大会的「开源操作系统社区和生态分论坛」上带了分享&#xff0c;演讲主题为《国密技术开发与实践》&#xff0c;为国内…

场景联创 施耐德电气“绿色智能制造创赢计划”第二季收官

中国上海&#xff0c;2021年12月21日——今日&#xff0c;由工业和信息化部国际经济技术合作中心&#xff08;工信部国合中心&#xff09;与施耐德电气主办的“绿色智能制造创赢计划”第二季总决赛在上海举办。经过半年多的加速营培训、场景探访与联合方案开发&#xff0c;最终…

DLF +DDI 一站式数据湖构建与分析最佳实践

简介&#xff1a; 本文由阿里云数据湖构建 DLF 团队和 Databricks 数据洞察团队联合撰写&#xff0c;旨在帮助您更深入地了解阿里云数据湖构建&#xff08;DLF&#xff09;Databricks 数据洞察&#xff08;DDI&#xff09;构建一站式云上数据入湖。 作者陈鑫伟&#xff08;熙康…

pip升级python包命令_python安装扩展库常用的是什么工具

pip 是 Python 包管理工具&#xff0c;该工具提供了对Python 包的查找、下载、安装、卸载的功能。目前如果你在 http://python.org 下载最新版本的安装包&#xff0c;则是已经自带了该工具。Python 2.7.9 或 Python 3.4 以上版本都自带 pip 工具。pip 官网&#xff1a;https:/…

获国际架构顶会ATC2021最佳论文!Fuxi2.0去中心化的调度架构详解

简介&#xff1a; 近日&#xff0c;在国际体系架构顶会USENIX ATC2021上&#xff0c;阿里云飞天伏羲团队与香港中文大学合作的一篇论文《Scaling Large Production Clusters with Partitioned Synchronization》不仅成功被大会录取&#xff0c;而且被大会专家组评定为三篇最佳论…

svg入门经典pdf_机器学习最好的入门课程是什么?

最近老胡不太忙了&#xff0c;项目告一段落&#xff0c;摸鱼时间多了一些。昨天我翻译了一个思维导图《超详细的人工智能专家路线图》强烈建议没有看的同学看一看&#xff0c;查漏补缺必备机器学习从 入 门 到 精 通 路 线 图翻完之后自己也有很大的收获&#xff0c;所以准备干…

MaxCompute跨境访问加速解决方案

简介&#xff1a; MaxCompute联合全球加速服务&#xff0c;为有跨境访问需求的MaxCompute客户提供一套高效稳定的跨境访问加速方案。 MaxCompute联合全球加速服务&#xff0c;为有跨境访问需求的MaxCompute客户提供一套高效稳定的跨境访问加速方案。 背景信息 MaxCompute的大…

借助钉钉宜搭,奶茶店开始用黑科技管理门店了

简介&#xff1a; 投诉处理的速度变快了——这是7分甜消费者在这个初夏最直观的感受&#xff0c;借助钉钉宜搭的低代码能力实现的数字化管理&#xff0c;过去7分甜的许多管理痛点&#xff0c;现在正被一一攻克。 一方小小的奶茶零售门店&#xff0c;内里乾坤万千。7分甜成立于2…