@cssints/squircle

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

Csints的 Squircle 角: 本地角形: Squircle, 一个目标缺少的 CSS 口罩

中文使用文档
文档目录5 节
  1. 浏览器
  2. 为什么是面具
  3. 规则
  4. 限制
  5. 贷项

@ cssints/ squircle (英语)

弯曲角为 点缀,作为一个链条成员 cssints/plugin scope(): 本国 corner-shape: squircle 目标所在处(Chrome 139),以及一个CSS口罩,在缺乏时切入相同的曲线 这个 没有脚本.

import { bg, cn, hover } from "cssints" with { type: "cssints" };
import { squircle } from "@cssints/squircle" with { type: "cssints" };

export const icon = cn(squircle().radius("24px"), bg("tomato"));
export const card = cn(squircle(), hover(squircle().radius("2rem")));
@layer _.k {
  ._squircle-core {
    border-radius: var(--squircle-r);
    corner-shape: squircle;
    --squircle-r: 1rem;
  }
  /* only when a browserslist target lacks corner-shape (Firefox, Safari today) */
  @supports not (corner-shape: squircle) {
    ._squircle-core {
      --squircle-m: url("data:image/svg+xml,%3Csvg … viewBox='-1 -1 2 2' preserveAspectRatio='none'%3E%3Cpath d='M1 0C1 .92 .92 1 0 1…Z'/%3E%3C/svg%3E");
      border-radius: 0;
      mask:
        var(--squircle-m) 0 0 / min(2 * var(--squircle-r), 100%) min(2 * var(--squircle-r), 100%)
          no-repeat,
        var(--squircle-m) 100% 0 / … no-repeat,
        var(--squircle-m) 0 100% / … no-repeat,
        var(--squircle-m) 100% 100% / … no-repeat,
        linear-gradient(#000 0 0) 50% / 100% max(0px, 100% - 2 * var(--squircle-r)) no-repeat,
        linear-gradient(#000 0 0) 50% / max(0px, 100% - 2 * var(--squircle-r)) 100% no-repeat;
    }
  }
}
@layer _.a {
  ._c2r73i {
    --squircle-r: 24px;
  }
}
@layer _.b {
  ._1xgz4ts:hover {
    --squircle-r: 2rem;
  }
}

浏览器

  • 土著 (单位:千美元)css.properties.corner-shape.squircle: Chrome139 (英语). Firefox和Safari只预览它; Playwright的WebKit建设已经拥有了.
  • 倒计时 仅为 CSS 运行时间( X)polyfills: ["css.properties.corner-shape", "css.properties.corner-shape.squircle"], (中文(简体) ), 所以只有在浏览器列表目标缺少功能时,它才出现在工作表中 @supports not 放在浏览器里 这是它。 内核 requires 警告是属于它的。 这需要 mask 与 var() 财务报告和审定财务报表 min()编号 :max() 大小: Firefox 75, Safari 15.4(灯光CSS没有前缀一个值与 var()) (中文(简体) ).
  • 已检查 在克罗梅、火狐和WebKit中bun run test:browsers:一个盒子的角和边缘从一个 屏幕截图,只为Chrome 139的一栋建筑,为Firefox和Safari的一栋建筑 corner-shape 切开 (面具一个人). 在两者运行的地方,口罩的40px角是1600(Chrome)和0(WebKit)的原生一到2像素.

为什么是面具

  • A 类 油漆工作表 (单位:千美元)css-houdini- squircle (英语), (中文(简体) ), 额外cs) 只在铬中运行,而铬有 corner-shape 现在:将涵盖否 缺少该功能的浏览器,它会传送一个脚本.
  • 平面 border-radius 无成本( 浏览器下降) corner-shape 并保持半径,但角是 圆:在同一半径上,它沿着对角线(半径0.29对0.16)截取了近两倍的深 读作另一种形状.
  • 面具 是形状本身,无论大小,没有脚本:超椭圆形的 SVG |x|⁴ + |y|⁴ = 1 (单位:千美元)corner-shape: squircle 实值 superellipse(2)),曲线0.5%以内为四立方,以两次为四角 半径,以及 linear-gradient 他们之间 每个角地层是小盒子的一圈,所以他们 与波段结合是元素的相接;大小通过百分比跟随元素,没有测量.

规则

  • radius(<length-percentage [0,∞]>),一次,可选(1rem) (中文(简体) ). 它设置 --squircle-r,所以它工作在一个 条件(hover(squircle().radius("2rem"))) (中文(简体) ). 每一方的百分比,如 border-radius (椭圆角); 半径超过半个盒子 被浏览器在原地夹住 min(…, 100%) 戴着面具.
  • 没有遗产. 内核集 --squircle-r 所以另一只里面的一只小熊 拥有自己的半径.
  • 冲突. squircle() 设置角: a cn() 拿着它,一个 border-*radius 或者说 corner-* 属性为 a 构建错误, 来源于内核( 写为样式) : cssints: squircle: kernel core sets border-radius, corner-shape (this style also sets border-top-left-radius)设置 半径为 radius()。 。 。 .
  • 错误 语法,在类型和建设时间: squircle.radius: unexpected "-4px" in "-4px", expected <length-percentage [0,∞]>。 。 。 .

限制

  • 面具夹住外侧的外形. 倒计时a box-shadow,一个 outline (焦点环)和 一个角落 border 被切:边框被平方画出并被口罩去修剪,因此在角上会变薄. 拿着 包件上的阴影( e)filter: drop-shadow() 随口而出,或内出一环. 原生道路将它们沿着 曲线.
  • 一种形状:没有 superellipse(k) 平滑,没有光圈光度或形状。 面具是SVG的,另一个会 每个值成为另一个 SVG( 构建时间) url() 以定制的地产,等待使用.
  • mask 属于后退: a mask 自己用平板电脑替换掉头的.
cd packages/squircle && bun run test            # fixtures through the engine (output for both kinds of targets, conflicts, errors)
cd packages/squircle && bun run typecheck       # and the type test (test/types)
cd packages/squircle && bun run test:browsers   # Chrome, Firefox and WebKit through playwright-core

贷项

曲线为CSS边框和箱型装饰 第4级的上椭圆(CSS Borders and Box Dercorations Level 4)corner-shape: squircle) (中文(简体) ). 面具画了 这里; 没有复制 .

版本与发布记录

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

@cssints/squircle 是什么?

Csints的 Squircle 角: 本地角形: Squircle, 一个目标缺少的 CSS 口罩

如何安装 @cssints/squircle?

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

@cssints/squircle 支持 TypeScript 吗?

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

@cssints/squircle 支持 ESM 还是 CommonJS?

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

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

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

@cssints/squircle 可以商用吗?

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

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

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

@cssints/squircle 还在维护吗?

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