Code Ready | Frontend
Авторский канал по Frontend разработке. Ресурсы, гайды, задачи, шпаргалки. Информация ежедневно пополняется! Автор: @energy_it РКН: https://clck.ru/3NJCKs Реклама на бирже: https://telega.in/c/code_ready
Mostrar más📈 Análisis del canal de Telegram Code Ready | Frontend
El canal Code Ready | Frontend (@code_ready) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 22 047 suscriptores, ocupando la posición 6 152 en la categoría Tecnologías y Aplicaciones y el puesto 30 573 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 22 047 suscriptores.
Según los últimos datos del 09 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -81, y en las últimas 24 horas de -8, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 12.10%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 5.69% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 2 669 visualizaciones. En el primer día suele acumular 1 255 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 27.
- Intereses temáticos: El contenido se centra en temas clave como css, браузер, интерфейс, загрузка, api.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Авторский канал по Frontend разработке.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Автор: @energy_it
РКН: https://clck.ru/3NJCKs
Реклама на бирже: https://telega.in/c/code_ready”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 10 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
• псевдоэлемент ::before создаёт увеличенный слой внутри кнопки; • форма волны формируется через border-radius; • изначально слой расположен ниже кнопки и скрыт; • при :hover волна поднимается вверх, создавая эффект заполнения.Так можно добавить акцент CTA-кнопкам или карточкам без сложной анимации и без JS. 📣 Code Ready | #фишка
navigator.sendBeacon.
Метод ставит данные в очередь на отправку и не блокирует закрытие страницы.
Базовый пример:
navigator.sendBeacon('/analytics', JSON.stringify({
event: 'page_close'
}));
Метод принимает URL и данные. Запрос отправляется методом POST.
Если нужно явно указать Content-Type: application/json, лучше передать Blob:
navigator.sendBeacon(
'/analytics',
new Blob(
[JSON.stringify({ event: 'page_close' })],
{ type: 'application/json' }
)
);
Пример 1 — отправка при скрытии страницы:
document.addEventListener('visibilitychange', () => {
if (document.visibilityState === 'hidden') {
navigator.sendBeacon('/analytics', JSON.stringify({
event: 'session_end',
time: Date.now()
}));
}
});
visibilitychange часто используют для отправки последних метрик перед уходом пользователя. Обычно это работает стабильнее, чем beforeunload.
Пример 2 — отправка FormData:
const data = new FormData();
data.append('event', 'scroll_depth');
data.append('value', 80);
navigator.sendBeacon('/analytics', data);
Можно отправлять строки, FormData, Blob, URLSearchParams и некоторые бинарные типы данных.
Пример 3 — проверка:
const accepted = navigator.sendBeacon('/analytics', JSON.stringify({
event: 'leave'
}));
console.log('Beacon accepted:', accepted);
Метод возвращает true, если браузер принял данные в очередь на отправку. Это не гарантия доставки, но означает, что отправка была запланирована браузером.
🔥 Если нужен ответ сервера, кастомные заголовки или полный контроль над запросом, можно использовать fetch с опцией keepalive.
📣 Code Ready | #практика.scroll::after {
position: absolute;
right: 0;
width: 40px;
background: linear-gradient(...);
}
Но это создаёт лишние слои, проблемы с pointer-events и иногда ломает клики.
Есть другой способ — использовать CSS-маску:
.scroll {
mask-image: linear-gradient(to right,
transparent,
black 40px,
black calc(100% - 40px),
transparent
);
}
mask-image управляет прозрачностью элемента, а не рисует поверх него слой.
Чёрный цвет = полностью видимый контент
Прозрачный = плавное исчезновение.
Это хорошо работает для горизонтальных списков:
.scroll {
display: flex;
overflow-x: auto;
mask-image: linear-gradient(to right,
transparent,
black 40px,
black calc(100% - 40px),
transparent
);
}
🔥 В итоге получаем нативный fade-эффект без псевдоэлементов, без лишних слоёв и без JS.
📣 Code Ready | #советcursor: pointer; делает курсор в виде руки — это сигнализирует, что элемент кликабельный. А cursor: none; полностью скрывает курсор.
На картинке — 16 популярных значений свойства cursor.
Сохрани, чтобы не искать в документации каждый раз!
📣 Code Ready | #ресурсыborder выглядит слишком просто. В этом приёме рамка создаётся отдельным слоем с градиентом.
Как работает:
• псевдоэлемент ::before создаёт слой градиентной рамки; • inset расширяет его за пределы блока, формируя контур; • border-radius: inherit сохраняет форму карточки; • при наведении меняется яркость и масштаб рамки.Это простой способ добавить акцент и глубину интерфейсным элементам без дополнительных обёрток и изображений. 📣 Code Ready | #фишка
Оставляю ссылочку: GitHub 📱📣 Code Ready | #репозиторий
matchMedia() — Web API, позволяющий проверять и отслеживать media queries напрямую из JavaScript. Это помогает синхронизировать поведение JS-кода с CSS-адаптивностью.
Функция возвращает объект MediaQueryList, содержащий результат проверки media query.
Базовое использование:
const media = window.matchMedia('(max-width: 768px)');
console.log(media.matches);
matches — boolean, показывающий соответствует ли текущий viewport заданному media query.
Пример 1 — проверка условия:
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark-theme');
}
Так можно адаптировать поведение интерфейса под системные настройки пользователя.
Пример 2 — отслеживание изменения media query:
const media = window.matchMedia('(max-width: 768px)');
media.addEventListener('change', e => {
console.log('mobile:', e.matches);
});
Событие change срабатывает при изменении состояния media query.
Это позволяет реагировать на изменение состояния media query без использования window.resize.
Пример 3 — адаптация логики интерфейса:
const media = window.matchMedia('(max-width: 600px)');
function updateLayout(mql) {
if (mql.matches) {
enableMobileLayout();
} else {
enableDesktopLayout();
}
}
updateLayout(media);
media.addEventListener('change', updateLayout);
Обработчик сначала вызывается вручную для установки начального состояния, затем автоматически при изменении media query.
Пример 4 — учет пользовательских настроек доступности:
const motion = window.matchMedia('(prefers-reduced-motion: reduce)');
if (motion.matches) {
disableAnimations();
}
Media queries позволяют учитывать пользовательские настройки доступности.
Пример 5 — отслеживание ориентации экрана:
const orientation = window.matchMedia('(orientation: portrait)');
orientation.addEventListener('change', e => {
console.log('portrait:', e.matches);
});
matchMedia используется для: адаптивной логики интерфейса, синхронизации JavaScript и CSS media queries, учета пользовательских настроек доступности и оптимизации поведения UI на разных устройствах.
🔥 matchMedia — удобный способ проверять и отслеживать media queries напрямую из JavaScript.
📣 Code Ready | #практика
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
