npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

postcss-px-conversion

v0.1.3

Published

[![npm version][npm-version-src]][npm-version-href] [![npm downloads][npm-downloads-src]][npm-downloads-href] [![bundle][bundle-src]][bundle-href] [![JSDocs][jsdocs-src]][jsdocs-href] [![License][license-src]][license-href] [![javascript_code style][code-

Downloads

453

Readme

postcss-px-conversion

npm version npm downloads bundle JSDocs License javascript_code style

这是一个将像素单位转换为视口单位(vw、vh、vmin、vmax)的PostCSS插件。这段代码已经从原始项目evrone/postcss-px-to-viewport迁移过来,因为原项目已不再维护。这个迁移后的代码与最新版本的PostCSS兼容。

安装

要使用这个插件,你需要在你的项目中设置好PostCSS。如果你还没有设置PostCSS,你可以通过运行以下命令来安装:

npm install postcss --save

接下来,安装postcss-px-conversion插件:

npm install postcss-px-conversion --save

使用

要在你的PostCSS配置中使用这个插件,将其添加到PostCSS插件列表中,同时加上所需的配置选项。

以下是在postcss.config.js中的示例配置:

// postcss.config.js

module.exports = {
  plugins: {
    "postcss-px-conversion": {
      unitType: "px", // 要从哪种单位转换(默认为'px')
      viewportWidth: 375,
      enablePerFileConfig: true, // 启用per-file配置
      viewportWidthComment: "viewport-width", // 用于指定视口宽度的注释
      // 其他配置选项...
    },
  },
};

配置选项

你可以使用各种选项来配置这个插件:

  • unitType:要从哪种单位转换(默认为'px')。
  • viewportWidth:视口的宽度。
  • unitPrecision:vw单位的小数位数。
  • allowedProperties:要转换为vw的CSS属性列表。
  • excludedProperties:要排除在转换之外的CSS属性列表。
  • viewportUnit:期望的视口单位(vw、vh、vmin、vmax)。
  • fontViewportUnit:期望的字体视口单位。
  • selectorBlacklist:要忽略的选择器(字符串或正则表达式)。
  • minPixelValue:要替换的最小像素值。
  • allowMediaQuery:在媒体查询中允许px到vw的转换。
  • replaceRules:替换包含vw的规则而不是添加回退规则。
  • excludeFiles:要忽略的文件(作为正则表达式数组)。
  • includeFiles:只转换匹配的文件(作为正则表达式数组)。
  • enableLandscape:为横向模式添加@media (orientation: landscape)。
  • landscapeUnit:横向模式的期望单位。
  • landscapeViewportWidth:横向方向的视口宽度。
  • enablePerFileConfig:启用per-file配置(默认为true)。
  • viewportWidthComment:用于指定视口宽度的注释(默认为"viewport-width")。

请根据你的项目需求调整这些选项。

Per-File 配置

此插件现在支持per-file配置,允许你为每个CSS或SCSS文件指定不同的视口宽度。要使用这个功能,只需在文件的开头添加一个特殊的注释:

/* viewport-width: 1920 */

插件会读取这个注释并使用指定的宽度来进行单位转换。这对于在同一个项目中为不同的设备(如PC、平板、手机)创建不同的CSS文件特别有用。

示例

以下是一个示例配置,将像素值转换为vw单位,默认视口宽度为750像素,并启用per-file配置:

// postcss.config.js

module.exports = {
  plugins: {
    "postcss-px-conversion": {
      unitType: "px",
      viewportWidth: 750,
      unitPrecision: 5,
      allowedProperties: ["*"],
      excludedProperties: [],
      viewportUnit: "vw",
      fontViewportUnit: "vw",
      selectorBlacklist: [],
      minPixelValue: 1,
      allowMediaQuery: false,
      replaceRules: true,
      excludeFiles: [],
      includeFiles: [],
      enableLandscape: false,
      landscapeUnit: "vw",
      landscapeViewportWidth: 568,
      enablePerFileConfig: true,
      viewportWidthComment: "viewport-width",
    },
  },
};

使用这个配置,你的CSS中的像素值将在PostCSS处理期间自动转换为视口单位。同时,你可以在每个文件中使用注释来指定该文件的特定视口宽度。

例如,在一个针对桌面设备的CSS文件中:

/* viewport-width: 1920 */
.header {
  width: 1600px; /* 将被转换为 83.33333vw */
}

而在一个针对移动设备的CSS文件中:

/* viewport-width: 375 */
.header {
  width: 350px; /* 将被转换为 93.33333vw */
}

这样,你就可以在一次构建中生成适配多种设备的CSS,同时保持了代码的灵活性和可维护性。

鸣谢

原始代码从evrone/postcss-px-to-viewport迁移而来。

如果你有任何问题或疑虑,请在GitHub Issues上报告它们。

愉快的编码!

License

MIT License © 2023-PRESENT Kirk Lin