@cahyo-dimas/freeday 3.9.3 → 3.9.4
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 +31 -0
- package/README.id.md +1 -1
- package/README.md +1 -1
- package/dist/freeday.bundle.css +26 -0
- package/dist/freeday.css +26 -0
- package/docs/getting-started.md +1 -1
- package/package.json +1 -1
- package/src/base.css +26 -0
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,37 @@ 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.4] - 2026-10-26
|
|
13
|
+
|
|
14
|
+
**Sembilan dari lima puluh enam, dan empat puluh delapan sisanya ranjau.** Tiga rilis berturut-turut
|
|
15
|
+
menambal transisi yang tersangkut di bawah Reduce Motion satu per satu: scrim drawer di 3.9.2, yang
|
|
16
|
+
spesifisitasnya salah dan diperbaiki di 3.9.3, lalu centang checkbox yang dilaporkan dari perangkat
|
|
17
|
+
yang sama. Yang ketiga itu lolos dari penjaga 3.9.3 karena penjaga itu hanya memeriksa transisi yang
|
|
18
|
+
menyentuh `pointer-events`, dan centang checkbox tidak menyentuhnya: ia cuma `transform: scale(0)`
|
|
19
|
+
menjadi `scale(1)`. Inputnya benar-benar tercentang selama ini; centangnya yang tidak pernah
|
|
20
|
+
digambar.
|
|
21
|
+
|
|
22
|
+
Hitungannya yang menghentikan pola menambal: kit mentransisikan sesuatu di 56 selektor dan
|
|
23
|
+
menetralkan 9.
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
- **Setiap transisi dinetralkan di bawah `prefers-reduced-motion`** (`#090`), satu aturan di
|
|
27
|
+
`src/base.css` alih-alih daftar yang dipelihara tangan. WebKit menjepit durasi transisi ke
|
|
28
|
+
0.000001s ketika setelan itu menyala, dan pada durasi itu transisinya tidak pernah berjalan:
|
|
29
|
+
propertinya tersangkut di nilai awal. Akibatnya bukan "kurang halus" melainkan keadaan yang salah
|
|
30
|
+
di layar.
|
|
31
|
+
- **`transition:none`, bukan durasi mungil.** Reset aksesibilitas yang beredar luas memakai
|
|
32
|
+
`transition-duration: 0.01ms` supaya `transitionend` tetap menyala, dan durasi mungil itu persis
|
|
33
|
+
bentuk yang menyangkut di WebKit; reset itu akan memperburuk cacat ini. Satu-satunya yang pernah
|
|
34
|
+
menunggu `transitionend` di kit ini adalah toast, dan ia sudah punya cadangan
|
|
35
|
+
`setTimeout(finish, 400)`.
|
|
36
|
+
- **Animasi sengaja tidak disentuh.** Kit memasangnya lewat `prefers-reduced-motion: no-preference`,
|
|
37
|
+
jadi ia opt-in dan sudah mati di sana, sementara `.fdy-spinner` dan `.fdy-progress` punya
|
|
38
|
+
perlakuan bernuansa sendiri yang memang harus bertahan.
|
|
39
|
+
- **Penjaganya menuntut aturan menyeluruhnya ada**, dan menolak bentuk durasi-mungil. Dua penjaga
|
|
40
|
+
sebelumnya hijau untuk kit yang masih punya ranjau; yang ini tidak bisa, sebab ia tidak
|
|
41
|
+
mendaftar selektor.
|
|
42
|
+
|
|
12
43
|
## [3.9.3] - 2026-10-26
|
|
13
44
|
|
|
14
45
|
**Perbaikan 3.9.2 tidak pernah bisa bekerja, dan penjaganya hijau untuknya.** Penetralan
|
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.4)
|
|
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.4)
|
|
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
|
@@ -1217,6 +1217,32 @@ a { color: var(--color-primary-strong); }
|
|
|
1217
1217
|
*, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
|
|
1218
1218
|
}
|
|
1219
1219
|
|
|
1220
|
+
/* ===========================================================================
|
|
1221
|
+
* Reduce Motion: SETIAP transisi dinetralkan, bukan daftar yang dipelihara tangan.
|
|
1222
|
+
*
|
|
1223
|
+
* WebKit menjepit durasi transisi ke 0.000001s ketika setelan itu menyala, dan pada durasi itu
|
|
1224
|
+
* transisinya tidak pernah berjalan: propertinya tersangkut di nilai AWAL, selamanya. Akibatnya
|
|
1225
|
+
* bukan "kurang halus" melainkan keadaan yang salah di layar. Terukur di iPhone 7 tiga kali:
|
|
1226
|
+
* scrim drawer yang tinggal gelap sambil tetap menangkap tap, dan centang checkbox yang tak
|
|
1227
|
+
* pernah digambar padahal inputnya benar-benar tercentang.
|
|
1228
|
+
*
|
|
1229
|
+
* Sebelum aturan ini, kit menetralkan sembilan selektor dari lima puluh enam yang mentransisikan
|
|
1230
|
+
* sesuatu. Empat puluh delapan sisanya ranjau yang menunggu, dan tiga sudah meledak di tangan satu
|
|
1231
|
+
* pemilik app. Menambal yang keempat adalah cara kita sampai di sini.
|
|
1232
|
+
*
|
|
1233
|
+
* `transition: none`, BUKAN `transition-duration: 0.01ms` yang biasa beredar sebagai reset
|
|
1234
|
+
* aksesibilitas: durasi mungil itu persis bentuk yang menyangkut di WebKit. Satu-satunya yang
|
|
1235
|
+
* pernah menunggu `transitionend` di kit ini adalah toast, dan ia sudah punya cadangan
|
|
1236
|
+
* `setTimeout(finish, 400)` untuk kasus event itu tak pernah datang.
|
|
1237
|
+
*
|
|
1238
|
+
* ANIMASI sengaja tidak disentuh: kit memasangnya lewat `prefers-reduced-motion: no-preference`,
|
|
1239
|
+
* jadi ia opt-in dan sudah mati di sini, sementara `--spinner` dan `--progress` punya perlakuan
|
|
1240
|
+
* bernuansa sendiri yang memang harus bertahan.
|
|
1241
|
+
* ======================================================================== */
|
|
1242
|
+
@media (prefers-reduced-motion:reduce){
|
|
1243
|
+
*,*::before,*::after{transition:none !important;}
|
|
1244
|
+
}
|
|
1245
|
+
|
|
1220
1246
|
/* Freeday. Accordion (native <details>/<summary>, zero-JS) */
|
|
1221
1247
|
/* position:relative, containing block for out-of-flow panel content (see base.css). NOT redundant
|
|
1222
1248
|
with the panel's reveal animation: that animation gives the panel a transform (which happens to
|
package/dist/freeday.css
CHANGED
|
@@ -40,6 +40,32 @@ a { color: var(--color-primary-strong); }
|
|
|
40
40
|
*, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
/* ===========================================================================
|
|
44
|
+
* Reduce Motion: SETIAP transisi dinetralkan, bukan daftar yang dipelihara tangan.
|
|
45
|
+
*
|
|
46
|
+
* WebKit menjepit durasi transisi ke 0.000001s ketika setelan itu menyala, dan pada durasi itu
|
|
47
|
+
* transisinya tidak pernah berjalan: propertinya tersangkut di nilai AWAL, selamanya. Akibatnya
|
|
48
|
+
* bukan "kurang halus" melainkan keadaan yang salah di layar. Terukur di iPhone 7 tiga kali:
|
|
49
|
+
* scrim drawer yang tinggal gelap sambil tetap menangkap tap, dan centang checkbox yang tak
|
|
50
|
+
* pernah digambar padahal inputnya benar-benar tercentang.
|
|
51
|
+
*
|
|
52
|
+
* Sebelum aturan ini, kit menetralkan sembilan selektor dari lima puluh enam yang mentransisikan
|
|
53
|
+
* sesuatu. Empat puluh delapan sisanya ranjau yang menunggu, dan tiga sudah meledak di tangan satu
|
|
54
|
+
* pemilik app. Menambal yang keempat adalah cara kita sampai di sini.
|
|
55
|
+
*
|
|
56
|
+
* `transition: none`, BUKAN `transition-duration: 0.01ms` yang biasa beredar sebagai reset
|
|
57
|
+
* aksesibilitas: durasi mungil itu persis bentuk yang menyangkut di WebKit. Satu-satunya yang
|
|
58
|
+
* pernah menunggu `transitionend` di kit ini adalah toast, dan ia sudah punya cadangan
|
|
59
|
+
* `setTimeout(finish, 400)` untuk kasus event itu tak pernah datang.
|
|
60
|
+
*
|
|
61
|
+
* ANIMASI sengaja tidak disentuh: kit memasangnya lewat `prefers-reduced-motion: no-preference`,
|
|
62
|
+
* jadi ia opt-in dan sudah mati di sini, sementara `--spinner` dan `--progress` punya perlakuan
|
|
63
|
+
* bernuansa sendiri yang memang harus bertahan.
|
|
64
|
+
* ======================================================================== */
|
|
65
|
+
@media (prefers-reduced-motion:reduce){
|
|
66
|
+
*,*::before,*::after{transition:none !important;}
|
|
67
|
+
}
|
|
68
|
+
|
|
43
69
|
/* Freeday. Accordion (native <details>/<summary>, zero-JS) */
|
|
44
70
|
/* position:relative, containing block for out-of-flow panel content (see base.css). NOT redundant
|
|
45
71
|
with the panel's reveal animation: that animation gives the panel a transform (which happens to
|
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.4"` (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
package/src/base.css
CHANGED
|
@@ -38,3 +38,29 @@ a { color: var(--color-primary-strong); }
|
|
|
38
38
|
@media (prefers-reduced-motion: reduce) {
|
|
39
39
|
*, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
|
|
40
40
|
}
|
|
41
|
+
|
|
42
|
+
/* ===========================================================================
|
|
43
|
+
* Reduce Motion: SETIAP transisi dinetralkan, bukan daftar yang dipelihara tangan.
|
|
44
|
+
*
|
|
45
|
+
* WebKit menjepit durasi transisi ke 0.000001s ketika setelan itu menyala, dan pada durasi itu
|
|
46
|
+
* transisinya tidak pernah berjalan: propertinya tersangkut di nilai AWAL, selamanya. Akibatnya
|
|
47
|
+
* bukan "kurang halus" melainkan keadaan yang salah di layar. Terukur di iPhone 7 tiga kali:
|
|
48
|
+
* scrim drawer yang tinggal gelap sambil tetap menangkap tap, dan centang checkbox yang tak
|
|
49
|
+
* pernah digambar padahal inputnya benar-benar tercentang.
|
|
50
|
+
*
|
|
51
|
+
* Sebelum aturan ini, kit menetralkan sembilan selektor dari lima puluh enam yang mentransisikan
|
|
52
|
+
* sesuatu. Empat puluh delapan sisanya ranjau yang menunggu, dan tiga sudah meledak di tangan satu
|
|
53
|
+
* pemilik app. Menambal yang keempat adalah cara kita sampai di sini.
|
|
54
|
+
*
|
|
55
|
+
* `transition: none`, BUKAN `transition-duration: 0.01ms` yang biasa beredar sebagai reset
|
|
56
|
+
* aksesibilitas: durasi mungil itu persis bentuk yang menyangkut di WebKit. Satu-satunya yang
|
|
57
|
+
* pernah menunggu `transitionend` di kit ini adalah toast, dan ia sudah punya cadangan
|
|
58
|
+
* `setTimeout(finish, 400)` untuk kasus event itu tak pernah datang.
|
|
59
|
+
*
|
|
60
|
+
* ANIMASI sengaja tidak disentuh: kit memasangnya lewat `prefers-reduced-motion: no-preference`,
|
|
61
|
+
* jadi ia opt-in dan sudah mati di sini, sementara `--spinner` dan `--progress` punya perlakuan
|
|
62
|
+
* bernuansa sendiri yang memang harus bertahan.
|
|
63
|
+
* ======================================================================== */
|
|
64
|
+
@media (prefers-reduced-motion:reduce){
|
|
65
|
+
*,*::before,*::after{transition:none !important;}
|
|
66
|
+
}
|