3.11.0 • Published 7 days ago

@charcoal-ui/icons v3.11.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
7 days ago

@charcoal-ui/icons

SVG アイコンを Custom Elementsとして利用できるライブラリです。

インストール

npm

npm i @charcoal-ui/icons

yarn

yarn add @charcoal-ui/icons

使い方

アプリケーションのエントリポイントで import します。 Storybook の場合は preview.(js|ts) に書くと良いでしょう。

import '@charcoal-ui/icons'

これだけで、 <pixiv-icon> という HTML タグが利用可能になります。

TypeScript の型定義がグローバルにインストールされるので、JSX で <pixiv-icon> を書く際にも型チェッ クが効きます。

属性

<pixiv-icon name="16/Add" scale="1"></pixiv-icon>
属性名説明
nameStringアイコンの名前です。${size}/${filename} という形式をしています。利用できる名前の一覧はリポジトリの packages/icons/svg 以下を見てください。
scaleNumber 1 or 2 or 3アイコンの拡大率を倍率で指定します。拡大は 24/〇〇 系のアイコンでのみサポートされます。
unsafe-non-guideline-scaleNumberガイドラインに従わない倍率を無理やり指定する場合に使います。

独自のアイコンを登録する

pixiv-icon の name に存在しない SVG をアイコンとして登録することができます。

その場合も名前の形式は ${size}/${name} である必要があります。

TypeScript 環境下では、KnownIconType という型を拡張することで、カスタムアイコンに対しても補完が効 くようになります。

import PixivIcon from '@charcoal-ui/icons'
import NewFeature from './NewFeature.svg'

PixivIcon.extend({
  '16/NewFeature': require('./icons/16/NewFeature.svg'),
  '24/NewFeature': 'https://example.com/hoge.svg',
  '32/NewFeature': NewFeature,
})

declare module '@charcoal-ui/icons' {
  export interface KnownIconType {
    '16/NewFeature': unknown
    '24/NewFeature': unknown
    '32/NewFeature': unknown
  }
}

React と組み合わせて使う

Custom Element は className という props を受け取ることが通常できません

https://ja.reactjs.org/docs/web-components.html#using-web-components-in-react

もし styled-components などを使っていて className を渡せないと困るケースでは、ラッパーコンポーネントを作ってください。

import { Props as IconProps } from '@charcoal-ui/icons'

interface Props extends Omit<IconProps, 'class'> {
  className?: string
}

export const Icon: React.FC<Props> = ({ className, ...props }) => (
  <pixiv-icon class={className} {...props} />
)
4.0.0-beta.4

7 days ago

3.11.0

7 days ago

3.10.1

2 months ago

4.0.0-beta.3

2 months ago

4.0.0-beta.2

2 months ago

3.10.1-beta.0

2 months ago

3.10.1-beta.1

2 months ago

3.10.0

2 months ago

4.0.0-beta.1

2 months ago

4.0.0-beta.0

2 months ago

3.9.1

2 months ago

3.9.0

2 months ago

3.8.0

3 months ago

3.7.0

4 months ago

3.6.0

4 months ago

3.3.0-beta.0

8 months ago

3.4.0

6 months ago

3.2.0

9 months ago

3.0.0

10 months ago

3.1.2-beta.0

10 months ago

3.1.2-beta.2

10 months ago

3.1.2-beta.1

10 months ago

3.1.2-beta.4

10 months ago

3.1.2-beta.3

10 months ago

3.1.2-beta.6

10 months ago

3.1.2-beta.5

10 months ago

3.3.0

7 months ago

3.1.1

10 months ago

3.1.0

10 months ago

3.5.0

6 months ago

3.0.0-beta.3

11 months ago

3.0.0-beta.5

11 months ago

3.0.0-beta.4

11 months ago

3.0.0-beta.6

11 months ago

2.10.0

11 months ago

3.0.0-beta.2

11 months ago

2.9.0

11 months ago

2.8.0

12 months ago

3.0.0-beta.1

1 year ago

3.0.0-beta.0

1 year ago

2.7.0

1 year ago

2.5.0

1 year ago

2.6.0

1 year ago

2.4.0

1 year ago

2.3.0

1 year ago

2.2.1

1 year ago

2.2.0

1 year ago

2.1.0

1 year ago

2.0.1

1 year ago

2.0.0-rc.2

1 year ago

2.0.0-rc.0

1 year ago

2.0.0-rc.1

1 year ago

2.0.0

1 year ago

1.1.0-alpha.7

2 years ago

1.1.0-alpha.6

2 years ago

1.1.0-alpha.1

2 years ago

1.1.0-alpha.2

2 years ago

1.1.0-alpha.0

2 years ago

1.1.0-alpha.5

2 years ago

1.1.0-alpha.3

2 years ago

1.1.0-alpha.4

2 years ago

1.0.1-alpha.3

2 years ago

1.0.1-alpha.2

2 years ago

1.0.1-alpha.1

2 years ago

1.0.1-alpha.0

2 years ago

1.0.0

2 years ago

1.0.0-alpha.1

2 years ago