All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.vaadin.flow.component.charts.themes.LumoLightTheme Maven / Gradle / Ivy

There is a newer version: 24.5.4
Show newest version
/**
 * Copyright 2000-2024 Vaadin Ltd.
 *
 * This program is available under Vaadin Commercial License and Service Terms.
 *
 * See {@literal } for the full
 * license.
 */
package com.vaadin.flow.component.charts.themes;

import com.vaadin.flow.component.charts.model.AbstractDataLabels;
import com.vaadin.flow.component.charts.model.Hover;
import com.vaadin.flow.component.charts.model.States;
import com.vaadin.flow.component.charts.model.style.AxisStyle;
import com.vaadin.flow.component.charts.model.style.Color;
import com.vaadin.flow.component.charts.model.style.FontWeight;
import com.vaadin.flow.component.charts.model.style.SolidColor;
import com.vaadin.flow.component.charts.model.style.Style;
import com.vaadin.flow.component.charts.model.style.Theme;
import com.vaadin.flow.component.charts.model.style.TickIntervalStyle;

/**
 * The default theme for Vaadin Charts. Suitable for use with the Lumo theme for
 * Vaadin.
 */
@SuppressWarnings("serial")
public class LumoLightTheme extends Theme {

    protected static final int BORDER_RADIUS = 4;
    protected final static SolidColor COLOR1 = new SolidColor(90, 194, 247);
    protected final static SolidColor COLOR2 = new SolidColor(22, 118, 243);
    protected final static SolidColor COLOR3 = new SolidColor(255, 125, 148);
    protected final static SolidColor COLOR4 = new SolidColor(197, 22, 78);
    protected final static SolidColor COLOR5 = new SolidColor(21, 193, 93);
    protected final static SolidColor COLOR6 = new SolidColor(14, 129, 81);
    protected final static SolidColor COLOR7 = new SolidColor(193, 142, 210);
    protected final static SolidColor COLOR8 = new SolidColor(146, 51, 179);
    protected final static SolidColor COLOR9 = new SolidColor(253, 162, 83);
    protected final static SolidColor COLOR10 = new SolidColor(226, 73, 50);
    protected final static SolidColor COLOR11 = new SolidColor(127, 176, 83);
    protected final static SolidColor COLOR12 = new SolidColor(187, 168, 91);
    protected final static SolidColor COLOR13 = new SolidColor(36, 121, 129);
    protected final static SolidColor COLOR14 = new SolidColor(150, 57, 112);
    protected final static SolidColor COLOR15 = new SolidColor(75, 86, 168);
    protected final static SolidColor COLOR16 = new SolidColor(154, 89, 61);

    protected final static SolidColor TITLE_COLOR = new SolidColor(25, 36, 52);
    protected final static SolidColor TOOLTIP_TEXT_COLOR = new SolidColor(24,
            39, 57, 0.94);
    protected final static SolidColor TOOLTIP_BACKGROUND_COLOR = new SolidColor(
            255, 255, 255);
    protected final static SolidColor SUBTITLE_COLOR = new SolidColor(27, 43,
            65, 0.72);
    protected final static SolidColor LINE_COLOR = new SolidColor(28, 55, 90,
            0.16);
    protected final static SolidColor TEXT_COLOR = new SolidColor(27, 43, 65,
            0.72);
    protected final static SolidColor GRID_COLOR = new SolidColor(28, 55, 90,
            0.16);
    protected final static SolidColor LABEL_COLOR = new SolidColor(27, 43, 65,
            0.72);

    protected final static SolidColor BGCOLOR = new SolidColor(255, 255, 255);
    protected final static SolidColor BGCOLOR_LIGHT_GRAY = new SolidColor(25,
            59, 103, 0.05);
    protected final static SolidColor TRANSPARENT_COLOR = new SolidColor(255,
            255, 255, 0.0);

    protected final static String DEFAULT_FONT_FAMILIES = "var(--lumo-font-family)";
    protected static final Color LEGEND_TEXT_COLOR = new SolidColor(27, 43, 65,
            0.72);

    public LumoLightTheme() {
        setColors(COLOR1, COLOR2, COLOR3, COLOR4, COLOR5, COLOR6, COLOR7,
                COLOR8, COLOR9, COLOR10, COLOR11, COLOR12, COLOR13, COLOR14,
                COLOR15, COLOR16);
        Style style = new Style();
        style.setFontFamily(DEFAULT_FONT_FAMILIES);
        style.setFontSize("14px");
        getChart().setStyle(style);

        getTitle().setColor(TITLE_COLOR);
        getTitle().setFontSize("26px");
        getTitle().setFontWeight(FontWeight.NORMAL);

        getSubtitle().setColor(SUBTITLE_COLOR);
        getSubtitle().setFontWeight(FontWeight.NORMAL);
        getSubtitle().setFontSize("14px");

        getChart().setClassName("vaadin-chart");
        getChart().setPlotBackgroundColor(TRANSPARENT_COLOR);
        getChart().setPlotBackgroundImage("");
        getChart().setPlotBorderColor(TRANSPARENT_COLOR);
        getChart().setBackgroundColor(BGCOLOR);
        getChart().setPlotBackgroundColor(TRANSPARENT_COLOR);
        getChart().setPlotBorderWidth(0);
        getChart().setBorderRadius(0);
        getChart().setPlotShadow(false);

        setAxisDefaults(getxAxis());

        setAxisDefaults(getyAxis());

        getTooltip().setBackgroundColor(TOOLTIP_BACKGROUND_COLOR);
        getTooltip().setBorderWidth(0);
        getTooltip().setBorderRadius(BORDER_RADIUS);
        getTooltip().getStyle().setColor(TOOLTIP_TEXT_COLOR);

        getLegend().setItemStyle(new Style());
        getLegend().getItemStyle().setColor(LEGEND_TEXT_COLOR);
        getLegend().getItemStyle().setFontWeight(FontWeight.NORMAL);
        getLegend().getItemStyle().setFontSize("14px");
        Style itemHoverStyle = new Style();
        itemHoverStyle.setColor(LEGEND_TEXT_COLOR);
        getLegend().setItemHoverStyle(itemHoverStyle);
        getLegend().setItemHiddenStyle(new Style());
        getLegend().getItemHiddenStyle()
                .setColor(new SolidColor(128, 128, 128));
        getLegend().setBorderRadius(BORDER_RADIUS);
        getLegend().setBorderColor(LINE_COLOR);
        getLegend().setBackgroundColor(new SolidColor(255, 255, 255, 0.9));

        getLabels().setColor(TEXT_COLOR);

        getCredits().setStyle(new Style());
        getCredits().getStyle().setFontSize("14px");
        getCredits().getStyle().setColor(new SolidColor(128, 128, 128));
        getCredits().setText("");
        getCredits().setHref("");

        getyAxis().setMinorTickInterval(TickIntervalStyle.NONE);
        getyAxis().setGridLineColor(LINE_COLOR);
        getyAxis().setGridLineWidth(1);

        getxAxis().setGridLineColor(LINE_COLOR);
        getxAxis().setGridLineWidth(0);

        // Shadows on by default, off in range stuff
        getPlotOptions().getArearange().setShadow(false);
        getPlotOptions().getAreasplinerange().setShadow(false);
        getPlotOptions().getLine().setShadow(false);
        getPlotOptions().getSpline().setShadow(false);
        getPlotOptions().getBar().setShadow(false);
        getPlotOptions().getColumn().setShadow(false);
        getPlotOptions().getArea().setShadow(false);
        getPlotOptions().getPie().setShadow(false);
        getPlotOptions().getWaterfall().setShadow(false);

        getPlotOptions().getPie().setBorderWidth(0);
        getPlotOptions().getColumn().setBorderWidth(0);
        getPlotOptions().getColumn().setPointPadding(0);
        getPlotOptions().getBar().setBorderWidth(0);
        getPlotOptions().getBar().setPointPadding(0);
        getPlotOptions().getPyramid().setBorderWidth(0);
        getPlotOptions().getWaterfall().setBorderWidth(0);

        setDataLabelsDefaults(getPlotOptions().getArearange().getDataLabels());
        setDataLabelsDefaults(
                getPlotOptions().getAreasplinerange().getDataLabels());
        setDataLabelsDefaults(getPlotOptions().getBar().getDataLabels());
        setDataLabelsDefaults(getPlotOptions().getColumn().getDataLabels());
        setDataLabelsDefaults(getPlotOptions().getLine().getDataLabels());
        setDataLabelsDefaults(getPlotOptions().getPie().getDataLabels());
        setDataLabelsDefaults(getPlotOptions().getPyramid().getDataLabels());
        setDataLabelsDefaults(getPlotOptions().getSpline().getDataLabels());
        setDataLabelsDefaults(getPlotOptions().getWaterfall().getDataLabels());

        States states = new States();
        states.setHover(new Hover(false));
        getPlotOptions().getPie().setStates(states);
    }

    protected void setDataLabelsDefaults(AbstractDataLabels labels) {
        labels.setColor(TEXT_COLOR);
        labels.setStyle(new Style());
        labels.getStyle().setFontFamily(DEFAULT_FONT_FAMILIES);
        labels.getStyle().setFontSize("12px");
    }

    protected void setAxisDefaults(AxisStyle style) {
        style.setGridLineColor(GRID_COLOR);
        style.setLineColor(GRID_COLOR);
        style.setLineWidth(0);
        style.setTickWidth(0);
        style.setTickColor(new SolidColor(192, 208, 224));

        style.setAlternateGridColor(new SolidColor(255, 255, 255, 0.0));

        style.getTitle().setColor(TEXT_COLOR);
        style.getTitle().setFontWeight(FontWeight.NORMAL);

        style.getSubtitle().setColor(SUBTITLE_COLOR);
        style.getSubtitle().setFontSize("14px");
        style.getSubtitle().setFontWeight(FontWeight.NORMAL);

        style.getLabels().setFontWeight(FontWeight.NORMAL);
        style.getLabels().setColor(LABEL_COLOR);
        style.getLabels().setFontSize("14px");
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy