ar
Feedback
Фронтенд Гайд

Фронтенд Гайд

الذهاب إلى القناة على Telegram

Канал для фронтендеров, много полезных лайфхаков, фичей, макетов, тестов! Все представлено в виде готового кода, бери и юзай в своем проекте. 6ad1a2aabe82d4fbb0d6

إظهار المزيد
6 285
المشتركون
+124 ساعات
-157 أيام
-7330 أيام
أرشيف المشاركات
👩‍💻 Shiny call-to-action button — Анимированная кнопка с эффектом при наведении.
Сделана на чистом CSS
🔗 Открыть код

⚙️ Скриншоты сайта в адаптивную Tailwind верстку Расскажу, как я накатал Python-скрипт (~200 строк), который из трёх скринов
⚙️ Скриншоты сайта в адаптивную Tailwind верстку
Расскажу, как я накатал Python-скрипт (~200 строк), который из трёх скринов сайта (десктоп/планшет/мобила) собирает одну адаптивную HTML-вёрстку на Tailwind; код, демо и подводные камни.
🔗 Читать статью

В React-списке с контролируемыми можно удалять элементы из середины. Сейчас key — индекс массива. Пользователи жалуются, что текст «переезжает» в соседние строки после удаления. Что делать?
Anonymous voting

👩‍💻 Text Illumination — Сцена с анимированным появлением текста.
Сделана на SVG и CSS
🔗 Открыть код

Настраиваете CSP. Нужно запретить любой инлайн-JS, но оставить один критичный инлайн-скрипт, который меняется на каждом ответе. Скрипты грузятся с вашего домена и CDN. Что выбрать?
Anonymous voting

Зачем используется свойство dataset в JavaScript и когда его применять? Свойство dataset позволяет получать и изменять пользовательские атрибуты data-* у HTML-элементов. Это удобный способ хранить дополнительную информацию прямо в разметке, не перегружая код. Пример:
<button id="btn" data-user-id="42" data-role="admin">Click me</button>
<script>
  const btn = document.getElementById("btn");
  console.log(btn.dataset.userId); // "42"
  console.log(btn.dataset.role);   // "admin"
</script>
📌В этом примере dataset даёт доступ к атрибутам data-user-id и data-role.
dataset удобно использовать для передачи параметров в JS без жёсткой привязки к классам или id: идентификаторы пользователей, статусы элементов, флаги состояния. Это делает код более гибким, читаемым и декларативным.

photo content

👩‍💻 Fluid Simulation — Сцена с интересной симуляцией жидкости с текстом.
Сделана на CSS и JavaScript
🔗 Открыть код

В PWA нужен быстрый онлайновый старт, фоновое обновление и оффлайн-фоллбэк. Какую стратегию выбрать для HTML и статических ассетов (rev-hash в именах)?
Anonymous voting

⚙️ Поиск на RxJS и Taiga UI Разбираем, как собрать несколько внешних поисков (люди, ссылки, исходники), скелетоны и обработку
⚙️ Поиск на RxJS и Taiga UI
Разбираем, как собрать несколько внешних поисков (люди, ссылки, исходники), скелетоны и обработку ошибок, подключать новые источники без правок UI. Операторы, профит
🔗 Читать статью

Вы на странице A. С высокой вероятностью через пару секунд пользователь перейдёт на страницу товара B. Нужно ускорить первую отрисовку B, не мешая текущему рендеру A и не ломая кеши. Что лучше сделать?
Anonymous voting

photo content

👩‍💻 Idea Form — Анимированная форма для ввода с появлением при нажатии.
Сделана на SCSS и TypeScript
🔗 Открыть код

⚙️ Как гуманитарий создал сайт с нуля при помощи DeepSeek. Примеры рабочих промптов История о том, как гуманитарий себе сайт
⚙️ Как гуманитарий создал сайт с нуля при помощи DeepSeek. Примеры рабочих промптов
История о том, как гуманитарий себе сайт навайбкодил. Внутри - примеры промптов, код и размышления на тему RLHF
🔗 Читать статью

Статический CSS отдается с Cache-Control: public, max-age=31536000, immutable. Через неделю вышло изменение. Какой подход — best practice — чтобы пользователи получили новую версию без очистки кеша у себя?
Anonymous voting

👩‍💻 Signature animation — Поле для ввода подписи с интересной анимацией.
Сделана на SVG, CSS и JavaScript
🔗 Открыть код

Что происходит при установке нового Service Worker, если старый ещё контролирует страницы?
Anonymous voting

Зачем используется метод addEventListener() в JavaScript и когда его применять? Метод addEventListener() позволяет навесить обработчик события на элемент, не перезаписывая уже существующие. Это гибкий способ реагировать на действия пользователя или изменения в документе. Пример:
const button = document.querySelector("button");

button.addEventListener("click", () => {
  console.log("Кнопка нажата!");
});
📌В этом примере addEventListener() добавляет обработчик клика по кнопке.
addEventListener() удобно использовать для работы с кликами, вводом текста, прокруткой, ресайзом окна и любыми другими событиями. Он поддерживает множественные обработчики, удаление через removeEventListener() и захват событий, что делает его универсальным инструментом для работы с DOM.

photo content

👩‍💻 Button with tooltip hover timing feedback — Панель плеера с подсказками при наведении.
Сделана на SVG и CSS
🔗 Открыть код