Пока не сталкиваешься с App Router.
Что выбрать: usePathname() или useSelectedLayoutSegments()? Как показать pending-состояние при переходе? Почему ссылка может мигнуть после загрузки страницы? И при чём тут cacheComponents и гидрация?
Подготовили 5 карточек, где разобрали основные подходы и подводные камни при создании собственного NavLink в Next.js.
Сохраняйте в закладки — пригодится каждому, кто работает с App Router
#under_hood
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🥰2
This media is not supported in your browser
VIEW IN TELEGRAM
Нашли забавную JavaScript-библиотеку easter-egg-collection, которая добавляет на сайт десятки скрытых анимаций и эффектов.
Достаточно подключить библиотеку и ввести секретное слово вроде:
unicorn 🦄
mario 🎮
pikachu ⚡
nyancat 🌈
sonic 💨
После этого на странице появится соответствующая анимация или персонаж.
#stack
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰4😁3
This media is not supported in your browser
VIEW IN TELEGRAM
Нужно проверить, как блок будет выглядеть в другом месте страницы? Не спешите открывать редактор и менять HTML.
Это удобно для быстрой проверки:
— как изменится вёрстка
— влияет ли родительский контейнер на элемент
— не ломаются ли стили после перестановки
— где именно находится проблема в разметке
#readme #devtools
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4👍2🥰2
Обновили сайдбары, добавили встроенную тёмную тему, улучшили доступность, панорамирование, зум и отображение выбранных нод.
Из полезного:
🟢 можно разделять сайдбары и держать несколько панелей открытыми🟢 Debug-панель теперь можно ставить на паузу🟢 Function node умеет вызывать Link nodes через node.linkcall()🟢 появились GitHub-style alerts в Markdown🟢 добавили больше TLS-настроек и усилили authentication🟢 минимальная версия Node.js теперь 22.9.0, рекомендуется Node.js 24
#release_digest
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🥰2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁10
В Firefox Nightly появился экспериментальный атрибут headingoffset, который автоматически повышает уровень вложенных заголовков.
Пример:
<section headingoffset="1">
<h1>Новости</h1>
</section>
Для браузера такой заголовок станет h2. Если вложить ещё один контейнер с
headingoffset="1", следующий h1 уже будет восприниматься как h3.🟢 для переиспользуемых компонентов🟢 для Web Components🟢 для CMS, где редакторы не должны думать о структуре документа🟢 для автоматического построения корректной иерархии заголовков
Сейчас функция доступна только в Firefox Nightly за флагом dom.headingoffset.enabled, но идея интересная: компонент сам остаётся независимым от контекста страницы, а уровень заголовка определяется местом использования.
#readme #html #a11y
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰3
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰3
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰4🥱2
Любой Pen из нового редактора можно превратить в отдельный сайт буквально одной кнопкой.
Что есть:
— случайный поддомен вида project.codepen.app
— собственный домен через DNS
— субдомены через CNAME
— apex-домены через A-записи
Полезно для:
⚡ пет-проектов
⚡ демо для заказчиков
⚡ лендингов
⚡ прототипов
⚡ тестовых заданий
#stack
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍3🥰2
Раньше для разделителей между элементами Grid и Flex приходилось использовать бордеры, псевдоэлементы, фоновые градиенты и другие обходные пути.
Теперь появляются row-rule и column-rule — свойства, которые позволяют рисовать линии прямо внутри gap.
.grid {
display: grid;
gap: 20px;
column-rule: 2px solid #ff4d4f;
row-rule: 2px solid #ff4d4f;
}
— разные стили для каждой линии через repeat()
— управление пересечениями через rule-break
— настройка отступов у линий через rule-inset
— анимации цвета, толщины и поведения разделителей
— работа как с Grid, так и с Flex
⚠️ Пока поддержка ограничена: Chromium и Safari Technology Preview.
#readme #css
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🥰3
⏰ Уже сегодня в 19:00 (МСК) стартует наш открытый урок!
Знаем, летом хочется отложить учёбу на осень. Но пока остальные отдыхают 😅, мы предлагаем без лишней конкуренции прокачать свой workflow и начать закрывать тикеты в три раза быстрее.
Тема:
Мы покажем живой разбор реального проекта: как с помощью AI-ассистентов мгновенно разбираться в чужой кодовой базе, искать нужные участки и собирать Pull Request. Только рабочие промпты, которые сэкономят вам часы рутины.
🎙 Спикер — Ольга Лукьянова, руководитель команды в SourceCraft (18+ лет развивала инструменты в JetBrains и Huawei).
👉 Узнать, как ускорить разработку с AI
Знаем, летом хочется отложить учёбу на осень. Но пока остальные отдыхают 😅, мы предлагаем без лишней конкуренции прокачать свой workflow и начать закрывать тикеты в три раза быстрее.
Тема:
«AI-инструменты в разработке: пишем код быстрее»
Мы покажем живой разбор реального проекта: как с помощью AI-ассистентов мгновенно разбираться в чужой кодовой базе, искать нужные участки и собирать Pull Request. Только рабочие промпты, которые сэкономят вам часы рутины.
🎙 Спикер — Ольга Лукьянова, руководитель команды в SourceCraft (18+ лет развивала инструменты в JetBrains и Huawei).
👉 Узнать, как ускорить разработку с AI
🥰3
console.log("1");
Promise.resolve().then(() => {
console.log("2");
});
setTimeout(() => {
console.log("3");
}, 0);
console.log(«4»);
Сначала JavaScript выполняет весь синхронный код:
console.log("1");
console.log("4");
Потом Event Loop обрабатывает microtasks — туда попадает Promise.then(). И только после этого выполняются обычные tasks, например setTimeout(..., 0).
👍 — знал/а
🔥 — стало понятнее
#career_merge
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🥱8🔥2🥰1
Хотим вынести туда короткий формат: быстрые находки, мини-опросы, ссылки и идеи, которые не тянут на отдельный пост.
Сторис открываются через бусты — кнопка ниже.
Спасибо, вы лучшие
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰4
Большинство разработчиков знает про as const. Но во многих случаях полезнее использовать satisfies.
Он позволяет одновременно:
Особенно полезно для:
— конфигов
— роутов
— словарей переводов
— feature flags
— объектов настроек
В отличие от обычной типизации, satisfies проверяет структуру объекта, но не теряет информацию о конкретных значениях.
#readme
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5💯2🥰1
Vite+ — инструмент, который объединяет несколько популярных решений в один CLI.
Что входит:
Вместо набора:
npm run dev
npm run lint
npm run format
npm run test
можно использовать команды через vp.
#stack #vite
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🥰2
Обычно Symbol создают вручную:
const a = Symbol("a");
const b = Symbol("b");
const c = Symbol(«c»);
const createSymbols = new Proxy({}, {
get(_, prop) {
return Symbol(prop);
},
});
const { a, b, c } = createSymbols;
Symbol("a")
Symbol("b")
Symbol(«c»)
Под капотом всё работает через перехват доступа к свойствам объекта.
Практической необходимости в таком подходе немного, но это интересный пример того, как можно использовать Proxy для создания динамических API и DSL-подобных конструкций
#readme
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4🥰2
В карточках разберём 4 ключевых изменения, которые сделали V9 быстрее, удобнее и масштабируемее.
#under_hood
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🥰2👍1🔥1