Baseline caniuse
А тем временем Baseline появился в caniuse. Отличный пример разобраться с разными уровнями Baseline, на примере гридов и сабгридов. Если гриды уже прописались во всех браузерах, то сабгриды являются новичками в основных браузерах.
https://caniuse.com/?search=grid
А тем временем Baseline появился в caniuse. Отличный пример разобраться с разными уровнями Baseline, на примере гридов и сабгридов. Если гриды уже прописались во всех браузерах, то сабгриды являются новичками в основных браузерах.
https://caniuse.com/?search=grid
🔥1
Safari 17.2
HTML
- Теперь теги
- Можно делать поля ввода для одноразовых кодов
CSS
- CSS Nesting: вкладывать теперь можно без
- Новые юниты:
- CSS Motion Path:
offset-position поддержка circle() и ellipse()
offset-position: normal
coord-boxПараметры и <position> внутри ray()
rect() и xywh() фигуры
- Анимации:
- Математические функции:
- Счётчики:
- Границы маски:
mask-border-mode
mask-border-outset
mask-border-repeat
mask-border-slice
mask-border-source
mask-border-width
- API Custom Highlights: псевдоэлемент
- Адаптивные изображения:
и многое-многое другое в https://webkit.org/blog/14787/webkit-features-in-safari-17-2/
HTML
- Теперь теги
details/summary могут делать аккордеоны, с помощью атрибута name- Можно делать поля ввода для одноразовых кодов
<label for="onetimecode">Enter code:</label>
<input name="onetimecode" id="onetimecode" type="text" autocomplete="one-time-code">
CSS
- CSS Nesting: вкладывать теперь можно без
&article {
h1 {
font-size: 1.8rem;
}
p {
font-size: 1.2rem;
}
}- Новые юниты:
lh, rlh, rcap, rex, ric,rch, cap, ex, ic, ch- CSS Motion Path:
offset-position поддержка circle() и ellipse()
offset-position: normal
coord-boxПараметры и <position> внутри ray()
rect() и xywh() фигуры
- Анимации:
linear(), - Математические функции:
rem(), mod(), round()- Счётчики:
counter-set, предоставляет возможность изменять число в счетчике без создания нового счетчика- Границы маски:
mask-border-mode
mask-border-outset
mask-border-repeat
mask-border-slice
mask-border-source
mask-border-width
- API Custom Highlights: псевдоэлемент
::selection- Адаптивные изображения:
<link rel="preload"
as="image"
imagesrcset="flowers-small.jpg 400w,
flowers-medium.jpg 800w,
flowers-large.jpg 1200w,
flowers-extralarge.jpg 1500w"
imagesizes="50vw">
и многое-многое другое в https://webkit.org/blog/14787/webkit-features-in-safari-17-2/
Медиавыражения для <video>
Ну в целом-то всё понятно. Делай так
и будет хорошо всем пользователям. И даже так
заработает.
Но знайте, что работа
- При изменении размеров экрана
- В
- В
Статья: https://scottjehl.com//posts/using-responsive-video/
Ну в целом-то всё понятно. Делай так
<video>
<source media="(min-width: 2000px)" src="large.webm" type="video/webm">
<source media="(min-width: 2000px)" src="large.mp4" type="video/mp4">
<source media="(min-width: 1000px)" src="medium.webm" type="video/webm">
<source media="(min-width: 1000px)" src="medium.mp4" type="video/mp4">
<source src="small.webm" type="video/webm">
<source src="small.mp4" type="video/mp4">
</video>
и будет хорошо всем пользователям. И даже так
<video>
<source src="landscape.mp4" type="video/mp4" media="(orientation: landscape)">
<source src="portrait.mp4" type="video/mp4">
</video>
заработает.
Но знайте, что работа
<source> для <picture> и <video> отличается:- При изменении размеров экрана
<video> не подгрузит более подходящий видеофайл под разрешение. Например, если вы зашли с десктопа, загрузится самая лучшая версия, при сужении окна будет продолжать показывать изначальная версия видео.- В
<video> вы указывает источники с помощью src, а не srcset, но возможно скоро это изменится- В
<video> единственным источником ресурса может быть только <source>. В <picture> также используется <img>Статья: https://scottjehl.com//posts/using-responsive-video/
Scottjehl
How to Use Responsive HTML Video (...and Audio!) | Scott Jehl, Web Designer/Developer
Now that responsive HTML video delivery works across all browsers, let's look at how to use it
Моя активность в гитхаб за 2023 год - https://githubunwrapped.com/nikolai-shabalin. За создание видео отвечают Remotion с помощью веб-технологий.
Можете проверить свою https://githubunwrapped.com/
Можете проверить свою https://githubunwrapped.com/
Githubunwrapped
nikolai-shabalin's #GitHubUnwrapped
See nikolai-shabalin's year in review and get your own.
👍3🔥2
Пока мы все вместе дружно любим ESLint, у него появляются конкуренты. Это Здорово.
Вышел Oxlint - линтер JavaScript, предназначенный для обнаружения ошибочного или бесполезного кода, не требующий каких-либо настроек по умолчанию. Сами о себе ребята завляют, что они в 50-100 раз быстрее ESLint.
Из интересного это то, что у линтера более привлекательная информация об ошибках.
Посмотрим. Последим за развитием.
Вышел Oxlint - линтер JavaScript, предназначенный для обнаружения ошибочного или бесполезного кода, не требующий каких-либо настроек по умолчанию. Сами о себе ребята завляют, что они в 50-100 раз быстрее ESLint.
Из интересного это то, что у линтера более привлекательная информация об ошибках.
Посмотрим. Последим за развитием.
❤2
Preconnect
сразу устанавливает соединение с google.fonts, чтобы скачивание шрифтовых файлов произошло раньше.
Подобный трюк можно делать и для других внешних ресурсов, но только если вы убеждены, что это критически важные ресурсы.
Статья: https://csswizardry.com/2023/12/correctly-configure-preconnections/
<link rel="preconnect" href="https://fonts.googleapis.com">
сразу устанавливает соединение с google.fonts, чтобы скачивание шрифтовых файлов произошло раньше.
precconect не ускоряет скорость скачивание, а лишь раньше производит соединение с сервисом.Подобный трюк можно делать и для других внешних ресурсов, но только если вы убеждены, что это критически важные ресурсы.
Статья: https://csswizardry.com/2023/12/correctly-configure-preconnections/
Csswizardry
Correctly Configure (Pre) Connections – CSS Wizardry
We’re probably familiar with preconnect, but are we getting it right?
В этот раз без статьи. Желаю просто хорошенько отдохнуть на выходных
❤7👍2👏1
Иногда решение приходит мгновенно по проблеме, которая возникла только что. Заметили на курсах, что студенты приходят с уже установленным VS Code, с настройками под свои хотелки, которые не всегда гладко работают при работе на курсе. Особенно мешает Prettier, который постоянно диктует свои правила.
Придумали решение это проблеме — профили! В VS Code профили устанавливаются рядом с вашим профилем. Можно переходить из одного профиля в другой, при этом все любимые изначальные настройки никуда не теряются.
Встречайте vscode-profile-htmlacademy, доступный для открытого обсуждения.
Придумали решение это проблеме — профили! В VS Code профили устанавливаются рядом с вашим профилем. Можно переходить из одного профиля в другой, при этом все любимые изначальные настройки никуда не теряются.
Встречайте vscode-profile-htmlacademy, доступный для открытого обсуждения.
👍8
Как сделать кнопку "Вверх" на чистом CSS
Всё очень просто
Посмотреть: https://codepen.io/expa/pen/yLZmdpL?editors=0100
Всё очень просто
margin-top: 110vh;
position: sticky;
Посмотреть: https://codepen.io/expa/pen/yLZmdpL?editors=0100
👍4
Facebook выпустил новую CSS-in-JS библиотеку StyleX
Работает со всеми фреймворками: React, Preact, Solid, Angular. Особенно полезен для крупных проектов и сложных систем проектирования, используемых несколькими командами.
Статья: https://habr.com/ru/articles/781166/
Работает со всеми фреймворками: React, Preact, Solid, Angular. Особенно полезен для крупных проектов и сложных систем проектирования, используемых несколькими командами.
Статья: https://habr.com/ru/articles/781166/
Хабр
Обзор на новую CSS-in-JS либу от Facebook* – StyleX
Недавно компания Facebook* (aka Meta**) выпустила в опенсорс собственную CSS-in-JS библиотеку под названием StyleX . По заявлениям разработчиков, она отлично подходит для больших проектов и ключевым...
🤯1
Firefox 121
HTML
-
CSS
-
-
-
JS
-
-
и многое другое: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/121
HTML
-
<iframe loading=lazy>CSS
-
:has()-
handing и each-line для `text-indent-
balance для text-wrapJS
-
Promise.withResolvers()-
Date.parse() теперь принимает несколько дополнительных форматов датыи многое другое: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/121
👍3
Очередной роадмэп по фронтенду
Стоит пролистнуть. Может быть вас это вдохновит на новогодние каникулы =)
Статья: https://habr.com/ru/companies/kts/articles/775948/
Стоит пролистнуть. Может быть вас это вдохновит на новогодние каникулы =)
Статья: https://habr.com/ru/companies/kts/articles/775948/
Хабр
Роадмэп по современному фронтенду от KTS
Привет! Меня зовут Фёдор, я фронтенд-тимлид в KTS и преподаватель школы Metaclass . Перед одним из потоков курса « Начинающий React-разработчик » мы провели вебинар, на котором рассказали, что из себя...
🔥3
Смена сетки от количества дочерних элементов
Иногда бывает полезно изменить сетку. Например, для <5 элементов - крупные ячейки, а для >10 мелкие ячейки. Раньше верстальщики это делали с помощью бэкендеров, которые генерили им модификаторы, ведь только бэкенд знал какое количество элементов будет отображено.
Сейчас это может сделать CSS с помощью
Статья: https://frontendmasters.com/blog/quantity-queries-are-very-easy-with-css-has/
Иногда бывает полезно изменить сетку. Например, для <5 элементов - крупные ячейки, а для >10 мелкие ячейки. Раньше верстальщики это делали с помощью бэкендеров, которые генерили им модификаторы, ведь только бэкенд знал какое количество элементов будет отображено.
Сейчас это может сделать CSS с помощью
:has()..element {
&:has(> :nth-child(10)) {
/* если элементов больше 10 */
}
}Статья: https://frontendmasters.com/blog/quantity-queries-are-very-easy-with-css-has/
master.dev
Quantity Queries are Very Easy with CSS :has()
What is a quantity query? It’s a bit of CSS that allows you to style an element (and its descendants) based on how many children the element has. Example of a Quantity Query Situation Imagine a homepage currently showing 20 articles, more than you normally…
🔥1
mask-compositeВ Figma, да и в других графических редакторах, есть возможность накладывать маску на маску, но у наложения может быть несколько вариантов. Например, маска снизу удаляет пиксели маски сверху, или маска просто накладывается сверху без какого-либо просвечивания, или маска которая перекрывает забирает себе пиксели другой маски.
В общем, как вы поняли этим можно управлять в вебе: https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-composite
MDN Web Docs
-webkit-mask-composite - CSS | MDN
The -webkit-mask-composite property specifies the manner in which multiple mask images applied to the same element are composited with one another. Mask images are composited in the opposite order that they are declared with the -webkit-mask-image property.
👍1
Ещё не занимались производительностью своих проектов? Можно начать
Отличная статья https://www.htmhell.dev/adventcalendar/2023/14/ , чтобы познакомиться с метриками. Помните всякие LPC, INP, CLS? В статье эти метрики подробно рассматриваются.
Также статья прекрасна тем, что освещает сервисы помимо Lighthouse. Lighthouse хороший инструмент, но есть другие варианты: GTMetrix, WebPageTest.
Отличная статья https://www.htmhell.dev/adventcalendar/2023/14/ , чтобы познакомиться с метриками. Помните всякие LPC, INP, CLS? В статье эти метрики подробно рассматриваются.
Также статья прекрасна тем, что освещает сервисы помимо Lighthouse. Lighthouse хороший инструмент, но есть другие варианты: GTMetrix, WebPageTest.
Движемся к CSS4.
3 современных CSS-свойства, которые должен иметь ваш сайт
Коротко:
-
-
-
Подробно: https://bejamas.io/blog/modern-css-properties-your-website-must-have/
3 современных CSS-свойства, которые должен иметь ваш сайт
Коротко:
-
scroll-margin-
color-scheme-
text-wrap: pretty||balanceПодробно: https://bejamas.io/blog/modern-css-properties-your-website-must-have/
Bejamas
3 modern CSS properties your website must have
Fix UI issues with scroll-margin, color-scheme & text-wrap and learn about them with practical demos.
👍1
Быстрый HTML
Вы же знали, что браузер не понимает HTML? Ну на самом деле понимает, но делает это через этап анализа HTML-разметки и превращения разметки в DOM. Дальнейшая работа происходит именно с DOM.
В 2023 году команда V8 решила сходить в гости в Blink и оптимизировать анализатор HTML. Теперь анализ HTML работает на 3.4% быстрее.
Ребята из WebKit посмотрели на это улучшение и вкатили его к себе.
Про улучшения V8: https://v8.dev/blog/holiday-season-2023 - один из самых моих любимых блогов. Там задроты пишут для задротов =)
Вы же знали, что браузер не понимает HTML? Ну на самом деле понимает, но делает это через этап анализа HTML-разметки и превращения разметки в DOM. Дальнейшая работа происходит именно с DOM.
В 2023 году команда V8 решила сходить в гости в Blink и оптимизировать анализатор HTML. Теперь анализ HTML работает на 3.4% быстрее.
Ребята из WebKit посмотрели на это улучшение и вкатили его к себе.
Про улучшения V8: https://v8.dev/blog/holiday-season-2023 - один из самых моих любимых блогов. Там задроты пишут для задротов =)
v8.dev
V8 is Faster and Safer than Ever! · V8
V8's impressive accomplishments in 2023
👍2
Vercel открыл доступ всем желающим на свой продукт v0.
v0 - генератор, с ИИ, создающий компоненты по текстовому описанию, например "Сделай форму оплаты". Результатом работы будет React-компонент. Можно посмотреть разметку, стилизацию. Стили, вроде бы, написаны на Tailwind.
Разметка приемлемая.
v0 - генератор, с ИИ, создающий компоненты по текстовому описанию, например "Сделай форму оплаты". Результатом работы будет React-компонент. Можно посмотреть разметку, стилизацию. Стили, вроде бы, написаны на Tailwind.
Разметка приемлемая.
v0.app
v0 by Vercel - Build Full-Stack Web Apps with AI
Your collaborative AI assistant to design, iterate, and scale full-stack applications for the web.
👍4
Ну что. Закрываем редакторы кода и идём отдыхать!
Всем хороших выходных
Всем хороших выходных