Introducción
En este tema, aprenderemos cómo utilizar CSS y SCSS para estilizar nuestras aplicaciones Ionic. CSS (Cascading Style Sheets) es un lenguaje de diseño que se utiliza para describir la presentación de un documento escrito en HTML o XML. SCSS (Sassy CSS) es una extensión de CSS que permite el uso de variables, anidación, y otras características que hacen que la escritura de CSS sea más eficiente y manejable.
Contenidos
- Introducción a CSS y SCSS
- Configuración de SCSS en Ionic
- Variables y Mixins en SCSS
- Anidación y Herencia en SCSS
- Ejemplo Práctico
- Ejercicio Práctico
- Introducción a CSS y SCSS
CSS
CSS es el lenguaje utilizado para describir la presentación de un documento HTML. Permite aplicar estilos como colores, fuentes, espaciados, y más.
/* Ejemplo de CSS */
body {
background-color: #f0f0f0;
font-family: Arial, sans-serif;
}
h1 {
color: #333;
}SCSS
SCSS es una extensión de CSS que añade características como variables, anidación, y mixins, lo que facilita la escritura y el mantenimiento del código CSS.
/* Ejemplo de SCSS */
$primary-color: #333;
body {
background-color: #f0f0f0;
font-family: Arial, sans-serif;
h1 {
color: $primary-color;
}
}
- Configuración de SCSS en Ionic
Ionic soporta SCSS de manera nativa, por lo que no es necesario realizar configuraciones adicionales. Simplemente puedes empezar a escribir tus estilos en archivos .scss.
Estructura de Archivos
En un proyecto Ionic, los archivos SCSS se encuentran generalmente en la carpeta src/theme/ y src/pages/.
- Variables y Mixins en SCSS
Variables
Las variables en SCSS permiten almacenar valores que pueden ser reutilizados en todo el archivo.
$primary-color: #3498db;
$secondary-color: #2ecc71;
body {
background-color: $primary-color;
color: $secondary-color;
}Mixins
Los mixins son bloques de código que pueden ser reutilizados en diferentes partes del archivo SCSS.
@mixin border-radius($radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
border-radius: $radius;
}
.button {
@include border-radius(10px);
background-color: $primary-color;
color: white;
}
- Anidación y Herencia en SCSS
Anidación
La anidación permite escribir CSS de manera más estructurada y legible.
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
li {
display: inline-block;
margin-right: 10px;
a {
text-decoration: none;
color: $primary-color;
}
}
}
}Herencia
La herencia permite que un selector herede las propiedades de otro selector.
%message-shared {
border: 1px solid #ccc;
padding: 10px;
color: #333;
}
.message {
@extend %message-shared;
}
.success {
@extend %message-shared;
border-color: $secondary-color;
}
- Ejemplo Práctico
Vamos a crear un ejemplo práctico donde aplicaremos lo aprendido.
HTML
<ion-header>
<ion-toolbar>
<ion-title>
Estilizando con SCSS
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="container">
<h1>Bienvenido a Ionic</h1>
<button class="button">Haz clic aquí</button>
</div>
</ion-content>SCSS
$primary-color: #3498db;
$secondary-color: #2ecc71;
.container {
text-align: center;
padding: 20px;
h1 {
color: $primary-color;
}
.button {
@include border-radius(5px);
background-color: $secondary-color;
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
&:hover {
background-color: darken($secondary-color, 10%);
}
}
}
@mixin border-radius($radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
border-radius: $radius;
}
- Ejercicio Práctico
Ejercicio
Crea una página en tu aplicación Ionic que tenga un formulario de contacto. Estiliza el formulario utilizando SCSS, aplicando variables, mixins, anidación y herencia.
Requisitos
- El formulario debe tener campos para nombre, correo electrónico y mensaje.
- Los campos deben tener un borde redondeado y un color de fondo claro.
- El botón de envío debe cambiar de color al pasar el cursor sobre él.
Solución
HTML
<ion-header>
<ion-toolbar>
<ion-title>
Formulario de Contacto
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="contact-form">
<form>
<ion-item>
<ion-label position="floating">Nombre</ion-label>
<ion-input type="text"></ion-input>
</ion-item>
<ion-item>
<ion-label position="floating">Correo Electrónico</ion-label>
<ion-input type="email"></ion-input>
</ion-item>
<ion-item>
<ion-label position="floating">Mensaje</ion-label>
<ion-textarea></ion-textarea>
</ion-item>
<ion-button expand="full" class="submit-button">Enviar</ion-button>
</form>
</div>
</ion-content>SCSS
$input-bg-color: #f9f9f9;
$button-bg-color: #3498db;
$button-hover-color: darken($button-bg-color, 10%);
.contact-form {
padding: 20px;
ion-item {
margin-bottom: 15px;
ion-input,
ion-textarea {
background-color: $input-bg-color;
@include border-radius(5px);
padding: 10px;
}
}
.submit-button {
background-color: $button-bg-color;
color: white;
@include border-radius(5px);
&:hover {
background-color: $button-hover-color;
}
}
}
@mixin border-radius($radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
border-radius: $radius;
}Conclusión
En este tema, hemos aprendido cómo utilizar CSS y SCSS para estilizar nuestras aplicaciones Ionic. Hemos cubierto conceptos básicos como variables, mixins, anidación y herencia en SCSS, y hemos aplicado estos conceptos en ejemplos prácticos. Con esta base, estarás preparado para crear aplicaciones Ionic visualmente atractivas y bien estructuradas.
En el próximo tema, exploraremos cómo tematizar tu aplicación Ionic para personalizar aún más su apariencia.
Curso de Desarrollo con Ionic
Módulo 1: Introducción a Ionic
- ¿Qué es Ionic?
- Configuración del Entorno de Desarrollo
- Creando Tu Primera Aplicación Ionic
- Entendiendo la Estructura del Proyecto
- Ejecutando y Depurando Tu Aplicación
Módulo 2: Componentes Básicos y Navegación
- Visión General de los Componentes de Ionic
- Usando Botones e Iconos de Ionic
- Creando y Usando Páginas
- Navegación y Enrutamiento
- Pestañas y Menús Laterales
Módulo 3: Estilización y Tematización
- Introducción a la Estilización en Ionic
- Usando CSS y SCSS en Ionic
- Tematizando Tu Aplicación Ionic
- Diseño Responsivo en Ionic
- Personalizando Componentes de Ionic
Módulo 4: Trabajando con Datos
- Introducción a la Vinculación de Datos
- Usando Servicios de Angular
- Solicitudes HTTP y APIs
- Almacenando Datos Localmente
- Usando Ionic Storage
Módulo 5: Componentes y Funcionalidades Avanzadas
- Usando Formularios de Ionic
- Validación y Manejo de Errores
- Usando Plugins Nativos de Ionic y Cordova
- Accediendo a Funcionalidades del Dispositivo
- Notificaciones Push
Módulo 6: Pruebas y Despliegue
- Pruebas Unitarias en Ionic
- Pruebas de Extremo a Extremo
- Construyendo para Producción
- Desplegando en Tiendas de Aplicaciones
- Integración y Entrega Continua
