sh-ui-cli 0.59.0 → 0.59.1
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/data/changelog/versions.json +13 -0
- package/data/registry/react/components/card/index.tailwind.tsx +1 -1
- package/data/registry/react/components/card/styles.css +1 -0
- package/data/registry/react/components/card/styles.module.css +1 -0
- package/data/registry/react/components/dialog/index.tailwind.tsx +1 -1
- package/data/registry/react/components/dialog/styles.css +1 -0
- package/data/registry/react/components/dialog/styles.module.css +1 -0
- package/data/registry/react/components/popover/index.tailwind.tsx +1 -1
- package/data/registry/react/components/popover/styles.css +1 -0
- package/data/registry/react/components/popover/styles.module.css +1 -0
- package/package.json +1 -1
- package/templates/nextjs-standalone/_arch/flat/lib/styles/tokens.css +8 -0
- package/templates/nextjs-standalone/_arch/fsd/src/shared/styles/tokens.css +8 -0
- package/templates/ui-app-template/src/styles/tokens.css +8 -0
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$description": "sh-ui 릴리즈 노트 단일 소스. docs(React)와 showcase(Flutter)가 함께 읽는다. 새 릴리즈마다 맨 앞에 추가.",
|
|
4
4
|
"versions": [
|
|
5
|
+
{
|
|
6
|
+
"version": "0.59.1",
|
|
7
|
+
"date": "2026-05-06",
|
|
8
|
+
"title": "접근성 라운드 1 — text-wrap: balance + 모바일 터치 타겟",
|
|
9
|
+
"type": "patch",
|
|
10
|
+
"highlights": [
|
|
11
|
+
"**`Card.Title` / `Dialog.Title` / `Popover.Title` 에 `text-wrap: balance` 추가** — 헤딩 텍스트가 두 줄 이상으로 wrap 될 때 마지막 줄에 단어 1~2개만 남는 orphan 문제 해소. 단어가 두 줄에 균등 분포. 한국어처럼 단어 길이 다양한 언어에서 효과 큼. 한 줄에 들어가면 no-op.",
|
|
12
|
+
"**모바일 터치 타겟 자동 보정 (WCAG 2.5.5)** — tokens.css 에 `@media (hover: none) and (pointer: coarse)` 블록 추가. 손가락 입력 환경에서 `--control-sm` (32px) / `--control-md` (40px) 가 자동으로 44px 로 확장. 모든 Button/Input 등 control-* 토큰을 사용하는 컴포넌트가 자동 적용. 데스크탑 (마우스/트랙패드) 은 영향 없음.",
|
|
13
|
+
"**`--control-lg`** (48px) 는 이미 44px 초과라 변경 불필요.",
|
|
14
|
+
"**4 variant + 듀얼 카피본 + pactrack 동기화** — Tailwind/plain/module/vanilla-extract + apps/docs + cli/templates."
|
|
15
|
+
],
|
|
16
|
+
"url": "https://github.com/sanghyeonKim0201/sh-ui/releases/tag/v0.59.1"
|
|
17
|
+
},
|
|
5
18
|
{
|
|
6
19
|
"version": "0.59.0",
|
|
7
20
|
"date": "2026-05-06",
|
|
@@ -38,7 +38,7 @@ export const CardTitle = React.forwardRef<HTMLDivElement, DivProps>(
|
|
|
38
38
|
<div
|
|
39
39
|
ref={ref}
|
|
40
40
|
className={cn(
|
|
41
|
-
"text-[length:var(--text-base)] font-semibold leading-tight tracking-tight",
|
|
41
|
+
"text-[length:var(--text-base)] font-semibold leading-tight tracking-tight text-balance",
|
|
42
42
|
className,
|
|
43
43
|
)}
|
|
44
44
|
{...props}
|
|
@@ -69,7 +69,7 @@ export const DialogTitle = React.forwardRef<
|
|
|
69
69
|
<BaseDialog.Title
|
|
70
70
|
ref={ref}
|
|
71
71
|
className={cn(
|
|
72
|
-
"m-0 mb-[var(--space-1)] font-semibold text-[length:var(--text-lg)] leading-snug",
|
|
72
|
+
"m-0 mb-[var(--space-1)] font-semibold text-[length:var(--text-lg)] leading-snug text-balance",
|
|
73
73
|
className,
|
|
74
74
|
)}
|
|
75
75
|
{...props}
|
|
@@ -55,7 +55,7 @@ export const PopoverTitle = React.forwardRef<
|
|
|
55
55
|
return (
|
|
56
56
|
<BasePopover.Title
|
|
57
57
|
ref={ref}
|
|
58
|
-
className={cn("m-0 mb-[var(--space-1)] font-semibold text-[0.9375rem]", className)}
|
|
58
|
+
className={cn("m-0 mb-[var(--space-1)] font-semibold text-[0.9375rem] text-balance", className)}
|
|
59
59
|
{...props}
|
|
60
60
|
/>
|
|
61
61
|
);
|
package/package.json
CHANGED
|
@@ -137,3 +137,11 @@
|
|
|
137
137
|
--bp-lg: 1024px;
|
|
138
138
|
--bp-xl: 1280px;
|
|
139
139
|
}
|
|
140
|
+
|
|
141
|
+
/* WCAG 2.5.5 — 터치 타겟 최소 44×44px. 마우스/스타일러스 대신 손가락 입력 시 control 높이를 보정. */
|
|
142
|
+
@media (hover: none) and (pointer: coarse) {
|
|
143
|
+
:root {
|
|
144
|
+
--control-sm: 2.75rem;
|
|
145
|
+
--control-md: 2.75rem;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
@@ -137,3 +137,11 @@
|
|
|
137
137
|
--bp-lg: 1024px;
|
|
138
138
|
--bp-xl: 1280px;
|
|
139
139
|
}
|
|
140
|
+
|
|
141
|
+
/* WCAG 2.5.5 — 터치 타겟 최소 44×44px. 마우스/스타일러스 대신 손가락 입력 시 control 높이를 보정. */
|
|
142
|
+
@media (hover: none) and (pointer: coarse) {
|
|
143
|
+
:root {
|
|
144
|
+
--control-sm: 2.75rem;
|
|
145
|
+
--control-md: 2.75rem;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
@@ -137,3 +137,11 @@
|
|
|
137
137
|
--bp-lg: 1024px;
|
|
138
138
|
--bp-xl: 1280px;
|
|
139
139
|
}
|
|
140
|
+
|
|
141
|
+
/* WCAG 2.5.5 — 터치 타겟 최소 44×44px. 마우스/스타일러스 대신 손가락 입력 시 control 높이를 보정. */
|
|
142
|
+
@media (hover: none) and (pointer: coarse) {
|
|
143
|
+
:root {
|
|
144
|
+
--control-sm: 2.75rem;
|
|
145
|
+
--control-md: 2.75rem;
|
|
146
|
+
}
|
|
147
|
+
}
|