@hjmds/design-contracts 1.4.0 → 1.6.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/catalog.d.ts +41 -47
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +13 -13
- package/dist/catalog.js.map +1 -1
- package/dist/colors.js +1 -1
- package/dist/colors.js.map +1 -1
- package/dist/component-recipes.d.ts +2 -0
- package/dist/component-recipes.d.ts.map +1 -1
- package/dist/component-recipes.js +3 -0
- package/dist/component-recipes.js.map +1 -1
- package/dist/design-system-provider.d.ts +4 -3
- package/dist/design-system-provider.d.ts.map +1 -1
- package/dist/design-system-provider.js +4 -3
- package/dist/design-system-provider.js.map +1 -1
- package/dist/palette-contrast.d.ts +19 -0
- package/dist/palette-contrast.d.ts.map +1 -0
- package/dist/palette-contrast.js +46 -0
- package/dist/palette-contrast.js.map +1 -0
- package/dist/showcase.d.ts.map +1 -1
- package/dist/showcase.js +3 -1
- package/dist/showcase.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/docs/brand-boundary.md +89 -0
- package/docs/catalog-freeze.json +120 -0
- package/docs/consumer-policy.md +17 -13
- package/docs/design-system-provider.md +4 -4
- package/docs/generated/component-maturity.md +18 -18
- package/docs/generated/renderer-evidence.json +2275 -1342
- package/docs/generated/renderer-evidence.md +178 -178
- package/docs/generated/showcase-manifest.json +40 -50
- package/docs/stable-core.md +18 -1
- package/docs/tag.md +7 -8
- package/docs/theme-palette.md +12 -0
- package/docs/theming.md +17 -22
- package/package.json +7 -1
package/docs/consumer-policy.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# HJM 소비 앱 정책
|
|
2
2
|
|
|
3
3
|
상태: **Normative**
|
|
4
|
-
정책 버전: **1.
|
|
4
|
+
정책 버전: **1.3.0**
|
|
5
5
|
적용 대상: 신규 HJM Web·React Native 앱과 기존 앱의 새 화면
|
|
6
6
|
|
|
7
7
|
이 정책 원문은 다음 package patch release부터
|
|
@@ -39,11 +39,13 @@
|
|
|
39
39
|
|
|
40
40
|
### 2.1 Stable Core와 필수 foundation bridge
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
`Icon`, `Stack`, `Container`,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
1.5.0부터 Stable Core는 17개 surface입니다. 1.4까지의 `Surface`, `Button`, `Field`, `TextArea`에
|
|
43
|
+
더해, 첫 제품 화면에 필요한 foundation인 `Text`, `Icon`, `Stack`, `Container`,
|
|
44
|
+
`DesignSystemProvider`와 세 제품 이상이 쓰는 `IconButton`, `Badge`, `Card`, `Tag`, `Notice`,
|
|
45
|
+
`Progress`, `Spinner`, `Skeleton`이 stable로 승격됐습니다. 승격 근거는 이름뿐이던 시나리오 증거를
|
|
46
|
+
실제 계산 스타일 검사로 바꾼 뒤 두 renderer에서 요구 시나리오가 모두 통과한 것입니다
|
|
47
|
+
([Stable Core](stable-core.md)). 그 밖의 컴포넌트는 여전히 `beta`이며, beta를 `stable`로
|
|
48
|
+
간주하거나 `betaAdoptions: []`로 기록하는 것은 허용하지 않습니다(MUST NOT).
|
|
47
49
|
|
|
48
50
|
HJM-APP-STANDARD가 versioned `requiredFoundations` 목록을 선언한 경우 다음 bridge를
|
|
49
51
|
적용합니다.
|
|
@@ -58,8 +60,9 @@ HJM-APP-STANDARD가 versioned `requiredFoundations` 목록을 선언한 경우
|
|
|
58
60
|
- foundation이 catalog에서 `stable`로 승격되면 기존 표준의 의미를 조용히 바꾸지 않고
|
|
59
61
|
다음 versioned app profile에서 bridge 목록을 줄입니다(MUST).
|
|
60
62
|
|
|
61
|
-
이 bridge는 성숙도 예외가 아니라 공개된 임시 채택 계약입니다.
|
|
62
|
-
|
|
63
|
+
이 bridge는 성숙도 예외가 아니라 공개된 임시 채택 계약입니다. 1.5.0에서 bridge의 다섯
|
|
64
|
+
foundation이 모두 stable이 됐으므로, 중앙 app profile의 다음 개정에서 `requiredFoundations`
|
|
65
|
+
목록을 비웁니다. 개정 전까지 기존 profile을 쓰는 앱의 evidence 요구는 조용히 바뀌지 않습니다.
|
|
63
66
|
|
|
64
67
|
## 3. 코드 경계
|
|
65
68
|
|
|
@@ -109,7 +112,8 @@ semantic axis로 옮겼습니다. 아래는 그 축과 대체 대상입니다.
|
|
|
109
112
|
|
|
110
113
|
### Web renderer의 캐스케이드
|
|
111
114
|
|
|
112
|
-
`@hjmds/react/styles.css`는 **CSS 레이어 밖**에
|
|
115
|
+
`@hjmds/react/styles.css`는 **CSS 레이어 밖**에 있다(레이어된 opt-in 파일과 전환 조건은
|
|
116
|
+
[brand-boundary.md §3](./brand-boundary.md#3-css-재정의는-지원하는-테마-경로가-아니다)). Tailwind 4를 쓰는 소비 앱의
|
|
113
117
|
유틸리티는 `@layer utilities` 안에 들어가고, 레이어 밖 규칙은 레이어 안 규칙을
|
|
114
118
|
이긴다. 따라서 HJM 컴포넌트에 `px-0`·`rounded-none`·`justify-start` 같은
|
|
115
119
|
유틸리티를 붙여 recipe 값을 덮으려는 시도는 **조용히 아무 일도 하지 않는다.**
|
|
@@ -120,8 +124,8 @@ semantic axis로 옮겼습니다. 아래는 그 축과 대체 대상입니다.
|
|
|
120
124
|
|
|
121
125
|
- 유틸리티로 recipe 값을 덮는 코드는 리뷰에서 걸러야 한다. 필요한 값은 semantic
|
|
122
126
|
axis로 요청한다.
|
|
123
|
-
- HJM이 표현할 수 없는
|
|
124
|
-
|
|
127
|
+
- HJM이 표현할 수 없는 값은 `.hjm-*` 재정의로 우회하지 않는다. 계약 공백으로 올린다. 기존 재정의는
|
|
128
|
+
추적되는 부채이며 이관 경로(opt-in `styles.layered.css`)와 규칙은 [brand-boundary.md](./brand-boundary.md)가 정한다.
|
|
125
129
|
- 인라인 `style`은 모든 규칙을 이기므로 이관 전에는 보이던 값이 이관 후 조용히
|
|
126
130
|
사라질 수 있다. 이관은 브라우저에서 실제 렌더를 확인하며 진행한다.
|
|
127
131
|
|
|
@@ -213,8 +217,8 @@ package로 승격하지 않습니다.
|
|
|
213
217
|
다음 질문에 모두 "예"라고 답할 수 있어야 HJM 채택이 완료된 것입니다.
|
|
214
218
|
|
|
215
219
|
- exact fixed-train dependency와 Provider가 CI에서 검증되는가?
|
|
216
|
-
- Stable은 기본 사용하고 필수
|
|
217
|
-
제품 ADR+evidence로 구분되어 있는가?
|
|
220
|
+
- Stable은 기본 사용하고(1.5.0 이전 profile이면 필수 foundation은 중앙 목록+앱 evidence로),
|
|
221
|
+
optional Beta는 제품 ADR+evidence로 구분되어 있는가?
|
|
218
222
|
- screen 코드가 semantic token·component를 우회하지 않는가?
|
|
219
223
|
- 같은 상태가 Web/RN에서 같은 의미와 자연스러운 플랫폼 행동을 갖는가?
|
|
220
224
|
- 로고를 제거해도 제품의 핵심 콘텐츠와 정보 구조가 다른 제품과 구분되는가?
|
|
@@ -116,10 +116,10 @@ adapter가 자체 병합 로직을 다시 만들 필요가 없다. `parent`에
|
|
|
116
116
|
| `size`(antd ConfigProvider의 컴포넌트 전역 사이즈 프리셋) | **배제** — 측정된 요구가
|
|
117
117
|
없고, 있다 해도 그건 각 recipe의 `sizes`(예: `selectRecipe.sizes`)가 이미 컴포넌트별로
|
|
118
118
|
갖고 있는 축이라 전역 오버라이드를 얹으면 두 곳이 같은 축을 다시 소유하게 된다. |
|
|
119
|
-
| 임의 theme/component token override | **
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
119
|
+
| 임의 theme/component token override | **component token override는 배제**, theme 색은 `brandPalette`
|
|
120
|
+
부분 병합으로만 — 병합 결과는 `checkBrandPaletteContrast`를 통과해야 한다. 규칙 원본은
|
|
121
|
+
[brand-boundary.md](./brand-boundary.md)이며, 이 행의 이전 문구("partial override 배제, 완전한 value만")는
|
|
122
|
+
0.9.x에 `brandPalette`가 생기면서 사실과 달라졌다. |
|
|
123
123
|
|
|
124
124
|
## 제품 adapter 증거
|
|
125
125
|
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
# Component maturity and evidence manifest
|
|
2
2
|
|
|
3
|
-
> Generated from `@hjmds/design-contracts` 1.
|
|
3
|
+
> Generated from `@hjmds/design-contracts` 1.6.0. Do not edit this file directly; run `pnpm contracts:sync`.
|
|
4
4
|
|
|
5
5
|
This document is the human-readable projection of the same catalog and Showcase manifest consumed by product CI.
|
|
6
6
|
|
|
7
|
-
- Contract: stable
|
|
8
|
-
- Web renderer: stable
|
|
9
|
-
- Native renderer: stable
|
|
7
|
+
- Contract: stable 17 · beta 79 · planned 15
|
|
8
|
+
- Web renderer: stable 17 · beta 79 · planned 15
|
|
9
|
+
- Native renderer: stable 17 · beta 62 · planned 8 · unsupported 24
|
|
10
10
|
|
|
11
11
|
| Component | Canonical story ID | Contract | Web | Native | Documentation | Required evidence |
|
|
12
12
|
| --- | --- | --- | --- | --- | --- | --- |
|
|
13
|
-
| Text | `foundation/text` |
|
|
13
|
+
| Text | `foundation/text` | stable | stable | stable | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
14
14
|
| TextFormat | `foundation/text-format` | beta | beta | unsupported | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard |
|
|
15
15
|
| Heading | `foundation/heading` | beta | beta | beta | [authored](../heading.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard |
|
|
16
|
-
| Icon | `foundation/icon` |
|
|
16
|
+
| Icon | `foundation/icon` | stable | stable | stable | [authored](../icon.md) | contract: contract; web: default, dark, large-text, rtl, reduced-motion, accessibility; native: default, dark, large-text, rtl, reduced-motion, accessibility |
|
|
17
17
|
| Surface | `layout/surface` | stable | stable | stable | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
18
|
-
| Divider | `layout/divider` | beta | beta | beta | generated only | contract: contract; web: default, dark,
|
|
18
|
+
| Divider | `layout/divider` | beta | beta | beta | generated only | contract: contract; web: default, dark, large-text, rtl, reduced-motion, accessibility; native: default, dark, large-text, rtl, reduced-motion, accessibility |
|
|
19
19
|
| Section | `layout/section` | beta | beta | beta | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
20
|
-
| Stack | `layout/stack` |
|
|
21
|
-
| Container | `layout/container` |
|
|
20
|
+
| Stack | `layout/stack` | stable | stable | stable | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
21
|
+
| Container | `layout/container` | stable | stable | stable | [authored](../container.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
22
22
|
| AspectRatio | `layout/aspect-ratio` | beta | beta | beta | [authored](../aspect-ratio.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
23
23
|
| Grid | `layout/grid` | beta | beta | beta | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, platform-parity; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, platform-parity |
|
|
24
24
|
| Layout | `layout/layout` | beta | beta | beta | [authored](../layout.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard, platform-parity; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard, platform-parity |
|
|
@@ -26,7 +26,7 @@ This document is the human-readable projection of the same catalog and Showcase
|
|
|
26
26
|
| Masonry | `layout/masonry` | planned | planned | planned | generated only | contract: contract |
|
|
27
27
|
| Splitter | `layout/splitter` | beta | beta | unsupported | [authored](../splitter.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard |
|
|
28
28
|
| Button | `action/button` | stable | stable | stable | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
29
|
-
| IconButton | `action/icon-button` |
|
|
29
|
+
| IconButton | `action/icon-button` | stable | stable | stable | generated only | contract: contract; web: default, dark, large-text, rtl, reduced-motion, accessibility; native: default, dark, large-text, rtl, reduced-motion, accessibility |
|
|
30
30
|
| Link | `action/link` | beta | beta | beta | [authored](../link.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard, platform-parity; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard, platform-parity |
|
|
31
31
|
| BottomCTA | `action/bottom-cta` | beta | beta | beta | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, platform-parity; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, platform-parity |
|
|
32
32
|
| FloatingActionButton | `action/floating-action-button` | beta | beta | beta | [authored](../floating-action-button.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard, platform-parity; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard, platform-parity |
|
|
@@ -78,9 +78,9 @@ This document is the human-readable projection of the same catalog and Showcase
|
|
|
78
78
|
| Avatar | `data-display/avatar` | beta | beta | beta | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
79
79
|
| Asset | `data-display/asset` | beta | beta | beta | [authored](../asset.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard, platform-parity; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard, platform-parity |
|
|
80
80
|
| Chart | `data-display/chart` | planned | planned | planned | [authored](../chart.md) | contract: contract |
|
|
81
|
-
| Badge | `data-display/badge` |
|
|
81
|
+
| Badge | `data-display/badge` | stable | stable | stable | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
82
82
|
| CounterBadge | `data-display/counter-badge` | beta | beta | beta | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
83
|
-
| Card | `data-display/card` |
|
|
83
|
+
| Card | `data-display/card` | stable | stable | stable | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
84
84
|
| List | `data-display/list` | beta | beta | beta | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
85
85
|
| ListRow | `data-display/list-row` | beta | beta | beta | [authored](../list-row.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
86
86
|
| VirtualList | `data-display/virtual-list` | planned | planned | planned | [authored](../virtual-list.md) | contract: contract |
|
|
@@ -95,13 +95,13 @@ This document is the human-readable projection of the same catalog and Showcase
|
|
|
95
95
|
| DescriptionList | `data-display/description-list` | beta | beta | beta | [authored](../description-list.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
96
96
|
| Image | `data-display/image` | beta | beta | beta | [authored](../image.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
97
97
|
| QRCode | `data-display/qrcode` | planned | planned | planned | [authored](../qr-code.md) | contract: contract |
|
|
98
|
-
| Tag | `data-display/tag` |
|
|
98
|
+
| Tag | `data-display/tag` | stable | stable | stable | [authored](../tag.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
99
99
|
| Tour | `overlay/tour` | beta | beta | unsupported | [authored](../tour.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard |
|
|
100
100
|
| EmptyState | `feedback/empty-state` | beta | beta | beta | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
101
|
-
| Notice | `feedback/notice` |
|
|
102
|
-
| Progress | `feedback/progress` |
|
|
103
|
-
| Spinner | `feedback/spinner` |
|
|
104
|
-
| Skeleton | `feedback/skeleton` |
|
|
101
|
+
| Notice | `feedback/notice` | stable | stable | stable | generated only | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
102
|
+
| Progress | `feedback/progress` | stable | stable | stable | [authored](../progress.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
103
|
+
| Spinner | `feedback/spinner` | stable | stable | stable | generated only | contract: contract; web: default, dark, large-text, rtl, reduced-motion, accessibility; native: default, dark, large-text, rtl, reduced-motion, accessibility |
|
|
104
|
+
| Skeleton | `feedback/skeleton` | stable | stable | stable | generated only | contract: contract; web: default, dark, large-text, rtl, reduced-motion, accessibility; native: default, dark, large-text, rtl, reduced-motion, accessibility |
|
|
105
105
|
| Result | `feedback/result` | beta | beta | beta | [authored](../result.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
106
106
|
| BottomInfo | `feedback/bottom-info` | beta | beta | beta | [authored](../bottom-info.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard, platform-parity; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard, platform-parity |
|
|
107
107
|
| Toast | `feedback/toast` | beta | beta | beta | [authored](../toast.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard, platform-parity; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard, platform-parity |
|
|
@@ -117,7 +117,7 @@ This document is the human-readable projection of the same catalog and Showcase
|
|
|
117
117
|
| Affix | `utility/affix` | planned | planned | unsupported | [authored](../affix.md) | contract: contract |
|
|
118
118
|
| AppProvider | `provider/app-provider` | planned | planned | planned | [authored](../app-provider.md) | contract: contract |
|
|
119
119
|
| BorderBeam | `utility/border-beam` | planned | planned | unsupported | [authored](../border-beam.md) | contract: contract |
|
|
120
|
-
| DesignSystemProvider | `provider/design-system-provider` |
|
|
120
|
+
| DesignSystemProvider | `provider/design-system-provider` | stable | stable | stable | [authored](../design-system-provider.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility; native: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|
|
121
121
|
| Utility | `utility/utility` | planned | planned | unsupported | [authored](../utility.md) | contract: contract |
|
|
122
122
|
| SkipNav | `utility/skip-nav` | beta | beta | unsupported | [authored](../skip-nav.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility, keyboard |
|
|
123
123
|
| VisuallyHidden | `utility/visually-hidden` | beta | beta | unsupported | [authored](../visually-hidden.md) | contract: contract; web: default, dark, long-copy, large-text, rtl, reduced-motion, accessibility |
|