@cahyo-dimas/freeday 3.9.1 → 3.9.2

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/CHANGELOG.md CHANGED
@@ -9,6 +9,35 @@ benar. Perubahan seperti itu ditulis di bawah `### Changed: BREAKING (types)`
9
9
  lama → tipe baru, dan cara menyempitkannya — bukan di bawah `### Added`, betapapun aditifnya dari
10
10
  sisi kit.
11
11
 
12
+ ## [3.9.2] - 2026-10-26
13
+
14
+ **Satu setelan aksesibilitas, dan sebuah scrim yang tak terlihat tetapi tetap menangkap tap.**
15
+ Pemilik app ronda melaporkan dua gejala di iPhone 7 yang tampak terpisah: layar tinggal redup
16
+ sesudah drawer ditutup, dan setiap navigasi butuh dua ketukan. Keduanya satu sebab, dan yang
17
+ memecahkannya dua foto dari perangkat yang sama, identik kecuali Reduce Motion.
18
+
19
+ Dengan setelan itu menyala, transisi terhitung melaporkan `opacity 0.000001s` dan backdrop diam di
20
+ `opacity 0` serta `visibility hidden` selama tiga detik, dengan kelas `--nav-open` hadir di setiap
21
+ sampel. Dengan setelan itu mati, deret yang sama berjalan 0.87 lalu 1.00. WebKit memaksa durasi
22
+ transisi ke satu mikrodetik di bawah Reduce Motion, dan pada durasi itu transisinya tidak pernah
23
+ berjalan: propertinya tersangkut di nilai awal. Bukan lambat, tidak pernah mulai.
24
+
25
+ ### Fixed
26
+ - **`.fdy-app__backdrop` dinetralkan di bawah `prefers-reduced-motion`** (`#088`). Aturan yang sama
27
+ mengatur `pointer-events` bersama `opacity`, jadi yang tersangkut bukan sekadar tampilan: foto
28
+ perangkat merekam `pointer-events: auto` berdampingan dengan `visibility: hidden`, yaitu scrim
29
+ tak terlihat yang tetap menangkap tap. Ketukan pertama pengguna hilang di sana dan ketukan kedua
30
+ yang bekerja. Sidebar sudah dinetralkan sejak lama; backdrop terlewat, dan backdrop yang
31
+ menggerbangi interaksi.
32
+ - **`.fdy-chart__tip` ikut dinetralkan.** Bentuk cacat yang sama persis, ditemukan oleh audit yang
33
+ sama: transisi yang juga mengatur `pointer-events`, tanpa pagar reduced-motion. `.fdy-tooltip`
34
+ sudah aman sejak lama.
35
+ - **Penjaga yang mengunci pelajarannya, bukan kasusnya.** Setiap aturan yang mentransisikan
36
+ properti sambil mengatur `pointer-events` wajib punya pasangannya di dalam blok
37
+ `prefers-reduced-motion: reduce`. Statis, seperti penjaga `visibility` di 3.9.1, dan karena
38
+ alasan yang sama: mesin yang bisa melihat cacat ini bukan mesin yang menjalankan uji kit, dan di
39
+ sini bahkan bukan mesin mana pun tanpa setelan aksesibilitas itu menyala.
40
+
12
41
  ## [3.9.1] - 2026-10-26
13
42
 
14
43
  **Satu properti yang tidak boleh ditransisikan, dan sebuah HP yang membuktikannya.** Sesudah drawer
package/README.id.md CHANGED
@@ -5,7 +5,7 @@
5
5
  > **Lebih banyak _free day_ buat dev. UI kit-nya sudah siap pakai.**
6
6
 
7
7
  [![Live docs](https://img.shields.io/badge/docs-live-2050d8?style=flat-square)](https://cahyo-dimas.github.io/freeday-ui-kit/)
8
- [![Release](https://img.shields.io/badge/release-v3.9.1-0078d4?style=flat-square)](https://github.com/cahyo-dimas/freeday-ui-kit/tree/v3.9.1)
8
+ [![Release](https://img.shields.io/badge/release-v3.9.2-0078d4?style=flat-square)](https://github.com/cahyo-dimas/freeday-ui-kit/tree/v3.9.2)
9
9
 
10
10
  UI KIT yang token-driven & framework-agnostic. Satu sumber kebenaran untuk warna, tipografi,
11
11
  spasi, dan komponen. Blueprint: `docs/superpowers/specs/2026-07-21-freeday-ui-kit-design.md`.
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  > **More free days for devs. The UI kit is ready to use.**
6
6
 
7
7
  [![Live docs](https://img.shields.io/badge/docs-live-2050d8?style=flat-square)](https://cahyo-dimas.github.io/freeday-ui-kit/)
8
- [![Release](https://img.shields.io/badge/release-v3.9.1-0078d4?style=flat-square)](https://github.com/cahyo-dimas/freeday-ui-kit/tree/v3.9.1)
8
+ [![Release](https://img.shields.io/badge/release-v3.9.2-0078d4?style=flat-square)](https://github.com/cahyo-dimas/freeday-ui-kit/tree/v3.9.2)
9
9
 
10
10
  A token-driven, framework-agnostic UI kit. One source of truth for color, typography,
11
11
  spacing, and components. Blueprint: `docs/superpowers/specs/2026-07-21-freeday-ui-kit-design.md`.
@@ -1408,7 +1408,15 @@ a { color: var(--color-primary-strong); }
1408
1408
  .fdy-app__main{padding:var(--space-5);}
1409
1409
  .fdy-app__topbar{padding:0 var(--space-4);}
1410
1410
  }
1411
- @media (prefers-reduced-motion:reduce){.fdy-app__sidebar{transition:none;}}
1411
+ /* Backdrop ikut dinetralkan, dan ini BUKAN soal selera gerak. WebKit memaksa durasi transisi ke
1412
+ * 0.000001s saat Reduce Motion menyala, dan pada durasi itu transisinya tidak pernah berjalan:
1413
+ * propertinya tersangkut di nilai AWAL selamanya. Diukur di iPhone 7 dengan setelan itu menyala,
1414
+ * tiga detik sesudah drawer terbuka, dengan kelas `--nav-open` SUDAH terpasang di setiap sampel:
1415
+ * `opacity` diam di 0 dan `visibility` diam di `hidden`, sementara `pointer-events` sudah `auto`.
1416
+ * Scrim yang tak terlihat tetapi menangkap tap, jadi ketukan pertama pengguna hilang dan ketukan
1417
+ * kedua yang bekerja. Setelan yang sama dimatikan, deret yang sama berjalan 0.87 lalu 1.00.
1418
+ * Sidebar sudah dinetralkan sejak lama; backdrop terlewat, dan ia yang menggerbangi interaksi. */
1419
+ @media (prefers-reduced-motion:reduce){.fdy-app__sidebar{transition:none;}.fdy-app__backdrop{transition:none;}}
1412
1420
 
1413
1421
  /* Freeday. App bar (standalone top bar: brand · actions · spacer).
1414
1422
  * Distinct from .fdy-app__topbar (which is bound to the shell grid). Use anywhere;
@@ -2035,6 +2043,12 @@ a { color: var(--color-primary-strong); }
2035
2043
  .fdy-chart-xy__bar{transition:opacity var(--dur-fast) var(--ease-standard);}
2036
2044
  .fdy-chart-xy__band{fill:transparent;cursor:pointer;}
2037
2045
 
2046
+ /* Sama sebabnya dengan `.fdy-app__backdrop`: transisi yang juga menggerbangi `pointer-events` dapat
2047
+ * tersangkut di nilai awal ketika WebKit memaksa durasinya ke nol di bawah Reduce Motion, dan yang
2048
+ * tersisa adalah elemen tak terlihat yang tetap menangkap tap. Tooltip sudah dinetralkan sejak lama
2049
+ * untuk alasan yang sama; tip chart terlewat. */
2050
+ @media (prefers-reduced-motion:reduce){.fdy-chart__tip{transition:none;}}
2051
+
2038
2052
  /* Freeday. Chip (tag / removable filter) */
2039
2053
  .fdy-chip{display:inline-flex;align-items:center;gap:var(--space-2);height:1.75rem;padding:0 var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text);background:var(--color-surface-3);border:var(--bw) solid var(--color-border);}
2040
2054
  .fdy-chip--primary{color:var(--color-primary-strong);background:var(--color-primary-soft);border-color:rgba(var(--color-primary-rgb),.22);}
package/dist/freeday.css CHANGED
@@ -231,7 +231,15 @@ a { color: var(--color-primary-strong); }
231
231
  .fdy-app__main{padding:var(--space-5);}
232
232
  .fdy-app__topbar{padding:0 var(--space-4);}
233
233
  }
234
- @media (prefers-reduced-motion:reduce){.fdy-app__sidebar{transition:none;}}
234
+ /* Backdrop ikut dinetralkan, dan ini BUKAN soal selera gerak. WebKit memaksa durasi transisi ke
235
+ * 0.000001s saat Reduce Motion menyala, dan pada durasi itu transisinya tidak pernah berjalan:
236
+ * propertinya tersangkut di nilai AWAL selamanya. Diukur di iPhone 7 dengan setelan itu menyala,
237
+ * tiga detik sesudah drawer terbuka, dengan kelas `--nav-open` SUDAH terpasang di setiap sampel:
238
+ * `opacity` diam di 0 dan `visibility` diam di `hidden`, sementara `pointer-events` sudah `auto`.
239
+ * Scrim yang tak terlihat tetapi menangkap tap, jadi ketukan pertama pengguna hilang dan ketukan
240
+ * kedua yang bekerja. Setelan yang sama dimatikan, deret yang sama berjalan 0.87 lalu 1.00.
241
+ * Sidebar sudah dinetralkan sejak lama; backdrop terlewat, dan ia yang menggerbangi interaksi. */
242
+ @media (prefers-reduced-motion:reduce){.fdy-app__sidebar{transition:none;}.fdy-app__backdrop{transition:none;}}
235
243
 
236
244
  /* Freeday. App bar (standalone top bar: brand · actions · spacer).
237
245
  * Distinct from .fdy-app__topbar (which is bound to the shell grid). Use anywhere;
@@ -858,6 +866,12 @@ a { color: var(--color-primary-strong); }
858
866
  .fdy-chart-xy__bar{transition:opacity var(--dur-fast) var(--ease-standard);}
859
867
  .fdy-chart-xy__band{fill:transparent;cursor:pointer;}
860
868
 
869
+ /* Sama sebabnya dengan `.fdy-app__backdrop`: transisi yang juga menggerbangi `pointer-events` dapat
870
+ * tersangkut di nilai awal ketika WebKit memaksa durasinya ke nol di bawah Reduce Motion, dan yang
871
+ * tersisa adalah elemen tak terlihat yang tetap menangkap tap. Tooltip sudah dinetralkan sejak lama
872
+ * untuk alasan yang sama; tip chart terlewat. */
873
+ @media (prefers-reduced-motion:reduce){.fdy-chart__tip{transition:none;}}
874
+
861
875
  /* Freeday. Chip (tag / removable filter) */
862
876
  .fdy-chip{display:inline-flex;align-items:center;gap:var(--space-2);height:1.75rem;padding:0 var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text);background:var(--color-surface-3);border:var(--bw) solid var(--color-border);}
863
877
  .fdy-chip--primary{color:var(--color-primary-strong);background:var(--color-primary-soft);border-color:rgba(var(--color-primary-rgb),.22);}
@@ -191,7 +191,7 @@ live docs also have a copy button per component.
191
191
  ```bash
192
192
  npm i @cahyo-dimas/freeday
193
193
  ```
194
- Lands in `package.json` as `"@cahyo-dimas/freeday": "^3.9.1"` (public npm package). `dist/` is
194
+ Lands in `package.json` as `"@cahyo-dimas/freeday": "^3.9.2"` (public npm package). `dist/` is
195
195
  committed and published → no build step; `npm ci` runs without auth.
196
196
 
197
197
  ### 2. Import the CSS + enhancers **once** in your entry (`src/main.ts`)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cahyo-dimas/freeday",
3
- "version": "3.9.1",
3
+ "version": "3.9.2",
4
4
  "description": "Freeday: token-driven, framework-agnostic UI KIT (design source-of-truth).",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -152,4 +152,12 @@
152
152
  .fdy-app__main{padding:var(--space-5);}
153
153
  .fdy-app__topbar{padding:0 var(--space-4);}
154
154
  }
155
- @media (prefers-reduced-motion:reduce){.fdy-app__sidebar{transition:none;}}
155
+ /* Backdrop ikut dinetralkan, dan ini BUKAN soal selera gerak. WebKit memaksa durasi transisi ke
156
+ * 0.000001s saat Reduce Motion menyala, dan pada durasi itu transisinya tidak pernah berjalan:
157
+ * propertinya tersangkut di nilai AWAL selamanya. Diukur di iPhone 7 dengan setelan itu menyala,
158
+ * tiga detik sesudah drawer terbuka, dengan kelas `--nav-open` SUDAH terpasang di setiap sampel:
159
+ * `opacity` diam di 0 dan `visibility` diam di `hidden`, sementara `pointer-events` sudah `auto`.
160
+ * Scrim yang tak terlihat tetapi menangkap tap, jadi ketukan pertama pengguna hilang dan ketukan
161
+ * kedua yang bekerja. Setelan yang sama dimatikan, deret yang sama berjalan 0.87 lalu 1.00.
162
+ * Sidebar sudah dinetralkan sejak lama; backdrop terlewat, dan ia yang menggerbangi interaksi. */
163
+ @media (prefers-reduced-motion:reduce){.fdy-app__sidebar{transition:none;}.fdy-app__backdrop{transition:none;}}
@@ -53,3 +53,9 @@
53
53
  .fdy-chart-xy__dot{stroke:var(--color-surface);stroke-width:1;}
54
54
  .fdy-chart-xy__bar{transition:opacity var(--dur-fast) var(--ease-standard);}
55
55
  .fdy-chart-xy__band{fill:transparent;cursor:pointer;}
56
+
57
+ /* Sama sebabnya dengan `.fdy-app__backdrop`: transisi yang juga menggerbangi `pointer-events` dapat
58
+ * tersangkut di nilai awal ketika WebKit memaksa durasinya ke nol di bawah Reduce Motion, dan yang
59
+ * tersisa adalah elemen tak terlihat yang tetap menangkap tap. Tooltip sudah dinetralkan sejak lama
60
+ * untuk alasan yang sama; tip chart terlewat. */
61
+ @media (prefers-reduced-motion:reduce){.fdy-chart__tip{transition:none;}}