#статья дня
В недавней заметке про кнопки и role="button" я упомянул, что переключатели и чекбоксы — вещи разные. Вот, прикладываю обещанное объяснение: https://uxplanet.org/checkbox-vs-toggle-switch-7fc6e83f10b8
Используйте переключатель:
1. Для вызова мгновенной реакции системы на включение опции.
2. Для выделения несвязанных элементов в группе.
Используйте чекбоксы:
1. Когда форму после пометок требуется отправить отдельным действием.
2. Если требуется множественный выбор.
3. Для выделения связанных элементов в группе.
#css #checkbox #switch #ux
В недавней заметке про кнопки и role="button" я упомянул, что переключатели и чекбоксы — вещи разные. Вот, прикладываю обещанное объяснение: https://uxplanet.org/checkbox-vs-toggle-switch-7fc6e83f10b8
Используйте переключатель:
1. Для вызова мгновенной реакции системы на включение опции.
2. Для выделения несвязанных элементов в группе.
Используйте чекбоксы:
1. Когда форму после пометок требуется отправить отдельным действием.
2. Если требуется множественный выбор.
3. Для выделения связанных элементов в группе.
#css #checkbox #switch #ux
This media is not supported in your browser
VIEW IN TELEGRAM
#ссылка дня
Когда-то давно мы с Виталием Киренковым, автором канала «Просто: разработка» (в телеге и на ютубе) запилили красивый анимированный переключатель тем в браузере.
Причём, трёхпозиционный: авто, день, ночь. Получилось красиво, но я не смог выжать адекватную работу, без моргания, на мобильных устройствах. Так что в продакшен (на сайт канала) так и не пошло.
Вот оно, если кому интересно: https://codepen.io/alinaki/pen/gOLzbQE
Так вот, ссылка дня — это коллекция анимированных переключателей попроще. Скажем так, сильно попроще: https://toggles.dev/
Но их много, они оттестированные и довольно симпатичные.
Пользуемся.
#switch #dark #light
Когда-то давно мы с Виталием Киренковым, автором канала «Просто: разработка» (в телеге и на ютубе) запилили красивый анимированный переключатель тем в браузере.
Причём, трёхпозиционный: авто, день, ночь. Получилось красиво, но я не смог выжать адекватную работу, без моргания, на мобильных устройствах. Так что в продакшен (на сайт канала) так и не пошло.
Вот оно, если кому интересно: https://codepen.io/alinaki/pen/gOLzbQE
Так вот, ссылка дня — это коллекция анимированных переключателей попроще. Скажем так, сильно попроще: https://toggles.dev/
Но их много, они оттестированные и довольно симпатичные.
Пользуемся.
#switch #dark #light
❤12
This media is not supported in your browser
VIEW IN TELEGRAM
#codepen дня
Меня этим видео достали. Мне прислали его все: жена, несколько друзей, мемовник, оно попало в два рабочих чата и личку, в чат канала (раза три), оно лезло из всех твиттер-лент.
В какой-то момент я устал быть душнилой и отвечать всем: "Но... ведь... SVG..."
Не будь я таким ленивым, я бы попробовал найти исходник и что-то наваять, но душнить гораздо проще, чем что-то делать, не правда ли?
А вот уже достаточно хорошо известный вам бывший деврел Google Джей не поленился и таки сделал этот чёртов переключатель!
Смотрите: https://codepen.io/jh3y/pen/LYgjpYZ
Явно покруче чем наш с Киренковым трёхпозиционный... пора поднимать ставки, котаны :)
Кто пасхалку найдёт?
В общем, меня забавляют эти дуэли. Надо бы поучаствовать в какой-нибудь :)
#tiktok #switch #design #challenge
Меня этим видео достали. Мне прислали его все: жена, несколько друзей, мемовник, оно попало в два рабочих чата и личку, в чат канала (раза три), оно лезло из всех твиттер-лент.
В какой-то момент я устал быть душнилой и отвечать всем: "Но... ведь... SVG..."
Не будь я таким ленивым, я бы попробовал найти исходник и что-то наваять, но душнить гораздо проще, чем что-то делать, не правда ли?
А вот уже достаточно хорошо известный вам бывший деврел Google Джей не поленился и таки сделал этот чёртов переключатель!
Смотрите: https://codepen.io/jh3y/pen/LYgjpYZ
Явно покруче чем наш с Киренковым трёхпозиционный... пора поднимать ставки, котаны :)
Кто пасхалку найдёт?
В общем, меня забавляют эти дуэли. Надо бы поучаствовать в какой-нибудь :)
#tiktok #switch #design #challenge
👍23🔥5😁4💩1
This media is not supported in your browser
VIEW IN TELEGRAM
#codepen дня
Кажется, мне пришла пора признать, что чекбоксы и радиокнопки официально стали полностью веб-элементами.
Что я имею в виду: поля ввода, чекбоксы, радиокнопки, кнопки вообще, филдсеты, селекты — они были (и частично до сих пор являются) замещаемыми элементами. Вы указываете браузеру "хочу тут видеть такой-то инпут", а рисуется инпут уже операционной системой, её виджетами.
Сейчас эта грань максимально размывается: поля ввода уже рисуются через Shadow DOM, кнопки каждый оформляет как хочет, fieldset недавно наконец-то избавился от родовых болезней.
И только select до сих пор рисуется совершенно отдельно. Кстати, это одна из причин, почему селекты не видно в трансляции экрана на митингах :)
Возвращаясь к чекбоксам и радио: до недавнего времени по вышеозначенным причинам к ним нельзя было применять, например, псевдоэлементы. Что весьма ограничивало возможности по стилизации.
Теперь же это не так. Google Chrome уже давно не стесняясь разрешает псевдоэлементы на ваших чекбоксах, Safari и Firefox тоже недавно подтянулись.
В итоге, в сочетании с
Я, кстати, уже говорил ведь, что в стандарт пытаются пропихнуть атрибут switch, чтобы окончательно распрощаться с чекбоксами?
Вот такое (работает только в Safari TP): https://nt1m.github.io/html-switch-demos/
Не могу сказать, что я не скучаю по однозначности старых добрых галочек в квадратиках...
#css #switch #checkbox
Кажется, мне пришла пора признать, что чекбоксы и радиокнопки официально стали полностью веб-элементами.
Что я имею в виду: поля ввода, чекбоксы, радиокнопки, кнопки вообще, филдсеты, селекты — они были (и частично до сих пор являются) замещаемыми элементами. Вы указываете браузеру "хочу тут видеть такой-то инпут", а рисуется инпут уже операционной системой, её виджетами.
Сейчас эта грань максимально размывается: поля ввода уже рисуются через Shadow DOM, кнопки каждый оформляет как хочет, fieldset недавно наконец-то избавился от родовых болезней.
И только select до сих пор рисуется совершенно отдельно. Кстати, это одна из причин, почему селекты не видно в трансляции экрана на митингах :)
Возвращаясь к чекбоксам и радио: до недавнего времени по вышеозначенным причинам к ним нельзя было применять, например, псевдоэлементы. Что весьма ограничивало возможности по стилизации.
Теперь же это не так. Google Chrome уже давно не стесняясь разрешает псевдоэлементы на ваших чекбоксах, Safari и Firefox тоже недавно подтянулись.
В итоге, в сочетании с
appearance: none можно творить что-то такое: https://codepen.io/alvaromontoro/pen/OJqKGBzЯ, кстати, уже говорил ведь, что в стандарт пытаются пропихнуть атрибут switch, чтобы окончательно распрощаться с чекбоксами?
Вот такое (работает только в Safari TP): https://nt1m.github.io/html-switch-demos/
Не могу сказать, что я не скучаю по однозначности старых добрых галочек в квадратиках...
#css #switch #checkbox
👍20🤩5
#фишка дня
Как убедиться, что ваш
Очень просто! Два варианта:
1. Используем
2. Второй вариант — ESLint и правило
Впрочем, мы у себя вообще переходим на pattern matching, о чём как-нибудь в следующий раз.
#ts #switch
Как убедиться, что ваш
switch покрывает все кейсы, а default остаётся только на случай косяков в рантайме?Очень просто! Два варианта:
1. Используем
never, от Кори Хауса:
interface Dog {
kind: "dog";
favoriteToy: string;
}
interface Parrot {
kind: "parrot";
knowsWords: number;
}
type Pet = Dog | Parrot;
function logPetTalent(pet: Pet) {
switch (pet. kind) {
case "dog":
return console. log (Dog loves ${pet. favoriteToy}. ');
case "parrot":
return console. log (Parrot knows ${pet.knowsWords} words. *);
default:
const exhaustiveCheck: never = pet;
}
}
2. Второй вариант — ESLint и правило
switch-exhaustiveness-check. И уже дальше решаем, разрешать default, или нет. Конфигураия это позволяет.Впрочем, мы у себя вообще переходим на pattern matching, о чём как-нибудь в следующий раз.
#ts #switch
👍10❤4🫡1
#ссылка дня
Apple славится не только тем, что достаточно медленно развивает Safari в угоду (?) производительности на ватт и безопасности, но и тем, что добавляет в движок очень много фишек, делающих интеграцию WebView в приложения на macOS и iOS проще. Часть, казалось бы, нативных Apple Music, Apple Maps и так далее — это WebView, а вы и не догадывались.
И вот одной из таких фишек стало добавление атрибута
Поспольку остальные браузеры не спешат это добавлять (как раз по причине того, что это, ну, разные же элементы, атрибут выглядит странно), Томас Стайнер реализовал полифилл: https://blog.tomayac.com/2026/01/12/a-polyfill-for-the-html-switch-element/
Демонстрацию можно посмотреть там же.
Ссылка на репо: https://github.com/whatwg/html/pull/9546
Как считаете, пора делать переключатели базовыми инструментами форм, или нет?
#css #switch #safari
Apple славится не только тем, что достаточно медленно развивает Safari в угоду (?) производительности на ватт и безопасности, но и тем, что добавляет в движок очень много фишек, делающих интеграцию WebView в приложения на macOS и iOS проще. Часть, казалось бы, нативных Apple Music, Apple Maps и так далее — это WebView, а вы и не догадывались.
И вот одной из таких фишек стало добавление атрибута
switch к обычным чекбоксам. Очевидно, превращающим галочки в переключатели. Да, семантика выходит иная.Поспольку остальные браузеры не спешат это добавлять (как раз по причине того, что это, ну, разные же элементы, атрибут выглядит странно), Томас Стайнер реализовал полифилл: https://blog.tomayac.com/2026/01/12/a-polyfill-for-the-html-switch-element/
Демонстрацию можно посмотреть там же.
Ссылка на репо: https://github.com/whatwg/html/pull/9546
Как считаете, пора делать переключатели базовыми инструментами форм, или нет?
#css #switch #safari
❤6👍2🫡1