Publié le : 05/07/2021

MDBootstrap customisation et optimisation de site web

MDBootstrap Customisation, optimisation gulp sass scss

Avant de pouvoir de suivre ce tutoriel sur l’optimisation d’un site web avec MDBootstrap, vous devez avoir Gulp installé. Si ce n’est pas encore le cas, veuillez voir l’article ci-dessous :

Créer un site web avec MDBootstrap 4 et Gulp

MDBootstrap contient plusieurs composants. Tous ne sont pas nécessaires pour chaque projet. C’est pourquoi, il est recommandé de personnaliser le package. En effet, en faisant cela, le package ne contiendra que les composants nécessaires au projet.

Dans cet article, nous allons montrer comment compiler ces propres package. Mais il y a un moyen plus facile pour minimiser la taille des packages : en utilisant MDB Lite.

Compilation des fichiers Sass pour l’optimisation de site web MDBootstrap

Pour compiler les fichiers Sass, il faut procéder comme suit :

  1. Ouvrir le répertoire scss/mdb-free.scss. Ce fichier contient tous les listes des composants Sass de la version free de MDBootstrap.
  2. Faire les modifications que vous voulez. La compilation est facile car il suffit d’ajouter ou de supprimer/commenter une ligne. Chaque ligne représente un composant du package de MDBootstrap.

Après avoir sauvé le fichier la compilation se fait et on obtient les fichiers mdb-free.css et mdb-free.min.css qui se trouve dans le répertoire dist/css/.

La vidéo ci-dessous représente ces étapes. Et nous voyons que la taille de mdb-free.css et mdb-free.min.css ont diminué.

Les dépendances Sass

Dans MDBootstrap, plusieurs composants ont besoin d’autres composants pour fonctionner normalement. C’est pour cela qu’il existe une carte de dépendance.

Il est toutefois nécessaire de garder à l’esprit que :

  • Tous les composants requiert les fichiers core. Ainsi, si vous décidez de supprimer un de ces fichiers, votre site peut ne pas fonctionner.
  • Mais aussi, si vous supprimez un des composants Free ou Pro, il faut s’assurer qu’il ne fait pas partie d’un autre composant.
  • Enfin, si on supprime une dépendance des composants Free ou Pro, il se peut aussi que votre site ne fonctionne pas.
Legend:

'-->' means 'required'

All free and pro files require files from 'core' catalog

'none' means 'this component doesn't require anything except core files'

A file wrapped by `<>` means that this file make the base component prettier but it isn't necessary for the proper
  working

  All PRO components require 'pro/_variables.scss' file

  scss/
  |
  |-- core/
  | |
  | |-- bootstrap/
  | | |-- _functions.scss
  | | |-- _variables.scss
  | |
  | |-- _colors.scss
  | |-- _global.scss
  | |-- _helpers.scss
  | |-- _masks.scss
  | |-- _mixins.scss
  | |-- _typography.scss
  | |-- _variables.scss
  | |-- _waves.scss
  |
  |-- free/
  | |-- _animations-basic.scss --> none
  | |-- _animations-extended.scss --> _animations-basic.scss
  | |-- _buttons.scss --> none
  | |-- _cards.scss --> none <_buttons.scss>
    | |-- _dropdowns.scss --> none <_buttons.scss>
      | |-- _input-group.scss --> _forms.scss, _buttons.scss, _dropdowns.scss
      | |-- _navbars.scss --> none <_buttons.scss, _forms.scss, _input-group.scss>
        | |-- _pagination.scss --> none
        | |-- _badges.scss --> none
        | |-- _modals.scss --> _buttons.scss, _forms.scss (PRO --> _tabs.scss)
        | |-- _carousels.scss --> <_buttons.scss>
          | |-- _forms.scss --> none
          | |-- _msc.scss --> none <_buttons.scss, _forms.scss, _cards.scss>
            | |-- _footers.scss none <_buttons.scss> (PRO: )
              | |-- _list-group.scss --> none
              | |-- _tables.scss --> none (PRO: _material-select.scss, pro/_forms.scss, _checkbox.scss,
              pro/_buttons.scss, pro/_cards.scss, _pagination.scss, pro/_msc.scss)
              | |-- _depreciated.scss
              |
              |-- pro/
              | |
              | |-- picker/
              | | |-- _default.scss --> none
              | | |-- _default-time.scss --> _default.scss, free/_forms.scss, free/_buttons.scss,
              pro/_buttons.scss, free/_cards.scss
              | | |-- _default-date.scss --> _default.scss, free/_forms.scss
              | |
              | |-- sections/
              | | |-- _templates.scss --> _sidenav.scss
              | | |-- _social.scss --> free/_cards.scss, free/ _forms.scss, free/_buttons.scss, pro/_buttons.scss,
              | | |-- _team.scss --> free/_buttons.scss, pro/_buttons.scss, free/_cards.scss, pro/_cards.scss
              | | |-- _testimonials.scss --> free/_carousels.scss, pro/_carousels.scss, free/_buttons.scss,
              pro/_buttons.scss
              | | |-- _magazine.scss --> _badges.scss
              | | |-- _pricing.scss --> free/_buttons.scss, pro/_buttons.scss
              | | |-- _contacts.scss --> free/_forms.scss, pro/_forms.scss, free/_buttons.scss, pro/_buttons.scss
              | |
              | |-- _variables.scss
              | |-- _buttons.scss --> free/_buttons.scss, pro/_msc.scss, _checkbox.scss, _radio.scss
              | |-- _social-buttons.scss --> free/_buttons.scss, pro/_buttons.scss
              | |-- _tabs.scss --> _cards.scss
              | |-- _cards.scss --> free/_cards.scss <_buttons.scss, _social-buttons.scss>
                | |-- _dropdowns.scss --> free/_dropdowns.scss, free/_buttons.scss
                | |-- _navbars.scss --> free/_navbars.scss (PRO: )
                | |-- _scrollspy.scss --> none
                | |-- _lightbox.scss --> none
                | |-- _chips.scss --> none
                | |-- _msc.scss --> none
                | |-- _forms.scss --> none
                | |-- _radio.scss --> none
                | |-- _checkbox.scss --> none
                | |-- _material-select.scss --> none
                | |-- _switch.scss --> none
                | |-- _file-input.scss --> free/_forms.scss, free/_buttons.scss
                | |-- _range.scss --> none
                | |-- _input-group.scss --> free/_input-group.scss and the same what free input group,
                _checkbox.scss, _radio.scss
                | |-- _autocomplete.scss --> free/_forms.scss
                | |-- _accordion.scss --> pro/_animations.scss, free/_cards.scss
                | |-- _parallax.scss --> none
                | |-- _sidenav.scss --> free/_forms.scss, pro/_animations.scss, sections/_templates.scss
                | |-- _ecommerce.scss --> free/_cards.scss, pro/_cards.scss, free/_buttons.scss,
                pro/_buttons.scss, pro/_msc.scss
                | |-- _carousels.scss --> free/_carousels.scss, free/_cards.scss, free/_buttons.scss
                | |-- _steppers.scss --> free/_buttons.scss
                | |-- _blog.scss --> none
                | |-- _toasts.scss --> free/_buttons.scss
                | |-- _animations.scss --> none
                | |-- _charts.scss --> none
                | |-- _progress.scss --> none
                | |-- _scrollbar.scss --> none
                | |-- _skins.scss --> none
                | |-- _depreciated.scss
                |
                `-- _custom-skin.scss
                `-- _custom-styles.scss
                `-- _custom-variables.scss
                `-- mdb.scss

Compilation des fichiers Javascript

La compilation des fichiers Javascript est pareil que celui des fichiers Sass vu précédemment.

  1. Ouvrir le répertoire js/ ;
  2. Modifier le fichier module.js à l’intérieur.

Dans ce fichier, nous avons les composants Javascript du package MDBootstrap. Et ainsi, pour désactiver un composant, vous pouvez décommenter/supprimer une ligne. Et une fois que c’est fait, procéder à l’enregistrement du fichier.

Enfin, après l’enregistrement des fichiers, les fichiers mdb.js et mdb.min.js sont générés. Et ces fichiers se trouvent dans le répertoire dist/js. C’est ce que montre la vidéo ci-dessous.

Les dépendances Javascript

Avant de passer à la suppression des composants MDBootstrap, il est nécessaire de voir les dépendances de ces composants. La carte des dépendances ci-dessous vous donne la liste des dépendances.

Legend:

'-->' means 'required'

All files require jQuery and bootstrap.js

js/
├── dist/
│   ├── buttons.js
│   ├── cards.js
│   ├── character-counter.js
│   ├── chips.js
│   ├── collapsible.js --> vendor/velocity.js
│   ├── dropdown.js --> Popper.js, jquery.easing.js
│   ├── file-input.js
│   ├── forms-free.js
│   ├── material-select.js --> dropdown.js
│   ├── mdb-autocomplete.js
│   ├── preloading.js
│   ├── range-input.js --> vendor/velocity.js
│   ├── scrolling-navbar.js
│   ├── sidenav.js --> vendor/velocity.js, vendor/hammer.js, vendor/jquery.hammer.js
│   └── smooth-scroll.js
├── _intro-mdb-pro.js
├── modules.js
├── src/
│   ├── buttons.js
│   ├── cards.js
│   ├── character-counter.js
│   ├── chips.js
│   ├── collapsible.js --> vendor/velocity.js
│   ├── dropdown.js --> Popper.js, jquery.easing.js
│   ├── file-input.js
│   ├── forms-free.js
│   ├── material-select.js --> dropdown.js
│   ├── mdb-autocomplete.js
│   ├── preloading.js
│   ├── range-input.js --> vendor/velocity.js
│   ├── scrolling-navbar.js
│   ├── sidenav.js --> vendor/velocity.js, vendor/hammer.js, vendor/jquery.hammer.js
│   └── smooth-scroll.js
└── vendor/
├── addons/
│   ├── datatables.js
│   └── datatables.min.js
├── chart.js
├── enhanced-modals.js
├── hammer.js
├── jarallax.js
├── jarallax-video.js --> vendor/jarallax.js
├── jquery.easing.js
├── jquery.easypiechart.js
├── jquery.hammer.js --> vendor/hammer.js
├── jquery.sticky.js
├── lightbox.js
├── picker-date.js --> vendor/picker.js
├── picker.js
├── picker-time.js --> vendor/picker.js
├── scrollbar.js
├── scrolling-navbar.js
├── toastr.js
├── velocity.js
├── waves.js
└── wow.js

La version MDBootstrap Lite pour l’optimisation de site web

Les packages MDBootstrap contient les fichiers mdb.lite.css et mdb.lite.js (ainsi que leur version minifier). Ces fichiers contiennent les versions slim de MDBootstrap.

Prenons un exemple d’éléments enlever dans la version slim. Nous avons dans la version standard de MDBootstrap 74 animations CSS. Par contre, dans la version Lite, nous en avons quelques unes.

De ce fait, l’utilisation de MDBootstrap Lite se fait en remplaçant mdb.min.css par mdb.lite.min.css et mdb.min.js par mdb.lite.min.js dans les codes HTML.

Les mots clés rattachés à cet article : Gulp  -  Javascript  -  MDBootstrap  -  Optimisation de site web  -  Sass  -  Scss

Nos clients

Une vingtaine de clients nationaux et internationaux