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

Автор: @energy_c

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

Реклама на бирже: https://telega.in/c/code_ready
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
❤️ Dev Notes — заметки, шпаргалки и статьи по JS!

На сайте собраны не только шпаргалки, но и полноценные статьи с разбором разных тем: работа с массивами и объектами, функции, замыкания, методы JS и практические нюансы разработки. Материал подаётся с примерами кода и краткими пояснениями.

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

📣 Code Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13🤝8👍62
📱 Минималистичные анимированные карточки!

Привет! В этом гайде создадим карточки с плавной анимацией, увеличением при наведении и динамическим добавлением через JavaScript.

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

• CSS: тень, плавный масштаб и адаптивное расположение.

• JS: добавление новых карточек без перезагрузки страницы.


Подходит для витрин товаров, портфолио или информационных блоков.

📣 Code Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥208👍8👎1
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 В коде слишком много операторов и условий?

Snazzy Operator — делает операторы (=>, ===, &&, >= и другие) более выразительными и аккуратными за счёт специальных лигатур и стилизации. Код становится легче воспринимать визуально, особенно в больших файлах и сложных условиях.

📣 Code Ready | #vscode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍7🤝51
Почему скролл пробивает модалку и начинает двигать страницу?

Частый UX-баг: скроллишь контент внутри modal или sidebar, доходишь до конца, и начинает скроллиться вся страница под ним.

Обычно это пытаются фиксить через JS и блокировку body-scroll:
body {
overflow: hidden;
}


Но это может ломать iOS-scroll, sticky и вызывать скачки layout.

CSS умеет решать это нативно:
.modal {
overflow: auto;
overscroll-behavior: contain;
}


Теперь scroll “останавливается” внутри контейнера и не передаётся родителю.

Можно полностью отключить overscroll-эффекты и scroll-chain:
.modal {
overscroll-behavior: none;
}


Это особенно полезно для modal, drawer, sidebar, chat и mobile-menu.
.chat {
overflow: auto;
overscroll-behavior: contain;
}


🔥 overscroll-behavior позволяет нативно контролировать scroll-chain и избавиться от части scroll-lock логики без дополнительных JS-хаков.

📣 Code Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍299🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
🐱 Node.js Dev — большая база знаний по Node.js и backend-разработке!

На сайте собраны статьи, документация и обучающие материалы по Node.js: работа с Express, npm, API, асинхронностью, модулями, потоками и серверной разработкой в целом. Есть как базовые разборы для новичков, так и более сложные темы по архитектуре и производительности.

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

📣 Code Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍157🔥6
📂 Напоминалка по оптимизации frontend performance!

Например, code splitting разбивает большой бандл на части и ускоряет загрузку, а dynamic imports позволяют подгружать код только тогда, когда он реально нужен.

Эти подходы помогают оптимизировать критический рендеринг, сократить размер передаваемых данных и улучшить метрики вроде LCP и INP.

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

📣 Code Ready | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍106
Почему текст внезапно ломает grid и вылезает за контейнер?

Очень частый баг в CSS Grid: ставишь overflow: hidden, ellipsis, 1fr, а текст всё равно раздвигает layout и игнорирует ограничения.

Кажется, что проблема в overflow.
.title {
overflow: hidden;
text-overflow: ellipsis;
}


Но проблема часто вообще не в этом.

У grid-элементов по умолчанию стоит min-width: auto, из-за чего элемент отказывается сжиматься меньше контента.

Решение — явно разрешить сжатие.
.grid-item {
min-width: 0;
}


После этого начинают нормально работать:
.title {
white-space: nowrap;
text-overflow: ellipsis;
}


Важно: min-width: 0 нужно ставить именно на grid/flex item, а не обязательно на сам текстовый элемент.

🔥 Особенно критично для card-layout, dashboard, table, navbar и любых grid/flex интерфейсов с длинным текстом.

📣 Code Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍177🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
💅 Josh W. Comeau — статьи и руководства по JavaScript и React!

На сайте собраны статьи и интерактивные туториалы по JavaScript, React, CSS-анимациям, Flexbox, Grid и архитектуре интерфейсов. Автор объясняет сложные концепции простым языком и показывает не только как, но и почему это работает.

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

📣 Code Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍7🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Подсветка и удобная работа с env-конфигами!

env-cmd-file-syntax — добавляет подсветку и поддержку синтаксиса для файлов env-cmd, помогая удобнее работать с переменными окружения. Расширение делает конфиги читаемее, упрощает навигацию и помогает быстрее замечать ошибки в названиях и структуре переменных.

📣 Code Ready | #vscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍175🤝4🔥1
🐱 Наткнулся на очень полезную статью на Хабре: «Мне этот Chrome DevTools теперь абсолютно понятен»!

В этой статье:
• Подробно разбираются основные инструменты Chrome DevTools — Elements, Console, Sources, Network и их применение;
• Показывается, как эффективно искать баги, анализировать DOM, отлаживать JavaScript и отслеживать сетевые запросы;
• Объясняются возможности DevTools: Workspaces, Snippets, performance-профилирование, live-редактирование и инструменты для адаптивной вёрстки.


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


📣 Code Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍7🔥5🤝1
Как сделать адаптивный текст без media queries?

Очень часто для адаптации текста под разные экраны используют отдельные breakpoint. В итоге CSS разрастается, а шрифты начинают масштабироваться неравномерно.

Обычно это выглядит так:
.title {
font-size: 3rem;
}

@media (max-width: 768px) {
.title {
font-size: 2rem;
}
}


Но CSS умеет нативно адаптировать размер текста под экран:
.title {
font-size: clamp(1.2rem, 4vw, 3rem);
}


clamp() задаёт минимальный размер, адаптивное значение и максимальный предел.

Теперь текст плавно масштабируется вместе с viewport.
.subtitle {
font-size: clamp(1rem, 2vw, 1.5rem);
}


Особенно хорошо это работает для hero-блоков, заголовков, кнопок и адаптивных интерфейсов.

Media queries часто вообще становятся не нужны.

🔥 clamp() позволяет создавать по-настоящему адаптивные интерфейсы без множества контрольных точек и дублирования CSS.

📣 Code Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
19🔥12🤝6👍1
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Для удобной работы с .sass-синтаксисом в VS Code!

Sass (.sass only)
добавляет полноценную поддержку indented-синтаксиса Sass: подсветку, автодополнение, навигацию и корректное распознавание .sass-файлов без фигурных скобок и точек с запятой. Помогает комфортно работать со старыми и современными Sass-проектами прямо в редакторе.

📣 Code Ready | #vscode
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍7🔥5
preventDefault(): контроль стандартного поведения браузера!

При работе с DOM-событиями часто нужно отменить действие браузера: переход по ссылке, отправку формы, скролл и т.д. Для этого используется event.preventDefault().

Метод отменяет стандартное поведение браузера, но не останавливает всплытие события. Для этого используется stopPropagation().

Базовый пример:
document.querySelector('a').addEventListener('click', (e) => {
e.preventDefault();

console.log('link click handled manually');
});


После вызова preventDefault() переход по ссылке не произойдёт, и обработка полностью перейдёт под контроль JavaScript.

Это особенно полезно в SPA-приложениях, где навигация управляется роутером без перезагрузки страницы.

Пример — работа с формой:
const form = document.querySelector('form');

form.addEventListener('submit', (e) => {
e.preventDefault();

const data = new FormData(form);
send(data);
});


По умолчанию форма отправляет данные и перезагружает страницу. preventDefault() позволяет перехватить submit и самостоятельно управлять отправкой данных. Так обычно реализуются AJAX-формы, async-запросы и кастомная валидация.

Важно: preventDefault() работает только для событий, которые поддерживают отмену. Проверить это можно через свойство cancelable.

Пример — проверка cancelable:
if (e.cancelable) {
e.preventDefault();
}


Если событие не является cancelable, вызов preventDefault() не даст эффекта. Отдельный нюанс связан с passive listeners.

Пример — passive listeners:
window.addEventListener('touchmove', (e) => {
e.preventDefault(); // будет проигнорирован
}, { passive: true });


При passive: true браузер заранее считает, что обработчик не будет отменять действие события. Это используется для оптимизации scroll/touch-событий.

В таком режиме preventDefault() игнорируется. Иногда отмена зависит от состояния интерфейса или бизнес-логики.

Пример — условная отмена:
button.addEventListener('click', (e) => {
if (!button.matches('.enabled')) {
e.preventDefault();
}
});


Здесь действие отменяется только при определённом условии.

Также важно понимать разницу между preventDefault() и старым подходом через return false. Пример:
el.addEventListener('click', (e) => {
e.preventDefault();
});


В addEventListener конструкция return false не отменяет действие браузера и не останавливает propagation. Такое поведение было характерно для inline-обработчиков и jQuery, поэтому многие разработчики до сих пор путают эти механики.

Ещё момент: у кастомных событий (CustomEvent) обычно нет встроенного browser behavior. Это значит, что preventDefault() не отменяет никаких действий браузера. Но если событие создано с cancelable: true, вызов установит event.defaultPrevented = true.

🔥 preventDefault() — базовый инструмент управления пользовательскими взаимодействиями в js.

📣 Code Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍7🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
🤔 Code JavaScript — большой учебник и практикум по JS!

На сайте собрана полноценная база материалов по JavaScript: от базового синтаксиса и работы с DOM до более сложных тем вроде замыканий, событий, async/await и ООП. Материал построен в формате уроков и практических заданий, поэтому подходит не только для чтения, но и для закрепления знаний на практике.

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

📣 Code Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍54
👩‍💻 Эффект цифрового сбоя для текста без JS!

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

Как работает:
::before и ::after создают копии текста;

каждый слой анимируется отдельно;

разные цвета формируют chromatic aberration;

небольшие смещения создают эффект glitch-сигнала.


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

📣 Code Ready | #фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍7🔥4