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

vite-plugin-atom-css-generator

v1.0.8

Published

A Vite plugin to auto generate atomic CSS from class names in Vue Single File Components.

Downloads

13

Readme

Vite Atom CSS Generator 插件

一个简单的Vite插件,用于从Vue 3模板中的类名自动生成原子级CSS样式,并自动注入到项目中。

安装

使用npm或yarn或pnpm进行安装:

npm i vite-plugin-atom-css-generator
yarn add vite-plugin-atom-css-generator
pnpm add vite-plugin-atom-css-generator

使用方法

  1. 在你的vite.config.js中引入并使用此插件:
import atomCssGenerator from 'vite-plugin-atom-css-generator';

export default {
  plugins: [
    atomCssGenerator({ outputPath: 'desired_output_path' }),
    // ...其他插件
  ]
}

⚠️ 必须放在@vitejs/plugin-vue插件的前面

plugins:[atomCssGenerator(),vue()]
  1. 在Vue组件的模板中使用特定格式的类名,例如:fc-fff。在构建时,插件将自动生成如下的CSS:
.fc-fff { color: #fff; }
  1. 构建项目后,style.css将自动被生成在指定的outputPath目录中,并自动注入到项目的HTML文件中。

配置

以下是插件可接受的配置选项:

  • outputPath (可选): 指定生成的style.css文件的路径。默认值为public。 例子:
atomCssGenerator({ outputPath: 'assets/styles' })

使用上述配置,style.css将被生成在assets/styles目录中,并在HTML中自动注入为/assets/styles/style.css。

原子类名规则

目前,此插件只支持以下格式的原子类名:

类名规则

颜色类

| 类名 | 样式描述 | 示例 | | --------------- | ---------- | ---------------------------------------------- | | fc-{color} | 文字颜色 | .fc-333 { color: #333; } | | bgc-{color} | 背景颜色 | .bgc-f2f2f2 { background-color: #f2f2f2; } | | bc-{color} | 边框颜色 | .bc-ccc { border-color: #ccc; } | | btc-{color} | 上边框颜色 | .btc-000 { border-top-color: #000; } | | brc-{color} | 右边框颜色 | .brc-333 { border-right-color: #333; } | | bbc-{color} | 下边框颜色 | .bbc-f00 { border-bottom-color: #f00; } | | blc-{color} | 左边框颜色 | .blc-0f0 { border-left-color: #0f0; } |

边距类

| 类名 | 样式描述 | 示例 | | ------------- | -------- | ------------------------------------ | | m-{size} | 外边距 | .m-20 { margin: 20px; } | | mt-{size} | 上外边距 | .mt-10 { margin-top: 10px; } | | mr-{size} | 右外边距 | .mr-15 { margin-right: 15px; } | | mb-{size} | 下外边距 | .mb-30 { margin-bottom: 30px; } | | ml-{size} | 左外边距 | .ml-5 { margin-left: 5px; } | | p-{size} | 内边距 | .p-20 { padding: 20px; } | | pt-{size} | 上内边距 | .pt-10 { padding-top: 10px; } | | pr-{size} | 右内边距 | .pr-15 { padding-right: 15px; } | | pb-{size} | 下内边距 | .pb-30 { padding-bottom: 30px; } | | pl-{size} | 左内边距 | .pl-5 { padding-left: 5px; } |

宽高大小类

| 类名 | 样式描述 | 示例 | | ------------------- | -------- | ------------------------------------------------- | | w-{size} | 宽度 | .w-100 { width: 100px; } | | w-{size}p | 宽度% | .w-50p { width: 50%; } | | h-{size} | 高度 | .h-200 { height: 200px; } | | h-{size}p | 高度% | .h-50p {height: 50%; } | | fs-{size} | 字体大小 | .fs-14 { font-size: 14px; } | | fw-{weight} | 字体粗细 | .fw-bold { font-weight: bold; } | | fs-{style} | 字体样式 | .fs-italic { font-style: italic; } | | td-{decoration} | 文本装饰 | .td-underline { text-decoration: underline; } |

flex布局类

| 类名 | 样式描述 | 示例 | | -------------- | ------------ | ------------------------------------------- | | d-flex | Flexbox布局 | .d-flex { display: flex; } | | fd-column | 纵向布局 | .fd-column { flex-direction: column; } | | jc-center | 水平居中 | .jc-center { justify-content: center; } | | ai-stretch | 垂直拉伸对齐 | .ai-stretch { align-items: stretch; } |

边框类

| 类名 | 样式描述 | 示例 | | ------------------------------ | -------- | -------------------------------------------------------- | | bw-{width} | 边框宽度 | .bw-2 { border-width: 2px; } | | bs-{style} | 边框样式 | .bs-dashed { border-style: dashed; } | | bc-{color} | 边框颜色 | .bc-333 { border-color: #333; } | | bt-{width}-{color}-{style} | 上边框 | .bt-1-f00-solid { border-top: 1px #f00 solid; } | | br-{width}-{color}-{style} | 右边框 | .br-2-0f0-dotted { border-right: 2px #0f0 dotted; } | | bb-{width}-{color}-{style} | 下边框 | .bb-3-00f-double { border-bottom: 3px #00f double; } | | bl-{width}-{color}-{style} | 左边框 | .bl-1-fff-dashed { border-left: 1px #fff dashed; } |

布局类

| 类名 | 样式描述 | 示例 | | -------------- | -------- | --------------------------------------- | | p-relative | 相对定位 | .p-relative { position: relative; } | | p-absolute | 绝对定位 | .p-absolute { position: absolute; } | | p-fixed | 固定定位 | .p-fixed { position: fixed; } |

鼠标样式类

| 类名 | 样式描述 | 示例 | | ------------- | -------- | ----------------------------------- | | c-pointer | 鼠标手形 | .c-pointer { cursor: pointer; } | | c-wait | 鼠标等待 | .c-wait { cursor: wait; } |

其他类

| 类名 | 样式描述 | 示例 | | ------------- | ------------ | -------------------------------------- | | o-hidden | 内容溢出隐藏 | .o-hidden { overflow: hidden; } | | ox-scroll | 水平滚动 | .ox-scroll { overflow-x: scroll; } | | oy-auto | 垂直自动 | .oy-auto { overflow-y: auto; } |

预定义的实用样式

| 类名 | 样式描述 | | ------------- | --------------------------------- | | te-ellipsis | 单行文本溢出显示省略号 | | te-ellipsis-2 | 多行文本溢出显示省略号 (最多两行) | | grid-3cols | 使用 Grid 实现三列布局 | | card-shadow | 实现一个卡片的阴影边框 |

常见问题

我可以扩展原子类名规则吗?

目前,此插件固定了原子类名规则。要添加更多规则,你需要直接编辑插件的源代码。

为什么我的style.css没有被注入?

确保outputPath的配置正确,并且HTML中存在 </head>标签,因为插件是将 <link>标签插入到此位置的。