diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7ad5fa3..912de8f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,7 +40,7 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="false"
- android:theme="@style/Theme.PSX2"
+ android:theme="@style/AppTheme"
tools:targetApi="31">
diff --git a/app/src/main/java/com/izzy2lost/psx2/MainActivity.java b/app/src/main/java/com/izzy2lost/psx2/MainActivity.java
index 709ea82..7babbbd 100644
--- a/app/src/main/java/com/izzy2lost/psx2/MainActivity.java
+++ b/app/src/main/java/com/izzy2lost/psx2/MainActivity.java
@@ -342,7 +342,7 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF
setSurfaceView(new SDLSurface(this));
- // Improve button outline contrast across all MaterialButtons
+ // Ensure consistent ripple across all MaterialButtons
tintAllMaterialButtonOutlines();
// Settings are already applied in Initialize() -> loadAndApplySettings()
@@ -426,29 +426,17 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF
});
}
- // Toggle on-screen controls visibility
+ // Toggle all UI visibility (including controls)
MaterialButton btnToggleControls = findViewById(R.id.btn_toggle_controls);
if (btnToggleControls != null) {
btnToggleControls.setOnClickListener(v -> {
- View llDpad = findViewById(R.id.ll_pad_dpad);
- View llRight = findViewById(R.id.ll_pad_right_buttons);
- View llSelectStart = findViewById(R.id.ll_pad_select_start);
- View llJoy = findViewById(R.id.ll_pad_joy);
-
- boolean currentlyVisible = (llDpad != null && llDpad.getVisibility() == View.VISIBLE);
- setControlsVisible(!currentlyVisible);
+ toggleAllUIVisibility();
});
}
// HUD toggle moved to Settings (Developer section)
- // Hide UI button
- MaterialButton btn_hide_ui = findViewById(R.id.btn_hide_ui);
- if(btn_hide_ui != null) {
- btn_hide_ui.setOnClickListener(v -> {
- toggleAllUIVisibility();
- });
- }
+ // Hide UI button (removed - functionality moved to toggle button)
// Small unhide button (appears when all UI is hidden)
MaterialButton btn_unhide_ui = findViewById(R.id.btn_unhide_ui);
@@ -780,20 +768,27 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF
allUIHidden = !allUIHidden;
int vis = allUIHidden ? View.GONE : View.VISIBLE;
- // Hide/show all UI elements
+ // Hide/show all UI elements except the toggle button itself
View btnSettings = findViewById(R.id.btn_settings);
- View btnToggleControls = findViewById(R.id.btn_toggle_controls);
+ MaterialButton btnToggleControls = findViewById(R.id.btn_toggle_controls);
View btnFile = findViewById(R.id.btn_file);
View btnBios = findViewById(R.id.btn_bios);
View btnSaves = findViewById(R.id.btn_saves);
View btnHideUI = findViewById(R.id.btn_hide_ui);
+ View llQuickActions = findViewById(R.id.ll_quick_actions);
if (btnSettings != null) btnSettings.setVisibility(vis);
- if (btnToggleControls != null) btnToggleControls.setVisibility(vis);
+ // Keep toggle button visible but change its icon
+ if (btnToggleControls != null) {
+ // Change icon based on visibility state
+ int iconRes = allUIHidden ? R.drawable.visibility_24px : R.drawable.visibility_off_24px;
+ btnToggleControls.setIcon(ContextCompat.getDrawable(this, iconRes));
+ }
if (btnFile != null) btnFile.setVisibility(vis);
if (btnBios != null) btnBios.setVisibility(vis);
if (btnSaves != null) btnSaves.setVisibility(vis);
if (btnHideUI != null) btnHideUI.setVisibility(vis);
+ if (llQuickActions != null) llQuickActions.setVisibility(vis);
// Hide/show on-screen controls
if (!allUIHidden) {
@@ -804,68 +799,54 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF
setControlsVisible(false);
}
- // Show a small unhide button when UI is hidden
+ // The unhide button is no longer needed since toggle button stays visible
View unhideButton = findViewById(R.id.btn_unhide_ui);
if (unhideButton != null) {
- unhideButton.setVisibility(allUIHidden ? View.VISIBLE : View.GONE);
+ unhideButton.setVisibility(View.GONE);
}
}
private void tintAllMaterialButtonOutlines() {
- // Brand strokes
- final ColorStateList strokeDefault = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.brand_outline));
- final ColorStateList strokePrimary = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.brand_primary));
- final ColorStateList strokeSecondary = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.brand_secondary));
-
+ // Ripple + specific color tweaks, no strokes (transparent container style)
View root = findViewById(android.R.id.content);
if (root instanceof ViewGroup) {
- traverseAndTintButtons((ViewGroup) root, strokeDefault, strokePrimary, strokeSecondary);
+ traverseAndTintButtons((ViewGroup) root);
}
}
- private void traverseAndTintButtons(ViewGroup group, ColorStateList strokeDefault, ColorStateList strokePrimary, ColorStateList strokeSecondary) {
+ private void traverseAndTintButtons(ViewGroup group) {
for (int i = 0; i < group.getChildCount(); i++) {
View child = group.getChildAt(i);
if (child instanceof ViewGroup) {
- traverseAndTintButtons((ViewGroup) child, strokeDefault, strokePrimary, strokeSecondary);
+ traverseAndTintButtons((ViewGroup) child);
}
if (child instanceof MaterialButton) {
MaterialButton mb = (MaterialButton) child;
// Ensure ripple matches brand globally
mb.setRippleColor(ColorStateList.valueOf(ContextCompat.getColor(this, R.color.brand_ripple)));
int id = mb.getId();
- if (id == R.id.btn_settings || id == R.id.btn_toggle_controls) {
- mb.setStrokeColor(strokePrimary);
- } else if (id == R.id.btn_file || id == R.id.btn_bios || id == R.id.btn_saves || id == R.id.btn_hide_ui) {
- mb.setStrokeColor(strokeSecondary);
- } else if (id == R.id.btn_pad_y) { // Triangle = green
+ if (id == R.id.btn_pad_y) { // Triangle = green
final int base = ContextCompat.getColor(this, R.color.ps2_triangle_green);
ColorStateList stateful = pressedColorStateList(base);
- mb.setStrokeColor(stateful);
mb.setTextColor(stateful);
} else if (id == R.id.btn_pad_b) { // Circle = red
final int base = ContextCompat.getColor(this, R.color.ps2_circle_red);
ColorStateList stateful = pressedColorStateList(base);
- mb.setStrokeColor(stateful);
mb.setTextColor(stateful);
} else if (id == R.id.btn_pad_a) { // Cross = blue
final int base = ContextCompat.getColor(this, R.color.ps2_cross_blue);
ColorStateList stateful = pressedColorStateList(base);
- mb.setStrokeColor(stateful);
mb.setTextColor(stateful);
} else if (id == R.id.btn_pad_x) { // Square = pink
final int base = ContextCompat.getColor(this, R.color.ps2_square_pink);
ColorStateList stateful = pressedColorStateList(base);
- mb.setStrokeColor(stateful);
mb.setTextColor(stateful);
} else if (id == R.id.btn_pad_dir_top || id == R.id.btn_pad_dir_left || id == R.id.btn_pad_dir_right || id == R.id.btn_pad_dir_bottom) {
// D-pad arrow icon tint to brand accent
ColorStateList iconTint = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.brand_accent));
mb.setIconTint(iconTint);
- } else {
- mb.setStrokeColor(strokeDefault);
}
- mb.setStrokeWidth(1);
+ // No stroke; background is transparent per style
}
}
}
diff --git a/app/src/main/res/drawable/settings_24px.xml b/app/src/main/res/drawable/settings_24px.xml
new file mode 100644
index 0000000..4bcd4aa
--- /dev/null
+++ b/app/src/main/res/drawable/settings_24px.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/visibility_24px.xml b/app/src/main/res/drawable/visibility_24px.xml
new file mode 100644
index 0000000..23d640a
--- /dev/null
+++ b/app/src/main/res/drawable/visibility_24px.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/visibility_off_24px.xml b/app/src/main/res/drawable/visibility_off_24px.xml
new file mode 100644
index 0000000..6fa698a
--- /dev/null
+++ b/app/src/main/res/drawable/visibility_off_24px.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout-land/activity_main.xml b/app/src/main/res/layout-land/activity_main.xml
index 313d61a..06434f6 100644
--- a/app/src/main/res/layout-land/activity_main.xml
+++ b/app/src/main/res/layout-land/activity_main.xml
@@ -12,30 +12,45 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
-
+
+
@@ -43,10 +58,9 @@
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
-
@@ -120,7 +123,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
- android:visibility="gone"
+ android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@@ -128,23 +131,21 @@
+ android:textColor="@color/md_theme_onSurface"
+ app:rippleColor="#80cdcdcd" />
+ android:textColor="@color/md_theme_onSurface"
+ app:rippleColor="#80cdcdcd" />
@@ -155,7 +156,7 @@
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
- android:visibility="gone"
+ android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_margin="6dp">
@@ -174,7 +175,7 @@
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
- android:visibility="gone"
+ android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_margin="12dp">
@@ -186,23 +187,23 @@
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
@@ -338,7 +339,7 @@
android:padding="2dp"
android:gravity="center"
android:orientation="vertical"
- android:visibility="gone"
+ android:visibility="visible"
app:layout_constraintBottom_toTopOf="@id/ll_pad_joy"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginBottom="2dp">
@@ -357,7 +358,7 @@
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
-
+
@@ -38,48 +45,53 @@
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
@@ -87,10 +99,9 @@
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
-
@@ -163,7 +167,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
- android:visibility="gone"
+ android:visibility="visible"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@@ -171,23 +175,23 @@
+ android:textColor="@color/md_theme_onSurface"
+ app:rippleColor="#80cdcdcd" />
+ android:textColor="@color/md_theme_onSurface"
+ app:rippleColor="#80cdcdcd" />
@@ -197,7 +201,7 @@
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
- android:visibility="gone"
+ android:visibility="visible"
app:layout_constraintBottom_toTopOf="@id/ll_pad_select_start"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginBottom="8dp">
@@ -209,23 +213,23 @@
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
@@ -359,7 +363,7 @@
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
- android:visibility="gone"
+ android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginBottom="6dp">
@@ -378,7 +382,7 @@
android:padding="2dp"
android:gravity="center"
android:orientation="vertical"
- android:visibility="gone"
+ android:visibility="visible"
app:layout_constraintBottom_toTopOf="@id/ll_pad_joy"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginBottom="0dp">
@@ -397,7 +401,7 @@
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
@@ -38,48 +37,44 @@
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
@@ -87,10 +82,9 @@
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
@@ -219,23 +207,19 @@
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
@@ -380,33 +352,27 @@
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
@@ -417,33 +383,28 @@
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
@@ -454,33 +415,30 @@
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
@@ -504,25 +462,21 @@
+
+ app:rippleColor="#80cdcdcd" />
+
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
+ app:rippleColor="#80cdcdcd" />
diff --git a/app/src/main/res/layout/dialog_covers_grid.xml b/app/src/main/res/layout/dialog_covers_grid.xml
index 500b4c2..0349236 100644
--- a/app/src/main/res/layout/dialog_covers_grid.xml
+++ b/app/src/main/res/layout/dialog_covers_grid.xml
@@ -32,7 +32,7 @@
diff --git a/app/src/main/res/layout/dialog_game_settings.xml b/app/src/main/res/layout/dialog_game_settings.xml
index a5a2569..de3e465 100644
--- a/app/src/main/res/layout/dialog_game_settings.xml
+++ b/app/src/main/res/layout/dialog_game_settings.xml
@@ -137,7 +137,7 @@
diff --git a/app/src/main/res/layout/item_cover.xml b/app/src/main/res/layout/item_cover.xml
index 5f41dd7..6dd0db1 100644
--- a/app/src/main/res/layout/item_cover.xml
+++ b/app/src/main/res/layout/item_cover.xml
@@ -24,7 +24,6 @@
android:ellipsize="end"
android:maxLines="2"
android:gravity="center"
- android:textColor="#FFFFFF"
android:textSize="12sp"
android:layout_marginTop="6dp"
android:paddingLeft="4dp"
diff --git a/app/src/main/res/layout/item_save_slot.xml b/app/src/main/res/layout/item_save_slot.xml
index 1268cc0..e7e2095 100644
--- a/app/src/main/res/layout/item_save_slot.xml
+++ b/app/src/main/res/layout/item_save_slot.xml
@@ -54,7 +54,7 @@
+
+
+ @color/md_theme_primary
+ @color/md_theme_secondary
+ @color/md_theme_outline
+ @color/md_theme_secondary
+
+ #809ECAFF
+
+
+ #B3393F46
+
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
new file mode 100644
index 0000000..3f63578
--- /dev/null
+++ b/app/src/main/res/values-night/colors.xml
@@ -0,0 +1,143 @@
+
+ #9ECAFF
+ #003258
+ #33A1FF
+ #00365E
+ #A9C9F2
+ #0C3253
+ #2A4B6E
+ #9BBBE3
+ #EEB1FF
+ #53006F
+ #CD7DE8
+ #580375
+ #FFB4AB
+ #690005
+ #93000A
+ #FFDAD6
+ #0F1419
+ #DFE2EA
+ #0F1419
+ #DFE2EA
+ #404752
+ #BFC7D4
+ #89919E
+ #404752
+ #000000
+ #DFE2EA
+ #2C3137
+ #0061A3
+ #D1E4FF
+ #001D36
+ #9ECAFF
+ #00497D
+ #D1E4FF
+ #001D36
+ #A9C9F2
+ #28496B
+ #F9D8FF
+ #330045
+ #EEB1FF
+ #6E228A
+ #0F1419
+ #353940
+ #0A0E14
+ #181C22
+ #1C2026
+ #262A30
+ #31353B
+ #C6DEFF
+ #002746
+ #33A1FF
+ #000F20
+ #C6DEFF
+ #002746
+ #7493BA
+ #000000
+ #F7CFFF
+ #420059
+ #CD7DE8
+ #1E002B
+ #FFD2CC
+ #540003
+ #FF5449
+ #000000
+ #0F1419
+ #DFE2EA
+ #0F1419
+ #FFFFFF
+ #404752
+ #D5DDEA
+ #ABB2BF
+ #89919D
+ #000000
+ #DFE2EA
+ #262A30
+ #004A7E
+ #D1E4FF
+ #001225
+ #9ECAFF
+ #003861
+ #D1E4FF
+ #001225
+ #A9C9F2
+ #143859
+ #F9D8FF
+ #220030
+ #EEB1FF
+ #5B0777
+ #0F1419
+ #41454B
+ #04080D
+ #1A1E24
+ #24282E
+ #2F3339
+ #3A3E44
+ #E8F0FF
+ #000000
+ #96C6FF
+ #000C1B
+ #E8F0FF
+ #000000
+ #A5C5EE
+ #000C1B
+ #FEEAFF
+ #000000
+ #ECABFF
+ #190024
+ #FFECE9
+ #000000
+ #FFAEA4
+ #220001
+ #0F1419
+ #DFE2EA
+ #0F1419
+ #FFFFFF
+ #404752
+ #FFFFFF
+ #E9F0FE
+ #BBC3D0
+ #000000
+ #DFE2EA
+ #000000
+ #004A7E
+ #D1E4FF
+ #000000
+ #9ECAFF
+ #001225
+ #D1E4FF
+ #000000
+ #A9C9F2
+ #001225
+ #F9D8FF
+ #000000
+ #EEB1FF
+ #220030
+ #0F1419
+ #4C5057
+ #000000
+ #1C2026
+ #2C3137
+ #383C42
+ #43474D
+
diff --git a/app/src/main/res/values-night/theme_overlays.xml b/app/src/main/res/values-night/theme_overlays.xml
new file mode 100644
index 0000000..02adac7
--- /dev/null
+++ b/app/src/main/res/values-night/theme_overlays.xml
@@ -0,0 +1,98 @@
+
+
+
+
diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml
index fa51bf4..7402b0a 100644
--- a/app/src/main/res/values-night/themes.xml
+++ b/app/src/main/res/values-night/themes.xml
@@ -1,26 +1,52 @@
-
-
-
-
-
-
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values/brand_aliases.xml b/app/src/main/res/values/brand_aliases.xml
new file mode 100644
index 0000000..69606cf
--- /dev/null
+++ b/app/src/main/res/values/brand_aliases.xml
@@ -0,0 +1,19 @@
+
+
+
+ @color/md_theme_primary
+ @color/md_theme_secondary
+ @color/md_theme_outline
+ @color/md_theme_secondary
+
+ #800061A3
+
+
+ #B31C2026
+
+
+ #00D000
+ #FF3030
+ #4080FF
+ #FF80C0
+
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 78b6cb4..430b364 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -1,23 +1,143 @@
-
- #FFBB86FC
- #FF6200EE
- #FF3700B3
- #FF03DAC5
- #FF018786
- #FF000000
- #FFFFFFFF
-
-
- #33A1FF
- #7C52FF
- #66CCFF
- #8F61FF
- #8033A1FF
-
-
- #00D000
- #FF3030
- #4080FF
- #FF80C0
-
\ No newline at end of file
+ #0061A3
+ #FFFFFF
+ #33A1FF
+ #00365E
+ #416184
+ #FFFFFF
+ #B4D4FE
+ #3C5C7F
+ #883DA4
+ #FFFFFF
+ #CD7DE8
+ #580375
+ #BA1A1A
+ #FFFFFF
+ #FFDAD6
+ #93000A
+ #F8F9FF
+ #181C22
+ #F8F9FF
+ #181C22
+ #DBE3F0
+ #404752
+ #707883
+ #BFC7D4
+ #000000
+ #2C3137
+ #EEF1F9
+ #9ECAFF
+ #D1E4FF
+ #001D36
+ #9ECAFF
+ #00497D
+ #D1E4FF
+ #001D36
+ #A9C9F2
+ #28496B
+ #F9D8FF
+ #330045
+ #EEB1FF
+ #6E228A
+ #D7DAE2
+ #F8F9FF
+ #FFFFFF
+ #F0F3FC
+ #EBEEF6
+ #E5E8F0
+ #DFE2EA
+ #003861
+ #FFFFFF
+ #0070BB
+ #FFFFFF
+ #143859
+ #FFFFFF
+ #506F94
+ #FFFFFF
+ #5B0777
+ #FFFFFF
+ #994DB4
+ #FFFFFF
+ #740006
+ #FFFFFF
+ #CF2C27
+ #FFFFFF
+ #F8F9FF
+ #181C22
+ #F8F9FF
+ #0D1117
+ #DBE3F0
+ #2F3741
+ #4B535E
+ #666E79
+ #000000
+ #2C3137
+ #EEF1F9
+ #9ECAFF
+ #0070BB
+ #FFFFFF
+ #005794
+ #FFFFFF
+ #506F94
+ #FFFFFF
+ #37577A
+ #FFFFFF
+ #994DB4
+ #FFFFFF
+ #7D3299
+ #FFFFFF
+ #C3C6CE
+ #F8F9FF
+ #FFFFFF
+ #F0F3FC
+ #E5E8F0
+ #DADDE5
+ #CED2D9
+ #002E51
+ #FFFFFF
+ #004B80
+ #FFFFFF
+ #052E4F
+ #FFFFFF
+ #2A4B6E
+ #FFFFFF
+ #4C0066
+ #FFFFFF
+ #70258C
+ #FFFFFF
+ #600004
+ #FFFFFF
+ #98000A
+ #FFFFFF
+ #F8F9FF
+ #181C22
+ #F8F9FF
+ #000000
+ #DBE3F0
+ #000000
+ #252D37
+ #424A55
+ #000000
+ #2C3137
+ #FFFFFF
+ #9ECAFF
+ #004B80
+ #FFFFFF
+ #00345C
+ #FFFFFF
+ #2A4B6E
+ #FFFFFF
+ #0F3456
+ #FFFFFF
+ #70258C
+ #FFFFFF
+ #570074
+ #FFFFFF
+ #B5B9C1
+ #F8F9FF
+ #FFFFFF
+ #EEF1F9
+ #DFE2EA
+ #D1D4DC
+ #C3C6CE
+
diff --git a/app/src/main/res/values/colors_base.xml b/app/src/main/res/values/colors_base.xml
new file mode 100644
index 0000000..d035627
--- /dev/null
+++ b/app/src/main/res/values/colors_base.xml
@@ -0,0 +1,5 @@
+
+
+ #FFFFFFFF
+ #FF000000
+
diff --git a/app/src/main/res/values/styles_buttons.xml b/app/src/main/res/values/styles_buttons.xml
new file mode 100644
index 0000000..859c94e
--- /dev/null
+++ b/app/src/main/res/values/styles_buttons.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/theme_overlays.xml b/app/src/main/res/values/theme_overlays.xml
new file mode 100644
index 0000000..e81f18f
--- /dev/null
+++ b/app/src/main/res/values/theme_overlays.xml
@@ -0,0 +1,98 @@
+
+
+
+
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 868e007..ee05449 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -1,22 +1,52 @@
-
-
-
-
-