PostCSS 插件
控制
有两种方法可以更明确地实现 PostCSS 魔术。
使用 postcss-plugin-context 限制插件的本地样式表上下文
.css-example.is-test-for-css4-browsers {
color: gray(255, 50%);
}
@context postcss-preset-env {
.css-example.is-fallback-for-all-browsers {
color: gray(255, 50%);
}
}
或者使用 postcss-use 直接在 CSS 中启用插件
@use autoprefixer(browsers: ['last 2 versions']);
:fullscreen a {
display: flex;
}
包
postcss-utilities包括最常用的混合、快捷方式和帮助程序,可用作@util规则。atcss包含根据特殊注释转换 CSS 的插件。cssnano包含优化 CSS 大小以用于生产的插件。oldie包含为旧版 Internet Explorer 兼容性转换 CSS 的插件。rucksack包含使用新功能和快捷方式加速 CSS 开发的插件。level4仅包含允许你编写 CSS4 而无需 IE9 回退的插件。short添加并扩展了许多速记属性。stylelint包含用于检查样式表的插件。postcss-hamster用于垂直节奏、排版、模块化比例函数。postcss-preset-env允许你将现代 CSS 转换为大多数浏览器可以理解的内容,根据你针对的浏览器或运行时环境确定所需的填充。postcss-ui-theme为你提供语法糖,并允许你更改主题。
未来 CSS 语法
postcss-apply支持自定义属性集引用。postcss-attribute-case-insensitive支持不区分大小写的属性。postcss-bidirection使用单一语法生成从左到右和从右到左的样式。postcss-color-function支持转换颜色的函数。postcss-color-gray支持gray()函数。postcss-color-hex-alpha支持#rrggbbaa和#rgba表示法。postcss-color-hsl:将 CSS 颜色 4hsl()转换为更兼容的hsl()或hsla()。postcss-color-hwb将hwb()转换为广泛兼容的rgb()。postcss-color-image支持image(<color>)语法,允许将纯色用作图像。postcss-color-rebeccapurple支持rebeccapurple颜色。postcss-color-rgb:将 CSS 颜色 4rgb()转换为更兼容的rgb()或rgba()。postcss-conic-gradient支持conic-gradient背景。postcss-custom-media支持媒体查询的自定义别名。postcss-custom-properties支持变量,使用 W3C 自定义属性中的语法。postcss-custom-selectors为选择器添加自定义别名。postcss-extend支持规则和占位符的规范近似@extend,递归。postcss-font-format-keywords将@font-face规则的format()函数中的关键字转换为广泛支持的字符串。postcss-font-normalize用于规范字体,尤其是font-family。postcss-font-variant将可读的font-variant转换为更广泛支持的 CSS。postcss-font-family-system-ui将 W3C CSSfont-family: system-ui转换为实用的字体列表。postcss-font-display添加font-displaycss 规则。postcss-host使 Shadow DOM 的:host选择器可以与伪类正常工作。postcss-initial支持initial关键字和all: initial来清除继承样式。postcss-logical-properties根据文档的书写方向将start和end属性转换为left和right。postcss-media-minmax为媒体查询添加<=和=>语句。postcss-multi-value-display将inline flex和block flow转换为inline-flex和blockpostcss-pseudo-class-any-link添加:any-link伪类。postcss-pseudo-is将:is()转换为更兼容的 CSS。postcss-selector-not将 CSS4:not()转换为 CSS3:not()。postcss-selector-matches将 CSS4:matches()转换为更兼容的 CSS。postcss-start-to-end允许你通过逻辑而不是方向/物理规则来控制你的布局(LTR 或 RTL)。postcss-subgrid为 CSSdisplay: subgrid规范提供了一个基本的垫片。mq4-hover-shim支持@media (hover)特性。
另请参阅 postcss-preset-env 插件包,通过一行代码添加未来的 CSS 语法。
后备
postcss-color-rgba-fallback将rgba()转换为十六进制。postcss-disabled当:disabled伪类存在时,添加一个[disabled]属性和/或一个.disabled类。postcss-epub为相关属性添加-epub-前缀。postcss-esplit为 IE 将超过 4095 个选择器的 CSS 拆分。postcss-fallback添加fallback函数以避免重复声明。postcss-filter-gradient为旧版 IE 添加渐变滤镜。postcss-flexibility为Flexibility polyfill添加-js-前缀。postcss-gradient-transparency-fix转换渐变中的transparent值,以支持 Safari 的不同颜色插值。postcss-hash-classname将哈希字符串附加到 CSS 类名。postcss-mqwidth-to-class将最小/最大宽度媒体查询转换为类。postcss-opacity为 IE8 添加不透明度滤镜。postcss-opacity-percentage将基于 CSS4 百分比的opacity值转换为浮点值。postcss-page-break为break-属性添加page-break-备用。postcss-pseudoelements为 IE 8 兼容性将::选择器转换为:选择器。postcss-redundant-color-vars为某些边框和 box-shadow 声明添加自定义属性,以修复已知的 Safari 错误postcss-replace-overflow-wrap用word-wrap替换overflow-wrap。postcss-round-subpixels将子像素值舍入到最接近的完整像素的插件。postcss-unmq删除媒体查询,同时保留 IE≤8 的桌面规则。postcss-vmin为 IE9 中的vmin单位生成vm备用。postcss-will-change在will-change属性之前插入 3D hack。autoprefixer使用 Can I Use 中的数据为你添加供应商前缀。postcss-pie为 IE 提供了几个最实用的 CSS3 装饰功能。cssgrace提供各种帮助程序,并为 IE 和其他旧浏览器转换 CSS 3。pixrem为rem单位生成像素备用。postcss-fixie添加简单无痛的 IE hackpostcss-safe-area为safe-area-insetenv变量添加浏览器备用。webp-in-css在 CSS 中使用 WebP 背景图片。postcss-clamp将clamp()转换为min/max的组合postcss-spring-easing用结果linear()函数替换spring(),并添加--spring-durationcss 变量。
另请参阅 oldie 插件包。
语言扩展
postcss-aspect-ratio将元素的尺寸固定为纵横比。postcss-atroot将规则直接放在根节点。postcss-bem-fix为 BEM 和 SUIT 样式类添加 at 规则。postcss-click允许使用:click伪类并在 JavaScript 中实现它。postcss-compact-mq提供基于视口宽度的媒体查询的紧凑语法。postcss-conditionals添加@if语句。postcss-css-variables支持选择器和使用类似 W3C 语法的 at 规则的变量。postcss-current-selector在声明中获取当前选择器。postcss-define-property定义属性快捷方式。postcss-define-function实现 Sass@function指令。postcss-each添加@each语句。postcss-for添加@for循环。postcss-at-rules-variables在@for、@each、@if等中添加对自定义属性的支持。postcss-functions启用 JavaScript 函数的公开。postcss-if-media在 CSS 规则和属性中内联或嵌套媒体查询。postcss-inline-media将多个媒体查询内联到 CSS 属性值中。postcss-local-constants添加对本地化常量的支持。postcss-map启用配置映射。postcss-match为 Rust 样式模式匹配 添加@match。postcss-mixins启用比 Sass 更强大的混合,在样式表或 JS 中定义。postcss-media-variables在@media规则中添加对var()和calc()的支持postcss-modular-scale添加模块化比例ms()函数。postcss-namespace为选择器添加命名空间前缀。postcss-nested展开嵌套规则。postcss-nested-props展开嵌套属性。postcss-nested-vars支持嵌套 Sass 风格变量。postcss-pseudo-class-any-button添加:any-button伪类,用于定位所有按钮元素。postcss-pseudo-class-enter将:enter转换为:hover和:focus。postcss-quantity-queries启用数量查询。postcss-ref引用其他规则中的属性。postcss-reverse-media反转/反转媒体查询参数。postcss-sassy-mixins启用带有 Sass 关键字的混合。postcss-map-get添加了使用 Sass 类似的 map 函数map-get的功能。postcss-simple-extend轻量级扩展静默类,如 Sass 的@extend。postcss-simple-vars支持 Sass 风格变量。postcss-strip-units从属性值中删除单位。postcss-vertical-rhythm基于font-size和line-height添加垂直节奏单位。postcss-vertical-rhythm-function添加一个垂直节奏vr()函数,该函数与单位无关,并且适用于在构建时无法计算字体大小的情况。postcss-responsive-properties允许你编写响应式属性值。postcss-text-remove-gap删除文本字符串前后空格,由行高和字形本身的额外空格添加。postcss-closest插件修改当前选择器最接近匹配的部分。csstyle向你的样式添加组件工作流。postcss-percentage支持类似 Sass 的percentage()函数。postcss-custom-css-units定义自定义 css 单位并将其转换为 CSS 变量。postcss-easy-z允许你通过声明它们之间的关系来组织 z 轴索引。@csstools/postcss-design-tokens允许你从 CSS 导入和使用设计令牌。
颜色
postcss-ase-colors用从 ASE 调色板文件中读取的值替换颜色名称。postcss-brand-colors在brand-colors模块中插入公司品牌颜色。postcss-color-alpha将#hex.a、black(alpha)和white(alpha)转换为rgba()。postcss-color-hcl将hcl(H, C, L)和hcl(H, C, L, alpha)转换为#rgb和rgba()。postcss-color-hexa将hexa(hex, alpha)转换为rgba格式。postcss-color-mix将两种颜色混合在一起。postcss-color-palette将 CSS 2 颜色关键字转换为自定义调色板。postcss-color-pantone将潘通色转换为 RGB。postcss-color-scale添加颜色比例cs()函数。postcss-color-short添加颜色简写声明。postcss-color-yiq使用 YIQ 色彩空间设置前景颜色。postcss-colorblind使用滤镜转换颜色以模拟色盲。postcss-contrast检查背景色并给出白色或黑色。postcss-dark-theme-class使用自定义切换器强制使用深色或浅色主题。postcss-theme-colors使用颜色组添加深色和浅色主题。postcss-hexrgba添加简写十六进制rgba(hex, alpha)方法。postcss-rgb-plz将 3 位或 6 位十六进制值转换为rgb。postcss-rgba-hex将rgba值转换为hex类似物。postcss-shades-of-gray帮助将灰度颜色保持一致到灰色调色板。colorguard帮助维护一致的颜色调色板。postcss-get-color从图像中获取主要颜色。postcss-randomcolor支持使用随机颜色的函数。
图像和字体
avif-in-css在 CSS 背景中使用 AVIF 图像格式。postcss-assets允许您简化 URL、插入图像尺寸和内联文件。postcss-assets-rebase从url()中重新定位资产。postcss-at2x通过使用at-2x关键字处理视网膜背景图像。postcss-background-image-auto-size自动生成background-image的 CSS 规则width和height。postcss-border-9-patch通过自定义规则生成类似 9 块补丁的边框样式。postcss-cachebuster为图片和字体添加版本参数postcss-copy-assets将相对url()引用的资源复制到构建目录中。postcss-data-packer将嵌入的 Base64 数据移动到一个单独的文件中。postcss-easysprites根据图片的 image.png#hash和宽高比 (@2x) 将图片合并为雪碧图。postcss-icon-blender从超过 80,000 个免费和开源图标中创建自定义 SVG 图标集postcss-image-set为image-set()添加带有第一张图片的background-image。postcss-image-inliner内联本地和远程图片。postcss-instagram为filter添加 Instagram 滤镜。postcss-filter-tint为元素(如图片)添加色调滤镜。postcss-foft-classes为使用网络字体的块添加保护类,以获得更好的字体加载策略。postcss-font-awesome为字体真棒 Unicode 代码添加一个简单的快捷方式postcss-font-pack简化字体声明,并验证它们是否与配置的字体包匹配。postcss-fontsize生成rem单位font-size和line-height,并带有px备用。postcss-fontpath为不同的浏览器添加字体链接。postcss-font-grabber它抓取@font-face中的远程字体,下载它们并更新你的 CSS。postcss-lazyimagecss自动添加图片宽度和高度。postcss-lazysprite从图片目录中生成精灵图。postcss-placehold轻松插入占位图片。postcss-resemble-image为图片提供渐变回退,该图片与原始图片大致相似。postcss-resolve-urls解析在url()中引用的相对 URLpostcss-responsive-images添加样式表,使您的图片具有响应性。postcss-sprites从样式表中生成 CSS 精灵图。postcss-svg将内联 SVG 插入 CSS,并允许管理其颜色。postcss-svg-fallback将 CSS 中的 SVG 转换为 PNG 文件,适用于 IE 8。postcss-svgo通过 SVGO 处理内联 SVG。postcss-unicode-characters让编写unicode-range描述符变得更轻松。postcss-url重新定位或内联url()。postcss-urlrebase将url()重新定位到给定的根 URL。postcss-urlrev向url()添加 MD5 哈希字符串。postcss-write-svg在 CSS 中写入内联 SVG。postcss-inline-svg内联 SVG 图片并自定义其样式。webpcss为支持 WebP 的浏览器添加 WebP 图片的 URL。webp-in-css在 CSS 背景中使用 WebP 图片格式。
网格
postcss-grid添加语义网格系统。postcss-grid-kiss将 ASCII 艺术网格转换为 CSS Grid 布局。postcss-grid-system基于固定列宽创建网格。postcss-grid-fluid创建流体网格。postcss-layout一些常见 CSS 布局模式和网格系统的插件。postcss-maze是一个移动优先、语义响应网格,适用于任何设计模式。postcss-neat是一个语义和流体网格框架。postcss-oldschool-grid是一款包含换行列和填充间距的网格系统。postcss-simple-grid用一行代码创建网格。lost是 Jeet 作者开发的一款功能丰富的calc()网格系统。
优化
postcss-calc将calc()简化为值(当表达式涉及相同的单位时)。postcss-remove-nested-calc将calc(100vw - calc(20% - 10px))简化为calc(100vw - (20% - 10px)),以兼容 IE 11。postcss-class-name-shortener缩短 CSS 类名,以优化网站性能。postcss-combine-duplicated-selectors自动合并相同的选择器。postcss-filter-mq过滤所有匹配或不匹配的媒体查询。postcss-import内联@import规则引用的样式表。postcss-nested-import内联嵌套规则块中@import规则引用的样式表。postcss-partial-import内联标准导入和类似 Sass 的部分。postcss-reference模拟 Less 的@import。postcss-remove-root从样式表中移除所有:root实例。postcss-single-charset确保文件顶部只有一个@charset规则。postcss-zindex重新计算正z-index值。postcss-unprefix删除传统 CSS 中的供应商前缀。css-byebye删除不需要的 CSS 规则。css-mqpacker将匹配的 CSS 媒体查询合并为一个语句。stylehacks根据浏览器支持删除 CSS hack。postcss-mq-optimize删除无效的媒体查询或其表达式。postcss-uncss从样式表中删除未使用的 CSS。postcss-html-filter过滤掉不适用于你提供的 HTML 的 CSS。postcss-no-important删除 !important 声明。postcss-deep-scopable统一 Vue.js 的深度作用域样式。postcss-deadcss帮助在样式表中查找无效的 CSS。postcss-variable-compress缩小 CSS 变量,节省空间。
另请参阅模块化缩小器 cssnano 中的插件。
快捷方式
postcss-alias为属性创建较短的别名。postcss-alias-atrules为 at 规则创建较短的别名。postcss-all-link-colors为与链接相关的伪类插入颜色。postcss-border为border属性中所有边框的宽度和颜色添加简写。postcss-border-shortcutPostCSS 插件,用于在未表达时分配默认border类型。postcss-button创建按钮。postcss-center使元素居中。postcss-circle插入一个有颜色的圆形。postcss-clearfix为clear声明添加fix和fix-legacy属性。postcss-crip懒得写的 Crips 的简写属性。postcss-default-unit为数字 CSS 属性添加默认单位。postcss-easings用cubic-bezier()函数替换 easings.net 中的缓动名称。postcss-filter为黑白滤镜添加简写。postcss-focus为每个:hover添加:focus选择器。postcss-generate-preset允许快速生成规则。对于创建重复的实用程序很有用。postcss-hidden允许轻松隐藏元素。postcss-input-style为跨浏览器的输入样式添加新的伪元素。postcss-nested-ancestors在嵌套 CSS 中引用任何父级/祖先选择器。postcss-parent-selector在所有规则的开头添加一个父级选择器。postcss-position为位置属性添加简写声明。postcss-property-lookup允许在没有变量的情况下引用属性值。postcss-range-value在两个屏幕尺寸之间具有最大值和最小值的范围值。postcss-responsive-type根据屏幕尺寸更改font-size。postcss-scrib为属性或值定义你自己的别名/快捷方式。postcss-short-font-size扩展font-size以将行高定义为第二个值。postcss-short-position扩展position以将边缘定义为附加值。postcss-short-spacing扩展margin和padding以允许或省略边缘。postcss-short-text为多个文本相关属性添加了text快捷属性。postcss-size添加了一个size快捷属性,使用一个声明设置宽度和高度。postcss-speech-bubble只需几行 CSS 即可添加不同类型的言语气泡。postcss-transform-shortcut允许在 CSS 中使用速记变换属性。postcss-triangle创建一个三角形。postcss-typescale根据排版比例设置类型。postcss-verthorz添加垂直和水平间距声明。font-magician生成 CSS 中所需的所有@font-face规则。postcss-animationPostCSS 插件,从 animate.css 添加@keyframes。postcss-magic-animationsPostCSS 插件,从 Magic Animations 添加@keyframes。
其他
- [
postcss-add-root-selector] 以智能方式将所有规则包装在一个自定义选择器中。 postcss-alter-property-value根据基于规则的配置更改你的 CSS 声明。postcss-attribute-selector-prefix为属性选择器添加一个前缀- [
postcss-auto-rem] 在不配置的情况下将像素单位编译为rem。 postcss-autoreset自动添加重置样式。postcss-bem-to-js为 BEM 样式 CSS 创建一个 JavaScript 定义文件。postcss-bom为文件添加一个 UTF-8 BOM。postcss-blurry-gradient-workaround修复了具有太多显式结束点的模糊 CSS 渐变。postcss-camelcaser将选择器转换为驼峰命名法。postcss-class-prefix为类选择器添加一个前缀/命名空间。postcss-classes-to-mixins将类转换为 Sass、Less 和 Stylus 混合postcss-currency用符号替换货币名称。postcss-d-ts为 TypeScriptimport生成.d.ts声明,用于使用的 CSS 类和 IDpostcss-eol替换文件 EOL。postcss-extract-value从 CSS 属性中提取值,并将它们放入变量中。postcss-fakeid将#fooID 转换为属性选择器[id="foo"]。postcss-filter-stream列出不想使用 PostCSS 插件处理的文件/文件夹。postcss-flexbox轻松理解和开始使用 CSS3 Flexbox。postcss-flexbox-reset重置 Flexbox,以避免响应式布局中的问题。postcss-flexboxfixer仅取消旧版 CSS 中-webkit-的 flexbox 前缀。postcss-flexbugs-fixes修复了一些已知的 flexbox bug。postcss-gradientfixer仅取消旧版 CSS 中-webkit-的渐变前缀。postcss-grid-reset重置 CSS Grid,以避免响应式布局中的问题。postcss-hash使用哈希算法替换输出文件名,以清除缓存。postcss-ie8为 IE8 删除不受支持的属性和媒体查询。postcss-increase-specificity增加选择器的特异性。postcss-inline-rtl将您的 CSS 转换为从右到左,但内联(仅添加您需要的内容)。postcss-join-transitions联接冲突的转换声明。postcss-letter-tracking生成相对的、与 Photoshop 兼容的字间距,以改善字母间距。postcss-light-text为浅色文本添加-webkit-抗锯齿。postcss-modules允许在任何地方使用 CSS 模块。postcss-momentum-scrolling为 iOS 上具有溢出的元素添加动量样式滚动行为 (-webkit-overflow-scrolling:touch)。postcss-mq-keyframes将媒体查询中的所有动画关键帧移动到文件末尾。postcss-mq-last通过将媒体查询规则移动到文件末尾,为其赋予优先权。postcss-node-modules-replacer将包含node_modules的路径替换为~。postcss-plugin-namespace向所有规则添加一个 CSS 选择器,以便 CSS 文件不会影响其他元素。postcss-prefix-hover向任何包含:hover的选择器添加前缀。postcss-pseudo-content-insert如果:before和:after缺少,则向其添加content: ''。postcss-pseudo-element-cases将.style::BEFORE转换为.style::before,反之亦然。postcss-pseudo-element-colons将.style:before转换为.style::before,反之亦然。postcss-pseudo-elements-content向:before-c和:after-c添加content: ''。postcss-pxtorem将像素单位转换为rem。postcss-raw保护@rawat 规则内的节点不被其他插件触及。postcss-remove-prefixes删除供应商前缀。postcss-rtlcss在一个 CSS 文件中创建从左到右和从右到左的规则。postcss-safe-important安全地向样式声明添加!important。postcss-sanitize使用规则删除属性和值。postcss-scopify向每个选择器添加用户输入范围。postcss-select根据选择器列表选择规则。postcss-selector-prefixer向 CSS 选择器添加前缀。postcss-shorthand-expand扩展简写属性。postcss-simple-trig计算三角函数:sin/cos/tan。postcss-sorting按指定顺序对规则内容进行排序。postcss-sort-media-queries使用移动优先或桌面优先方法合并和排序 CSS 媒体查询。postcss-style-guide自动生成样式指南。css-declaration-sorter快速自动地按一定顺序对 CSS 声明进行排序。perfectionist格式化编写不佳的 CSS 并呈现“漂亮”的结果。rtlcss镜像从右到左区域设置的样式。stylefmt现代 CSS 格式化程序,与stylelint配合良好。postcss-autocorrect纠正错别字并在控制台中通知。postcss-px-to-viewport从px单位生成视口单位(vw、vh、vmin、vmax)。postcss-viewport-height-correction解决100vh不适合移动浏览器屏幕的常见问题。postcss-unit-processor灵活处理 CSS 单位。postcss-rem-to-px将rem值转换为px值。postcss-design-tokens提供一个函数,用于在 CSS 中检索用 JS 或 JSON 表示的设计标记。postcss-pixel-to-remvw将 px 同时转换为 rem 和 vw,也可以只转换其中一种postcss-easy-import内联@import规则内容,并提供额外功能。postcss-plugin-ignore-file忽略带有顶部注释/* @ignore */的文件。
分析
postcss-bem-linter检查 CSS 是否符合 SUIT CSS 方法。postcss-cssstats返回一个包含 CSS 统计信息的对象。postcss-regexp-detect在 CSS 声明中搜索正则表达式。css2modernizr创建一个 Modernizr 配置文件,它仅需要 CSS 使用的测试。doiuse使用 Can I Use 中的数据来检查 CSS 对浏览器的支持。immutable-css检查 CSS 中的类突变。list-selectors列出并分类 CSS 中使用的选择器,用于代码审查。
报告器
postcss-browser-reporter在浏览器中直接显示其他插件的警告消息。postcss-forced-variables在指定属性不使用变量时提供警告和错误。postcss-reporter在控制台中记录其他插件的警告和其他消息。
趣味
postcss-australian-stylesheets澳大利亚样式表。postcss-andalusian-stylesheets安达卢西亚样式表。postcss-aze-stylesheets阿塞拜疆样式表。postcss-canadian-stylesheets加拿大样式表。postcss-chinese-stylesheets中文样式表。postcss-czech-stylesheets捷克样式表。postcss-german-stylesheets德文样式表。postcss-italian-stylesheets意大利样式表。postcss-russian-stylesheets俄文样式表。postcss-swedish-stylesheets瑞典样式表。postcss-tatar-stylesheets鞑靼样式表postcss-trolling钓鱼样式表。postcss-lolcat-stylesheets猫咪语样式表。postcss-imperial为 CSS 添加对英制和美国习惯长度单位的支持。postcss-russian-units为 CSS 添加对俄制长度单位的支持。postcss-pointer将pointer: cursor替换为cursor: pointer。postcss-spiffing让你在 CSS 中使用英式英语。postcss-spanish-stylesheets西班牙语样式表。postcss-nope让你可以编写nope而不是none。postcss-glitch为你的文本添加故障效果。postcss-khaleesi将 CSS 值和属性翻译为khaleesi meme语言。