carbon-icons-svelte

作为 Svelte 组件的 Carbon Design System SVG 图标。「Carbon Design System SVG icons as Svelte components」

Github星跟蹤圖

carbon-icons-svelte

NPM
GitHub
npm downloads to date

Carbon Design System SVG icons as Svelte components.

This zero dependency icon library builds Carbon Design System icons as Svelte components. Although best paired with carbon-components-svelte, these icons can be consumed standalone.

Try it in the Svelte REPL.

Preview · Icon Index

Installation

# npm
npm i carbon-icons-svelte

# pnpm
pnpm i carbon-icons-svelte

# Yarn
yarn add carbon-icons-svelte

# Bun
bun add carbon-icons-svelte

Usage

Direct Import

Import the icon from the carbon-icons-svelte/lib folder. See the Icon Index for a list of supported icons.

<script>
  import Add from "carbon-icons-svelte/lib/Add.svelte";
</script>

<Add />

Base Import with Preprocessor

[!TIP]
Use optimizeImports from carbon-preprocess-svelte to speed up development times.

Due to the size of the library, importing directly from the barrel file may result in slow development times, since the entire barrel file is imported (thousands of icons).

optimizeImports is a Svelte preprocessor that optimizes import paths from Carbon Svelte libraries. It enables you to use the barrel file import syntax without importing the entire library.

For example, the following is automatically re-written by optimizeImports:

- import { Add } from "carbon-icons-svelte";
+ import Add from "carbon-icons-svelte/lib/Add.svelte";

This offers the best of both worlds:

  • Concise import syntax
  • Fast development times (only the icons you need are imported)

Custom size

Use the size prop to specify the icon size.

Supported icon sizes include 16, 20, 24, and 32.

The default size is 16.

<Add size={16} />
<Add size={20} />
<Add size={24} />
<Add size={32} />

API

All props are optional.

Name Type Default value
size 16 | 20 | 24 | 32 16
title string undefined

Custom props

$$restProps are forwarded to the svg element.

You can use fill to customize the color or pass any other valid svg attribute to the component.

<Add fill="red" class="icon" />

Labelled

<Add aria-label="Add" />

Labelled by

<label id="add-file">Add file</label>
<Add aria-labelledby="add-file" />

Focusable

<Add aria-label="Add" tabindex={0} />

TypeScript

This library offers TypeScript support for Svelte 4 and Svelte 5.

For Svelte 3 compatibility, use carbon-icons-svelte@12.13.0.

For convenience, a CarbonIconProps type is exported from the library.

<script lang="ts">
  import Add from "carbon-icons-svelte/lib/Add.svelte";
  import type { CarbonIconProps } from "carbon-icons-svelte";

  const props: CarbonIconProps = {
    size: 16,
    fill: "red",
    "data-test": "id",
  };
</script>

<Add {...props} />

Changelog

Contributing

License

Apache 2.0

主要指標

概覽
名稱與所有者carbon-design-system/carbon-icons-svelte
主編程語言TypeScript
編程語言TypeScript (語言數: 2)
平台
許可證Apache License 2.0
所有者活动
創建於2019-12-13 17:50:35
推送於2025-05-13 00:35:57
最后一次提交2025-05-12 17:35:55
發布數69
最新版本名稱v13.3.0 (發布於 )
第一版名稱v0.1.0 (發布於 2019-12-13 13:27:42)
用户参与
星數415
關注者數11
派生數24
提交數530
已啟用問題?
問題數45
打開的問題數4
拉請求數135
打開的拉請求數0
關閉的拉請求數31
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?