Des @mixin ne sont pas prit en compte

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Des @mixin ne sont pas prit en compte

    Salut

    J'améliore mes connaissances en SCSS et je fais des tests. J'ai découvert la différence entre @extend et @mixin. Comme je n'utilisais que @extend, je les ai tous remplacés par @mixin (et fais les modifications qui vont avec).

    Mais j'ai un message d'erreur à une mixin (j'ai fait une installation de mon site de test : www.problemes.sorgin-informatique.com)

    Joomla 3.10.8
    Sur mon site www.sorgin-informatique.com : tutos sur Joomla! et ces composants et sur différents logiciels et services libres (Firefox, KeePass, uMap, Framadate, etc).

  • #2
    Bonsoir,
    Comme je n'utilisais que @extend, je les ai tous remplacés par @mixin (et fais les modifications qui vont avec)
    Ce n'est pas la même chose. un @mixin() est le synonyme de fonction() en SCSS. Alors que @extend permet de faire hériter une classe des propriétés d'une autre.

    Ton erreur est simplement qu'il ne trouve pas le mixin jaune-a. Il doit être dans le fichier users.scss ou dans un fichier importé dans celui-ci
    D'autre part, il ne trouve pas le fichier templates/protostar-perso/scss/_declarations.scss
    UP, le plugin universel à découvrir sur https//up.lomart.fr
    bgMax
    , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

    Commentaire


    • #3
      Le mixin jaune-a est dans le fichier \templates\protostar-perso\scss\_couleurs.scss avec ce code :

      Code:
      $jaune-a:#ffff00;
      
      $jaune-a-rgb:rgb(255,255,0);
      
      @mixin jaune-a,
      .ligne-04 .cellule-a {
          background-color:$jaune-a;
          color:#000;
      }
      Je ne comprends pas car le fichier _declarations.scss est bien présent dans \templates\protostar-perso\scss.

      Dans mon fichier \templates\protostar-perso\scss\user.scss j'ai les @import de mes fichiers scss, dont celui des couleurs (_couleurs.scss) avec le mixin jaune-a, ainsi que _declarations.scss :

      Code:
      @import '_articles';
      @import '_couleurs';
      @import '_declarations';
      @import '_menus';
      @import '_modules';
      @import '_protostar';
      @import '_pages';
      @import '_styles';
      @import '_tests';
      
      
      
      @import '_responsive-pages';
      @import '_responsive-menu';
      @import '_responsive-protostar';
      @import '_responsive-styles';
      @import '_responsive-modules';
      Sur mon site www.sorgin-informatique.com : tutos sur Joomla! et ces composants et sur différents logiciels et services libres (Firefox, KeePass, uMap, Framadate, etc).

      Commentaire


      • #4
        On ne met jamais l'underscore dans @import

        Donc @import 'couleurs';

        Perso, je mets les partiels dans un sous-dossier. ex: mixins/_couleurs.scss
        Les variables dans ce fichier sont par défaut, ce qui permet d'avoir un fichier avec toutes les variables en racine.
        ex : $jaune-a:#ffff00 !default;

        Tu peux t'inspirer du SCSS de UP dans \plugins\content\up\assets\up.scss
        Dernière édition par lomart à 11/05/2022, 14h17
        UP, le plugin universel à découvrir sur https//up.lomart.fr
        bgMax
        , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

        Commentaire


        • #5
          Merci pour l'info de l'underscore dans @import. Je vais voir comment ta organisé ton SCSS dans UP.

          Concernant l'organisation du SCSS, de quelque manière que ça soit organisé (et si bien sur le code et les @import sont bon), ça peux causer des erreurs ?
          Sur mon site www.sorgin-informatique.com : tutos sur Joomla! et ces composants et sur différents logiciels et services libres (Firefox, KeePass, uMap, Framadate, etc).

          Commentaire


          • #6
            Concernant l'organisation du SCSS, de quelque manière que ça soit organisé (et si bien sur le code et les @import sont bon), ça peux causer des erreurs ?
            Non si on déclare avant utilisation

            Ma réflexion sur les variables était pour utiliser la puissance de SCSS. Dans le fichier principal :
            1. on importe un fichier partiel "variables" avec les valeurs que l'on utilise sur le site
              ou on les déclare au début du fichier principal
            2. on importe les fichiers secondaires (partiels dans la terminologie SCSS) qui déclarent la valeur (par défaut) des variables utilisées dans ce partiel.
            Cette méthode présente plusieurs avantages :
            1. on peut utiliser les fichiers sur un autre site par simple copier-coller. On a juste une adaptation du partiel "variables"
            2. on peut reprendre un partiel d'un autre site. Et si besoin, ajouter ses variables
            3. on évite les erreurs de variables non définies, car chaque partiel les définit par défaut
            Enfin chacun fait comme il veut
            UP, le plugin universel à découvrir sur https//up.lomart.fr
            bgMax
            , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

            Commentaire


            • #7
              J'ai trouvé d'où venait le probleme ! dans ton plugin scssCompiler, le réglage Prise en charge template etait sur Oui. En le mettant sur Non je n'ai plus de message d'erreur.

              Je vais réorganiser mes scss en suivant tes conseils et en m'inspirant de celui de UP.

              Merci pour ton aide
              Sur mon site www.sorgin-informatique.com : tutos sur Joomla! et ces composants et sur différents logiciels et services libres (Firefox, KeePass, uMap, Framadate, etc).

              Commentaire


              • #8
                Bon ben le problème est revenu (comme j'avais commencé à faire des petites modifs au niveau de l'organisation de mes scss j'ai mis à jour l'installation du lien de mon premier message).

                Dans le fichier user.scss j'ai commenté les lignes les unes après les autres et j'ai remarqué que plusieurs fichiers scss ne sont pas trouvés dans templates/protostar-perso/scss, alors qu'ils sont présents. Et le nom de ces fichiers est le même dans le user.scss.

                Voici les réglages de mon scssCompiler 2.7 :

                Cliquez sur l'image pour l'afficher en taille normale

Nom : 2022-05-14 10_17_50-Plug-ins _ System - scssCompiler - Site de Base - Joomla 03 - Administration.png 
Affichages : 112 
Taille : 102,6 Ko 
ID : 2039731
                Fichiers joints
                Sur mon site www.sorgin-informatique.com : tutos sur Joomla! et ces composants et sur différents logiciels et services libres (Firefox, KeePass, uMap, Framadate, etc).

                Commentaire


                • #9
                  J'ai fais une installation (en local) d'une sauvegarde du site. Ensuite j'ai simplement remplacé ce code :

                  Code:
                  .violet-a {
                      background-color:$violet-a;
                      color:#fff;
                  }
                  par :

                  Code:
                  @mixin violet-a {
                      background-color:$violet-a;
                      color:#fff;
                  }
                  Puis tous les :

                  Code:
                  @extend .violet-a;
                  en :

                  Code:
                  @include violet-a;
                  et j'ai eu le message d'erreur. En fait la mise a jour des fichiers n'est pas prise en compte. Même si je vide le cache.
                  Sur mon site www.sorgin-informatique.com : tutos sur Joomla! et ces composants et sur différents logiciels et services libres (Firefox, KeePass, uMap, Framadate, etc).

                  Commentaire


                  • #10
                    Bonjour,

                    Ce n'est pas un problème avec mon plugin, la syntaxe SCSS ne va pas

                    Essaie sur ce site (https://www.sassmeister.com/) le code suivant :
                    Code:
                    $violet-a : purple;
                    
                    .violet-a {
                    background-color:$violet-a;
                    color:#fff;
                    }
                    
                    @mixin violet-a {
                    background-color:$violet-a;
                    color:#fff;
                    }
                    
                    .foo {@include violet-a}
                    
                    // la classe foo2 est ajoutée à violet-a
                    .foo2 {
                    @extend .violet-a;
                    color:red;
                    }
                    J'ai repris ton exemple en le corrigeant et en l'adaptant

                    Ce site est génial pour apprendre et tester le SCSS.
                    et doit être utilisé dès que l'on ne comprend pas un truc
                    UP, le plugin universel à découvrir sur https//up.lomart.fr
                    bgMax
                    , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

                    Commentaire


                    • #11
                      Je n'arrive pas à voir où j'ai fait une erreur dans ma syntaxe. En utilisant l'outil que tu ma passé (merci pour le lien ) et avec ce code :

                      Code:
                      $violet-a:#9b02a8;
                      
                      @mixin violet-a {
                          background-color:$violet-a;
                          color:#fff;
                      }
                      
                      .texte-01 {@include violet-a;}
                      Ça marche bien.
                      Sur mon site www.sorgin-informatique.com : tutos sur Joomla! et ces composants et sur différents logiciels et services libres (Firefox, KeePass, uMap, Framadate, etc).

                      Commentaire


                      • #12
                        Tu n'avais pas défini la variable $violet-a et ton mixin n'était attribué à aucun sélecteur. C'est donc normal qu'il ne retourne rien sans trouver d'erreur
                        Je ne vois pas l'utilité de ton mixin, qui est normalement fait pour faire des calculs
                        Pour exemple :
                        Code:
                        @mixin bgContraste($color, $clair:white, $fonce:black) {
                          background-color:$color;
                          @if lightness($color)<50% {
                            color: $clair;
                          } @else {
                            color: $fonce;
                          }
                        }
                        
                        $violet-a : purple;
                        .texte-01 {@include bgContraste($violet-a);}
                        .texte-02 {@include bgContraste(yellow);}
                        UP, le plugin universel à découvrir sur https//up.lomart.fr
                        bgMax
                        , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

                        Commentaire


                        • #13
                          Avant j'utilisais @extend mais ça n'ajoute pas le code dans la class mais "en dehors". Or visuellement je préfère voir mon code dans la class dans laquelle il doit être.
                          Sur mon site www.sorgin-informatique.com : tutos sur Joomla! et ces composants et sur différents logiciels et services libres (Firefox, KeePass, uMap, Framadate, etc).

                          Commentaire


                          • #14
                            Envoyé par schtroumph Voir le message
                            Avant j'utilisais @extend mais ça n'ajoute pas le code dans la class mais "en dehors". Or visuellement je préfère voir mon code dans la class dans laquelle il doit être.
                            Ca n'ajoute pas en dehors, mais ajoute le sélecteur dans la règle reprise.
                            Après chacun fait comme il veut. Mais le CSS et encore plus le SCSS demande de la rigueur
                            UP, le plugin universel à découvrir sur https//up.lomart.fr
                            bgMax
                            , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

                            Commentaire


                            • #15
                              Je me suis très mal exprimé lol . Pour expliquer ce que je voulais dire le mieux c'est avec un exemple :

                              Code:
                              .paragraphe-02, .paragraphe-01 {
                                margin: 10px;
                              }
                              .paragraphe-01 {padding: 20px;}
                              
                              .paragraphe-02 {padding: 20px;}
                              Avec @extend le margin n'est pas avec les propriétés de chacune des deux class, paragraphe-01 et paragraphe-02 :

                              Code:
                              .paragraphe-01 {
                                  margin: 10px;
                                  padding: 20px;
                              }
                              
                              .paragraphe-02 {
                                  margin: 10px;
                                  padding: 20px;
                              }
                              Alors qu'avec @mixin il est avec les autres propriétés.
                              Sur mon site www.sorgin-informatique.com : tutos sur Joomla! et ces composants et sur différents logiciels et services libres (Firefox, KeePass, uMap, Framadate, etc).

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X