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 en téléchargement les fichiers de traduction Fr (non officiel) d'Akeeba Backup 9 (traduction par RoberG) et de Kickstart Core (par moi-même).

  • #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 en téléchargement les fichiers de traduction Fr (non officiel) d'Akeeba Backup 9 (traduction par RoberG) et de Kickstart Core (par moi-même).

      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 en téléchargement les fichiers de traduction Fr (non officiel) d'Akeeba Backup 9 (traduction par RoberG) et de Kickstart Core (par moi-même).

          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 en téléchargement les fichiers de traduction Fr (non officiel) d'Akeeba Backup 9 (traduction par RoberG) et de Kickstart Core (par moi-même).

              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 : 50 
Taille : 102,6 Ko 
ID : 2039731
                Fichiers joints
                Sur mon site www.sorgin-informatique.com : tutos sur Joomla! et ces composants et en téléchargement les fichiers de traduction Fr (non officiel) d'Akeeba Backup 9 (traduction par RoberG) et de Kickstart Core (par moi-même).

                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 en téléchargement les fichiers de traduction Fr (non officiel) d'Akeeba Backup 9 (traduction par RoberG) et de Kickstart Core (par moi-même).

                  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 en téléchargement les fichiers de traduction Fr (non officiel) d'Akeeba Backup 9 (traduction par RoberG) et de Kickstart Core (par moi-même).

                      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 en téléchargement les fichiers de traduction Fr (non officiel) d'Akeeba Backup 9 (traduction par RoberG) et de Kickstart Core (par moi-même).

                          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 en téléchargement les fichiers de traduction Fr (non officiel) d'Akeeba Backup 9 (traduction par RoberG) et de Kickstart Core (par moi-même).

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X