@capsizecss/vanilla-extract

中文文档
2.0.4发布于 2025/11/25MITTypeScriptESM + CJS构建来源已验证近 30 天下载 13万

缩放的香草-提取集成

中文使用文档
文档目录4 节
  1. 使用量
  2. 主题打字
  3. 响应打字
  4. 调试标识符
Capsize

@ capsiscs/ vanilla- extract( 缩写)

组合软件包 香草摘录。 。 。 .

npm install @capsizecss/vanilla-extract

使用量

  1. 导入 createTextStyle 在您的香草提取样式表内,通过相关 选项。 。 。 .
// Text.css.ts
import { createTextStyle } from '@capsizecss/vanilla-extract';

export const text = createTextStyle({
  fontSize: 16,
  leading: 24,
  fontMetrics: {
    capHeight: 700,
    ascent: 1058,
    descent: -291,
    lineGap: 0,
    unitsPerEm: 1000,
  },
});
  1. 从样式表导入该类并应用到文本元素
// Text.ts
import * as styles from './Text.css';

document.write(`
  <div class="${styles.text}">
    My capsized text 🛶
  </div>
`);

主题打字

当使用一个 香草摘要主题 要管理您的打字功能,您需要预先计算并存储一个主题级别上的值.

导入 precomputeValues 通过相关的 选项 并指定您的香草摘要主题。 这些预计算值可以直接传递到 createTextStyles 现改为:

// Text.css.ts
import { createTheme } from '@vanilla-extract/css';
import { createTextStyle, precomputeValues } from '@capsizecss/vanilla-extract';

const [themeClass, vars] = createTheme({
  bodyText: precomputeValues({
    fontSize: 18,
    leading: 24,
    fontMetrics: {
      capHeight: 700,
      ascent: 1058,
      descent: -291,
      lineGap: 0,
      unitsPerEm: 1000,
    },
  }),
});

export const text = createTextStyle(vars.bodyText);

响应打字

作为回应风格的便利, createTextStyle 接受以香草提取形式出现的第二个参数 媒体查询对象,返回完整的响应类列表.

// Text.css.ts
import { createTextStyle } from '@capsizecss/vanilla-extract';

const fontMetrics = {
  capHeight: 700,
  ascent: 1058,
  descent: -291,
  lineGap: 0,
  unitsPerEm: 1000,
};

const textDefinitions = {
  mobile: { fontSize: 18, leading: 24, fontMetrics },
  tablet: { fontSize: 16, leading: 22, fontMetrics },
  desktop: { fontSize: 14, leading: 18, fontMetrics },
};

export const text = createTextStyle(textDefinitions.mobile, {
  '@media': {
    'screen and (min-width: 768px)': textDefinitions.tablet,
    'screen and (min-width: 1024px)': textDefinitions.desktop,
  },
});

或者,在主题的情况下:

// Text.css.ts
import { createTheme } from '@vanilla-extract/css';
import { createTextStyle, precomputeValues } from '@capsizecss/vanilla-extract';

const fontMetrics = {
  capHeight: 700,
  ascent: 1058,
  descent: -291,
  lineGap: 0,
  unitsPerEm: 1000,
};

const [themeClass, vars] = createTheme({
  bodyText: {
    mobile: precomputeValues({ fontSize: 18, leading: 24, fontMetrics }),
    tablet: precomputeValues({ fontSize: 16, leading: 22, fontMetrics }),
    desktop: precomputeValues({ fontSize: 14, leading: 18, fontMetrics }),
  },
});

export const text = createTextStyle(vars.bodyText.mobile, {
  '@media': {
    'screen and (min-width: 768px)': vars.bodyText.tablet,
    'screen and (min-width: 1024px)': vars.bodyText.desktop,
  },
});

调试标识符

为了改善开发者的经验, createTextStyle 接受调试标识符作为最后一个参数.

export const text = createTextStyle({ ... }, 'myCapsizedRule');

这产生了一个类名 类似的东西 .Text_myCapsizedRule__1bese54h。 。 。 .

许可证

麻省理工学院.

版本与发布记录

@capsizecss/vanilla-extract 共发布 17 个版本,首次发布于 2021/08/23;过去 12 个月发布了 4 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.0.4latest2025/11/2511 个月前
0.0.0-bundle-ve-with-filescopes-202511250327582025/11/2511 个月前
2.0.32025/11/1411 个月前
2.0.22025/11/1211 个月前
0.0.0-test-20251006235016test2025/10/071.1 年前
2.0.12025/05/291.4 年前

其他发布通道:upgrade-vanilla-extract → 0.0.0-upgrade-vanilla-extract-20231221044049,fix-build → 0.0.0-fix-build-20240101223331,crackle → 0.0.0-crackle-20240208083429,master → 0.0.0-master-20240214212615,metrics-frequency-data → 0.0.0-metrics-frequency-data-20240215031405,test → 0.0.0-test-20251006235016。

关于 @capsizecss/vanilla-extract 的常见问题

@capsizecss/vanilla-extract 是什么?

缩放的香草-提取集成

如何安装 @capsizecss/vanilla-extract?

在项目目录运行 npm install @capsizecss/vanilla-extract,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@vanilla-extract/css(^1.4.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capsizecss/vanilla-extract 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capsizecss/vanilla-extract 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capsizecss/vanilla-extract 可以商用吗?

@capsizecss/vanilla-extract 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@capsizecss/vanilla-extract 的下载量有多少?

根据 npm 官方下载统计,@capsizecss/vanilla-extract 在 2026/10/09 – 2026/11/07 这 30 天内被下载 130,410 次,日均约 4,347 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capsizecss/vanilla-extract 还在维护吗?

最新版本 2.0.4 发布于 2025/11/25(11 个月前);至今共发布 17 个版本,其中过去 12 个月发布了 4 个;首次发布于 2021/08/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。