home.social

#ui — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #ui, aggregated by home.social.

  1. This week I tried to log in to Deezer.

    They asked me to wait 20 seconds to prove I’m not a robot.

    I’m genuinely impressed by how bad that UX feels. Deezer is so outrageously bad that it almost makes Spotify look decent.

    Don’t build products like this. Aim for interfaces where users do nothing and immediately get what they want.

    #ux #tips #rant #ui #frontend #product #programming #security

  2. This week I tried to log in to Deezer.

    They asked me to wait 20 seconds to prove I’m not a robot.

    I’m genuinely impressed by how bad that UX feels. Deezer is so outrageously bad that it almost makes Spotify look decent.

    Don’t build products like this. Aim for interfaces where users do nothing and immediately get what they want.

    #ux #tips #rant #ui #frontend #product #programming #security

  3. This week I tried to log in to Deezer.

    They asked me to wait 20 seconds to prove I’m not a robot.

    I’m genuinely impressed by how bad that UX feels. Deezer is so outrageously bad that it almost makes Spotify look decent.

    Don’t build products like this. Aim for interfaces where users do nothing and immediately get what they want.

    #ux #tips #rant #ui #frontend #product #programming #security

  4. To my opinion this is the most ugly iOS app Apple ever made. Underlying 3 different surfaces with a button that triggers context menu 🤮

    #apple #ui

  5. Does nobody see stuff like this? On the left is before I click it. On the right, what it says after I click it.

    #ui #ux

  6. Ike Saunders describe a CSS filter for adding aesthetic noise dithering to images (without saving bandwidth).

    ikesau.co/blog/dithering-with-

    #css #webdev #ui

  7. Issue #121 of the UI Dev Newsletter is out!
    In this issue: Chrome’s silent AI install, CSS dithering magic, and why programming still sucks.

    silvestar.codes/side-projects/

    #newsletter #webdev #ui

  8. The train's automated PA system just announced that we're waiting for a green light. That's great, but what bugs me is that preceding the announcement were the same three dings that come before the announcement of the next station. From a UI point of view that's not great. Keep standard station announcements and important information under separate notification sounds, please.
    #HCI #UX #UI

  9. I am in need of someone to give me a high-level website design for a service I'm developing. I don't need a bunch of web development, just a set of wireframes and design elements (color palette, general shapes and page layout, maybe some icons). Can anyone recommend someone?
    TIA!

    #webdesign #design #webapp #ui #ux

  10. trying to get better at my muscle memory with key placement and I had an idea for a little piano game where random keys drop like "typing of the dead" mixed with DDR #GameDev #ui #music

  11. Jim Nielsen demonstrates how replacing JavaScript with HTML navigation and CSS view transitions simplifies development.

    blog.jim-nielsen.com/2026/out-

    #html #webdev #ui

  12. New and improved Android Auto UI that adapts to different types of headunits in cars.

    #AndroidAuto #UI #AndroidDev

  13. You are facing a bad user interface if, to press a button in a dialogue, you have to move your hand to grab a mouse.

    #UI #UX

  14. Stephen Beitzel Approached us to design the icon for his helpful macOS desktop utility that lets users route multiple email attachments to their destinations quickly and easily.

    No project is too big or too small. Let us help with yours. iconfactory.com

    #AppDesign #macOS #UI #dev

  15. In case you haven't seen, here are more screenshots of Google Wallet's passes card design.

    Not everyone likes them because of the color choices. The red one looks horrible, you will think twice before opening the pass once you see it.

    Just hoping they fix the color choices before starting rollout.

    #uiux #google #wallet #passes #ui

  16. In case you haven't seen, here are more screenshots of Google Wallet's passes card design.

    Not everyone likes them because of the color choices. The red one looks horrible, you will think twice before opening the pass once you see it.

    Just hoping they fix the color choices before starting rollout.

    #uiux #google #wallet #passes #ui

  17. In case you haven't seen, here are more screenshots of Google Wallet's passes card design.

    Not everyone likes them because of the color choices. The red one looks horrible, you will think twice before opening the pass once you see it.

    Just hoping they fix the color choices before starting rollout.

    #uiux #google #wallet #passes #ui

  18. In case you haven't seen, here are more screenshots of Google Wallet's passes card design.

    Not everyone likes them because of the color choices. The red one looks horrible, you will think twice before opening the pass once you see it.

    Just hoping they fix the color choices before starting rollout.

    #uiux #google #wallet #passes #ui

  19. Comment concevoir des interfaces utilisables par les personnes en situation de handicap ?

    C’est tout l’objectif de notre formation au design accessible, du 30 juin au 1er juillet.

    Pendant deux jours, vous alternerez entre théorie et cas pratiques pour intégrer l’accessibilité dès la phase de conception de vos design grâce à des méthodes claires et de nombreuses ressources :

    a42.fr/formation-design

    #a11y #accessibilité #UX #UI

  20. #Mastodon #GlitchSoc #UI #UX #FAIL #Firefox

    А вот эта хуйня (в многоколоночном режиме) мне совсем-совсем не по нраву! 😡

  21. via css-tricks...
    You Might Not Need…JavaScript?
    Remember You Might Not Need jQuery? Pavel Laptev’s The Great CSS Expansion has a similar vibe, noting CSS alternatives to JavaScript libraries (and JavaScript in general) that are smaller and more performant.

    #css #js #frontend #ui

    blog.gitbutler.com/the-great-c

  22. LazyWeb: 257 тысяч экранов реальных приложений как контекст для AI-агентов

    Если вы хоть раз просили Claude Code, Cursor или Codex сделать интерфейс — то знаете эту проблему. Код модель пишет неплохо, но визуально результат выглядит как “сайт, сгенерированный AI”. Одинаковые карточки, одинаковые градиенты, одинаковый набор паттернов из топа поиска. Несколько недель назад вышел LazyWeb — MCP-сервер, который даёт агенту 257k экранов реальных приложений как визуальный контекст. Установил, прогнал на pricing-странице для своего пет-проекта, разбираю, что получилось.

    habr.com/ru/articles/1033376/

    #MCP #Claude_Code #AIагенты #дизайнресёрч #UI #LazyWeb #Cursor #design_system

  23. #ReleaseFriday Triggered by a recent feature proposal[1], I went ahead and polished & published a closely related, already work-in-progress (but still private) feature in thi.ng/rdom to support something I call "bare lists"[2]. I've started working on this for another project last year, but needed to do more testing (which I think have sufficiently done by now).

    These "bare" lists are managed reactive control components which attach items directly to the list's parent DOM element instead of first creating a wrapper/container element for the items and so avoid introducing additional nesting.

    There're many use cases where this additional nesting was a real problem with the earlier approach, e.g. in containers with CSS grid or flex layout, tables, or generally situations where we want to have static & reactive list items as true siblings...

    The new version of thi.ng/rdom is technically a breaking change (sorry!), but the actual changes required (for you) are tiny and purely limited to the $list() and $klist() component function calls, which are now accepting a parameter object instead of positional args for the different possible behaviors. Of course, lists with item wrapper elements can still be created too, just as before (but via new args).

    I've updated & tested all existing examples impacted by this change and also created a new fully commented example project (example #187) to illustrate these "bare" lists in situ (check the DOM inspector to see the shallow structure and how updates are applied):

    Demo:
    demo.thi.ng/umbrella/rdom-bare

    Source code:
    codeberg.org/thi.ng/umbrella/s

    [1] github.com/thi-ng/umbrella/discussions/562
    [2] My use of "list" here is generic, not limited to <ul> or <ol>...

    #ThingUmbrella #Reactive #UI #OpenSource #TypeScript #JavaScript #WebDev

  24. #ReleaseFriday Triggered by a recent feature proposal[1], I went ahead and polished & published a closely related, already work-in-progress (but still private) feature in thi.ng/rdom to support something I call "bare lists"[2]. I've started working on this for another project last year, but needed to do more testing (which I think have sufficiently done by now).

    These "bare" lists are managed reactive control components which attach items directly to the list's parent DOM element instead of first creating a wrapper/container element for the items and so avoid introducing additional nesting.

    There're many use cases where this additional nesting was a real problem with the earlier approach, e.g. in containers with CSS grid or flex layout, tables, or generally situations where we want to have static & reactive list items as true siblings...

    The new version of thi.ng/rdom is technically a breaking change (sorry!), but the actual changes required (for you) are tiny and purely limited to the $list() and $klist() component function calls, which are now accepting a parameter object instead of positional args for the different possible behaviors. Of course, lists with item wrapper elements can still be created too, just as before (but via new args).

    I've updated & tested all existing examples impacted by this change and also created a new fully commented example project (example #187) to illustrate these "bare" lists in situ (check the DOM inspector to see the shallow structure and how updates are applied):

    Demo:
    demo.thi.ng/umbrella/rdom-bare

    Source code:
    codeberg.org/thi.ng/umbrella/s

    [1] github.com/thi-ng/umbrella/discussions/562
    [2] My use of "list" here is generic, not limited to <ul> or <ol>...

    #ThingUmbrella #Reactive #UI #OpenSource #TypeScript #JavaScript #WebDev

  25. #ReleaseFriday Triggered by a recent feature proposal[1], I went ahead and polished & published a closely related, already work-in-progress (but still private) feature in thi.ng/rdom to support something I call "bare lists"[2]. I've started working on this for another project last year, but needed to do more testing (which I think have sufficiently done by now).

    These "bare" lists are managed reactive control components which attach items directly to the list's parent DOM element instead of first creating a wrapper/container element for the items and so avoid introducing additional nesting.

    There're many use cases where this additional nesting was a real problem with the earlier approach, e.g. in containers with CSS grid or flex layout, tables, or generally situations where we want to have static & reactive list items as true siblings...

    The new version of thi.ng/rdom is technically a breaking change (sorry!), but the actual changes required (for you) are tiny and purely limited to the $list() and $klist() component function calls, which are now accepting a parameter object instead of positional args for the different possible behaviors. Of course, lists with item wrapper elements can still be created too, just as before (but via new args).

    I've updated & tested all existing examples impacted by this change and also created a new fully commented example project (example #187) to illustrate these "bare" lists in situ (check the DOM inspector to see the shallow structure and how updates are applied):

    Demo:
    demo.thi.ng/umbrella/rdom-bare

    Source code:
    codeberg.org/thi.ng/umbrella/s

    [1] github.com/thi-ng/umbrella/discussions/562
    [2] My use of "list" here is generic, not limited to <ul> or <ol>...

    #ThingUmbrella #Reactive #UI #OpenSource #TypeScript #JavaScript #WebDev

  26. #ReleaseFriday Triggered by a recent feature proposal[1], I went ahead and polished & published a closely related, already work-in-progress (but still private) feature in thi.ng/rdom to support something I call "bare lists"[2]. I've started working on this for another project last year, but needed to do more testing (which I think have sufficiently done by now).

    These "bare" lists are managed reactive control components which attach items directly to the list's parent DOM element instead of first creating a wrapper/container element for the items and so avoid introducing additional nesting.

    There're many use cases where this additional nesting was a real problem with the earlier approach, e.g. in containers with CSS grid or flex layout, tables, or generally situations where we want to have static & reactive list items as true siblings...

    The new version of thi.ng/rdom is technically a breaking change (sorry!), but the actual changes required (for you) are tiny and purely limited to the $list() and $klist() component function calls, which are now accepting a parameter object instead of positional args for the different possible behaviors. Of course, lists with item wrapper elements can still be created too, just as before (but via new args).

    I've updated & tested all existing examples impacted by this change and also created a new fully commented example project (example #187) to illustrate these "bare" lists in situ (check the DOM inspector to see the shallow structure and how updates are applied):

    Demo:
    demo.thi.ng/umbrella/rdom-bare

    Source code:
    codeberg.org/thi.ng/umbrella/s

    [1] github.com/thi-ng/umbrella/discussions/562
    [2] My use of "list" here is generic, not limited to <ul> or <ol>...

    #ThingUmbrella #Reactive #UI #OpenSource #TypeScript #JavaScript #WebDev

  27. #ReleaseFriday Triggered by a recent feature proposal[1], I went ahead and polished & published a closely related, already work-in-progress (but still private) feature in thi.ng/rdom to support something I call "bare lists"[2]. I've started working on this for another project last year, but needed to do more testing (which I think have sufficiently done by now).

    These "bare" lists are managed reactive control components which attach items directly to the list's parent DOM element instead of first creating a wrapper/container element for the items and so avoid introducing additional nesting.

    There're many use cases where this additional nesting was a real problem with the earlier approach, e.g. in containers with CSS grid or flex layout, tables, or generally situations where we want to have static & reactive list items as true siblings...

    The new version of thi.ng/rdom is technically a breaking change (sorry!), but the actual changes required (for you) are tiny and purely limited to the $list() and $klist() component function calls, which are now accepting a parameter object instead of positional args for the different possible behaviors. Of course, lists with item wrapper elements can still be created too, just as before (but via new args).

    I've updated & tested all existing examples impacted by this change and also created a new fully commented example project (example #187) to illustrate these "bare" lists in situ (check the DOM inspector to see the shallow structure and how updates are applied):

    Demo:
    demo.thi.ng/umbrella/rdom-bare

    Source code:
    codeberg.org/thi.ng/umbrella/s

    [1] github.com/thi-ng/umbrella/discussions/562
    [2] My use of "list" here is generic, not limited to <ul> or <ol>...

    #ThingUmbrella #Reactive #UI #OpenSource #TypeScript #JavaScript #WebDev

  28. Оттачиваем UI: 3 микроанимации в сервисе бронирования отелей

    Я дизайнер в сервисе бронирования отелей. Расскажу про 3 анимации, которые мне нравятся и над которыми я долго работал. Показываю что получилось, и как реализовали анимации в коде.

    habr.com/ru/articles/1031872/

    #вебдизайн #интерфейсы #анимация_интерфейсов #веб_анимации #ui #ota

  29. Bug fingerprinting для UI: почему stack trace не работает и что вместо

    TL;DR: Sentry дедуплицирует backend-ошибки по хешу (error class + top stack frame + module) . Для UI-багов этот рецепт ломается — у expect(button).toBeVisible() нет stack frame в продуктовом смысле, есть локатор + assertion + URL . В webtest-orch я собрал composite SHA-256 fingerprint из (normalized_selector | assertion type | error class | URL template | message[:80]) с тремя rules нормализации ( :nth-child , UUID, /users/123 → /users/:id ). Это даёт стабильный 8-hex BUG-id который выживает прогоны и даёт diff new / regression / persisting / fixed без БД и embedding’ов.

    habr.com/ru/articles/1032230/

    #playwright #qa_automation #qa_testing #claude #agents #agent_skills #aria #webразработка #fingerprint #ui