Руслан Куянец | Reactify
5.85K subscribers
698 photos
52 videos
39 files
278 links
Я IT-специалист, ментор и основатель проекта YeaHub и сообщества Reactify. Здесь рассказываю про Frontend и IT.

Менторство:
https://reactify.ru

YouTube канал:
https://youtube.com/@reactify-it

YeaHub:
https://yeahub.ru/

Связь:
@ruslan_kuyanets
Download Telegram
Какое свойство CSS вы бы использовали, чтобы изменить направление элементов внутри flex контейнера с горизонтального на вертикальное?

#ВопросДня #quiz #CSS
Anonymous Quiz
8%
flex-wrap: column;
10%
flex-align: column;
78%
flex-direction: column;
4%
flex-flow: column;
🔥4
Какое значение свойства align-items в контейнере flexbox выставляет все дочерние элементы по центру перпендикулярной оси?

#quiz #CSS #Flexbox
Anonymous Quiz
9%
flex-center
2%
center-axis
22%
justify-center
67%
center
👍2
🌟 Grid vs Flexbox: Что выбрать?

🔹 Основное различие:

Flexbox (Flexible Box) оптимизирован для одномерного макета, то есть по оси X (горизонтальной) или по оси Y (вертикальной).
Grid (Сетка) предназначен для двумерного макета, где у вас есть элементы как в рядах, так и в колонках.
🔹 Когда использовать Flexbox:

Для макетов с одномерными структурами: горизонтальные или вертикальные компоненты (например, навигационные меню, боковые панели).
Если вам нужна большая гибкость в распределении пространства и выравнивании элементов.
Когда порядок элементов имеет значение.
🔹 Когда использовать Grid:

Для макетов с двумерными структурами: сетки с рядами и колонками.
Когда нужно разместить элементы по определенным линиям или областям.
Для более сложных и детализированных макетов.

🔹 Что лучше?
Вопрос "что лучше" не совсем корректен. Эти две технологии дополняют друг друга! Их можно использовать вместе в одном проекте. Выбор зависит от конкретной задачи, которую вы решаете.

📌 Заключение: Flexbox и Grid предоставляют разные инструменты для разных ситуаций. Понимание их основных принципов поможет вам правильно выбрать подходящий инструмент для вашего макета. 🛠️🎨

#ОбучающийПост #CSS
🔥2
Какое свойство позволяет установить внешние отступы элемента?

#quiz #CSS
Anonymous Quiz
12%
padding
0%
space
0%
border-gap
88%
margin
Если у элемента установлено значение box-sizing: border-box;, что включается в его общую ширину?

#quiz #CSS
Anonymous Quiz
7%
Только контент
9%
Контент и padding
57%
Контент, padding и border
27%
Все вышеуказанное + margin
👍2
Media is too big
VIEW IN TELEGRAM
Разбор тем по css на собеседовании.

#собеседование #вопросы #css
👍10🔥3
Специфичность селекторов CSS

Специфичность селектора (еще называют весом) это свойство определяющее приоритет стилевого правила, то есть то, какой стиль будет применен к HTML элементу в итоге.

Например, используя какую-нибудь UI библиотеку, элементам этой библиотеки будут применены правила заданные авторами по умолчанию. При необходимости можно поменять стили на свои, «перебив» дефолтные более специфичным селектором.

#обучающийПост #css
👍4👏1
Подключение CSS и JavaScript в HTML-разметке: практики и исключения

CSS-стили, как правило, помещают в тег <head> для того, чтобы браузер мог как можно быстрее загрузить и применить их, обеспечивая тем самым более быструю отрисовку страницы. Если стили будут загружаться после того, как пользователь начнет видеть содержимое страницы, это может привести к "мельканию" стилей, когда содержимое страницы изменится визуально после применения стилей.

JavaScript-скрипты часто размещают перед закрывающим тегом <body>, чтобы они не блокировали отрисовку основного содержимого страницы. Скрипты могут занимать значительное время для загрузки и выполнения, и если разместить их в <head>, пользователь может увидеть пустую или неполностью загруженную страницу.

Однако есть исключения. Например, некоторые скрипты, особенно те, которые отвечают за отслеживание активности пользователя или SEO, иногда помещают в <head>. Это позволяет скрипту собирать данные с самого начала загрузки страницы.

Также, современные браузеры и методы оптимизации позволяют использовать атрибут async или defer с тегом <script>, что позволяет загружать и выполнять JavaScript асинхронно, минимизируя тем самым влияние скрипта на время загрузки страницы.

#обучающийПост #css #html
👍8🔥1👌1
Сброс и Нормализация CSS

Сброс CSS – это техника, при которой мы явно "обнуляем" стили элементов, устанавливая значения отступов, размеров шрифтов, границ и других параметров на 0 или на какое-то другое базовое значение. Это делается для того, чтобы "сбросить" стили, которые браузер применяет автоматически.

Нормализация – это другой способ сделать стили более консистентными между разными браузерами, но без полного "сброса". Нормализация корректирует стили, делая их более предсказуемыми и одинаковыми в разных браузерах, но сохраняя некоторые базовые стили. Например, в нормализации могут быть исправления для отображения элементов форм, таблиц и других элементов в разных браузерах.

#обучающийПост #css #html
👍4
Свойство float в CSS

Свойство float в CSS используется для выравнивания элементов (часто изображений) слева или справа на веб-странице, позволяя тексту и другим элементам "обтекать" их.

Когда элементу присваивается свойство float, он выносится из нормального потока документа и сдвигается влево или вправо в зависимости от значения свойства (left, right, или none). Остальные элементы на странице будут "обтекать" его.

- Элементы с float выходят из нормального потока, что может привести к некоторым проблемам макета, которые обычно решаются с использованием дополнительных CSS-техник, таких как clear.

- float особенно полезен для макетов с несколькими столбцами и для обтекания текста вокруг изображений.

- Современные методы макетирования, такие как Flexbox и Grid, делают float менее необходимым для создания сложных макетов, но это свойство все еще широко используется и полезно знать.

#css #обучающийПост #float
👍8👌2
Блочная модель CSS

Это основной принцип компоновки веб-страниц, который определяет, как элементы веб-страницы размещаются и взаимодействуют друг с другом. Каждый элемент на веб-странице рассматривается как прямоугольный блок.

1. Содержимое (Content): Это основная часть блока, где располагается текст, изображения или другие элементы.

2. Внутренние отступы (Padding): Расстояние между содержимым и границей элемента. Padding увеличивает размер элемента, но остается частью элемента, что означает, что фоновый цвет или изображение элемента будет распространяться на область внутренних отступов.

3. Граница (Border): Обрамляет содержимое и внутренние отступы. Граница является важной частью визуального представления элемента и может быть стилизована различными способами.

4. Внешние отступы (Margin): Пространство вокруг элемента, отделяющее его от других элементов. Внешние отступы не влияют на размер самого элемента, но определяют расстояние между элементами.

Все части блока, кроме внешних отступов (margin), включаются в общую ширину и высоту элемента в CSS.

#обучающийПост #css #block
👍5
Изучаем CSS

На сегодняшний день существует огромное количество интересных ресурсов для изучения технологий, ЯП и инструментов.

Вот пример для изучения отдельных тем в CSS:

1. Flexbox
https://flexboxfroggy.com/#ru

2. Grid
https://cssgridgarden.com/

#css #flexbox #grid #study #free #game
👍5🔥5
Почему мы ушли от Styled Components на проектах

Когда мы начинали писать проекты с использование Styled Components, нам показалось это отличной идеей, сразу обнаружили для себя огромное число плюсов. Однако спустя 6 месяцев использования, решили отказаться от этого.

Использование чистого CSS или CSS Module имеют преимущества перед CSS-in-JS решениями.

🔹Прямая обработка браузером: Чистый CSS обрабатывается непосредственно браузером, что обычно быстрее, чем обработка стилей, внедренных в JavaScript. Браузеры оптимизированы для разбора и применения CSS, что обеспечивает более эффективную отрисовку стилей.

🔹Отсутствие JavaScript-вычислений: Поскольку CSS не зависит от JavaScript для определения и применения стилей, он избегает затрат на производительность, связанных с выполнением JavaScript-кода (например, вычисление стилей на основе состояния или пропсов).

🔹Отсутствие дополнительных библиотек: Использование чистого CSS не требует включения дополнительных библиотек или фреймворков, в отличие от подходов CSS-in-JS, где необходимо использовать библиотеки, такие как Styled Components.

🔹Меньший размер сборки: Поскольку не требуются дополнительные библиотеки, общий размер сборки вашего проекта остается меньше, что положительно сказывается на времени загрузки и производительности веб-страницы.

🔹Уменьшение сложности: Меньшее количество зависимостей также уменьшает сложность проекта, что облегчает поддержку, обновление и устранение ошибок.

Конечно, Styled Components имеют и много плюсов, но мы, разработчики, в нашем мире технологических абстракций, решили отодвинуть в сторону сложности. Мы вернулись к основам: чистому CSS и модулям. Видимо, в какой-то момент мы устали от излишней логики, спрятанной за красивыми интерфейсами. И кто знает, может быть, однажды мы даже сделаем шаг назад к чистому JavaScript, оставив React в покое. В конце концов, иногда проще — это лучше, правда?😅

#css #cssInJs #styledComponents
11👍4🔥3🤔1
PostCSS

PostCSS — это инструмент для преобразования CSS с помощью JavaScript, который позволяет использовать различные плагины для автоматизации рутинных задач, расширения синтаксиса CSS и поддержки будущих стандартов. Он работает как препроцессор, позволяя разработчикам писать CSS более эффективно и с большими возможностями.

Ключевые особенности:

Модульность: выбор только тех плагинов, которые нужны для проекта.
Поддержка будущих CSS стандартов: использование новых CSS возможностей сегодня.
Автоматизация: автопрефиксер, минификация CSS и другие оптимизации.
Улучшенный синтаксис: переменные, вложенности, подобно Sass и Less.

https://postcss.org/

#css #web #postcss
👍9👌3🔥2
Вопрос на собеседовании по CSS: Что такое схлопывание отступов? | CSS | Собеседование

В этом видео рассмотрим важную концепцию CSS — схлопывание отступов. Если вы готовитесь к собеседованию на позицию разработчика, понимание этой темы может оказаться ключевым. Я постараюсь на примере объяснить, что такое схлопывание отступов и как его избежать.

https://www.youtube.com/watch?v=s4YTfgj4vOY

#frontend #css
👍7🔥2💯1
Разница между inline, block и inline-block элементами в CSS

📌 inline
Нельзя задавать ширину (width) и высоту (height) для inline элементов. Они занимают только ту ширину, которая необходима для их содержимого. Например, <span> или <a> занимают столько места, сколько нужно для текста или вложенных элементов.

Отступы (margin) и внутренние отступы (padding) работают, но только горизонтальные. Вертикальные отступы часто игнорируются или не влияют на размещение элементов. Это связано с тем, что inline элементы не начинают новую строку и их вертикальные отступы могут не отображаться как ожидается.


📌 block
Можно задавать ширину и высоту для block элементов. Они занимают всю доступную ширину родительского элемента по умолчанию и начинают новую строку.

Все отступы и внутренние отступы работают, как ожидается, и влияют как на вертикальное, так и на горизонтальное пространство. Это позволяет управлять пространством вокруг элемента и его содержимого.


📌 inline-block
Можно задавать ширину и высоту для inline-block элементов. Эти элементы занимают только ту ширину, которая необходима для их содержимого, но при этом можно установить конкретные размеры.

Все отступы и внутренние отступы работают так же, как и для block элементов. inline-block элементы будут расположены в строке, как inline, но поддерживают высоту и ширину, как block.


inline: <a>, <span>, <strong>, <em>, <img>, <b>, <i>, <abbr>, <cite>

block: <div>, <p>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <ul>, <ol>, <li>, <form>, <header>, <footer>, <section>, <article>, <nav>, <table>

inline-block: <button>, <input>, <label>, <img>, <select>, <textarea>

#frontend #css
Please open Telegram to view this post
VIEW IN TELEGRAM
👍165🔥4
Media is too big
VIEW IN TELEGRAM
✉️ Для тех, кто учится и пополняет портфолио

👩‍💻 Наткнулась на репозиторий
«50 проектов на 50 дней»

В нем 50 мини-проектов на HTML, CSS и JS от легких к более сложным. Внутри можно найти описание и ссылки на демонстрации.

Потом решила поискать в тг и нашла открытый канал с короткими видосиками по реализации каждого проекта - здесь

Похоже слитый, потому что на оф сайте платный курс

Как можно его использовать?

📌 Пошаговое обучение: один проект - один день. Поможет вам систематизировать обучение и не выгореть.
📌 Изучение концепций: каждый проект фокусируется на определённой теме: работа с событиями, манипуляция DOM, создание анимаций и другое.
📌 Пополнение портфолио: будет, что скинуть hr, когда начнете искать работу.
📌 Развитие мышления: учитесь добавлять свои фичи или изменять существующий функционал.

#html #css #js
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93🔥2
🌈 Утилитарные классы

Утилитарные классы — это классы, которые применяют одно конкретное стильовое свойство. Например, text-center, bg-blue, p-4 и другие. Каждый из этих классов отвечает за отдельную задачу, такую как выравнивание текста, установка фона или добавление отступов. Их основная цель — сделать разработку быстрее и проще, не создавая громоздкие и избыточные CSS-правила.

Главная идея утилитарных классов заключается в том, что они являются "заготовками" для применения стилей, которые можно комбинировать для создания более сложных и уникальных дизайнов. Вместо того чтобы создавать новые стили для каждого элемента, можно использовать уже существующие классы, что снижает объем написанного кода и повышает гибкость.

👀 Пример использования утилитарных классов

Допустим, вам нужно создать карточку с текстом и кнопкой. Вместо того чтобы писать отдельные CSS-правила для каждого элемента, вы можете использовать утилитарные классы:


<div class="bg-gray-100 p-6 rounded-lg shadow-md">
<h2 class="text-xl font-bold text-center mb-4">Заголовок</h2>
<p class="text-base text-gray-700">Некоторое описание...</p>
<button class="bg-blue-500 text-white p-2 rounded mt-4">Кнопка</button>
</div>


bg-gray-100 — задает светло-серый фон для карточки.
p-6 — добавляет отступы (padding) размером 1.5rem со всех сторон.
rounded-lg — округляет углы элемента.
shadow-md — добавляет тень.
text-xl — увеличивает размер шрифта заголовка.
font-bold — делает текст жирным.
text-center — выравнивает текст по центру.
mb-4 — добавляет отступ снизу у заголовка.
bg-blue-500 — задает синий фон кнопке.
text-white — делает текст кнопки белым.
p-2 — добавляет отступы для кнопки.
rounded — округляет углы кнопки.
mt-4 — добавляет отступ сверху у кнопки.


Каждый класс отвечает за одно конкретное свойство, и все эти классы можно комбинировать для создания нужного внешнего вида элемента.

🎮 Утилитарные классы в Tailwind CSS

Tailwind CSS — это фреймворк, который полностью построен на утилитарных классах. Вместо того чтобы создавать отдельные CSS-правила для каждого компонента, в Tailwind используются уже готовые утилитарные классы, которые можно применять прямо в HTML-разметке. Это позволяет ускорить разработку и уменьшить объем CSS-кода, так как вы не пишете одни и те же правила для разных элементов, а просто комбинируете готовые классы.

Пример с использованием Tailwind CSS:


<div class="bg-blue-500 text-white p-4 rounded-lg shadow-lg">
<h1 class="text-2xl font-semibold text-center">Привет, мир!</h1>
<p class="mt-2 text-base">Это пример использования утилитарных классов в Tailwind CSS.</p>
</div>


В данном примере:
bg-blue-500 и text-white отвечают за цвета фона и текста.
p-4 — отступы.
rounded-lg — округление углов.
shadow-lg — тень.
text-2xl и font-semibold — стиль заголовка.
text-center — выравнивание текста по центру.
mt-2 — отступ сверху для параграфа.


Tailwind CSS предоставляет очень широкий набор таких классов, позволяя легко комбинировать их и создавать любые стили без необходимости писать сложные CSS-правила. Это делает Tailwind очень популярным инструментом для быстрой разработки интерфейсов.

#css
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥2💯2
🖥 CSS Houdini: Что это и зачем он нужен?

CSS Houdini — это набор API, который открывает доступ к "внутренностям" браузера, позволяя разработчикам управлять процессом рендеринга CSS.

С Houdini можно создавать кастомные свойства, работать с анимациями, управлять раскладкой элементов и даже разрабатывать свои типы CSS-процессоров.

📌 Custom Properties and Values API
Позволяет задавать пользовательские свойства с типизацией.

CSS.registerProperty({
name: '--main-color',
syntax: '<color>',
inherits: false,
initialValue: 'black',
});

Теперь --main-color можно использовать как любое CSS-свойство, например, в анимациях.

📌 Paint API
Используется для создания кастомных графических эффектов.

class MyPaintWorklet {
paint(ctx, size, properties) {
ctx.fillStyle = 'blue';
ctx.fillRect(0, 0, size.width, size.height);
}
}
registerPaint('my-paint', MyPaintWorklet);

// Затем в CSS:
.element {
background: paint(my-paint);
}


📌 Animation Worklet API
Упрощает создание сложных анимаций с минимальным воздействием на производительность. Например, плавные анимации, работающие на уровне композитора.

📌 Layout API
Дает контроль над раскладкой элементов. С ним можно реализовать свои алгоритмы расположения, например, нестандартные сетки.

📌 Parser API
Открывает доступ к разбору и интерпретации CSS-свойств.

Преимущества CSS Houdini
- Расчеты выполняются на уровне браузера, а не в основном потоке JavaScript.
- Вы можете создавать уникальные стили и эффекты, не дожидаясь поддержки новых CSS-фич.
- С его помощью можно создать настоящую экосистему кастомных стилей.



// paint.js
class DotsWorklet {
paint(ctx, size, props) {
const radius = size.width / 10;
ctx.fillStyle = props.get('--dot-color').toString();
for (let y = radius; y < size.height; y += 2 * radius) {
for (let x = radius; x < size.width; x += 2 * radius) {
ctx.beginPath();
ctx.arc(x, y, radius, 0, 2 * Math.PI);
ctx.fill();
}
}
}
}
registerPaint('dots', DotsWorklet);

// styles.css
:root {
--dot-color: red;
}

.element {
background: paint(dots);
}


CSS Houdini — это будущее веб-разработки, которое уже наступило. Если вы хотите выделяться и использовать передовые технологии, начинайте изучать Houdini прямо сейчас. 💡

#css #browser #frontend #houdini
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍9💯4
👨‍💻 План развития Frontend Разработчика (Часть 1)

Этот гайд — пошаговая дорожная карта для изучения фронтенд-разработки, подготовки к собеседованиям и поиска первой работы.

Важно понимать:
- Средний срок обучения с нуля до изучения полного стека — ~6 месяцев.
- Дополнительные 2+ месяца могут потребоваться для практики, подготовки к собесам, изучения в глубину и поиска работы.
- Скорость прогресса зависит от бэкграунда, времени на учебу и умения учиться.

Главный принцип:
Закладываем фундамент → Повторяем → Практикуем → Углубляемся. Важно "забить мозг" технологией, чтобы она стала привычной. Для этого:
- Смотрим одни и те же темы в разных источниках.
- Много пишем код, даже если кажется, что не понимаешь.

🗺 Frontend Roadmap 2024. План + Ресурсы для бесплатного обучения

🖥 HTML (< 2 недель)
Изучать HTML без CSS может показаться скучным, но наша главная цель — разобраться в возможностях языка и понять, какие теги существуют и для чего они нужны. Не стоит заучивать всё подряд — с практикой придёт понимание, когда и какие теги применять.

→ HTML с 0 до Профи. Полный курс + Практика
https://youtu.be/56lpkwhaJhQ?si=yaljlD28fC5ygHt-

→ HTML - Полный Курс HTML Для Начинающих
https://www.youtube.com/watch?v=W4MIiV4nZDY

🖥 CSS (< 4 недель)
Не стоит заучивать все свойства. Лучший способ — практика. Нужно больше верстать и пробовать. Пройдите подряд 2-3 курса и начинайте смотреть, как верстают другие. Видео по верстке в YouTube очень много

CSS - Курс по CSS для Начинающих
https://www.youtube.com/watch?v=WpridlBQmdk

CSS для Начинающих - Практический Курс
https://www.youtube.com/watch?v=SpCUuyZZTp8

→ Объяснение Вёрстки Простого Сайта
https://www.youtube.com/watch?v=MQTeFDeiRzg

→ Адаптивная верстка сайта на HTML CSS
https://youtu.be/PoJaRi7Ug7Q?si=L30HX2oiLzydfLAb

Далее возьмите 2-4 макета в Figma. Сверстайте их самостоятельно, сверяясь с конспектами.

🖥 Git & GitHub (1 неделя)
Освойте основы: создание репозитория, веток, коммитов и пуша. Цель — загрузить проект на GitHub. Остальное изучите позже.

→ Git и GitHub Курс Для Новичков
https://www.youtube.com/watch?v=zZBiln_2FhM

Дополнительно
После освоения базовой вёрстки вы сможете расширить навыки:
- Препроцессоры (Sass/Less)
- Продвинутые анимации (CSS animations, GSAP)
- CSS-фреймворки (Bootstrap, Tailwind)

Но не задерживайтесь на этом этапе слишком долго! Главное сейчас — закрепить основы и переходить к JavaScript.

С самого начала параллельно с изучением технологий готовься к собеседованиям. Каждый раз после освоения новой темы закрепляй теорию — проходи вопросы в тренажере 🚀 YeaHub.

#гайд #html #css #git
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥285😁4👍2