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

Автор: @energy_it

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

Реклама на бирже: https://telega.in/c/code_ready
Download Telegram
👩‍💻 Задаем пропорции элементов одной строкой!

Раньше, чтобы сохранить пропорции блока (карточки, превью, видео), писали так:
.preview {
position: relative;
padding-top: 56.25%;
}


Работает, но сложно читать, неудобно поддерживать.

Современный CSS решает это одной строкой:
.preview {
aspect-ratio: 16 / 9;
}


Браузер сам поддерживает пропорции элемента без абсолютного позиционирования и костылей.

Чтобы контент внутри не ломал пропорции:
.preview img {
width: 100%;
height: 100%;
object-fit: cover;
}


🔥 Идеально для карточек, галерей, видео, skeleton-экранов

📣 Code Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍1411
This media is not supported in your browser
VIEW IN TELEGRAM
👍 React Bits — готовые анимации и UI-эффекты!

Это коллекция интерактивных UI-эффектов, анимаций текста и компонентов для React. Здесь можно найти современные визуальные решения для hero-блоков, заголовков, интро и интерфейсных акцентов. Код аккуратный, легко читается и быстро интегрируется в собственные проекты.

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

📣 Code Ready | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1811🔥9
👩‍💻 Двухслойная карточка с эффектом сборки!

В этой фишке карточка состоит из двух слоёв, которые изначально разнесены по оси Y, а при наведении плавно сходятся в единую плоскость.

Как работает:
Карточка выступает контейнером-триггером для hover;

Два слоя позиционируются абсолютно и физически разведены через transform;

При наведении transform сбрасывается в 0, и слои сходятся;

Один hover управляет сразу несколькими элементами, без дублирования логики.


Приём хорошо масштабируется: подходит для карточек сервисов, профилей, feature-блоков и любых grid-раскладок.

📣 Code Ready | #фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍1211
📂 Напоминалка по CSS positioning!

Например, position: relative позволяет смещать элемент относительно его обычного положения, а position: absolute — позиционировать элемент внутри ближайшего спозиционированного родителя.

На картинке — 5 значений position, которые нужно уверенно понимать при верстке и работе с layout’ами.

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

📣 Code Ready | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍12🤝81
Утилита для работы с URL-параметрами!

Вынесение фильтров и состояния в URL улучшает навигацию и восстановление страницы. Ниже — компактный инструмент для работы с query-строкой.

Разбираем строку запроса в объект:
function parseQuery(query = location.search) {
return Object.fromEntries(new URLSearchParams(query));
}


URLSearchParams
обеспечивает корректную обработку спецсимволов и предсказуемый парсинг — особенно важно при динамических параметрах.

Формируем query-строку из объекта:
function toQuery(obj) {
return "?" + new URLSearchParams(obj).toString();
}


Это упрощает управление состоянием интерфейса и повышает устойчивость навигации.

Читаем параметры: пример, как быстро получить состояние фильтров или любой другой конфигурации из строки URL — удобно при инициализации страницы или восстановлении состояния.
const params = parseQuery("?page=2&sort=asc");
console.log(params);
// → { page: "2", sort: "asc" }


Создаём новый URL:
const next = toQuery({ page: 3, sort: "desc" });
console.log(next);
// → "?page=3&sort=desc"


🔥 Функции подходят для фильтров, пагинации, состояния таблиц, сохранения пользовательских настроек и формирования shareable-ссылок.

📣 Code Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍12🤝8😁2
🔥168👍8
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Можно ли анимировать элемент при его первом появлении на странице?

Директива @starting-style позволяет задать начальные стили для элемента в момент его появления на странице.

Как это работает:
Браузер применяет стили из @starting-style только в момент появления элемента;

Затем элемент плавно переходит к основным стилям;

Отлично работает с transition, без JavaScript.


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

📣 Code Ready | #свойство
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍10🤝9
📂 Напоминалка для работы с DOM!

DOM — это то, через что JavaScript управляет HTML: ищет элементы, создаёт новые узлы, вешает события и реагирует на действия пользователя.

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

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

📣 Code Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
18👍13🤝8
👩‍💻 Размечает картинку невидимыми областями!

С помощью тега <area> можно сделать красивую навигацию, разметив обычную картинку областями и указав для них ссылки.

Основные формы областей:
shape="rect" — прямоугольная область;
shape="circle" — круг;
shape="poly" — произвольный многоугольник.


Самые ёмкие в записи формы <area> — прямоугольник и круг, поскольку они требуют меньше всего координат. Если вам плохо от огромного кода, лучше отказаться от произвольных областей.

📣 Code Ready | #атрибут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥109
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Знали, что редактор может помогать вам писать код?

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

📣 Code Ready | #vscode
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝17🔥9👍8👎1😁1
📱 Memory & Performance API — контроль памяти и производительности!

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

📣 Code Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1810👍8
👍158🔥7
Что же выведет консоль?
Anonymous Quiz
32%
A
29%
B
33%
C
6%
D
15🤝10🔥8
Определяем, предпочитает ли пользователь уменьшенную анимацию!

Современные ОС позволяют пользователю снизить количество анимаций. Браузер транслирует это предпочтение через media query prefers-reduced-motion, и интерфейс может адаптироваться автоматически.

Проверяем текущее состояние:
const motionMQ = window.matchMedia(
"(prefers-reduced-motion: reduce)"
);

const isReducedMotion = motionMQ.matches;


matches читается синхронно и отражает текущее системное состояние на момент инициализации скрипта.

Реагируем на изменение настройки в системе:
motionMQ.addEventListener("change", ({ matches }) => {
document.documentElement.dataset.motion =
matches ? "reduced" : "full";
});


Событие change срабатывает при изменении системной настройки, без polling и лишней логики.

Применяем режим при загрузке приложения:
document.documentElement.dataset.motion =
isReducedMotion ? "reduced" : "full";


Это позволяет синхронизировать состояние интерфейса с системными настройками пользователя.

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

📣 Code Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥137👍7
📂 Напоминалка по CSS :nth-child()!

Например, :nth-child(3) выберет третий элемент, :nth-child(even) — все чётные, а :nth-child(5n-1) — элементы по заданному шаблону.

На картинке — наглядная шпаргалка по синтаксису :nth-child(): числа, ключевые слова и формулы, которые чаще всего используются в верстке.

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

📣 Code Ready | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍106🤝1
👩‍💻 UX фокус с :focus-visible!

Очень часто фокус делают так:
button:focus {
outline: none;
}


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

Современный CSS даёт решение:
button:focus-visible {
outline: 2px solid #4da3ff;
}


:focus-visible показывает фокус только тогда, когда он реально нужен: при навигации с клавиатуры, при accessibility-сценариях и не показывает его при клике мышью.

Если элемент получил фокус мышью — стиля не будет.
Если клавиатурой — будет.

Для полного контроля можно добавить:
button:focus {
outline: none;
}


🔥 В итоге никакого лишнего фокуса, интерфейс выглядит профессионально и продуманно.

📣 Code Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🤝9🔥8