style: implement Eden theme

This commit is contained in:
Producdevity 2025-07-27 13:13:26 +02:00
parent 716e30e204
commit fcd1b0ecc5
40 changed files with 905 additions and 345 deletions

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@color/eden_background" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<gradient
android:angle="135"
android:centerColor="@color/eden_transparent"
android:centerX="0.5"
android:centerY="0.5"
android:endColor="@color/eden_primary_transparent"
android:gradientRadius="100%"
android:startColor="@color/eden_secondary_transparent"
android:type="radial" />
</shape>
</item>
</layer-list>

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<gradient
android:angle="135"
android:startColor="@color/eden_primary_variant"
android:endColor="@color/eden_accent_purple"
android:type="linear" />
<corners android:radius="12dp" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<gradient
android:angle="135"
android:startColor="@color/eden_primary"
android:endColor="@color/eden_primary_variant"
android:type="linear" />
<corners android:radius="12dp" />
</shape>
</item>
</selector>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/eden_card_background" />
<corners android:radius="16dp" />
<stroke
android:width="1dp"
android:color="@color/eden_border" />
</shape>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/eden_card_background_elevated" />
<corners android:radius="16dp" />
<stroke
android:width="1dp"
android:color="@color/eden_border_light" />
</shape>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Pressed state with gradient border -->
<item android:state_pressed="true" android:drawable="@drawable/eden_gradient_border" />
<!-- Selected state with gradient border -->
<item android:state_selected="true" android:drawable="@drawable/eden_gradient_border" />
<!-- Focused state with gradient border -->
<item android:state_focused="true" android:drawable="@drawable/eden_gradient_border" />
<!-- Default state with elevated background -->
<item android:drawable="@drawable/eden_card_elevated_background" />
</selector>

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<gradient
android:angle="45"
android:startColor="@color/eden_border_gradient_start"
android:endColor="@color/eden_border_gradient_end"
android:type="linear" />
<corners android:radius="24dp" />
</shape>
</item>
<item
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/eden_card_background" />
<corners android:radius="23dp" />
</shape>
</item>
</layer-list>

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<gradient
android:angle="45"
android:startColor="@color/eden_border_gradient_start"
android:endColor="@color/eden_border_gradient_end"
android:type="linear" />
<corners android:radius="16dp" />
</shape>
</item>
<item
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp">
<shape android:shape="rectangle">
<solid android:color="@color/eden_card_background" />
<corners android:radius="14dp" />
</shape>
</item>
</layer-list>

View file

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Pressed state with gradient highlight -->
<item android:state_pressed="true">
<layer-list>
<item>
<shape android:shape="rectangle">
<gradient
android:angle="45"
android:startColor="@color/eden_border_gradient_start"
android:endColor="@color/eden_border_gradient_end"
android:type="linear" />
<corners android:radius="12dp" />
</shape>
</item>
<item
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/eden_card_background" />
<corners android:radius="11dp" />
</shape>
</item>
</layer-list>
</item>
<!-- Selected/focused state -->
<item android:state_selected="true">
<layer-list>
<item>
<shape android:shape="rectangle">
<gradient
android:angle="45"
android:startColor="@color/eden_border_gradient_start"
android:endColor="@color/eden_border_gradient_end"
android:type="linear" />
<corners android:radius="12dp" />
</shape>
</item>
<item
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/eden_card_background" />
<corners android:radius="11dp" />
</shape>
</item>
</layer-list>
</item>
<!-- Default state -->
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent" />
</shape>
</item>
</selector>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="?attr/colorSurface" />
<corners android:radius="8dp" />
<stroke
android:width="1dp"
android:color="?attr/colorOutline" />
</shape>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="?attr/colorSurface" />
<corners android:radius="16dp" />
<stroke
android:width="1dp"
android:color="?attr/colorOutline" />
</shape>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="?attr/colorSurface" />
<corners android:radius="24dp" />
</shape>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Pressed state -->
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="?attr/colorSurfaceVariant" />
<corners android:radius="12dp" />
</shape>
</item>
<!-- Selected/focused state -->
<item android:state_selected="true">
<shape android:shape="rectangle">
<solid android:color="?attr/colorSurfaceVariant" />
<corners android:radius="12dp" />
</shape>
</item>
<!-- Default state -->
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent" />
</shape>
</item>
</selector>

View file

@ -1,27 +1,30 @@
<com.google.android.material.card.MaterialCardView
<org.yuzu.yuzu_emu.views.GradientBorderCardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_game_carousel"
android:layout_width="wrap_content"
android:layout_height="match_parent"
app:cardCornerRadius="8dp"
app:cardElevation="4dp"
app:cardCornerRadius="16dp"
app:cardElevation="0dp"
app:cardPreventCornerOverlap="true"
android:clipChildren="true"
android:layout_margin="0dp"
app:strokeColor="@android:color/transparent"
app:strokeWidth="0dp"
android:alpha="0">
app:cardBackgroundColor="@color/eden_card_background"
app:strokeWidth="1dp"
app:strokeColor="@color/eden_border">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="4dp">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/image_game_screen"
android:layout_width="0dp"
android:layout_height="0dp"
android:scaleType="centerCrop"
android:contentDescription="@string/game_image_desc"
app:shapeAppearanceOverlay="@style/ShapeAppearance.Eden.CarouselImage"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@ -43,4 +46,4 @@
android:text="Game Title" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</org.yuzu.yuzu_emu.views.GradientBorderCardView>

View file

@ -4,7 +4,6 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorSurface"
android:clipChildren="false"
>
@ -44,7 +43,10 @@
style="?attr/materialCardViewFilledStyle"
android:layout_width="match_parent"
android:layout_height="48dp"
app:cardCornerRadius="21dp"
app:cardCornerRadius="24dp"
app:cardBackgroundColor="?attr/colorSurfaceVariant"
app:strokeColor="?attr/colorOutline"
app:strokeWidth="1dp"
>
<LinearLayout
@ -100,6 +102,9 @@
android:layout_width="42dp"
android:layout_height="42dp"
app:cardCornerRadius="21dp"
app:cardBackgroundColor="@color/eden_surface_variant"
app:strokeColor="@color/eden_border"
app:strokeWidth="1dp"
>
<ImageView
@ -123,6 +128,9 @@
android:layout_width="42dp"
android:layout_height="42dp"
app:cardCornerRadius="21dp"
app:cardBackgroundColor="@color/eden_surface_variant"
app:strokeColor="@color/eden_border"
app:strokeWidth="1dp"
>
<ImageView
@ -146,6 +154,9 @@
android:layout_width="42dp"
android:layout_height="42dp"
app:cardCornerRadius="21dp"
app:cardBackgroundColor="@color/eden_surface_variant"
app:strokeColor="@color/eden_border"
app:strokeWidth="1dp"
>
<ImageView
@ -210,9 +221,9 @@
app:icon="@drawable/ic_cartridge_outline"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:textColor="?attr/colorOnPrimaryContainer"
app:backgroundTint="?attr/colorPrimaryContainer"
app:iconTint="?attr/colorOnPrimaryContainer"
android:textColor="?attr/colorOnPrimary"
app:backgroundTint="?attr/colorPrimary"
app:iconTint="?attr/colorOnPrimary"
/>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -6,7 +6,7 @@
android:id="@+id/coordinator_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorSurface">
android:background="@drawable/eden_background_gradient">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragment_container"

View file

@ -5,14 +5,16 @@
android:id="@+id/coordinator_about"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorSurface">
>
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar_about"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:touchscreenBlocksFocus="false">
android:touchscreenBlocksFocus="false"
android:background="@android:color/transparent"
app:elevation="0dp">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar_about"
@ -37,193 +39,206 @@
android:id="@+id/content_about"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
android:orientation="horizontal"
android:padding="24dp">
<ImageView
android:id="@+id/image_logo"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center_horizontal"
android:padding="20dp"
android:layout_gravity="center_vertical"
android:layout_marginEnd="32dp"
android:src="@drawable/ic_yuzu_title" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="16dp">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
app:cardCornerRadius="16dp"
app:cardBackgroundColor="?attr/colorSurface"
app:strokeColor="?attr/colorOutline"
app:strokeWidth="1dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:text="@string/about"
android:textAlignment="viewStart" />
android:orientation="vertical"
android:paddingHorizontal="24dp"
android:paddingVertical="20dp">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="6dp"
android:text="@string/about_app_description"
android:textAlignment="viewStart" />
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/about"
android:textAlignment="viewStart" />
</LinearLayout>
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/about_app_description"
android:textAlignment="viewStart" />
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
<com.google.android.material.card.MaterialCardView
android:id="@+id/button_contributors"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="16dp">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_marginTop="12dp"
android:clickable="true"
android:focusable="true"
app:cardCornerRadius="16dp"
app:cardBackgroundColor="?attr/colorSurface"
app:strokeColor="?attr/colorOutline"
app:strokeWidth="1dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:text="@string/contributors"
android:textAlignment="viewStart" />
android:orientation="vertical"
android:paddingHorizontal="24dp"
android:paddingVertical="20dp">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="6dp"
android:text="@string/contributors_description"
android:textAlignment="viewStart" />
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/contributors"
android:textAlignment="viewStart" />
</LinearLayout>
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/contributors_description"
android:textAlignment="viewStart" />
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
<com.google.android.material.card.MaterialCardView
android:id="@+id/button_licenses"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="16dp">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_marginTop="12dp"
android:clickable="true"
android:focusable="true"
app:cardCornerRadius="16dp"
app:cardBackgroundColor="?attr/colorSurface"
app:strokeColor="?attr/colorOutline"
app:strokeWidth="1dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:text="@string/licenses"
android:textAlignment="viewStart" />
android:orientation="vertical"
android:paddingHorizontal="24dp"
android:paddingVertical="20dp">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="6dp"
android:text="@string/licenses_description"
android:textAlignment="viewStart" />
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/licenses"
android:textAlignment="viewStart" />
</LinearLayout>
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/licenses_description"
android:textAlignment="viewStart" />
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
<com.google.android.material.card.MaterialCardView
android:id="@+id/button_version_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="16dp">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_marginTop="12dp"
android:clickable="true"
android:focusable="true"
app:cardCornerRadius="16dp"
app:cardBackgroundColor="?attr/colorSurface"
app:strokeColor="?attr/colorOutline"
app:strokeWidth="1dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:text="@string/build"
android:textAlignment="viewStart" />
android:orientation="vertical"
android:paddingHorizontal="24dp"
android:paddingVertical="20dp">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_version_name"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="6dp"
android:textAlignment="viewStart"
tools:text="abc123" />
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/build"
android:textAlignment="viewStart" />
</LinearLayout>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_version_name"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:textAlignment="viewStart"
tools:text="abc123" />
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="40dp"
android:layout_marginTop="12dp"
android:layout_marginBottom="16dp"
android:gravity="center_horizontal"
android:layout_marginTop="24dp"
android:gravity="start"
android:orientation="horizontal">
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/button_discord"
style="?attr/materialIconButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
style="@style/EdenButton.Secondary"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_marginEnd="12dp"
app:icon="@drawable/ic_discord"
app:iconGravity="textEnd"
app:iconGravity="textStart"
app:iconSize="24dp"
app:iconTint="?attr/colorOnSurface" />
app:iconPadding="0dp" />
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/button_website"
style="?attr/materialIconButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
style="@style/EdenButton.Secondary"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_marginEnd="12dp"
app:icon="@drawable/ic_website"
app:iconGravity="textEnd"
app:iconGravity="textStart"
app:iconSize="24dp"
app:iconTint="?attr/colorOnSurface" />
app:iconPadding="0dp" />
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/button_github"
style="?attr/materialIconButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
style="@style/EdenButton.Secondary"
android:layout_width="56dp"
android:layout_height="56dp"
app:icon="@drawable/ic_github"
app:iconGravity="textEnd"
app:iconGravity="textStart"
app:iconSize="24dp"
app:iconTint="?attr/colorOnSurface" />
app:iconPadding="0dp" />
</LinearLayout>
@ -233,4 +248,4 @@
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View file

@ -23,7 +23,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/button_next"
style="@style/Widget.Material3.Button.TextButton"
style="@style/EdenButton.Primary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/next"
@ -33,7 +33,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/button_back"
style="@style/Widget.Material3.Button.TextButton"
style="@style/EdenButton.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/back"

View file

@ -78,6 +78,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/button_action"
style="@style/EdenButton.Primary"
android:layout_width="wrap_content"
android:layout_height="56dp"
android:layout_marginTop="16dp"

View file

@ -6,7 +6,7 @@
android:id="@+id/coordinator_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorSurface">
android:background="?android:attr/colorBackground">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragment_container"

View file

@ -2,7 +2,7 @@
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
style="?attr/materialCardViewOutlinedStyle"
style="@style/EdenCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"

View file

@ -1,26 +1,30 @@
<com.google.android.material.card.MaterialCardView
<org.yuzu.yuzu_emu.views.GradientBorderCardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_game_carousel"
app:cardElevation="0dp"
app:cardBackgroundColor="@color/eden_card_background"
app:strokeWidth="1dp"
app:strokeColor="@color/eden_border"
android:layout_width="wrap_content"
android:layout_height="match_parent"
app:cardCornerRadius="8dp"
app:cardElevation="4dp"
android:layout_margin="4dp"
app:strokeColor="@android:color/transparent"
app:strokeWidth="0dp">
app:cardCornerRadius="16dp"
app:cardPreventCornerOverlap="true"
android:clipChildren="true"
android:layout_margin="4dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/image_game_screen"
android:layout_width="0dp"
android:layout_height="0dp"
android:scaleType="centerCrop"
android:contentDescription="@string/game_image_desc"
app:shapeAppearanceOverlay="@style/ShapeAppearance.Eden.CarouselImage"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@ -29,12 +33,14 @@
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_game_title"
style="@style/TextAppearance.Material3.TitleMedium"
style="@style/SynthwaveText.Body"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:requiresFadingEdge="horizontal"
android:textAlignment="center"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintTop_toBottomOf="@+id/image_game_screen"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@ -42,4 +48,4 @@
android:text="Game Title" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</org.yuzu.yuzu_emu.views.GradientBorderCardView>

View file

@ -3,22 +3,24 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false">
<com.google.android.material.card.MaterialCardView
<org.yuzu.yuzu_emu.views.GradientBorderCardView
android:id="@+id/card_game_grid"
style="?attr/materialCardViewElevatedStyle"
app:cardElevation="0dp"
app:cardBackgroundColor="@color/eden_card_background"
app:strokeWidth="1dp"
app:strokeColor="@color/eden_border"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:clipToPadding="true"
android:focusable="true"
android:transitionName="card_game"
app:cardCornerRadius="4dp"
app:cardBackgroundColor="@android:color/transparent"
app:cardElevation="0dp">
app:cardCornerRadius="16dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
@ -33,17 +35,19 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"
android:scaleType="centerCrop"
tools:src="@drawable/default_icon" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_game_title"
style="@style/TextAppearance.Material3.TitleMedium"
style="@style/SynthwaveText.Body"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:requiresFadingEdge="horizontal"
android:textAlignment="center"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="@+id/image_game_screen"
app:layout_constraintStart_toStartOf="@+id/image_game_screen"
app:layout_constraintTop_toBottomOf="@+id/image_game_screen"
@ -51,6 +55,6 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</org.yuzu.yuzu_emu.views.GradientBorderCardView>
</FrameLayout>

View file

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
<org.yuzu.yuzu_emu.views.GradientBorderCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/card_game_list"
style="?attr/materialCardViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:transitionName="card_game"
app:cardCornerRadius="14dp"
app:cardElevation="0dp">
app:cardCornerRadius="16dp"
app:cardElevation="0dp"
app:cardBackgroundColor="@color/eden_card_background"
app:strokeWidth="0dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
@ -31,7 +31,7 @@
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_game_title"
style="@style/TextAppearance.Material3.TitleMedium"
style="@style/SynthwaveText.Body"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
@ -39,6 +39,7 @@
android:textAlignment="viewStart"
android:singleLine="true"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/text_game_developer"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/image_game_screen"
@ -48,7 +49,7 @@
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_game_developer"
style="@style/TextAppearance.Material3.BodySmall"
style="@style/SynthwaveText.Body"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
@ -56,6 +57,7 @@
android:textAlignment="viewStart"
android:singleLine="true"
android:textSize="12sp"
android:alpha="0.7"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/image_game_screen"
@ -64,4 +66,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</org.yuzu.yuzu_emu.views.GradientBorderCardView>

View file

@ -2,16 +2,15 @@
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
style="?attr/materialCardViewStyle"
style="@style/EdenCard"
android:id="@+id/option_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:layout_marginHorizontal="12dp"
android:background="?attr/colorSurface"
android:layout_marginBottom="16dp"
android:layout_marginHorizontal="8dp"
android:clickable="true"
android:focusable="true"
app:cardElevation="0dp">
app:cardCornerRadius="16dp">
<LinearLayout
android:id="@+id/option_layout"
@ -25,7 +24,7 @@
android:layout_height="24dp"
android:layout_marginStart="24dp"
android:layout_gravity="center_vertical"
app:tint="?attr/colorOnSurface" />
app:tint="?attr/colorPrimary" />
<LinearLayout
android:layout_width="match_parent"
@ -35,7 +34,7 @@
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.BodyMedium"
style="@style/SynthwaveText.Body"
android:id="@+id/option_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -45,17 +44,18 @@
tools:text="@string/install_prod_keys" />
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.BodySmall"
style="@style/SynthwaveText.Body"
android:id="@+id/option_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="viewStart"
android:textSize="14sp"
android:layout_marginTop="5dp"
android:alpha="0.8"
tools:text="@string/install_prod_keys_description" />
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.LabelMedium"
style="@style/SynthwaveText.Secondary"
android:id="@+id/option_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View file

@ -2,7 +2,7 @@
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
style="?attr/materialCardViewOutlinedStyle"
style="@style/EdenCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"

View file

@ -6,14 +6,15 @@
android:orientation="vertical"
android:gravity="center"
app:strokeWidth="0dp"
app:cardCornerRadius="24dp">
app:cardCornerRadius="24dp"
android:background="@drawable/theme_dialog_background">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:background="?colorSurface">
android:background="@android:color/transparent">
<View
android:layout_width="128dp"

View file

@ -5,14 +5,16 @@
android:id="@+id/coordinator_about"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorSurface">
>
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar_about"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:touchscreenBlocksFocus="false">
android:touchscreenBlocksFocus="false"
android:background="@android:color/transparent"
app:elevation="0dp">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar_about"
@ -37,7 +39,8 @@
android:id="@+id/content_about"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:orientation="vertical"
android:paddingBottom="24dp">
<ImageView
android:id="@+id/image_logo"
@ -48,183 +51,191 @@
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_yuzu_title" />
<com.google.android.material.divider.MaterialDivider
<com.google.android.material.card.MaterialCardView
style="@style/EdenCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="16dp"
android:paddingHorizontal="16dp"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp"
app:cardCornerRadius="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:textAlignment="viewStart"
android:text="@string/about" />
android:paddingVertical="20dp"
android:paddingHorizontal="20dp"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="6dp"
android:textAlignment="viewStart"
android:text="@string/about_app_description" />
<com.google.android.material.textview.MaterialTextView
style="@style/SynthwaveText.Header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="viewStart"
android:text="@string/about" />
</LinearLayout>
<com.google.android.material.textview.MaterialTextView
style="@style/SynthwaveText.Body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:textAlignment="viewStart"
android:text="@string/about_app_description" />
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
<com.google.android.material.card.MaterialCardView
android:id="@+id/button_contributors"
style="@style/EdenCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="16dp"
android:paddingHorizontal="16dp"
android:background="?attr/selectableItemBackground"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="12dp"
android:clickable="true"
android:focusable="true"
app:cardCornerRadius="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:textAlignment="viewStart"
android:text="@string/contributors" />
android:paddingVertical="20dp"
android:paddingHorizontal="20dp"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="6dp"
android:textAlignment="viewStart"
android:text="@string/contributors_description" />
<com.google.android.material.textview.MaterialTextView
style="@style/SynthwaveText.Header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="viewStart"
android:text="@string/contributors" />
</LinearLayout>
<com.google.android.material.textview.MaterialTextView
style="@style/SynthwaveText.Body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:textAlignment="viewStart"
android:text="@string/contributors_description" />
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
<com.google.android.material.card.MaterialCardView
android:id="@+id/button_licenses"
style="@style/EdenCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="16dp"
android:paddingHorizontal="16dp"
android:background="?attr/selectableItemBackground"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="12dp"
android:clickable="true"
android:focusable="true"
app:cardCornerRadius="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:textAlignment="viewStart"
android:text="@string/licenses" />
android:paddingVertical="20dp"
android:paddingHorizontal="20dp"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="6dp"
android:textAlignment="viewStart"
android:text="@string/licenses_description" />
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="viewStart"
android:text="@string/licenses" />
</LinearLayout>
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:textAlignment="viewStart"
android:text="@string/licenses_description" />
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
<com.google.android.material.card.MaterialCardView
android:id="@+id/button_version_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="16dp"
android:paddingHorizontal="16dp"
android:background="?attr/selectableItemBackground"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="12dp"
android:clickable="true"
android:focusable="true"
app:cardCornerRadius="16dp"
app:cardBackgroundColor="?attr/colorSurface"
app:strokeColor="?attr/colorOutline"
app:strokeWidth="1dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:textAlignment="viewStart"
android:text="@string/build" />
android:paddingVertical="20dp"
android:paddingHorizontal="20dp"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_version_name"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="6dp"
android:textAlignment="viewStart"
tools:text="abc123" />
<com.google.android.material.textview.MaterialTextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="viewStart"
android:text="@string/build" />
</LinearLayout>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_version_name"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:textAlignment="viewStart"
tools:text="abc123" />
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"
android:layout_marginTop="12dp"
android:layout_marginTop="24dp"
android:layout_marginBottom="16dp"
android:layout_marginHorizontal="40dp">
<Button
style="?attr/materialIconButtonStyle"
<com.google.android.material.button.MaterialButton
style="@style/EdenButton.Secondary"
android:id="@+id/button_discord"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_height="56dp"
android:layout_weight="1"
android:layout_marginEnd="8dp"
app:icon="@drawable/ic_discord"
app:iconTint="?attr/colorOnSurface"
app:iconSize="24dp"
app:iconGravity="textEnd" />
app:iconGravity="textStart"
app:iconPadding="0dp" />
<Button
style="?attr/materialIconButtonStyle"
<com.google.android.material.button.MaterialButton
style="@style/EdenButton.Secondary"
android:id="@+id/button_website"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_height="56dp"
android:layout_weight="1"
android:layout_marginHorizontal="4dp"
app:icon="@drawable/ic_website"
app:iconTint="?attr/colorOnSurface"
app:iconSize="24dp"
app:iconGravity="textEnd" />
app:iconGravity="textStart"
app:iconPadding="0dp" />
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/button_github"
style="?attr/materialIconButtonStyle"
style="@style/EdenButton.Secondary"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_height="56dp"
android:layout_weight="1"
android:layout_marginStart="8dp"
app:icon="@drawable/ic_github"
app:iconTint="?attr/colorOnSurface"
app:iconSize="24dp"
app:iconGravity="textEnd" />
app:iconGravity="textStart"
app:iconPadding="0dp" />
</LinearLayout>
@ -232,4 +243,4 @@
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View file

@ -4,7 +4,6 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorSurface"
>
<LinearLayout
@ -21,9 +20,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:textAppearance="@style/TextAppearance.Material3.HeadlineLarge"
style="@style/SynthwaveText.Title"
android:textSize="27sp"
android:textStyle="bold"
/>
<Space
@ -34,10 +32,11 @@
<com.google.android.material.card.MaterialCardView
android:id="@+id/view_button"
style="?attr/materialCardViewFilledStyle"
style="@style/EdenCard"
android:layout_width="42dp"
android:layout_height="42dp"
app:cardCornerRadius="21dp"
android:padding="8dp"
>
<ImageView
@ -45,7 +44,7 @@
android:layout_height="18dp"
android:layout_gravity="center"
android:src="@drawable/ic_eye"
app:tint="?attr/colorOnSurfaceVariant"
app:tint="?attr/colorSecondary"
/>
</com.google.android.material.card.MaterialCardView>
@ -57,10 +56,11 @@
<com.google.android.material.card.MaterialCardView
android:id="@+id/filter_button"
style="?attr/materialCardViewFilledStyle"
style="@style/EdenCard"
android:layout_width="42dp"
android:layout_height="42dp"
app:cardCornerRadius="21dp"
android:padding="8dp"
>
<ImageView
@ -80,10 +80,11 @@
<com.google.android.material.card.MaterialCardView
android:id="@+id/settings_button"
style="?attr/materialCardViewFilledStyle"
style="@style/EdenCard"
android:layout_width="42dp"
android:layout_height="42dp"
app:cardCornerRadius="21dp"
android:padding="8dp"
>
<ImageView
@ -91,7 +92,7 @@
android:layout_height="18dp"
android:layout_gravity="center"
android:src="@drawable/ic_settings"
app:tint="?attr/colorOnSurfaceVariant"
app:tint="?attr/colorTertiary"
/>
</com.google.android.material.card.MaterialCardView>
@ -111,10 +112,11 @@
<com.google.android.material.card.MaterialCardView
android:id="@+id/search_background"
style="?attr/materialCardViewFilledStyle"
style="@style/EdenCard"
android:layout_width="match_parent"
android:layout_height="48dp"
app:cardCornerRadius="21dp"
app:cardCornerRadius="24dp"
android:padding="4dp"
>
<LinearLayout
@ -132,7 +134,7 @@
android:layout_gravity="center_vertical"
android:layout_marginEnd="18dp"
android:src="@drawable/ic_search"
app:tint="?attr/colorOnSurfaceVariant"
app:tint="?attr/colorSecondary"
/>
<EditText
@ -144,6 +146,9 @@
android:inputType="text"
android:maxLines="1"
android:imeOptions="flagNoFullscreen"
android:textColor="?attr/colorOnBackground"
android:textColorHint="?attr/colorOnSurfaceVariant"
android:fontFamily="monospace"
/>
</LinearLayout>
@ -186,6 +191,7 @@
android:gravity="center"
android:padding="@dimen/spacing_large"
android:text="@string/empty_gamelist"
android:textColor="?attr/colorOnBackground"
android:visibility="gone"
/>
@ -216,9 +222,9 @@
app:icon="@drawable/ic_cartridge_outline"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:textColor="?attr/colorOnPrimaryContainer"
app:backgroundTint="?attr/colorPrimaryContainer"
app:iconTint="?attr/colorOnPrimaryContainer"
android:textColor="?attr/colorOnPrimary"
app:backgroundTint="?attr/colorPrimary"
app:iconTint="?attr/colorOnPrimary"
/>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -4,7 +4,6 @@
android:id="@+id/scroll_view_settings"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorSurface"
android:scrollbars="vertical"
android:fadeScrollbars="false"
android:clipToPadding="false"
@ -15,21 +14,21 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="?attr/colorSurface"
android:paddingHorizontal="8dp">
android:paddingHorizontal="16dp">
<ImageView
android:id="@+id/logo_image"
android:layout_width="96dp"
android:layout_height="96dp"
android:layout_marginVertical="32dp"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_marginVertical="48dp"
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_yuzu_full" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/home_settings_list"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
android:clipToPadding="false" />
</androidx.appcompat.widget.LinearLayoutCompat>

View file

@ -20,7 +20,7 @@
android:layout_width="match_parent"
android:layout_height="?attr/collapsingToolbarLayoutMediumSize"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
app:contentScrim="?attr/colorOnSurfaceInverse"
app:contentScrim="?attr/colorSurface"
app:scrimVisibleHeightTrigger="100dp">
<com.google.android.material.appbar.MaterialToolbar

View file

@ -23,7 +23,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/button_next"
style="@style/Widget.Material3.Button.TextButton"
style="@style/EdenButton.Primary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/next"
@ -33,7 +33,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/button_back"
style="@style/Widget.Material3.Button.TextButton"
style="@style/EdenButton.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/back"

View file

@ -5,7 +5,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:background="@drawable/theme_list_item_selector"
android:clickable="true"
android:focusable="true"
android:gravity="center_vertical"

View file

@ -5,7 +5,7 @@
android:id="@+id/setting_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:background="@drawable/theme_list_item_selector"
android:clickable="true"
android:focusable="true"
android:gravity="center_vertical"

View file

@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:background="@drawable/theme_list_item_selector"
android:clickable="true"
android:focusable="true"
android:minHeight="72dp"

View file

@ -26,12 +26,10 @@
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_title"
style="@style/TextAppearance.Material3.DisplaySmall"
style="@style/SynthwaveText.Header"
android:layout_width="0dp"
android:layout_height="0dp"
android:textAlignment="center"
android:textColor="?attr/colorOnSurface"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/text_description"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -41,7 +39,7 @@
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_description"
style="@style/TextAppearance.Material3.TitleLarge"
style="@style/SynthwaveText.Body"
android:layout_width="0dp"
android:layout_height="0dp"
android:textAlignment="center"
@ -57,7 +55,7 @@
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_confirmation"
style="@style/TextAppearance.Material3.TitleLarge"
style="@style/SynthwaveText.Accent"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:paddingHorizontal="16dp"
@ -66,7 +64,6 @@
android:textSize="30sp"
android:visibility="invisible"
android:text="@string/step_complete"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -76,6 +73,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/button_action"
style="@style/EdenButton.Primary"
android:layout_width="wrap_content"
android:layout_height="56dp"
android:layout_marginTop="16dp"

View file

@ -389,6 +389,7 @@
</integer-array>
<string-array name="staticThemeNames">
<item>@string/eden_theme</item>
<item>@string/violet</item>
<item>@string/blue</item>
<item>@string/cyan</item>
@ -409,6 +410,7 @@
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
</integer-array>
<string-array name="anisoEntries">

View file

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Synthwave/Vaporwave Primary Colors -->
<color name="eden_primary">#FF0080</color> <!-- Neon magenta -->
<color name="eden_primary_variant">#E6006B</color> <!-- Darker magenta -->
<color name="eden_secondary">#00FFFF</color> <!-- Electric cyan -->
<color name="eden_secondary_variant">#00E6E6</color> <!-- Darker cyan -->
<!-- Background Colors - Deep space black -->
<color name="eden_background">#000000</color> <!-- Pure black background -->
<color name="eden_surface">#0D0D0D</color> <!-- Card surface -->
<color name="eden_surface_variant">#1A1A1A</color> <!-- Elevated surface -->
<!-- Text Colors - High contrast for readability -->
<color name="eden_on_background">#FFFFFF</color> <!-- Pure white text -->
<color name="eden_on_surface">#FFFFFF</color> <!-- Pure white text -->
<color name="eden_on_primary">#FFFFFF</color> <!-- White on neon -->
<color name="eden_on_secondary">#000000</color> <!-- Black on cyan -->
<!-- Synthwave Accent Colors -->
<color name="eden_accent_pink">#FF0080</color> <!-- Neon magenta -->
<color name="eden_accent_purple">#9D00FF</color> <!-- Electric purple -->
<color name="eden_accent_blue">#0080FF</color> <!-- Electric blue -->
<color name="eden_accent_orange">#FF8000</color> <!-- Neon orange -->
<!-- Synthwave Gradient Colors -->
<color name="eden_gradient_start">#FF0080</color> <!-- Neon magenta -->
<color name="eden_gradient_middle">#9D00FF</color> <!-- Electric purple -->
<color name="eden_gradient_end">#00FFFF</color> <!-- Electric cyan -->
<!-- Neon Glow Effects -->
<color name="eden_glow_pink">#80FF0080</color> <!-- Magenta glow -->
<color name="eden_glow_cyan">#8000FFFF</color> <!-- Cyan glow -->
<color name="eden_glow_purple">#809D00FF</color> <!-- Purple glow -->
<color name="eden_glow_orange">#80FF8000</color> <!-- Orange glow -->
<!-- Neon Border Colors -->
<color name="eden_border">#333333</color> <!-- Subtle border -->
<color name="eden_border_light">#555555</color> <!-- Lighter border -->
<color name="eden_border_gradient_start">#FF0080</color> <!-- Neon magenta -->
<color name="eden_border_gradient_end">#00FFFF</color> <!-- Electric cyan -->
<!-- Retro Grid Pattern -->
<color name="eden_grid_line">#1A1A1A</color> <!-- Grid lines -->
<color name="eden_grid_line_accent">#FF0080</color> <!-- Neon grid lines -->
<color name="eden_grid_line_cyan">#00FFFF</color> <!-- Cyan grid lines -->
<!-- Synthwave Status Colors -->
<color name="eden_error">#FF0040</color> <!-- Neon red -->
<color name="eden_success">#00FF80</color> <!-- Neon green -->
<color name="eden_warning">#FFFF00</color> <!-- Neon yellow -->
<color name="eden_info">#0080FF</color> <!-- Electric blue -->
<!-- Overlay Colors -->
<color name="eden_overlay_dark">#CC000000</color>
<color name="eden_overlay_medium">#80000000</color>
<color name="eden_overlay_light">#33000000</color>
<!-- Neon Button Colors -->
<color name="eden_button_primary_bg">#FF0080</color> <!-- Neon magenta -->
<color name="eden_button_secondary_bg">#00000000</color> <!-- Transparent -->
<color name="eden_button_secondary_border">#00FFFF</color> <!-- Electric cyan -->
<!-- Synthwave Card Colors -->
<color name="eden_card_background">#0D0D0D</color> <!-- Almost black -->
<color name="eden_card_background_elevated">#1A1A1A</color> <!-- Elevated black -->
<!-- Retro Navigation Colors -->
<color name="eden_nav_background">#000000</color> <!-- Pure black -->
<color name="eden_nav_selected">#FF0080</color> <!-- Neon magenta -->
<color name="eden_nav_unselected">#666666</color> <!-- Gray -->
<!-- Transparent versions for gradients -->
<color name="eden_transparent">#00000000</color>
<color name="eden_primary_transparent">#00FF0080</color>
<color name="eden_secondary_transparent">#0000FFFF</color>
<!-- Additional Synthwave Colors -->
<color name="eden_scan_line">#33FF0080</color> <!-- Scan line effect -->
<color name="eden_hologram">#1A00FFFF</color> <!-- Holographic effect -->
<color name="eden_neon_outline">#FFFF0080</color> <!-- Neon outline -->
</resources>

View file

@ -771,11 +771,11 @@
<string name="searching_for_game">Searching for game...</string>
<string name="game_not_found_for_title_id">Game not found for Title ID: %1$s</string>
<string name="custom_settings_failed_title">Custom Settings Failed</string>
<string name="custom_settings_failed_message">Failed to apply custom settings for this game</string>
<string name="custom_settings_failed_message">Failed to apply custom settings for %1$s: %2$s</string>
<string name="launch_with_default_settings">Launch with Default Settings</string>
<string name="launch_cancelled">Launch cancelled</string>
<string name="custom_settings_applied">Custom settings applied</string>
<string name="launching_game">Launching game...</string>
<string name="launching_game">Launching %1$s...</string>
<string name="failed_to_initialize_game">Failed to initialize game</string>
<string name="custom_intent_launch_message_with_settings">Would you like to launch %1$s with custom settings?</string>
<string name="custom_intent_launch_message">Would you like to launch %1$s?</string>
@ -789,7 +789,7 @@
<string name="config_already_exists_message">Custom settings already exist for %1$s.\n\nWould you like to overwrite the existing configuration?\n\nThis action cannot be undone.</string>
<string name="config_exists_prompt">Checking for existing configuration...</string>
<string name="overwrite_cancelled">Overwrite cancelled</string>
<string name="checking_driver">Checking for custom driver...</string>
<string name="checking_driver">Checking for custom driver: %1$s</string>
<string name="driver_unavailable">Custom driver not available for this device</string>
<string name="overwrite">Overwrite</string>
@ -799,9 +799,11 @@
<string name="downloading_driver">Downloading driver...</string>
<string name="driver_installed">Driver installed successfully</string>
<string name="driver_installation_failed_title">Driver Installation Failed</string>
<string name="driver_installation_failed_message">Failed to install the GPU driver. Please try again later.</string>
<string name="driver_installation_failed_message">Failed to install the GPU driver: %s</string>
<string name="driver_not_available_title">Driver Not Available</string>
<string name="driver_not_available_message">The selected driver is not available for download.</string>
<string name="driver_not_found">Required driver not installed: %s</string>
<string name="invalid_driver_file">Invalid driver file: %s</string>
<!-- Emulation Menu -->
<string name="emulation_exit">Exit emulation</string>
@ -1030,7 +1032,8 @@
<!-- Static Themes -->
<string name="static_theme_color">Theme Color</string>
<string name="violet">Violet (Default)</string>
<string name="eden_theme">Eden (Default)</string>
<string name="violet">Violet</string>
<string name="blue">Blue</string>
<string name="cyan">Cyan</string>
<string name="red">Red</string>

View file

@ -162,4 +162,131 @@
<item name="rippleColor">@color/yuzu_inversePrimary_pink</item>
</style>
<!-- Eden theme styles -->
<style name="EdenSlider" parent="Widget.Material3.Slider">
<item name="tickVisible">false</item>
<item name="labelBehavior">gone</item>
<item name="trackColorActive">?attr/colorPrimary</item>
<item name="trackColorInactive">?attr/colorOutline</item>
<item name="thumbColor">?attr/colorSecondary</item>
<item name="haloColor">?attr/colorSecondary</item>
</style>
<style name="EdenMaterialDialog" parent="ThemeOverlay.Material3.MaterialAlertDialog">
<item name="colorPrimary">@color/eden_primary</item>
<item name="colorSurface">@color/eden_card_background</item>
<item name="colorSurfaceContainerHigh">@color/eden_card_background</item>
<item name="colorOnSurface">@color/eden_on_surface</item>
<item name="colorOnSurfaceVariant">@color/eden_on_surface</item>
<item name="colorSecondary">@color/eden_secondary</item>
<item name="android:textColorPrimary">@color/eden_on_surface</item>
<item name="android:textColorSecondary">@color/eden_on_surface</item>
<item name="android:colorBackground">@color/eden_card_background</item>
<item name="buttonBarPositiveButtonStyle">@style/EdenButton.Dialog</item>
<item name="buttonBarNegativeButtonStyle">@style/EdenButton.Dialog</item>
<item name="buttonBarNeutralButtonStyle">@style/EdenButton.Dialog</item>
</style>
<style name="EdenButton.Dialog" parent="Widget.Material3.Button.TextButton.Dialog">
<item name="android:textColor">@color/eden_primary</item>
<item name="rippleColor">@color/eden_glow_pink</item>
</style>
<style name="EdenPopupMenu" parent="Widget.Material3.PopupMenu">
<item name="android:popupBackground">@drawable/popup_menu_background</item>
</style>
<style name="YuzuPopupMenu" parent="Widget.Material3.PopupMenu">
<item name="android:popupBackground">@drawable/popup_menu_background</item>
</style>
<style name="EdenButton.Primary" parent="Widget.Material3.Button">
<item name="android:textColor">@color/eden_on_primary</item>
<item name="android:textAllCaps">false</item>
<item name="android:textStyle">bold</item>
<item name="android:letterSpacing">0.05</item>
<item name="backgroundTint">@color/eden_primary</item>
</style>
<style name="EdenButton.Secondary" parent="Widget.Material3.Button.OutlinedButton">
<item name="strokeColor">@color/eden_secondary</item>
<item name="strokeWidth">2dp</item>
<item name="android:textColor">@color/eden_secondary</item>
<item name="android:textAllCaps">false</item>
<item name="cornerRadius">12dp</item>
<item name="android:textStyle">bold</item>
<item name="android:letterSpacing">0.05</item>
</style>
<style name="EdenCard" parent="">
<item name="android:background">@drawable/theme_card_background</item>
<item name="android:elevation">0dp</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>
<style name="EdenGameCard" parent="Widget.Material3.CardView.Elevated">
<item name="cardElevation">0dp</item>
<item name="cardBackgroundColor">?attr/colorSurface</item>
<item name="strokeWidth">0dp</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
<item name="android:stateListAnimator">@null</item>
</style>
<style name="EdenCardElevated" parent="">
<item name="android:background">@drawable/eden_card_elevated_selector</item>
<item name="android:elevation">0dp</item>
<item name="android:padding">16dp</item>
</style>
<!-- Synthwave Text Styles -->
<style name="SynthwaveText.Title" parent="TextAppearance.Material3.DisplayLarge">
<item name="android:textColor">@color/eden_on_background</item>
<item name="android:textStyle">bold</item>
<item name="android:letterSpacing">0.1</item>
<item name="android:fontFamily">monospace</item>
<item name="android:shadowColor">@color/eden_glow_pink</item>
<item name="android:shadowDx">0</item>
<item name="android:shadowDy">0</item>
<item name="android:shadowRadius">8</item>
</style>
<style name="SynthwaveText.Header" parent="TextAppearance.Material3.DisplaySmall">
<item name="android:textColor">@color/eden_primary</item>
<item name="android:textStyle">bold</item>
<item name="android:letterSpacing">0.05</item>
<item name="android:fontFamily">monospace</item>
<item name="android:shadowColor">@color/eden_glow_pink</item>
<item name="android:shadowDx">0</item>
<item name="android:shadowDy">0</item>
<item name="android:shadowRadius">6</item>
</style>
<style name="SynthwaveText.Body" parent="TextAppearance.Material3.BodyLarge">
<item name="android:textColor">@color/eden_on_background</item>
<item name="android:fontFamily">monospace</item>
<item name="android:letterSpacing">0.02</item>
</style>
<style name="SynthwaveText.Secondary" parent="TextAppearance.Material3.BodyMedium">
<item name="android:textColor">@color/eden_secondary</item>
<item name="android:fontFamily">monospace</item>
<item name="android:shadowColor">@color/eden_glow_cyan</item>
<item name="android:shadowDx">0</item>
<item name="android:shadowDy">0</item>
<item name="android:shadowRadius">4</item>
</style>
<style name="SynthwaveText.Accent" parent="TextAppearance.Material3.LabelLarge">
<item name="android:textColor">@color/eden_accent_orange</item>
<item name="android:textStyle">bold</item>
<item name="android:fontFamily">monospace</item>
<item name="android:letterSpacing">0.1</item>
<item name="android:shadowColor">@color/eden_glow_orange</item>
<item name="android:shadowDx">0</item>
<item name="android:shadowDy">0</item>
<item name="android:shadowRadius">4</item>
</style>
<!-- Shape appearance for carousel images -->
<style name="ShapeAppearance.Eden.CarouselImage" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSizeTopLeft">8dp</item>
<item name="cornerSizeTopRight">8dp</item>
<item name="cornerSizeBottomLeft">0dp</item>
<item name="cornerSizeBottomRight">0dp</item>
</style>
</resources>

View file

@ -2,9 +2,9 @@
<resources>
<style name="Theme.Yuzu.Splash.Main" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">@color/yuzu_surface_violet</item>
<item name="windowSplashScreenBackground">@color/eden_background</item>
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_yuzu</item>
<item name="postSplashScreenTheme">@style/Theme.Yuzu.Main.Violet</item>
<item name="postSplashScreenTheme">@style/Theme.Yuzu.Main</item>
</style>
<style name="Theme.Yuzu.Main" parent="Theme.Material3.DayNight.NoActionBar">
@ -23,6 +23,58 @@
<item name="android:enforceStatusBarContrast">false</item>
<item name="android:enforceNavigationBarContrast">false</item>
<!-- Popup menu theme -->
<item name="popupMenuStyle">@style/YuzuPopupMenu</item>
</style>
<style name="Theme.Eden.Main" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Primary colors -->
<item name="colorPrimary">@color/eden_primary</item>
<item name="colorOnPrimary">@color/eden_on_primary</item>
<item name="colorPrimaryContainer">@color/eden_primary_variant</item>
<item name="colorOnPrimaryContainer">@color/eden_on_primary</item>
<!-- Secondary colors -->
<item name="colorSecondary">@color/eden_secondary</item>
<item name="colorOnSecondary">@color/eden_on_secondary</item>
<item name="colorSecondaryContainer">@color/eden_secondary_variant</item>
<item name="colorOnSecondaryContainer">@color/eden_on_secondary</item>
<!-- Tertiary colors -->
<item name="colorTertiary">@color/eden_accent_purple</item>
<item name="colorOnTertiary">@color/eden_on_primary</item>
<item name="colorTertiaryContainer">@color/eden_accent_blue</item>
<item name="colorOnTertiaryContainer">@color/eden_on_primary</item>
<!-- Background and surface -->
<item name="android:colorBackground">@color/eden_background</item>
<item name="colorOnBackground">@color/eden_on_background</item>
<item name="colorSurface">@color/eden_surface</item>
<item name="colorOnSurface">@color/eden_on_surface</item>
<item name="colorSurfaceVariant">@color/eden_surface_variant</item>
<item name="colorOnSurfaceVariant">@color/eden_on_surface</item>
<!-- Outline and borders -->
<item name="colorOutline">@color/eden_border</item>
<item name="colorOutlineVariant">@color/eden_border_light</item>
<!-- Error colors -->
<item name="colorError">@color/eden_error</item>
<item name="colorErrorContainer">@color/eden_error</item>
<item name="colorOnError">@color/eden_on_primary</item>
<item name="colorOnErrorContainer">@color/eden_on_primary</item>
<!-- System UI -->
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:windowLightStatusBar">false</item>
<item name="android:windowLightNavigationBar">false</item>
<!-- Other theme attributes -->
<item name="android:shadowColor">@color/eden_overlay_dark</item>
<item name="sliderStyle">@style/EdenSlider</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:enforceStatusBarContrast">false</item>
<item name="android:enforceNavigationBarContrast">false</item>
<!-- Material dialog theme -->
<item name="materialAlertDialogTheme">@style/EdenMaterialDialog</item>
<!-- Popup menu theme -->
<item name="popupMenuStyle">@style/EdenPopupMenu</item>
<item name="android:textColorPrimary">@color/eden_on_background</item>
<item name="android:itemTextAppearance">@style/TextAppearance.Material3.BodyLarge</item>
</style>
<style name="Theme.Yuzu.Main.Blue" parent="Theme.Yuzu.Main">