Вакансия фронтендера: hh.ru/vacancy/105805840?from=employer&hhtmFrom=employer В основном фронтент пишем на ангуляре, но от кандидатов в первую очередь ждем хороших знаний о вебе. Ангуляр можно изучить уже будучи в штате. Но есть еще и небольшая вакансия на реакте: hh.ru/vacancy/105450865?from=employer&hhtmFrom=employer Также есть много других айтишных вакансий: hh.ru/employer/6591 Телеграм: t.me/howToLearnIT 0:00 В чем суть? 1:11 CSS-переменные как великое благо 1:40 Проблема цветовой палитры 5:10 Компонентные CSS-переменные 6:51 CSS-переменные как связь между JS и CSS 7:27 Кастомный нативный Checkbox 9:10 Кастомный нативный Radio 9:30 Кастомный нативный Toggle 9:52 Кастомный нативный Chip 11:17 Кастомный нативный Input File 12:22 Могущественный :has 13:30 Popover API 15:25 Кастомный нативный Scrollbar 16:38 CSS Scroll Snap 17:00 Position Sticky 17:30 Scroll Driven Animation 17:40 Главный инсайт Ссылки: 1. Гайд: проектируем систему цветов. Всё про styles, tokens, variables: habr.com/ru/articles/781082/ 2. Петр Жемчугов на Holy.js kzitem.info/news/bejne/yoal2KR9sIh1qqg 3. Основные принципы маскирования в CSS habr.com/ru/companies/ruvds/articles/729974/ 4. Ролик о ViewTransition API kzitem.info/news/bejne/y5uMtIJppnipgnY #css #html #frontend #javascript
@АлександрГерасимов-с3щ
2 күн бұрын
А что толку постить вакансии, если на том конце все равно сидит рекрутер, который без посторонней помощи java от javascript не отличит?
@FrontNinja
2 күн бұрын
Я хз откуда столько скептических комментариев, но я полностью поддерживаю тебя, автор! Я задолбался работать с челами, которые не могут в верстку и семантику. Очень крутой выпуск. Все по делу пусть и с некоторой субъективностью, но с основным вектором согласен. Давай больше такого)
@andreasstager1642
Күн бұрын
Может потому что дебилоиды-манагеры загоняют людей в степь, к которой у них совсем душа не лежит, или просто мозги устроены по-нормальному а грибы они не употребляют?
@andreasstager1642
Күн бұрын
Может недалекие манагеры заставили заниматься этим людей, у которых мозги под другое заточены?
@1Aloyd1
Күн бұрын
Спасибо. Разработчики во всех сферах IT всегда находят тех, чью работу можно считать "ненужной". Тестеры не нужны, потому что разработчики сами могут писать автотесты. HR не нужны потому что разработчики сами могут проводить собеседования. И верстальщики не нужны потому что для этого есть спец. технологии в JS. Благо разработчики не проджект менеджеры...
@BearVodkaAndValenki
2 күн бұрын
CSS и HTML - это основа, без которой ни один js-разработчик не может по праву назвать себя фронтендером.
@pOdhTNbbI
2 күн бұрын
не правда, если у компании есть свой кит (а он есть почти у всех) то чистого css и html разрабы будут касаться по минимуму.
@AMTVE
2 күн бұрын
@@pOdhTNbbIа этот кит будет писать и поддерживать? Бекендеры?
@BearVodkaAndValenki
2 күн бұрын
@@pOdhTNbbI, касаться или не касаться - это зависит от специфики проекта. Но если из набора знаний только JS, то перед вами не front-end разработчик.
@pOdhTNbbI
2 күн бұрын
@@AMTVE кит поддерживает отдельная команда как правило, но даже если у вас все лазят его и меняю, то кит растет и заглядывать туда со временим нужно все реже и реже.
@pOdhTNbbI
2 күн бұрын
@@BearVodkaAndValenki ну ты сам себе придумал правила по которым ты решаешь кого называть разработчиком а кого нет, я вот считаю по херу как ты знаешь html и css если у тебя норм зп и много оферо. Ну а то что какой-то тип будет думать иначе я переживу. п.с. если ты не знаешь базу алгоритмов но знаешь как круто в css переменные называть ты не програмист но фронтендер :D
@funnyenglish4330
2 күн бұрын
С возвращением!
@theProhorKey
Күн бұрын
Как хорошо, что я не фронтендер)
@user-tt4hc5yj8v
2 күн бұрын
Ура))) Вас не хватало!🤩
@nikolay_nikolay99
2 күн бұрын
Красава! Давай ещё🎉
@alexnozer
2 күн бұрын
Интерфейсы усложняются, HTML и CSS развиваются. И действительно, разработчиков, которые хорошо знают HTML, CSS и браузерные API очень мало, что в итоге сказывается на качестве пользовательских интерфейсов. И это я ещё молчу о семантике, валидности и доступности. Например, в видео автор использует атрибут role с несуществующими значениями, не валидный элемент chip и кастомные атрибуты (сори за духоту). Кажется, пора разделять роли UI-разработчика и JS-разработчика. Первые специализируются на HTML, CSS, SVG, UI, доступности, веб-компонентах, браузерных API, тесно работают с дизайном и разрабатывают UI kit. А вторые специализируются на JavaScript, Typescript, фреймворках, стейт-менеджменте, архитектуре, паттернах, API, работают над логикой и не занимаются ненавистной им вёрсткой. Кажется, от этого все только выиграют. Кроме, разве что, работодателей, которые за одну ЗП хотят фуллстека-мастера на все руки.
@Spider0444
2 күн бұрын
Так в нормальных конторах есть такое разделение, у нас верстальщики занимаются версткой, а фронтендры программированием, все довольны.
@alexnozer
2 күн бұрын
@@Spider0444 да, где-то такое разделение есть, но в целом практика не распространённая. Многие относятся к верстальщикам скептически, как к чему-то не серьёзному. На мой взгляд пора уйти от термина "верстальщик" к "UI-разработчик" или "UI-инженер". Потому что UI - это не только про вёрстку, это про более широкий круг навыков, которыми неплохо обладать, чтобы делать хорошие интерфейсы.
@Spider0444
2 күн бұрын
@@alexnozer Кто и где скептически относится? Зумерки в околопрограммистских пабликах, трушные бородатые программисты? У нас в компании это полноценная роль в этапе разработки. Никому и в голову не придет обозвать верстальщика несерьезным/неполноценным. Я провожу по 2-3 собеседования в неделю по верстке и могу с уверенностью сказать: хорошего верстальщика днем с огнем не сыскать. Зато сколько я вижу недофронтендеров, с гордыми React/Redux в CV, которые не то что гриды, а флексы нормально не знают. Вот к таким отлично подходит определение "неполноценный".
@alexnozer
2 күн бұрын
@@Spider0444 рад видеть единомышленников. На самом деле круто, что у вас в компании такой подход, за это респект! Современный фронтенд сильно перекосило в сторону JS и фреймворков, а на знания веб-платформы многие забивают.
@WERWOLION
Күн бұрын
да с 2024 нужно возвращать верстальщиков сейчас ещё новые свойства завезут те кто перейдут на верстальщиков будут делать вещи лучше проблема только в том что заказчик нищий и покупает бутстрап а через год узнаёт после аудита за 20к что бутрап юзать было нельзя и к нему целый год небыло трафика из -за бустрапа и пенальти на гугле и теперь нужно все делать заново . работодатель ничего не выигрывает - он создает порожняк и клиенты уходят потом в апатию. Ко мне приходят заказчики после этих контор и там у них отбивает вообще заниматься сайтом. Т.е. шляпа конторы вызывают отток покупателей
@zxcqwe-c9u
2 күн бұрын
ну всё, ждем курс по html & css лично от тебя
@alexperemey6046
Күн бұрын
Вот из-за таких Юай китов разработчики и перестают владеть html, css...
@NeverGTI
11 сағат бұрын
Ну так то фронтендеры тоже разные есть. Кто то ui компоненты пилит, а кто то магию на условном канвасе исполняет или на d3js.
@WERWOLION
2 күн бұрын
я посмотрел верстку на реакте с компонентами и глаза мои плакали кровью победив html в прод вышло тысяча спецов которых можно поместить только в мусорную корзину все фреймворки и весь js в 2024 должен работать на сss переменных , поэтому вью и реакт тормоза
@chikenmacnugget
Күн бұрын
🤡 🤡 🤡
@WERWOLION
Күн бұрын
@@chikenmacnugget очередной хи-хи мен использовал свою супер силу
@Genorred
Күн бұрын
В плане? Что там с вёрсткой не так?
@АлександрПомазан-х7т
2 күн бұрын
А можно подробнее насчет значений "chip" и "toggle" для аттрибута role? И почему мы используем кастомный тег для обертки вместо div или label?
@alexnozer
2 күн бұрын
role - это специальный атрибут из стандарта ARIA, который создан для расширения HTML и улучшения доступности сайтов и приложений для людей с ограничениями здоровья. "chip" и "toggle" являются не валидными значениями role, это упущение со стороны автора видео. Вместо "toggle" стоило применить валидную и существующую роль "switch", а "chip" не стоило использовать вовсе, семантики чекбокса/радио хватило бы. Элемент в стандартном HTML является не валидным, в названии кастомных элементов должен быть как минимум один дефис, как это показано в . В свою очередь кастомные элементы (веб-компоненты) - это стандарт, который позволяет создавать свои теги и наделять их логикой.
@it2138
Күн бұрын
Ну тут стоит разделять стандарт и то как работают браузеры). И уж в в плане HTML и CSS браузеры очень часто отходят от стандарта. Посмотрите к примеру как реализован атрибут autocomplete у инпутов. Спойлер: не по стандарту. В реальности я могу использовать кастомный тег chip во всех современных браузерах и это абсолютно валидно, если я принимаю риск создания в будущем нативного тега chip. В нашем ките мы конечно используем префикс библиотеки через дефис, но мне хотелось подчеркнуть, что можно сделать прям совсем нативно. То же самое с role. Да chip и toggle в списке доступных значений нет, но это не значит, что я не могу задавать то что захочу. Да, пусть скринридеры тут их не считают, но мне это и не нужно. А нужно мне сделать селектор с помощью которого я бы мог чекбокс отличать от тоггла и от чипсы. И тут вы не правы, что семантики чекбокса и радио хватило. Нет не хватило бы) И атрибут role тут просто отлично подходит по своему смыслу: назначать роли элементам. В ките мы конечно разделяем их с помощью директив, но опять таки хотелось показать более нативный вариант
@alexnozer
Күн бұрын
@@it2138категорически с вами не согласен. > Ну тут стоит разделять стандарт и то как работают браузеры). А почему мы должны это разлелять? Стандарты для того и пишутся, чтобы разработчики браузеров по ним внедряли фичи. В целом так и происходит. Пример, когда каждый делал как хотел, известный как Браузерные Войны, прекрасно показал, к чему приводит игнорирование стандартов. А проекты вроде Web Platform Tests и Interop идут полным ходом и задача их - совместимость со стандартами у разных браузеров. Да, бывают баги и некоторые расхождения, но в целом базу стараются делать по стандартам. > Посмотрите к примеру как реализован атрибут autocomplete у инпутов. Если вы про значение off и игнорирование браузером, то это по стандарту. Если внимательно смотреть описание, то off не выключает автокомплит как таковой, а выключает определённый тип подсказок и оставляет за браузером право предлагать другие значения. А остальные значения в целом работают как описано. > В реальности я могу использовать кастомный тег chip во всех современных браузерах и это абсолютно валидно Можете. Более того, вы можете делать много чего другого, что будет работать. Но это потому что HTML очень толерантный язык и много чего допускает, а не потому что так можно. Проверьте пример с chip и role в валидаторе. chip будет объектом HTMLUnknownElement в DOM. Ничего не произойдёт, в HTML вряд-ли такой элемент добавят. Но это не правильно. А на мой взгляд профессиональный разработчик уважает стандарты и валидирует разметку. > мне хотелось подчеркнуть, что можно сделать прям совсем нативно Я вашу идею понял. В примере с файловый инпутом вы используете , что валидно и нативно. Я бы ожидал увидеть условный вместо . > То же самое с role. Да chip и toggle в списке доступных значений нет, но это не значит, что я не могу задавать то что захочу. Опять же, да, вы можете. Просто потому что нет механизма, который выдал бы ошибку. Браузер скушает как есть, потому что HTML - это не XML с чёткой схемой. Но по стандарту ARIA атрибут role имеет конкретное назначение, определённый список допустимых значений и правила применения. > Да, пусть скринридеры тут их не считают, но мне это и не нужно Вам не нужно. А пользователям всевозможных ассистивных технологий это очень нужно. Для этого role и предназначен. Вот был кастомный свич чекбоксом, ридеры бы озвучили это, а вы переопределили роль и сломали семантику элемента. Это нарушает сразу несколько критериев WCAG, который закреплён на законодательном уровне во многих странах. > А нужно мне сделать селектор с помощью которого я бы мог чекбокс отличать от тоггла и от чипсы. В HTML для этого предусмотрено несколько механизмов, вы можете использовать их: class, data-*, itemprop и itemscope, rel и Custom Elements. Они именно для безопасного расширения HTML. > И тут вы не правы, что семантики чекбокса и радио хватило. Нет не хватило бы) Говоря о семантике в этом контексте, я имею ввиду встроенную семантику элемента для дерева доступности. Чипсы - это группа элементов, в которой можно выбрать один или несколько элементов. Иными словами, это подвид чекбоксов или радиокнопок. Пользователи, которые столкнутся с таким элементом, поймут, что с этим делать и как работает интерфейс. Ну а специальной роли для чипсов в ARIA нет. Можно попробовать использовать кнопки, aria-pressed и aria-roledescription. Но надо тестить на юзерах. > И атрибут role тут просто отлично подходит по своему смыслу: назначать роли элементам. Давайте так: вы сами решили, что это отлично подходит. Я, проводя аудиты доступности, регулярно сталкиваюсь с тем, что разработчики используют ARIA неуместно. И от этого плохо целевым пользователям. На моём опыте, такое потом приходится долго и больно исправлять в больших системах.
@alexnozer
Күн бұрын
@@it2138но в любом случае лайк за видео и что подняли тему важности знания HTML/CSS
@pOdhTNbbI
2 күн бұрын
Как удобно удалять коменты на которые сложно ответит, браво 👏
@AbraKadabra000
2 күн бұрын
это Ютуб удаляет, когда кто-то в комментах пишет нежелательные вещи. а автор канала настраивает что-то вроде "удалять любые комментарии содержащие ссылки или что-то похожее на ссылки"
@pOdhTNbbI
2 күн бұрын
@@AbraKadabra000 сомневаюсь что ютуб удаляет удаляет коментарии без оскорблений с аргументацией, что знания цсс мало кому нужны. вон я его мудаком назвал и ниче, ютуб не удалил, висит комент.
@AbraKadabra000
2 күн бұрын
@@pOdhTNbbIпопробуй какой-нибудь код написать например CSS или JavaScript функцию он живо удалит её
@sakkarem
2 күн бұрын
@@AbraKadabra000даже настраивать ничего не надо. Ютуб часто удаляет безобидные комментарии по беспределу.
@null_user1227
Күн бұрын
Ютуб сам удаляет комментарии, даже вполне безобидные
@НікітаКорчемний-г4ч
2 күн бұрын
Какое-то извращение на 1:40, кто так вообще делает ? Делаешь в папке app>styles>theme файлы по типу dark.scss, white.scss и тд. В каждом файле создаёшь класс в котором будут сss переменные, и важно чтобы в каждом файле название переменных было одинаковое. Далее пишешь просто логику которая тебе класс заменяет и всё, никаких медиа запросов, так ещё и добавить можно тему в 3 клика.
@sakkarem
2 күн бұрын
Зачем, если с переменными гораздо проще?
@НікітаКорчемний-г4ч
2 күн бұрын
@@sakkarem ты не понял, мы создаём класс с переменными, и т.к. переменные одинаковые, мы используем нужные нам цвета через var() , и просто делаем логику которая меняет класс вместо медиа приколов Типа таких классов : .app_dark_theme { --bg-color: #061300; --inverted-bg-color: #e5f5e1; --primary-color: #04bb04; --secondary-color: #04ff04; --inverted-primary-color: #030; --inverted-secondary-color: #014b01; .app_light_theme { --bg-color: #e5f5e1; --inverted-bg-color: #061300; --primary-color: #030; --secondary-color: #014b01; --inverted-primary-color: #04bb04; --inverted-secondary-color: #04ff04; Это уменьшает количество разных переменных, ускоряет добавление новых тем, так ещё и позволяет не придумывать тысячи названий переменных под каждую тему
@sakkarem
2 күн бұрын
@@НікітаКорчемний-г4ч то есть класс применяется к корневому элементу страницы? Да, хороший подход, надо будет тоже использовать.
@НікітаКорчемний-г4ч
2 күн бұрын
@@sakkarem да, пишем функцию для изменения класса и живём без всего этого дроча с медиа запросами
@sakkarem
2 күн бұрын
@@НікітаКорчемний-г4ч космос. Спасибо.
@_webAmoeba
2 күн бұрын
не css-переменные, а кастомные свойства, открывайте форточку
@atlzgamer
2 күн бұрын
Тогда тут продолжу душнить: обертку лучше переименовать с использованием - (например, ), потому что по спецификации HTML так отличаются пользовательские элементы от стандартных)
@phobos927
Күн бұрын
Чо с select? пока костылим?
@it2138
Күн бұрын
Ждем поддержки selectmenu. Пока что-то даже в хроме за флагом(
@litan1845
2 күн бұрын
Усложнили работу на ровном месте. Написал clr-1, clr-2 и держишь открытый globals при необходимости. А тут в геометрической прогрессии с этой вашей системой переменные начнут расти и все чтобы было удобно 😂
@WERWOLION
Күн бұрын
тут он имеет виду проект где больше 100+ цветов
@nade3282
Күн бұрын
ну если у тебя 2 цвета в проекте то твой вариант норм)
@SunakSunak-b9t
Күн бұрын
На 1С переходите, как все нормальные люди
@aminasule8024
2 күн бұрын
Такой вопрос, кто сколько времени удилял html и css?? ибо в интернете есть тенденция говорить что учить эти темы более месяца это глупость!
@BearVodkaAndValenki
2 күн бұрын
@@aminasule8024, учить нужно не месяц или год, а до того момента, как пока не научишься эффективно решать рабочие задачи с помощью этих инструментов.
@keldibekov
2 күн бұрын
уйдет неделя, максимум 2 недели
@qwertymegaforce9088
2 күн бұрын
За месяц ты вполне успеешь выучить их на должном уровне. А с остальными нюансами разберешься, когда начнешь писать свои собственные проекты
@Spider0444
2 күн бұрын
что бы хорошо верстать сложные интерфейсы нужны годы практики, не слушай теоретиков про недели-месяцы
@alexnozer
2 күн бұрын
Я вот уже +-6 лет работаю, но изучаю HTML и CSS до сих пор. Появляется что-то новое, устаревает старое, новые подходы к решению старых задач, подводные камни, нюансы. Обучение в разработке - непрерывный процесс. Для базового знакомства хватит пары недель и несколько макетов. Для глубокого понимания нужны годы практики и опыта.
@blatov
2 күн бұрын
топчик
@svet0v
2 күн бұрын
Разве придумывание названия для переменных цветов это не задача дизайнера? По-моему это логичнее, что именно он придумал палитру цветов и сразу же названия цветов
@Pavel555
2 күн бұрын
Не надо свою работу перекладывать на дизайнера ;))
@WERWOLION
Күн бұрын
чтобы дизанер ui кит нарисовал это уже нужно чтобы в лесу кит умер
@svet0v
Күн бұрын
@@WERWOLION ну это да)) но если попадется ответственный, то может и повезти
@svet0v
Күн бұрын
@@Pavel555 ну вообще это же в интересах самого дизайнера, если ему скажут где-то массово поменять цвета ему проще будет сделать если цвета будут через переменные в фигма заданы
@it2138
Күн бұрын
По-хорошему конечно да, но на практике еще нормально названных переменных от дизайнеров не видел. Все же называть переменные это наверное больше программистский скилл
@kitN
15 сағат бұрын
автору 12 лет?
@with-irony-against-pizdec
2 күн бұрын
ПСБ - это тот банк, который отжал на оккупированных украинских территориях местный банк, который до этого отжал украинские банки? Вот, что мы называем рекурсией. Ну и чувак, - такая себе реклама банка, если честно :)
@SargeNuR
2 күн бұрын
хрюкни
@gorkiimrak9344
15 сағат бұрын
О, соевый вылез).
@odduck41
2 күн бұрын
"HTML-программисты"....
@WERWOLION
Күн бұрын
PUG
@AbraKadabra000
2 күн бұрын
какого хрена там вообще ремы? зачем 1рем равен 16 пикселям? не проще ли было определить что 1рем это один пиксель? долой костыли в цсс программировании!
@eugeneturenko3946
2 күн бұрын
Есть странные кодовые базы, где люди зачем-то изменяют код так, чтобы 1rem был равен 1px. Так можно сделать, но это выглядит так же странно, как и создание картинок с помощью css, а не графических редакторов...
@Pavel555
2 күн бұрын
rem вообще не нужны. Только em и то не всегда (для адаптивности).
@AbraKadabra000
Күн бұрын
@@eugeneturenko3946 ну если им прям так хочется использовать ремы то использование одного пикселя в качестве одного рема имеет смысл в том что тебе не приходится высчитывать сколько рёмов в 10 пикселях и не приходится писать длинные дроби чтобы добиться успеха
@eugeneturenko3946
Күн бұрын
@@Pavel555 как раз очень нужны. Суть rem в том, чтобы разом изменить размеры всего на странице.
@core42
2 күн бұрын
html это не яхык программирования. Он не умеет считать (2 нельзя прибавить к двум). Верстальщики не программисты.
@it2138
2 күн бұрын
--sum: calc(2px + 2px); Получается язык программирования))
@Pavel555
2 күн бұрын
Во-первых, в CSS можно. Во-вторых, сможет ли на текущий момент нейросеть сверстать достойно даже простенький макет из Фигма? Ответ: нет не сможет. Сможет ли она написать CRUD, если ей скормить описание? Да, сможет, причем на любом языке, да еще и интеграционные тесты сразу напишет. Верстальщики - это программисты, но не совсем привычные, они скорее UI-разработчики.
@WERWOLION
Күн бұрын
PUG это что?
@core42
Күн бұрын
@@Pavel555 нет, в css нельзя
@core42
Күн бұрын
@@it2138 блять)
@pOdhTNbbI
2 күн бұрын
вот это и буду рассказывать на алгоритмическом интервью. Видос полезный и интересный но его позиционирование не понравилось, в верстке гораздо проще проще разобраться чем выучить яп и алгоритмы.
@it2138
2 күн бұрын
Как раз проблема современных фронтендеров в том, что все наяривают на литкод. А потом выходя на работу, пишут кривые лагающие интерфейсы, потому что плохо знают html и css, который вроде как выучить легко. В конце концов важнее, чтоб интерфейсы были чистые и удобные, а не чтоб компонент под капотом работал за O(1)
@тимур_атмосферный
2 күн бұрын
у тебя мышление узкое максимально
@pOdhTNbbI
2 күн бұрын
@@it2138 так потому что чтобы устроиться в норм компанию нужна алгоритмическая база, а не какие-то css знания, человек который умеет решать алгосы не составит труда разобраться в css переменных и подобных "фишкаках". И если прогер не пишет каждый день css так на кой черт ему эти знания, как бы их не учить и заучивать они будут забываться.
@pOdhTNbbI
2 күн бұрын
@@it2138 Потому что чтобы устроится в нормальную контору нужна алгоритмическая база а не знания css. Человек умеющий решать алгосы легко разберется с "фишками" css, ну а ты и дальше хомякам втирай про "лагающий интерфейс" п. с. чтобы интерефейс не лагал также нужны алгосы и знания js (react/vue) преимущественно :D не припомню кейсов чтобы лагающий интерфейс фиксили через css :D было бы интересно послушать.
@pOdhTNbbI
2 күн бұрын
@@it2138 как удобно удалять комент на который нет аргументов для ответа 👍
@SymbaGid
2 күн бұрын
2:21 нет, дайте пользователю выбор какую тему включать. Дурной тон забрать у пользователя выбор.
@AbraKadabra000
2 күн бұрын
дурной тон - это когда на экране постоянно эта кнопка вот google тоже любитель сделать дурной тон и прячет эту кнопку глубоко в меню что тоже является грубой ошибкой
@it2138
Күн бұрын
Ты уже выбрал тему своего устройства в системных настройках. Меня вот раздражает, когда приложение раскрашивается само по себе в темную тему, хотя я люблю светлую и мне приходится искать где тему переключить. Я уже выбрал один раз светлую тему и хочу чтобы мне ее везде показывали.
@SymbaGid
17 сағат бұрын
@@it2138 т.е. тот случай, когда нравится системная X тема и не нравится как выглядит X тема у конкретного сайта, ты считаешь не реальным? Можно делать по умолчанию системную тему, но еще и дать пользователям выбор
@dlazder3937
2 күн бұрын
3:40 кому то надо подучить английский)
@dmitrychurkin4077
2 күн бұрын
Вот всегда найдётся умник, решивший самоутвердиться за счёт опечатки. 😉
Пікірлер: 134