React: Порівняння та Особливості Роботи зі Стилями - Від CSS-класів до Styled Components

Поділитися
Вставка
  • Опубліковано 11 лип 2024
  • Код з прикладами - github.com/MaksymRudnyi/Tutor...
    Зміст відео:
    00:00 Варіанти роботи зі стилями в React
    00:27 Демо
    00:52 Про автора
    02:28 Методи роботи зі стилями
    04:31 CSS метод
    07:21 SCSS - препроцесори
    10:22 CSS-modules
    13:39 Inline стилі
    22:33 Styled components
    29:28 Emotion styles
    31:52 Tailwind
    37:43 JSS
    40:40 Висновок
    Буду вдячний за підтримку каналу:
    Patreon - / rudnyi
    Mono Bank - send.monobank.ua/jar/6oqhydjLGp
    або так - 5375 4114 0505 7287
    Приват банк - 5363 5426 0316 4386
    Давайте дружити:
    Telegram ↣ t.me/maksymrudnyi
    Telegram чат ↣ t.me/joinchat/H4AF4W4dfGeGepNQ
    INSTAGRAM ↣ / maksym_rudnyi
    TWITTER ↣ / maksymrudnyi
    FACEBOOK ↣ / travelscode
    WEB-SITE ↣ travelscode.com/
    GITHUB ↣ github.com/MaksymRudnyi/
    Другий UA-cam канал ↣ / travelscode
  • Наука та технологія

КОМЕНТАРІ • 56

  • @andrewb3790
    @andrewb3790 Рік тому

    Дуже Дякую ! Дуже корисно !

  • @user-wb7vi7rc2d
    @user-wb7vi7rc2d 5 місяців тому

    Дякую за крутий матеріал і цікаву викладку інформації. Прекрасно!

  • @YaroslavEx
    @YaroslavEx Рік тому +1

    Максиме, дякую за корисний відос!
    #react #css #js #scss #tailwind

  • @johnanderson6461
    @johnanderson6461 Рік тому

    Макс, дякую за відео, було цікаво! Так тримати! 💪👍

  • @AI-su3ds
    @AI-su3ds Рік тому

    Як завжди нові і цікаві теми

  • @nikkicoldex8408
    @nikkicoldex8408 Рік тому

    Дякую за контент!)

  • @yaroslavoz
    @yaroslavoz Рік тому

    👏👏👏 Thanks for useful content! 🙂

  • @user-nq2co6qy4y
    @user-nq2co6qy4y Рік тому

    дякую за порівняння, вперше дізналася про tailwind)

    • @MaksymRudnyi
      @MaksymRudnyi  Рік тому

      Будь ласка. Кажуть Tailwind крута штука, багато хто юзає. В LinkedIn під цим постом про Tailwind навіть маленький батл розпочався.

  • @boyywnkobe
    @boyywnkobe Рік тому

    Дуже коирсно

  • @vadym_za
    @vadym_za Рік тому

    Дякую!

  • @hasst9261
    @hasst9261 Рік тому

    Крутяо, нове відево

    • @MaksymRudnyi
      @MaksymRudnyi  Рік тому +1

      Сподіваюсь відео сподобалось.

    • @hasst9261
      @hasst9261 Рік тому

      @@MaksymRudnyi звичайно! Дякую

  • @serj1979
    @serj1979 Рік тому

    дякую за контент українською. круто, що його стає все більше 👍
    з власної практики скажу, що, якщо проект не вибагливий до дизайна, то css-бібліотеки типу bootstrap/tailwind або навіть ant/mui норм рішення. якщо є дизайн, типу "я художник, я так бачу", тобто стилі потребують кастомізації, то віддаю перевагу index.css + styled components

  • @luckymaxxx
    @luckymaxxx Рік тому

    Макс, крутий контент
    Ти часом козачки не граєш за ADI? Голос подібний дуже

  • @user-nc1gr2ue4k
    @user-nc1gr2ue4k Рік тому +2

    Просуваємо український ІТ контент👍

  • @haibova_irisha
    @haibova_irisha Рік тому +2

    Використовую scss + tailwind

    • @MaksymRudnyi
      @MaksymRudnyi  Рік тому

      Зручний в роботі Tailwind? Я так і не дійшов до його використання.

    • @haibova_irisha
      @haibova_irisha Рік тому

      @@MaksymRudnyi так , використовую css modules , а там вже можна міксувати scss та tailwind

  • @Podolsky45
    @Podolsky45 Рік тому

    Дуже дякую! Будь ласка, хапиши матеріал про використання i18next. 🙏

    • @MaksymRudnyi
      @MaksymRudnyi  Рік тому

      Хочу записати, але руки не доходять. Зараз використовую на своєму пет проєкті, крута штука, більше подобається наж react-intl

    • @Podolsky45
      @Podolsky45 Рік тому

      ​@@MaksymRudnyi якщо все ж таки буде час і натхнення, розберіть, будь ласка, питаня - як встановлювати дефолтну мову на сторінці, якщо вона приходить с бека. Тобто ситуація, клієнт може встановили на сайті мову на своєму аккаунті, яка зберігається на бекі. Якщо там є запис - то встановлюємо її, якщо ні - то якусь дефолну (або з браузера). Будь ласка 🙏🙏
      Бо в доках у них якось мало інфи стосовно таких налаштувань, та і в принципі по такому кейсу

    • @MaksymRudnyi
      @MaksymRudnyi  Рік тому

      @@Podolsky45 Вітаю. В доках Ви багато інфи з цього приводу не знайдете бо це не зовсім відноситься до цієї ліби. По факту, Вам треба витягнути інфу про мову користувача і зробити її активною на сайті. Кроки:
      1. Керування мовою сайту реалізоване в якомусь стейт менеджері. В мене є приклад на MobX - github.com/MaksymRudnyi/Ukraine-Now/blob/5247beddae2f78f45bdf2b25e10d2e4eea9f1799/client/src/store/UIStore.ts#L21
      2. При відкритті сайту робиться запит на інфу користувача де отримується його збережена мова.
      3. Після отримання мови сетиться потрібна мова сайту, якщо нема то береться дефолтна (залежить на налаштуваннь)

    • @MaksymRudnyi
      @MaksymRudnyi  Рік тому

      @@Podolsky45 Ще один приклад, я беру мову зі стору (там мона може з локал стореджа зберігатися) і встановлюю її активною - github.com/MaksymRudnyi/Ukraine-Now/blob/5247beddae2f78f45bdf2b25e10d2e4eea9f1799/client/src/store/index.js#L17

    • @Podolsky45
      @Podolsky45 Рік тому

      @@MaksymRudnyi о дуже Вам дякую! Це прям те, що треба, допомогло!

  • @oleksiikonovalchuk7863
    @oleksiikonovalchuk7863 Рік тому +2

    Так у модулях можна використовувати scss

  • @ysdev___
    @ysdev___ Рік тому

    First 😎

    • @MaksymRudnyi
      @MaksymRudnyi  Рік тому

      Норм, інші варіанти не пробували?

  • @ivannadiuk5709
    @ivannadiuk5709 Рік тому

    Дякую! Якось пояснювати, щоб всі розуміли, як для першокласника віку, змогли б?

    • @MaksymRudnyi
      @MaksymRudnyi  Рік тому

      для початківців треба дивитися відоси з розділу для початківців. Весь конент розбитий по списках в залежності від досвіду.

  • @jamesmay5088
    @jamesmay5088 Рік тому

    Вітаю! Дякую за ваш контент) пане Максиме як ви ставитесь до розвитку штучного інтелекту? Чи є загроза для майбутніх програмістів? Дякую

    • @MaksymRudnyi
      @MaksymRudnyi  Рік тому +1

      Вітаю. Планую найближчим часом випустити відео на цю тему. Якщо коротко то загроза є.

    • @jamesmay5088
      @jamesmay5088 Рік тому

      @@MaksymRudnyi , зрозумів. Очікую з нетерпінням🙂 ще раз дякую за відповідь)

    • @serhii_ts
      @serhii_ts 9 місяців тому

      Я вирішив повернутися до розробки після тривалої паузи, першим ділом вирішив користуватися допомогою ChatGPT. Після спроб вирішити кілька поставлених задач цим інструментом зрозумів, що поки є люди, що пишуть код, то штучний інтелект їх не замінить. Власне кажучи, в чому ситуація, якийсь сервіс оновлюється, а штучний інтелект про це не знає.
      На цей час він не в змозі розв'язувати актуальні питання, він не дуже зберігає контекст розмови. Мої спроби користуватися штучним інтелектом привели до того, що я зрозумів, що простіше самому розібратися з проблемою, хоча всілякі примітивні речі він вже може робити. Звісно це все розвиватиметься і через умовні 5 років ситуація може кардинально змінитися, але зараз перейматися немає за що

  • @boyywnkobe
    @boyywnkobe Рік тому +1

    А де ти береш веб шторм безплатно ?

    • @MaksymRudnyi
      @MaksymRudnyi  Рік тому +2

      Там де і бесплатно Premium UA-cam, Netflix, ChatGPT Pro та інші корисні сервіси - за гроші з власної карточки.

    • @boyywnkobe
      @boyywnkobe Рік тому

      @@MaksymRudnyi сильно)

  • @dimapopov5962
    @dimapopov5962 3 місяці тому

    34:50 Ні, не треба ще щось до Tailwind ліпити, бо буде каша. Хіба що готові компоненти. Суть Tailwind - забути про окремий CSS.
    CSS підходи: BEM, SMACSS, Utility first (Tailwind), Inline-styles.
    А СSS-in-JS та CSS модулі це з іншої опери.
    У відео тільки Tailwind вирішує всі питання, а все інше тільки часткові рішення.
    Наприклад, styled-components ніщо не кажуть про організацію селекторів, а inline стилі не мають псевдо-селекторів.

    • @MaksymRudnyi
      @MaksymRudnyi  3 місяці тому +1

      BEM, SMACSS - це методології, які з React ще й неактуальні та незручні.

    • @dimapopov5962
      @dimapopov5962 3 місяці тому +1

      @@MaksymRudnyi Я також так думаю, я сам за утилітний підхід. Але суть в тому, що взявши emotion.js чи styled-components чи SCSS, все ж потрібно визначитися BEM чи SMACSS чи ще щось. Дуже часто бачу як BEM комбінують з CSS-in-JS. Ще раз, я за Tailwind, він вирішує всі проблеми зі структуризацією. До речі він найпопулярніший, а не просто популярний.

    • @MaksymRudnyi
      @MaksymRudnyi  3 місяці тому +1

      Я тейлвінд практично не використовував, лише на одному проєкті нещодав. Мені навіть сподобався, але є дві проблеми, які мене турбують: 1) довжина класів - в екран не вміщаються і важко відтримувати це (pritter плагін не особливо допомагає) і 2) Не знайшов якоїсь нормальної бібліотеки компонентів, щоб безкоштовна і з усім що потрібно. Не хочу я кожен раз з нуля створювати попапчики чи модалки, стилізувати самому інпути в дропдауни. Є для цього якесь рішення?

    • @dimapopov5962
      @dimapopov5962 3 місяці тому

      @@MaksymRudnyi Tailwind UI платний, тому можна MUI використовувати для готових компонентів, але тут діло не в Tailwind, бо styled-components це ж також не про готові рішення. Стосовно довгих класів - виносити в зміну, або інкапсулюємо в окремий компонент. Якщо хочете кастомний колір bg-[#50d71e], або створюєте власну утиліту в Tailwind.config. Якщо ж ми працюємо з чистим HTML, тоді довжина класів не так страшно, як дублювання самого HTML через відсутність компонентного підходу, або надлишковість CSS та important.

    • @MaksymRudnyi
      @MaksymRudnyi  3 місяці тому

      Зрозуміло що styled-components не про готові рішення, але їх можна з MaterialUI використовувати і наслідувати (хоча MUI - дно, мені не подобається). Я зараз на проєкті використовую ChakraUI. Подобається, але там свої особливості і тягнути чакру чи material разом з tailwind нема сенсу, а компоненти все одно потрібні.

  • @leroviten
    @leroviten Рік тому

    Інлайн то ще той цирк)) і, до речі, ховер спокійно можна реалізувати через додаткову змінну яка буде трекати на елементі onMouseOver/onMouseLeave.
    Але то дійсно страшне через специфікацію і неможливість їх перебити