@cahyo-dimas/freeday 3.9.0 → 3.9.1
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 +22 -0
- package/README.id.md +1 -1
- package/README.md +1 -1
- package/dist/freeday.bundle.css +12 -4
- package/dist/freeday.css +12 -4
- package/docs/getting-started.md +1 -1
- package/package.json +1 -1
- package/src/components/app-shell.css +12 -4
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,28 @@ 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.1] - 2026-10-26
|
|
13
|
+
|
|
14
|
+
**Satu properti yang tidak boleh ditransisikan, dan sebuah HP yang membuktikannya.** Sesudah drawer
|
|
15
|
+
ditutup di iPhone 7, scrim-nya tinggal tercat di atas halaman sampai halaman dimuat ulang. Yang
|
|
16
|
+
membuat ini terbaca bukan tebakan melainkan halaman diagnostik yang mencetak gaya terhitung di
|
|
17
|
+
perangkat itu sendiri: `--nav-open` sudah lepas, sidebar sudah kembali ke luar layar,
|
|
18
|
+
`pointer-events` sudah `none`, dan backdrop tetap melaporkan `opacity=1 visibility=visible`. Empat
|
|
19
|
+
dari lima nilai berubah dengan benar, dan yang tertinggal hanya dua.
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
- **`visibility` dijeda, tidak ditransisikan, di `.fdy-app__backdrop`** (`#087`). Mentransisikannya
|
|
23
|
+
sebagai properti beranimasi berdampingan dengan `opacity` membuat Safari kadang tidak pernah
|
|
24
|
+
menjalankan fade yang menyertainya pada arah visible ke hidden, dan elemennya tinggal tercat.
|
|
25
|
+
Tidak selalu, dan ketidakkonsistenan itu yang menunjuk transisi alih-alih keadaan yang salah.
|
|
26
|
+
Polanya kini `visibility 0s linear <durasi>`, yang mengganti nilainya secara diskret: seketika
|
|
27
|
+
saat membuka, sesudah fade selesai saat menutup. Empat aturan, dua di jalur mobile dan dua di
|
|
28
|
+
mode overlay lebar.
|
|
29
|
+
- **Penjaga yang menolak `visibility` berdurasi di mana pun di CSS yang dikirim.** Statis dan bukan
|
|
30
|
+
uji peramban, sebab mesin yang bisa melihat cacat ini bukan mesin yang menjalankan uji kit.
|
|
31
|
+
Chromium menjalankan transisi itu dengan benar, jadi keduaratus enam uji peramban kit tidak akan
|
|
32
|
+
pernah menangkapnya. Bentuk cacat yang sama dengan `#057`, dan ia masuk lewat pintu yang sama.
|
|
33
|
+
|
|
12
34
|
## [3.9.0] - 2026-10-23
|
|
13
35
|
|
|
14
36
|
**Rilis ini dimulai sebagai tiga penambahan dan berakhir dengan lima cacat, dan yang menemukan
|
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.1)
|
|
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.1)
|
|
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
|
@@ -1359,8 +1359,8 @@ a { color: var(--color-primary-strong); }
|
|
|
1359
1359
|
@media (min-width:721px){
|
|
1360
1360
|
.fdy-app--nav-overlay .fdy-app__sidebar{position:fixed;top:0;left:0;bottom:0;height:100dvh;width:16rem;z-index:60;transform:translateX(-100%);box-shadow:var(--shadow-4);transition:transform var(--dur-base) var(--ease-standard);}
|
|
1361
1361
|
.fdy-app--nav-overlay.fdy-app--nav-open .fdy-app__sidebar{transform:translateX(0);}
|
|
1362
|
-
.fdy-app--nav-overlay .fdy-app__backdrop{display:block;position:fixed;inset:0;z-index:55;background:var(--color-scrim);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),visibility var(--dur-base)
|
|
1363
|
-
.fdy-app--nav-overlay.fdy-app--nav-open .fdy-app__backdrop{opacity:1;visibility:visible;pointer-events:auto;}
|
|
1362
|
+
.fdy-app--nav-overlay .fdy-app__backdrop{display:block;position:fixed;inset:0;z-index:55;background:var(--color-scrim);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),visibility 0s linear var(--dur-base);}
|
|
1363
|
+
.fdy-app--nav-overlay.fdy-app--nav-open .fdy-app__backdrop{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--dur-base) var(--ease-standard),visibility 0s linear 0s;}
|
|
1364
1364
|
/* In overlay mode the sidebar is out of flow, so the collapse-to-zero-width rule above must not
|
|
1365
1365
|
also apply — it would fight the transform for the same panel. */
|
|
1366
1366
|
.fdy-app--nav-overlay.fdy-app--nav-collapsed .fdy-app__sidebar{width:16rem;border-right-width:var(--bw);}
|
|
@@ -1389,14 +1389,22 @@ a { color: var(--color-primary-strong); }
|
|
|
1389
1389
|
* out is reloading the page. Reported from a real iPhone X; not reproducible in Chromium
|
|
1390
1390
|
* with either mouse click or `touchscreen.tap()`, which is why no test in this kit or in
|
|
1391
1391
|
* the consuming app had ever caught it. */
|
|
1392
|
+
/* `visibility` DITUNDA, tidak ditransisikan. Mentransisikannya sebagai properti beranimasi membuat
|
|
1393
|
+
* Safari kadang tidak pernah menjalankan fade `opacity` yang menyertainya saat visible -> hidden:
|
|
1394
|
+
* kelas sudah lepas, `pointer-events` sudah `none`, sidebar sudah kembali ke luar layar, dan scrim
|
|
1395
|
+
* itu TINGGAL TERCAT di atas halaman sampai halaman dimuat ulang. Diukur di iPhone 7 lewat halaman
|
|
1396
|
+
* diagnostik yang mencetak gaya terhitungnya: `opacity=1 visibility=visible pointer-events=none`
|
|
1397
|
+
* dengan `--nav-open` sudah false. Chromium menjalankannya dengan benar, jadi tak ada uji peramban
|
|
1398
|
+
* di kit ini yang bisa melihatnya; yang menjaganya penjaga bentuk CSS di test/css.test.mjs.
|
|
1399
|
+
* Dengan jeda, `visibility` berganti diskret: seketika saat membuka, sesudah fade saat menutup. */
|
|
1392
1400
|
.fdy-app__backdrop{display:none;cursor:pointer;}
|
|
1393
1401
|
@media (max-width:720px){
|
|
1394
1402
|
.fdy-app__sidebar{position:fixed;top:0;left:0;bottom:0;height:100dvh;width:16rem;z-index:60;transform:translateX(-100%);transition:transform var(--dur-base) var(--ease-standard);box-shadow:var(--shadow-4);}
|
|
1395
1403
|
.fdy-app--nav-open .fdy-app__sidebar{transform:translateX(0);}
|
|
1396
1404
|
/* --color-scrim, not a literal: this was the last raw colour left in a component stylesheet, and
|
|
1397
1405
|
it also means the drawer behind the nav dims exactly like every other overlay in the kit. */
|
|
1398
|
-
.fdy-app__backdrop{display:block;position:fixed;inset:0;z-index:55;background:var(--color-scrim);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),visibility var(--dur-base)
|
|
1399
|
-
.fdy-app--nav-open .fdy-app__backdrop{opacity:1;visibility:visible;pointer-events:auto;}
|
|
1406
|
+
.fdy-app__backdrop{display:block;position:fixed;inset:0;z-index:55;background:var(--color-scrim);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),visibility 0s linear var(--dur-base);}
|
|
1407
|
+
.fdy-app--nav-open .fdy-app__backdrop{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--dur-base) var(--ease-standard),visibility 0s linear 0s;}
|
|
1400
1408
|
.fdy-app__main{padding:var(--space-5);}
|
|
1401
1409
|
.fdy-app__topbar{padding:0 var(--space-4);}
|
|
1402
1410
|
}
|
package/dist/freeday.css
CHANGED
|
@@ -182,8 +182,8 @@ a { color: var(--color-primary-strong); }
|
|
|
182
182
|
@media (min-width:721px){
|
|
183
183
|
.fdy-app--nav-overlay .fdy-app__sidebar{position:fixed;top:0;left:0;bottom:0;height:100dvh;width:16rem;z-index:60;transform:translateX(-100%);box-shadow:var(--shadow-4);transition:transform var(--dur-base) var(--ease-standard);}
|
|
184
184
|
.fdy-app--nav-overlay.fdy-app--nav-open .fdy-app__sidebar{transform:translateX(0);}
|
|
185
|
-
.fdy-app--nav-overlay .fdy-app__backdrop{display:block;position:fixed;inset:0;z-index:55;background:var(--color-scrim);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),visibility var(--dur-base)
|
|
186
|
-
.fdy-app--nav-overlay.fdy-app--nav-open .fdy-app__backdrop{opacity:1;visibility:visible;pointer-events:auto;}
|
|
185
|
+
.fdy-app--nav-overlay .fdy-app__backdrop{display:block;position:fixed;inset:0;z-index:55;background:var(--color-scrim);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),visibility 0s linear var(--dur-base);}
|
|
186
|
+
.fdy-app--nav-overlay.fdy-app--nav-open .fdy-app__backdrop{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--dur-base) var(--ease-standard),visibility 0s linear 0s;}
|
|
187
187
|
/* In overlay mode the sidebar is out of flow, so the collapse-to-zero-width rule above must not
|
|
188
188
|
also apply — it would fight the transform for the same panel. */
|
|
189
189
|
.fdy-app--nav-overlay.fdy-app--nav-collapsed .fdy-app__sidebar{width:16rem;border-right-width:var(--bw);}
|
|
@@ -212,14 +212,22 @@ a { color: var(--color-primary-strong); }
|
|
|
212
212
|
* out is reloading the page. Reported from a real iPhone X; not reproducible in Chromium
|
|
213
213
|
* with either mouse click or `touchscreen.tap()`, which is why no test in this kit or in
|
|
214
214
|
* the consuming app had ever caught it. */
|
|
215
|
+
/* `visibility` DITUNDA, tidak ditransisikan. Mentransisikannya sebagai properti beranimasi membuat
|
|
216
|
+
* Safari kadang tidak pernah menjalankan fade `opacity` yang menyertainya saat visible -> hidden:
|
|
217
|
+
* kelas sudah lepas, `pointer-events` sudah `none`, sidebar sudah kembali ke luar layar, dan scrim
|
|
218
|
+
* itu TINGGAL TERCAT di atas halaman sampai halaman dimuat ulang. Diukur di iPhone 7 lewat halaman
|
|
219
|
+
* diagnostik yang mencetak gaya terhitungnya: `opacity=1 visibility=visible pointer-events=none`
|
|
220
|
+
* dengan `--nav-open` sudah false. Chromium menjalankannya dengan benar, jadi tak ada uji peramban
|
|
221
|
+
* di kit ini yang bisa melihatnya; yang menjaganya penjaga bentuk CSS di test/css.test.mjs.
|
|
222
|
+
* Dengan jeda, `visibility` berganti diskret: seketika saat membuka, sesudah fade saat menutup. */
|
|
215
223
|
.fdy-app__backdrop{display:none;cursor:pointer;}
|
|
216
224
|
@media (max-width:720px){
|
|
217
225
|
.fdy-app__sidebar{position:fixed;top:0;left:0;bottom:0;height:100dvh;width:16rem;z-index:60;transform:translateX(-100%);transition:transform var(--dur-base) var(--ease-standard);box-shadow:var(--shadow-4);}
|
|
218
226
|
.fdy-app--nav-open .fdy-app__sidebar{transform:translateX(0);}
|
|
219
227
|
/* --color-scrim, not a literal: this was the last raw colour left in a component stylesheet, and
|
|
220
228
|
it also means the drawer behind the nav dims exactly like every other overlay in the kit. */
|
|
221
|
-
.fdy-app__backdrop{display:block;position:fixed;inset:0;z-index:55;background:var(--color-scrim);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),visibility var(--dur-base)
|
|
222
|
-
.fdy-app--nav-open .fdy-app__backdrop{opacity:1;visibility:visible;pointer-events:auto;}
|
|
229
|
+
.fdy-app__backdrop{display:block;position:fixed;inset:0;z-index:55;background:var(--color-scrim);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),visibility 0s linear var(--dur-base);}
|
|
230
|
+
.fdy-app--nav-open .fdy-app__backdrop{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--dur-base) var(--ease-standard),visibility 0s linear 0s;}
|
|
223
231
|
.fdy-app__main{padding:var(--space-5);}
|
|
224
232
|
.fdy-app__topbar{padding:0 var(--space-4);}
|
|
225
233
|
}
|
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.1"` (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
|
@@ -103,8 +103,8 @@
|
|
|
103
103
|
@media (min-width:721px){
|
|
104
104
|
.fdy-app--nav-overlay .fdy-app__sidebar{position:fixed;top:0;left:0;bottom:0;height:100dvh;width:16rem;z-index:60;transform:translateX(-100%);box-shadow:var(--shadow-4);transition:transform var(--dur-base) var(--ease-standard);}
|
|
105
105
|
.fdy-app--nav-overlay.fdy-app--nav-open .fdy-app__sidebar{transform:translateX(0);}
|
|
106
|
-
.fdy-app--nav-overlay .fdy-app__backdrop{display:block;position:fixed;inset:0;z-index:55;background:var(--color-scrim);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),visibility var(--dur-base)
|
|
107
|
-
.fdy-app--nav-overlay.fdy-app--nav-open .fdy-app__backdrop{opacity:1;visibility:visible;pointer-events:auto;}
|
|
106
|
+
.fdy-app--nav-overlay .fdy-app__backdrop{display:block;position:fixed;inset:0;z-index:55;background:var(--color-scrim);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),visibility 0s linear var(--dur-base);}
|
|
107
|
+
.fdy-app--nav-overlay.fdy-app--nav-open .fdy-app__backdrop{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--dur-base) var(--ease-standard),visibility 0s linear 0s;}
|
|
108
108
|
/* In overlay mode the sidebar is out of flow, so the collapse-to-zero-width rule above must not
|
|
109
109
|
also apply — it would fight the transform for the same panel. */
|
|
110
110
|
.fdy-app--nav-overlay.fdy-app--nav-collapsed .fdy-app__sidebar{width:16rem;border-right-width:var(--bw);}
|
|
@@ -133,14 +133,22 @@
|
|
|
133
133
|
* out is reloading the page. Reported from a real iPhone X; not reproducible in Chromium
|
|
134
134
|
* with either mouse click or `touchscreen.tap()`, which is why no test in this kit or in
|
|
135
135
|
* the consuming app had ever caught it. */
|
|
136
|
+
/* `visibility` DITUNDA, tidak ditransisikan. Mentransisikannya sebagai properti beranimasi membuat
|
|
137
|
+
* Safari kadang tidak pernah menjalankan fade `opacity` yang menyertainya saat visible -> hidden:
|
|
138
|
+
* kelas sudah lepas, `pointer-events` sudah `none`, sidebar sudah kembali ke luar layar, dan scrim
|
|
139
|
+
* itu TINGGAL TERCAT di atas halaman sampai halaman dimuat ulang. Diukur di iPhone 7 lewat halaman
|
|
140
|
+
* diagnostik yang mencetak gaya terhitungnya: `opacity=1 visibility=visible pointer-events=none`
|
|
141
|
+
* dengan `--nav-open` sudah false. Chromium menjalankannya dengan benar, jadi tak ada uji peramban
|
|
142
|
+
* di kit ini yang bisa melihatnya; yang menjaganya penjaga bentuk CSS di test/css.test.mjs.
|
|
143
|
+
* Dengan jeda, `visibility` berganti diskret: seketika saat membuka, sesudah fade saat menutup. */
|
|
136
144
|
.fdy-app__backdrop{display:none;cursor:pointer;}
|
|
137
145
|
@media (max-width:720px){
|
|
138
146
|
.fdy-app__sidebar{position:fixed;top:0;left:0;bottom:0;height:100dvh;width:16rem;z-index:60;transform:translateX(-100%);transition:transform var(--dur-base) var(--ease-standard);box-shadow:var(--shadow-4);}
|
|
139
147
|
.fdy-app--nav-open .fdy-app__sidebar{transform:translateX(0);}
|
|
140
148
|
/* --color-scrim, not a literal: this was the last raw colour left in a component stylesheet, and
|
|
141
149
|
it also means the drawer behind the nav dims exactly like every other overlay in the kit. */
|
|
142
|
-
.fdy-app__backdrop{display:block;position:fixed;inset:0;z-index:55;background:var(--color-scrim);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),visibility var(--dur-base)
|
|
143
|
-
.fdy-app--nav-open .fdy-app__backdrop{opacity:1;visibility:visible;pointer-events:auto;}
|
|
150
|
+
.fdy-app__backdrop{display:block;position:fixed;inset:0;z-index:55;background:var(--color-scrim);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),visibility 0s linear var(--dur-base);}
|
|
151
|
+
.fdy-app--nav-open .fdy-app__backdrop{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--dur-base) var(--ease-standard),visibility 0s linear 0s;}
|
|
144
152
|
.fdy-app__main{padding:var(--space-5);}
|
|
145
153
|
.fdy-app__topbar{padding:0 var(--space-4);}
|
|
146
154
|
}
|