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

Автор: @energy_it

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

Реклама на бирже: https://telega.in/c/code_ready
Download Telegram
📱 Виджет выбора количества товара!

Привет! В этом гайде создаём компактный виджет для управления количеством — с кнопками «–» и «+», плавной анимацией и простой логикой работы.

Ключевые моменты:
• HTML: минимальная структура — контейнер, две кнопки и отображение текущего числа.

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

• JS: увеличение и уменьшение количества, защита от значений ниже единицы.


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

📣 Code Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
20👍13🔥8🤝4
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Хотите открыть проект из GitHub, не скачивая его?

Remote Repositories — расширение, которое позволяет работать с репозиторием прямо в VS Code: просматривать файлы, править код, создавать коммиты и пушить изменения, без локального клона. Идеально, когда нужно быстро проверить структуру проекта или что-то поправить.

📣 Code Ready | #vscode
Please open Telegram to view this post
VIEW IN TELEGRAM
22👍11🔥11
👩‍💻 Кнопка, которая «заливается» при наведении!

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

Как работает:
Псевдо-элемент ::before выступает как анимируемый заливочный слой;

В обычном состоянии он находится за пределами кнопки;

При наведении слой смещается вверх и перекрывает элемент, а текст своевременно меняет цвет.


Простой приём, который добавляет интерфейсу динамику без единой строки JavaScript.

📣 Code Ready | #фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍189🔥9👎1🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Готовые шаблоны регулярных выражений!

Regex Snippets
— расширение, которое добавляет набор готовых шаблонов регулярных выражений: проверка email, поиск чисел, валидация пароля, извлечение групп, работа с пробелами, датами, URL и др. Пишешь короткий префикс и получаешь готовый рабочий паттерн.

📣 Code Ready | #vscode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1713👍11😁1
Как избавиться от подмен в типографике?

Когда кастомный шрифт не успевает загрузиться, браузер подставляет свой стандартный generic sans-serif. Это может испортить вид интерфейса:
body {
font-family: "PT Sans", sans-serif;
}


Но ещё хуже, когда fallback вообще не задан, тогда интерфейс может внезапно превратиться в дефолтный serif (на Windows это часто Times New Roman):
body {
font-family: "PT Sans";
}


Современный CSS даёт более аккуратный и предсказуемый вариант, используй system-ui, чтобы браузер подставил нативный системный шрифт ОС:
body {
font-family: "PT Sans", system-ui;
}


🔥 Так даже если кастомный шрифт не загрузился, пользователь увидит чистую системную типографику - ту же, что в интерфейсе его устройства.

📣 Code Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2711👍10
Отменяем старые fetch-запросы — оставляем только актуальные данные!

В поиске, автокомплите и живых фильтрах ответы от сервера могут приходить не по порядку, из-за чего показывается не самый свежий результат. Один из простых и надёжных способов избежать этого — отменять предыдущий запрос через AbortController.

Проверяем поддержку:
console.log("AbortController" in window);


Делаем контроллер и отправляем запрос:
let controller;

function load(url) {
if (controller) controller.abort();

controller = new AbortController();
return fetch(url, { signal: controller.signal });
}


Используем при вводе:
field.addEventListener("input", () => {
load("/api/search?q=" + field.value)
.then(r => r.json())
.then(data => console.log("Актуальный ответ:", data))
.catch(e => e.name === "AbortError" || console.error(e));
});


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

📣 Code Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍11🤝81👎1
📱 Поисковая панель с динамической фильтрацией списка!

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

Ключевые моменты:
• HTML: контейнер, поле ввода и список элементов для фильтрации.

• CSS: стеклянный эффект, аккуратные тени и анимированное скрытие элементов.

• JS: обработка ввода, сравнение подстрок и переключение видимости элементов через класс hide.


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

📣 Code Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3115🔥13🤝6
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Удобная работа с API внутри VS Code!

REST Client - расширение, которое превращает редактор в удобный инструмент для работы с HTTP-запросами. Можно тут же получать ответ от сервера. Плагин поддерживает переменные и окружения, так что можно хранить токены, URL или параметры для разных проектов и легко подставлять их в запросы.

📣 Code Ready | #vscode
Please open Telegram to view this post
VIEW IN TELEGRAM
18🔥8👍7😁2
👩‍💻 Эффект, который превращает обычный текст в динамичный скан-лоадер!

В этой фишке используется всего один псевдо-элемент, который проходит по надписи и создаёт впечатление “сканирования” — без JS.

Как работает:
::before становится движущейся полосой, перекрывающей текст;

mix-blend-mode: difference инвертирует цвет и создаёт яркий акцент;

keyframes slide задаёт траекторию движения от края до края.


Приём отлично подходит для лоадеров, hero-титров, UI-сигналов и любых сценариев, где нужно живое, цепляющее движение.

📣 Code Ready | #фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥109🤝4
👍17🔥12🤝91
Нативная проверка, находится ли элемент в зоне видимости!

Когда нужно показать подсказку только если элемент действительно в зоне просмотра, подсветить активный пункт меню, автоплейнуть видео или зафиксировать секцию — можно использовать нативный getBoundingClientRect().

Проверяем частичную вертикальную видимость элемента в зоне просмотра:
function isVisible(el) {
const r = el.getBoundingClientRect();
return r.top < window.innerHeight && r.bottom > 0;
}


Использование:
const box = document.querySelector(".box");
console.log("Виден:", isVisible(box));


Наблюдение за видимостью при скролле:
window.addEventListener("scroll", () => {
if (isVisible(box)) {
console.log("Элемент в зоне просмотра");
}
});


Мини-вариант для группы элементов:
document.querySelectorAll(".item").forEach(el => {
if (isVisible(el)) {
el.classList.add("active");
}
});


🔥 Подходит для ленивых анимаций, подсветки активных блоков и аналитики скролла. А если нужен более точный и энергоэффективный вариант — используйте IntersectionObserver.

📣 Code Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍12🔥11
😁4712🔥5👍1
👩‍💻 Удобный способ унаследовать цвет текста родительского элемента!

currentColor — ключевое слово, которое берёт текущий color элемента и позволяет использовать его в других свойствах, например в рамке, тени или заливке.

Примеры использования:
border: 2px solid currentColor; — рамка того же цвета, что и текст;

box-shadow: 0 0 10px currentColor; — тень с цветом текста;

fill: currentColor; — окрашивает SVG в цвет шрифта;

outline-color: currentColor; — обводка совпадает с текстом.


Это полезно для упрощения стилей: если изменить color, все зависящие элементы автоматически обновят свой цвет.

📣 Code Ready | #свойство
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝18👍11🔥82