Introdução ao materializecs

Configurar

Depois de baixar os arquivos, extraia-os para o diretório designado.

Você notará que existem dois conjuntos de arquivos. O min significa que o arquivo está “compactado” para reduzir o tempo de carregamento. Esses arquivos minificados geralmente são usados ​​em produção, embora seja melhor usar os arquivos não minificados durante o desenvolvimento.


Após a extração, a estrutura de arquivos do seu diretório deve se parecer com:

  MyWebsite/
  |--css/
  |  |--materialize.css
  |
  |--fonts/
  |  |--roboto/
  |
  |--js/
  |  |--materialize.js
  |
  |--index.html

Exemplo de página HTML MaterializeCSS:

<!DOCTYPE html>
<html>
 <head>
  <!--Import Google Icon Font-->
  <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <!--Import materialize.css-->
  <link type="text/css" rel="stylesheet" href="css/materialize.min.css"  media="screen,projection"/>

  <!--Let browser know website is optimized for mobile-->
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
 </head>

 <body>
  <!--Import jQuery before materialize.js-->
  <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
  <script type="text/javascript" src="js/materialize.min.js"></script>
 </body>
</html>

Download

Existem duas maneiras de usar o MaterializeCSS, você pode baixar os arquivos em seu sistema ou usar os arquivos da CDN (Content Delivery Network).

Download de arquivos

Incluir do CDN

  • Incluir CSS reduzido na seção head:

     <!-- Compiled and minified CSS -->
     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.7/css/materialize.min.css">
    
  • Inclua o arquivo Javascript na seção Body, logo antes da tag de fechamento do corpo.

     <!-- Compiled and minified JavaScript -->
     <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.7/js/materialize.min.js"></script>
    

Modelos

Estas são as páginas iniciais mais simples com recursos de cabeçalho, call-to-action e ícone.

Modelo inicial Modelo de paralaxe
Modelo inicial Modelo de Paralaxe
Demo ou Download Demo ou Download

Página da Web usando Materializecss

Aqui está um exemplo de uma página básica usando o framework Materialize CSS que incorpora o sistema de grade e o materialboxed.

<!DOCTYPE html>
<html>
<head>
<title>Materializecss Example webpage</title>
  <!--Import Google Icon Font-->
  <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <!--Import materialize.css-->
  <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.7/css/materialize.min.css"  media="screen,projection"/>

  <!--Let browser know website is optimized for mobile-->
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>

<body>
  <div class="container"> 
    <div class="row">
      <div class="col s12"><h3>MATERIALIZECSS EXAMPLE</h3><h4>A simple website just to show how an element is used.</h4></div>
      <div class="col s12 m6 l3">
        <img class="materialboxed" width="100%" height="220"  src="https://upload.wikimedia.org/wikipedia/commons/7/76/Katun_nature_reserve.jpg">
        <h4>Katun Nature Reserve</h4>
        <p><i>Lovely Place</i></p>
      </div>
      <div class="col s12 m6 l3">
        <img class="materialboxed" width="100%" height="220" src="https://upload.wikimedia.org/wikipedia/commons/4/4b/Computer_art_4.png">
        <h4>Art</h4>
        <p><i>Simple & Attractive</i></p>
      </div>
      <div class="col s12 m6 l3">
        <img class="materialboxed" width="100%" height="220" src="https://c1.staticflickr.com/9/8715/16947318656_4c6cbc3091_b.jpg">
        <h4>Food</h4>
        <p><i>For any occasion</i></p>
       </div>
      <div class="col s12 m6 l3">
        <img class="materialboxed" width="100%" height="220" src="https://c1.staticflickr.com/7/6179/6217102314_350be5e843.jpg">
        <h4>Steve Jobs</h4>
        <p><i>Inspiration</i></p>
      </div>
    <div class="col s12"><h5>Comment your suggestion</h5></div>
    </div>
  </div>
  <!--Import jQuery before materialize.js-->
  <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.7/js/materialize.min.js"></script>
<script>
$(document).ready(function(){
  $('.materialboxed').materialbox();
});
</script>
</body>

Como posso compilar meu Sass

Esta seção só é relevante se você trabalha com a versão Sass do Materialize.

Primeiro, você precisa instalar o Sass em seu diretório de trabalho:

gem install sass

Quando você tem o Sass instalado em seu projeto e deseja atualizar seu arquivo .css de saída, você precisa usar o seguinte comando:

sass sass/materialize.scss public/style.css

NOTA: o segundo parâmetro sass/materialize.scss é o caminho para seu arquivo .scss, e o último parâmetro sass/style.css é o caminho para sua pasta de saída quando o arquivo .css está localizado.

Se você quiser evitar esse comando toda vez que fizer uma alteração, execute um comando watch:

 sass --watch sass/sass:public/stylesheets

NOTA: este comando observa todos os arquivos Sass no diretório scss para alterações e, em seguida, atualiza o arquivo de estilo em nosso diretório público.

Usando MaterializeCSS com Angular

Há muitas maneiras de usar a estrutura MaterializeCSS.

Algumas coisas a ter em mente antes de ir para a instalação

  • Não é um framework somente CSS, embora tenha o nome CSS nele. Podemos usar seu SCSS também
  • Não é construído para Angular
  • É um framework de componentes também construído em jquery. Embora não devamos usar jquery (não sugerido) em angular, ainda importamos .

Você pode usar qualquer dos seguintes métodos:

  • CDN
  • Ativos
  • Incluir em Angular (NPM)
  • Incluir em Angular (fonte com SCSS)

Cada um tem suas próprias vantagens e desvantagens.

CDN

Basta adicionar isso ao index.html e você está pronto para ir.

 <!-- Compiled and minified CSS -->
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.2/css/materialize.min.css">
 
 <!-- We need jquery first -->  
  <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

 <!-- Compiled and minified JavaScript -->
   <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.2/js/materialize.min.js"></script>

Ativos

Adicione-o como um ativo em seu projeto. Isso ajuda a não depender da internet ao construir e executar localmente.

Baixar jQuery

Baixar versão CSS

  • Extraia-os

  • Copie materialize.min.css, jquery-3.2.1.min.js e materialize.min.js em sua pasta de recursos

  • adicione-os ao index.html

      <link rel="stylesheet" href="./assets/materialize.min.css" >
      <script src="./assets/jquery-3.2.1.min.js"></script>
      <script src="./assets/materialize.min.js"></script>
    

Incluir em angular ( NPM)

Nesse método, incluímos diretamente os arquivos em nosso build angular. Estou assumindo que o projeto angular é construído com @angular/cli para simplificar.

Fazer

npm install materialize-css --save 
npm install jquery --save

Isso é o mesmo que baixar arquivos CSS, mas não precisamos adicioná-los em nosso repositório.

Adicione o seguinte a .angular-cli.json:

"styles": [
    "../node_modules/materialize-css/dist/css/materialize.css",
    "styles.scss"
]

...

"scripts":[
  "../node_modules/jquery/dist/jquery.js",
  "../node_modules/materialize-css/dist/js/materialize.js"
]

Incluir em angular (SCSS)

Baixar fonte com versão SCSS

Faça isso se quiser aproveitar o SCSS para alterar o comportamento padrão da biblioteca. Caso contrário, você ainda pode usar o método anterior e usar o SCSS ao lado.

Adicione-os a uma pasta fora de src . Pode-se criar uma pasta materialize-src como irmã de src e colar o conteúdo lá. Estamos fazendo isso porque npm install de materialize-css não nos dá a versão scss. (Me corrija se eu estiver errado )

Instalar jquery

npm install jquery --save 

Adicione-os ao seu .angular-cli.json

"styles": [
    "../materialize-src/sass/materialize.scss",
    "styles.scss"
 ],
 "scripts": [
    "../node_modules/jquery/dist/jquery.min.js",
    "../materialize-src/js/bin/materialize.min.js"
 ],

Integração com Angular:

Os métodos de instalação acima fornecem funcionalidade completa com materialize e não há necessidade de instalar mais nada para trabalhar em angular. Pegue qualquer exemplo e apenas use a estrutura HTML apropriada dentro da parte componente do angular e você está pronto para ir.

Em alguns casos você pode precisar mexer com javascript e para isso precisamos usar jQuery. Em vez disso, podemos usar o desenvolvedor do wrapper angular em angular2-materialize. Desenvolvi um site funcional completo usando angular e materialize e nunca senti necessidade disso.

Se você ainda acredita que precisa. Você pode instalar da seguinte forma:

  • Instale o materialize com qualquer uma das formas mencionadas acima

  • Instalar angular2-materialize

      npm install angular2-materilize --save 
    

    Add in angular app.module.ts

      import { MaterializeModule } from "angular2-materialize";
    
      @NgModule({
        imports: [
          //...
          MaterializeModule,
        ],
        //...
      })