Descripción general de la tarjeta Web Components

    La tarjeta Ignite UI for Web Components muestra texto, imágenes, íconos y botones en una presentación visualmente rica que puede servir como punto de entrada a información más detallada. Las tarjetas se pueden utilizar para crear un panel multimedia.

    Ejemplo de tarjeta Web Components

    EXAMPLE
    TS
    HTML
    CardOverview.css
    index.css

    ¿Te gusta esta muestra? Obtenga acceso a nuestro completo kit de herramientas Ignite UI for Web Components y comience a crear sus propias aplicaciones en minutos. Descárgalo gratis.

    Uso

    Las tarjetas le permiten mostrar fácilmente contenido compuesto por diferentes tipos de objetos u objetos similares cuyo tamaño y acciones admitidas pueden variar.

    Empezando

    Primero, debe instalar la Ignite UI for Web Components ejecutando el siguiente comando:

    npm install igniteui-webcomponents
    cmd
    import { defineComponents, IgcCardComponent } from 'igniteui-webcomponents';
    
    defineComponents(IgcCardComponent );
    ts

    Para obtener una introducción completa a Ignite UI for Web Components, lea el tema Introducción.

    Luego, para representar la plantilla de la tarjeta de demostración, podemos agregar el siguiente código:

    <igc-card>
        <igc-card-media>
            <img src="https://images.unsplash.com/photo-1518235506717-e1ed3306a89b?ixlib=rb-1.2.1&auto=format&fit=crop&w=640&q=50">
        </igc-card-media>
    
        <igc-card-header>
            <h3 slot="title">New York</h3>
            <h5 slot="subtitle">City in New York</h5>
        </igc-card-header>
    
        <igc-card-content>
            <p>New York City comprises 5 boroughs sitting where the Hudson River meets the Atlantic Ocean. At its core is Manhattan, a densely populated borough that’s among the world’s major commercial, financial and cultural centers.</p>
        </igc-card-content>
    
        <igc-card-actions>
            <igc-button slot="start">
                <igc-ripple></igc-ripple>
                Read more
            </igc-button>
            <div slot="end">
                <igc-icon-button name="twitter" style="margin-right: 10px;">
                    <igc-ripple></igc-ripple>
                </igc-icon-button>
                <igc-icon-button name="facebook">
                    <igc-ripple></igc-ripple>
                </igc-icon-button>
            </div>
        </igc-card-actions>
    </igc-card>
    html

    Notarás algunas cosas arriba. Primero, cuando queremos etiquetar un elemento como título de encabezado, como el encabezado h3, lo colocamos entre las etiquetas IgcCardHeaderComponent y configuramos su nombre de ranura en title. Por el contrario, si quisiéramos convertir otro elemento de encabezado en un subtitle, nombraríamos su espacio subtitle.

    Cualquier imagen o vídeo que queramos mostrar en la tarjeta, lo envolvemos dentro de las etiquetas IgcCardMediaComponent. IgcCardMediaComponent nos permite ajustar el tamaño del contenido colocado en su interior para que mantenga su relación de aspecto mientras llena todo el cuadro de contenido del elemento. Si la relación de aspecto del objeto no coincide con la relación de aspecto de su cuadro, entonces el objeto se recortará para ajustarse.

    Puede colocar cualquier cosa dentro de las etiquetas IgcCardContentComponent. Normalmente el texto va ahí.

    Finalmente, IgcCardActionsComponent es donde colocaría cualquier elemento procesable, como botones.

    Medios, pulgares y avatares

    Si desea mostrar una imagen o icono en el encabezado de la tarjeta junto al título y subtítulo, puede hacerlo asignando la propiedad de ranura del elemento a thumbnail.

    Tomando la tarjeta de arriba como ejemplo, podemos editar el contenido del IgcCardHeaderComponent y agregar un avatar con slot="thumbnail":

    <igc-card-header>
        <igc-avatar slot="thumbnail" src="path/to/image" initials="TS"></igc-avatar>
    
        <h3 slot="title">Title</h3>
        <h5 slot="subtitle">Subtitle</h5>
    </igc-card-header>
    html

    El ejemplo anterior mostrará el avatar junto al título y subtítulo en el encabezado de la tarjeta.

    Tarjetas delineadas

    La tarjeta tiene un atributo outlined que, si se configura, elimina las sombras de la tarjeta y las reemplaza con un borde delgado para separar la tarjeta del fondo.

    Diseño horizontal

    De forma predeterminada, todas las secciones de la tarjeta (encabezado, contenido, medios, acciones) están dispuestas verticalmente. Esto es bueno cuando tenemos mucho espacio vertical. Digamos que queremos disponer las secciones de la tarjeta de forma horizontal. Podemos lograr dicho diseño con un poco de CSS simple.

    A continuación se muestra un ejemplo de una tarjeta horizontal delineada:

    <igc-card outlined>
        <div class="card-horizontal">
            <div>
                <igc-card-header>
                    <img src="ROZES-Under-the-Grave.jpg" slot="thumbnail">
                    <h5 slot="title">Rozes</h5>
                    <h5 slot="subtitle">Under the Grave (2016)</h5>
                </igc-card-header>
                <igc-card-content>
                    <p>As I have always said: I write what’s real and what’s true,
                        even if it means throwing myself under the bus.</p>
                </igc-card-content>
            </div>
            <div class="divider"></div>
            <igc-card-actions>
                <igc-icon-button name="previous"></igc-icon-button>
                <igc-icon-button name="play"></igc-icon-button>
                <igc-icon-button name="next"></igc-icon-button>
            </igc-card-actions>
        </div>
    </igc-card>
    html

    Estamos utilizando un elemento div adicional para agrupar IgcCardHeaderComponent e IgcCardContentComponent, manteniéndolos alineados verticalmente y aplicando la clase.card-horizontal al elemento div envolvente para alinear las dos secciones de la tarjeta horizontalmente.

    Los estilos que aplica.card-horizontal class son:

    .card-horizontal {
        display: flex;
        flex-direction: row;
        flex: 1 1 0%;
    }
    
    .card-horizontal img {
        width: 64px;
        height: 64px;
    }
    
    .card-horizontal igc-card-actions {
        justify-content: center;
    }
    css

    Si todo ha ido bien nuestra tarjeta debería quedar así:

    EXAMPLE
    TS
    HTML
    CardHorizontal.css
    index.css

    Diseños alternativos

    Puede ser aún más creativo con el diseño de IgcCardComponent.

    A continuación se muestra un ejemplo que muestra cómo se puede crear una tarjeta semihorizontal, donde tenemos cada sección de la tarjeta dispuesta verticalmente, mientras que IgcCardMediaComponent aparece junto a las secciones verticales.

    <igc-card>
        <div class="semi-horizontal">
            <div>
                <igc-card-header>
                    <igc-avatar src="mellow_d.jpg" slot="thumbnail">MD</igc-avatar>
                    <h5 slot="title">HERE</h5>
                    <h5 slot="subtitle">by Mellow D</h5>
                </igc-card-header>
                <igc-card-content>
                    <p>Far far away, behind the word mountains,
                        far from the countries Vokalia and Consonantia,
                        there live the blind texts.</p>
                </igc-card-content>
                <igc-card-actions>
                    <igc-button>play album</igc-button>
                </igc-card-actions>
            </div>
            <igc-card-media class="card-media">
                <img src="here_media.jpg">
            </igc-card-media>
        </div>
    </igc-card>
    html
    .semi-horizontal {
        display: flex;
        flex-direction: row;
        flex-grow: 1;
    }
    
    .card-media {
        width: 96px;
        min-width: 96px;
    }
    css

    EXAMPLE
    TS
    HTML
    index.css
    SemiHorizontal.css

    Acciones de tarjeta

    El área de acciones de la tarjeta permite una configuración adicional a lo que ya hemos comentado.

    Puede invertir el orden del botón de texto y los botones de ícono cambiando los nombres de las ranuras.

    <igc-card-actions>
        <igc-button slot="end">
            <igc-ripple></igc-ripple>
            Read more
        </igc-button>
        <div slot="start">
            <igc-icon-button name="twitter">
                <igc-ripple></igc-ripple>
            </igc-icon-button>
            <igc-icon-button name="facebook">
                <igc-ripple></igc-ripple>
            </igc-icon-button>
        </div>
    </igc-card-actions>
    html

    Ahora los botones de iconos aparecerán antes del botón de texto.

    También puede agregar más contenido en el medio simplemente omitiendo la propiedad de la ranura y dejando que los elementos vayan a la ranura predeterminada.

    Ignite UI for Web Components | Banner de llamada a la acción

    Estilo

    Dado que la tarjeta es un contenedor que envuelve diferentes elementos, su estilo se realiza aplicando estilo a sus componentes básicos: el encabezado, el contenido, los medios y los subcomponentes de acciones. Además, el componente header (IgcCardHeaderComponent) expone tres partes CSS: header, title y subtitle que le permiten diseñar el elemento envolvente así como los dos elementos del título.

    igc-card {
        background-color: #011627;
    }
    
    igc-card-content,
    igc-card-header::part(title) {
        color: #FEFEFE;
    }
    
    igc-card-header::part(subtitle) {
        color: #ECAA53;
        opacity: 0.9;
    }
    
    igc-icon-button+igc-icon-button {
        margin-left: 10px;
    }
    css

    EXAMPLE
    TS
    HTML
    CardStyling.css
    index.css

    Resumen

    En este artículo cubrimos mucho terreno con el componente de la tarjeta. Creamos una tarjeta simple y agregamos algunas imágenes para hacerla un poco más atractiva. Usamos algunos Web Components adicionales dentro de nuestra tarjeta, como avatares, botones e íconos, para enriquecer la experiencia y agregar algunas funciones. Y finalmente, cambiamos la apariencia de la tarjeta cambiando los colores principales de los bloques de construcción.

    Referencias de API

    Recursos adicionales