Added themes

All files (that used styles) were refactored to use styles directly so themes can only actually adjust colors
 - Elaborate themes would be super hard to maintain and would certainly break over time
This commit is contained in:
Viktor De Pasquale
2019-11-22 19:29:53 +01:00
parent 42606162b2
commit cc7e47bbb6
49 changed files with 799 additions and 409 deletions
-78
View File
@@ -7,84 +7,6 @@
<attr name="colorControl" format="reference" />
<!--endregion-->
<!--region Widgets-->
<!--Appbar-->
<attr name="styleAppbar" format="reference" />
<!--Toolbar-->
<attr name="styleToolbar" format="reference" />
<!--Card-->
<attr name="styleCardNormal" format="reference" />
<attr name="styleCardVariant" format="reference" />
<attr name="styleCardElevated" format="reference" />
<attr name="styleCardOnPrimary" format="reference" />
<!--Button-->
<attr name="styleButtonDefault" format="reference" />
<attr name="styleButtonDefaultOnPrimary" format="reference" />
<attr name="styleButtonOutlined" format="reference" />
<attr name="styleButtonOutlinedOnPrimary" format="reference" />
<attr name="styleButtonFlat" format="reference" />
<attr name="styleButtonFlatOnPrimary" format="reference" />
<attr name="styleButtonText" format="reference" />
<attr name="styleButtonTextSecondary" format="reference" />
<attr name="styleButtonTextOnPrimary" format="reference" />
<attr name="styleButtonError" format="reference" />
<!--Icon-->
<attr name="styleIconNormal" format="reference" />
<attr name="styleIconPrimary" format="reference" />
<attr name="styleIconOnPrimary" format="reference" />
<attr name="styleIconError" format="reference" />
<!--Image-->
<attr name="styleImageBig" format="reference" />
<attr name="styleImageNormal" format="reference" />
<attr name="styleImageSmall" format="reference" />
<!--Checkbox-->
<attr name="styleCheckboxNormal" format="reference" />
<!--RadioButton-->
<attr name="styleRadioNormal" format="reference" />
<!--Progress-->
<attr name="styleProgressDeterminate" format="reference" />
<attr name="styleProgressIndeterminate" format="reference" />
<attr name="styleProgressIndeterminateCircular" format="reference" />
<!--endregion-->
<!--region Texts-->
<!--Display-->
<attr name="appearanceTextDisplayNormal" format="reference" />
<attr name="appearanceTextDisplayVariant" format="reference" />
<attr name="appearanceTextDisplayOnPrimary" format="reference" />
<attr name="appearanceTextDisplayOnPrimaryVariant" format="reference" />
<!--Title-->
<attr name="appearanceTextTitleNormal" format="reference" />
<attr name="appearanceTextTitleVariant" format="reference" />
<attr name="appearanceTextTitleOnPrimary" format="reference" />
<attr name="appearanceTextTitleOnPrimaryVariant" format="reference" />
<!--Body-->
<attr name="appearanceTextBodyNormal" format="reference" />
<attr name="appearanceTextBodyVariant" format="reference" />
<attr name="appearanceTextBodyOnPrimary" format="reference" />
<attr name="appearanceTextBodyOnPrimaryVariant" format="reference" />
<!--Caption-->
<attr name="appearanceTextCaptionNormal" format="reference" />
<attr name="appearanceTextCaptionVariant" format="reference" />
<attr name="appearanceTextCaptionOnPrimary" format="reference" />
<attr name="appearanceTextCaptionOnPrimaryVariant" format="reference" />
<!--endregion-->
<!--region Colors-->
<!--Static-->
+1
View File
@@ -14,6 +14,7 @@
<string name="section_superuser">@string/superuser</string>
<string name="section_log">@string/log</string>
<string name="section_settings">@string/settings</string>
<string name="section_theme">Themes</string>
<string name="installed_error_md2">is not installed</string>
<string name="channel_error_md2">has invalid update channel!</string>
+1 -78
View File
@@ -25,87 +25,10 @@
<item name="selectableItemBackground">@drawable/bg_selectable</item>
<item name="selectableItemBackgroundBorderless">@drawable/bg_selectable_borderless</item>
<item name="actionBarSize">@dimen/internal_action_bar_size</item>
<item name="styleAppbar">@style/WidgetFoundation.Appbar</item>
<item name="styleToolbar">@style/WidgetFoundation.Toolbar</item>
<item name="styleCardNormal">@style/WidgetFoundation.Card</item>
<item name="styleCardVariant">@style/WidgetFoundation.Card.Variant</item>
<item name="styleCardElevated">@style/WidgetFoundation.Card.Elevated</item>
<item name="styleCardOnPrimary">@style/WidgetFoundation.Card.OnPrimary</item>
<item name="styleButtonDefault">@style/WidgetFoundation.Button</item>
<item name="styleButtonDefaultOnPrimary">@style/WidgetFoundation.Button.OnPrimary</item>
<item name="styleButtonOutlined">@style/WidgetFoundation.Button.Outlined</item>
<item name="styleButtonOutlinedOnPrimary">
@style/WidgetFoundation.Button.Outlined.OnPrimary
</item>
<item name="styleButtonFlat">@style/WidgetFoundation.Button.Flat</item>
<item name="styleButtonFlatOnPrimary">@style/WidgetFoundation.Button.Flat.OnPrimary</item>
<item name="styleButtonText">@style/WidgetFoundation.Button.Text</item>
<item name="styleButtonTextSecondary">@style/WidgetFoundation.Button.Text.Secondary</item>
<item name="styleButtonTextOnPrimary">@style/WidgetFoundation.Button.Text.OnPrimary</item>
<item name="styleButtonError">@style/WidgetFoundation.Button.Error</item>
<item name="styleIconNormal">@style/WidgetFoundation.Icon</item>
<item name="styleIconPrimary">@style/WidgetFoundation.Icon.Primary</item>
<item name="styleIconOnPrimary">@style/WidgetFoundation.Icon.OnPrimary</item>
<item name="styleIconError">@style/WidgetFoundation.Icon.Error</item>
<item name="styleImageBig">@style/WidgetFoundation.Image.Big</item>
<item name="styleImageNormal">@style/WidgetFoundation.Image</item>
<item name="styleImageSmall">@style/WidgetFoundation.Image.Small</item>
<item name="styleCheckboxNormal">@style/WidgetFoundation.Checkbox</item>
<item name="styleRadioNormal">@style/WidgetFoundation.RadioButton</item>
<item name="styleProgressDeterminate">@style/WidgetFoundation.ProgressBar</item>
<item name="styleProgressIndeterminate">
@style/WidgetFoundation.ProgressBar.Indeterminate
</item>
<item name="styleProgressIndeterminateCircular">
@style/WidgetFoundation.ProgressBar.Indeterminate.Circular
</item>
<!--///-->
<item name="appearanceTextDisplayNormal">@style/AppearanceFoundation.Display</item>
<item name="appearanceTextDisplayVariant">@style/AppearanceFoundation.Display.Variant</item>
<item name="appearanceTextDisplayOnPrimary">@style/AppearanceFoundation.Display.OnPrimary
</item>
<item name="appearanceTextDisplayOnPrimaryVariant">
@style/AppearanceFoundation.Display.OnPrimary.Variant
</item>
<item name="appearanceTextTitleNormal">@style/AppearanceFoundation.Title</item>
<item name="appearanceTextTitleVariant">@style/AppearanceFoundation.Title.Variant</item>
<item name="appearanceTextTitleOnPrimary">@style/AppearanceFoundation.Title.OnPrimary</item>
<item name="appearanceTextTitleOnPrimaryVariant">
@style/AppearanceFoundation.Title.OnPrimary.Variant
</item>
<item name="appearanceTextBodyNormal">@style/AppearanceFoundation.Body</item>
<item name="appearanceTextBodyVariant">@style/AppearanceFoundation.Body.Variant</item>
<item name="appearanceTextBodyOnPrimary">@style/AppearanceFoundation.Body.OnPrimary</item>
<item name="appearanceTextBodyOnPrimaryVariant">
@style/AppearanceFoundation.Body.OnPrimary.Variant
</item>
<item name="appearanceTextCaptionNormal">@style/AppearanceFoundation.Caption</item>
<item name="appearanceTextCaptionVariant">@style/AppearanceFoundation.Caption.Variant</item>
<item name="appearanceTextCaptionOnPrimary">@style/AppearanceFoundation.Caption.OnPrimary
</item>
<item name="appearanceTextCaptionOnPrimaryVariant">
@style/AppearanceFoundation.Caption.OnPrimary.Variant
</item>
</style>
<style name="Foundation.Default" parent="Foundation.Base">
<item name="android:theme">@style/ThemeFoundationMD2.Default</item>
<!--setting window background to transparent should reduce overdraw-->
<!--<item name="android:windowBackground">@android:color/transparent</item>-->
<item name="android:windowBackground">?colorSurface</item>
</style>
</resources>
+5 -11
View File
@@ -1,10 +1,4 @@
<?xml version="1.0" encoding="utf-8"?><!--
These widgets are implementation of corresponding attribute. Never and I mean fucking never! use
these directly.
Although it is possible, it wouldn't automatically change the style when theme changes to "night"
variant. Make sure to use style referenced by attribute defined it attrs.xml.
-->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="WidgetFoundation.Appbar" parent="Widget.MaterialComponents.AppBarLayout.Surface">
@@ -13,9 +7,9 @@ variant. Make sure to use style referenced by attribute defined it attrs.xml.
</style>
<style name="WidgetFoundation.Toolbar" parent="Widget.MaterialComponents.Toolbar.Surface">
<item name="titleTextAppearance">?appearanceTextTitleNormal</item>
<item name="titleTextAppearance">@style/AppearanceFoundation.Title</item>
<item name="titleTextColor">?colorOnSurface</item>
<item name="subtitleTextAppearance">?appearanceTextCaptionNormal</item>
<item name="subtitleTextAppearance">@style/AppearanceFoundation.Caption</item>
<item name="subtitleTextColor">?colorOnSurfaceVariant</item>
<item name="android:background">@android:color/transparent</item>
<item name="contentInsetStartWithNavigation">0dp</item>
@@ -154,7 +148,7 @@ variant. Make sure to use style referenced by attribute defined it attrs.xml.
<style name="WidgetFoundation.Checkbox" parent="Widget.AppCompat.CompoundButton.CheckBox">
<item name="android:textColor">?attr/colorOnSurface</item>
<item name="android:textAppearance">?appearanceTextBodyNormal</item>
<item name="android:textAppearance">@style/AppearanceFoundation.Body</item>
<item name="android:paddingStart">@dimen/l1</item>
<item name="android:paddingEnd">@dimen/l1</item>
<item name="tint">?colorPrimary</item>
@@ -163,7 +157,7 @@ variant. Make sure to use style referenced by attribute defined it attrs.xml.
<style name="WidgetFoundation.RadioButton" parent="Widget.AppCompat.CompoundButton.RadioButton">
<item name="android:textColor">?attr/colorOnSurface</item>
<item name="android:textAppearance">?appearanceTextBodyNormal</item>
<item name="android:textAppearance">@style/AppearanceFoundation.Body</item>
<item name="android:paddingStart">@dimen/l1</item>
<item name="android:paddingEnd">@dimen/l1</item>
<item name="tint">?colorPrimary</item>
+2 -2
View File
@@ -10,14 +10,14 @@
<style name="W.Home.Extra.Title">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textAppearance">?appearanceTextCaptionVariant</item>
<item name="android:textAppearance">@style/AppearanceFoundation.Caption.Variant</item>
<item name="android:singleLine">true</item>
</style>
<style name="W.Home.Extra.Value">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textAppearance">?appearanceTextCaptionNormal</item>
<item name="android:textAppearance">@style/AppearanceFoundation.Caption</item>
<item name="android:textStyle">bold</item>
<item name="android:layout_marginStart">@dimen/l_50</item>
<item name="layout_constrainedWidth">true</item>
+63 -16
View File
@@ -9,11 +9,9 @@
## Inheritance
You might want to inherit default values from "base" theme. You can do so implicitly by just
writing `<style name="ThemeFoundationMD2.MySuperAwesomeTheme" parent="ThemeFoundationMD2.Default">`.
writing `<style name="ThemeFoundationMD2.MySuperAwesomeTheme" parent="ThemeFoundationMD2.Piplup">`.
With this approach you can only change values you (don't) like - such as `colorPrimary` or
`colorSecondary`.
There's also an option to define theme completely from ground up and that's done just by
omitting `parent="..."`. It will inherit _nothing_ from the base.
## Day / Night ? How do I define both in one theme?
@@ -22,8 +20,7 @@
on user's requested configuration. (Always light, Always dark, Follow system)
You might choose to define only "Day" theme with Dark colors to have dark theme regardless.
That's super lazy approach and is discouraged but the framework permits it. If not inherited
from default theme, you must define all colors yourself in both day AND night variants.
That's super lazy approach and is discouraged but the framework permits it.
## What to theme
@@ -41,30 +38,80 @@
!! notice. In repeated attempts to push such themes you will be automatically blacklisted.
-->
<style name="ThemeFoundationMD2" parent="" />
<style name="ThemeFoundationMD2" parent="Foundation.Default" />
<!--1st party themes-->
<style name="ThemeFoundationMD2.Default">
<item name="colorPrimary">#2196F3</item>
<item name="colorPrimaryVariant">#802196F3</item>
<item name="colorSecondary">#1766A6</item>
<item name="colorSecondaryVariant">#801766A6</item>
<item name="colorSurface">#F2F2F2</item>
<style name="ThemeFoundationMD2.Piplup">
<item name="colorPrimary">#4EAFF5</item>
<item name="colorPrimaryVariant">#804EAFF5</item>
<item name="colorSecondary">#3E78AF</item>
<item name="colorSecondaryVariant">#803E78AF</item>
<item name="colorSurface">#F9F9F9</item>
<item name="colorSurfaceVariant">#E8E8E8</item>
<item name="colorSurfaceSurfaceVariant">?colorSurface</item>
<item name="colorOnPrimary">#F2F2F2</item>
<item name="colorOnPrimary">#F9F9F9</item>
<item name="colorOnPrimaryVariant">#D9E6E6E6</item>
<item name="colorOnSecondary">#F2F2F2</item>
<item name="colorOnBackground">#F2F2F2</item>
<item name="colorOnSecondary">#F9F9F9</item>
<item name="colorOnBackground">?colorOnSurface</item>
<item name="colorError">#CC0047</item>
<item name="colorOnError">#F2F2F2</item>
<item name="colorOnError">#F9F9F9</item>
<item name="colorOnSurface">#444444</item>
<item name="colorOnSurfaceVariant">#80444444</item>
<item name="colorDisabled">#808080</item>
<item name="colorDisabledVariant">#66808080</item>
</style>
<style name="ThemeFoundationMD2.Amoled" parent="ThemeFoundationMD2.Piplup">
<item name="colorSurface">#FFF</item>
<item name="colorOnPrimary">#FFF</item>
<item name="colorOnSecondary">#FFF</item>
<item name="colorOnBackground">#FFF</item>
<item name="colorOnError">#FFF</item>
</style>
<style name="ThemeFoundationMD2.Rayquaza" parent="ThemeFoundationMD2.Piplup">
<item name="colorPrimary">#68A17F</item>
<item name="colorPrimaryVariant">#8068A17F</item>
<item name="colorSecondary">#2F6D43</item>
<item name="colorSecondaryVariant">#802F6D43</item>
</style>
<style name="ThemeFoundationMD2.Zapdos" parent="ThemeFoundationMD2.Piplup">
<item name="colorPrimary">#FBD179</item>
<item name="colorPrimaryVariant">#80FBD179</item>
<item name="colorSecondary">#B29667</item>
<item name="colorSecondaryVariant">#80B29667</item>
<item name="colorOnPrimary">#000000</item>
<item name="colorOnPrimaryVariant">#D9222222</item>
</style>
<style name="ThemeFoundationMD2.Charmeleon" parent="ThemeFoundationMD2.Piplup">
<item name="colorPrimary">#DB7366</item>
<item name="colorPrimaryVariant">#80DB7366</item>
<item name="colorSecondary">#B65247</item>
<item name="colorSecondaryVariant">#80B65247</item>
<item name="colorOnPrimary">#000000</item>
<item name="colorOnPrimaryVariant">#D9222222</item>
</style>
<style name="ThemeFoundationMD2.Mew" parent="ThemeFoundationMD2.Piplup">
<item name="colorPrimary">#D9ADB7</item>
<item name="colorPrimaryVariant">#80E9BBC5</item>
<item name="colorSecondary">#B5889B</item>
<item name="colorSecondaryVariant">#80B5889B</item>
<item name="colorOnPrimary">#000000</item>
<item name="colorOnPrimaryVariant">#D9222222</item>
</style>
<style name="ThemeFoundationMD2.Salamence" parent="ThemeFoundationMD2.Piplup">
<item name="colorPrimary">#70B2C6</item>
<item name="colorPrimaryVariant">#8070B2C6</item>
<item name="colorSecondary">#C06A75</item>
<item name="colorSecondaryVariant">#80C06A75</item>
<item name="colorOnPrimary">#000000</item>
<item name="colorOnPrimaryVariant">#D9222222</item>
</style>
<!--3rd party themes-->