Code Ready | Frontend
22.7K subscribers
1.13K photos
472 videos
17 files
783 links
Авторский канал по Frontend разработке.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

РКН: https://clck.ru/3NJCKs

Реклама на бирже: https://telega.in/c/code_ready
Download Telegram
📱 Сохранение текста в TXT-файл прямо в браузере!

Привет! В этом гайде создаём компактный интерфейс, который сохраняет введённый текст из textarea в скачиваемый TXT-файл.

Ключевые моменты:
• HTML: структура — textarea для текста, input для имени файла и кнопка загрузки.

• CSS: центрирование, карточный контейнер, скругления и аккуратная визуальная подача.

• JS: создание файла через Blob, безопасное имя и скачивание в один клик.


Такой инструмент отлично подойдёт для UI-демо, заметок, экспорта логов или быстрого сохранения текста в файл с минимальным интерфейсом.

📣 Code Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🤝9🔥8
😎 На Хабре вышла полезнейшая статья: «Практическое руководство по современным CSS-цветам — часть 2»!

В этой статье:
• Автор переводит и адаптирует вторую часть туториала по возможностям работы с цветами в CSS;
• Разбираются расширенные CSS-функции для создания гибких и адаптивных палитр;
• Показано, как с помощью относительных цветов и calc() делать светлые/тёмные варианты;
• Приведены примеры, в которых браузерные возможности CSS превосходят многие инструменты дизайна.


🔊 Продолжайте читать на Habr!


📣 Code Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍13🔥8
👩‍💻 Посимвольная загрузка с волновой анимацией!

Интерактивность не всегда требует сложных компонентов. Иногда достаточно правильно прописать движение.

Как работает:
каждый символ вынесен в отдельный <span>, что дает контроль над фазой анимации;

animation-delay через CSS-переменную создаёт ритм без дублирования ключевых кадров;

движение построено на transform, поэтому анимация не вызывает перекомпоновки;

изменение opacity визуального акцента активных цифр.


Отлично подходит для обработки загрузки, ожидания и переходов, где важно удерживать внимание, не перегружая пользовательский интерфейс.

📣 Code Ready | #фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍11🔥9👎1
📂 Напоминалка для работы с JavaScript!

Например, let и const используются для корректного объявления переменных, map и forEach — для обработки массивов, а includes и split помогают при работе со строками.

На картинке — базовые конструкции языка и самые часто используемые методы, которые стоит держать под рукой.

Сохрани, чтобы не забыть!

📣 Code Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1311👍8
Синхронизация данных между вкладками!

Если у пользователя открыто несколько вкладок одного сайта, браузер позволяет им обмениваться сообщениями в пределах одного 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, не требующий триггерных ключей и дающий более чистую, предсказуемую модель событий.

📣 Code Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🤝8🔥74
This media is not supported in your browser
VIEW IN TELEGRAM
❤️ Crockford — материалы человека, который сыграл ключевую роль в развитии JS!

Здесь собраны статьи и материалы программиста, который сыграл огромную роль в развитии JS и придумал JSON. Крокфорд объясняет, где в JS сильные стороны, где опасные места и какие подходы реально работают в долгосрочной перспективе. Это хороший ресурс, если ты уже знаешь основы и хочешь лучше понять логику его дизайна и то, как писать более надёжный и понятный код.

📌 Оставляю ссылочку: crockford.com

📣 Code Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥8🤝8
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Можно ли управлять тем, как ведут себя вложенные элементы в 3D-трансформациях?

Свойство transform-style определяет, будут ли дочерние элементы сохранять своё 3D-положение или сплющиваться в плоскость родителя при трансформациях.

Основные значения:
• flat — значение по умолчанию, все дочерние элементы проецируются в плоскость родителя;

• preserve-3d — сохраняет 3D-позиционирование вложенных элементов.


Свойство не наследуется. Нужно индивидуально задавать его для каждого следующего уровня вложенности.

📣 Code Ready | #свойство
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥6🤝62
👍12🤝10🔥81
Что же выведет консоль?
Anonymous Quiz
9%
A
39%
B
16%
C
35%
D
👍17🤝10🔥85
Генератор QR-кодов прямо в браузере!

QR-коды часто нужны в разработке: передача ссылок, упаковка тестовых данных, автоматизация, обмен данными для ботов. Сделаем генератор на чистом JavaScript с помощью qrcode.

Подключаем библиотеку в браузер через CDN как ES-модуль:
<script type="module">
import QRCode from "https://cdn.jsdelivr.net/npm/qrcode@1.5.3/+esm";
// Делаем доступным глобально, чтобы примеры ниже работали при копипасте
window.QRCode = QRCode;
</script>


Создаём функцию генерации QR в DataURL (data:image/png;base64,... по умолчанию):
async function generateQR(text) {
try {
const url = await QRCode.toDataURL(text, { width: 300 });
console.log("QR DataURL:", url);
return url;
} catch (e) {
console.error("Ошибка генерации QR:", e);
return null;
}}


Генерируем QR для ссылки или текста:
generateQR("https://example.com").then(qr => {
if (qr) console.log("QR успешно создан");
});


Формально вызовы идут параллельно (fire-and-forget). Если нужен контроль завершения — используем Promise.all, но для простых задач достаточно forEach:
["Alpha", "Beta", "Gamma"].forEach(t => {
generateQR(t).then(qr => console.log(`QR для ${t}:`, !!qr));
});


Генерация QR для JSON:
const payload = JSON.stringify({ id: 123, role: "tester", active: true });
generateQR(payload).then(qr => console.log("QR для JSON готов:", !!qr));


Можно кодировать JSON, токены и любые строковые данные.

🔥 В итоге получаем простой инструмент для генерации QR-кодов под большинство данных прямо в браузере. Легко встраивается в проекты, тестовые утилиты и ботов.

📣 Code Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍8🔥6🤝2
❤️ В Москве на стильной площадке TAU пройдет масштабная офлайн-конференция для инженеров, ориентированная на практику и живое общение — T-Sync Conf от Т-Технологий

На конференции:

• Выбор собственной траектории из восьми технических контуров — AI, Data, R&D, Security, UX/UI, Productivity, Observability и Platform;
• Демо-стенды с AI- и дата-платформами, где технологии можно протестировать руками;
• Инженерные диалоги с разбором реальных кейсов и инцидентов;
• Хакатон T-Hack Hardcore для продвинутых инженеров и публичная сборка сервиса в реальном времени;
• UX/UI инструменты — от интерфейсов до дизайн-систем.

📣 Code Ready | #конференция
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🔥3
👩‍💻 3D-лента изображений с фокусом при наведении!

В этой фишке мы создаём 3D-ленту изображений с глубиной, перспективой и движением.

Как работает:
используется единая адаптивная единица --index, которая масштабируется;

perspective задаёт глубину;

кастомный cubic-bezier формирует плавное движение без дёрганий;

вся интерактивность работает через transform и filter.


Такой приём отлично подходит для галерей и портфолио, подборок контента, hero-блоков.

📣 Code Ready | #фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍10🔥7👎3
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Строки с Tailwind-классами становятся слишком длинными?

Headwind — расширение, которое автоматически сортирует классы Tailwind в правильном порядке, без ручного редактирования. Один запуск и строка становится аккуратной и одинаковой во всём проекте. Особенно полезно, если над кодом работает несколько человек.

📣 Code Ready | #vscode
Please open Telegram to view this post
VIEW IN TELEGRAM
20👍11🤝7
📱 Адаптивная шапка при прокрутке!

Привет! В этом гайде создаём фиксированную шапку, которая адаптируется к прокрутке страницы: сжимается и автоматически скрывается при скролле вниз, возвращаясь при движении вверх.

Ключевые моменты:
• HTML: структура шапки с навигационным меню.

• CSS: плавные анимации, эффект сжатия и скрытия через классы состояния.

• JS: определение направления прокрутки и переключение классов scrolled и hide.


Компонент подходит для интерфейсов с фиксированной навигацией, где важно экономить пространство и улучшать восприятие контента при активной прокрутке страницы.

📣 Code Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍98