Экономия на спичках
Отличная статья от microsoft про перформанс селекторов. В проектах мы стараемся использовать простые селекторы, например
Быстродействие сложного селектора, в основном, зависит от глубины и ширины DOM-дерева, чем больше дерево, тем менее производительный сложный селектор. Также перформанс зависит от того как часто изменяется DOM-дерево. Это значит, что перформанс одного и того же сложного селектора зависит от проекта.
В простом проекте быстродействие между простым селектором и сложным будет одинаковым, а в сложном проекте может сильно отличаться. Чтобы проверить производительность селектора можно воспользоваться панелью Performance в Edge.
Статья: https://blogs.windows.com/msedgedev/2023/01/17/the-truth-about-css-selector-performance/
Отличная статья от microsoft про перформанс селекторов. В проектах мы стараемся использовать простые селекторы, например
.link, а значит производительные, но что если необходимо написать сложный селектор, например .wrapper .section .title .link.. Повлияет ли сложный селектор на перформанс интерфейса и как сильно повлияет?Быстродействие сложного селектора, в основном, зависит от глубины и ширины DOM-дерева, чем больше дерево, тем менее производительный сложный селектор. Также перформанс зависит от того как часто изменяется DOM-дерево. Это значит, что перформанс одного и того же сложного селектора зависит от проекта.
В простом проекте быстродействие между простым селектором и сложным будет одинаковым, а в сложном проекте может сильно отличаться. Чтобы проверить производительность селектора можно воспользоваться панелью Performance в Edge.
Статья: https://blogs.windows.com/msedgedev/2023/01/17/the-truth-about-css-selector-performance/
ЕС признал, что баннеры с использованием файлов cookie слегка раздражают, и теперь пытается пересмотреть свой подход.
Статья: https://www.techspot.com/news/101396-european-union-set-revise-cookie-law-admits-cookie.html
Баннер с превьюшки показывается тут - https://www.artlebedev.ru/
Статья: https://www.techspot.com/news/101396-european-union-set-revise-cookie-law-admits-cookie.html
Баннер с превьюшки показывается тут - https://www.artlebedev.ru/
🔥3👍1
10 самых распространенных ошибок доступности , обнаруженных на сайтах в 2023 году.
1. Нет текста ссылки
2. Неактивный элемент в порядке табуляции (tabindex="0").
3. Отсутствует атрибут alt ссылки.
4. Нет альтернативного текста
5. Список вложен неправильно. Имеется ввиду, когда список вложен в список
6. Задублированные лейблы
7. Положительное значение табиндекса.
8. Неверное aria описание. Нет цели для
9. Нет надписи для кнопки.
10. Неверная ариа-маркировка. нет цели для
Детальнее: https://www.tpgi.com/the-top-accessibility-errors-found-in-2023/
1. Нет текста ссылки
2. Неактивный элемент в порядке табуляции (tabindex="0").
3. Отсутствует атрибут alt ссылки.
4. Нет альтернативного текста
5. Список вложен неправильно. Имеется ввиду, когда список вложен в список
6. Задублированные лейблы
7. Положительное значение табиндекса.
8. Неверное aria описание. Нет цели для
aria-describedby9. Нет надписи для кнопки.
10. Неверная ариа-маркировка. нет цели для
aria-labelledbyДетальнее: https://www.tpgi.com/the-top-accessibility-errors-found-in-2023/
TPGi
The Top Accessibility Errors Found in 2023 - TPGi
Read about the 10 most common issues our teams discovered using both automated and manual testing in 2023.
👍1
Разбираем самый маленький PNG в мире
Самый миниатюрный PNG в мире весит67 байт и представляет собой один чёрный пиксель.
Узнайте почем так https://habr.com/ru/companies/ruvds/articles/787302/
Самый миниатюрный PNG в мире весит
Узнайте почем так https://habr.com/ru/companies/ruvds/articles/787302/
Хабр
Разбираем самый маленький PNG в мире
Самый миниатюрный PNG в мире весит 67 байт и представляет собой один чёрный пиксель. Выше вы видите его в 200-кратном увеличении. Красота, не так ли? Состоит этот файл из четырёх частей: Сигнатура...
Использование передовых функций CSS для создания индикатора прогресса
Объединяет такие вещи, как анимация, связанная с прокруткой, тригонометрические функции CSS и свойства color-mix, чтобы создать индикатор прогресса, связанный с текущей позицией прокрутки страницы, без какого-либо JS.
Статья: https://component-odyssey.com/articles/05-using-heaps-of-cutting-edge-css-to-build-a-progress-indicator
Объединяет такие вещи, как анимация, связанная с прокруткой, тригонометрические функции CSS и свойства color-mix, чтобы создать индикатор прогресса, связанный с текущей позицией прокрутки страницы, без какого-либо JS.
Статья: https://component-odyssey.com/articles/05-using-heaps-of-cutting-edge-css-to-build-a-progress-indicator
👍1
Прощай
Во всех основных браузерах появилось медивыражение срабатывающее на отключённый JS.
Медиавыражение имеет три значения:
- Значение
- Значение
- Значение
Статья: https://blog.stephaniestimac.com/posts/2023/12/css-media-query-scripting/
.no-js.Во всех основных браузерах появилось медивыражение срабатывающее на отключённый JS.
@media (scripting: none) {
}
Медиавыражение имеет три значения:
- Значение
none означает, что браузер не будет запускать скрипты для текущего документа, поскольку он не поддерживает их или поддержка скриптов не активна.- Значение
initial-only означает, что сценарии доступны во время начальной загрузки страницы, но не после.- Значение
enabled означает, что сценарии поддерживаются и активны в текущем документе и в течение всего "времени жизни" документа.Статья: https://blog.stephaniestimac.com/posts/2023/12/css-media-query-scripting/
👍13
Современный CSS-reset с современным CSS-свойствами
В статье рассказывается для чего используется каждое правило.
Статья: https://keithjgrant.com/posts/2024/01/my-css-resets/
@layer reset {
*,
*::before,
*::after {
box-sizing: border-box;
}
body {
margin: unset;
}
button,
input,
textarea,
select {
font: inherit;
}
img,
picture,
svg,
canvas {
display: block;
max-inline-size: 100%;
block-size: auto;
}В статье рассказывается для чего используется каждое правило.
Статья: https://keithjgrant.com/posts/2024/01/my-css-resets/
Keithjgrant
My CSS resets
Every now and then, I see someone post their latest and greatest set of CSS resets.
Here’s mine.
Here’s mine.
🔥3
Как использоваться google.fonts в npm
1.
2.
3.
Подробнее в статье: https://www.amitmerchant.com/google-fonts-as-npm-packages/
1.
npm install @fontsource/roboto2.
import "@fontsource/roboto";3.
body {
font-family: 'Roboto', sans-serif;
}Подробнее в статье: https://www.amitmerchant.com/google-fonts-as-npm-packages/
Делайте область клика больше
Маленькие размеры цели затрудняют нажатие, что приводит к ошибкам. Увеличьте размер цели для более плавного взаимодействия. Проверьте, как это работает: наведите курсор на элемент, заметите разницу? Оптимальный размер цели, согласно рекомендациям, составляет 44x44 пикселя CSS.
- Применяйте закон Фиттса - больше целей, быстрее действия! Не забывайте про интервалы, чтобы избежать случайных нажатий.
- Визуальная обратная связь улучшает пользовательский опыт.
- Тестируйте и адаптируйте различные варианты ввода.
- Учитывайте "проблему толстых пальцев". Перчатки?
- Следите за изменением угла касания.
- Мелкие цели - это проблема.
- Расстояние имеет значение!
- Знайте методы определения размера цели - изучите примеры: навигация по сайту, выпадающие элементы, кнопки-иконки.
Обеспечьте большие размеры для доступности и удобства использования.
Отличнейший мануал по размерам интерактивных элементов: https://ishadeed.com/article/target-size
Маленькие размеры цели затрудняют нажатие, что приводит к ошибкам. Увеличьте размер цели для более плавного взаимодействия. Проверьте, как это работает: наведите курсор на элемент, заметите разницу? Оптимальный размер цели, согласно рекомендациям, составляет 44x44 пикселя CSS.
- Применяйте закон Фиттса - больше целей, быстрее действия! Не забывайте про интервалы, чтобы избежать случайных нажатий.
- Визуальная обратная связь улучшает пользовательский опыт.
- Тестируйте и адаптируйте различные варианты ввода.
- Учитывайте "проблему толстых пальцев". Перчатки?
- Следите за изменением угла касания.
- Мелкие цели - это проблема.
- Расстояние имеет значение!
- Знайте методы определения размера цели - изучите примеры: навигация по сайту, выпадающие элементы, кнопки-иконки.
Обеспечьте большие размеры для доступности и удобства использования.
Отличнейший мануал по размерам интерактивных элементов: https://ishadeed.com/article/target-size
Ishadeed
Designing better target sizes
An interactive guide on designing better target sizes on the web.
🔥1
Safari Technology Preview 186
- Добавлена поддержка
- Добавлена поддержка
- Добавлена поддержка
-
Продолжает играться с
- Добавлена поддержка кольца фокусировки для
- Добавлена поддержка вертикального рендеринга для файлов
и многое другое: https://webkit.org/blog/14916/release-notes-for-safari-technology-preview-186/
- Добавлена поддержка
:any-link,:link и :-webkit-any-link внутри :has()- Добавлена поддержка
:scope внутри @scope.- Добавлена поддержка
align-content ячеек таблицы-
content-visibility теперь анимируемыйПродолжает играться с
<input type="checkbox" switch>- Добавлена поддержка кольца фокусировки для
<input type="checkbox" switch>- Добавлена поддержка вертикального рендеринга для файлов
<input type="checkbox" switch>и многое другое: https://webkit.org/blog/14916/release-notes-for-safari-technology-preview-186/
WebKit
Release Notes for Safari Technology Preview 186
Safari Technology Preview Release 186 is now available for download for macOS Sonoma and macOS Ventura.
Демонстрация того, что сегодня умеют PWA
Оно из самых важных умений это возможность работать с файловой системой. Интересно, а чего не умеет PWA по сравнению с обычным приложением?
Всё внутри: https://whatpwacando.today/
Оно из самых важных умений это возможность работать с файловой системой. Интересно, а чего не умеет PWA по сравнению с обычным приложением?
Всё внутри: https://whatpwacando.today/
whatpwacando.today
What PWA Can Do Today
A showcase of what is possible with Progressive Web Apps today.
👍1
Буквально все разработчики сегодня написали, что вышел Interop 2024.
Основной фокус на этот год:
- Доступность
- CSS вложенность(nesting)
- Кастомные свойства
- Декларативный Shadow DOM
-
- HTTPS URLs для WebSocket
-
- Сетки: флексы и гриды
- События Pointer and Mouse
- Popover API
- Относительные цвета
-
- стили скролбара
-
- Направленность текста
-
- URL
Дашборд
Статья от гуглов - https://web.dev/blog/interop-2024
Основной фокус на этот год:
- Доступность
- CSS вложенность(nesting)
- Кастомные свойства
- Декларативный Shadow DOM
-
font-size-adjust- HTTPS URLs для WebSocket
-
IndexedDB- Сетки: флексы и гриды
- События Pointer and Mouse
- Popover API
- Относительные цвета
-
requestVideoFrameCallback- стили скролбара
-
@starting-style и transition-behavior- Направленность текста
-
text-wrap: balance- URL
Дашборд
Статья от гуглов - https://web.dev/blog/interop-2024
web.dev
Interop 2024 | Blog | web.dev
Again in 2024, all major browser vendors, and other stakeholders, work together to solve the top browsers compatibility issues.
👍2
12 современных обновлений одной строкой для вашего CSS
Посмотреть остальные: https://moderncss.dev/12-modern-css-one-line-upgrades/
/* До */
margin-left: auto;
margin-right: auto;
/* После */
margin-inline: auto;
:is(h1, h2, h3, h4, .text-balance) {
text-wrap: balance;
}p {
text-wrap: pretty;
}Посмотреть остальные: https://moderncss.dev/12-modern-css-one-line-upgrades/
Modern CSS Solutions
12 Modern CSS One-Line Upgrades | Modern CSS Solutions
Sometimes, improving your application CSS just takes a one-line upgrade or enhancement! Learn about 12 properties to start incorporating into your projects, and enjoy reducing technical debt, removing JavaScript, and scoring easy wins for user experience.
🔥7👍1
Практическое введение в анимацию, управляемую прокруткой, с помощью CSS
Узнайте, как привязать прокрутку к анимации элемента.
Статья: https://tympanus.net/codrops/2024/01/17/a-practical-introduction-to-scroll-driven-animations-with-css-scroll-and-view/
scroll() и view()Узнайте, как привязать прокрутку к анимации элемента.
Статья: https://tympanus.net/codrops/2024/01/17/a-practical-introduction-to-scroll-driven-animations-with-css-scroll-and-view/
Codrops
A Practical Introduction to Scroll-Driven Animations with CSS scroll() and view() | Codrops
With just CSS you can add scroll animations that toggle shadows on navbars, reveal images, add scrollytelling, link up carousel elements and much more.
👍2
5 практических примеров использования
Посмотреть примеры: https://bejamas.io/blog/learn-css-has-selector-by-examples-top-use-cases/
:has()Посмотреть примеры: https://bejamas.io/blog/learn-css-has-selector-by-examples-top-use-cases/
Bejamas
Learn CSS :has() selector by examples: 5 top use cases
Discover the power of the :has() selector in CSS with our comprehensive guide. Learn the basics and explore 5 top use cases through 10 practical demos.
👍1🔥1
Автоматически увеличивающиеся элементы форм
Продолжает продвигаться свойство
Пока предлагает два значения:
-
-
Свойство нигде не работает
Продолжает продвигаться свойство
field-sizing, которое позволяет полям формы изменять свой размер под контент. Это удобно, например, для многострочных <textarea>.Пока предлагает два значения:
-
field-sizing: fixed; - значение по умолчанию. Сохраняет текущее поведение.-
field-sizing: content; - отключает функцию сохранения постоянного размера элемента управления формой, позволяя определять размер на основе содержимого.Свойство нигде не работает
😭2😁1😈1
<head>
Самый полный список того, что вы можете указать в
https://github.com/htmlacademy/HEAD, изначально я форкнул репозиторий и просто перевёл его. Оказалось, что оригинальный репозиторий не имеет многих современных мета-тегов, а в итоге стало понятно, что оригинальный репозиторий больше не развивается. Часть мета-тегов я перевёл в "устаревшие" для истории.
Ставьте звёздочки. Если есть предложения по улучшению - пишите мне.
Самый полный список того, что вы можете указать в
<head>.https://github.com/htmlacademy/HEAD, изначально я форкнул репозиторий и просто перевёл его. Оказалось, что оригинальный репозиторий не имеет многих современных мета-тегов, а в итоге стало понятно, что оригинальный репозиторий больше не развивается. Часть мета-тегов я перевёл в "устаревшие" для истории.
Ставьте звёздочки. Если есть предложения по улучшению - пишите мне.
GitHub
GitHub - htmlacademy/HEAD: Список того, что вы можете указать в HEAD
Список того, что вы можете указать в HEAD. Contribute to htmlacademy/HEAD development by creating an account on GitHub.
🔥11💯1
Пагинация
Узнайте всё про визуальный паттерн "Пагинация". В статье шаг за шагом усложняют пагинацию. Из интересного: посмотрите как делать пагинацию для бесконечного контента, например новостные ленты в соц.сетях.
Статья: https://coyleandrew.medium.com/design-better-pagination-a022a3b161e1
Узнайте всё про визуальный паттерн "Пагинация". В статье шаг за шагом усложняют пагинацию. Из интересного: посмотрите как делать пагинацию для бесконечного контента, например новостные ленты в соц.сетях.
Статья: https://coyleandrew.medium.com/design-better-pagination-a022a3b161e1
Medium
Design better pagination
Pagination UI best practices and complex considerations
🔥6
Тренировка JS
Если хотите потренировать HTML/CSS и простой JavaScript, то для вас есть пошаговое руководство по созданию конвертера валюта.
Пошаговое руководство: https://webdesign.tutsplus.com/currency-converter-with-html-css-and-vanilla-javascript--cms-108362t
Если хотите потренировать HTML/CSS и простой JavaScript, то для вас есть пошаговое руководство по созданию конвертера валюта.
Пошаговое руководство: https://webdesign.tutsplus.com/currency-converter-with-html-css-and-vanilla-javascript--cms-108362t
Web Design Envato Tuts+
Create a currency converter with HTML, CSS, and vanilla JavaScript
Let’s create a currency converter using HTML, CSS, and vanilla JavaScript, with data from the Exchange Rate API.
❤2👍2
Когда использовать
Очередная статья подтверждающая слова гуглов, что
Статья: https://blog.stephaniestimac.com/posts/2023/10/css-text-wrap/
text-wrap: balance, а когда pretty?Очередная статья подтверждающая слова гуглов, что
balance лучше использовать для заголовков или чего угодно с маленьким количеством текста, до шести строк, иначе производительность резко падает.h1, h2, h3, h4, h5, h6, blockquote { text-wrap: balance; }pretty же применяется для последних четырёх строк поэтому он чуть более производительный, а значит можно применять к большому массиву текстов.p {
text-wrap: pretty;
}Статья: https://blog.stephaniestimac.com/posts/2023/10/css-text-wrap/
Stephanie Stimac's Blog
When to use CSS text-wrap: balance; vs text-wrap: pretty;
A ruthless look at when to use these two CSS text-wrap values.
Не отключайте кнопки
Не указывайте кнопкам
Вот несколько причин почему так лучше не отключать кнопки:
- Они не дают обратной связи
- Из-за них интерфейс кажется сломанным
- Их трудно заметить
- На них не сфокусироваться (по мне это самое важное)
- Они обманчивы
- Пользователи могут не заметить, что кнопка стала активной
Посмотрите визуально на все проблемы из списка - https://adamsilver.io/blog/the-problem-with-disabled-buttons-and-what-to-do-instead/
Не указывайте кнопкам
disabled, если у вас есть требование заполнить все поля.Вот несколько причин почему так лучше не отключать кнопки:
- Они не дают обратной связи
- Из-за них интерфейс кажется сломанным
- Их трудно заметить
- На них не сфокусироваться (по мне это самое важное)
- Они обманчивы
- Пользователи могут не заметить, что кнопка стала активной
Посмотрите визуально на все проблемы из списка - https://adamsilver.io/blog/the-problem-with-disabled-buttons-and-what-to-do-instead/
Adamsilver.io
The problem with disabled buttons and what to do instead
Adam Silver – interaction designer - London, UK