@hanzo/design 0.5.13 → 0.5.14

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.
@@ -203,6 +203,10 @@ export declare const spacing: {
203
203
  readonly 'hero-y-lg': "4.5rem";
204
204
  readonly 'header-height': "3.5rem";
205
205
  readonly 'tap-target': "44px";
206
+ readonly 'control-height-sm': "32px";
207
+ readonly 'control-height': "36px";
208
+ readonly 'control-height-lg': "40px";
209
+ readonly 'control-height-xl': "52px";
206
210
  readonly 'safe-top': "env(safe-area-inset-top,0px)";
207
211
  readonly 'safe-right': "env(safe-area-inset-right,0px)";
208
212
  readonly 'safe-bottom': "env(safe-area-inset-bottom,0px)";
@@ -500,6 +504,10 @@ export declare const cssVars: {
500
504
  readonly '--hero-y-lg': "4.5rem";
501
505
  readonly '--header-height': "3.5rem";
502
506
  readonly '--tap-target': "44px";
507
+ readonly '--control-height-sm': "32px";
508
+ readonly '--control-height': "36px";
509
+ readonly '--control-height-lg': "40px";
510
+ readonly '--control-height-xl': "52px";
503
511
  readonly '--safe-top': "env(safe-area-inset-top,0px)";
504
512
  readonly '--safe-right': "env(safe-area-inset-right,0px)";
505
513
  readonly '--safe-bottom': "env(safe-area-inset-bottom,0px)";
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.gen.d.ts","sourceRoot":"","sources":["../src/tokens.gen.ts"],"names":[],"mappings":"AAIA,kEAAkE;AAClE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FT,CAAA;AAEV,0EAA0E;AAC1E,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEb,CAAA;AAEV,oEAAoE;AACpE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CV,CAAA;AAEV,8DAA8D;AAC9D,eAAO,MAAM,IAAI;;;;;;;;;;;;CAYP,CAAA;AAEV,kEAAkE;AAClE,eAAO,MAAM,MAAM;;;;;;;;;CAST,CAAA;AAEV,wEAAwE;AACxE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BZ,CAAA;AAEV,kEAAkE;AAClE,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAaT,CAAA;AAEV,6DAA6D;AAC7D,eAAO,MAAM,MAAM;;;;;;;;;;;;CAYT,CAAA;AAEV,gEAAgE;AAChE,eAAO,MAAM,KAAK;;;;;;CAMR,CAAA;AAEV,8DAA8D;AAC9D,eAAO,MAAM,IAAI,IAEP,CAAA;AAEV,sFAAsF;AACtF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmRV,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAA"}
1
+ {"version":3,"file":"tokens.gen.d.ts","sourceRoot":"","sources":["../src/tokens.gen.ts"],"names":[],"mappings":"AAIA,kEAAkE;AAClE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FT,CAAA;AAEV,0EAA0E;AAC1E,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEb,CAAA;AAEV,oEAAoE;AACpE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CV,CAAA;AAEV,8DAA8D;AAC9D,eAAO,MAAM,IAAI;;;;;;;;;;;;CAYP,CAAA;AAEV,kEAAkE;AAClE,eAAO,MAAM,MAAM;;;;;;;;;CAST,CAAA;AAEV,wEAAwE;AACxE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BZ,CAAA;AAEV,kEAAkE;AAClE,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAaT,CAAA;AAEV,6DAA6D;AAC7D,eAAO,MAAM,MAAM;;;;;;;;;;;;CAYT,CAAA;AAEV,gEAAgE;AAChE,eAAO,MAAM,KAAK;;;;;;CAMR,CAAA;AAEV,8DAA8D;AAC9D,eAAO,MAAM,IAAI,IAEP,CAAA;AAEV,sFAAsF;AACtF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuRV,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAA"}
@@ -206,6 +206,10 @@ export const spacing = {
206
206
  'hero-y-lg': '4.5rem',
207
207
  'header-height': '3.5rem',
208
208
  'tap-target': '44px',
209
+ 'control-height-sm': '32px',
210
+ 'control-height': '36px',
211
+ 'control-height-lg': '40px',
212
+ 'control-height-xl': '52px',
209
213
  'safe-top': 'env(safe-area-inset-top,0px)',
210
214
  'safe-right': 'env(safe-area-inset-right,0px)',
211
215
  'safe-bottom': 'env(safe-area-inset-bottom,0px)',
@@ -503,6 +507,10 @@ export const cssVars = {
503
507
  '--hero-y-lg': '4.5rem',
504
508
  '--header-height': '3.5rem',
505
509
  '--tap-target': '44px',
510
+ '--control-height-sm': '32px',
511
+ '--control-height': '36px',
512
+ '--control-height-lg': '40px',
513
+ '--control-height-xl': '52px',
506
514
  '--safe-top': 'env(safe-area-inset-top,0px)',
507
515
  '--safe-right': 'env(safe-area-inset-right,0px)',
508
516
  '--safe-bottom': 'env(safe-area-inset-bottom,0px)',
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@hanzo/design",
3
- "version": "0.5.13",
3
+ "version": "0.5.14",
4
+ "packageManager": "pnpm@11.17.0",
4
5
  "description": "Hanzo Design System — monochrome, dark-default tokens + components + brand assets, the single source of truth for every Hanzo surface. CSS + typed programmatic tokens.",
5
6
  "license": "MIT OR Apache-2.0",
6
7
  "repository": {
@@ -31,6 +32,13 @@
31
32
  "./skills/*": "./skills/*",
32
33
  "./tailwind.css": "./tailwind.css"
33
34
  },
35
+ "scripts": {
36
+ "gen": "node scripts/gen-tokens.mjs",
37
+ "test": "node scripts/check-tokens.mjs && node scripts/check-preference.mjs && node scripts/lint.mjs .",
38
+ "build": "pnpm gen && pnpm test && tsc -p tsconfig.json && node scripts/check-dist.mjs",
39
+ "prepublishOnly": "pnpm build",
40
+ "lint": "node scripts/lint.mjs"
41
+ },
34
42
  "devDependencies": {
35
43
  "typescript": "^5.9.3"
36
44
  },
@@ -63,11 +71,5 @@
63
71
  },
64
72
  "bin": {
65
73
  "hanzo-design-lint": "./scripts/lint.mjs"
66
- },
67
- "scripts": {
68
- "gen": "node scripts/gen-tokens.mjs",
69
- "test": "node scripts/check-tokens.mjs && node scripts/check-preference.mjs && node scripts/lint.mjs .",
70
- "build": "pnpm gen && pnpm test && tsc -p tsconfig.json && node scripts/check-dist.mjs",
71
- "lint": "node scripts/lint.mjs"
72
74
  }
73
- }
75
+ }
package/src/tokens.gen.ts CHANGED
@@ -209,6 +209,10 @@ export const spacing = {
209
209
  'hero-y-lg': '4.5rem',
210
210
  'header-height': '3.5rem',
211
211
  'tap-target': '44px',
212
+ 'control-height-sm': '32px',
213
+ 'control-height': '36px',
214
+ 'control-height-lg': '40px',
215
+ 'control-height-xl': '52px',
212
216
  'safe-top': 'env(safe-area-inset-top,0px)',
213
217
  'safe-right': 'env(safe-area-inset-right,0px)',
214
218
  'safe-bottom': 'env(safe-area-inset-bottom,0px)',
@@ -516,6 +520,10 @@ export const cssVars = {
516
520
  '--hero-y-lg': '4.5rem',
517
521
  '--header-height': '3.5rem',
518
522
  '--tap-target': '44px',
523
+ '--control-height-sm': '32px',
524
+ '--control-height': '36px',
525
+ '--control-height-lg': '40px',
526
+ '--control-height-xl': '52px',
519
527
  '--safe-top': 'env(safe-area-inset-top,0px)',
520
528
  '--safe-right': 'env(safe-area-inset-right,0px)',
521
529
  '--safe-bottom': 'env(safe-area-inset-bottom,0px)',
package/styles.css CHANGED
@@ -503,6 +503,26 @@
503
503
  hanzoai/id's stylesheet — one app knowing something the system did not. */
504
504
  --tap-target:44px;
505
505
 
506
+ /* ——— controls ——— */
507
+ /* A control's OWN height, which the floor above does not answer: 44px is the
508
+ smallest a finger may aim at, not the size a thing should be. Nothing named
509
+ the second question, so each surface answered it privately and they drifted
510
+ — @hanzo/ui keeps `CONTROL_H = 36` in TypeScript, hanzoai/app pins a 30px
511
+ `--control-h` over that same 36px library, and hanzoai/id spelled
512
+ `min-height:52px` into three separate rules.
513
+ The first three rungs ARE @hanzo/ui's size table (default/sm/lg), moved
514
+ down to the layer that holds values so a host can answer it once instead of
515
+ each library carrying a private copy. They sit under the tap floor on
516
+ purpose: base.css lifts whichever one is spent to 44px under
517
+ `pointer:coarse`, so one declaration serves a compact pointer control and a
518
+ hittable touch one. -xl is what a surface earns when the control IS the
519
+ content — one field, one button, nothing competing — where the default
520
+ reads as one of a stack rather than as the thing the screen is for. */
521
+ --control-height-sm:32px;
522
+ --control-height:36px;
523
+ --control-height-lg:40px;
524
+ --control-height-xl:52px;
525
+
506
526
  /* ——— safe areas ——— */
507
527
  /* The notch/home-indicator insets, named once. Anything pinned to a viewport
508
528
  edge — a fixed header, a bottom bar, a sheet — adds the matching one. */
package/tailwind.css CHANGED
@@ -526,6 +526,26 @@
526
526
  hanzoai/id's stylesheet — one app knowing something the system did not. */
527
527
  --tap-target:44px;
528
528
 
529
+ /* ——— controls ——— */
530
+ /* A control's OWN height, which the floor above does not answer: 44px is the
531
+ smallest a finger may aim at, not the size a thing should be. Nothing named
532
+ the second question, so each surface answered it privately and they drifted
533
+ — @hanzo/ui keeps `CONTROL_H = 36` in TypeScript, hanzoai/app pins a 30px
534
+ `--control-h` over that same 36px library, and hanzoai/id spelled
535
+ `min-height:52px` into three separate rules.
536
+ The first three rungs ARE @hanzo/ui's size table (default/sm/lg), moved
537
+ down to the layer that holds values so a host can answer it once instead of
538
+ each library carrying a private copy. They sit under the tap floor on
539
+ purpose: base.css lifts whichever one is spent to 44px under
540
+ `pointer:coarse`, so one declaration serves a compact pointer control and a
541
+ hittable touch one. -xl is what a surface earns when the control IS the
542
+ content — one field, one button, nothing competing — where the default
543
+ reads as one of a stack rather than as the thing the screen is for. */
544
+ --control-height-sm:32px;
545
+ --control-height:36px;
546
+ --control-height-lg:40px;
547
+ --control-height-xl:52px;
548
+
529
549
  /* ——— safe areas ——— */
530
550
  /* The notch/home-indicator insets, named once. Anything pinned to a viewport
531
551
  edge — a fixed header, a bottom bar, a sheet — adds the matching one. */
@@ -68,6 +68,26 @@
68
68
  hanzoai/id's stylesheet — one app knowing something the system did not. */
69
69
  --tap-target:44px;
70
70
 
71
+ /* ——— controls ——— */
72
+ /* A control's OWN height, which the floor above does not answer: 44px is the
73
+ smallest a finger may aim at, not the size a thing should be. Nothing named
74
+ the second question, so each surface answered it privately and they drifted
75
+ — @hanzo/ui keeps `CONTROL_H = 36` in TypeScript, hanzoai/app pins a 30px
76
+ `--control-h` over that same 36px library, and hanzoai/id spelled
77
+ `min-height:52px` into three separate rules.
78
+ The first three rungs ARE @hanzo/ui's size table (default/sm/lg), moved
79
+ down to the layer that holds values so a host can answer it once instead of
80
+ each library carrying a private copy. They sit under the tap floor on
81
+ purpose: base.css lifts whichever one is spent to 44px under
82
+ `pointer:coarse`, so one declaration serves a compact pointer control and a
83
+ hittable touch one. -xl is what a surface earns when the control IS the
84
+ content — one field, one button, nothing competing — where the default
85
+ reads as one of a stack rather than as the thing the screen is for. */
86
+ --control-height-sm:32px;
87
+ --control-height:36px;
88
+ --control-height-lg:40px;
89
+ --control-height-xl:52px;
90
+
71
91
  /* ——— safe areas ——— */
72
92
  /* The notch/home-indicator insets, named once. Anything pinned to a viewport
73
93
  edge — a fixed header, a bottom bar, a sheet — adds the matching one. */