В этой статье:
• Показан основной приём: один div + background-image с радиальным и коническим градиентами;
• Объяснено, как кастомизировать ширину, цвета и прозрачность через параметры градиентов;
• Добавлены визуальные эффекты;
• Рассмотрена управляемая переменная --progress, чтобы задавать прогресс в интерфейсе числом от 0 до 100; 🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍10🤝7
Практика отладки: читаемые логи в DevTools!
При выводе массивов объектов в консоль стандартный
Данные отображаются в виде таблицы. В большинстве современных DevTools доступна сортировка по колонкам и удобный просмотр значений, что упрощает анализ массивов и API-ответов.
Для акцентирования внимания на важных событиях можно использовать стилизацию через спецификатор
Приём полезен для временной отладки и маркировки критических участков выполнения.
Чтобы структурировать поток сообщений в консоли, используйте группировку:
Группы упрощают навигацию по логам при анализе сложных сценариев и асинхронных процессов.
🔥 Структурированные логи ускоряют отладку, снижают когнитивную нагрузку и делают консоль понятной не только автору кода.
📣 Code Ready | #практика
При выводе массивов объектов в консоль стандартный
console.log быстро теряет читаемость. Для структурированного представления данных стоит использовать console.table():const bugs = [
{ id: 1, title: "CSS не грузится", status: "open" },
{ id: 2, title: "API 500", status: "fixed" },
{ id: 3, title: "Кнопка не реагирует", status: "open" }
];
console.table(bugs);
Данные отображаются в виде таблицы. В большинстве современных DevTools доступна сортировка по колонкам и удобный просмотр значений, что упрощает анализ массивов и API-ответов.
Для акцентирования внимания на важных событиях можно использовать стилизацию через спецификатор
%c:console.log(
"%cCRITICAL BUG DETECTED",
"font-size: 18px; font-weight: bold; color: red;"
);
Приём полезен для временной отладки и маркировки критических участков выполнения.
Чтобы структурировать поток сообщений в консоли, используйте группировку:
console.group("User Load Flow");
console.log("Запрос данных пользователя");
console.log("Запрос ролей");
console.groupEnd();Группы упрощают навигацию по логам при анализе сложных сценариев и асинхронных процессов.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥12👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Верстальщик? Фронтендер? Нет работы и заказов, а побаловать себя хочется?
Для тебя нашли канал с вакансиями по вёрстке и фронтенду, где:
▶️ Новые вакансии ежедневно
▶️ Работа из дома и в офисе
▶️ Любой уровень навыков
Прекрати ежедневно мониторить десятки сайтов ради копеечных заказов! Работай с проверенными клиентами🧑💻
Подписывайся – @job_webdev
Для тебя нашли канал с вакансиями по вёрстке и фронтенду, где:
▶️ Новые вакансии ежедневно
▶️ Работа из дома и в офисе
▶️ Любой уровень навыков
Прекрати ежедневно мониторить десятки сайтов ради копеечных заказов! Работай с проверенными клиентами🧑💻
Подписывайся – @job_webdev
Пользователь может растянуть
<textarea> как угодно, и это часто ломает layout, вылазит за контейнер, разваливает сетку, сдвигает кнопку отправки:textarea {
resize: both;
}Если ресайз в интерфейсе не предусмотрен, запретим его явно:
textarea {
resize: none;
}Нужен только вертикальный ресайз (самый безопасный для формы)? Тогда так:
textarea {
resize: vertical;
}Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥10🤝8❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Репозиторий охватывает правила структуры кода, работы с функциями, объектами, модулями и многое другое, помогая писать аккуратный и понятный код. Содержит чёткие примеры как лучше и, что стоит избегать в работе. Подходит как для новичков, так и для опытных разработчиков, которые хотят закрепить или повторить материал.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍9🤝9❤2
Привет! В этом гайде создаём компактный интерфейс, который сохраняет введённый текст из textarea в скачиваемый TXT-файл.
Ключевые моменты:
• HTML: структура — textarea для текста, input для имени файла и кнопка загрузки.
• CSS: центрирование, карточный контейнер, скругления и аккуратная визуальная подача.
• JS: создание файла через Blob, безопасное имя и скачивание в один клик.
Такой инструмент отлично подойдёт для UI-демо, заметок, экспорта логов или быстрого сохранения текста в файл с минимальным интерфейсом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🤝9🔥8
В этой статье:
• Автор переводит и адаптирует вторую часть туториала по возможностям работы с цветами в CSS;
• Разбираются расширенные CSS-функции для создания гибких и адаптивных палитр;
• Показано, как с помощью относительных цветов и calc() делать светлые/тёмные варианты;
• Приведены примеры, в которых браузерные возможности CSS превосходят многие инструменты дизайна.🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍13🔥8
Интерактивность не всегда требует сложных компонентов. Иногда достаточно правильно прописать движение.
Как работает:
• каждый символ вынесен в отдельный <span>, что дает контроль над фазой анимации;
• animation-delay через CSS-переменную создаёт ритм без дублирования ключевых кадров;
• движение построено на transform, поэтому анимация не вызывает перекомпоновки;
• изменение opacity визуального акцента активных цифр.
Отлично подходит для обработки загрузки, ожидания и переходов, где важно удерживать внимание, не перегружая пользовательский интерфейс.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍11🔥9👎1
Например,
let и const используются для корректного объявления переменных, map и forEach — для обработки массивов, а includes и split помогают при работе со строками.На картинке — базовые конструкции языка и самые часто используемые методы, которые стоит держать под рукой.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤11👍8
Синхронизация данных между вкладками!
Если у пользователя открыто несколько вкладок одного сайта, браузер позволяет им обмениваться сообщениями в пределах одного
Создаём канал для обмена событиями:
Из одной вкладки отправляем событие в остальные:
В других вкладках подписываемся на входящие сообщения:
Практический кейс — одновременный
Функция
Работает нативно, поддерживается современными браузерами, описан в HTML Living Standard.
🔥 Почему
📣 Code Ready | #практика
Если у пользователя открыто несколько вкладок одного сайта, браузер позволяет им обмениваться сообщениями в пределах одного
origin через стандартный BroadcastChannel API.Создаём канал для обмена событиями:
const channel = new BroadcastChannel("app_sync");Из одной вкладки отправляем событие в остальные:
channel.postMessage({
type: "LOGOUT"
});В других вкладках подписываемся на входящие сообщения:
channel.onmessage = (event) => {
console.log(event.data);
};Практический кейс — одновременный
logout во всех вкладках приложения:channel.onmessage = (event) => {
if (event.data.type === "LOGOUT") {
// Удаляем только auth-данные, без полного clear
localStorage.removeItem("access_token");
localStorage.removeItem("refresh_token");
location.reload();
}
};Функция
logout в текущей вкладке должна сначала выполнить локальную очистку, а затем уведомить остальные вкладки:function logout() {
localStorage.removeItem("access_token");
localStorage.removeItem("refresh_token");
channel.postMessage({ type: "LOGOUT" });
}Работает нативно, поддерживается современными браузерами, описан в HTML Living Standard.
BroadcastChannel, а не localStorage events: это нативный event-bus без побочных записей в localStorage, не требующий триггерных ключей и дающий более чистую, предсказуемую модель событий.Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🤝8🔥7❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь собраны статьи и материалы программиста, который сыграл огромную роль в развитии JS и придумал JSON. Крокфорд объясняет, где в JS сильные стороны, где опасные места и какие подходы реально работают в долгосрочной перспективе. Это хороший ресурс, если ты уже знаешь основы и хочешь лучше понять логику его дизайна и то, как писать более надёжный и понятный код.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥8🤝8
This media is not supported in your browser
VIEW IN TELEGRAM
Свойство
transform-style определяет, будут ли дочерние элементы сохранять своё 3D-положение или сплющиваться в плоскость родителя при трансформациях. Основные значения:
• flat — значение по умолчанию, все дочерние элементы проецируются в плоскость родителя;
• preserve-3d — сохраняет 3D-позиционирование вложенных элементов.
Свойство не наследуется. Нужно индивидуально задавать его для каждого следующего уровня вложенности.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥6🤝6❤2
👍17🤝10🔥8❤5