Капец музыкальная вставка напугала без предупреждения)))) Я полез проверять откуда звук идет по соседним вкладкам ))) За видео спасибо
@never.m1nd5 ай бұрын
Вот люблю такие видео - где не спеша и все по полочкам, но при этом без лишней воды 👍
@РоманСивец-т5м10 ай бұрын
Михаил, спасибище огромнейшее. Про общие и модуле после курсов было понятно и использовал модули, а вот про sass/scss ничего не знал, но у нас большинство работодателей требуют это и за 18 минут я овладел знаниями))))) просто супер!
@ВадимСергеев-р2э2 жыл бұрын
Спасибо, Михаил! Ваши объяснения легкие и понятные, как-будто я и так все это знаю и умею. Вы учите так, что в каждом слове чувствуется уверенность в том, что делаете, и опыт. Все ясно и понятно.
@lerrrrka2 жыл бұрын
Большое спасибо за это видео! За 18 мин получила больше информации, чем из множества других) видео ответило на все вопросы по стилизации в реакт, даже на те, которые я здесь и не искала)
@CatWoman-sr4pk6 ай бұрын
какое замечательное объяснение, спасибо большое
@dexterholland4430 Жыл бұрын
Именно то, что искал! Спасибо тебе большое, бро 🔥
@samolevich2 жыл бұрын
Спасибо. Наконец-то нашёл видео, в котором рассказали про префиксы.
@demid088web Жыл бұрын
Спасибо большое! Все четко и по делу!
@vld32372 жыл бұрын
Очень полезный и понятный урок, спасибо тебе
@erzhan2252 жыл бұрын
Спасибо. Согласен с комментариями. Очень кратко и по делу.
@MrGreen-zs7on3 жыл бұрын
Как всегда лаконично и понятно, огромное спасибо за такой информативный канал!)
@МатвейМанько-ь6ч Жыл бұрын
Спасибо! Очень здорово информация структурирована и преподнесена!
@petrovpetrov60952 жыл бұрын
Спасибо за видео !всегда приятно слушать вас
@mrbolshakov122 жыл бұрын
Спасибо большое! Максимально понятно и быстро
@anafro_ru Жыл бұрын
Спасибо большое! Очень просто объяснили :)
@yakut543 жыл бұрын
Миша, Спасибо за науку!
@СергейПетров-б4щ4ч2 жыл бұрын
Супер! Спасибо!
@anurovinfo Жыл бұрын
Круто🔥
@gregdmitriev2784 Жыл бұрын
круто, спасибо Миша, очень чётко, всё по полочкам, всё понятно 👍👍👍👍👍👍
@sergey_zatsepin2 жыл бұрын
Прикольно, спс за видос.
@oleg_andrianov2 жыл бұрын
Круто, спасибо!
@Pink_Piglin Жыл бұрын
Спасибо ! 5/5 звезд тебе.
@sammylain5 ай бұрын
Очень нравятся ваши видео, одни из лучших объяснений на ютубе! По SCSS - никак не пойму его использование при модульном подходе. Вложенность это удобно, но ведь это далеко не все возможности SCSS. Но идея делать импорты миксинов и прочего в модульные файлы кажется мне неправильной - ведь модульные файлы подразумевают некую независимость? А если мы будем делать импорты, то они обрастут этими зависимостями с внешними файлами
@mishanep5 ай бұрын
Зависит от настроек. У нас на проекте мы не импортируем миксины, но используем их. Пришлось пошаманить немного с настройками сборки.
@sammylain5 ай бұрын
@@mishanep оо вот где собака зарыта, спасибо! Теперь понятно, в какую сторону копать)
@АртемАниськин-н6г2 жыл бұрын
Если что сейчас node-sass уже устарел, так что нужен просто sass пакет
@romanroman5820 Жыл бұрын
Михаил, спасибо! У меня к сожалению less c css-modules не заработал.
@remis99662 жыл бұрын
Видео полезное спасибо,а да как я понял в jsx можно забыть про работу с css посредством native js?да и html элементы выбирать уже не получится?а что делать если хочешь прочитать или создать свои свойства в тэгах html
@velikorossnationalist4259 Жыл бұрын
Отличное видео! А про styled components у Вас есть видео?
@mishanep Жыл бұрын
Отдельного нет. Был проект про страны, где он для стилизации использовался.
@velikorossnationalist4259 Жыл бұрын
Спасибо! Посмотрю.
@write-code Жыл бұрын
На 3:17 вы добавляете в папку с компонентом файл index.js и говорите, чтобы "комфортно это дело экспортировать". Так и не понял для чего это нужно? Файл же пустой? Я так понял.
@true2279 ай бұрын
такая же фигня
@artgurianov3 жыл бұрын
Отличное видео! А как при таком подходе обращаться из js к сгенерированным классам, например для анимации?
@mishanep3 жыл бұрын
Приветствую! Могу не до конца понять вопрос, но попробую ответить. Я так понял, что речь конкретно про css-модули и про то, как динамически добавлять/снимать css-классы средствами js. Для этих целей удобно использовать дополнительную библиотечку, вроде classnames. Будет получаться примерно следующее. import {useState} from 'react'; import cn from 'classnames'; import classes from './MyComponent.module.css'; const MyComponent = () => { const [isActive, setActive] = useState(false); const main = cn({ [classes.active]: isActive, }); return ( ) } В данном случае переменная main будет представлять собой строку с набором css-классов по условию. Если ключ имеет значение true, то он будет включен в строку с набором css-классов, если false - то нет.
@serhioramires316610 ай бұрын
Немного не для совсем начинающих. Неприятно гремит клавиатура и еще что-то.... В целом спасибо за видео.
@volselongames4505 Жыл бұрын
Здарова Друг, а не подскажешь как правильно именовать css модули?
@evgeniy33702 жыл бұрын
Михаил здравствуйте, а можно ли данный гайд использовать для приложения на next.js?
@bark205 Жыл бұрын
а как вы решаете проблему inport-normalize - Unknown at-rule ?????
@mishanep Жыл бұрын
Не знаю о какой проблеме идёт речь. Не помню, чтобы встречал.
@andreybalatsan93363 жыл бұрын
Приветствую Михаил, а подскажите такую информацию. В верстке я делал на препроцессоре sass. И у меня был файл style где импортировались все миксины, шрифты, цвета и прочие глобальные привязки, а так же блоки стилей для файлов. А как их привязать в реакте?
@mishanep3 жыл бұрын
Я бы предложил посмотреть в сторону css-переменных. Завести их один раз на глобальном уровне, в index.css и использовать их уже по необходимости. С миксинами сложнее. Вероятно, придется их непосредственно в css-подули подключать по необходимости.
@andreybalatsan93363 жыл бұрын
@@mishanep спасибо большое
@Pipal962 жыл бұрын
Просто прекрасно! На столько моих вопросов ответил которые у меня были в голове, что просто восторг!
@ЕленаКазакова-о1э4и2 жыл бұрын
спасибо за видео! Не понятно, почему 'медиазапросы через sass писать гораздо удобнее'? В css они же точно так же пишутся, как и в приведённом в ролике примере.
@mishanep2 жыл бұрын
В css разве появилась возможность писать вложенные стили? Потом мы рассмотрели базовый пример, для scss есть много подходов значительно упрощающих медиазапросы, чтобы писать не размеры конкретные, а словами mobile, tablet и т.д.
@BuenosAeros2 жыл бұрын
а как вы пересохранили файл со стилями, что он не бы минифицирован ? а то у меня венорные префиксы не проставляются
@oleg_andrianov2 жыл бұрын
Еще не досмотрел, но хочется вот узнать, почему из index.js удобнее экспортировать компонент, а не из component.jsx?
@mishanep2 жыл бұрын
Это фасад. Импорты всегда будут идти из индексного файла, а внутри мы можем менять структуру потом как хотим. Единственное место, где надо будет править импорт, index.js
@oleg_andrianov2 жыл бұрын
@@mishanep я делал импорт из jsx файла и из index.js и не заметил разницы. Я наверное что-то упускаю, только не знаю что.
@2d6ru2 жыл бұрын
Получается БЭМ поверх modules.css уже бессмысленен (как минимум на уровне компонента), только место будут занимать наименования?
@mishanep2 жыл бұрын
Я встречал и помесь модулей с бэм на одном из крупных проектов. Тоже не понял зачем это нужно было))
@2d6ru2 жыл бұрын
@@mishanep привычка, м. б. %)
@vitya.obolonsky10 ай бұрын
module.css понижує performance сайту
@true2279 ай бұрын
откуда информация?
@vitya.obolonsky9 ай бұрын
@@true227гугли
@ramankarseka73622 жыл бұрын
а есть ли возможность module.scss описывать вложенные классы? например, класс active для react-router-dom .element{ &.active{ color:red; } }
@mishanep2 жыл бұрын
Если вложенный класс формируется не динамически, то вполне.
@TheTurbobarbitura2 жыл бұрын
Михаил, а как получить доступ к стилям, при использовании реакта с модулями, из JS? По аналогии с чистым JS - получаем доступ к элементу, потом вешаем на него слушатель события и по, например клику, ()=>{event.target.style.background = 'red'}. Как подобное сделать на реакте с модулем?
@mishanep2 жыл бұрын
Приветствую! Здесь скорее вам какие-то булевые ключи в стейте компонента понадобятся и по событиям вы будете обновлять их. А уже от булевых ключей может зависеть набор css-классов, которые вы повесите на тот или иной элемент, либо содержимое атрибута style. Для удобства комбинирования разных css-классов, будь то модули и просто строки, удобно использовать библиотеку classnames или ее аналоги.
@TheTurbobarbitura2 жыл бұрын
@@mishanep через хук useRef получилось реализовать. Недооценивал раньше его. Все его преподносят как хук для работы с инпутами. Оказывается через него можно на любой дом элемент воздействовать на прямую.
@PoRoKLusT2 жыл бұрын
Спасибо, понятно, уже попробовал - работает, удобно. За видео лайк/подписка. А как подгружать глобальные переменные в модули (например цвета) с общего css файла? В доке написано для этого использовать композицию, например: .otherClassName { composes: className from "./style.css"; } но у меня ругается на слово composes - среда подчеркивает его и пишет unknown property.
@vitya.obolonsky10 ай бұрын
краще звичайни scss заюзать
@batm1x2 жыл бұрын
На 15:50 вроде хотели показать как сбрасывать стили, но показали некий normalize, который добавляет какую-то стилизацию. А как сбросить стили в 0? P.S. Аа, normalize это усовершенствованный reset. Только все равно чет не работает, normalize.css подключается к элементу, но стили в нем перечеркнуты. Как сделать, чтоб стили ант дизайна не перекрывали normalize?
@mishanep2 жыл бұрын
А зачем вы хотите сбросить стили библиотеки UI элементов? Они ж для того и писались, чтобы их использовать из коробки.
@batm1x2 жыл бұрын
@@mishanep уточню, что хотел, почти получилось. В index.css я сначала сбросил стили, подключив reset.css, затем поставил стили из ант. Ниже прописал стиль body, чтоб оставить шрифт, но body стили все равно перечеркнуты на элеменатх, соответственно стиль дефолтный после сброса. Что я делаю не так? @import '~reset-css/reset.css'; @import 'antd/dist/antd.css'; body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-size: 14px; }
@batm1x2 жыл бұрын
вроде разобрался, добавил body, html, #root, .wrapper { стили }
@batm1x2 жыл бұрын
@@mishanep теперь проблема, если перезагрузить приложение, @import '~reset-css/reset.css' будто загружается последний и не работает(( Если его вручную удалить и поставть - опять ненужные стили сбросятся.
@batm1x2 жыл бұрын
@@mishanep всё, реализовал как хотел в index.css стили вставляются в такой последовательности @import 'antd/dist/antd.css'; @import '~reset-css/reset.css';
@АрчибальтГугенов Жыл бұрын
Добрый день! Подскажите, пожалуйста. Например, у меня есть button className={styles.button} Я хочу поменять стили этой кнопке, когда на нее кликну . К примеру, поменяется background-color - button className={styles.buttonActive} В разметке я пишу className={условие ? styles.buttonActive : styles.button}; Но тогда получается мне нужно в стилях помимо background-color дублировать все свойства кнопки, как для активной, так и для пассивной. Как можно оптимизировать этот случай?
@mishanep Жыл бұрын
Вам просто нужно два css-класса передавать на элемент. Один - постоянный с базовыми стилями кнопки, второй - как модификатор, отвечающий за разные состояния.
@АрчибальтГугенов Жыл бұрын
@@mishanep понимаю, о чем вы. Но не знаю, как это выглядит синтаксически. Как передать в эту запись второй класс с модификатором, если она не принимает ничего кроме CamelCase и только один класс? button className={styles.buttonActive}
@mishanep Жыл бұрын
@@АрчибальтГугенов className принимает строку, в строке могут быть пробелы. По сути вы передаёте туда шаблонную строку с постоянной и динамической частью. Либо используете для удобства внешнюю библиотеку вроде classnames
@АрчибальтГугенов Жыл бұрын
@@mishanep понял. Благодарю!
@yakut543 жыл бұрын
Объясни пожалуйста это финт с export { default } from './App'; ну или где почитать про это можно. Не сталкивался с такой записью никогда.
@mishanep3 жыл бұрын
Это он экспорт. Импорт и сразу экспорт. Одной строчкой. Default делает реэкспорт того, что было экспортированно по умолчанию.
@yakut543 жыл бұрын
@@mishanep нятно... поиграться надо.
@madinmt3 жыл бұрын
Здравствуйте Михаил:) подскажите как добавлять дополнительные классы? На один элемент)
@mishanep3 жыл бұрын
Как вариант, можно создать переменную и хранить в ней css классы. Чтобы удобно было работать с классами динамически, можно посмотреть в сторону библиотеки classnames. Она автоматически формирует строку с набором классов по условиям.
@madinmt3 жыл бұрын
@@mishanep спасибо😊
@_kie3 жыл бұрын
С 15:35 пропадает запись до 16:04.
@mishanep3 жыл бұрын
Спасибо, что написали. Поправлю.
@komdiv4906 Жыл бұрын
Счас я вам раскажу как устанавливать scss. Поняли? Ну если вы умеете им пользоваться то у вас все получится. Это как я вам показал как прыгать в бассейн. научились? А те кто умеет прыгать знают как в бассейн воду наливать и сделают это.
@mishanep Жыл бұрын
У каждой темы есть пререквизит. Если вы не умеете плавать, то и прыгать в бассейн было бы странно. Если вы работаете с React-приложением, но не умеете пользоваться npm или плохо знаете JavaScript, вероятно вы слишком рано взяли за Реакт. Если же вы не пользуетесь css-препроцессорами, то, может, оно вам и не надо, и вы просто сможете использовать css-модули после просмотра данного видео. По SASS есть целые многочасовые курсы. И изучение данного инструмента в цели этого видео не входило.
@ВалентинЗырянов-з4ч2 жыл бұрын
14:13
@graa9993 жыл бұрын
что за там-там с барабанами на фоне всё время звучат? Инфа вроде полезная ,но мои уши...
@xxxhonda Жыл бұрын
Подскажите, пожалуйста, что это за тема explorer'а такая? Не могу понять, как загуглить
@RK-yk3hj2 жыл бұрын
супер канал, просто бомба
@mivalb79793 жыл бұрын
Спасибо, полезное видео!
@Алексей-т2х8й Жыл бұрын
+
@vladimirplyukhin52342 жыл бұрын
Михаил, добрый день Появился вопрос: скажите, пожалуйста, если я использую SCSS и module.scss, то можно обойтись без BEM naming в среднем по-размеру проекте? Или лучше разбивать по module с BEM naming?
@mishanep2 жыл бұрын
Да, вполне можно обойтись без бэм.
@vladimirplyukhin52342 жыл бұрын
@@mishanep Спасибо!
@littlegrownbeats2 жыл бұрын
Очень классно и просто! Все что нужно! Огромная благодарность!)