Skip to content

Commit

Permalink
Merge pull request #29 from pixiv/pnly/fix-docs
Browse files Browse the repository at this point in the history
一部のドキュメント修正 & ドキュメント追加
  • Loading branch information
pnlybubbles authored Mar 31, 2022
2 parents c147d34 + 172f199 commit d2e8ec9
Show file tree
Hide file tree
Showing 5 changed files with 237 additions and 6 deletions.
19 changes: 19 additions & 0 deletions docs/pages/components/react-sandbox.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,22 @@ yarn add @charcoal-ui/react-sandbox
## コンポーネント

[Storybook](https://pixiv.github.io/charcoal) をご覧ください

## 使い方

React コンポーネントは`CharcoalTheme`が提供されている前提で動作します

```tsx
import { DefaultTheme, ThemeProvider } from 'styled-components'
import { light, dark, CharcoalTheme } from '@charcoal-ui/theme'

declare module 'styled-components' {
export interface DefaultTheme extends CharcoalTheme {}
}

export default () => (
<ThemeProvider theme={light}>
<MyApp />
</ThemeProvider>
)
```
19 changes: 19 additions & 0 deletions docs/pages/components/react.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,22 @@ yarn add @charcoal-ui/react
## コンポーネント

[Storybook](https://pixiv.github.io/charcoal) をご覧ください

## 使い方

React コンポーネントは`CharcoalTheme`が提供されている前提で動作します

```tsx
import { DefaultTheme, ThemeProvider } from 'styled-components'
import { light, dark, CharcoalTheme } from '@charcoal-ui/theme'

declare module 'styled-components' {
export interface DefaultTheme extends CharcoalTheme {}
}

export default () => (
<ThemeProvider theme={light}>
<MyApp />
</ThemeProvider>
)
```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
205 changes: 199 additions & 6 deletions docs/pages/utilities/styled.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,13 @@ yarn add @charcoal-ui/styled
まず `styled-components` を import して ThemeProvider を入れます。

```tsx
import styled, { DefaultTheme, ThemeProvider } from 'styled-components'
import createTheme, { light, Theme } from '@charcoal-ui/styled'
import { DefaultTheme, ThemeProvider } from 'styled-components'
import { light, dark, CharcoalTheme } from '@charcoal-ui/theme'

declare module 'styled-components' {
export interface DefaultTheme extends Theme {}
export interface DefaultTheme extends CharcoalTheme {}
}

const theme = createTheme(styled)

export default () => (
<ThemeProvider theme={light}>
<MyApp />
Expand All @@ -40,6 +38,10 @@ export default () => (
こんな感じでコンポーネントを定義します。

```tsx
import styled from 'styled-components'
import createTheme from '@charcoal-ui/styled'
const theme = createTheme(styled)

const MyComponent = styled.div`
display: flex;
justify-content: center;
Expand Down Expand Up @@ -74,8 +76,199 @@ const MyComponent = styled.div<{ big?: boolean }>`
// 条件でユーティリティを分岐する
props.big ? o.typography(20).bold : o.typography(14).bold,
])(props)}
])}
`

export default () => <MyComponent big={false}>I am not big</MyComponent>
```

## テーマのカスタマイズ

styled-components の`DefaultTheme`を拡張することでテーマのカスタマイズを行うことができます。

```tsx
import { DefaultTheme, ThemeProvider } from 'styled-components'
import { light, dark, CharcoalTheme } from '@charcoal-ui/theme'
import { Material } from '@charcoal-ui/foundation'

type MyTheme = CharcoalTheme & {
color: {
mycolor: Material
}
}

declare module 'styled-components' {
export interface DefaultTheme extends MyTheme {}
}

const myTheme = (theme: CharcoalTheme): MyTheme => ({
...theme,
color: {
...theme.color,
mycolor: '#ff9e8c',
},
})

export default () => (
<ThemeProvider theme={myTheme(light)}>
<StyledText>I am text with mycolor</StyledText>
</ThemeProvider>
)

const StyledText = styled.h1`
${theme((o) => [o.font.mycolor])}
`
```

## API

- `bg`

- `bg.[色名]`

背景色をつける

- `bg.[色名].[...エフェクト]`

背景色をつけて、+ホバーなどのエフェクトをつける。エフェクトは複数指定可能

例:背景色 surface3 + ホバー時&押下時エフェクト

```jsx
o.bg.surface3.hover.press
```

- `bg.[グラデーション色名](方向)`

グラデーション背景色をつける

- `bg.[グラデーション色名](方向).[...エフェクト]`

グラデーション背景色をつけて、+ホバーなどのエフェクトをつける。

**⚠ 以下の条件のときのみ適用されます**

- typography を指定しない
- typography を指定する & preserveHalfLading を指定する
- typography を指定する & padding を指定する

- `font`

- `font.[色名]`

テキスト色をつける

- `font.[色名].[...エフェクト]`

テキスト色をつけて、+ホバーなどのエフェクトをつける

- `typography(number)`

フォントサイズを設定

ガイドラインよりフォントサイズを指定すると自動的に行の高さも設定される

**注意: デフォルトでハーフリーディングを削る処理が入っている**

ハーフリーディングを削る処理
![ハーフリーディングを削る処理](images/styled-with-halfleading.png)

本来の処理 (preserveHalfLeading 指定時)
![本来の処理 (preserveHalfLeading 指定時)](images/styled-with-halfleading.png)

- `typography(number).[...(bold|monospace|preserveHalfLeading)]`

太字・等幅など(複数指定可能)

- `typography(number).preserveHalfLeading`

デフォルトのハーフリーディングを削る処理を無効化する

- `margin(number)`

マージンを設定(デフォルトで全方向)

- `margin(number).[...(top|right|bottom|left|vertical|horizontal|)]`

マージンを特定の方向のみに設定する(複数指定可能)

📌 **引数に指定したい数値が入らない!**

ガイドラインで定められている数値以外は型で弾くようにしています。
文字の上下にある要素は half-leading が関わってくるので注意が必要です。figma では half-leading を考慮した値が表示されますが、ガイドラインでは **実際の余白(actual-spacing)** について定義されているという点を意識する必要があります。

- `padding(number)`

パディングを設定(デフォルトで全方向)

- `padding(number).[...(top|right|bottom|left|vertical|horizontal|)]`

パディングを特定の方向のみに設定する(複数指定可能)

- `width`

- `width.px(number|auto|full)`

固定幅を設定

ガイドラインに定数のみ設定可能

- auto: `auto`が付与

- full: `100%`が付与

- `width.column(number)`

グリッドシステムを利用した固定幅を設定

デフォルトの場合はカラムサイズ 80px、ガーターサイズ 24px に設定されているため以下の計算式になる

`px = column * 80 + (column - 1) * 24`

- `height`

- `height.px(number)`

- `height.column(number)`

- `border`

ボーダーをつける

デフォルトで全方向につく

- `border.[名前].[...(top|right|bottom|left)]`

ボーダーをつける方向を指定(複数指定可能)

- 名前: いまは`default`しかない

- `borderRadius(number|'oval')`

角丸をつける

全方向につく(他は選べない)

-`oval`とは

トラック状を作る場合に使う。角丸半径が短辺の 1/2 になる。

- `outline.[名前].[...(focus)]`

- 名前:

- `default`

- フォーカス時などで使われる青色のアウトライン

- `assertive`

- エラー用の赤色のアウトライン

- `focus`

- **フォーカスした時だけ**、当該のフォーカスリングが出るようにする

- `disabled`

- :disabled, [aria-disabled] のときに利用不可能な状態を表すスタイルを適用する

1 comment on commit d2e8ec9

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This commit will bump these packages as follows
(Created by https://github.com/peter-evans/commit-comment )

yarn lerna version --conventional-commits --no-changelog --no-git-tag-version --no-push --yes


Changes:
 - @charcoal-ui/foundation: 1.0.0 => 1.0.1
 - @charcoal-ui/icons-cli: 1.0.0 => 1.0.1
 - @charcoal-ui/icons: 1.0.0 => 1.0.1
 - @charcoal-ui/react-sandbox: 1.0.0 => 1.0.1
 - @charcoal-ui/react: 1.0.0 => 1.0.1
 - @charcoal-ui/styled: 1.0.0 => 1.0.1
 - @charcoal-ui/tailwind-config: 1.0.0 => 1.0.1
 - @charcoal-ui/tailwind-diff: 1.0.0 => 1.0.1
 - @charcoal-ui/theme: 1.0.0 => 1.0.1
 - @charcoal-ui/utils: 1.0.0 => 1.0.1

Please sign in to comment.