@cssints/css-grammar

中文文档
0.35.1发布于 2026/11/07MITTypeScriptES Module构建来源已验证近 30 天下载 1.5万

CSS值在 mdn-data 语法之上的类型级别和运行时间识别器(csints的引擎)

中文使用文档
文档目录12 节
  1. 安装
  2. 框架
  3. 在终点站
  4. 调试
  5. 对于特工
  6. 版式
  7. 发展
  8. 贷项
  9. 船舶数据和代码
  10. 想法和设计
  11. 建造在
  12. 许可证

CSS 临时秘书处

cssints是编译时间 CSS-in-TypeScript. 你写这样的电话 css.flex().alignItems("center")。一个 Vite 插件在构建时运行它们,并用原子、内容隐藏的类名替换每个 @layers. 除了加入类名的几行外, 样式代码船没有给浏览器: for a cn() 有运行时间参数和 cv编号 :scv。 。 。 .

  • 值与类型中的分型语法(mdn-data)对照检查,并在构建时再次检查. texto是编辑器和构件中的错误.
  • 条件(media, (中文(简体) ), container, (中文(简体) ), supports, (中文(简体) ), hover),变体(cv, (中文(简体) ), scv),设计符号和主题(createTokens, (中文(简体) ), createGlobalTheme, (中文(简体) ), check.contrast)是全部构建时间,并且全部输入.
  • 闪电CSS优化了输出. 浏览器支持( E)@mdn/browser-compat-data 相对于您的浏览器列表)被报告为警告,除了闪电CSS对这些目标的降低.

阿尔法. cssints在npm在0:x. API 仍然可以在小版本、插件包之间更改 可能移动,一些浏览器和框架的检查比其他的少(docs/API.md,“浏览器支持和什么 (没有) 将版本收录,并报告中断的情况.

决定和调查结果载于 文件/导游; API 引用为 文件/API.md。两者也是搜索和类型徘徊的网站: 应用程序/文件 (单位:千美元)cd apps/docs && bun run dev与Alchemy一起部署在Cloudflare: https://cssints.dev (英语)。 。 。 .

安装

npm install --save-dev cssints vite@8   # or: bun add -d cssints vite@8, pnpm add -D cssints vite@8

cssints需要Vite 8(Vite+工作也)和节点22.18或更后(插件以类型剥取来运行您的模块). 这是一个 依附者:除后面的几行外,别无其他船舶 cn 有运行时间参数和 cv。插件套件安装相同 一路相去无远 cssints (单位:千美元)npm install --save-dev @cssints/fluid)),该列表在 插件软件包 页 次 在此存储库中 cssints 是工作空间软件包 (单位:千美元)"cssints": "workspace:*") (中文(简体) ).

// vite.config.ts
import cssints, { cssTarget, targets } from "cssints/vite";

export default {
  plugins: [cssints()],
  css: { transformer: "lightningcss", lightningcss: { targets } },
  build: { cssMinify: "lightningcss", cssTarget },
};
// the entry, once
import "virtual:cssints.css";
import { reset } from "@cssints/reset" with { type: "cssints" };

reset();

reset() 建议开始: @cssints/reset 是一种小的现代重置,在每一款风格的下层, 所以任何一种风格都比它强. 没有电话的项目是没有的,就像任何应用程序一样.

targets 财务报告和审定财务报表 cssTarget 来自支持警告的浏览器列表查询: BROWSERSLIST 变量,否则标准配置("browserslist" 内 package.json 或者说 .browserslistrc,与 BROWSERSLIST_ENV, (中文(简体) ), NODE_ENV 或者说 production (第3节) defaults。当 vite.config.ts 在 Vite 的根已知之前, 导入它们, 因此它们会从 process.cwd() 上方;支持警告从Vite那里查出来 root (2026-10-09, cssints-p3d2) (中文(简体) ). 当Vite从应用程序的目录中运行时,它们是一样的 vite <dir> 从别处,给 targets 财务报告和审定财务报表 cssTarget 应用程序的配置你自己。 Vite的 CSS 缩写为 cssTarget没有 targets:没有它, 修饰者将合并 a 的宣告 firstThatWorks 进入最后一个。 添加 "types": ["vite/client"] 改为 tsconfig.json 联 合 国 virtual: 导入.

框架

任何通过Vite插件构建JSX的框架都会起作用;引擎会评价你的模块本身,因此它不关心插件对JSX的制作,也不关心插件的排列顺序. apps/csssky 是 Solid 2 应用程序(solid-js 财务报告和审定财务报表 @solidjs/web 2.0.0-rc.13, (中文(简体) ), @solidjs/vite-plugin 3.0.0-下行47号:

// vite.config.ts
import solid from "@solidjs/vite-plugin";
import cssints, { cssTarget, targets } from "cssints/vite";

export default {
  plugins: [cssints(), solid()],
  css: { transformer: "lightningcss", lightningcss: { targets } },
  build: { cssMinify: "lightningcss", cssTarget },
};

tsconfig.json 这是Solid的: "jsx": "preserve", (中文(简体) ), "jsxImportSource": "@solidjs/web", (中文(简体) ), "types": ["vite/client"]固态 class 需要字符串、对象或数组,所以 cn 加入时不需要: class={[card, on() && p(4)]} 财务报告和审定财务报表 class={badge({ tone: tone() })} 工作在反应。 一个站点的参数仍然是构建时值,所以一个信号在状态下或在一个状态下发出 cv 变体,不为 p(n())下调 vite dev 一个组件的编辑替换并重排其下方的状态(Solid的刷新);一个样式的编辑会改变类字符串和工作表,而不重新加载.

import { reset } from "@cssints/reset" with { type: "cssints" };
import {
  bg,
  color,
  cn,
  cv,
  flex,
  hover,
  media,
  p,
  style,
  token,
} from "cssints" with { type: "cssints" };

reset();

const md = media("(width >= 40rem)");
const accent = token.color("#2563eb", "accent");

const button = cv({
  base: cn(p(2), color("white"), bg(accent), hover(bg("#1d4ed8"))),
  variants: { wide: { true: md(p(4)) } },
});

export const Row = ({ wide, on }: { wide?: boolean; on?: boolean }) => (
  <div
    className={cn(flex().alignItems("center").gap(2), on && p(1))}
    style={style(token.set(accent, "#dc2626"))}
  >
    <button className={button({ wide })}>Save</button>
  </div>
);

with { type: "cssints" } 标记在建设时运行的状态。 插件用类字符串取代每个调用, 因此浏览器得到 __cx([], "_1s47490 _1ob5z5m _g2iyum", on && "_lqk467") 财务报告和审定财务报表 button 是一个运行时间的呼叫 { base: "_1t8gqy5 ...", ... }所以它永远看不到 flex()。 。 。 . virtual:cssints.css 是一个工作表,每条规则一次,按分层排序,然后是条件,然后是长手之前的快手,然后是类名(即 @layer reset { ... } 块 reset() 先来后留这里:

@layer _.k, _.a, _.b, _.c, _.d, _.e;
@property --accent {
  syntax: "<color>";
  inherits: true;
  initial-value: #2563eb;
}
@layer _.a {
  ._1t8gqy5 {
    padding: 0.5rem;
  }
  ._lqk467 {
    padding: 0.25rem;
  }
  ._g2iyum {
    gap: 0.5rem;
  }
  ._17xzvrh {
    background-color: var(--accent);
  }
  ._1binn6n {
    color: white;
  }
  ._1ob5z5m {
    align-items: center;
  }
  ._1s47490 {
    display: flex;
  }
}
@layer _.b {
  ._1tsjws2:hover {
    background-color: #1d4ed8;
  }
  @media (width >= 40rem) {
    ._tdcza3 {
      padding: 1rem;
    }
  }
}

在终点站

import * as css from "cssints/tui" with { type: "cssints" } 给成员一个终端(单元格、颜色、边框、弹性、状态、, cursor),插件将其编译为道具对象 打开TUI 替代班级的可交付性; @cssints/tui 应用它们的国家和主题: 软件包/图伊,文档/API.md "TUI"。 套件来应用它们, @cssints/tui,为 已贬值 支持在 native/terminal (Clay in cells,termbox2);它的README表示什么是承载的以及如何运行替换.

更多进去 文件/API.md: 财产名称和简称, flex() 财务报告和审定财务报表 grid() 链条、条件和层次、标志和主题, cn 财务报告和审定财务报表 cv,和可以得到的错误.

调试

CSSINTS_TRACE=otlp bun run build (或 dev)向本地的OpenTeleometry后端发送每个Vite钩子的痕量,并附有每个模块的文件;未设置,费用不高. 如何在后端启动 docker run,以及长度: 文件/API.md。 。 。 .

对于特工

cssints 二号舰 代理技能 在它的包装, skills/cssints (写作风格:设置, cn编号 :cv、条件、符号和主题、插件包、构建错误)和 skills/cssints-plugin (书写) 打开一个插件 scope(),及其测试). 安装到您的代理技能文件夹 :

npx skills-npm                                # links the skills of every installed package that ships some
npx skills add ./node_modules/cssints/skills  # or the skills CLI, for opencode, Claude Code, Codex, Cursor, ...

执行这个寄存器的特工们得到 .agents/skills/cssints-contributor (另见: .claude/skills无安装.

@cssints/mcp 是一个MCP服务器, 并带有该架构自己的检查( MCP) check_declaration, (中文(简体) ), check_support, (中文(简体) ), check_contrast, (中文(简体) ), compile, (中文(简体) ), search_docs, (中文(简体) ), list_plugins),单位 软件包/mcp 带有打开代码的配置, Claude 代码 和克塞尔。 技能在配置和工作时使用.

版式

路径什麽
packages/cssints维特插件( V)cssints/vite在维特模块运行器 cssints 图书馆
packages/css-grammar类型级识别器及其运行时间双向并重于 mdn-data 语法, 输入的 OM 值, 浏览器支持和发音规则
packages/icons@cssints/icons:来自图标 JSON 收藏或 SVG 文件夹的图标,一个没有运行时间的遮罩样式
packages/mise-en-mode@cssints/mise-en-mode: 显示为图层应用 < 作者 < 查看器, 打开 data-mode 瞄准镜,对照符号检查 check.contrast
packages/headless@cssints/headless: Solid 2 上的无头 APG 部件( 状态和 DOM 属性对象, 无样式), 与 Quint 规格相匹配; 尚未发布
packages/apg-specs@cssints/apg-specs: APG 和画布 Quint 规格, 生成模型, 情景桥和切换方案, 部件被测试( 测试对象, 发布)
packages/tui@cssints/tui (单位:千美元)已贬值: 运行时间 cssints/tui 在 OpenTUI 和 @ bomb.sh/tty 上的样式; native/terminal 替换它
apps/demo每个 0.1 特性的反应演示
apps/docs文件网站:此文件 docs/API.md 作为页面,搜索和类型徘徊(cd apps/docs && bun run dev(中文(简体) )
docs/research, (中文(简体) ), docs/archive与其他图书馆的比较;过时的计划

发展

bun install
bun run test    # all packages (vp run -r test, cached where possible); includes the type-check of the code in docs/API.md and this file
bun run bench   # type instantiation budgets (tsc and tsgo)
bun run check   # format, lint, type-check (vp check), then tsc 7 with the Effect diagnostics (bun run typecheck)
bun run diff:check   # the added lines against master: anti-slop rules, key-file changes (tools/ai-automation)
cd apps/demo && bun run dev
cd apps/docs && bun run dev   # the documentation site, on the pages of README.md and docs/API.md

见 一般事务人员(其他职等) 用于布局、命令和代码样式.

贷项

cssints是麻省理工学院. 它代表着其他人的工作;这是我们从谁那里拿走的,也是凭什么许可证取得的。 复制数据或代码的软件包带有上游通知(README的信用或许可证部分,或 THIRD_PARTY_NOTICES.md) (中文(简体) ).

船舶数据和代码

何处什麽从许可证
@ cssints/ tokens (英语)开放的道具、 Radix 颜色、 Flexoki 和合理颜色集打开道具 (亚当·阿吉勒), Radix 颜色, (中文(简体) ), 弗来克索克语Name (史蒂夫·安戈), 合理颜色 (马修·豪威尔)麻省理工学院,在其研究中发出通知
@cssints/cs-语法cSS 语法字符串(src/mdn.ts, (中文(简体) ), keywords.ts, (中文(简体) ), functions.ts)),在类型中也是如此 cssintsmdn-数据; 数字范围将其省略 @webref/css (英语)CC0-1.0; 麻省理工学院(W3C)
@cssints/cs-语法浏览器支持警告, 从软件包读取( 未复制)@mdn/浏览器-compat-dataCC0-1.0 (英语)
@ cssints/ fonts (韩语)新罗马时代和新古罗马时代的 拉丁字符加权和衡量标准缩放 (尖叫声)麻省理工学院,在读本中注明
@ cssints/相册无: 收藏是您的依赖性图标 @iconify-json/*每一个收藏的自己的
tools/ai-automation/vendor提示规则, 未公布dmmulroy/反斜坡 (迪伦·穆罗伊)麻省理工学院, LICENSE 财务报告和审定财务报表 UPSTREAM.md
应用程序/cssky布局和符号值; Inter; Phospor 图标穆尔和 @bsky.app/alf (蓝斯基社会委员会), 间, (中文(简体) ), 磷酸盐麻省理工学院;OFL-1.1;麻省理工学院
应用程序/演示材料设计图标( E)@iconify-json/mdi(中文(简体) )象形图阿帕奇 - 2.0

想法和设计

没有从这些中复制代码; 每个软件包 README 表示后面哪个部分 .

建造在

效果, (中文(简体) ), 维特 和维特+, 牛津救济会, (中文(简体) ), 闪电CSS (MPL-2.0;在操场上建造其园地), 库罗里语name, (中文(简体) ), 类型脚本 键入脚本, 阿宝, (中文(简体) ), 固态, (中文(简体) ), 打开TUI, (中文(简体) ), 志纪, (中文(简体) ), 皮埃尔的要闻, (中文(简体) ), 摩纳哥编辑器, (中文(简体) ), 剧作家, (中文(简体) ), 快速检查, (中文(简体) ), 昆特语, (中文(简体) ), 提示,以及 豆类 买票的 磷酸盐图标(MIT)通过 @iconify-json/ph每个依赖者都持有自己的许可证;没有一个被复制到仓库.

许可证

麻省理工学院

版本与发布记录

@cssints/css-grammar 共发布 43 个版本,首次发布于 2026/10/11;过去 12 个月发布了 43 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.35.1latest2026/11/073 天前
0.35.02026/11/073 天前
0.34.02026/11/073 天前
0.33.02026/11/046 天前
0.32.02026/11/046 天前
0.31.02026/11/047 天前

关于 @cssints/css-grammar 的常见问题

@cssints/css-grammar 是什么?

CSS值在 mdn-data 语法之上的类型级别和运行时间识别器(csints的引擎)

如何安装 @cssints/css-grammar?

在项目目录运行 npm install @cssints/css-grammar,或使用 pnpm add / yarn add / bun add。

@cssints/css-grammar 支持 TypeScript 吗?

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

@cssints/css-grammar 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cssints/css-grammar 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cssints/css-grammar 可以商用吗?

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

@cssints/css-grammar 的下载量有多少?

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

@cssints/css-grammar 还在维护吗?

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