Descripción general del componente paso a paso de Angular
El Ignite UI for Angular Stepper es un componente altamente personalizable que visualiza el contenido como un proceso y muestra su progreso dividiendo el contenido en pasos sucesivos. Aparece como una línea vertical u horizontal. Proporcionado por la biblioteca de componentes de Ignite UI para Angular, el componente paso a paso ofrece un flujo de trabajo similar al de un asistente y múltiples funciones como la validación de pasos, el estilo, la orientación y la navegación con el teclado.
Angular Stepper Example
En este ejemplo de Angular Stepper, puede ver cómo los usuarios tienen la oportunidad de personalizar su tarjeta de crédito y pasan por el proceso en cinco pasos lógicos: seleccionar el tipo de tarjeta, agregar información comercial, completar información personal, proporcionar detalles de envío y confirmación. Tenga en cuenta que el cuarto paso en nuestra demostración de paso a paso Angular se habilita solo si el usuario marca la casilla de verificación en el segundo paso, lo que significa que su dirección postal es diferente de la dirección física de la empresa.
A continuación se muestra un ejemplo que demuestra cómo lograr la funcionalidad anterior utilizando formularios reactivos Angular.
Getting Started with Ignite UI for Angular Stepper
Para comenzar con el componente Ignite UI for Angular Stepper, primero debe instalar Ignite UI for Angular. En una aplicación Angular existente, escriba el siguiente comando:
ng add igniteui-angular
Para obtener una introducción completa al Ignite UI for Angular, lea el tema de introducción.
El siguiente paso es importar IgxStepperModule en su archivo app.module.ts.
// app.module.ts
...
import { IgxStepperModule } from 'igniteui-angular';
// import { IgxStepperModule } from '@infragistics/igniteui-angular'; for licensed package
@NgModule({
...
imports: [..., IgxStepperModule],
...
})
export class AppModule {}
Alternativamente, a partir de 16.0.0, puede importar IgxStepperComponent como una dependencia independiente o usar el token IGX_STEPPER_DIRECTIVES para importar el componente y todos sus componentes y directivas de soporte.
// home.component.ts
import { HammerModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { IGX_STEPPER_DIRECTIVES } from 'igniteui-angular';
// import { IGX_STEPPER_DIRECTIVES } from '@infragistics/igniteui-angular'; for licensed package
@Component({
selector: 'app-home',
template: `<igx-stepper>
<igx-step>
<p igxStepTitle>Step 1</p>
</igx-step>
<igx-step>
<p igxStepTitle>Step 2</p>
</igx-step>
</igx-stepper>`,
styleUrls: ['home.component.scss'],
standalone: true,
imports: [IGX_STEPPER_DIRECTIVES, FormsModule, HammerModule]
/* or imports: [IgxStepperComponent, FormsModule, HammerModule] */
})
export class HomeComponent {
public task: Task;
}
Ahora que tiene el módulo o las directivas Angular Stepper importados, puede comenzar con una configuración básica de y igx-stepper sus pasos. Ahora que tiene el módulo Angular Stepper o las directivas importadas, puede comenzar con una configuración básica del igx-stepper módulo o sus pasos.
Using the Angular Stepper
IgxStepComponent es la representación de cada paso que pertenece al IgxStepperComponent. Los pasos proporcionan propiedades isValid, active, opcional, deshabilitado y completado, que le brindan la posibilidad de configurar los estados de los pasos según los requisitos de su negocio.
Declaring a Stepper
Ahora que hemos importado el módulo paso a paso, comencemos con su configuración.
Los pasos se pueden declarar utilizando uno de los siguientes enfoques.
- Iterando a través de un conjunto de datos
<igx-stepper>
<igx-step *ngFor="let step of stepsData" [disabled]=”step.disabled”>
<igx-icon igxStepIndicator>
{{step.indicator}}
</igx-icon>
<p igxStepTitle>
{{step.title}}
</p>
</igx-step>
</igx-stepper>
- Creando pasos estáticos
<igx-stepper>
<igx-step>
<p igxStepTitle>Step 1</p>
</igx-step>
<igx-step>
<p igxStepTitle>Step 2</p>
</igx-step>
</igx-stepper>
Para cada paso, el usuario tiene la capacidad de configurar el indicador, título, subtítulo y contenido usando las directivas igxStepIndicator, igxStepTitle, igxStepSubtitle e igxStepContent de la siguiente manera:
<igx-stepper>
<igx-step>
<igx-icon igxStepIndicator>home</igx-icon>
<p igxStepTitle>Home</p>
<p igxStepSubtitle>Home Sub Title</p>
<div igxStepContent>
...
</div>
</igx-step>
</igx-stepper>
Changing the Stepper Orientation
Puede personalizar la orientación del paso a paso a través de la propiedad de orientación expuesta. Se necesita un miembro de la enumeración IgxStepperOrientation: Horizontal (valor predeterminado) o Vertical.
Orientación paso a paso horizontal
horizontal es el valor predeterminado para el igx-stepper orientación propiedad. Cuando el paso a paso está orientado horizontalmente, tiene la oportunidad de determinar si el contenido de los pasos se mostrará encima o debajo de los encabezados de los pasos. Esto podría lograrse estableciendo el Componente IgxStepper contenidoarriba propiedad booleana, cuyo valor predeterminado es false. En caso de que esté habilitado, el contenido de los pasos se mostrará encima de los encabezados de los pasos.
Orientación vertical del paso a paso
Puede cambiar fácilmente del diseño horizontal al vertical. Para cambiar la orientación predeterminada, debe establecer la propiedad de orientación en vertical.
<igx-stepper [orientation]="'vertical'">
<igx-step>
…
</igx-step>
<igx-step>
…
</igx-step>
</igx-stepper>
El siguiente ejemplo demuestra cómo se puede cambiar la orientación del paso a paso y la posición de los títulos en tiempo de ejecución.
Step States
IgxStepperComponent admite cuatro estados de pasos y cada uno de ellos aplica estilos diferentes de forma predeterminada:
- activo: determina si el paso es el que se muestra actualmente. Por diseño, si el usuario no establece explícitamente el atributo activo de algún paso en
true, el paso activo inicial sería el primer paso no deshabilitado. - deshabilitado: determina si se puede interactuar con el paso. De forma predeterminada, el atributo deshabilitado de un paso se establece en
false. - Opcional: de forma predeterminada, el atributo opcional de un paso se establece en
false. Si no se requiere la validez de un paso en el paso a paso lineal, entonces se puede habilitar el atributo opcional para poder avanzar independientemente de la validez del paso. - completado: de forma predeterminada, el atributo completado de un paso devuelve
false. Sin embargo, el usuario puede anular este comportamiento de finalización predeterminado estableciendo el atributo de finalización según sea necesario. Cuando el paso se marca como completado, no solo se cambia el estilo del encabezado del paso de forma predeterminada, sino también el estilo de la línea de progreso entre el paso completado y el siguiente. Ambos estilos podrían modificarse utilizando las variables CSS expuestas.
IgxStepperComponent le brinda la oportunidad de configurar la lógica de validación para cada paso a través de la propiedad isValid vinculable bidireccional. En función de su valor, se decide si el usuario tendrá la capacidad de avanzar en el modo paso a paso lineal. De forma predeterminada, la propiedad isValid de un paso se establece en true.
Linear Stepper
El igx-stepper le brinda la oportunidad de establecer el flujo de sus pasos utilizando la propiedad lineal. De forma predeterminada, lineal se establece en false y el usuario puede seleccionar cualquier paso no deshabilitado en IgxStepperComponent.
Cuando la propiedad lineal se establece en true, el paso a paso requerirá que el paso no opcional actual sea válido antes de continuar con el siguiente.
Si el paso no opcional actual no es válido, no podrá avanzar al siguiente paso hasta que valide el actual.
Note
La validez de los pasos opcionales no se tiene en cuenta para seguir adelante.
El siguiente ejemplo demuestra cómo configurar un paso a paso lineal:
Step Interactions
IgxStepperComponent proporciona los siguientes métodos API para interacciones de pasos:
- navegar a– activa el paso por índice dado.
- siguiente: activa el siguiente paso no deshabilitado.
- prev: activa el paso anterior no deshabilitado.
- restablecer: restablece el paso a paso a su estado inicial.
Note
El método de reinicio no borrará el contenido del paso. Esto debe hacerse manualmente.
Customizing the Steps
El Ignite UI for Angular Stepper te da la posibilidad de configurar diferentes opciones para títulos, indicadores y mucho más.
Esto podría lograrse mediante la propiedad stepType de IgxStepperComponent. Se necesita un miembro de la enumeración IgxStepType:
- Completo (valor predeterminado)
- Indicador
- Título
Lleno
Si se definen títulos y subtítulos, con esta configuración se representarán tanto los indicadores como los títulos.
El usuario también tendría la capacidad de definir la posición del título de los pasos, de modo que podría colocarse antes, después, encima o debajo del indicador de paso. El usuario puede configurar la posición del título utilizando la propiedad titlePosition. Ambas propiedades son miembros de la enumeración IgxStepperTitlePosition:
- fin
- comenzar
- abajo
- arriba
Cuando el igx-stepper está orientado horizontalmente, el valor predeterminado de la posición del título es bottom.
Cuando la orientación se establece en diseño vertical, la posición del título por defecto es end.
Note
La propiedad titlePosition solo se aplica cuando la propiedad stepType stepper está configurada en full.
Indicador
Si desea mostrar solo indicadores para los pasos, configure la opción stepType en indicator.
El indicador de pasos admite cualquier contenido, pero con la restricción de que su tamaño será siempre de 24 píxeles. Teniendo esto en cuenta, recomendamos utilizar IgxIconComponent o IgxAvatarComponent como indicadores de pasos.
Título
Si desea mostrar solo títulos para los pasos, configure la opción stepType en title.
De esta manera, si se definen subtítulos, también aparecerán debajo del título del paso.
Note
Este contenedor se puede cambiar de plantilla según sus necesidades sin restricciones de tamaño. Por ejemplo, podría agregar un indicador con un tamaño superior a 24 píxeles en su interior.
El siguiente ejemplo muestra todos los tipos de pasos expuestos y cómo podrían cambiarse:
IgxStepperComponent también le permite personalizar los indicadores representados para pasos activos, no válidos y completados. Esto podría lograrse mediante las directivas igxStepActiveIndicator, igxStepInvalidIndicator e igxStepCompletedIndicator:
<igx-stepper>
<ng-template igxStepActiveIndicator>
<igx-icon>edit</igx-icon>
</ng-template>
<ng-template igxStepInvalidIndicator>
<igx-icon>error</igx-icon>
</ng-template>
<ng-template igxStepCompletedIndicator>
<igx-icon>check</igx-icon>
</ng-template>
...
</igx-stepper>
Note
Estas plantillas se aplicarían para todos los pasos con el estado correspondiente.
Angular Stepper Animations
Angular animaciones paso a paso brindan a los usuarios finales una hermosa experiencia al interactuar con los pasos definidos. Las opciones de animación disponibles difieren en función de la orientación del paso a paso.
Cuando el paso a paso está orientado horizontalmente, está configurado para usar la animación slide de forma predeterminada. También admite fade como alternativa. Las animaciones se configuran a través de la entrada horizontalAnimationType.
En un diseño orientado verticalmente, el tipo de animación se puede definir utilizando la propiedad verticalAnimationType. De forma predeterminada, su valor grow y el usuario también tiene la capacidad de configurarlo para que se fade.
Establecer none en ambas entradas de tipo de animación deshabilita las animaciones paso a paso.
IgxStepperComponent le brinda la posibilidad de configurar la duración de la transición entre los pasos. Esto podría lograrse mediante la propiedad AnimationDuration, que toma un número como argumento y es común para ambas orientaciones.
Keyboard Navigation
Angular Stepper proporciona una amplia variedad de interacciones de teclado para el usuario final. Esta funcionalidad está habilitada de forma predeterminada y permite a los usuarios finales navegar fácilmente por los pasos. La navegación IgxStepperComponent cumple con los estándares de accesibilidad W3 y es cómoda de usar.
Combinaciones de teclas
- Tabulador: mueve el foco al siguiente elemento tabulado
- Shift + Tab: mueve el foco al elemento tabable anterior
- Flecha hacia abajo: mueve el foco al encabezado del siguiente paso accesible cuando el
igx-stepperestá orientado verticalmente. - Flecha hacia arriba: mueve el foco al encabezado del paso accesible anterior cuando el
igx-stepperestá orientado verticalmente. - Flecha hacia la izquierda: mueve el foco al encabezado del paso accesible anterior en ambas orientaciones.
- Flecha hacia la derecha: mueve el foco al encabezado del siguiente paso accesible en ambas orientaciones.
- Inicio: mueve el foco al encabezado del PRIMER paso habilitado en
igx-stepper - Fin: mueve el foco al encabezado del ÚLTIMO paso habilitado en
igx-stepper - Intro/Espacio: activa el paso actualmente enfocado
Note
Por diseño, cuando el usuario presiona la tecla Tab sobre el encabezado del paso, el foco se moverá al contenedor de contenido del paso. En caso de que se deba omitir el contenedor, el desarrollador debe configurar el contenedor de contenido [tabIndex]="-1".
El componente Stepper también está disponible en el App Builder ™ de low-code, arrastrar y soltar.
Angular Stepper Styling
Stepper Theme Property Map
Al modificar una propiedad principal, todas las propiedades dependientes relacionadas se actualizan automáticamente para reflejar el cambio:
| Propiedad principal | Propiedad dependiente | Descripción |
|---|---|---|
$step antecedentes |
$step-hover-background | El trasfondo del encabezado escalonado en el hover |
| $step-foco-fondo | El trasfondo del encabezado de paso en el enfoque | |
| $indicator fondo | El color de fondo del indicador de escalones | |
| $title-color | El color del título del escalón | |
| $subtitle color | El color del subtítulo de paso | |
| $current-trasfondo | El trasfondo del encabezado de paso actual | |
| $invalid-trasfondo | El trasfondo del encabezado de paso inválido | |
| $complete-trasfondo | El trasfondo del encabezado de paso completo | |
| $disabled-indicador-fondo | El fondo indicador del escalón deshabilitado | |
| $disabled-título-color | El color del título del escalón para discapacitados | |
| $disabled-subtítulos-color | El color del subtítulo del escalón para desactivados | |
| $step-separador-color | El color del borde del separador entre pasos | |
$indicator fondo |
$indicator esquema | El color del contorno del indicador de escalones |
| $indicator color | El color del texto del indicador de pasos | |
$current-trasfondo |
$current-paso-paso-hover-fondo | El trasfondo del encabezado de paso actual en el vuelo intermedio |
| $current-paso-foco-fondo | El trasfondo del encabezado actual de pasos en el enfoque | |
| $current-indicador-fondo | El color de fondo del indicador de escalones actual | |
| $current-color del título | El color del título actual del escalón | |
| $current-subtítulo-color | El color del subtítulo actual del paso | |
$invalid-indicador-fondo |
$invalid-esquema indicador | El color del contorno del indicador de paso inválido |
| $invalid-color-indicador | El color del indicador de paso inválido | |
| $invalid-título-color | El color del título de escalón inválido | |
| $invalid-subtítulos-color | El color del subtítulo de paso inválido | |
| $invalid-título-hover-color | El color del título de paso inválido al pasar el cursor | |
| $invalid-subtítulos-hover-color | El color del subtítulo step inválido al pasar el cursor | |
| $invalid-título-enfoque-color | El color del título de paso inválido en el enfoque | |
| $invalid-subtítulos-enfoque-color | El color del subtítulo de paso inválido sobre el enfoque | |
$complete-trasfondo |
$complete-paso-flotador-fondo | El trasfondo del encabezado step completo en el paso flotante |
| $complete-paso-foco-fondo | El contexto del encabezado completo de pasos sobre el enfoque | |
| $complete-indicador-fondo | El color de fondo del indicador de escalones completos | |
| $complete-color-indicador | El color del indicador de pasos completado | |
| $complete-título-color | El color del título completo del paso | |
| $complete-subtítulos-color | El color del subtítulo completo del paso | |
| $complete-título-hover-color | El color del título completo del paso en el paso flotante | |
| $complete-subtítulos-hover-color | El color del subtítulo completo del paso al pasar el cursor | |
| $complete-título-foco-color | El color del título completo del paso sobre el enfoque | |
| $complete-subtítulos-enfoque-color | El color del subtítulo completo del paso sobre el enfoque |
Usando la Ignite UI for Angular Tematización, podemos alterar en gran medida la igx-stepper apariencia.
Primero, para utilizar las funciones expuestas por el motor de temas, necesitamos importar el archivo index en nuestro archivo de estilo:
@use "igniteui-angular/theming" as *;
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
Siguiendo el enfoque más simple, creamos un nuevo tema que extiende el tema paso a paso y proporciona solo algunos parámetros básicos. El tema generará automáticamente todos los estilos requeridos, incluidos los colores específicos del estado y los primeros planos contrastantes accesibles. También puede anular cualquiera de los parámetros disponibles si desea tener más control sobre la apariencia.
$stepper-theme: stepper-theme(
$step-background: #351e65,
$current-indicator-background: #f6cd28,
$border-radius-step-header: 16px,
$border-radius-indicator: 10px 4px 10px 4px,
);
El último paso es incluir el tema del componente.
@include css-vars($custom-stepper-theme);
Demo
En el ejemplo siguiente se muestra un estilo sencillo aplicado a través de la Ignite UI for Angular Tema.
Styling with Tailwind
Puedes diseñar el stepper usando nuestras clases utilitarias personalizadas de Tailwind. Asegúrate de configurar primero a Tailwind.
Junto con la importación de viento de cola en su hoja de estilo global, puede aplicar las utilidades de tema deseadas de la siguiente manera:
@import "tailwindcss";
...
@use 'igniteui-theming/tailwind/utilities/material.css';
El archivo de utilidad incluye variantes de light ambos temas dark.
- Usa
light-*clases para el tema de la luz. - Usa
dark-*clases para el tema oscuro. - Añadir el nombre del componente después del prefijo, por ejemplo, ,
light-stepper,dark-stepper.
Una vez aplicadas, estas clases permiten cálculos de temas dinámicos. A partir de ahí, puede anular las variables CSS generadas usando arbitrary properties. Después de los dos puntos, proporcione cualquier formato de color CSS válido (HEX, variable CSS, RGB, etc.).
Puedes encontrar la lista completa de propiedades en el tema de paso a paso. La sintaxis es la siguiente:
<igx-stepper
class="!light-stepper ![--step-background:#7B9E89] ![--border-radius-step-header:6px]">
...
</igx-stepper>
Note
El signo de exclamación (!) es necesario para garantizar que la clase de utilidad tenga prioridad. Tailwind aplica estilos en capas y, sin marcar estos estilos como importantes, serán anulados por el tema predeterminado del componente.
Al final, tu motor paso a paso debería verse así:
API Reference
Additional Resources
Nuestra comunidad es activa y siempre da la bienvenida a nuevas ideas.