@cahyo-dimas/freeday 3.9.1 → 3.9.3
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 +58 -0
- package/README.id.md +1 -1
- package/README.md +1 -1
- package/dist/freeday.bundle.css +27 -1
- package/dist/freeday.css +27 -1
- package/docs/getting-started.md +1 -1
- package/package.json +1 -1
- package/src/components/app-shell.css +21 -1
- package/src/components/chart.css +6 -0
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,64 @@ 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.3] - 2026-10-26
|
|
13
|
+
|
|
14
|
+
**Perbaikan 3.9.2 tidak pernah bisa bekerja, dan penjaganya hijau untuknya.** Penetralan
|
|
15
|
+
`prefers-reduced-motion` yang dikirim kemarin memakai `.fdy-app__backdrop`, spesifisitas `(0,1,0)`,
|
|
16
|
+
sementara keadaan terbukanya `.fdy-app--nav-open .fdy-app__backdrop` adalah `(0,2,0)` dan juga
|
|
17
|
+
mendeklarasikan transisi. Jadi penetralannya menang saat drawer tertutup dan kalah saat drawer
|
|
18
|
+
terbuka, yaitu satu-satunya saat ia penting. Yang menanam bomnya 3.9.1 sendiri: ia yang menambahkan
|
|
19
|
+
`transition` ke aturan keadaan terbuka.
|
|
20
|
+
|
|
21
|
+
Diukur dengan reduced motion diemulasi, bukan disimpulkan: tertutup melaporkan `none`, terbuka
|
|
22
|
+
melaporkan `opacity 1e-06s cubic-bezier(0.2, 0, 0, 1), visibility 1e-06s linear`.
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
- **Keempat selektor yang mendeklarasikan transisi backdrop dinetralkan, bukan yang paling lemah**
|
|
26
|
+
(`#089`). `.fdy-app__backdrop`, keadaan terbukanya, dan kedua padanannya di mode overlay.
|
|
27
|
+
- **Penjaganya menuntut selektor yang SAMA PERSIS**, bukan nama elemennya. Versi pertama hanya
|
|
28
|
+
memeriksa apakah nama itu muncul di suatu tempat di dalam blok reduced-motion, dan itulah
|
|
29
|
+
sebabnya ia hijau untuk perbaikan yang mati. Sekarang spesifisitasnya terjaga oleh konstruksi,
|
|
30
|
+
dan merahnya dibuktikan dengan mengembalikan bentuk 3.9.2: ia menyebut ketiga selektor yang
|
|
31
|
+
hilang dengan nama.
|
|
32
|
+
|
|
33
|
+
### Catatan: kelas bug ini dapat direproduksi di laptop
|
|
34
|
+
Sepanjang penyelidikan ini dicatat bahwa hanya perangkat sungguhan yang dapat menemukannya. Untuk
|
|
35
|
+
yang satu ini itu tidak benar. Chrome ikut menjepit durasi transisi ke `1e-06s` di bawah
|
|
36
|
+
`emulateMedia({ reducedMotion: 'reduce' })`, jadi cacat spesifisitasnya terukur di mesin mana pun.
|
|
37
|
+
Yang tetap tidak dapat direproduksi di Chromium adalah akibatnya, yakni properti yang tersangkut di
|
|
38
|
+
nilai awal; tetapi kontrak yang mencegahnya, `transition` wajib `none` di kedua keadaan, dapat
|
|
39
|
+
diperiksa di mana saja.
|
|
40
|
+
|
|
41
|
+
## [3.9.2] - 2026-10-26
|
|
42
|
+
|
|
43
|
+
**Satu setelan aksesibilitas, dan sebuah scrim yang tak terlihat tetapi tetap menangkap tap.**
|
|
44
|
+
Pemilik app ronda melaporkan dua gejala di iPhone 7 yang tampak terpisah: layar tinggal redup
|
|
45
|
+
sesudah drawer ditutup, dan setiap navigasi butuh dua ketukan. Keduanya satu sebab, dan yang
|
|
46
|
+
memecahkannya dua foto dari perangkat yang sama, identik kecuali Reduce Motion.
|
|
47
|
+
|
|
48
|
+
Dengan setelan itu menyala, transisi terhitung melaporkan `opacity 0.000001s` dan backdrop diam di
|
|
49
|
+
`opacity 0` serta `visibility hidden` selama tiga detik, dengan kelas `--nav-open` hadir di setiap
|
|
50
|
+
sampel. Dengan setelan itu mati, deret yang sama berjalan 0.87 lalu 1.00. WebKit memaksa durasi
|
|
51
|
+
transisi ke satu mikrodetik di bawah Reduce Motion, dan pada durasi itu transisinya tidak pernah
|
|
52
|
+
berjalan: propertinya tersangkut di nilai awal. Bukan lambat, tidak pernah mulai.
|
|
53
|
+
|
|
54
|
+
### Fixed
|
|
55
|
+
- **`.fdy-app__backdrop` dinetralkan di bawah `prefers-reduced-motion`** (`#088`). Aturan yang sama
|
|
56
|
+
mengatur `pointer-events` bersama `opacity`, jadi yang tersangkut bukan sekadar tampilan: foto
|
|
57
|
+
perangkat merekam `pointer-events: auto` berdampingan dengan `visibility: hidden`, yaitu scrim
|
|
58
|
+
tak terlihat yang tetap menangkap tap. Ketukan pertama pengguna hilang di sana dan ketukan kedua
|
|
59
|
+
yang bekerja. Sidebar sudah dinetralkan sejak lama; backdrop terlewat, dan backdrop yang
|
|
60
|
+
menggerbangi interaksi.
|
|
61
|
+
- **`.fdy-chart__tip` ikut dinetralkan.** Bentuk cacat yang sama persis, ditemukan oleh audit yang
|
|
62
|
+
sama: transisi yang juga mengatur `pointer-events`, tanpa pagar reduced-motion. `.fdy-tooltip`
|
|
63
|
+
sudah aman sejak lama.
|
|
64
|
+
- **Penjaga yang mengunci pelajarannya, bukan kasusnya.** Setiap aturan yang mentransisikan
|
|
65
|
+
properti sambil mengatur `pointer-events` wajib punya pasangannya di dalam blok
|
|
66
|
+
`prefers-reduced-motion: reduce`. Statis, seperti penjaga `visibility` di 3.9.1, dan karena
|
|
67
|
+
alasan yang sama: mesin yang bisa melihat cacat ini bukan mesin yang menjalankan uji kit, dan di
|
|
68
|
+
sini bahkan bukan mesin mana pun tanpa setelan aksesibilitas itu menyala.
|
|
69
|
+
|
|
12
70
|
## [3.9.1] - 2026-10-26
|
|
13
71
|
|
|
14
72
|
**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
|
[](https://cahyo-dimas.github.io/freeday-ui-kit/)
|
|
8
|
-
[](https://github.com/cahyo-dimas/freeday-ui-kit/tree/v3.9.3)
|
|
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
|
[](https://cahyo-dimas.github.io/freeday-ui-kit/)
|
|
8
|
-
[](https://github.com/cahyo-dimas/freeday-ui-kit/tree/v3.9.3)
|
|
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`.
|
package/dist/freeday.bundle.css
CHANGED
|
@@ -1408,7 +1408,27 @@ 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
|
-
|
|
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){
|
|
1420
|
+
.fdy-app__sidebar{transition:none;}
|
|
1421
|
+
/* KEEMPAT selektor yang mendeklarasikan transisi backdrop, bukan hanya yang paling lemah.
|
|
1422
|
+
`.fdy-app__backdrop` sendirian berspesifisitas (0,1,0) dan kalah dari keadaan terbukanya,
|
|
1423
|
+
`.fdy-app--nav-open .fdy-app__backdrop` (0,2,0), sehingga penetralan ini diam-diam tidak
|
|
1424
|
+
berlaku justru pada saat drawer terbuka, yaitu satu-satunya saat ia penting. Diukur dengan
|
|
1425
|
+
reduced motion diemulasi: tertutup melaporkan `none`, terbuka melaporkan
|
|
1426
|
+
`opacity 1e-06s, visibility 1e-06s`. */
|
|
1427
|
+
.fdy-app__backdrop,
|
|
1428
|
+
.fdy-app--nav-open .fdy-app__backdrop,
|
|
1429
|
+
.fdy-app--nav-overlay .fdy-app__backdrop,
|
|
1430
|
+
.fdy-app--nav-overlay.fdy-app--nav-open .fdy-app__backdrop{transition:none;}
|
|
1431
|
+
}
|
|
1412
1432
|
|
|
1413
1433
|
/* Freeday. App bar (standalone top bar: brand · actions · spacer).
|
|
1414
1434
|
* Distinct from .fdy-app__topbar (which is bound to the shell grid). Use anywhere;
|
|
@@ -2035,6 +2055,12 @@ a { color: var(--color-primary-strong); }
|
|
|
2035
2055
|
.fdy-chart-xy__bar{transition:opacity var(--dur-fast) var(--ease-standard);}
|
|
2036
2056
|
.fdy-chart-xy__band{fill:transparent;cursor:pointer;}
|
|
2037
2057
|
|
|
2058
|
+
/* Sama sebabnya dengan `.fdy-app__backdrop`: transisi yang juga menggerbangi `pointer-events` dapat
|
|
2059
|
+
* tersangkut di nilai awal ketika WebKit memaksa durasinya ke nol di bawah Reduce Motion, dan yang
|
|
2060
|
+
* tersisa adalah elemen tak terlihat yang tetap menangkap tap. Tooltip sudah dinetralkan sejak lama
|
|
2061
|
+
* untuk alasan yang sama; tip chart terlewat. */
|
|
2062
|
+
@media (prefers-reduced-motion:reduce){.fdy-chart__tip{transition:none;}}
|
|
2063
|
+
|
|
2038
2064
|
/* Freeday. Chip (tag / removable filter) */
|
|
2039
2065
|
.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
2066
|
.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,27 @@ 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
|
-
|
|
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){
|
|
243
|
+
.fdy-app__sidebar{transition:none;}
|
|
244
|
+
/* KEEMPAT selektor yang mendeklarasikan transisi backdrop, bukan hanya yang paling lemah.
|
|
245
|
+
`.fdy-app__backdrop` sendirian berspesifisitas (0,1,0) dan kalah dari keadaan terbukanya,
|
|
246
|
+
`.fdy-app--nav-open .fdy-app__backdrop` (0,2,0), sehingga penetralan ini diam-diam tidak
|
|
247
|
+
berlaku justru pada saat drawer terbuka, yaitu satu-satunya saat ia penting. Diukur dengan
|
|
248
|
+
reduced motion diemulasi: tertutup melaporkan `none`, terbuka melaporkan
|
|
249
|
+
`opacity 1e-06s, visibility 1e-06s`. */
|
|
250
|
+
.fdy-app__backdrop,
|
|
251
|
+
.fdy-app--nav-open .fdy-app__backdrop,
|
|
252
|
+
.fdy-app--nav-overlay .fdy-app__backdrop,
|
|
253
|
+
.fdy-app--nav-overlay.fdy-app--nav-open .fdy-app__backdrop{transition:none;}
|
|
254
|
+
}
|
|
235
255
|
|
|
236
256
|
/* Freeday. App bar (standalone top bar: brand · actions · spacer).
|
|
237
257
|
* Distinct from .fdy-app__topbar (which is bound to the shell grid). Use anywhere;
|
|
@@ -858,6 +878,12 @@ a { color: var(--color-primary-strong); }
|
|
|
858
878
|
.fdy-chart-xy__bar{transition:opacity var(--dur-fast) var(--ease-standard);}
|
|
859
879
|
.fdy-chart-xy__band{fill:transparent;cursor:pointer;}
|
|
860
880
|
|
|
881
|
+
/* Sama sebabnya dengan `.fdy-app__backdrop`: transisi yang juga menggerbangi `pointer-events` dapat
|
|
882
|
+
* tersangkut di nilai awal ketika WebKit memaksa durasinya ke nol di bawah Reduce Motion, dan yang
|
|
883
|
+
* tersisa adalah elemen tak terlihat yang tetap menangkap tap. Tooltip sudah dinetralkan sejak lama
|
|
884
|
+
* untuk alasan yang sama; tip chart terlewat. */
|
|
885
|
+
@media (prefers-reduced-motion:reduce){.fdy-chart__tip{transition:none;}}
|
|
886
|
+
|
|
861
887
|
/* Freeday. Chip (tag / removable filter) */
|
|
862
888
|
.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
889
|
.fdy-chip--primary{color:var(--color-primary-strong);background:var(--color-primary-soft);border-color:rgba(var(--color-primary-rgb),.22);}
|
package/docs/getting-started.md
CHANGED
|
@@ -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.
|
|
194
|
+
Lands in `package.json` as `"@cahyo-dimas/freeday": "^3.9.3"` (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
|
@@ -152,4 +152,24 @@
|
|
|
152
152
|
.fdy-app__main{padding:var(--space-5);}
|
|
153
153
|
.fdy-app__topbar{padding:0 var(--space-4);}
|
|
154
154
|
}
|
|
155
|
-
|
|
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){
|
|
164
|
+
.fdy-app__sidebar{transition:none;}
|
|
165
|
+
/* KEEMPAT selektor yang mendeklarasikan transisi backdrop, bukan hanya yang paling lemah.
|
|
166
|
+
`.fdy-app__backdrop` sendirian berspesifisitas (0,1,0) dan kalah dari keadaan terbukanya,
|
|
167
|
+
`.fdy-app--nav-open .fdy-app__backdrop` (0,2,0), sehingga penetralan ini diam-diam tidak
|
|
168
|
+
berlaku justru pada saat drawer terbuka, yaitu satu-satunya saat ia penting. Diukur dengan
|
|
169
|
+
reduced motion diemulasi: tertutup melaporkan `none`, terbuka melaporkan
|
|
170
|
+
`opacity 1e-06s, visibility 1e-06s`. */
|
|
171
|
+
.fdy-app__backdrop,
|
|
172
|
+
.fdy-app--nav-open .fdy-app__backdrop,
|
|
173
|
+
.fdy-app--nav-overlay .fdy-app__backdrop,
|
|
174
|
+
.fdy-app--nav-overlay.fdy-app--nav-open .fdy-app__backdrop{transition:none;}
|
|
175
|
+
}
|
package/src/components/chart.css
CHANGED
|
@@ -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;}}
|