How to Create a Unique Look for the Button Component
In this ThemeBuilder tutorial, you will learn how to create a unique look for the Telerik and Kendo Button component by using ThemeBuilder's component configurations and duplicates. While the article highlights the Button component as an example, the same approach applies to all Kendo and Telerik components exposed in ThemeBuilder.
Understanding Component Variants
In a typical application, developers use different variants of the Button component. For example, they may need primary, secondary, and base buttons that use the theme colors of the design system. Additionally, they may use success, info, warning, and error buttons to indicate status. These are just some of the styling options available for a button; others include size, rounding, and fill mode. A button can also have variations that include text only, text and icon, or icon only.
In projects created with Kendo theme version Q1 2024 or earlier, only the most commonly used combinations of the Button component are available for editing on the canvas.
Starting with Kendo Theme version Q2 2024, ThemeBuilder introduced a new approach called component configurations, initially available only for the Button and TextBox components. With version Q1 2026, the approach is fully adopted for all exposed Kendo and Telerik components.
Using Component Configurations
Component configurations are available in projects based on Kendo Theme version Q1 2026 or later. For earlier versions, if the variants listed on the canvas are insufficient, refer to Duplicating Components.
To create a unique look for the Button using a component configuration, follow these steps:
-
Enable Advanced Edit mode in ThemeBuilder.
-
Hover over the drill-down container of the Button component and select the ... button (more options).
-
Select Add Configuration.
-
In the ADD CONFIGURATION popup:
-
Enter a name for the new component variant, for example,
Primary Large Button Text. -
Select the desired values for the exposed component properties. For the Button component, the available properties are
Size,Rounded,Fill Mode, andTheme Color. You can omit any of the properties. -
Select the component variant from the exposed variants. For the Button component, the available variants are
Text,Icon & Text,Icon Only.
-
-
Select Add Configuration to add the new component variant.
-
Apply advanced customizations to the newly created component variant.
To use the styles applied to the component variant through ThemeBuilder, render it in your application by choosing the same options you used in the component configuration:
<button
kendoButton
size="large"
themeColor="primary"
fillMode="solid"
rounded="medium"
>
Primary Large Button
</button>Duplicating Components
Similar to component configurations, component duplicates enable you to create different variants of the Button component. However, instead of relying on configuration options like theme color or size, they use custom classes. To use component duplicates to create a unique look for the Button component, follow these steps:
-
Enable Advanced Edit in ThemeBuilder.
-
Hover over the drill-down container of the Button component and select the ... button (more options).
-
Select Duplicate.
-
In the DUPLICATE popup:
-
Enter a name for the new component variant, for example,
Error Button. -
Enter a class name, for example,
my-error-button—this becomes the unique selector for the newly created component variant.
-
-
Apply advanced customizations to the newly created component variant.
For projects based on Kendo theme versions Q1 2024 or earlier, make changes to the default top-left templates on the canvas of the component duplicate. This allows you to apply styles by adding a custom class to the component when rendering it, without setting additional configuration options as detailed in Using Component Configurations.
To use the styles applied to the component variant through ThemeBuilder, render it in your application by choosing the class name you used in the creation of the duplicate:
<button kendoButton class="my-error-button">
Error Button
</button>