Skip to content

Commit

Permalink
Add material theme support to Flow.
Browse files Browse the repository at this point in the history
  • Loading branch information
Kirill Bulatov committed Jun 25, 2018
1 parent fb5595a commit b7bba7f
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 0 deletions.
24 changes: 24 additions & 0 deletions flow-theme-integrations/material/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.vaadin</groupId>
<artifactId>flow-theme-integrations</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>

<artifactId>vaadin-material-theme</artifactId>
<name>Material theme for Flow</name>
<description>Package with Material dependencies and setting for use with Flow
</description>
<packaging>jar</packaging>

<dependencies>
<dependency>
<groupId>org.webjars.bowergithub.vaadin</groupId>
<artifactId>vaadin-material-styles</artifactId>
<version>0.4.0</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.vaadin.flow.theme.material;

import java.util.Collections;
import java.util.List;
import java.util.Map;

import org.slf4j.LoggerFactory;

import com.vaadin.flow.theme.AbstractTheme;

public class Material implements AbstractTheme {
public static final String LIGHT = "light";
public static final String DARK = "dark";

@Override
public String getBaseUrl() {
return "src/";
}

@Override
public String getThemeUrl() {
return "theme/material/";
}

@Override
public List<String> getHeaderInlineContents() {
return Collections.singletonList("<custom-style>\n"
+ " <style include=\"material-color-light material-typography\"></style>\n"
+ "</custom-style>");
}

@Override
public Map<String, String> getBodyAttributes(String variant) {
switch (variant) {
case LIGHT:
return Collections.singletonMap("theme", LIGHT);
case DARK:
return Collections.singletonMap("theme", DARK);
default:
if (!variant.isEmpty()) {
LoggerFactory.getLogger(getClass().getName()).warn(
"Material theme variant not recognized: '{0}'. Using no variant.",
variant);
}
return Collections.emptyMap();
}
}
}
1 change: 1 addition & 0 deletions flow-theme-integrations/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

<modules>
<module>lumo</module>
<module>material</module>
</modules>

<dependencies>
Expand Down

0 comments on commit b7bba7f

Please sign in to comment.