Фронтенд Гайд
Kanalga Telegram’da o‘tish
Канал для фронтендеров, много полезных лайфхаков, фичей, макетов, тестов! Все представлено в виде готового кода, бери и юзай в своем проекте. 6ad1a2aabe82d4fbb0d6
Ko'proq ko'rsatish6 269
Obunachilar
-224 soatlar
-97 kunlar
-5830 kunlar
Postlar arxiv
6 269
Совет по CSS: Единица измерения turn
Иногда проще задать вращение с помощью единицы turn вместо deg, особенно когда нужно указать значение больше 360 градусов (1 turn = 360 deg)
6 269
😍 QuickRef — компактная шпаргалка по JavaScript!
Это удобный справочник, где собраны ключевые конструкции, методы и синтаксис JS на одной странице. Здесь есть всё необходимое: переменные, функции, операторы, строки, массивы и базовые примеры кода для быстрого ориентирования. Формат максимально сжатый и практичный.
📌 Оставляю ссылочку: quickref.me
6 269
👩💻 Нужно быстро связать HTML и CSS?
HTML to CSS autocompletion — подсказывает CSS-классы и id прямо при работе с HTML. Расширение анализирует стили в проекте и предлагает существующие селекторы, чтобы не допускать опечаток. Удобно при верстке, особенно в больших проектах, где легко запутаться в названиях классов.
6 269
CEO Y Combinator выкатил свой сетап для Claude Code
Это целая виртуальная команда из 10+ ролей, которая живёт внутри CLI. Теперь мы живем в реальности, где один человек гоняет 5–10 агентов параллельно: они пишут код, тесты, сами находят баги и фиксят их. У самого Гарри получается до 10–20к строк кода в день при работе «параллельно с CEO».
По факту это превращает Claude в управляемый софтверный завод с ролями, процессами и гейтами.
6 269
👩💻 Нужно открыть PDF, не выходя из редактора?
vscode-pdf — позволяет просматривать PDF-файлы прямо в VS Code: без сторонних приложений и переключений между окнами. Можно быстро открыть документацию, спецификации или инструкции и держать всё в одном рабочем пространстве. Удобно, когда работаешь с проектами, где часто приходится обращаться к PDF.
6 269
NPM Visual Manager— это расширение для VS Code, которое позволяет управлять зависимостями через удобный UI вместо запуска команд в терминале.
→ просмотр установленных и актуальных версий
→ установка пакетов прямо из интерфейса
→ обновление в один клик
→ простое удаление пакетов
→ поддержка массовых операций
→ работает прямо внутри VS Code
Удобно, если не хочется каждый раз вручную вводить npm-команды 👍6 269
Перестань вызывать
redirect() внутри блока try/catch в Next.js
Почему это проблема:
Когда ты добавляешь redirect() из next/navigation внутрь try/catch
redirect() специально выбрасывает внутреннюю ошибку – именно так Next.js понимает, что нужно сделать редирект пользователя
Но если redirect() находится внутри try, то catch перехватит эту ошибку, и редирект не произойдёт
Как исправить:
→ Вынеси redirect() за пределы блока try/catch6 269
Эта фича в VS Code чертовски недооценена 🤯
Можно добавить цветную рамку вокруг окна, чтобы было проще различать разные окна VS Code.
Например, можно задать разные цвета, чтобы визуально отделить frontend и backend проекты при переключении между окнами и не путаться.
→ добавляет рамку вокруг окна
→ поддерживает hex, rgb, hsl и другие форматы
→ удобно при работе с несколькими проектами
→ можно использовать системные или кастомные цвета
Чтобы включить: найди
window.border в настройках, открой вкладку workspace и выбери значение вроде default, system или задай свой цвет6 269
👩💻 Хочешь показать кусок кода так, чтобы он выглядел аккуратно?
Polacode — делает скриншоты кода прямо из VS Code: с подсветкой синтаксиса, темой редактора и оформлением. Просто выделяешь код и получаешь готовое изображение для поста, документации или презентации.
6 269
Простой способ сделать градиентный текст в CSS
Свойство
background-clip определяет, как фоновое изображение или цвет должны быть обрезаны относительно границ текста. В данном случае установлено значение text, что означает, что фон должен быть обрезан по контуру текста.
Также мы используем свойство -webkit-text-fill-color, чтобы сделать цвет текста прозрачным
h1 {
background-image: linear-gradient(109.6deg, rgba(228, 107, 232, 1) 11.2%, rgba(87, 27, 226, 1) 96.7%);
background-clip: text;
-webkit-text-fill-color: transparent;
color: transparent;
}6 269
📂 Напоминалка по иммутабельным методам!
Например,
array.push() изменяет исходный массив, а [...array, item] — создаёт новый без мутации. То же самое с sort(), reverse() и другими — у них есть безопасные аналоги вроде toSorted() и toReversed().
На картинке — 9 мутирующих методов и их иммутабельные альтернативы, которые стоит держать под рукой при работе с массивами.
Сохрани, чтобы не забыть!6 269
📂 Напоминалка по объектам в JavaScript!
Например, объект помогает хранить данные в формате ключ-значение, а через dot notation, bracket notation и destructuring можно быстро получать и использовать нужные свойства.
На картинке — базовые приёмы работы с объектами: создание, доступ к свойствам, изменение значений, добавление новых полей, деструктуризация и методы.
Сохрани, чтобы не забыть!
6 269
👩💻 Когда работаешь с YAML-конфигурациями!
YAML — расширение для VS Code, которое добавляет подсветку синтаксиса, автодополнение и проверку структуры YAML-файлов. Помогает быстрее писать конфиги для Docker, Kubernetes, GitHub Actions и других инструментов, сразу показывая ошибки и подсказки.
6 269
Форматирование JSON-кода
Вы, вполне вероятно, хорошо знакомы с методом JSON.stringify(). А знаете о том, что с помощью этого метода можно форматировать JSON-код? Это, на самом деле, очень просто.
Метод stringify() принимает три параметра. Это параметры value, replace и space. Два последних параметра в этом списке являются необязательными. Именно поэтому их вы, возможно, раньше не использовали. Для настройки выравнивания JSON-кода необходимо использовать параметр space.
6 269
📂 Напоминалка по работе с массивами в JavaScript!
Например,
map() позволяет преобразовать каждый элемент массива, filter() — отфильтровать данные по условию, а slice() — получить часть массива без изменения исходного.
На картинке — основные методы массивов, которые помогают работать с данными быстрее и писать чистый код.
Сохрани, чтобы не забыть!6 269
Совет по веб-доступности: Лучший способ сделать ссылки только с иконками доступными для скринридеров
Иногда нужно создавать ссылки, содержащие только иконку. Например: ссылки для шеринга поста
Но такие ссылки недоступны для пользователей скринридеров
Чтобы это исправить, можно задать подпись в скрытом элементе и связать его с тегом
<a> с помощью атрибутов aria-labelledby и id. Также установите aria-hidden="true" на SVG-иконку, чтобы скринридеры её пропускали6 269
❓ Shallow vs Deep Copy: как не сломать данные?
Когда мы копируем объекты в JS, важно понимать, «зацепят» ли изменения оригинала нашу копию.
⤴️ Shallow Copy (Поверхностная)
Копирует только верхний уровень. Если внутри есть вложенные объекты, то копия будет ссылаться на те же участки памяти, что и оригинал.
Как сделать:
[...arr], {...obj} или Object.assign().
Недостаток: Изменишь вложенный объект в копии — он изменится и в оригинале.
⤵️ Deep Copy (Глубокая)
Создает полную независимую копию всех уровней вложенности.
Как сделать:
structuredClone(obj) — современный стандарт (рекомендуется в 2026!).
JSON.parse(JSON.stringify(obj)) — старый костыль (не копирует методы и Date).
Библиотеки типа lodash (cloneDeep).
const user = { name: "Ivan", skills: ["JS"] };
const copy = { ...user }; // Поверхностная копия
copy.skills.push("React");
console.log(user.skills); // ["JS", "React"] — Ой! Оригинал тоже изменился.6 269
🗳 Почему типы не спасают от плохого API
Есть распространённая иллюзия, если код типизирован — значит, всё ок. Спойлер: нет. Типы защищают от части ошибок, но не от плохих архитектурных решений.
❗️ Типы проверяют форму, а не смысл
type User = {
id: string
role: string
}
С точки зрения типов — идеально. С точки зрения домена — катастрофа. Что такое role? Какие значения допустимы? Что означает пустая строка? Типы молчат. Ошибки — нет.
❗️ Типизированный хаос — всё ещё хаос
API может быть:
— перегруженным
— непоследовательным
— с неочевидными побочными эффектами
— и при этом идеально типизированным
doStuff(data, options, flags, ctx)
❗️ Типы не заменяют дизайн, лишь фиксируют этот бардак в коде
Если API:
— принимает «объект всего»
— возвращает any-подобные структуры
— заставляет знать внутренности системы
Плохой интерфейс + типы = плохо типизированный интерфейс.
❗️ Типы не объясняют, как пользоваться API
TypeScript не отвечает на вопросы:
— в каком порядке вызывать методы
— какие комбинации валидны
— что можно делать, а что нельзя
Если без документации API непонятен — типизация не спасёт.
❗️ Типы часто скрывают архитектурные проблемы
Когда видишь:
— гигантские union-типы
— Partial<T> поверх всего
— бесконечные дженерики
Это не «сложно». Это симптом.
❗️ Как типы усиливают хороший дизайн, а не маскируют плохой
Типы работают, когда:
— API маленький
— ответственность чёткая
— доменные ограничения выражены явно
— названия говорят сами за себя
📌 TypeScript — это не страховка от плохого API. Это усилитель. Хороший дизайн он делает надёжнее. Плохой просто закрепляет навсегда.6 269
👩💻 Указываем, по каким линиям обрезать вертикальные отступы текста.
Свойство
text-box-edge задаёт, по каким визуальным линиям текста нужно обрезать вертикальные края блока, когда используется text-box-trim. Это помогает более точно контролировать высоту текстового контейнера.
Границы текста можно задать разными способами.
Верхняя граница (top-edge):
• cap — по верхушкам заглавных букв;
• ex — по высоте строчных букв;
• text — по фактическому верху видимых символов.
Нижняя граница (bottom-edge):
• alphabetic — по базовой линии текста;
• text — по самой нижней части символов (включая «хвосты»).
Отлично подходит для числовых полей, дат и диапазонов, делая валидацию более наглядной.
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
