Получи случайную криптовалюту за регистрацию!

Будни разработчика

Логотип телеграм канала @htmlshit — Будни разработчика Б
Логотип телеграм канала @htmlshit — Будни разработчика
Адрес канала: @htmlshit
Категории: Дизайн , Технологии
Язык: Русский
Количество подписчиков: 11.63K
Описание канала:

Блог Senior JS-разработчика из Хельсинки
Автор: @bekharsky
По рекламе: https://telega.in/channels/htmlshit/card?r=GLOiHluU или https://t.me/it_adv
Чат: https://t.me/htmlshitchat

Рейтинги и Отзывы

3.00

3 отзыва

Оценить канал htmlshit и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

0

3 звезд

3

2 звезд

0

1 звезд

0


Последние сообщения 96

2021-07-20 17:03:47 Так, господа, а чего это я. Мы же обычно скриншоты с устройств выкладываем к таким заметкам.

Два моих в комментариях. Поддержите :)

Переключайте codepen из заметки в режим Full Page и делитесь.
1.1K views14:03
Открыть/Комментировать
2021-07-20 15:48:42
#заметка дня

Итак, весьма очевидно, какие устройства разделяют стили выше:

десктоп
мобильные
что-то со стилусом
какое-то устройство
мышеподобное нечто

На это всё дело имеется спецификация: https://drafts.csswg.org/mediaqueries/#pointer

И конечно же можно посмотреть поддержку: https://caniuse.com/css-media-interaction

Ну и попробуем, почему же нет: https://codepen.io/meduzen/pen/BqwYgj?editors=1100

Кажется, прям хорошо. Но не совсем.

iPad Pro что в режиме стилуса, что в режиме мыши пошлёт вас куда подальше. А если вспомнить, насколько велико разрешение его экрана… в общем, вернётесь вы к медиазапросам с плотностью пикселей.

Но в целом, в 2021 году этим всем вполне уже можно пользоваться.

#css #media #stylus #touch #hover #cursor #mobile
1.3K views12:48
Открыть/Комментировать
2021-07-20 09:01:16
Есть желание освежить в памяти HTML, CSS и JS?
Тогда тебе прямиком к нам!
Задачи по HTML&CSS&JS – это полезные ссылки на статьи и плагины, интересные задачи и тесты для front-end разработчиков всех уровней. Авторы канала - практикующие разработчики, которые делятся своими кейсами и опытом.

Задачи по HTML&CSS&JS – канал с ежедневным контентом для frontend-разработчиков всех уровней.
1. Тесты по HTML, CSS, JS.
2. Практические задачи на вёрстку и кодинг.
3. Полезные ссылки на статьи и плагины.

Читая и практикуя материалы из канала Задачи по HTML&CSS&JS вы улучшите свои навыки frontend программиста.

#реклама
1.4K views06:01
Открыть/Комментировать
2021-07-19 17:23:34 #work дня

Итак, по моей вине новые пользователи нашего продукта не могли его запустить. Как это обнаружилось? Упало число запросов на пробную лицензию.

Что в этой ситуации плохо?

Плохо не то, что я допустил ошибку в коде. Плохо не то, что этот кусок кода практически невозможно протестировать. И даже не то, что этот PR прошёл ревью.

Плоха скорость реакции.

Любой продукт такого уровня с ног до головы обмазан записями в лог и различными средствами обнаружения аномалий. И вот тут случился затык.

Главное в этой ситуации, да и в любой другой, не поддаваться панике. Не бегать как курица с отрубленной головой по офису. Не думать, что уволят.

Надо взять себя в руки и расставить ловушки подобных ошибок на будущее. Никто и подумать не мог, что подобная ситуация в принципе возможна, но вот уж как есть.

Естественно, будет встреча по поводу даунтайма. Естественно, придётся объяснять, что случилось.

Любая ошибка — это повод анализировать проблему, а никак не нервничать.
1.6K viewsedited  14:23
Открыть/Комментировать
2021-07-16 13:00:42
Видишь классный макет, но не знаешь как его сверстать?

Канал «Просто: разработка» может тебе помочь. Его автор публикует ценные статьи, а также авторские наработки, которые помогут верстать макеты любой сложности!

Кое-что из последнего на канале:
1. Стрелки у input number
2. Морзянка
3. 10 приёмов для улучшения дизайна сайта

YouTube-канал с уроками, а также чат на тысячу человек — прилагаются.

Подписаться на канал -> https://t.me/prostorazrabotka
417 views10:00
Открыть/Комментировать
2021-07-15 13:20:45 #заметка дня

В чате вопрос возник: «А при каких условиях и на что нужно ставить role=“button”?»

Вопрос весьма разумный, ведь вроде как кнопка она и есть кнопка, button. Вот только не всё так просто.

Для начала давайте определимся раз и навсегда: ссылки вместо кнопок не используются никогда.

Ссылка – это или переход к якорю на этой же странице, или же переход на другую страницу и только. Никаких a[href=“#”] с onClick, забудьте.

Остаются button, input[type=“button”] и input[type=“submit”].

Последние потомков внутри не предполагают и являются замещаемыми. Это значит, псевдо-элементов у нас тоже там нет. Впрочем, они вполне себе неплохо оформляются и как вещь в себе работают сносно: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/button

И вот, button. Что же с ним может быть не так, что нам потребуется нечто с role=“button”?

Давайте с очевидного: валидатор запрещает иметь div внутри button.

Выражаясь языком спецификации, button ожидает фразовый контент, а не потоковый: https://caninclude.glitch.me/can/include/?child=div&parent=button

То есть речь идёт не только о div, а ещё о десятке тегов. В итоге официально вкладывать можно практически один лишь span. Наверное, это не всем и не всегда удобно.

Впрочем, браузеры такой трюк позволяют.

Но если вам не всё равно — добавьте role=“button” и tabindex на любой удобный вам элемент, чтобы превратить его в интерактивный. Валидатор и скринридеры будут довольны. А ещё старые Safari, которые не умеют во flexbox на кнопках.

Мы у себя в дизайн-системе назвали такой компонент PlainButton, вот иногда ну надо.

Второй же случай посложнее.

Есть такой вид кнопок, toggle-кнопки. Переключатели. Это не checkbox, это не switch. Это просто что-то, что можно «зажать» сейчас и «отжать» потом. Например, кнопки в текстовом редакторе.

Они или находятся в зажатом положении (текст по центру, полужирный и т. д.), или в отжатом. Переключаем, в общем.

Почему это не чекбоксы? Потому что это не волеизъявление (согласие на что-то) как таковое, это просто некое действие, влияющее на что-то в приложении. Почему не свитчи? Потому что мы ничего не включаем физически. Кажется, об этих концептах стоит потом подробнее написать

В общем, если вы подменяете логику работы кнопки с моментальной реакции на что-то иное вроде toggle, вам необходимо отдельно указать как минимум два необходимых атрибута: role=“button” и aria-pressed. Это же касается, например, кнопок открытия аккордеонов. Вот только вместо pressed нужно будет устанавливать expanded: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/button_role

Да, это всё поначалу кажется ненужным усложнением, но поверьте: в большом приложении информация лишней не бывает. Особенно если она поможет кому-то вашим приложением пользоваться. А заодно легче отлаживать и хранить состояние.

#button #a11y #role #toggle
1.0K viewsedited  10:20
Открыть/Комментировать
2021-07-13 20:40:55 #видео дня

Должен признаться, моё знакомство с TypeScript случилось вынужденно. Я до последнего избегал его, максимально соблюдая общую гигиену кода. Но как же легко становится, когда ты просто не можешь допустить ошибку типов, пока специально этого не захочешь.

У меня ещё есть огромный проект на работе на ES3 и перевести его на TS очень непросто, но очень хочется.

Так вот, совсем недавно Евгений Обрезков записал целую двухчасовую лекцию про типы в TypeScript:



И вот мне всего год назад чего-то подобного очень и очень не хватало.

Желательно иметь хоть какое-то понятие о том, что такое TypeScript и базовые типы вообще, ибо лекция построена по принципу велосипедостроения. Создавая свои типы для разных данных, вы сможете понять, зачем в TS введена та или иная сущность.

#typescript #types
877 views17:40
Открыть/Комментировать
2021-07-13 13:01:10
Начните осваивать разработку виртуальных ассистентов и научитесь писать для них навыки. 

20 июля в OTUS пройдет demo-занятие в рамках онлайн-курса «Разработчик голосовых ассистентов и чат-ботов».

За 1,5 часа вы рассмотрите, как обрабатывать пользовательские запросы на естественном языке, используя SaluteJS.
Разберетесь в механике взаимодействия сценарий - платформа - натив - фронтенд.
В режиме реального времени вместе с преподавателем Антоном Виноградовым вы разработаете навык, который сможет не только понимать пользователя и отвечать на его вопросы, но и будет иметь роскошный пользовательский интерфейс. 

Для регистрации на занятие пройдите вступительный тест: https://otus.pw/usug/

#реклама
1.2K views10:01
Открыть/Комментировать
2021-07-12 14:00:29 #заметка дня

Сразу с панча: не используйте input[type=“number”].

Он тащит за собой целый ворох проблем:

1. странно выглядит (ниже о том, почему);
2. плохо стилизуется;
3. не подчиняется стандартным атрибутам вроде maxlength (sick!);
4. имеет ARIA-роль spinbutton (ниже поясню, что это);
5. позволяет ввести e (10e9) и валидация даже не заикнётся;
6. в старых Safari и Chrome округляет введённые числа (например, номер кредитки) до мантиссы и экспоненты (по-моему, это уже конец);
7. во время ввода можно случайно нажать стрелку вверх или вниз (или даже тронуть колесо мышки на некоторых ос) и введённое число изменится.

Как видите, минусов немало. А откуда они вообще взялись?

А всё просто: input[type=“number”] создавался для имитации т. н. tally counter, ручного счётчика. Ну вы наверняка видели фильмы, где людей или скот считали надетым на палец устройством (см. иллюстрацию выше). Отсюда и ARIA-роль spinner (счётчик оборотов), и стрелки ввода.

Вот только числа с плавающей запятой или ввод мантиссы и экспоненты — это уже самодеятельность браузеров. Что приводит к идиотичным ситуациям вроде округления чисел.

Так что же делать?

А делать следующее:



В 2021 году с такой конструкцией проблем у вас не возникнет. И с точки зрения доступности всё верно. И на мобильных клавиатура нужная встанет.

Да, это не предотвращает ввод чисел, только даёт валидацию. Но вы в любом случае должны задать нужное поведение вашей формы скриптом, от этого никуда не деться. даже с number.

За подробностями можно обратиться к блогу разработчиков официального сайта правительства Великобритании: https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/

Крайне неожиданно было вообще узнать, что ребята из техотдела правительства Великобритании вообще свой блог ведут на официальных началах.

Я помню подобное было у сайта kremlin.ru. И то в итоге почти все фишки исчезли со временем... Но мы отклонились от темы.

Подытожим: input[type=“number”] делался не для того, как его применяют.

Подумайте об этом.

#css #html #number #aria #semantics #a11y
1.6K viewsedited  11:00
Открыть/Комментировать