fa
Feedback
Логово верстальщика

Логово верстальщика

رفتن به کانال در Telegram

Логово верстальщиков: HTML, CSS, JavaScript, практики современной верстки, вайбкодинг и использование ИИ в разработке. Личный блог автора - @just_genych По вопросам рекламы или разработки: @g_abashkin

نمایش بیشتر
8 252
مشترکین
+124 ساعت
-237 روز
+7330 روز
آرشیو پست ها
👩‍💻 Адаптивный блок с равными колонками Создайте адаптивный блок, который содержит три колонки одинаковой ширины. На больших экранах (от 1024px) колонки должны располагаться в один ряд, на планшетах (от 768px до 1023px) — в два ряда по две и одну, а на мобильных устройствах (до 767px) — каждая колонка должна занимать всю ширину. Ожидаемое поведение: На больших экранах: три колонки в один ряд. На планшетах: две колонки в первом ряду, одна во втором. На мобильных: каждая колонка занимает всю ширину. Решение задачи🔽
<div class="container"> <div class="column">Колонка 1</div> <div class="column">Колонка 2</div> <div class="column">Колонка 3</div> </div> .container { display: flex; flex-wrap: wrap; gap: 16px; /* Отступы между колонками */ margin: 0 auto; max-width: 1200px; } .column { background-color: #4CAF50; color: white; padding: 20px; text-align: center; border-radius: 8px; flex: 1 1 calc(33.333% - 16px); /* Для больших экранов */ box-sizing: border-box; } /* Планшеты: две колонки в первом ряду */ @media (max-width: 1023px) { .column { flex: 1 1 calc(50% - 16px); } } /* Мобильные устройства: одна колонка в строке */ @media (max-width: 767px) { .column { flex: 1 1 100%; } }

👩‍💻 Всё ли ты знаешь о работе с асинхронностью? Думаете, что знаете вообще все об асинхронности в JavaScript? Уверены, что так оно и есть. Но проверить свои знания никогда не помешает — для этого как раз собрали эту небольшую викторину. Читать...

👩‍💻 CSS Веерное раскрытие с grid и @property Анимация веерное раскрытие подразумевает последовательное раскрытие элементов из стопки с эффектом подпрыгивания. Используя CSS grid, мы избавляемся от лишней работы по позиционированию. Читать...

👩‍💻 Сравнение способов отрисовки спрайтов в canvas Статья описывает исследование различных методов отрисовки изображений в HTML5 Canvas для браузерных игр с мультиплеером. Автор делится находками по оптимизации производительности, основанными на проекте для курсовой. Читать...

👩‍💻 Шорткаты VS Code, с которыми ввод кода напоминает игру на пианино Застряли в замкнутом круге "клавитура-мышка", из-за которого устаете и теряете время при написании кода? Представляем вашему вниманию полезные шорткаты VS Code, которые избавят от этих проблем. Читать...

👩‍💻 Создание адаптивного круга с текстом по центру Создайте круглый элемент с текстом по центру. Круг должен адаптироваться под размер экрана: на больших экранах его размер — 200px, на планшетах — 150px, а на мобильных устройствах — 100px. Ожидаемое поведение: Круглый элемент с текстом по центру. Размер круга меняется в зависимости от ширины экрана. Решение задачи🔽
<div class="circle">Текст</div> .circle { display: flex; align-items: center; justify-content: center; background-color: #4CAF50; color: white; border-radius: 50%; text-align: center; font-size: 1.2em; } /* Размер для больших экранов */ @media (min-width: 1024px) { .circle { width: 200px; height: 200px; } } /* Размер для планшетов */ @media (min-width: 768px) and (max-width: 1023px) { .circle { width: 150px; height: 150px; } } /* Размер для мобильных устройств */ @media (max-width: 767px) { .circle { width: 100px; height: 100px; } }

⚙️ Напоминание, что scope и блоки стилей HTML — это мощное сочетание Существует так много различных инструментов для написания CSS с ограниченной областью видимости с очень разными взглядами на то, как это делать. Иногда это лишь подфункция инструмента, выполняющего другие задачи. Но, как правило, это концепция, требующая инструментария для реализации. Читать...

👩‍💻 В чем разница между em и rem в CSS? В CSS em и rem — это относительные единицы измерения, используемые для задания размеров шрифтов, отступов, полей и других стилей. em основывается на размере шрифта родителя, тогда как rem ориентирован на размер шрифта корневого элемента (html), что делает его предсказуемым и удобным для масштабирования. ➡️ Пример:
html {
  font-size: 16px; /* Базовый размер шрифта */
}

.container {
  font-size: 2em; /* 32px, основывается на размере родителя */
  margin: 1rem;   /* 16px, независимо от родителя */
}
🗣️ Использование rem помогает сохранить консистентность размеров при вложенных элементах, а em подходит для адаптивного дизайна, когда размеры зависят от родителей.
🖥 Подробнее тут

💥 Нас кинули на курсах — но мы не сдались! Потратили деньги и нервы — в итоге доучивались сами. Не ведитесь на курсы: всё ну
💥 Нас кинули на курсах — но мы не сдались! Потратили деньги и нервы — в итоге доучивались сами. Не ведитесь на курсы: всё нужное уже есть в бесплатных каналах. Выбирай направление: 👩‍💻 C# 🤖 DS/ML 👩‍💻 C/C++ 😀 1C 👩‍💻 Java 👩‍💻 Python 🖥 PHP 🖥 Frontend 👣 Rust 👣 Golang 👩‍💻 Node.js 💻 DevOps 👩‍💻 QA 👩‍💻 Android 🖥 BA/SA 👩‍💻 Game Dev 👩‍💻 iOS 👨‍💻 Вакансии База обновляется еженедельно — всегда актуальные вопросы с последних собеседований, курсы и материалы. 📌 Подпишись, чтобы не потерять!

👩‍💻 Dropdown Menu Effects Анимированное выпадающее меню с переливающимся эффектом. Сделано на SCSS и TypeScript. Открыть код...

👩‍💻 Создание карточки с изображением и текстом Создайте карточку, которая содержит изображение, заголовок и описание. Карточка должна иметь тень, плавно увеличиваться при наведении и иметь отступы для аккуратного отображения содержимого. Ожидаемое поведение: • Изображение находится в верхней части карточки. • Под изображением — заголовок и краткое описание. • Карточка при наведении увеличивается и добавляет лёгкую тень. Решение задачи🔽
<div class="card"> <img src="https://via.placeholder.com/300x200" alt="Card Image" class="card-img"> <h3 class="card-title">Заголовок карточки</h3> <p class="card-description">Это краткое описание для карточки. Оно даёт представление о содержимом.</p> </div> .card { width: 300px; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); transition: transform 0.3s, box-shadow 0.3s; } .card:hover { transform: scale(1.05); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); } .card-img { width: 100%; height: auto; } .card-title { margin: 16px; font-size: 1.2em; } .card-description { margin: 0 16px 16px; font-size: 0.9em; color: #555; }

👩‍💻 Проблема с new URL(), и как URL.parse() её решает Часто приходится анализировать множество URL-адресов. Частично для их проверки, а также для нормализации или извлечения определённых частей из URL. API URL в браузерах позволяет это делать, но его эргономика не идеальна. Читать...

👩‍💻 Стилизация кнопки с эффектом наведения Создайте кнопку, которая меняет цвет фона и добавляет лёгкую тень при наведении. При обычном состоянии кнопка должна иметь закруглённые углы и немного увеличиваться при наведении для визуального акцента. Ожидаемое поведение: • Основной цвет фона кнопки — синий (#007BFF). • При наведении цвет фона становится темно-синим (#0056b3), добавляется тень, и кнопка слегка увеличивается. Решение задачи🔽
<button class="styled-button">Нажми меня</button> .styled-button { background-color: #007BFF; color: white; padding: 10px 20px; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; transition: background-color 0.3s, transform 0.3s, box-shadow 0.3s; } .styled-button:hover { background-color: #0056b3; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); transform: scale(1.05); }

Критическая уязвимость в React Server Components (CVSS 10.0). Рекомендуется обновление 🚨 React-команда официально сообщила о серьёзной проблеме безопасности в React Server Components. Уязвимость позволяет выполнить произвольный код на сервере без аутентификации — достаточно отправить специально сформированный HTTP-запрос. Даже если вы не используете React Server Functions напрямую — вы всё равно можете быть уязвимы, если ваш проект поддерживает React Server Components. Уязвимость получила идентификатор CVE-2025-55182, оценку CVSS 10.0, и затрагивает версии 19.0, 19.1.0, 19.1.1 и 19.2.0 следующих пакетов:
react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack
🔘Что делать прямо сейчас
Патч уже опубликован. Нужно обновиться на версии: 19.0.1, 19.1.2, 19.2.1. Если ваш React-код вообще не работает на сервере, или вы не используете фреймворки/бандлеры с поддержкой RSC, то вы не затронуты. Некоторые экосистемы зависели от уязвимых пакетов. В зоне риска: Next.js React Router (нестабильные RSC-API) Waku @parcel/rsc @vitejs/plugin-rsc Redwood SDK Команда React работает с хостинг-провайдерами, и временные смягчения уже включены. Но на них рассчитывать нельзя — обновляться всё равно нужно.
🔘В чём суть уязвимости
React Server Functions позволяют клиенту вызывать функции на сервере. На стороне клиента вызов превращается в HTTP-запрос, который React затем десериализует и мапит на вызов серверной функции. Проблема — в том, как React декодирует payload от клиента. Атакующий может создать вредоносный HTTP-запрос, который при десериализации приводит к удалённому выполнению кода. Подробности раскроют позже, когда обновления будут полностью раскатаны.
🔘Инструкция по обновлению Next.js
Установите патч в рамках вашей версии: npm install next@15.0.5 npm install next@15.1.9 npm install next@15.2.6 npm install next@15.3.6 npm install next@15.4.8 npm install next@15.5.7 npm install next@16.0.7 Если вы сидите на 14.3.0-canary.77 или выше — откатитесь на стабильную 14.x: npm install next@14 React Router (нестабильные RSC API) Обновите зависимости: npm install react@latest npm install react-dom@latest npm install react-server-dom-parcel@latest npm install react-server-dom-webpack@latest npm install @vitejs/plugin-rsc@latest Expo См. changelog на expo.dev. Redwood SDK npm install rwsdk@latest npm install react@latest react-dom@latest react-server-dom-webpack@latest Waku npm install react@latest react-dom@latest react-server-dom-webpack@latest waku@latest Vite RSC npm install react@latest react-dom@latest @vitejs/plugin-rsc@latest Parcel RSC npm install react@latest react-dom@latest react-server-dom-parcel@latest Turbopack RSC npm install react@latest react-dom@latest react-server-dom-turbopack@latest Webpack RSC npm install react@latest react-dom@latest react-server-dom-webpack@latest
📅 Таймлайн
29 ноября — уязвимость найденa и отправленa в Meta Bug Bounty. 30 ноября — Meta подтвердила и начала работать над фиксом с командой React. 1 декабря — фикc готов, идёт работа с хостингами и OSS-проекта́ми над валидацией и mitigations. 3 декабря — патч опубликован, уязвимость раскрыта публично.
📍 Ссылка на оригинал статьи...

👩‍💻 CSS единицы измерения: lh и rlh Изучение новых относительных единиц измерения CSS основанных на высоте строки и позволяющих отказаться от угадывания вертикального ритма. Смотреть…

👩‍💻 Remove anchor from URL Завершите функцию/метод так, чтобы он возвращал URL с чем-либо после удаления привязки (#). Пример кода:
"www.codewars.com#about" --> "www.codewars.com"
"www.codewars.com?page=1" -->"www.codewars.com?page=1"
Решение задачи🔽
function removeUrlAnchor(url) { return url.split('#')[0]; } // Примеры использования console.log(removeUrlAnchor("www.codewars.com#about")); // "www.codewars.com" console.log(removeUrlAnchor("www.codewars.com?page=1")); // "www.codewars.com?page=1"

Repost from xCode Journal
🌎 Google не разрешает сотрудникам использовать свою же недавно выпущенную IDE Antigravity И, видимо, не зря — реддитор расск
🌎 Google не разрешает сотрудникам использовать свою же недавно выпущенную IDE Antigravity И, видимо, не зря — реддитор рассказал, что ИИ-агент Antigravity случайно удалил весь его диск, пока пытался исправить баг:
«Я просматриваю журналы с предыдущего шага и с ужасом вижу, что команда, которую я выполнил для очистки кэша проекта (rmdir), по всей видимости, ошибочно указала на корень вашего диска D:, а не на конкретную папку проекта. Мне очень, очень жаль.»
✖️ xCode Journal

👩‍💻 Реализация интерактивной карты Наглядный пример того, как с помощью JS API можно создавать нестандартные интерактивные карты. Яндекс Еда опубликовала исследование самых характерных блюд в городах в России и для визуализации использовала решение от API Яндекс Карт. Оно удобно тем, что позволяет легко и быстро настраивать цвета и детальность карты, убирать или добавлять нужную информацию. Читать...

Господи, да в чём проблема стать фронтендером? Подписался на эти три канала: 👉 Фронтенд 👉 Верстка 👉 Node.JS Заходишь кажды
Господи, да в чём проблема стать фронтендером? Подписался на эти три канала: 👉 Фронтенд 👉 Верстка 👉 Node.JS Заходишь каждый день, тратишь 15 минут и изучаешь актуальную информацию. Можешь сразу применять на практике. ВСЁ! Это настолько просто, что даже твой кот справится. Подпишись сейчас, потом спасибо скажешь.