This media is not supported in your browser
VIEW IN TELEGRAM
С помощью overflow-anchor можно обойтись без MutationObserver и scrollTo():
<div id="scroller">
...
<div id="anchor"></div>
</div>
#scroller * { overflow-anchor: none; }
#anchor { overflow-anchor: auto; height: 1px; }
Отключаем scroll anchoring для содержимого и оставляем его только на элементе в конце списка. Браузер использует его как якорь и удерживает скролл у нового контента.
#readme
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🥰2🌚2
📐 Делаем fluid-значения в CSS предсказуемыми
clamp() отлично подходит для адаптивных размеров, но результат может быть вроде 19.7px или 143.2px.
Функция round() позволяет привязать вычисленное значение к нужному шагу:
Теперь размер будет двигаться по шагам: 16px → 20px → 24px → 28px → 32px. Можно использовать up, down, nearest или to-zero.
Особенно полезно для типографики, spacing и привязки элементов к layout grid.
📍 Навигация: [Вакансии]
🐸 Библиотека фронтендера
#readme #css
clamp() отлично подходит для адаптивных размеров, но результат может быть вроде 19.7px или 143.2px.
Функция round() позволяет привязать вычисленное значение к нужному шагу:
.title {
--size: clamp(1rem, 1rem + 2cqw, 2rem);
font-size: round(down, var(--size), 4px);
}
Теперь размер будет двигаться по шагам: 16px → 20px → 24px → 28px → 32px. Можно использовать up, down, nearest или to-zero.
Особенно полезно для типографики, spacing и привязки элементов к layout grid.
#readme #css
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2🔥2🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
sibling-index() и sibling-count() — позволяют получить позицию элемента среди соседей и их общее количество. Удобно, например, для динамических эффектов и декоративных раскладок.Теперь обе возможности доступны во всех основных браузерах.
А в экспериментальном режиме Firefox 154 также получил progress() — ещё один интересный шаг в сторону более гибной fluid-типографики.
#release_digest
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤3🥰1🎉1
🔥 — 1 2 3
❤️ — undefined undefined undefined
🥰 — 3 3 3
🤔 — 0 1 2
🐸 Библиотека фронтендера
#code_challenge #js
❤️ — undefined undefined undefined
🥰 — 3 3 3
🤔 — 0 1 2
#code_challenge #js
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰71❤19🔥4🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Port-Whisperer — CLI для тех случаев, когда на 3000, 5173 или другом порту внезапно уже что-то запущено.
Полезная утилита для локальной разработки, особенно когда одновременно работают несколько проектов.
#stack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🥰3🔥1🥱1
Разделённые поля, кастомные маски, десятки строк JS и ещё одна зависимость в бандле — всё это часто делают ради обычного одноразового кода.
#read_watch
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🥰3
Если приложение «работает у вас», это не показатель. Важно понимать, под какие версии браузеров фактически собирается билд.
npx browserslist
Команда выводит реальный список целевых браузеров на основе .browserslistrc или package.json.
— транспиляцию через
@babel/preset-env— CSS-префиксы (Autoprefixer)
— подключение polyfills
— размер bundle
Без проверки вы либо раздуваете сборку, либо теряете совместимость. Browserslist — инструмент контроля, а не просто CLI-утилита.
#readme
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🥰3😁2
This media is not supported in your browser
VIEW IN TELEGRAM
liquid-gooey превращает обычные React-компоненты в «жидкие» интерфейсы: элементы могут сливаться, тянуться друг за другом и плавно менять форму.
Эффект применяется к отдельному SVG-слою, а настоящий DOM остаётся сверху. Поэтому текст, иконки, фокус и интерактивность не страдают от blur-фильтров.
npm install liquid-gooey
<Liquid blur={6} contrast={18}>
<Liquid.Item x={open ? -54 : 0} y={open ? -34 : 0}>
<button>Menu</button>
</Liquid.Item>
</Liquid>
Есть поддержка Safari, prefers-reduced-motion, CSS-темизации и MIT-лицензия.
#stack
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤4👏2🥰1
Вы пишите let x = 1 + 2, а под капотом V8 уже строит синтаксическое дерево, генерирует байт-код и думает, стоит ли компилировать это в машинный код.
Что в карточках:
— Как V8 парсит и интерпретирует код
— Что делает TurboFan и зачем нужен байт-код
— Как работает сборка мусора
— И почему порядок добавления свойств в объект — это не мелочь
Если хотите писать реально быстрый JS, нужно понимать, как его читает движок.
#under_hood
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍2🥰2
❤️ — да, постоянно читаю
👍 — иногда читаю
👾 — почти не обращаюсь к книгам, получаю знания из других источников
Посоветуйте в комментариях книги, которые показались вам наиболее полезными.
Больше полезных книг — у нас в канале @progbook
#career_merge
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30👾16❤8🥰1
И ещё несколько изменений для PWA, WebGPU, медиа и безопасности.
#release_digest
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🥰2
This media is not supported in your browser
VIEW IN TELEGRAM
Вместо чтения про "Union type позволяет переменной быть одним из нескольких типов" — видишь схему, и всё сразу понятно.
Что покрывает:
#readme #ts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🥰2