@designtools/cascade

中文文档
0.1.4发布于 2026/03/19MITTypeScriptESM + CJS零依赖近 30 天下载 1.3万

CSS layout property icons. 15x15 SVG, React components, tree-shakeable.

原始使用文档
文档目录9 节
  1. Install
  2. Usage
  3. Props
  4. Accessibility
  5. Raw SVGs
  6. Metadata
  7. Categories
  8. Compatibility
  9. Licence

@designtools/cascade

Hand-crafted icons for 29 CSS properties and their values. Made for design tools that speak code.

React components and raw SVGs. Every icon fits a 15x15 pixel grid with crisp edges at 1x resolution.

Brought to you by flett.cc

Install

npm install @designtools/cascade

Usage

import { DisplayFlex, PaddingTop, FlexDirectionRow } from "@designtools/cascade";

function App() {
  return (
    <div>
      <DisplayFlex />
      <PaddingTop />
      <FlexDirectionRow />
    </div>
  );
}

Props

Every icon component accepts the following props along with all standard SVG attributes (SVGAttributes<SVGSVGElement>):

PropTypeDefaultDescription
colorstringcurrentColorIcon colour. Inherits from parent text colour by default.
solidbooleanfalseRender at full opacity (strips duotone fading). No effect on non-duotone icons.
widthnumber | string15Icon width. Use multiples of 15 for pixel-perfect rendering.
heightnumber | string15Icon height. Use multiples of 15 for pixel-perfect rendering.
<DisplayFlex color="#6366f1" />
<DisplayFlex solid />
<DisplayFlex width={30} height={30} />

Any standard SVG attribute (e.g. className, style, aria-hidden) can also be passed directly.

Accessibility

Icons ship without aria-hidden so consumers can decide per use case.

Decorative (most common) — add aria-hidden="true":

<label>
  <DisplayFlex aria-hidden="true" />
  Flex
</label>

Standalone/meaningful — use aria-label:

<button aria-label="Set display to flex">
  <DisplayFlex aria-hidden="true" />
</button>

Raw SVGs

Static .svg files are included in the svg/ directory for use outside React.

Metadata

The package exports a metadata array mapping CSS properties/values to icon names:

import { metadata } from "@designtools/cascade";

// Each entry: { property: string, value: string | null, icon: string }
metadata.forEach((entry) => {
  console.log(`${entry.property}: ${entry.value} → ${entry.icon}`);
});

Use this to build icon pickers, documentation, or editor integrations programmatically.

Categories

CategoryIconsExamples
Display8DisplayBlock, DisplayFlex, DisplayGrid, DisplayNone
Flex direction4FlexDirectionRow, FlexDirectionColumn
Flex wrap3FlexWrapWrap, FlexWrapNowrap
Flex grow/shrink2FlexGrow, FlexShrink
Justify content6JustifyContentCenter, JustifyContentSpaceBetween
Align items7AlignItemsCenter, AlignItemsStretch
Align self8AlignSelfCenter, AlignSelfStretch
Align content9AlignContentCenter, AlignContentSpaceBetween
Position5PositionAbsolute, PositionSticky
Padding5PaddingAll, PaddingTop
Margin5MarginAll, MarginTop
Gap2GapColumn, GapRow
Size2SizeHorizontal, SizeVertical
Axis2AxisX, AxisY
Border radius5BorderRadiusAll, BorderRadiusTopLeft
Border style/width2BorderStyle, BorderWidth
Overflow4OverflowVisible, OverflowScroll
Text align4TextAlignLeft, TextAlignCenter
Text decoration3TextDecorationUnderline, TextDecorationNone
Text transform3TextTransformUppercase, TextTransformCapitalize
Typography5FontFamily, FontSize, FontWeight, LineHeight, LetterSpacing
Opacity1Opacity
Box shadow1BoxShadow

Compatibility

The package ships both ESM (.mjs) and CJS (.cjs) bundles with full TypeScript declarations. It works out of the box with any modern bundler or runtime:

FormatEntry pointUsed by
ESMdist/index.mjsVite, Next.js, webpack 5+, esbuild
CJSdist/index.cjsNode.js require(), older bundlers
Typesdist/index.d.tsTypeScript

The exports map in package.json ensures the correct format is resolved automatically. The package is marked sideEffects: false, so importing a single icon will not bundle the rest.

Requires React 18+ as a peer dependency.

Licence

MIT. Glyph paths derived from Inter (OFL-1.1).

版本与发布记录

@designtools/cascade 共发布 4 个版本,首次发布于 2026/03/18;过去 12 个月发布了 4 个版本。

版本发布日期距今
0.1.4latest2026/03/197 个月前
0.1.32026/03/197 个月前
0.1.22026/03/187 个月前
0.1.12026/03/187 个月前

关于 @designtools/cascade 的常见问题

@designtools/cascade 是什么?

CSS layout property icons. 15x15 SVG, React components, tree-shakeable.

如何安装 @designtools/cascade?

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

@designtools/cascade 支持 TypeScript 吗?

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

@designtools/cascade 支持 ESM 还是 CommonJS?

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

@designtools/cascade 可以商用吗?

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

@designtools/cascade 的下载量有多少?

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

@designtools/cascade 还在维护吗?

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