Il modo migliore per estendere il modulo meno trovato in web / css / source / module, come _minicart.less?


14

Qual è quindi il modo migliore per estendere meno contenuto di file <module>/web/css/source/module/, come ad esempio Magento_Checkout/web/css/source/module/_minicart.less?

Supponendo che a

A) OVERRIDE

  1. meno tema devi creare (o copiare) un meno con lo stesso nome del tema principale e inserirlo nel tuo tema in questo modo theme-frontend-blank/web/css/source/_buttons.less-><your-theme>/web/css/source/_buttons.less
  2. modulo specifico meno devi creare (o copiare) un meno con lo stesso nome del tema principale e inserirlo nel tuo tema in questo modo theme-frontend-blank/Magento_Theme/web/css/source/_module.less-><your-theme>Magento_Theme/web/css/source/_module.less
  3. Con l'interfaccia utente meno devi creare (o copiare) un meno con lo stesso nome contenuto nella cartella della libreria e inserirlo nel tuo tema in questo modo magento2-base/lib/web/css/source/lib/_buttons.less-><your-theme>Magento_Theme/web/css/source/lib/_buttons.less

e a

B) ESTENDERE

  1. meno tematico devi creare un file _extend.less nel tuo tema aggiungendo _extend nel nome come questo <your-theme>/web/css/source/_navigation_extend.lessper estendere theme-frontend-blank/web/css/source/_navigation.lessE registrare quel file con la direttiva @import in _extend.less del contenuto del tema in web / css / source ->@import "_navigation_extend.less"
  2. specifico del modulo meno è necessario creare un file _extend.less nel percorso del modulo del tema in questo modo <your-theme>Magento_CatalogSearch/web/css/source/_extend.lessche estende il _module.less originale Magento_CatalogSearch
  3. Con l'interfaccia utente meno devi creare un less con lo stesso nome contenuto nella cartella della libreria aggiungendo _extend nel nome come questo <your-theme>Magento_Theme/web/css/source/lib/_buttons_extend.lessper estendere magento2-base/lib/web/css/source/lib/_buttons.lessE registrare quel file con la direttiva @import in _extend.less del contenuto del tema in web / css / source - >@import "lib/_buttons_extend.less"

La teoria deve suggerire di creare un _minicart_extend.less ma non funziona automaticamente. Forse dovresti importare quel file nel _extend.less di quel modulo come spiegato in B1 o B3?

E perché questi componenti che si estendono di meno non vengono automaticamente inclusi nell'analisi del CSS se questo è il modo corretto di estenderli ma devono essere importati in _extend.less?

(Ecco un'altra domanda: quali sono le differenze tra web/css/source/lib/_buttons.lesse web/css/source/_buttons.less? 😕)

Sono un po 'confuso. Spero che qualcuno mi possa aiutare.

Ci scusiamo per questo lungo testo.


fonti:

Risposte:


12

Secondo le convenzioni di Magento 2, il modo migliore per estendere gli stili dei moduli è il seguente:

Se vogliamo estendere gli stili da Magento_Checkout/web/css/source/module/_minicart.lessdobbiamo avere 2 file

  • <your-theme>/Magento_Checkout/web/css/source/_extend.lessdove importeremo le nostre estensioni personalizzate. In questo caso@import "_minicart_extend.less"

  • <your-theme>/Magento_Checkout/web/css/source/_minicart_extend.less che conterrà i nostri stili personalizzati.

Il motivo per cui abbiamo bisogno di un _extend.lessfile per specificare @importsè perché Magento include automaticamente solo un _extend.lessmodulo. Controllare e aggiungere tutto *_extend.lessautomaticamente richiederà molto tempo ed è per questo che non è stato implementato in questo modo.

In Magento si trovano i file di temi vuoti responsabili della minicart /vendor/magento/theme-frontend-blank/Magento_Checkout/

Potremmo anche aggiungere tutti i nostri stili personalizzati direttamente in _extend.less. Tuttavia, suddividerli in file più piccoli e specifici come nel modulo originale mantiene il codice chiaro e meglio organizzato. Questo è anche il modo raccomandato secondo gli standard Magento 2.


Grazie @Jalogut! Quindi, potrei anche chiamare "_minicart_extend.less" come "foobar.less" e non farebbe alcuna differenza poiché è ciò che conta @import in _extend.less. L'aggiunta di "_extendd.less" al nome del componente è solo una convenzione per aiutarti a mantenere tutto più chiaro?
Loreena,

Esattamente, questa è l'idea.
Jalogut,

@Jalogut sei sicuro che loro dicono questo "Controllare e aggiungere automaticamente * _extend.less richiederà molto tempo" o è la tua ipotesi? perché l'IMO è sicuro che ci vorrà un po 'di più, ma non così tanto, per far sì che gli sviluppatori lo facciano ogni volta che vogliono personalizzare (più un po' di confusione all'inizio)
medmek
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.