Descripción general del botón de icono Angular

    The Ignite UI for Angular Icon Button directive is intended to turn any icon into a fully functional button. The igxIconButton comes in three types - flat, outlined, and contained which is the default one.

    Angular Icon Button Example

    Getting Started with Ignite UI for Angular Icon Button

    Para comenzar con la directiva Ignite UI for Angular Icon Button, 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.

    The next step is to import the IgxIconButtonDirective as a standalone dependency:

    // home.component.ts
    
    ...
    import { IgxIconButtonDirective } from 'igniteui-angular';
    // import { IgxIconButtonDirective } from '@infragistics/igniteui-angular'; for licensed package
    
    @Component({
        selector: 'app-home',
        template: `
            <button igxIconButton="outlined">
                <igx-icon>home</igx-icon>
            </button>`,
        styleUrls: ['home.component.scss'],
        standalone: true,
        imports: [IgxIconButtonDirective]
    })
    export class HomeComponent {}
    

    Now that you have the Ignite UI for Angular Icon Button directive imported, you can start using the igxIconButton directive on elements.

    Angular Icon Button Types

    Flat Icon Button

    Use the igxIconButton directive to add a simple flat icon button in your component template:

    <button igxIconButton="flat">
        <igx-icon>edit</igx-icon>
    </button>
    

    Contained Icon Button

    All you have to do to create a contained icon button is to change the value of the igxIconButton property. Note that if you do not choose a type, by default it will also be set to contained.

    <button igxIconButton>
        <igx-icon>favorite</igx-icon>
    </button>
    

    Outlined Icon Button

    Analógicamente podemos pasar al tipo delineado:

    <button igxIconButton="outlined">
        <igx-icon>more_vert</igx-icon>
    </button>
    

    Examples

    Disabled Icon Button

    If you want to disable an icon button, you can use the disabled property. In this sample we also demonstrate how to use icons from different families with the igxIconButton directive:

    <button igxIconButton="flat" disabled>
        <igx-icon family="fa" name="fa-home"></igx-icon>
    </button>
    

    SVG Icons

    In addition to material icons, the igxIconButton directive also supports usage of SVG images as icons. To do so, first we should inject the IgxIconService dependency and then use the addSvgIcon method to import the SVG file in cache. For further information, you can read the SVG section in the icon topic.

    constructor(private _iconService: IgxIconService) { }
    
    public ngOnInit() {
        // register custom SVG icon
        this._iconService.addSvgIcon('rain', 'assets/images/card/icons/rain.svg', 'weather-icons');
    }
    
    <button igxIconButton>
        <igx-icon family="weather-icons" name="rain"></igx-icon>
    </button>
    

    Tamaño

    Users can choose one of the three predefined igxIconButton sizes by using the --ig-size custom CSS property. By default, the size of the component is set medium.

    As you can see from the sample above, we can also use the igxIconButton directive to turn elements like span and div into Ignite UI for Angular styled icon buttons.

    Icon Button Styling

    Icon Button Theme Property Map

    Cuando modificas una propiedad primaria, todas las propiedades dependientes relacionadas se actualizan automáticamente:

    Flat Icon Button

    Propiedad principalPropiedad dependienteDescripción
    $foreground
    $hover primer planoHovered icon color
    $focus primer planoFocused icon color
    $focus-plano flotanteFocus + hover icon color
    $active primer planoActive icon color
    $hover antecedentesBackground on hover
    $focus-antecedentesBackground on focus
    $focus-hover-fondoBackground on focus + hover
    $active-antecedentesBackground on active

    Contained Icon Button

    Propiedad principalPropiedad dependienteDescripción
    $background
    $foregroundIcon color
    $hover antecedentesBackground on hover
    $focus-antecedentesBackground on focus
    $focus primer planoFocused icon color
    $focus-hover-fondoBackground on focus + hover
    $active-antecedentesBackground on active
    $hover primer planoHovered icon color
    $focus-plano flotanteFocus + hover icon color
    $active primer planoActive icon color
    $shadow colorShadow on focus
    $focus-color de bordeColor del borde del foco
    $disabled antecedentesDisabled background
    $disabled primer planoColor de icono desactivado

    Outlined Icon Button

    Propiedad principalPropiedad dependienteDescripción
    $foreground
    $hover primer planoHovered icon color
    $focus primer planoFocused icon color
    $focus-plano flotanteFocus + hover icon color
    $active primer planoActive icon color
    $hover antecedentesBackground on hover
    $focus-antecedentesBackground on focus
    $focus-hover-fondoBackground on focus + hover
    $active-antecedentesBackground on active
    $border colorDefault border color
    $focus-color de bordeColor del borde del foco

    Flat Icon Button

    Propiedad principalPropiedad dependienteDescripción
    $foreground
    $hover primer planoColor de iconos al pasar el cursor
    $focus primer planoIcon color when focused
    $focus-plano flotanteIcon color when focused and hovered
    $active primer planoIcon color when active
    $hover antecedentesBackground color on hover
    $focus-antecedentesBackground color on focus
    $focus-hover-fondoBackground color on focus and hover
    $active-antecedentesBackground color when active

    Contained Icon Button

    Propiedad principalPropiedad dependienteDescripción
    $background
    $foregroundIcon color
    $hover antecedentesBackground color on hover
    $focus-antecedentesBackground color on focus
    $focus primer planoIcon color when focused
    $focus-hover-fondoBackground color on focus and hover
    $active-antecedentesBackground color when active
    $hover primer planoColor de iconos al pasar el cursor
    $focus-plano flotanteIcon color when focused and hovered
    $active primer planoIcon color when active
    $shadow colorShadow color on focus
    $focus-color de bordeBorder color on focus
    $disabled antecedentesBackground color when disabled
    $disabled primer planoIcon color when disabled

    Outlined Icon Button

    Propiedad principalPropiedad dependienteDescripción
    $foreground
    $hover primer planoColor de iconos al pasar el cursor
    $focus primer planoIcon color when focused
    $focus-plano flotanteIcon color when focused and hovered
    $active primer planoIcon color when active
    $hover antecedentesBackground color on hover
    $focus-antecedentesBackground color on focus
    $focus-hover-fondoBackground color on focus and hover
    $active-antecedentesBackground color when active
    $border colorBorder color
    $focus-color de bordeBorder color on focus

    Flat Icon Button

    Propiedad principalPropiedad dependienteDescripción
    $foreground
    $hover primer planoIcon color when hovered
    $focus primer planoIcon color when focused
    $focus-plano flotanteIcon color when focused and hovered
    $active primer planoIcon color when active
    $disabled primer planoIcon color when disabled
    $shadow colorThe shadow color of the icon button

    Contained Icon Button

    Propiedad principalPropiedad dependienteDescripción
    $background
    $foregroundIcon color
    $hover antecedentesBackground color on hover
    $focus-antecedentesBackground color on focus
    $focus primer planoIcon color when focused
    $focus-hover-fondoBackground color on focus and hover
    $active-antecedentesBackground color when active
    $hover primer planoColor de iconos al pasar el cursor
    $focus-plano flotanteIcon color when focused and hovered
    $active primer planoIcon color when active
    $shadow colorColor de sombra
    $focus-color de bordeBorder color on focus
    $disabled antecedentesBackground color when disabled
    $disabled primer planoIcon color when disabled

    Outlined Icon Button

    Propiedad principalPropiedad dependienteDescripción
    $foreground
    $hover primer planoColor de iconos al pasar el cursor
    $focus primer planoIcon color when focused
    $focus-plano flotanteIcon color when focused and hovered
    $active primer planoIcon color when active
    $hover antecedentesBackground color on hover
    $focus-antecedentesBackground color on focus
    $focus-hover-fondoBackground color on focus and hover
    $active-antecedentesBackground color when active
    $border colorBorder color
    $focus-color de bordeBorder color on focus
    $shadow colorColor de sombra
    $disabled primer planoIcon color when disabled
    $disabled-color del bordeThe border of the icon button when disabled

    Flat Icon Button

    Propiedad principalPropiedad dependienteDescripción
    $foreground
    $hover primer planoColor de iconos al pasar el cursor
    $focus primer planoIcon color when focused
    $focus-plano flotanteIcon color when focused and hovered
    $active primer planoIcon color when active
    $disabled primer planoIcon color when disabled
    $hover antecedentesBackground color on hover
    $focus-antecedentesBackground color on focus
    $focus-hover-fondoBackground color on focus and hover
    $active-antecedentesBackground color when active
    $focus-color de bordeBorder color on focus

    Contained Icon Button

    Propiedad principalPropiedad dependienteDescripción
    $background
    $foregroundIcon color
    $hover antecedentesBackground color on hover
    $focus-antecedentesBackground color on focus
    $focus primer planoIcon color when focused
    $focus-hover-fondoBackground color on focus and hover
    $active-antecedentesBackground color when active
    $hover primer planoColor de iconos al pasar el cursor
    $focus-plano flotanteIcon color when focused and hovered
    $active primer planoIcon color when active
    $shadow colorColor de sombra
    $focus-color de bordeBorder color on focus
    $disabled antecedentesBackground color when disabled
    $disabled primer planoIcon color when disabled

    Outlined Icon Button

    Propiedad principalPropiedad dependienteDescripción
    $foreground
    $hover primer planoColor de iconos al pasar el cursor
    $focus primer planoIcon color when focused
    $focus-plano flotanteIcon color when focused and hovered
    $active primer planoIcon color when active
    $hover antecedentesBackground color on hover
    $border colorBorder color
    $focus-color de bordeBorder color on focus

    Siguiendo el enfoque más simple, usamos variables CSS para personalizar la apariencia del botón del icono:

    [igxIconButton="contained"] {
      --background: #011627;
      --foreground: #fefefe;
      --hover-foreground: #011627dc;
      --hover-background: #ecaa53;
      --focus-foreground: #011627dc;
      --focus-background: #ecaa53;
      --focus-border-color: #0116276c;
      --active-foreground: #011627dc;
      --active-background: #ecaa53;
    }
    

    Take a look at the icon-button-theme section for a complete list of available parameters for styling any type of icon button.

    You can also choose to style only buttons of a specific type - flat, outlined or contained. To do this, you can use the new type-specific theme functions: flat-icon-button-theme, outlined-icon-button-theme and contained-icon-button-theme

    Here’s an example of using the contained-icon-button-theme function to define a custom theme in SCSS:

    @use "igniteui-angular/theming" as *;
    
    $custom-contained: contained-icon-button-theme(
        $background: #ECAA53,
    );
    

    This will generate a fully themed contained icon button, including appropriate foreground and background colors for its various states like hover, focus, and active.

    Styling with Tailwind

    You can style the icon button using our custom Tailwind utility classes. Make sure to set up Tailwind first.

    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';
    

    The utility file includes both light and dark theme variants.

    • Use light-* classes for the light theme.
    • Use dark-* classes for the dark theme.
    • Append the component name after the prefix, e.g., light-icon-button, dark-icon-button.

    Once applied, these classes enable dynamic theme calculations. From there, you can override the generated CSS variables using arbitrary properties. After the colon, provide any valid CSS color format (HEX, CSS variable, RGB, etc.).

    You can find the full list of properties in the icon-button-theme. The syntax is as follows:

    <button igxIconButton class="!light-icon-button ![--icon-color:#FF4E00]">
      <igx-icon>edit</igx-icon>
    </button>
    
    Note

    The exclamation mark(!) is required to ensure the utility class takes precedence. Tailwind applies styles in layers, and without marking these styles as important, they will get overridden by the component’s default theme.

    At the end your icon buttons should look like this:

    API References

    Additional Resources

    Nuestra comunidad es activa y siempre da la bienvenida a nuevas ideas.