@stasho/ds 0.15.4 → 0.15.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stasho/ds",
3
- "version": "0.15.4",
3
+ "version": "0.15.5",
4
4
  "description": "stasho design system",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -67,14 +67,30 @@ LogoFull.displayName = "LogoFull";
67
67
  /**
68
68
  * stasho wordmark only, no icon (placeholder logotype, rebrand still deferred).
69
69
  * Set in Anybody 800 italic to match the brand headings; the consuming app must
70
- * load Anybody or it falls back to sans-serif. viewBox is fitted to "stasho" at
71
- * that cut. Inherits color from parent via `currentColor`.
70
+ * load Anybody or it falls back to sans-serif. Inherits color from parent via
71
+ * `currentColor`.
72
+ *
73
+ * The wordmark is live `<text>`, so its width is decided by whichever faces the
74
+ * consuming app actually loaded — not by anything this component controls. The
75
+ * viewBox must therefore clear the WIDEST realistic rendering: overflow clips a
76
+ * glyph, while underflow only leaves benign trailing space. Measured at
77
+ * font-size 200, `font-stretch: normal` (Chromium, 2026-08-21): Anybody 800/900
78
+ * italic 848.9, Anybody 800 upright 833.1, Anybody 700 italic 777.6, generic
79
+ * sans-serif fallback ~650. 880 clears the widest with headroom.
80
+ *
81
+ * Two known ways past 880, both requiring a consumer to opt in: Anybody ships a
82
+ * `wdth` 75..125 axis, and `font-stretch` inherits into SVG `<text>` — at
83
+ * `wdth` 125 this measures 1046. Nothing sets it today; the numbers above
84
+ * assume `wdth` 100.
85
+ *
86
+ * The previous 654 was fitted to the generic sans-serif FALLBACK, not to
87
+ * Anybody, and clipped the trailing "o" by ~30% wherever Anybody loaded.
72
88
  */
73
89
  const LogoWordmark = forwardRef<SVGSVGElement, LogoProps>(
74
90
  ({ className, ...rest }, ref) => (
75
91
  <svg
76
92
  ref={ref}
77
- viewBox="0 0 654 229"
93
+ viewBox="0 0 880 229"
78
94
  xmlns="http://www.w3.org/2000/svg"
79
95
  fill="currentColor"
80
96
  className={cn("shrink-0", className)}
@@ -102,12 +118,17 @@ LogoWordmark.displayName = "LogoWordmark";
102
118
  * logotype, rebrand still deferred). Set in Anybody 800 italic to match the
103
119
  * brand headings; the consuming app must load Anybody or it falls back to
104
120
  * sans-serif. Inherits color from parent via `currentColor`.
121
+ *
122
+ * Same live-`<text>` sizing rule as LogoWordmark above — the viewBox clears the
123
+ * widest realistic rendering. Measured at font-size 200 (Chromium, 2026-08-21):
124
+ * Anybody 800/900 italic "s" 157.9. 164 clears it with ~3.9% headroom. The
125
+ * previous 119 clipped the single glyph by ~33%.
105
126
  */
106
127
  const LogoLetter = forwardRef<SVGSVGElement, LogoProps>(
107
128
  ({ className, ...rest }, ref) => (
108
129
  <svg
109
130
  ref={ref}
110
- viewBox="0 0 119 229"
131
+ viewBox="0 0 164 229"
111
132
  xmlns="http://www.w3.org/2000/svg"
112
133
  fill="currentColor"
113
134
  className={cn("shrink-0", className)}