New to Kendo UI for AngularStart a free 30-day trial

Change the Default Icons

Updated on Aug 5, 2026

Applications often require using custom icons to align with a design system, branding requirements, or an existing icon set.

Kendo UI for Angular lets you override default icons at different scopes by providing a custom icon service. Choose the scope that matches the level of customization you need.

Override scopeWhen to useExample
Per applicationApply the same icon customization across all Kendo UI components at the application level.Replace the default Kendo filter icon with a custom filter icon across the entire application.
Per component typeCustomize icons for a component type while leaving all other components unchanged.Replace the filter icon in every Grid while keeping the default filter icon in all other components.
Single iconCustomize single icons for a specific component instance without affecting any others.Replace the expand/collapse icons in a specific Grid instance.

Prerequisites

Providing a custom IconSettingsService is the first step in overriding default icons.

The scope of the override depends on where you provide the service in the Angular dependency injection hierarchy - at the application level or within a component injector.

ts
// main.ts
bootstrapApplication(AppComponent, {
    providers: [
        { provide: ICON_SETTINGS, useValue: { type: 'svg' } }, // or 'font'
        { provide: IconSettingsService, useClass: MyIconService },
    ],
});

Override Icons Per Application

You can override default icons for all Kendo UI components that use the application-level icon service. This is the most common scenario when integrating a design system, using a third-party icon library, or applying a company-wide icon set.

Extend IconSettingsService and override getSvgIcon to return icons from your library. Call super for unmapped icons. Browse the SVGIcon List to find the key of the icon you want to override.

ts
import * as allSVGIcons from '@progress/kendo-svg-icons';

const ICON_MAP: Record<string, SVGIcon> = {
    'chevron-down': allSVGIcons.minusIcon,
    'chevron-up': allSVGIcons.plusIcon,
};

Click the swap icon button in the demo below to see the default component icons replaced with other icons from the Kendo SVG icon library.

Change Theme
Theme
Loading ...

Extend IconSettingsService and override getCustomFontIconClass to return CSS class strings from your font library. Call super for unmapped icons. Browse the Font Icon List to find the key of the icon you want to override.

ts
const ICON_MAP: Record<string, string> = {
    'x': 'fa-solid fa-xmark',
    'search': 'fa-solid fa-magnifying-glass',
};

Click Swap Icons in the demo below to toggle between the default Kendo font icons and the custom overrides across the Chat, Grid, and TreeList.

Change Theme
Theme
Loading ...

Override Icons per Component Type

You can override icons for all instances of one Kendo UI component while keeping the default icons in other components unchanged. This is useful when you want to customize a specific component icons without affecting other components that use the same icons.

Extend IconSettingsService and override getSvgIcon to return a different icon for a specific component type. Call super for unmapped icons. Browse the SVGIcon List to find the key of the icon you want to override.

ts
import * as allSVGIcons from '@progress/kendo-svg-icons';

const COMPONENT_ICON_MAP = {
    grid: {
        'chevron-down': allSVGIcons.minusIcon,
        'chevron-up': allSVGIcons.plusIcon,
    },
};

The following example overrides the Grid icons only leaving the same in the TreeList unchanged.

Change Theme
Theme
Loading ...

Extend IconSettingsService and override getCustomFontIconClass to return a different font icon class for a specific component type. Browse the Font Icon List to find the key of the icon you want to override.

ts
const COMPONENT_ICON_MAP: Record<string, Record<string, string>> = {
    grid: {
        'chevron-down': 'k-icon k-font-icon k-i-minus',
        'sort-asc-small': 'k-icon k-font-icon k-i-sort-asc-sm',
        // ...
    },
};

The following example overrides the Grid icons only. Click Swap Grid Icons to toggle the overrides on and off — the TreeList retains the default icons at all times.

Change Theme
Theme
Loading ...

Override Specific Icons with CSS

You can override specific icons for a single component instance without affecting any other component in the same view. Use this approach for isolated customizations where an application-level or component-type override would be too broad.

To replace a specific SVG icon create a CSS rule that scopes the icon selector to your custom class and set the content property to a data URI containing your custom SVG markup.

Ensure your SVG includes the xmlns attribute and style="pointer-events: none;" for proper rendering and interaction.

css
thead tr th:nth-child(1) .k-svg-i-sort-asc-small.k-svg-icon {
    content: url('data:image/svg+xml; utf8, <svg xmlns="http://..."><path d="..."></path></svg>');
}

The following example demonstrates how to override sort icons per column type in a single Grid instance — string columns use A-Z/Z-A icons, the number column uses 0-1/1-0 icons, and the Type column retains the default sort icon.

Change Theme
Theme
Loading ...

To replace a specific font icon create a CSS rule that targets the ::before pseudo-element of that specific class and set the content property to the Unicode glyph code. Scope the selector to a specific column using :nth-child() to limit the override to that column only. For Kendo Icons you can check the glyph codes in the icons list.

css
kendo-grid thead tr th:nth-child(1) .k-i-sort-asc-small::before {
    content: '\\e41d'; /* arrow-up-a-z */
    font-family: 'WebComponentsIcons';
}

The following example demonstrates how to override sort icons per column type in a single Grid instance — string columns use A-Z/Z-A icons, the number column uses 0-1/1-0 icons, and the Type column retains the default sort icon.

Change Theme
Theme
Loading ...