@cssints/layout

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

Csints 的布局原始: 堆栈、 集群、 侧边栏、 切换器、 封面和自动Grid 作为链条成员

中文使用文档
文档目录4 节
  1. 原始人们
  2. 规则
  3. 限制
  4. 贷项

@ cssints/ 铺出

原始布局为 点缀之后 每个布局 财务报告和审定财务报表 斯莫克丝数字 : stack(), (中文(简体) ), cluster(), (中文(简体) ), sidebar(), (中文(简体) ), switcher(), (中文(简体) ), cover() 财务报告和审定财务报表 autoGrid()每个都是 链式成员 cssints/plugin scope():一个呼叫给出了原始的内核类,每种方法都设置了一个自定义 属性。 没有运行时间,没有媒体查询:布局响应他们拥有的空间.

import { cn, p } from "cssints" with { type: "cssints" };
import {
  autoGrid,
  cluster,
  sidebar,
  stack,
  switcher,
} from "@cssints/layout" with { type: "cssints" };

export const page = cn(stack().gap(6), p(4));
export const toolbar = cluster().gap(2).justify("space-between");
export const layout = sidebar().width("20rem").content("50%").gap(4);
export const buttons = switcher().threshold("30rem");
export const cards = autoGrid().min("16rem").gap(4);
@layer _.k {
  ._layout-stack-core {
    gap: var(--layout-stack-gap);
    --layout-stack-gap: 1rem;
    display: flex;
    flex-direction: column;
  }
  ._layout-sidebar-core {
    gap: var(--layout-sidebar-gap);
    --layout-sidebar-gap: 1rem;
    --layout-sidebar-width: auto;
    --layout-sidebar-content: 50%;
    --layout-sidebar-ff: 1 1 var(--layout-sidebar-width);
    --layout-sidebar-fm: auto;
    --layout-sidebar-lf: 999 1 0;
    --layout-sidebar-lm: var(--layout-sidebar-content);
    display: flex;
    flex-wrap: wrap;
  }
  ._layout-sidebar-core > :first-child {
    flex: var(--layout-sidebar-ff);
    min-inline-size: var(--layout-sidebar-fm);
  }
  ._layout-sidebar-core > :last-child {
    flex: var(--layout-sidebar-lf);
    min-inline-size: var(--layout-sidebar-lm);
  }
  ._layout-switcher-core > * {
    flex-grow: 1;
    flex-basis: calc((var(--layout-switcher-threshold) - 100%) * 999);
  }
  ._layout-grid-core {
    gap: var(--layout-grid-gap);
    --layout-grid-min: 16rem;
    --layout-grid-gap: 1rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(var(--layout-grid-min), 100%), 1fr));
  }
  /* ... the other kernels */
}
@layer _.a {
  ._x {
    --layout-stack-gap: 1.5rem;
  }
  ._y {
    --layout-sidebar-width: 20rem;
  }
  /* ... one class per method and value */
}

原始人们

初级方法(每一次,按任何顺序排列)这是什么
stack()gap (1雷姆)有缺口的弹性列
cluster()gap (1雷姆语), justify (单位:千美元)flex-start, (中文(简体) ), align (单位:千美元)center(中文(简体) )包装行:标签、按钮、工具栏
sidebar()side (单位:千美元)left, (中文(简体) ), width (单位:千美元)auto,内容), content (50%), gap (1雷姆)两个孩子并肩; 当内容孩子比 content 容器的移动
switcher()threshold (30雷姆)、, gap (1雷姆)当容器宽于 threshold,还有一列(Heydon Pickering's Flexbox 圣信天翁)
cover()minHeight (100伏时), gap (1雷姆)以垂直为中心,显示一分高的弹性列
autoGrid()min (16雷姆语), gap (1雷姆)至少为多列 min 酌情, repeat(auto-fit, minmax(min(min, 100%), 1fr)),从不溢出
  • 价值. gap 长度或百分比,单个数字是间隔尺度(0.25雷姆)的一阶,如 padding。 。 。 . width, (中文(简体) ), minHeight 财务报告和审定财务报表 min 长度或百分比, threshold 长度, content 从 0到100个. justify 实值 start | end | center | space-between | space-around | space-evenly, (中文(简体) ), align 实值 start | end | center | baseline | stretch, (中文(简体) ), side 实值 left | right托肯斯去一个长度。 类型检查每种方法,以及 建筑再次检查(范围包括: content("120%") 呼叫失败).
  • 条件. 一种方法在 media(), (中文(简体) ), hover() 而其他人则将定制财产置于这一条件之下: media("(width >= 40rem)")(stack().gap(8))。 。 。 .

规则

  • 内脏. 每个原始的都是一层内核 _.k样式:其自定义属性的默认值 要件(vars()),容器的特性,以及,用于 sidebar() 财务报告和审定财务报表 switcher()儿童的规则 (单位:千美元)nest("& > *")) (中文(简体) ). 呼唤是它的阶级_layout-stack-core),而且每种方法都包含一个类别 _.a (或 _.b a 项下 条件),它胜过默认.
  • 冲突. A 类 cn() 拥有原始财产的 其核心组合在呼叫时是一个建构错误 来源于 内核 : cn(stack(), display("grid")) 实值 cssints: layout: kernel stack-core sets display, flex-direction, gap (this style also sets display),以及 cn(autoGrid(), rowGap("1rem")) 也失败(长手 gap) (中文(简体) ). 铺垫、尺寸和 颜色不相冲突,内核设置在孩子身上的属性也不相冲突(cn(switcher(), flexGrow(0)) - 没事 与不透明的运行时字符串相冲突 cn() 没有看到,如同任何插件一样.
  • 不得渗入巢生原始. 默认设定在每一个原始的,所以 stack() 内置 a stack().gap(8) 空隙为1雷姆,而不是2雷姆.
  • 孩子们. sidebar() 大小为它的第一个和最后一个孩子(第一个是侧边栏,或最后一个与 side("right");DOM中的顺序保留了读取顺序, switcher() 每个孩子 这些规则是一等的 强入 _.k所以一个孩子的班级胜过他们.

限制

  • sidebar() 财务报告和审定财务报表 switcher() 通过继承方式将环境传给子女。 自己是侧边栏的孩子 (或切换器)读取自己在孩子角色上的默认或设置,而不是其父母的:用平面元素来包装 当父值不是默认值时.
  • cover() 将其全部内容放在中心; 每个布局在页眉和页脚之间的中心子 margin-block: auto 你写的那个孩子.
  • 不在这里: 每个布局 center, (中文(简体) ), box, (中文(简体) ), frame, (中文(简体) ), reel, (中文(简体) ), imposter 财务报告和审定财务报表 icon (单位:千美元)box 财务报告和审定财务报表 center 几个平地 属性; frame() cssints中为同心半径),切换器对项目数的限制.
cd packages/layout && bun run test   # fixtures through the engine (output, conflicts, build errors), and the type test via bun run typecheck

贷项

原始人就是他们 每个布局 (海顿·皮克林和安迪·贝尔) 斯莫克丝 (Stephanie Eckles);切换器为海顿·皮克林的Flexbox圣信天翁. 中央情报局是 这里写为样式 scope(); 没有复制代码.

版本与发布记录

@cssints/layout 共发布 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/layout 的常见问题

@cssints/layout 是什么?

Csints 的布局原始: 堆栈、 集群、 侧边栏、 切换器、 封面和自动Grid 作为链条成员

如何安装 @cssints/layout?

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

@cssints/layout 支持 TypeScript 吗?

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

@cssints/layout 支持 ESM 还是 CommonJS?

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

@cssints/layout 需要什么版本的 Node.js?

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

@cssints/layout 可以商用吗?

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

@cssints/layout 的下载量有多少?

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

@cssints/layout 还在维护吗?

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