A music player that connects to your cloud/distributed storage.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Slightly improve form ux

+41 -3
+11 -2
src/Applications/UI/Kit.elm
··· 201 201 [ case buttonType of 202 202 IconOnly -> 203 203 inline 204 - [ C.align_middle, C.inline_block, C.leading_none, C.text_0 ] 204 + [ C.align_middle 205 + , C.inline_block 206 + , C.leading_none 207 + , C.pointer_events_none 208 + , C.text_0 209 + ] 205 210 [ child ] 206 211 207 212 _ -> 208 213 inline 209 - [ C.align_middle, C.inline_block, C.leading_none ] 214 + [ C.align_middle 215 + , C.inline_block 216 + , C.leading_none 217 + , C.pointer_events_none 218 + ] 210 219 [ child ] 211 220 ] 212 221
+5 -1
src/Css/Application.css
··· 75 75 textarea:invalid { 76 76 box-shadow: none; 77 77 outline: none; 78 + } 79 + 78 80 79 - &:focus { @apply border-base08; } 81 + form[changed] input:invalid, 82 + form[changed] textarea:invalid { 83 + @apply border-base08; 80 84 } 81 85 82 86
+25
src/Javascript/index.js
··· 265 265 266 266 267 267 268 + // Forms 269 + // ----- 270 + // Adds a `changed` attribute to a form, if the form was "changed". 271 + // This is to help with styling, we don't want to show an error immediately. 272 + 273 + document.addEventListener("keyup", e => { 274 + const form = e.target.closest("form") 275 + if (form) form.setAttribute("changed", "") 276 + }) 277 + 278 + 279 + document.addEventListener("click", e => { 280 + if (e.target.tagName !== "BUTTON") return; 281 + const form = e.target.closest("form") 282 + if (form) form.setAttribute("changed", "") 283 + }) 284 + 285 + 286 + document.addEventListener("submit", e => { 287 + const form = e.target.closest("form") 288 + if (form) form.removeAttribute("changed") 289 + }) 290 + 291 + 292 + 268 293 // Internet Connection 269 294 // ------------------- 270 295