@nurihaus/web-design-system 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/components.md +166 -2
- package/dist/ai/tokens.md +64 -15
- package/dist/avatar.js +2 -1
- package/dist/bottom-nav.js +407 -0
- package/dist/chip-group.js +317 -0
- package/dist/chunk-436.js +2 -1
- package/dist/chunk-653.js +296 -0
- package/dist/chunk-713.js +2 -1
- package/dist/chunk-77.js +2 -1
- package/dist/components/bottom-nav/base-bottom-nav.d.ts +10 -0
- package/dist/components/bottom-nav/bottom-nav-props.d.ts +1 -0
- package/dist/components/bottom-nav/bottom-nav-type.d.ts +36 -0
- package/dist/components/bottom-nav/bottom-nav.d.ts +4 -0
- package/dist/components/bottom-nav/bottom-nav.stories.d.ts +55 -0
- package/dist/components/chip-group/base-chip-group.d.ts +5 -0
- package/dist/components/chip-group/chip-group-props.d.ts +1 -0
- package/dist/components/chip-group/chip-group-type.d.ts +25 -0
- package/dist/components/chip-group/chip-group.d.ts +4 -0
- package/dist/components/chip-group/chip-group.stories.d.ts +27 -0
- package/dist/components/elements/text/text-props.d.ts +1 -1
- package/dist/components/elements/text/text.stories.d.ts +1 -1
- package/dist/components/icon/base-icon.d.ts +3 -0
- package/dist/components/icon/icon-paths.d.ts +202 -0
- package/dist/components/icon/icon-props.d.ts +6 -0
- package/dist/components/icon/icon-type.d.ts +14 -0
- package/dist/components/icon/icon.d.ts +4 -0
- package/dist/components/icon/icon.stories.d.ts +33 -0
- package/dist/components/skeleton/skeleton.stories.d.ts +5 -5
- package/dist/components/step-progress/base-step-progress.d.ts +7 -0
- package/dist/components/step-progress/step-progress-props.d.ts +10 -0
- package/dist/components/step-progress/step-progress-type.d.ts +17 -0
- package/dist/components/step-progress/step-progress.d.ts +4 -0
- package/dist/components/step-progress/step-progress.stories.d.ts +29 -0
- package/dist/components/toast/toast.stories.d.ts +5 -5
- package/dist/components.css +314 -0
- package/dist/icon.js +222 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +864 -54
- package/dist/step-progress.js +310 -0
- package/dist/styles.css +332 -12
- package/dist/toast.js +2 -1
- package/dist/tokens/generated/semantic-admin.d.ts +24 -24
- package/dist/tokens/generated/semantic-app.d.ts +24 -24
- package/dist/tokens.css +64 -12
- package/dist/tokens.js +48 -48
- package/package.json +21 -3
package/dist/ai/components.md
CHANGED
|
@@ -62,6 +62,10 @@ import '@nurihaus/web-design-system/components.css';
|
|
|
62
62
|
- [Spinner](#spinner)
|
|
63
63
|
- [InlineLoading](#inlineloading)
|
|
64
64
|
- [OverlayLoading](#overlayloading)
|
|
65
|
+
- [Icon](#icon)
|
|
66
|
+
- [BottomNav](#bottomnav)
|
|
67
|
+
- [StepProgress](#stepprogress)
|
|
68
|
+
- [ChipGroup](#chipgroup)
|
|
65
69
|
|
|
66
70
|
## Avatar
|
|
67
71
|
|
|
@@ -706,7 +710,7 @@ import { DropDown } from '@nurihaus/web-design-system'; // 루트.
|
|
|
706
710
|
| `rightIcon` | `ReactNode` | | |
|
|
707
711
|
| `width` | `string \| number` | | `'fit-content'` |
|
|
708
712
|
| `side` | `'bottom' \| 'left' \| 'right' \| 'top'` | | |
|
|
709
|
-
| `align` | `'center' \| '
|
|
713
|
+
| `align` | `'center' \| 'end' \| 'start'` | | |
|
|
710
714
|
| `position` | `'popper' \| 'item-aligned'` | | |
|
|
711
715
|
| `className` | `string` | | |
|
|
712
716
|
| `style` | `CSSProperties` | | |
|
|
@@ -1024,6 +1028,167 @@ import { OverlayLoading } from '@nurihaus/web-design-system'; // 루
|
|
|
1024
1028
|
|
|
1025
1029
|
이 밖에 React·HTML 기본 속성 2개를 받는다.
|
|
1026
1030
|
|
|
1031
|
+
## Icon
|
|
1032
|
+
|
|
1033
|
+
```ts
|
|
1034
|
+
import { Icon } from '@nurihaus/web-design-system/icon'; // 이 컴포넌트만 싣는다 (권장)
|
|
1035
|
+
import { Icon } from '@nurihaus/web-design-system'; // 루트. 첫 로드 JS 가 커진다
|
|
1036
|
+
```
|
|
1037
|
+
|
|
1038
|
+
**언제 쓴다.** 화면에 아이콘을 그릴 때 쓴다. 모양은 Phosphor(MIT) 에서 고른 것만 있고, `name` 으로 고른다. 색은 글자색(`currentColor`)을 따르므로 감싼 요소의 `color` 로 바꾼다. 꺼진 상태는 선(`weight="regular"`, 기본), 켜진 상태나 강조는 채움(`weight="fill"`)을 쓴다. 크기는 `s`(18) · `m`(20) · `l`(24, 기본). `className`·`style` 은 `<svg>` 에 붙는다.
|
|
1039
|
+
|
|
1040
|
+
글자 없이 아이콘만으로 뜻을 전하면(닫기 버튼 등) `label` 을 준다. 없으면 화면 낭독기가 건너뛴다.
|
|
1041
|
+
|
|
1042
|
+
**쓰지 않는다.** 없는 모양을 다른 라이브러리나 손으로 그린 SVG 로 채우지 않는다. 이 저장소의 `scripts/build-icons.mjs` 에 이름을 더하고 `yarn icons` 를 돌린다. 브랜드 로고(SNS 제외)·일러스트는 아이콘이 아니다.
|
|
1043
|
+
|
|
1044
|
+
```tsx
|
|
1045
|
+
<button type="button" aria-label="알림">
|
|
1046
|
+
<Icon name="bell" />
|
|
1047
|
+
</button>
|
|
1048
|
+
```
|
|
1049
|
+
|
|
1050
|
+
```tsx
|
|
1051
|
+
<Icon name="house" weight="fill" size="l" />
|
|
1052
|
+
```
|
|
1053
|
+
|
|
1054
|
+
```tsx
|
|
1055
|
+
<Icon name="x" size="m" label="닫기" />
|
|
1056
|
+
```
|
|
1057
|
+
|
|
1058
|
+
### props
|
|
1059
|
+
|
|
1060
|
+
| prop | 타입 | 필수 | 기본값 |
|
|
1061
|
+
| --- | --- | --- | --- |
|
|
1062
|
+
| `size` | `'s' \| 'm' \| 'l'` | | `'l'` |
|
|
1063
|
+
| `label` | `string` | | |
|
|
1064
|
+
| `name` | `'link' \| 'image' \| 'x' \| 'warning' \| 'house' \| 'megaphone-simple' \| 'chats-circle' \| 'user-circle' \| 'bell' \| 'caret-left' \| 'magnifying-glass' \| 'dots-three' \| 'gear-six' \| 'chat-circle' \| 'paper-plane-tilt' \| 'plus' \| 'camera' \| 'video-camera' \| 'upload-simple' \| 'calendar-blank' \| 'clock' \| 'map-pin' \| 'truck' \| 'ticket' \| 'qr-code' \| 'sparkle' \| 'gift' \| 'wallet' \| 'bank' \| 'credit-card' \| 'check-circle' \| 'check' \| 'info' \| 'question' \| 'lock' \| 'pencil-simple' \| 'trash' \| 'copy' \| 'share-network' \| 'eye' \| 'sliders-horizontal' \| 'heart' \| 'star' \| 'globe' \| 'sign-out' \| 'caret-right' \| 'arrow-right' \| 'instagram-logo' \| 'tiktok-logo' \| 'youtube-logo'` | 예 | |
|
|
1065
|
+
| `weight` | `'fill' \| 'regular'` | | |
|
|
1066
|
+
|
|
1067
|
+
이 밖에 React·HTML 기본 속성 474개를 받는다.
|
|
1068
|
+
|
|
1069
|
+
## BottomNav
|
|
1070
|
+
|
|
1071
|
+
```ts
|
|
1072
|
+
import { BottomNav } from '@nurihaus/web-design-system/bottom-nav'; // 이 컴포넌트만 싣는다 (권장)
|
|
1073
|
+
import { BottomNav } from '@nurihaus/web-design-system'; // 루트. 첫 로드 JS 가 커진다
|
|
1074
|
+
```
|
|
1075
|
+
|
|
1076
|
+
**언제 쓴다.** 휴대폰 화면 아래에 떠 있는 주 메뉴(탭 바)다. 탭은 3~5개, 탭마다 `href` 로 화면을 바꾼다. 지금 화면의 탭 id 를 `value` 로 넘기면 그 탭에 캡슐이 깔리고 아이콘이 채움으로 바뀐다(`aria-current="page"`). 탭 바가 스스로 `value` 를 바꾸지 않는다 — 주소가 바뀌면 쓰는 쪽이 새 `value` 를 넘긴다. `label` 은 `<nav>` 의 이름이다.
|
|
1077
|
+
|
|
1078
|
+
화면 아래에 고정(`position: fixed`)되고 내용 위에 떠 있다. 화면 본문은 아래를 `calc(var(--bottom-nav-space) + env(safe-area-inset-bottom))` 만큼 비워 마지막 내용이 가려지지 않게 한다. `className`·`style` 은 `<nav>` 에 붙는다.
|
|
1079
|
+
|
|
1080
|
+
링크는 기본으로 `<a>` 다. 라우터의 링크로 바꾸려면 `linkComponent` 에 넘긴다. 받는 props 는 `href`·`className`·`children`·`aria-current` 이고, 그대로 링크에 전달하면 된다.
|
|
1081
|
+
|
|
1082
|
+
배지는 `badge` 로 단다. `count` 가 없으면 점, 있으면 숫자(99 넘으면 99+)다. `label` 은 화면 낭독기가 읽는 말이다.
|
|
1083
|
+
|
|
1084
|
+
**쓰지 않는다.** 같은 화면 안에서 패널을 바꾸는 것은 Tabs, 목록을 거르는 것은 ChipGroup 을 쓴다. 앱 웹뷰처럼 앱이 탭 바를 직접 그리는 곳에서는 그리지 않는다. 데스크톱 사이드바는 CollapsibleMenu 를 쓴다.
|
|
1085
|
+
|
|
1086
|
+
Next.js 에서는 `next/link` 의 `Link` 를 그대로 넘긴다.
|
|
1087
|
+
|
|
1088
|
+
```ts
|
|
1089
|
+
import Link from 'next/link';
|
|
1090
|
+
|
|
1091
|
+
// <BottomNav linkComponent={Link} … />
|
|
1092
|
+
```
|
|
1093
|
+
|
|
1094
|
+
```tsx
|
|
1095
|
+
<BottomNav
|
|
1096
|
+
label="주 메뉴"
|
|
1097
|
+
value="home"
|
|
1098
|
+
items={[
|
|
1099
|
+
{ id: 'home', label: '홈', icon: 'house', href: '/', badge: { label: '새 소식' } },
|
|
1100
|
+
{ id: 'campaigns', label: '캠페인', icon: 'megaphone-simple', href: '/campaigns' },
|
|
1101
|
+
{ id: 'community', label: '커뮤니티', icon: 'chats-circle', href: '/community' },
|
|
1102
|
+
{ id: 'me', label: '내 정보', icon: 'user-circle', href: '/me', badge: { count: 3, label: '알림 3개' } },
|
|
1103
|
+
]}
|
|
1104
|
+
/>
|
|
1105
|
+
```
|
|
1106
|
+
|
|
1107
|
+
### props
|
|
1108
|
+
|
|
1109
|
+
| prop | 타입 | 필수 | 기본값 |
|
|
1110
|
+
| --- | --- | --- | --- |
|
|
1111
|
+
| `items` | `BottomNavItem[]` | 예 | |
|
|
1112
|
+
| `value` | `string` | | |
|
|
1113
|
+
| `label` | `string` | 예 | |
|
|
1114
|
+
| `linkComponent` | `ComponentType<BottomNavLinkProps>` | | |
|
|
1115
|
+
| `className` | `string` | | |
|
|
1116
|
+
| `style` | `CSSProperties` | | |
|
|
1117
|
+
|
|
1118
|
+
이 밖에 React·HTML 기본 속성 2개를 받는다.
|
|
1119
|
+
|
|
1120
|
+
## StepProgress
|
|
1121
|
+
|
|
1122
|
+
```ts
|
|
1123
|
+
import { StepProgress } from '@nurihaus/web-design-system/step-progress'; // 이 컴포넌트만 싣는다 (권장)
|
|
1124
|
+
import { StepProgress } from '@nurihaus/web-design-system'; // 루트. 첫 로드 JS 가 커진다
|
|
1125
|
+
```
|
|
1126
|
+
|
|
1127
|
+
**언제 쓴다.** 정해진 단계를 차례로 밟는 일에서 "지금 어디까지 왔나"를 막대로 보여 준다(캠페인 진행: 가이드 → 제품 → 결과 제출 → 승인 → 보상). 단계마다 막대 하나가 끝남·지금·남음으로 칠해진다. `current` 는 지금 단계 순번(0부터)이고, `steps.length` 를 넘기면 모두 끝난 것이다. `labelVisibility="current"` 면 지금 단계 이름만 보인다(카드 안처럼 좁을 때). 다른 이름은 화면 낭독기가 읽는다. `label` 은 목록의 이름이다. `className`·`style` 은 `<ol>` 에 붙는다.
|
|
1128
|
+
|
|
1129
|
+
**쓰지 않는다.** 단계를 눌러 이동하지 않는다(버튼이 없다). 다음 행동 버튼은 이 컴포넌트 밖, 카드에 둔다. 로딩 진행률(%)에는 쓰지 않는다.
|
|
1130
|
+
|
|
1131
|
+
```tsx
|
|
1132
|
+
<StepProgress
|
|
1133
|
+
label="진행 단계"
|
|
1134
|
+
steps={['가이드', '제품', '결과 제출', '승인', '보상']}
|
|
1135
|
+
current={2}
|
|
1136
|
+
labelVisibility="current"
|
|
1137
|
+
/>
|
|
1138
|
+
```
|
|
1139
|
+
|
|
1140
|
+
### props
|
|
1141
|
+
|
|
1142
|
+
| prop | 타입 | 필수 | 기본값 |
|
|
1143
|
+
| --- | --- | --- | --- |
|
|
1144
|
+
| `steps` | `ReactNode[]` | 예 | |
|
|
1145
|
+
| `current` | `number` | 예 | |
|
|
1146
|
+
| `labelVisibility` | `'all' \| 'current'` | | `'all'` |
|
|
1147
|
+
| `label` | `string` | 예 | |
|
|
1148
|
+
| `className` | `string` | | |
|
|
1149
|
+
| `style` | `CSSProperties` | | |
|
|
1150
|
+
|
|
1151
|
+
이 밖에 React·HTML 기본 속성 2개를 받는다.
|
|
1152
|
+
|
|
1153
|
+
## ChipGroup
|
|
1154
|
+
|
|
1155
|
+
```ts
|
|
1156
|
+
import { ChipGroup } from '@nurihaus/web-design-system/chip-group'; // 이 컴포넌트만 싣는다 (권장)
|
|
1157
|
+
import { ChipGroup } from '@nurihaus/web-design-system'; // 루트. 첫 로드 JS 가 커진다
|
|
1158
|
+
```
|
|
1159
|
+
|
|
1160
|
+
**언제 쓴다.** 목록 위에서 하나를 골라 목록을 거르는 필터다. 고르면 바로 `onValueChange` 가 불리고 적용 버튼은 없다. 늘 하나가 골라져 있고 고른 칩을 다시 눌러도 풀리지 않는다. `value`·`defaultValue` 가 없으면 첫 칩을 고른다. 넘치면 가로로 밀어서 본다. `count` 를 주면 라벨 옆에 개수가 붙는다. 0 인 칩은 `disabled` 로 막을 수 있다. 좌우 화살표 키로 칩 사이를 옮긴다. `label` 은 그룹의 이름이다. `className`·`style` 은 그룹(`role="group"`)에 붙는다.
|
|
1161
|
+
|
|
1162
|
+
**쓰지 않는다.** 같은 화면 안에서 패널 내용을 바꾸는 것은 Tabs, 폼에서 값 하나를 고르는 입력은 Radio, 화면을 옮기는 메뉴는 BottomNav 를 쓴다. 여러 개를 함께 고르는 필터는 아직 없다.
|
|
1163
|
+
|
|
1164
|
+
```tsx
|
|
1165
|
+
<ChipGroup
|
|
1166
|
+
label="캠페인 종류"
|
|
1167
|
+
defaultValue="all"
|
|
1168
|
+
onValueChange={(id) => console.log(id)}
|
|
1169
|
+
items={[
|
|
1170
|
+
{ id: 'all', label: '전체' },
|
|
1171
|
+
{ id: 'product', label: '제품 리뷰', count: 12 },
|
|
1172
|
+
{ id: 'visit', label: '방문', count: 3 },
|
|
1173
|
+
{ id: 'event', label: '이벤트', count: 0, disabled: true },
|
|
1174
|
+
]}
|
|
1175
|
+
/>
|
|
1176
|
+
```
|
|
1177
|
+
|
|
1178
|
+
### props
|
|
1179
|
+
|
|
1180
|
+
| prop | 타입 | 필수 | 기본값 |
|
|
1181
|
+
| --- | --- | --- | --- |
|
|
1182
|
+
| `items` | `ChipGroupItem[]` | 예 | |
|
|
1183
|
+
| `value` | `string` | | |
|
|
1184
|
+
| `defaultValue` | `string` | | |
|
|
1185
|
+
| `onValueChange` | `((id: string) => void)` | | |
|
|
1186
|
+
| `label` | `string` | 예 | |
|
|
1187
|
+
| `className` | `string` | | |
|
|
1188
|
+
| `style` | `CSSProperties` | | |
|
|
1189
|
+
|
|
1190
|
+
이 밖에 React·HTML 기본 속성 2개를 받는다.
|
|
1191
|
+
|
|
1027
1192
|
## 아직 없는 것
|
|
1028
1193
|
|
|
1029
1194
|
아래는 디자인 시스템에 없다. 비슷한 이름의 컴포넌트를 지어내 import 하지 않는다.
|
|
@@ -1031,6 +1196,5 @@ import { OverlayLoading } from '@nurihaus/web-design-system'; // 루
|
|
|
1031
1196
|
| 필요한 것 | 지금 있는 것 |
|
|
1032
1197
|
| --- | --- |
|
|
1033
1198
|
| 날짜 선택 | 없음 |
|
|
1034
|
-
| 아이콘 세트 | 없음. 패키지 안 아이콘은 컴포넌트 내부용이라 내보내지 않는다 |
|
|
1035
1199
|
|
|
1036
1200
|
없는 것이 필요하면 쓰는 쪽 저장소에서 `tokens.md` 의 변수로 만든다. 그리고 디자인 시스템에 추가할 후보라고 알린다.
|
package/dist/ai/tokens.md
CHANGED
|
@@ -40,12 +40,30 @@
|
|
|
40
40
|
| `--button-variant-outlined-background` | `var(--color-white)` | `var(--color-white)` |
|
|
41
41
|
| `--button-variant-outlined-border` | `var(--color-accent-red-700)` | `var(--color-accent-red-700)` |
|
|
42
42
|
| `--button-variant-outlined-text` | `var(--color-accent-red-700)` | `var(--color-accent-red-700)` |
|
|
43
|
-
| `--button-size-xl` | `
|
|
44
|
-
| `--button-size-
|
|
45
|
-
| `--button-size-
|
|
46
|
-
| `--button-size-
|
|
47
|
-
| `--button-size-
|
|
48
|
-
| `--button-size-
|
|
43
|
+
| `--button-size-xl-font-family` | `var(--font-family-primary)` | — |
|
|
44
|
+
| `--button-size-xl-font-weight` | `var(--font-weight-bold)` | — |
|
|
45
|
+
| `--button-size-xl-font-size` | `var(--font-size-lg)` | — |
|
|
46
|
+
| `--button-size-xl-line-height` | `var(--line-height-lg)` | — |
|
|
47
|
+
| `--button-size-lg-font-family` | `var(--font-family-primary)` | — |
|
|
48
|
+
| `--button-size-lg-font-weight` | `var(--font-weight-bold)` | — |
|
|
49
|
+
| `--button-size-lg-font-size` | `var(--font-size-base)` | — |
|
|
50
|
+
| `--button-size-lg-line-height` | `var(--line-height-base)` | — |
|
|
51
|
+
| `--button-size-md-font-family` | `var(--font-family-primary)` | — |
|
|
52
|
+
| `--button-size-md-font-weight` | `var(--font-weight-semibold)` | — |
|
|
53
|
+
| `--button-size-md-font-size` | `var(--font-size-sm)` | — |
|
|
54
|
+
| `--button-size-md-line-height` | `var(--line-height-sm)` | — |
|
|
55
|
+
| `--button-size-rg-font-family` | `var(--font-family-primary)` | — |
|
|
56
|
+
| `--button-size-rg-font-weight` | `var(--font-weight-semibold)` | — |
|
|
57
|
+
| `--button-size-rg-font-size` | `var(--font-size-sm)` | — |
|
|
58
|
+
| `--button-size-rg-line-height` | `var(--line-height-sm)` | — |
|
|
59
|
+
| `--button-size-sm-font-family` | `var(--font-family-primary)` | — |
|
|
60
|
+
| `--button-size-sm-font-weight` | `var(--font-weight-semibold)` | — |
|
|
61
|
+
| `--button-size-sm-font-size` | `var(--font-size-xsm)` | — |
|
|
62
|
+
| `--button-size-sm-line-height` | `var(--line-height-sm)` | — |
|
|
63
|
+
| `--button-size-xs-font-family` | `var(--font-family-primary)` | — |
|
|
64
|
+
| `--button-size-xs-font-weight` | `var(--font-weight-semibold)` | — |
|
|
65
|
+
| `--button-size-xs-font-size` | `var(--font-size-xsm)` | — |
|
|
66
|
+
| `--button-size-xs-line-height` | `var(--line-height-sm)` | — |
|
|
49
67
|
| `--button-variant-primary-hover-background` | — | `var(--color-purple-900)` |
|
|
50
68
|
| `--button-variant-primary-hover-border` | — | `var(--color-purple-900)` |
|
|
51
69
|
| `--button-variant-primary-hover-text` | — | `var(--color-white)` |
|
|
@@ -64,16 +82,36 @@
|
|
|
64
82
|
| `--button-variant-confirm-hover-background` | — | `var(--color-accent-red-700)` |
|
|
65
83
|
| `--button-variant-confirm-hover-border` | — | `var(--color-accent-red-700)` |
|
|
66
84
|
| `--button-variant-confirm-hover-text` | — | `var(--color-white)` |
|
|
67
|
-
| `--button-xl` | — | `
|
|
68
|
-
| `--button-
|
|
69
|
-
| `--button-
|
|
70
|
-
| `--button-
|
|
71
|
-
| `--button-
|
|
72
|
-
| `--button-
|
|
85
|
+
| `--button-xl-font-family` | — | `var(--font-family-primary)` |
|
|
86
|
+
| `--button-xl-font-weight` | — | `var(--font-weight-bold)` |
|
|
87
|
+
| `--button-xl-font-size` | — | `var(--font-size-lg)` |
|
|
88
|
+
| `--button-xl-line-height` | — | `var(--line-height-lg)` |
|
|
89
|
+
| `--button-l-font-family` | — | `var(--font-family-primary)` |
|
|
90
|
+
| `--button-l-font-weight` | — | `var(--font-weight-bold)` |
|
|
91
|
+
| `--button-l-font-size` | — | `var(--font-size-base)` |
|
|
92
|
+
| `--button-l-line-height` | — | `var(--line-height-base)` |
|
|
93
|
+
| `--button-sb-font-family` | — | `var(--font-family-primary)` |
|
|
94
|
+
| `--button-sb-font-weight` | — | `var(--font-weight-semibold)` |
|
|
95
|
+
| `--button-sb-font-size` | — | `var(--font-size-sm)` |
|
|
96
|
+
| `--button-sb-line-height` | — | `var(--line-height-sm)` |
|
|
97
|
+
| `--button-r-font-family` | — | `var(--font-family-primary)` |
|
|
98
|
+
| `--button-r-font-weight` | — | `var(--font-weight-semibold)` |
|
|
99
|
+
| `--button-r-font-size` | — | `var(--font-size-sm)` |
|
|
100
|
+
| `--button-r-line-height` | — | `var(--line-height-sm)` |
|
|
101
|
+
| `--button-s-font-family` | — | `var(--font-family-primary)` |
|
|
102
|
+
| `--button-s-font-weight` | — | `var(--font-weight-semibold)` |
|
|
103
|
+
| `--button-s-font-size` | — | `var(--font-size-xsm)` |
|
|
104
|
+
| `--button-s-line-height` | — | `var(--line-height-sm)` |
|
|
105
|
+
| `--button-xs-font-family` | — | `var(--font-family-primary)` |
|
|
106
|
+
| `--button-xs-font-weight` | — | `var(--font-weight-semibold)` |
|
|
107
|
+
| `--button-xs-font-size` | — | `var(--font-size-xsm)` |
|
|
108
|
+
| `--button-xs-line-height` | — | `var(--line-height-sm)` |
|
|
109
|
+
| `--button-size-xs` | — | `30` |
|
|
73
110
|
| `--button-size-s` | — | `40` |
|
|
74
111
|
| `--button-size-r` | — | `48` |
|
|
75
112
|
| `--button-size-m` | — | `50` |
|
|
76
113
|
| `--button-size-l` | — | `54` |
|
|
114
|
+
| `--button-size-xl` | — | `60` |
|
|
77
115
|
|
|
78
116
|
`—` 는 그 테마에 값이 없다는 뜻이다. 그 테마에서는 `app` 값이 쓰인다.
|
|
79
117
|
|
|
@@ -309,6 +347,14 @@
|
|
|
309
347
|
| `--modal-width-s` | `400px` | 폭 |
|
|
310
348
|
| `--modal-width-m` | `450px` | 폭 |
|
|
311
349
|
| `--modal-width-l` | `500px` | 폭 |
|
|
350
|
+
| `--bottom-nav-height` | `62px` | 폭 |
|
|
351
|
+
| `--bottom-nav-padding` | `5px` | 폭 |
|
|
352
|
+
| `--bottom-nav-offset` | `14px` | 폭 |
|
|
353
|
+
| `--bottom-nav-space` | `calc(var(--bottom-nav-height) + var(--bottom-nav-offset) + 16px)` | 폭 |
|
|
354
|
+
| `--bottom-nav-badge-dot` | `8px` | 폭 |
|
|
355
|
+
| `--bottom-nav-badge-count` | `18px` | 폭 |
|
|
356
|
+
| `--glass-blur` | `18px` | 폭 |
|
|
357
|
+
| `--step-bar-height` | `4px` | 진행 단계 바 |
|
|
312
358
|
| `--icon-size-s` | `18px` | 그 밖의 치수 |
|
|
313
359
|
| `--icon-size-m` | `20px` | 그 밖의 치수 |
|
|
314
360
|
| `--icon-size-l` | `24px` | 그 밖의 치수 |
|
|
@@ -327,6 +373,7 @@
|
|
|
327
373
|
| `--skeleton-last-line-width` | `60%` | 그 밖의 치수 |
|
|
328
374
|
| `--hairline` | `1px` | 그 밖의 치수 |
|
|
329
375
|
| `--shadow-popover` | `0px 4px 6px -2px rgba(0, 0, 0, 0.06), 0px 10px 15px -3px rgba(0, 0, 0, 0.1)` | 그림자 |
|
|
376
|
+
| `--shadow-floating` | `0px 10px 30px rgba(24, 24, 27, 0.14), 0px 1px 3px rgba(24, 24, 27, 0.08)` | 그림자 |
|
|
330
377
|
| `--z-base` | `0` | 레이어. 값이 같아도 역할이 다르면 이름을 따로 둔다 |
|
|
331
378
|
| `--z-raised` | `1` | 레이어. 값이 같아도 역할이 다르면 이름을 따로 둔다 |
|
|
332
379
|
| `--z-sticky` | `2` | 레이어. 값이 같아도 역할이 다르면 이름을 따로 둔다 |
|
|
@@ -339,6 +386,8 @@
|
|
|
339
386
|
| `--motion-fast` | `160ms` | 모션 |
|
|
340
387
|
| `--motion-base` | `300ms` | 모션 |
|
|
341
388
|
| `--motion-ease` | `ease` | 모션 |
|
|
342
|
-
| `--
|
|
343
|
-
| `--
|
|
344
|
-
| `--spinner-
|
|
389
|
+
| `--motion-slow` | `420ms` | 모션 |
|
|
390
|
+
| `--motion-spring` | `cubic-bezier(0.34, 1.45, 0.5, 1)` | 끝에서 살짝 넘쳤다 돌아온다. 탭 바 선택 캡슐 |
|
|
391
|
+
| `--spinner-duration` | `1.2s` | 끝에서 살짝 넘쳤다 돌아온다. 탭 바 선택 캡슐 |
|
|
392
|
+
| `--skeleton-duration` | `1.5s` | 끝에서 살짝 넘쳤다 돌아온다. 탭 바 선택 캡슐 |
|
|
393
|
+
| `--spinner-ease` | `cubic-bezier(0.5, 0, 0.5, 1)` | 끝에서 살짝 넘쳤다 돌아온다. 탭 바 선택 캡슐 |
|
package/dist/avatar.js
CHANGED
|
@@ -42,7 +42,8 @@ var SvgDefaultAvatar = function SvgDefaultAvatar(props) {
|
|
|
42
42
|
xmlns: "http://www.w3.org/2000/svg",
|
|
43
43
|
width: 124,
|
|
44
44
|
height: 124,
|
|
45
|
-
fill: "none"
|
|
45
|
+
fill: "none",
|
|
46
|
+
viewBox: "0 0 124 124"
|
|
46
47
|
}, props), _circle || (_circle = /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_module_react_.createElement("circle", {
|
|
47
48
|
cx: 62,
|
|
48
49
|
cy: 62,
|