home.social

#uikit — Public Fediverse posts

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

  1. We just launched a paid Shadcn /ui components kit for the @Sketch app

    The entire design system is rebuilt using Stack Layout, Variables, and Shared Styles.

    Design with the speed of code. ⚡️ Get it here:
    whiteui.store/product/shadcn-s

    #Sketch #UIkit #shadcn #DesignSystem #madewithsketch

  2. We just launched a paid Shadcn /ui components kit for the @Sketch app

    The entire design system is rebuilt using Stack Layout, Variables, and Shared Styles.

    Design with the speed of code. ⚡️ Get it here:
    whiteui.store/product/shadcn-s

    #Sketch #UIkit #shadcn #DesignSystem #madewithsketch

  3. We just launched a paid Shadcn /ui components kit for the @Sketch app

    The entire design system is rebuilt using Stack Layout, Variables, and Shared Styles.

    Design with the speed of code. ⚡️ Get it here:
    whiteui.store/product/shadcn-s

    #Sketch #UIkit #shadcn #DesignSystem #madewithsketch

  4. We just launched a paid Shadcn /ui components kit for the @Sketch app

    The entire design system is rebuilt using Stack Layout, Variables, and Shared Styles.

    Design with the speed of code. ⚡️ Get it here:
    whiteui.store/product/shadcn-s

    #Sketch #UIkit #shadcn #DesignSystem #madewithsketch

  5. Want to check how your website looks with Safari’s different bars?

    I’ve just updated my little @Sketch design kit for liquid glass.

    #madewithsketch #uikit

    sketch.com/profile/alexkaessne

  6. Want to check how your website looks with Safari’s different bars?

    I’ve just updated my little @Sketch design kit for liquid glass.

    #madewithsketch #uikit

    sketch.com/profile/alexkaessne

  7. Want to check how your website looks with Safari’s different bars?

    I’ve just updated my little @Sketch design kit for liquid glass.

    #madewithsketch #uikit

    sketch.com/profile/alexkaessne

  8. Want to check how your website looks with Safari’s different bars?

    I’ve just updated my little @Sketch design kit for liquid glass.

    #madewithsketch #uikit

    sketch.com/profile/alexkaessne

  9. Want to check how your website looks with Safari’s different bars?

    I’ve just updated my little @Sketch design kit for liquid glass.

    sketch.com/profile/alexkaessne

  10. UISlider изнутри: почему `setValue` не работает во время settle-анимации и как я это обошел

    В iOS 26 у UISlider появился liquid-glass-вид и физика доводки (settle) после того, как пользователь отпускает палец. Если честно, я не проверял, как это выглядело в старых версиях и как оно работало, так как до iOS 26 ни в своих проектах, ни в тех, что я писал на работе, я не использовал стандартный компонент, так как его внешний вид никого не устраивал. У такой доводки есть побочный эффект: если в этот момент дернуть setValue(_:animated:) извне, наш слайдер на один кадр едет в новую точку, а потом откатывается туда, куда его тянет settle. removeAllAnimations() не помогает: анимация идёт не через CABasicAnimation , а через property-driver на display link. Дальше про то, как я нашёл рабочий путь это исправить.

    habr.com/ru/articles/1055466/

    #UISlider #liquid_glass #приватные_API #objectivec_runtime #kvc #реверсинжинеринг #uikit

  11. UISlider изнутри: почему `setValue` не работает во время settle-анимации и как я это обошел

    В iOS 26 у UISlider появился liquid-glass-вид и физика доводки (settle) после того, как пользователь отпускает палец. Если честно, я не проверял, как это выглядело в старых версиях и как оно работало, так как до iOS 26 ни в своих проектах, ни в тех, что я писал на работе, я не использовал стандартный компонент, так как его внешний вид никого не устраивал. У такой доводки есть побочный эффект: если в этот момент дернуть setValue(_:animated:) извне, наш слайдер на один кадр едет в новую точку, а потом откатывается туда, куда его тянет settle. removeAllAnimations() не помогает: анимация идёт не через CABasicAnimation , а через property-driver на display link. Дальше про то, как я нашёл рабочий путь это исправить.

    habr.com/ru/articles/1055466/

    #UISlider #liquid_glass #приватные_API #objectivec_runtime #kvc #реверсинжинеринг #uikit

  12. UISlider изнутри: почему `setValue` не работает во время settle-анимации и как я это обошел

    В iOS 26 у UISlider появился liquid-glass-вид и физика доводки (settle) после того, как пользователь отпускает палец. Если честно, я не проверял, как это выглядело в старых версиях и как оно работало, так как до iOS 26 ни в своих проектах, ни в тех, что я писал на работе, я не использовал стандартный компонент, так как его внешний вид никого не устраивал. У такой доводки есть побочный эффект: если в этот момент дернуть setValue(_:animated:) извне, наш слайдер на один кадр едет в новую точку, а потом откатывается туда, куда его тянет settle. removeAllAnimations() не помогает: анимация идёт не через CABasicAnimation , а через property-driver на display link. Дальше про то, как я нашёл рабочий путь это исправить.

    habr.com/ru/articles/1055466/

    #UISlider #liquid_glass #приватные_API #objectivec_runtime #kvc #реверсинжинеринг #uikit

  13. I've once again taken the time to write down my thoughts—this time on the Liquid Glass changes in Apple’s 2027 releases.

    Join me on a journey through the great, the good, and the curious. While macOS looks better than ever, iOS 27 feels like a significant step backwards, looking flatter than last year. I also dive into what HDR has to do with it and explore the other design changes Apple made.

    gamery.app/blog/liquid-glass/

    #SwiftUI #UIKit #iOS #macOS #WWDC #Apple #Design #BuildInPublic #Swift

  14. I've once again taken the time to write down my thoughts—this time on the Liquid Glass changes in Apple’s 2027 releases.

    Join me on a journey through the great, the good, and the curious. While macOS looks better than ever, iOS 27 feels like a significant step backwards, looking flatter than last year. I also dive into what HDR has to do with it and explore the other design changes Apple made.

    gamery.app/blog/liquid-glass/

    #SwiftUI #UIKit #iOS #macOS #WWDC #Apple #Design #BuildInPublic #Swift

  15. I've once again taken the time to write down my thoughts—this time on the Liquid Glass changes in Apple’s 2027 releases.

    Join me on a journey through the great, the good, and the curious. While macOS looks better than ever, iOS 27 feels like a significant step backwards, looking flatter than last year. I also dive into what HDR has to do with it and explore the other design changes Apple made.

    gamery.app/blog/liquid-glass/

    #SwiftUI #UIKit #iOS #macOS #WWDC #Apple #Design #BuildInPublic #Swift

  16. I've once again taken the time to write down my thoughts—this time on the Liquid Glass changes in Apple’s 2027 releases.

    Join me on a journey through the great, the good, and the curious. While macOS looks better than ever, iOS 27 feels like a significant step backwards, looking flatter than last year. I also dive into what HDR has to do with it and explore the other design changes Apple made.

    gamery.app/blog/liquid-glass/

    #SwiftUI #UIKit #iOS #macOS #WWDC #Apple #Design #BuildInPublic #Swift

  17. I've once again taken the time to write down my thoughts—this time on the Liquid Glass changes in Apple’s 2027 releases.

    Join me on a journey through the great, the good, and the curious. While macOS looks better than ever, iOS 27 feels like a significant step backwards, looking flatter than last year. I also dive into what HDR has to do with it and explore the other design changes Apple made.

    gamery.app/blog/liquid-glass/

    #SwiftUI #UIKit #iOS #macOS #WWDC #Apple #Design #BuildInPublic #Swift

  18. Haha, it's alive! When did you last see an NSDrawer? It's perfect for displaying #mastodon conversations.

    (This is ofc just my opinion. Don't use deprecated APIs in your projects. This is my private playground.)

    #macos #macosdev #apple #swift #uikit

  19. Haha, it's alive! When did you last see an NSDrawer? It's perfect for displaying #mastodon conversations.

    (This is ofc just my opinion. Don't use deprecated APIs in your projects. This is my private playground.)

    #macos #macosdev #apple #swift #uikit

  20. Haha, it's alive! When did you last see an NSDrawer? It's perfect for displaying #mastodon conversations.

    (This is ofc just my opinion. Don't use deprecated APIs in your projects. This is my private playground.)

    #macos #macosdev #apple #swift #uikit

  21. Haha, it's alive! When did you last see an NSDrawer? It's perfect for displaying #mastodon conversations.

    (This is ofc just my opinion. Don't use deprecated APIs in your projects. This is my private playground.)

    #macos #macosdev #apple #swift #uikit

  22. Haha, it's alive! When did you last see an NSDrawer? It's perfect for displaying #mastodon conversations.

    (This is ofc just my opinion. Don't use deprecated APIs in your projects. This is my private playground.)

    #macos #macosdev #apple #swift #uikit

  23. Свой NavigationBar на iOS: large title, поиск и списки на Texture

    Разбор того, как отказаться от системного UINavigationBar и собрать собственный навигационный бар на обычном UIView: с коллапсирующим large title как у Apple, встроенной строкой поиска и произвольными панелями под заголовком — и так, чтобы он работал и с UITableView, и со списками на Texture (AsyncDisplayKit). Внутри — устройство компонента и честный разбор компромиссов из реального продакшена.

    habr.com/ru/articles/1049644/

    #iOS #Swift #UIKit #UINavigationBar #AsyncDisplayKit #Texture #KVO

  24. Свой NavigationBar на iOS: large title, поиск и списки на Texture

    Разбор того, как отказаться от системного UINavigationBar и собрать собственный навигационный бар на обычном UIView: с коллапсирующим large title как у Apple, встроенной строкой поиска и произвольными панелями под заголовком — и так, чтобы он работал и с UITableView, и со списками на Texture (AsyncDisplayKit). Внутри — устройство компонента и честный разбор компромиссов из реального продакшена.

    habr.com/ru/articles/1049644/

    #iOS #Swift #UIKit #UINavigationBar #AsyncDisplayKit #Texture #KVO

  25. Свой NavigationBar на iOS: large title, поиск и списки на Texture

    Разбор того, как отказаться от системного UINavigationBar и собрать собственный навигационный бар на обычном UIView: с коллапсирующим large title как у Apple, встроенной строкой поиска и произвольными панелями под заголовком — и так, чтобы он работал и с UITableView, и со списками на Texture (AsyncDisplayKit). Внутри — устройство компонента и честный разбор компромиссов из реального продакшена.

    habr.com/ru/articles/1049644/

    #iOS #Swift #UIKit #UINavigationBar #AsyncDisplayKit #Texture #KVO

  26. Has anyone come up with a good foundation and logic to sync a Core Data stack with Supabase with a clean way to map managed objects to Supabase rows and vice versa? Everything I build just seems so complex and brittle. #SwiftUI #UIKit #CoreData #Supabase

  27. Has anyone come up with a good foundation and logic to sync a Core Data stack with Supabase with a clean way to map managed objects to Supabase rows and vice versa? Everything I build just seems so complex and brittle. #SwiftUI #UIKit #CoreData #Supabase

  28. Has anyone come up with a good foundation and logic to sync a Core Data stack with Supabase with a clean way to map managed objects to Supabase rows and vice versa? Everything I build just seems so complex and brittle. #SwiftUI #UIKit #CoreData #Supabase

  29. Has anyone come up with a good foundation and logic to sync a Core Data stack with Supabase with a clean way to map managed objects to Supabase rows and vice versa? Everything I build just seems so complex and brittle. #SwiftUI #UIKit #CoreData #Supabase

  30. Has anyone come up with a good foundation and logic to sync a Core Data stack with Supabase with a clean way to map managed objects to Supabase rows and vice versa? Everything I build just seems so complex and brittle. #SwiftUI #UIKit #CoreData #Supabase

  31. After WWDC 26, iPhone apps can run in resizable environments.
    horizontalSizeClass is still reliable, but it is no longer a width sensor.

    I wrote about how Apple’s layout model is shifting from device type to available space.

    #SwiftUI #UIKit #WWDC26

    fatbobman.com/en/posts/from-si

  32. After WWDC 26, iPhone apps can run in resizable environments.
    horizontalSizeClass is still reliable, but it is no longer a width sensor.

    I wrote about how Apple’s layout model is shifting from device type to available space.

    #SwiftUI #UIKit #WWDC26

    fatbobman.com/en/posts/from-si

  33. After WWDC 26, iPhone apps can run in resizable environments.
    horizontalSizeClass is still reliable, but it is no longer a width sensor.

    I wrote about how Apple’s layout model is shifting from device type to available space.

    #SwiftUI #UIKit #WWDC26

    fatbobman.com/en/posts/from-si

  34. After WWDC 26, iPhone apps can run in resizable environments.
    horizontalSizeClass is still reliable, but it is no longer a width sensor.

    I wrote about how Apple’s layout model is shifting from device type to available space.

    #SwiftUI #UIKit #WWDC26

    fatbobman.com/en/posts/from-si

  35. After WWDC 26, iPhone apps can run in resizable environments.
    horizontalSizeClass is still reliable, but it is no longer a width sensor.

    I wrote about how Apple’s layout model is shifting from device type to available space.

    #SwiftUI #UIKit #WWDC26

    fatbobman.com/en/posts/from-si

  36. Мультиверсионный UI-кит с RWC: один JS-API для разных веб-компонентов

    Замена одной кнопки не должна тянуть за собой весь React. В RWC — не тянет. Каждый компонент RWC — самостоятельный Custom Element. Он не зависит от рантайма хоста и работает внутри React-дерева, Angular-приложения или чистого HTML. Поэтому старый React-компонент и новая RWC-кнопка живут на одной странице одновременно. На практике: UI-кит мигрируется покомпонентно, по одному виджету за спринт. Без feature-freeze, без второго рантайма фреймворка и параллельной сборки ради сосуществования версий. Единица изоляции здесь — сам компонент, а не application runtime.

    habr.com/ru/articles/1048416/

    #javascript #typescript #custom_elements #web_components #signal #uikit

  37. Мультиверсионный UI-кит с RWC: один JS-API для разных веб-компонентов

    Замена одной кнопки не должна тянуть за собой весь React. В RWC — не тянет. Каждый компонент RWC — самостоятельный Custom Element. Он не зависит от рантайма хоста и работает внутри React-дерева, Angular-приложения или чистого HTML. Поэтому старый React-компонент и новая RWC-кнопка живут на одной странице одновременно. На практике: UI-кит мигрируется покомпонентно, по одному виджету за спринт. Без feature-freeze, без второго рантайма фреймворка и параллельной сборки ради сосуществования версий. Единица изоляции здесь — сам компонент, а не application runtime.

    habr.com/ru/articles/1048416/

    #javascript #typescript #custom_elements #web_components #signal #uikit

  38. Мультиверсионный UI-кит с RWC: один JS-API для разных веб-компонентов

    Замена одной кнопки не должна тянуть за собой весь React. В RWC — не тянет. Каждый компонент RWC — самостоятельный Custom Element. Он не зависит от рантайма хоста и работает внутри React-дерева, Angular-приложения или чистого HTML. Поэтому старый React-компонент и новая RWC-кнопка живут на одной странице одновременно. На практике: UI-кит мигрируется покомпонентно, по одному виджету за спринт. Без feature-freeze, без второго рантайма фреймворка и параллельной сборки ради сосуществования версий. Единица изоляции здесь — сам компонент, а не application runtime.

    habr.com/ru/articles/1048416/

    #javascript #typescript #custom_elements #web_components #signal #uikit

  39. It's hard to capture since this does not even show up in macOS HDR screenshots, but it looks like iOS buttons do not have any HDR treatment, making them look totally flat with just a gray outline.

    Going by the marketing material, that might change and I hope so. The buttons looks soooo good on macOS with HDR highlights making them pop off the screen. #UIKit #SwiftUI

  40. It's hard to capture since this does not even show up in macOS HDR screenshots, but it looks like iOS buttons do not have any HDR treatment, making them look totally flat with just a gray outline.

    Going by the marketing material, that might change and I hope so. The buttons looks soooo good on macOS with HDR highlights making them pop off the screen. #UIKit #SwiftUI

  41. It's hard to capture since this does not even show up in macOS HDR screenshots, but it looks like iOS buttons do not have any HDR treatment, making them look totally flat with just a gray outline.

    Going by the marketing material, that might change and I hope so. The buttons looks soooo good on macOS with HDR highlights making them pop off the screen. #UIKit #SwiftUI

  42. It's hard to capture since this does not even show up in macOS HDR screenshots, but it looks like iOS buttons do not have any HDR treatment, making them look totally flat with just a gray outline.

    Going by the marketing material, that might change and I hope so. The buttons looks soooo good on macOS with HDR highlights making them pop off the screen. #UIKit #SwiftUI

  43. Назад в будущее UI-kit: как мы перевели живую библиотеку на дизайн-токены и ничего не сломали

    UI-kit, которым пользуются несколько продуктовых команд, нельзя просто отправить в будущее и переписать под новый дизайн. За ним тянется прошлое: старые CSS-переменные, публичный API, кастомизации у потребителей и независимые релизные циклы. При этом бренд уже меняется, дизайнеры приносят новую палитру, типографику, motion, скругления и тёмную тему и всё это нужно аккуратно посадить на компоненты, которые продолжают работать в продакшене. Привет, Хабр! Меня зовут Амир, я Senior Vue.js Frontend Developer в экосистеме Лукоморье . Уже шесть лет я развиваю фронтенд большой внутренней ERP-платформы, в том числе внутренний UI-kit: около 50 компонентов на Vue 3 и TypeScript, которыми пользуются несколько продуктовых команд в Ростелекоме. В этой статье расскажу, как мы устроили для UI-kit такое «назад в будущее»: в одной долгоживущей ветке sova провели редизайн поверх работающих компонентов, сохранили публичный API для команд-потребителей и перевели визуальный слой на новую архитектуру. Мы внедрили 3-tier-систему дизайн-токенов, собрали pipeline на Style Dictionary и Tokens Studio for Figma, оставили старые CSS-переменные через legacy-алиасы, а заодно закрыли несколько долгов библиотеки: типизацию шаблонов, встроенный SVG-спрайт на 816 иконок, утилиту темизации и вынос runtime-зависимостей с сокращением бандла с 940 до 150 КБ. Материал будет полезен инженерам дизайн-систем, фронтенд-архитекторам и тимлидам, которые поддерживают UI-kit для нескольких продуктовых команд и думают, как провести редизайн без поломки потребителей. Внутри — код, архитектурные решения, компромиссы и честные выводы по итогам миграции.

    habr.com/ru/companies/lukit_ru

    #uikit #дизайнтокены #лукоморье #фронтенд #фронтендразработка #фронтенд_разработка #фронтэнд_javascript #vuejs #vuejs #javascript

  44. Назад в будущее UI-kit: как мы перевели живую библиотеку на дизайн-токены и ничего не сломали

    UI-kit, которым пользуются несколько продуктовых команд, нельзя просто отправить в будущее и переписать под новый дизайн. За ним тянется прошлое: старые CSS-переменные, публичный API, кастомизации у потребителей и независимые релизные циклы. При этом бренд уже меняется, дизайнеры приносят новую палитру, типографику, motion, скругления и тёмную тему и всё это нужно аккуратно посадить на компоненты, которые продолжают работать в продакшене. Привет, Хабр! Меня зовут Амир, я Senior Vue.js Frontend Developer в экосистеме Лукоморье . Уже шесть лет я развиваю фронтенд большой внутренней ERP-платформы, в том числе внутренний UI-kit: около 50 компонентов на Vue 3 и TypeScript, которыми пользуются несколько продуктовых команд в Ростелекоме. В этой статье расскажу, как мы устроили для UI-kit такое «назад в будущее»: в одной долгоживущей ветке sova провели редизайн поверх работающих компонентов, сохранили публичный API для команд-потребителей и перевели визуальный слой на новую архитектуру. Мы внедрили 3-tier-систему дизайн-токенов, собрали pipeline на Style Dictionary и Tokens Studio for Figma, оставили старые CSS-переменные через legacy-алиасы, а заодно закрыли несколько долгов библиотеки: типизацию шаблонов, встроенный SVG-спрайт на 816 иконок, утилиту темизации и вынос runtime-зависимостей с сокращением бандла с 940 до 150 КБ. Материал будет полезен инженерам дизайн-систем, фронтенд-архитекторам и тимлидам, которые поддерживают UI-kit для нескольких продуктовых команд и думают, как провести редизайн без поломки потребителей. Внутри — код, архитектурные решения, компромиссы и честные выводы по итогам миграции.

    habr.com/ru/companies/lukit_ru

    #uikit #дизайнтокены #лукоморье #фронтенд #фронтендразработка #фронтенд_разработка #фронтэнд_javascript #vuejs #vuejs #javascript

  45. Назад в будущее UI-kit: как мы перевели живую библиотеку на дизайн-токены и ничего не сломали

    UI-kit, которым пользуются несколько продуктовых команд, нельзя просто отправить в будущее и переписать под новый дизайн. За ним тянется прошлое: старые CSS-переменные, публичный API, кастомизации у потребителей и независимые релизные циклы. При этом бренд уже меняется, дизайнеры приносят новую палитру, типографику, motion, скругления и тёмную тему и всё это нужно аккуратно посадить на компоненты, которые продолжают работать в продакшене. Привет, Хабр! Меня зовут Амир, я Senior Vue.js Frontend Developer в экосистеме Лукоморье . Уже шесть лет я развиваю фронтенд большой внутренней ERP-платформы, в том числе внутренний UI-kit: около 50 компонентов на Vue 3 и TypeScript, которыми пользуются несколько продуктовых команд в Ростелекоме. В этой статье расскажу, как мы устроили для UI-kit такое «назад в будущее»: в одной долгоживущей ветке sova провели редизайн поверх работающих компонентов, сохранили публичный API для команд-потребителей и перевели визуальный слой на новую архитектуру. Мы внедрили 3-tier-систему дизайн-токенов, собрали pipeline на Style Dictionary и Tokens Studio for Figma, оставили старые CSS-переменные через legacy-алиасы, а заодно закрыли несколько долгов библиотеки: типизацию шаблонов, встроенный SVG-спрайт на 816 иконок, утилиту темизации и вынос runtime-зависимостей с сокращением бандла с 940 до 150 КБ. Материал будет полезен инженерам дизайн-систем, фронтенд-архитекторам и тимлидам, которые поддерживают UI-kit для нескольких продуктовых команд и думают, как провести редизайн без поломки потребителей. Внутри — код, архитектурные решения, компромиссы и честные выводы по итогам миграции.

    habr.com/ru/companies/lukit_ru

    #uikit #дизайнтокены #лукоморье #фронтенд #фронтендразработка #фронтенд_разработка #фронтэнд_javascript #vuejs #vuejs #javascript

  46. Ah, yes, another "revolutionary" #open-source UI kit that does *everything* your document app never asked for! 🚀✨ With features like "bounding box citations" and "file thumbnail view," this kit is here to save us from the peril of ugly spreadsheets. 🗂️ Because, obviously, what the world needed was yet another way to view a PDF. 📄🤦‍♂️
    extend.ai/ui #UIkit #documentapp #techinnovation #designtrends #userexperience #HackerNews #ngated

  47. Ah, yes, another "revolutionary" #open-source UI kit that does *everything* your document app never asked for! 🚀✨ With features like "bounding box citations" and "file thumbnail view," this kit is here to save us from the peril of ugly spreadsheets. 🗂️ Because, obviously, what the world needed was yet another way to view a PDF. 📄🤦‍♂️
    extend.ai/ui #UIkit #documentapp #techinnovation #designtrends #userexperience #HackerNews #ngated

  48. Ah, yes, another "revolutionary" #open-source UI kit that does *everything* your document app never asked for! 🚀✨ With features like "bounding box citations" and "file thumbnail view," this kit is here to save us from the peril of ugly spreadsheets. 🗂️ Because, obviously, what the world needed was yet another way to view a PDF. 📄🤦‍♂️
    extend.ai/ui #UIkit #documentapp #techinnovation #designtrends #userexperience #HackerNews #ngated

  49. Ah, yes, another "revolutionary" #open-source UI kit that does *everything* your document app never asked for! 🚀✨ With features like "bounding box citations" and "file thumbnail view," this kit is here to save us from the peril of ugly spreadsheets. 🗂️ Because, obviously, what the world needed was yet another way to view a PDF. 📄🤦‍♂️
    extend.ai/ui #UIkit #documentapp #techinnovation #designtrends #userexperience #HackerNews #ngated

  50. Ah, yes, another "revolutionary" #open-source UI kit that does *everything* your document app never asked for! 🚀✨ With features like "bounding box citations" and "file thumbnail view," this kit is here to save us from the peril of ugly spreadsheets. 🗂️ Because, obviously, what the world needed was yet another way to view a PDF. 📄🤦‍♂️
    extend.ai/ui #UIkit #documentapp #techinnovation #designtrends #userexperience #HackerNews #ngated