Ответы пользователя по тегу Sass
  • Как правильно настроить swiper в react?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Компонент Swiper не ждёт свойства spaceBetween. Вы уверены, что оно хоть что-то делает?

    Если это баг типизации Swiper и на самом деле он такое свойство ждёт, то вам следует репортить этот баг автору компонента (предварительно обновившись до последней версии).

    В крайнем случае можно прибегнуть к declaration merging, но это вредный костыль:
    declare module 'путь до типов компонента Swiper' {
      interface SwiperProps {
        spaceBetween: number;
      }
    }
    Ответ написан
    Комментировать
  • Как задать переменные для :root в sass?

    Aetae
    @Aetae
    Тлен
    Не
    :root
    $basewidth: 960px
    а, очевидно,
    :root
      $basewidth: 960px

    Только смысла в этом никакого: sass переменные - это не css переменные.. Будучи заданны в рамках блока - они действуют в рамках блока.
    Т.е. тебе придётся писать так:
    :root
      $basewidth: 960px
      div 
        width: $basewidth

    А так - работать не будет:
    :root
      $basewidth: 960px
    div 
      width: $basewidth

    Просто задай переменные в начале файла и не парь мозги.
    Или используй css-перемененные если очень надо.
    Ответ написан
  • Как передать стиль из родительского компонента дочернему?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    1. Какой-либо общий css можно использовать только в том случае если компоненты дети не могут существовать без компонента родителя. В таком случае выделяете отдельную папочку под такую связку компонентов, там делаете файлик <compnent-group-name>.variables.scss и импортируете его куда надо.
    2. Если эти компоненты не связаны - любые управляющие и изменяющие поведение компонента вещи нужно передавать исключительно через props. Каждый отдельный компонент - чёрный ящик. У тебя должна быть возможность полностью и кардинально изменить вёрстку внутри компонента, не изменив его поведение. В vue 3 для этого даже есть удобная конструкция v-bind внутри <style>.

    P.S. Ну и само собой если этот $gap глобальный параметр, можно в конфиге vue\sass-loader добавить общий для всех файл с переменными.
    Ответ написан
    Комментировать
  • Как сверстать элемент?

    Aetae
    @Aetae
    Тлен
    SVG и stroke-dasharray. Или простой картинкой - это одноразовая хрень, она не обязана быть адаптивной.
    Ответ написан
    Комментировать
  • Как подключать разные файлы sass переменных для одного проекта на Vue?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Переменные удобнее всего подключать глобально через prependData.
    Соответственно и менять удобно в одном месте. По условию или ещё как.

    А вот как у вас три проекта в одном репозитории - вопрос отдельный.
    Ответ написан
    Комментировать
  • Как задать переменные в scss?

    Aetae
    @Aetae
    Тлен
    Не путайте тёплое с мягким. Переменные --some и, соотетветственно, var(--some) - это пременные css, sass тут не при чём. Они работают в рантайме и в рамках css модели.
    Переменные sass начинаются на $ и работают на этапе компиляции. В итоговом css вместо них просто подставляются их значения.
    В css поменять значение переменных для элемента с атрибутом data-theme="dark" и всех его детей в рамках dom можно так:
    [data-theme="dark"] {
      --some: some;
    }

    В sass поменять значение переменных для элемента с атрибутом data-theme="dark" и всех его детей в рамках конкретной sass-иерархии в конкретном файле можно так:
    [data-theme="dark"]
      $some: some
    Ответ написан
  • Возможно ли во .vue компоненте получить name компонента или имя файла компонента в качестве переменной в sass?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Имя файла в принципе можно получить как-то так:
    vue.config.js:
    module.exports = {
      css: {
        loaderOptions: {
          sass: {
            prependData({resourcePath}) {
              const vueFileName = resourcePath.match(/([^\\\/]+).vue$/i);
              if(vueFileName)
                return `$vue-file-name: "${vueFileName[1]}"`
            }
          }
        }
      }
    }
    В каждом Vue компоненте в sass у вас будет теперь переменная $vue-file-name с именем файла.
    Но зачем?
    Ответ написан
    Комментировать
  • Мануал для работы с препроцессорами в Webstorm?

    Aetae
    @Aetae
    Тлен
    Никак не настраивать. Он сам подтянет рабочий проект и сам предложит установить всё что нужно для работы.
    Ответ написан
    Комментировать
  • Почему не срабатывает правило sass?

    Aetae
    @Aetae
    Тлен
    Результат sass
    .menu
        &_link
    не .menu_item .menu_link, а просто.menu_link.
    Где-то с этим проблема.

    Возможно ниже по коду есть ещё одно объявление font-size для .menu_link, которое обладает более высоким приоритетом по праву очередности, а когда вы указываете .menu_item .menu_link уже это правило обладает более высоким приоритетом над последующим .menu_link как более точный селектор.

    Скорее всего это объявление идёт ниже в @media с max-width большим 1200px - в таком случае просто поменяйте порядок @media.
    Ответ написан