Contents

Layout

Introducción

En este apartado desarrollaremos el layout de nuestro sitio, esto es, la plantilla global común sobre la que se mostrará la información de las diferentes páginas.

Creación de un tema de estilos

Empezaremos creando un nuevo fichero de tipo scss para crear un nuevo tema de colores tanto para el modo claro como para el modo oscuro. Realmente, estamos utilizando una de las plantillas de colores ya establecidas por Angular Material, pero se ha creado de nuevo para ver cuál sería el proceso en caso de necesitar una plantilla personalizada, que es lo normal en el uso diario. Crea un nuevo archivo llamado _theme.scss con el siguiente contenido y añadelo a tu proyecto en la ruta /src: 04-_theme.scss Analiza bien el contenido de dicho archivo y presta atención a los comentarios, pues en ellos está la clave del funcionamiento. Apreciarás además que sehan incluido algunos mixins para utilizarlos más adelante en los distintos componentes. Para finalizar e incluir el tema en tu sitio web, modifica cada ocurrencia de la propiedad"styles" que encuentres en el archivo angular.json que se encuentra en la raíz de tu proyecto, de modo que quede de la siguiente forma: "styles": [     "@angular/material/prebuilt-themes/indigo-pink.css",     ""src/_theme.scss",     ""src/styles.scss" ], NOTA: Si en la instalación elegiste un tema por defecto diferente a indigo-pink, será ese el que aparezca.

Componente app

Este componente será el responsabe del layout de nuestra aplicación, y contendrá lo siguiente:
  • contenedor main principal
  • header con barra superior y menú de navegación superior
  • sidenav con menú de navegación lateral
  • contenedor section para albergar el contenido de la ruta (router-outlet)
  • footer para cerrar la página
Para conseguirlo, partiremos de un componente sidenav responsive de Angular, que a suvez utiliza muchos otros componentes de Angular y que modificaremos para adaptarlos a nuestras necesidades. Modifica el contenido de los ficheros app.component.ts, app.component.html y app.component.scss para que tengan el siguiente contenido, y presta atención a los comentarios: 05-app.component.ts 06-app.component.html 07-app.component.scss Una vez guardado todo lo anterior, si ahora lanzas tu proyecto, el resultado debería ser similar al de las siguientes imágenes:
07 Layout escritorio menú cerrado - Modo claro
Layout escritorio menú cerrado - Modo claro
Fuente: Elaboración propia
08 Layout escritorio menú abierto - Modo claro
Layout escritorio menú abierto - Modo claro
Fuente: Elaboración propia
09 Layout escritorio menú cerrado - Modo oscuro
Layout escritorio menú cerrado - Modo oscuro
Fuente: Elaboración propia
10 Layout escritorio menú abierto - Modo oscuro
Layout escritorio menú abierto - Modo oscuro
Fuente: Elaboración propia
11 Layout móvil menú abierto - Modo claro
Layout móvil menú abierto - Modo claro
Fuente: Elaboración propia
12 Layout móvil menú abierto - Modo oscuro
Layout móvil menú abierto - Modo oscuro
Fuente: Elaboración propia

Referencias

Tools for picking colors Theming angular material Responsive sidenav