Skip to content
Version:

Install

Maven

xml
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-button-flow</artifactId>
</dependency>

Import

java
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.button.ButtonVariant;

Variants

Primary

java
Button button = new Button("Primary", e -> System.out.println("Button clicked"));
button.addThemeVariants(ButtonVariant.LUMO_PRIMARY);

Secondary

java
Button button = new Button("Secondary");

Tertiary

java
Button button = new Button("Tertiary");
button.addThemeVariants(ButtonVariant.LUMO_TERTIARY);

Success

java
Button button = new Button("Tertiary");
button.addThemeVariants(ButtonVariant.LUMO_SUCCESS);

Error / Danger

java
Button button = new Button("Tertiary");
button.addThemeVariants(ButtonVariant.LUMO_ERROR);

Disabled

java
Button button = new Button("Tertiary");
button.setEnabled(false);

Icon

See icon for an explanation of how to install the icon component and symbols. Alternatively use span.

java
Button button = new Button(new Icon(MaterialSymbol.SymbolAdd, "add aria label"));

WARNING

Warning: Do not use aria labels on icon and button at the same time, as they both will be read out!. Same goes for grid cells, when they contain actions.

Prefix Icon

java
Button button = new Button("Backward");
button.setIcon(new Icon(MaterialSymbol.SymbolChevronLeft));

Suffix Icon

java
Button button = new Button("Forward");
button.setIcon(new Icon(MaterialSymbol.SymbolChevronRight));
button.setIconAfterText(true);

Icon unstyled

java
Button button = new Button(new Icon(MaterialSymbol.SymbolAdd));
button.addThemeNames(ButtonVariant.LUMO_ICON.getVariantName(), "unstyled");