Фронтенд Гайд
الذهاب إلى القناة على Telegram
Канал для фронтендеров, много полезных лайфхаков, фичей, макетов, тестов! Все представлено в виде готового кода, бери и юзай в своем проекте. 6ad1a2aabe82d4fbb0d6
إظهار المزيد7 687
المشتركون
لا توجد بيانات24 ساعات
-87 أيام
-4730 أيام
جاري تحميل البيانات...
القنوات المماثلة
سحابة العلامات
الإشارات الواردة والصادرة
---
---
---
---
---
---
جذب المشتركين
أكتوبر '26أكتوبر '26
أكتوبر '26
+9
في 0 قنوات
سبتمبر '26
+46
في 0 قنوات
Get PRO
أغسطس '26
+88
في 0 قنوات
Get PRO
يوليو '26
+51
في 1 قنوات
Get PRO
يونيو '26
+1 646
في 4 قنوات
Get PRO
مايو '260
في 0 قنوات
Get PRO
أبريل '26
+4
في 0 قنوات
Get PRO
مارس '26
+6
في 1 قنوات
Get PRO
فبراير '26
+6
في 3 قنوات
Get PRO
يناير '26
+10
في 1 قنوات
Get PRO
ديسمبر '25
+72
في 9 قنوات
Get PRO
نوفمبر '25
+55
في 0 قنوات
Get PRO
أكتوبر '25
+56
في 0 قنوات
Get PRO
سبتمبر '25
+51
في 0 قنوات
Get PRO
أغسطس '25
+65
في 0 قنوات
Get PRO
يوليو '25
+44
في 0 قنوات
Get PRO
يونيو '25
+44
في 0 قنوات
Get PRO
مايو '25
+71
في 0 قنوات
Get PRO
أبريل '25
+82
في 0 قنوات
Get PRO
مارس '25
+56
في 0 قنوات
Get PRO
فبراير '25
+114
في 0 قنوات
Get PRO
يناير '25
+102
في 0 قنوات
Get PRO
ديسمبر '24
+189
في 0 قنوات
Get PRO
نوفمبر '24
+166
في 1 قنوات
Get PRO
أكتوبر '24
+201
في 0 قنوات
Get PRO
سبتمبر '24
+156
في 0 قنوات
Get PRO
أغسطس '24
+227
في 0 قنوات
Get PRO
يوليو '24
+217
في 0 قنوات
Get PRO
يونيو '24
+254
في 0 قنوات
Get PRO
مايو '24
+301
في 0 قنوات
Get PRO
أبريل '24
+332
في 0 قنوات
Get PRO
مارس '24
+388
في 0 قنوات
Get PRO
فبراير '24
+282
في 0 قنوات
Get PRO
يناير '24
+162
في 0 قنوات
Get PRO
ديسمبر '23
+263
في 6 قنوات
Get PRO
نوفمبر '23
+951
في 31 قنوات
Get PRO
أكتوبر '23
+38
في 1 قنوات
Get PRO
سبتمبر '23
+356
في 0 قنوات
Get PRO
أغسطس '23
+542
في 0 قنوات
Get PRO
يوليو '23
+13
في 0 قنوات
Get PRO
يونيو '23
+15
في 0 قنوات
Get PRO
مايو '23
+27
في 0 قنوات
Get PRO
أبريل '23
+81
في 0 قنوات
Get PRO
مارس '23
+309
في 0 قنوات
Get PRO
فبراير '23
+15
في 0 قنوات
Get PRO
يناير '23
+33
في 0 قنوات
Get PRO
ديسمبر '22
+354
في 0 قنوات
Get PRO
نوفمبر '22
+1 251
في 0 قنوات
Get PRO
أكتوبر '22
+35
في 0 قنوات
Get PRO
سبتمبر '22
+11
في 0 قنوات
Get PRO
أغسطس '22
+22
في 0 قنوات
Get PRO
يوليو '22
+69
في 0 قنوات
Get PRO
يونيو '22
+30
في 0 قنوات
Get PRO
مايو '22
+75
في 0 قنوات
Get PRO
أبريل '22
+60
في 0 قنوات
Get PRO
مارس '22
+630
في 0 قنوات
Get PRO
فبراير '22
+470
في 0 قنوات
Get PRO
يناير '22
+1 403
في 0 قنوات
Get PRO
ديسمبر '21
+3 816
في 0 قنوات
| التاريخ | نمو المشتركين | الإشارات | القنوات | |
| 06 أكتوبر | +1 | |||
| 05 أكتوبر | +2 | |||
| 04 أكتوبر | +2 | |||
| 03 أكتوبر | +2 | |||
| 02 أكتوبر | 0 | |||
| 01 أكتوبر | +2 |
منشورات القناة
VPN, который можно включить один раз — и больше о нём не думать.
Надоело постоянно переключать VPN туда-сюда?
Включил ради одного сервиса — перестал нормально работать банк. Выключил — снова не открывается нужный сайт.
В Архангел VPN это решили автоматически добавив белые списки!
И всё это одновременно.
Ничего вручную переключать не нужно.
Плюс внутри уже есть:
— встроенный AdBlock — меньше рекламы и трекеров
— быстрые серверы
— подключение за несколько минут
— удобное управление прямо из Telegram
— оплата картой, СБП, Криптовалютой или Telegram Stars
— пробный доступ перед покупкой
И главное — без дорогих подписок по 300–500 ₽ в месяц.
Тарифы Архангел VPN — от 49 ₽
А по промокоду
FORNT5 · скидка 5%
То есть полноценный VPN можно получить дешевле чашки кофе, без сложных настроек и скрытых условий.
Оплатили → нажали «Подключить» → готово.
Попробуйте Архангел VPN и почувствуйте разницу сами.
👉 @arhangel29bot
Архангел VPN — включил и забыл!| 2 | Новую капчу Google уже научились обходить
Капчу с проверкой через камеру удалось пройти с помощью обычных фотографий, открытых на экране
— Вместо выбора картинок теперь нужно показать жест в камеру
— Оказалось, что системе достаточно изображения с экрана — живой человек не обязателен
— Из-за этого новую защиту удалось обойти гораздо быстрее, чем ожидалось
Надёжно, как швейцарские часы | 468 |
| 3 | Совет по CSS: Единица измерения turn
Иногда проще задать вращение с помощью единицы turn вместо deg, особенно когда нужно указать значение больше 360 градусов (1 turn = 360 deg) | 632 |
| 4 | 😍 QuickRef — компактная шпаргалка по JavaScript!
Это удобный справочник, где собраны ключевые конструкции, методы и синтаксис JS на одной странице. Здесь есть всё необходимое: переменные, функции, операторы, строки, массивы и базовые примеры кода для быстрого ориентирования. Формат максимально сжатый и практичный.
📌 Оставляю ссылочку: quickref.me | 720 |
| 5 | Sakana AI выпустила Fugu, модель, которая внутри сама собирает команду из других ИИ под вашу задачу
Снаружи это один API, как у любого чат-бота. Внутри Fugu сама решает, справится в одиночку или позвать сильных специалистов из своего пула, распределяет задачи, проверяет ответы и собирает итог.
Версий две. Обычная Fugu для повседневной работы и Fugu Ultra для сложных многошаговых задач. Обе подключаются через один OpenAI совместимый API.
По бенчмаркам Fugu Ultra идет вровень с Anthropic Fable 5 и Mythos Preview на инженерных, научных и рассуждающих тестах. На практических задачах обходит Gemini 3.1 Pro, Opus 4.8 и GPT 5.5.
На код ревью Fugu Ultra находит десятки проблем там, где другие модели видят три или четыре. Хорошо держит роль агента в долгих сессиях, не сбивается со своей задачи. По одному короткому заданию способна провести полный аудит безопасности с отчетом и не выйти за рамки.
Главная фишка не только в качестве. Fugu не зависит от одного поставщика. | 698 |
| 6 | Опыт в своей области важнее умения программировать
Anthropic опубликовала исследование по 400 тысячам сессий Claude Code от 235 тысяч пользователей.
Главный вывод. В типичной сессии человек принимает 70% решений о том, что делать, а Claude принимает 80% решений о том, как это делать. Человек ставит задачу, ИИ её реализует.
Эксперты в своей области получают от инструмента значительно больше. У новичка каждый промпт запускает примерно 5 действий Claude и 600 слов вывода. У эксперта те же метрики равны 12 действиям и 3200 словам. Разница в 5 раз, при этом речь не про знание кода, а про понимание своей предметной области.
По успешности сессий картина схожая. Новички добиваются подтверждённого результата в 15% случаев, пользователи среднего уровня и выше в 28-33%. Но самый большой скачок происходит при переходе от новичка к среднему уровню, а не от среднего к эксперту. | 729 |
| 7 | Anthropic выложили бесплатную библиотеку промптов для Claude
В Prompt Library собраны готовые промпты для Claude Code с объяснениями, почему они работают и как адаптировать их под свои задачи.
— Поиск уязвимостей и анализ безопасности
— Отладка кода и исправление ошибок
— Автоматизация задач и рабочих процессов
— Для каждого промпта есть рекомендации по использованию
Бесплатно 🚀
Забираем тут. | 716 |
| 8 | Summer AI Conf | ИИ конференция про работу с визуальным контентом
9 июля Phygital+ проводит бесплатную онлайн конференцию про реальные кейсы внедрения нейросетей в дизайн, маркетинг и бизнес-процессы. Как перестать зависеть от фотостоков и уложить производство контента в 1 день вместо недели?
Ключевые спикеры и темы:
X5 Tech, Чижик — ИИ-видео для SMM и мерча.
DEPOT — ИИ в спецпроектах и HR-брендинге.
KANZLER — кампании без съемок под каждую гипотезу.
Альфа банк — живой кейс команды про внедрении ИИ инструментов.
ИВИ — ускорение продакшна для стриминга. | 720 |
| 9 | Как сделать блок на всю высоту экрана без проблем с 100vh
Для полноэкранных секций часто пишут:
.hero {
min-height: 100vh;
}
На компьютере всё выглядит нормально.
Но на мобильных браузерах 100vh может вести себя неожиданно из-за адресной строки и нижней панели браузера.
В результате блок иногда оказывается выше видимой области, а часть контента уезжает вниз.
Для современных браузеров лучше использовать dvh:
.hero {
min-height: 100dvh;
}
dvh означает dynamic viewport height.
То есть браузер пересчитывает высоту блока вместе с изменением реально доступной области экрана.
Например:
<section class="hero">
<h1>Главный экран</h1>
<p>Контент всегда помещается в видимую область.</p>
</section>
.hero {
min-height: 100dvh;
display: grid;
place-items: center;
}
Теперь при появлении или скрытии панелей мобильного браузера высота секции будет корректироваться автоматически.
Есть ещё два похожих значения:
100svh
100lvh
100dvh
svh — минимальная высота viewport, когда панели браузера занимают бол | 671 |
| 10 | 12-летняя девочка запустила ИИ-стартап: она разработала бота-ассистента, который помогает малому бизнесу удерживать клиентов.
Мана Джампала написала сервис через Claude. Бот успешно прошел первые тесты. Через два года она планирует выйти на акселераторы Y Combinator или a16z, а следом — на венчурные фонды.
Одна проблема — возраст. Сервис Маны нравится онлайн-бизнесу, но на живых питчах ее не воспринимают всерьез. | 748 |
| 11 | Как менять родительский элемент с помощью CSS :has()
Раньше CSS не позволял выбрать родительский элемент в зависимости от того, что находится внутри него. Для этого приходилось добавлять JavaScript или отдельные классы.
Теперь можно использовать псевдокласс :has().
Например, подсветим поле формы, если внутри него есть элемент с ошибкой:
.form-field:has(.error) {
border-color: #ff4d67;
background: #fff3f5;
}
Или изменим карточку, если внутри находится выбранный чекбокс:
.card:has(input:checked) {
border-color: #3185ff;
transform: translateY(-2px);
}
Также :has() удобно использовать для проверки соседних элементов:
.item:has(+ .item.active) {
opacity: 0.6;
}
Главное преимущество — можно строить интерактивные состояния интерфейса без лишних классов и небольших JavaScript-обработчиков.
Используйте :has() для форм, карточек, меню, фильтров и компонентов, состояние которых зависит от вложенного содержимого. | 751 |
| 12 | Xiaomi MiMo-V2.6 Pro: новая открытая модель для генерации 3D и сложных ИИ-агентов.
Компания Xiaomi представила новое поколение своих мультимодальных разработок — серию MiMo-V2.6. В линейку вошли две открытые модели: флагманская MiMo-V2.6 Pro и облегченная версия Flash. Этот релиз стал значимым событием для индустрии, так как старшая модель продемонстрировала рекордные показатели производительности, опередив конкурентов в сегменте Open Source и вплотную приблизившись к закрытым проприетарным решениям в специфических тестах на агентность. | 777 |
| 13 | Как адаптировать компонент по ширине контейнера, а не экрана
Обычные media-запросы ориентируются на ширину окна браузера. Но один и тот же компонент может находиться в широкой секции, узком сайдбаре или сетке карточек.
Для таких случаев в CSS есть контейнерные запросы.
Сначала нужно объявить родительский элемент контейнером:
.card-wrapper {
container-type: inline-size;
}
После этого стили компонента можно менять в зависимости от ширины именно этого контейнера:
.card {
display: grid;
grid-template-columns: 1fr;
}
@container (min-width: 560px) {
.card {
grid-template-columns: 160px 1fr;
}
}
Теперь карточка сама переключит компоновку, когда для неё появится достаточно места — независимо от ширины всего экрана.
Контейнерные запросы особенно удобны для карточек, виджетов, сайдбаров и переиспользуемых компонентов в больших интерфейсах. | 830 |
| 14 | ⏳ Как дождаться завершения всех промисов
Promise.all() прерывает ожидание, если хотя бы одна операция завершается ошибкой.
Когда нужны результаты всех задач, используйте Promise.allSettled().
Создаём массив промисов:
const tasks = [
loadUser(),
loadPosts(),
loadStats()
];
Дожидаемся завершения каждой операции:
const results =
await Promise.allSettled(tasks);
Каждый результат содержит статус:
results.forEach(result => {
if (result.status === 'fulfilled') {
console.log(result.value);
} else {
console.error(result.reason);
}
});
Одна ошибка не остановит остальные задачи — вы получите информацию обо всех успешных и неуспешных операциях.
#javascript #frontend #программирование | 751 |
| 15 | 🖼 Ленивая загрузка изображений без JavaScript
Если на странице много изображений, необязательно загружать их все сразу.
Добавьте атрибут loading="lazy":
<img
src="photo.webp"
loading="lazy"
alt="Описание"
>
Браузер отложит загрузку изображения, пока пользователь не приблизится к нему при прокрутке.
Обязательно указывайте размеры:
<img
src="photo.webp"
width="800"
height="450"
loading="lazy"
alt="Описание"
>
Это заранее резервирует место и предотвращает скачки контента во время загрузки.
Не используйте loading="lazy" для главного изображения в первом экране — оно должно загружаться сразу.
Подходит для каталогов, галерей, статей и длинных страниц.
#html #frontend #оптимизация | 725 |
| 16 | ↔️ Адаптивные отступы для любого языка
Вместо физических направлений left, right, top и bottom в CSS можно использовать логические свойства.
Горизонтальные отступы:
.card {
margin-inline: auto;
padding-inline: 24px;
}
Вертикальные отступы:
.card {
margin-block: 32px;
padding-block: 16px;
}
Также доступны отдельные стороны:
.card {
margin-inline-start: 20px;
padding-block-end: 24px;
}
Главное преимущество — браузер учитывает направление текста.
В интерфейсе LTR начало строки находится слева, а в RTL — справа. Поэтому макет автоматически адаптируется под нужный язык.
#css #frontend #локализация | 780 |
| 17 | 📑 Глубокая копия объекта в JavaScript
Оператор расширения создаёт только поверхностную копию объекта:
const copy = { ...original };
Вложенные объекты при этом продолжают ссылаться на одни и те же данные.
Для создания независимой глубокой копии используйте structuredClone():
const copy = structuredClone(original);
Теперь вложенные свойства копии можно изменять отдельно:
copy.user.name = 'Анна';
console.log(original.user.name);
Значение внутри original останется прежним.
structuredClone() поддерживает объекты, массивы, Map, Set, даты и циклические ссылки.
При этом функции и DOM-элементы таким способом скопировать нельзя.
#javascript #frontend #разработка | 776 |
| 18 | 📐 Как сохранить пропорции блока
Чтобы видео, изображение или карточка сохраняли правильную форму при изменении ширины, используйте CSS-свойство aspect-ratio.
Например, создадим блок с пропорциями 16:9:
.video {
width: 100%;
aspect-ratio: 16 / 9;
}
Высоту указывать не нужно — браузер рассчитает её автоматически.
Чтобы изображение полностью заполняло блок:
.video img {
width: 100%;
height: 100%;
object-fit: cover;
}
Если ширина контейнера изменится, его высота подстроится с сохранением заданных пропорций.
Подходит для видео, изображений, карточек, баннеров и превью.
Сохраняйте, чтобы не потерять 📎
#css #frontend #вебразработка | 781 |
| 19 | 👁 Как отследить появление элемента на экране
IntersectionObserver сообщает, когда элемент входит в область видимости пользователя или покидает её.
Создаём наблюдатель:
const observer = new IntersectionObserver(([entry]) => {
entry.target.classList.toggle(
'visible',
entry.isIntersecting
);
});
Подключаем нужный элемент:
const card = document.querySelector('.card');
observer.observe(card);
Теперь можно запускать CSS-анимацию при появлении карточки:
.card {
opacity: 0;
transform: translateY(20px);
transition: 0.4s;
}
.card.visible {
opacity: 1;
transform: translateY(0);
}
Метод подходит для анимаций, ленивой загрузки контента и аналитики просмотров.
#javascript #frontend #вебразработка | 775 |
| 20 | 🎠 Карусель с CSS без JavaScript
CSS Scroll Snap позволяет автоматически фиксировать прокрутку на ближайшей карточке.
Настраиваем горизонтальный контейнер:
.slider {
display: flex;
gap: 16px;
overflow-x: auto;
scroll-snap-type: x mandatory;
}
Затем указываем точку фиксации для каждой карточки:
.slide {
flex: 0 0 80%;
scroll-snap-align: start;
}
Теперь после прокрутки ближайшая карточка сама выровняется по началу контейнера.
Для более плавного поведения можно добавить:
.slider {
scroll-behavior: smooth;
}
Подходит для мобильных подборок, галерей, отзывов и карточек товаров.
#css #frontend #вебразработка | 721 |
