Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
|
materialize [2023/02/01 20:13] enric_mieza_sanchez [Primera plantilla] |
materialize [2025/11/26 19:55] (actual) enric_mieza_sanchez [Primera plantilla Cordova + Materialize] |
||
|---|---|---|---|
| Línia 6: | Línia 6: | ||
| Referències: | Referències: | ||
| - | * Web principal: https:// | + | * Web antiga: https:// |
| + | * Web actual: https:// | ||
| * [[https:// | * [[https:// | ||
| - | * [[https:// | + | * [[https:// |
| + | * [[https:// | ||
| - | {{ materialize.svg }} | + | |
| + | {{ materialize.svg?300 }} | ||
| Línia 20: | Línia 23: | ||
| ===== Context ===== | ===== Context ===== | ||
| Tenim bàsicament 2 interessos per treballar amb Materialize CSS: | Tenim bàsicament 2 interessos per treballar amb Materialize CSS: | ||
| - | * Si estem treballant en una web que volem que sigui responsive. | + | |
| - | * Si estem treballant en aplicacions mòbils basades en HTML i CSS com [[Cordova]]. | + | * Si estem treballant en aplicacions mòbils basades en HTML i CSS com [[Cordova]]. |
| Aquest article treballa Materialize assumint que estem en un context del // | Aquest article treballa Materialize assumint que estem en un context del // | ||
| Línia 28: | Línia 31: | ||
| ===== Grid (la quadrícula) ===== | ===== Grid (la quadrícula) ===== | ||
| - | La part més important del Material Design, en el què respecta a la // | + | La part més important del Material Design, en el què respecta a la // |
| El referent històric més conegut és Twitter Bootstrap, un dels // | El referent històric més conegut és Twitter Bootstrap, un dels // | ||
| <WRAP todo> | <WRAP todo> | ||
| - | - Llegeix la [[https://materializecss.com/ | + | - Llegeix la [[https://materializeweb.com/ |
| - | - Descarrega el //starter template// de la secció [[https://materializecss.com/ | + | - Descarrega el //starter template// de la secció [[https://materializeweb.com/ |
| - Modifica' | - Modifica' | ||
| * (s)mall screen: 1 sol element | * (s)mall screen: 1 sol element | ||
| Línia 40: | Línia 43: | ||
| * (l)arge screen: 4 elements | * (l)arge screen: 4 elements | ||
| - Aplica noves icones de [[https:// | - Aplica noves icones de [[https:// | ||
| + | - Crea títol i text per a 6 notícies (pots utilitzar ChatGPT o similars). | ||
| + | - Crea imatges amb IA per a les notícies. | ||
| + | - Formata les notícies amb l' | ||
| </ | </ | ||
| Línia 56: | Línia 62: | ||
| ===== Primera plantilla Cordova + Materialize ===== | ===== Primera plantilla Cordova + Materialize ===== | ||
| <WRAP info> | <WRAP info> | ||
| - | L' | + | L' |
| </ | </ | ||
| - | Descarrega el Starter-Template al final d' | + | <WRAP download> |
| + | Ves a [[https://materializeweb.com/ | ||
| + | </ | ||
| - | Copia els arxius CSS i JS a les carpetes del projecte cordova (www). | + | A partir d'aquesta podrem elaborar |
| - | + | ||
| - | Pel què fa a index.html no el podem copiar directament ja que necessitem barrejar els dos arxius. | + | |
| - | + | ||
| - | Fes un backup del template | + | |
| - | + | ||
| - | Comprova que el visualitzem correctament: | + | |
| - | $ cordova platform add browser | + | |
| - | $ cordova run browser | + | |
| - | + | ||
| - | Copiem els '' | + | |
| <WRAP prewrap> | <WRAP prewrap> | ||
| <file html index.html> | <file html index.html> | ||
| - | | + | < |
| - | <meta name=" | + | < |
| - | <meta name=" | + | < |
| - | <meta name=" | + | <meta charset=" |
| - | <meta name="color-scheme" | + | |
| - | </file> | + | <meta name=" |
| - | </WRAP> | + | <meta name=" |
| + | <meta name=" | ||
| + | <title> | ||
| + | <!-- Fonts Google --> | ||
| + | <link | ||
| + | href="https:// | ||
| + | rel=" | ||
| + | /> | ||
| + | <!-- CSS materialize --> | ||
| + | <link rel="stylesheet" | ||
| + | <!-- CSS personalitzat --> | ||
| + | <link rel=" | ||
| + | </head> | ||
| + | < | ||
| + | |||
| + | <!-- AQUI VAN ELS CONTINGUTS --> | ||
| - | Engega-ho en el browser i assegura' | ||
| - | Afegeix també els scripts al final de la pàgina, hauria de quedar algo així: | + | |
| - | + | <script src=" | |
| - | <WRAP prewrap> | + | < |
| - | <file html index.html> | + | |
| - | | + | < |
| - | <script src=" | + | |
| - | <script src="https:// | + | |
| - | <script src=" | + | </body> |
| - | <script src=" | + | </html> |
| </ | </ | ||
| </ | </ | ||
| - | A '' | + | A '' |
| - | + | ||
| - | <file javascript init.js> | + | |
| - | (function($){ | + | |
| - | $(function(){ | + | |
| - | $(' | + | |
| - | }); // end of document ready | + | |
| - | })(jQuery); // end of jQuery name space | + | |
| + | <file javascript index.js> | ||
| + | // Wait for the deviceready event before using any of Cordova' | ||
| + | // See https:// | ||
| document.addEventListener(' | document.addEventListener(' | ||
| Línia 115: | Línia 122: | ||
| // | // | ||
| } | } | ||
| + | |||
| + | // init Materialize | ||
| + | M.AutoInit(); | ||
| </ | </ | ||
| - | Arrenquem de nou amb el browser i comprovem que a la consola de Javascript no tenim cap error. | + | Arrenquem de nou amb el //browser// i comprovem que a la consola de Javascript no tenim cap error. |
| - | \\ | + | <WRAP important> |
| + | Si us dona un error tipus: " | ||
| + | Una [[https:// | ||
| - | ===== Pestanyes d' | + | $ cordova plugin add cordova-plugin-device |
| - | El primer que necessitarem per tenir una aplicació mòbil decent serà disposar de diversos TABs o pestanyes o seccions de l' | + | </ |
| - | [[https:// | + | \\ |
| - | Elimina els continguts interns del projecte (deixa els encapçalaments, navbar | + | ===== Navbar, Sidenav |
| - | Aquest component (els tabs) necessita ser inicialitzat amb les opcions adequades. Per activar-ho hauràs d' | + | Si has seguit fins aquí, hauries de tenir una app buida. |
| - | <sxh js> | + | Aplicarem una Navbar i Tabs per disposar d'una plantilla d'app força complerta: |
| - | var options = { " | + | * [[https:// |
| - | var el = document.getElementById(' | + | * [[https:// |
| - | var instance = M.Tabs.init(el, options); | + | * [[https:// |
| - | </sxh> | + | |
| - | Com pots veure, Materialize pot utilitzar jQuery però tampoc és imprescindible (a la majoria de plugins). | + | Si seguim els exemples bàsics hauríem d' |
| - | Si volem utilitzar la versió jQuery sería d' | + | {{materialize-navbar-tabs.png? |
| + | {{materialize-sidenav.png? | ||
| - | <sxh js> | ||
| - | $(' | ||
| - | </ | ||
| - | I finalment, | + | <WRAP todo> |
| + | Segueix totes les passes indicades | ||
| - | <file css style.css> | + | Comprova |
| - | /* | + | - Revisa que no hi hagi missatges d' |
| - | * ...deixar els continguts | + | - Comprova que el menú lateral funciona quan cliquem el //hamburger menu//. |
| - | */ | + | </ |
| - | + | ||
| - | html, body { | + | |
| - | height: 100vh; | + | |
| - | | + | |
| - | display: flex; | + | |
| - | justify-content: space-between; | + | |
| - | | + | |
| - | } | + | |
| - | .tabs-content { | + | \\ |
| - | height: 100%; | + | |
| - | overflow-y: scroll !important; | + | |
| - | } | + | |
| - | </ | + | |
| - | \\ | + | ===== Obrir una pestanya |
| - | + | Si volem obrir una pestanya des d'una altra, caldrà fer una crida a l' | |
| - | ==== Obrir una pestanya ==== | + | |
| - | Si volem obrir una pestanya des d'una altra, caldrà fer una crida a l' | + | |
| - | Mirant la [[https://materializecss.com/ | + | Mirant la [[https://materializeweb.com/ |
| <code javascript> | <code javascript> | ||
| - | // canviem al tab 2 | + | // canviem al tab 3 |
| - | var tabs = document.getElementById(" | + | var tabs = document.getElementById(" |
| var tabsInstance = M.Tabs.getInstance(tabs); | var tabsInstance = M.Tabs.getInstance(tabs); | ||
| - | tabsInstance.select(" | + | tabsInstance.select(" |
| </ | </ | ||
| Si ho volem fer amb jQuery també tenim aquesta alternativa, | Si ho volem fer amb jQuery també tenim aquesta alternativa, | ||
| <code javascript> | <code javascript> | ||
| - | $('# | + | $('# |
| </ | </ | ||
| \\ | \\ | ||
| - | ===== Menú lateral (sidenav) ===== | ||
| - | Mira el [[https://materializecss.com/sidenav.html|plugin Sidenav | + | ===== Mes widgets! ===== |
| + | |||
| + | Per tenir una aplicació a full ens caldran aquest tipus de recursos, molt ben estilitzats. Fes-li un cop d'ull a tots ells, imprescindibles! | ||
| + | |||
| + | * [[https://materializeweb.com/grid.html|Grid i containers]] per aprendre com administrar els continguts del cos de forma responsive. | ||
| + | * [[https:// | ||
| + | * Els imprescindibles [[https:// | ||
| + | * El famós [[https:// | ||
| + | * Obrir un [[https:// | ||
| + | |||
| + | I no deixeu d' | ||
| - | Implementa un menú més complert amb diversos menus disponibles. | ||
| \\ | \\ | ||
| - | ===== Mes widgets! | + | ===== Pestanyes lliscants |
| - | Per tenir una aplicació a full ens caldran aquest tipus de recursos, molt ben estilitzats. Fes-li un cop d'ull a tots ells, imprescindibles! | + | [[https:// |
| - | * [[https:// | + | Elimina |
| - | * [[https:// | + | |
| - | * Els imprescindibles [[https:// | + | |
| - | * El famós [[https:// | + | |
| - | * Obrir un [[https:// | + | |
| - | I no deixeu | + | Aquest component (els tabs) necessita ser inicialitzat amb les opcions adequades. Per activar-ho hauràs |
| + | <code javascript> | ||
| + | window.onload = (event) => { | ||
| + | console.log(" | ||
| + | var options = { " | ||
| + | var el = document.getElementsByClassName(' | ||
| + | var instance = M.Tabs.init(el, | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | I finalment, per aconseguir que cadascuna de les seccions ocupin l' | ||
| + | |||
| + | <file css style.css> | ||
| + | /* | ||
| + | * ...deixar els continguts que existissin prèviament... | ||
| + | */ | ||
| + | |||
| + | /* body fix: perquè ocupi tota la pantalla */ | ||
| + | html, body { | ||
| + | height: 100vh; | ||
| + | width: 100%; | ||
| + | display: flex; | ||
| + | justify-content: | ||
| + | flex-flow: column; | ||
| + | } | ||
| + | |||
| + | /* | ||
| + | * afegir la class tabs-content a cada div de contingut | ||
| + | * per solucionar el contingut scollable de cada pestanya | ||
| + | */ | ||
| + | .tabs-content { | ||
| + | height: 100%; | ||
| + | overflow-y: scroll !important; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | \\ | ||