Перейти к содержимому
Технологии IT обновлён 16.01.2022

Frontend разработчик

Библиотека Frontend программиста. Книги, полезные материалы, статьи, новости, уроки по front end/web разработке.

Публикации канала

3 полезных совета по Tailwind CSS Tailwind CSS произвел революцию в том, как мы подходим к веб-дизайну, предложив утилитарно-ориентированный фреймворк, который позволяет быстро разрабатывать и легко настраивать интерфейсы. В этом посте мы рассмотрим три менее известных, но очень полезных совета по Tailwind CSS, которые помогут ускорить рабочий процесс и улучшить качество кода. 1. Используйте size-{n} для одинаковой ширины и высоты Вместо того чтобы отдельно задавать ширину и высоту, можно использовать утилиту size-{n}, если элементу нужны одинаковые размеры. <!-- Вместо этого --> <div class="w-12 h-12 bg-blue-500 rounded-full"></div> <!-- Используйте это --> <div class="size-12 bg-blue-500 rounded-full"></div> Этот шорткат удобен для квадратов, кругов и любых элементов, где нужна равная ширина и высота. 2. Применяйте divide-{y/x}-{n} для равномерного разделения Когда нужно добавить границы или разделители между дочерними элементами, вместо ручного добавления бордеров каждому ребёнку используйте утилиту divide-{y/x}-{n} на родительском контейнере. Это гарантирует единообразное разделение и уменьшает количество кода. <!-- Вместо этого --> <div> <div class="py-4 border-b">Item 1</div> <div class="py-4 border-b">Item 2</div> <div class="py-4">Item 3</div> </div> <!-- Используйте это --> <div class="divide-y"> <div class="py-4">Item 1</div> <div class="py-4">Item 2</div> <div class="py-4">Item 3</div> </div> Этот подход особенно полезен для списков, меню и любых макетов, где нужно одинаковое разделение элементов. 3. Используйте произвольные варианты с [&_selector]: Tailwind CSS позволяет применять стили ко всем совпадающим дочерним элементам через родителя с помощью синтаксиса [&_selector]:. Это делает HTML чище и удобнее в поддержке. <!-- Вместо этого --> <ul> <li class="mb-2 text-blue-500">Item 1</li> <li class="mb-2 text-blue-500">Item 2</li> <li class="mb-2 text-blue-500">Item 3</li> </ul> <!-- Используйте это --> <ul class="[&_li]:mb-2 [&_li]:text-blue-500"> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> </ul> Этот метод особенно полезен для единообразного применения стилей к дочерним элементам без необходимости прописывать их каждому отдельно. 📲 Мы в MAX 👉 @frontend_1

Открыть в Telegram

Где CSS подложил вам ловушки Мне кажется, что каждый фронтендер множество раз сталкивался с ситуацией, когда CSS переставал работать так, как ожидаешь. Причём не имеет значения опыт разработчика. С одинаковой вероятностью в тупик может попасть как джун, так и опытный разработчик. Не зря же CSS стал героем такого количества мемов. Я и сам не раз попадал в подобные ситуации. Но, несмотря на все эти сюрпризы, CSS мне по-прежнему нравится. Конечно, изменить стандарты я не могу. Зато могу рассказать о ловушках, в которые когда-то я попался. Возможно, некоторые из них окажутся неожиданными и для вас. Давайте посмотрим, что я подготовил. https://habr.com/ru/companies/ruvds/articles/1097580/ 📲 Мы в MAX 👉 @frontend_1

Открыть в Telegram

Сократите свой CSS-код с помощью :where() Используйте псевдокласс-функцию :where(), когда нужно применить одинаковые стили к нескольким элементам, не беспокоясь о том, что порядок селекторов повлияет на специфичность правил. Это простой способ сделать CSS более предсказуемым и удобным для поддержки. /* Without :where() */ .container > h1, .container > .card h1, .container > .card:last-child { border: 2px solid red; padding: 10px; } /* With :where() */ .container > :where(h1, .card .h1, .card:last-child) { border: 2px solid red; padding: 10px; } 📲 Мы в MAX 👉 @frontend_1

Открыть в Telegram

Распространённые коды состояния HTTP 📲 Мы в MAX 👉 @frontend_1

Открыть в Telegram

CSS совет 💡 Возможно, вы не знали, что в CSS можно задавать поворот, используя единицу измерения turn 📲 Мы в MAX 👉 @frontend_1

Открыть в Telegram

Совет по Javascript 💡 Как выбрать последний элемент массива 📲 Мы в MAX 👉 @frontend_1

Открыть в Telegram

Совет CSS 💡 Вы можете не знать об этом псевдоклассе CSS 📲 Мы в MAX 👉 @frontend_1

Открыть в Telegram

🪄 Трюк: «Скелетон» без JS При загрузке данных часто ставят Spinner. Но современный UX → Skeleton (серый шаблон контента). И делать его можно без JS! .skeleton { background: linear-gradient( 90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75% ); background-size: 200% 100%; animation: shimmer 1.5s infinite; border-radius: 8px; } @keyframes shimmer { 100% { background-position: -200% 0; } } 📌 Как использовать: 1. Создаёте div с классом .skeleton вместо контента. 2. Размеры задаёте под будущий элемент (картинка, текст). 3. Меняете на реальные данные после загрузки. Плюсы: - Нет лишнего JS. - Лёгко адаптировать под любую форму. - Современный UI → выглядит «дорого». 📲 Мы в MAX 👉 @frontend_1

Открыть в Telegram

Совет по CSS 💡 Используйте табличные цифры для отображения таймеров ✅ https://www.codewithshripal.com/playground/css/use-tabular-number-for-timers 📲 Мы в MAX 👉 @frontend_1

Открыть в Telegram

🚀 Быстрое улучшение Lighthouse: content-visibility Хотите ускорить рендер длинных страниц без костылей? Используйте CSS-свойство: .card { content-visibility: auto; } Что делает: - Браузер не рендерит невидимые элементы (за пределами вьюпорта); - Сохраняет размер блока для скролла; - Экономит ресурсы → First Paint быстрее, Lighthouse выше. Где применять: - Списки (товары, посты); - Длинные страницы; - Виджеты ниже фолда. ⚠️ Осторожно: не ставьте на элементы с динамическим контентом, где важно мгновенное измерение размеров. Можно добавить contain-intrinsic-size → убрать "скачок" при появлении. .card { content-visibility: auto; contain-intrinsic-size: 300px; } 2 строки — и сайт ощущается быстрее ✨ 📲 Мы в MAX 👉 @frontend_1

Открыть в Telegram

🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash Советы https://max.ru/sysadminof Книги для админов, полезные материалы https://max.ru/i_odmin_book Библиотека Системного Администратора https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др. https://max.ru/tipsysdmin Типичный Сисадмин https://max.ru/channel_win_sysadmin Системный Администратор Windows https://max.ru/channel_linux_admin Linux: Системный администратор https://max.ru/channel_linuxmod Linux https://max.ru/channel_i_linux Системный администратор https://max.ru/channel_devopslib DevOps, SRE, Sysadmin https://max.ru/channel_devops_star DevOps Star (Звезда Девопса) Excel лайфхак 📌 https://t.me/Excel_lifehack Excel лайфхак Английский с нуля 🇬🇧 https://max.ru/UchuEnglish 1C разработка 📌 https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С https://max.ru/channel_DevLab1C 1С:Предприятие 8 Программирование C++📌 https://max.ru/cpp_lib Библиотека C/C++ разработчика https://max.ru/channel_cpp_geek C++ geek Программирование Go📌 https://max.ru/golang_lib Библиотека Go (Golang) разработчика Программирование React📌 https://max.ru/react_lib React Программирование Rust📌 https://max.ru/channel_rust_lib Программирование Python 📌 https://max.ru/python_of Python академия. https://max.ru/BookPython Библиотека Python разработчика Java разработка 📌 https://max.ru/bookjava Библиотека Java разработчика https://max.ru/channel_java_geek Java Geek GitHub Сообщество 📌 https://max.ru/githublib Интересное из GitHub Базы данных (Data Base) 📌 https://max.ru/database_info Все про базы данных Фронтенд разработка 📌 https://max.ru/frontend_1 Подборки для frontend разработчиков Библиотеки 📌 https://max.ru/programmist_of Книги по программированию https://max.ru/proglb Библиотека программиста https://max.ru/bfbook Книги для программистов Программирование 📌 https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻 Шутки программистов 📌 https://max.ru/itumor Шутки программистов Защита, взлом, безопасность 📌 https://max.ru/thehaking Канал о кибербезопасности https://max.ru/xakkep_1 Хакер Free Книги, статьи для дизайнеров 📌 https://max.ru/odesigners Статьи, книги для дизайнеров Математика 📌 https://max.ru/Pomatematike Канал по математике https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике Вакансии в IT📌 https://max.ru/progjob https://max.ru/channel_rabotait Мир технологий 📌 https://max.ru/mir_teh Канал для любознательных Городские📌 https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга https://max.ru/mockva_life Свежие новости Москвы https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП https://max.ru/channel_krasnodar_novosty Краснодар Новости https://max.ru/channel_novosibirsk_novosti Новосибирск https://max.ru/channel_samara_novosti Новости Самары https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга https://max.ru/channel_kazan_novosti Новости Казани https://max.ru/channel_omsk_novosti Новости Омска https://max.ru/channel_moskva_24 Москва 24 MAX Системный Администратор | Sysadmin Windows & Linux Server. … Реклама Tg t.me/evgenycarter Купить рекламу: https://telega.in/m/i_odmin Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и те…

Открыть в Telegram

5 офферов получили наши ребята на прошлой неделе Оффер на 4,2k долларов Оффер на 5k евро Оффер 260k рублей Оффер на 210k рублей Оффер на 220k рублей И еще 19 за сентябрь... а за лето более 50... и у тебя получится! 👋 Меня зовут Тихон, я действующий Frontend-разработчик и ментор. За руку довожу до оффера в Big Tech и не бросаю на испытательном сроке. Вокруг меня собралось целое комьюнити из почти 300 фронтендеров. Я веду канал, в котором уже 15 тыс разработчиков. Регулярно публикую полезные материалы по подготовке к собесам. А еще каждый четверг у нас проходят полезные стримы с решениями задач и разборами резюме) Забирайте в закрепленном сообщении Полные разборы реальных собеседований: Сбер, VK, OZON, M-Video, Evrone, еще раз OZON, IT One, Trading View, МТС, Лантан, ДОМ.РФ Сборники вопросов по темам: Кибербезопасность на собеседовании Все вопросы по React на собеседовании Все вопросы по TypeScript на собеседовании Как решать задачи двумя указателями Вопросы с Vue собеседований Вопросы по сетям и методологиям с 200 собесов Вопросы по JS с 200 собесов Какие задачи спрашивают на livecoding чаще Полезные посты: Job-борды для поиска работы Запись нашего самого кринжового собеса Новый HTTP метод QUERY 🏆Статистика по рынку: Июль, Июнь, Май, Апрель, Март Подписывайся 👇 frontend_punks Реклама, erid: 2W5zFGkqG2V ИП Галактионов Тихон Витальевич, ИНН 771618975809

Открыть в Telegram

Мини-хак: :has() в CSS — меньше JS для интерактивности 🎯 Современные браузеры уже поддерживают :has() — “родительский селектор”, который раньше приходилось эмулировать на JS. Пример: показать рамку у карточки, если внутри есть картинка: .card:has(img) { border: 2px solid #4ade80; } Ещё круче: стилизовать соседний элемент, если внутри инпута что-то введено: .input-wrapper:has(input:focus) label { color: #3b82f6; } Зачем это нужно? — Меньше JS → проще поддержка — Новый уровень гибкости для UI Документация: MDN про :has() Пробуйте! Это реально меняет подход к верстке. 📲 Мы в MAX 👉 @frontend_1

Открыть в Telegram

🔥 Трюк с style в React, который упростит работу с динамическими стилями Вместо создания длинных условий или классов, можно использовать spread-оператор и логические выражения прямо в объекте стилей: <div style={{ padding: '16px', ...(isError && { border: '1px solid red' }), ...(isActive ? { backgroundColor: '#def' } : { opacity: 0.5 }), }} > Hello! </div> 📌 Что тут происходит: * ...(условие && { стиль }) добавит стиль, если условие true; * Альтернатива classnames для inline-стилей; * Чисто, читаемо и удобно при большом числе условий. 🧠 Подходит, когда используете inline-стили (например, в дизайн-системах или при генерации email-шаблонов). 💡 Можно комбинировать с memo-компонентами и кастомными хуками, чтобы минимизировать ререндеры и повысить производительность. 📲 Мы в MAX 👉 @frontend_1

Открыть в Telegram

Комментарии

0

Комментарии пишут вошедшие — так видно, кто автор.

Войти

Комментариев пока нет

Будьте первым, кто расскажет о канале другим.

Пожаловаться на канал

Расскажите, что не так: модератор проверит канал и примет решение. Подпись не нужна, но почту можно оставить — тогда ответим.

Причина Что не так (необязательно) Почта для ответа (необязательно)
Открыть в Telegram