All Components

Buttons Overview

The Buttons provide a clickable UI functionality with arbitrary content.

Basic Usage

The following example demonstrates the Button, ButtonGroup, DropDownButton, and SplitButton components in action.

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { ButtonsModule } from '@progress/kendo-angular-buttons';
import { AppComponent } from './app.component';

@NgModule({
    bootstrap:    [AppComponent],
    declarations: [AppComponent],
    imports:      [BrowserModule, BrowserAnimationsModule, ButtonsModule]
})
export class AppModule {}
import { Component } from '@angular/core';

@Component({
    selector: 'my-app',
    styles: ['.example-wrapper,.example-col{ vertical-align: top; }'],
    template: `
        <div class="example-wrapper">
            <div class="example-col">
              <p>Button</p>
              <button kendoButton (click)="onButtonClick()">Default</button>
              <button kendoButton (click)="onButtonClick()" [primary]="true">Primary</button>
              <button kendoButton (click)="onButtonClick()" [disabled]="true">Disabled</button>
            </div>
            <div class="example-col">
              <p>ButtonGroup</p>
              <kendo-buttongroup>
                <button kendoButton [togglable]="true">
                  Option A
                </button>
                <button kendoButton [togglable]="true">
                  Option B
                </button>
                <button kendoButton [togglable]="true">
                  Option C
                </button>
              </kendo-buttongroup>
            </div>
            <div class="example-col">
                <p>DropDownButton</p>
                <kendo-dropdownbutton [data]="dropDownButtonItems" [icon]="'cog'" (itemClick)="onSplitButtonItemClick($event)">User Settings</kendo-dropdownbutton>
            </div>
            <div class="example-col">
                <p>SplitButton</p>
                <kendo-splitbutton [data]="splitButtonItems" [icon]="'paste'" (itemClick)="onSplitButtonItemClick($event)" (buttonClick)="onSplitButtonClick()">Paste</kendo-splitbutton>
            </div>
        </div>
    `
})

export class AppComponent {
    imageUrl: string = 'http://demos.telerik.com/kendo-ui/content/shared/icons/sports/snowboarding.png';

    splitButtonItems: Array<any> = [{
        text: 'Keep Text Only',
        icon: 'paste-plain-text',
        click: () => { console.log('Keep Text Only click handler'); }
    }, {
        text: 'Paste as HTML',
        icon: 'paste-as-html'
    }, {
        text: 'Paste Markdown',
        icon: 'paste-markdown'
    }, {
        text: 'Set Default Paste'
    }];

    dropDownButtonItems: Array<any> = [{
        text: 'My Profile'
    }, {
        text: 'Friend Requests'
    }, {
        text: 'Account Settings'
    }, {
        text: 'Support'
    }, {
        text: 'Log Out'
    }];

    public onSplitButtonClick(dataItem: any): void {
        console.log('Paste');
    }

    public onSplitButtonItemClick(dataItem: any): void {
        if (dataItem) {
            console.log(dataItem.text);
        }
    }

    onButtonClick() {
        console.log('click');
    }
}
import { AppModule } from './app.module';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

Installation

All components that you reference during the installation will be present in the final bundle of your application. To avoid ending up with components you do not actually need, either:

  • Import all Buttons components at once by using the ButtonsModule, or
  • Import a specific Buttons component by adding it as an individual NgModule.

  1. Download and install the package:

    npm install --save @progress/kendo-angular-buttons @progress/kendo-angular-l10n @angular/animations
  2. Once installed, import the NgModule of the components you need.

    To get all package components, import the ButtonsModule in your application root module.

    import { NgModule } from '@angular/core';
       import { BrowserModule } from '@angular/platform-browser';
       import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
       import { ButtonsModule } from '@progress/kendo-angular-buttons';
       import { AppComponent } from './app.component';
    
       @NgModule({
           bootstrap:    [AppComponent],
           declarations: [AppComponent],
           imports:      [BrowserModule, BrowserAnimationsModule, ButtonsModule]
       })
       export class AppModule {
       }

    The package also exports the following modules for individual components:

    • ButtonModule
    • ButtonGroupModule
    • DropDownButtonModule
    • SplitButtonModule

    To reduce the size of your application, include only the modules you need.

    import { NgModule } from '@angular/core';
       import { BrowserModule } from '@angular/platform-browser';
       import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
       import { AppComponent } from './app.component';
    
       // Imports the Button module
       import { ButtonModule } from '@progress/kendo-angular-buttons';
    
       // Imports the ButtonGroup module
       import { ButtonGroupModule } from '@progress/kendo-angular-buttons';
    
       @NgModule({
           bootstrap:    [AppComponent],
           declarations: [AppComponent],
           imports:      [
               BrowserModule, BrowserAnimationsModule,
               ButtonModule, ButtonGroupModule
           ]
       })
       export class AppModule {
       }
  3. You are required to install one of the Kendo UI themes for Angular to style your components. For more information on how to add the styles, refer to the article on getting started.

Dependencies

The Buttons package requires you to install the following peer dependencies in your application:

  • @angular/common
  • @angular/core
  • @progress/kendo-angular-l10n
  • rxjs

The following dependencies are automatically installed:

  • @progress/kendo-angular-popup
  • The version of the @angular/animations module has to be exactly the same as the version of the other @angular modules that are included in your project. To sync the package versions, you might need to run npm update.
  • The Buttons package utilizes the Angular animation system, which supports a specific set of browsers.
In this article