Redesign: dashboard card + action row (v1.1.1) (#6)

* redesign(dashboard): brand-book restyle of Pezkuwi dashboard card

Match the brand book / handoff screenshot:
- bg_pezkuwi_dashboard: blue/indigo gradient -> frosted dark-navy surface
  (#1C1F2E) with a 1px periwinkle hairline, 20dp corners.
- item_pezkuwi_dashboard: replace hardcoded non-brand colors —
  trust value amber #FFD54F -> zer #FDB813; welati count -> positive #2FC864;
  Approve/start buttons Material-green -> kesk #009639; Sign red -> sor #E2231A;
  Share button yellow #FDD835 -> frosted-navy secondary #2A2F45 (white text);
  blue-grey text -> brand white tokens. Pill-er 12dp button corners.

* redesign(actions): circular action buttons (primary green Send + dark rest)

Match the brand-book screenshot: the balance action row (Send/Receive/Swap/
Buy/Gift) becomes circular icon buttons with a label below — Send on a kesk
green circle, the rest on frosted-dark circles. IDs preserved (used only for
click + isEnabled), so AssetsTotalBalanceView keeps working.

* redesign(dashboard): pro-level Pezkuwi card layout

Rework the card to match the brand-book screenshot: header row with a small
Newroz-flame icon + title/roles on the left and the citizen count on the right;
trust score row; full-height (48dp) pill-er (14dp) action buttons — Approve
(kesk, bold), Sign (sor), Share (frosted-dark with hairline). Adds the small
ic_nevroz_flame icon.

* release: bump versionName to 1.1.1 (dashboard & action-row redesign)
This commit is contained in:
2026-06-14 23:34:49 -07:00
committed by GitHub
parent 37c2edc6cd
commit 85bde7e448
8 changed files with 228 additions and 123 deletions
+9
View File
@@ -5,6 +5,15 @@ Context sıfırlanması durumunda referans olarak kullanılmalıdır.
---
## v1.1.1 — Dashboard & action-row screen redesign (2026-06-15)
Screen-level brand-book alignment (foundation landed in v1.1.0):
- **Pezkuwi dashboard card:** blue/indigo gradient → frosted dark-navy surface with
a small Newroz-flame icon; brand buttons (Approve = kesk, Sign = sor, Share =
frosted-dark — the old yellow Share button removed); zer/positive accents.
- **Balance action row:** flat icon+label → circular buttons (Send on a kesk-green
circle, Receive/Swap/Buy/Gift on frosted-dark circles with labels below).
## v1.1.0 — Brand-book UI redesign (2026-06-15)
Görsel kimlik Pezkuwi marka kitabına hizalandı; iş mantığına dokunulmadı.
+1 -1
View File
@@ -1,7 +1,7 @@
buildscript {
ext {
// App version
versionName = '1.1.0'
versionName = '1.1.1'
versionCode = 1
applicationId = "io.pezkuwichain.wallet"
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Brand: primary action circle — kesk green -->
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<solid android:color="#009639" />
</shape>
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Brand: secondary action circle — frosted dark -->
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<solid android:color="#242838" />
<stroke android:width="1dp" android:color="#29999EC7" />
</shape>
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Brand book: frosted dark-navy surface + 1px periwinkle hairline (no blue/indigo gradient) -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="135"
android:startColor="#FF1A237E"
android:centerColor="#FF283593"
android:endColor="#FF3949AB"
android:type="linear" />
<solid android:color="#1C1F2E" />
<corners android:radius="16dp" />
<stroke
android:width="1dp"
android:color="#33999EC7" />
<corners android:radius="20dp" />
</shape>
@@ -4,7 +4,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
app:cardCornerRadius="16dp"
app:cardBackgroundColor="@android:color/transparent"
app:cardCornerRadius="20dp"
app:cardElevation="0dp"
app:strokeWidth="0dp">
@@ -13,14 +14,20 @@
android:layout_height="wrap_content"
android:background="@drawable/bg_pezkuwi_dashboard"
android:orientation="vertical"
android:padding="16dp">
android:padding="18dp">
<!-- Top row: Title + Logo -->
<!-- Header: flame badge + title/roles (left), citizen count (right) -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical">
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginEnd="12dp"
android:src="@drawable/ic_nevroz_flame" />
<LinearLayout
android:layout_width="0dp"
@@ -33,7 +40,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pezkuwi_dashboard_title"
android:textColor="@android:color/white"
android:textColor="#E0FFFFFF"
android:textSize="18sp"
android:textStyle="bold" />
@@ -41,109 +48,113 @@
android:id="@+id/pezkuwiDashboardRoles"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
app:flexWrap="wrap"
android:layout_marginTop="3dp"
app:alignItems="center"
app:flexWrap="wrap"
app:justifyContent="flex_start" />
<!-- Trust Score -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pezkuwi_dashboard_trust_score"
android:textColor="#B0BEC5"
android:textSize="12sp" />
<TextView
android:id="@+id/pezkuwiDashboardTrustValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:textColor="#FFD54F"
android:textSize="16sp"
android:textStyle="bold" />
<com.google.android.material.button.MaterialButton
android:id="@+id/pezkuwiDashboardStartTrackingButton"
style="@style/Widget.MaterialComponents.Button"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_marginStart="8dp"
android:minWidth="0dp"
android:paddingHorizontal="10dp"
android:text="@string/pezkuwi_dashboard_start_tracking"
android:textAllCaps="false"
android:textColor="@android:color/white"
android:textSize="11sp"
android:visibility="gone"
app:backgroundTint="#FF9800"
app:cornerRadius="8dp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:layout_marginEnd="12dp">
android:gravity="end"
android:orientation="vertical">
<TextView
android:id="@+id/pezkuwiDashboardWelatiCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#4CAF50"
android:textSize="22sp"
android:layout_gravity="end"
android:textColor="#2FC864"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:text="@string/pezkuwi_dashboard_kurds_title"
android:textColor="#CFD8DC"
android:textColor="#7AFFFFFF"
android:textSize="10sp" />
</LinearLayout>
</LinearLayout>
<!-- Action buttons: Kesk (green), Sor (red), Zer (yellow) -->
<!-- Trust score -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="14dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pezkuwi_dashboard_trust_score"
android:textColor="#7AFFFFFF"
android:textSize="12sp" />
<TextView
android:id="@+id/pezkuwiDashboardTrustValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:textColor="#FDB813"
android:textSize="16sp"
android:textStyle="bold" />
<com.google.android.material.button.MaterialButton
android:id="@+id/pezkuwiDashboardStartTrackingButton"
style="@style/Widget.MaterialComponents.Button"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_marginStart="8dp"
android:minWidth="0dp"
android:paddingHorizontal="10dp"
android:text="@string/pezkuwi_dashboard_start_tracking"
android:textAllCaps="false"
android:textColor="@android:color/white"
android:textSize="11sp"
android:visibility="gone"
app:backgroundTint="#009639"
app:cornerRadius="8dp" />
</LinearLayout>
<!-- Action buttons -->
<com.google.android.material.button.MaterialButton
android:id="@+id/pezkuwiDashboardBasvuruButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_height="48dp"
android:layout_marginTop="16dp"
android:text="@string/pezkuwi_dashboard_basvuru"
android:textAllCaps="false"
android:textColor="@android:color/white"
app:backgroundTint="#4CAF50"
app:cornerRadius="8dp" />
android:textStyle="bold"
app:backgroundTint="#009639"
app:cornerRadius="14dp" />
<com.google.android.material.button.MaterialButton
android:id="@+id/pezkuwiDashboardSignButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:layout_height="48dp"
android:layout_marginTop="8dp"
android:text="@string/citizenship_sign"
android:textAllCaps="false"
android:textColor="@android:color/white"
app:backgroundTint="#E53935"
app:cornerRadius="8dp" />
app:backgroundTint="#E2231A"
app:cornerRadius="14dp" />
<com.google.android.material.button.MaterialButton
android:id="@+id/pezkuwiDashboardShareButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:layout_height="48dp"
android:layout_marginTop="8dp"
android:text="@string/citizenship_share_button"
android:textAllCaps="false"
android:textColor="#212121"
app:backgroundTint="#FDD835"
app:cornerRadius="8dp" />
android:textColor="#E0FFFFFF"
app:backgroundTint="#2A2F45"
app:cornerRadius="14dp"
app:strokeColor="#33999EC7"
app:strokeWidth="1dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
@@ -124,71 +124,145 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/viewAssetsTotalBalanceContainer">
<TextView
<LinearLayout
android:id="@+id/viewAssetsTotalBalanceSend"
style="@style/Widget.Nova.ActionButton"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:breakStrategy="high_quality"
android:hyphenationFrequency="full"
android:paddingBottom="8dp"
android:text="@string/wallet_asset_send"
app:drawableTopCompat="@drawable/ic_send_tokens"
tools:drawableTop="@drawable/ic_send_tokens" />
android:orientation="vertical"
android:gravity="center"
android:clickable="true"
android:focusable="true"
android:paddingVertical="6dp">
<TextView
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@drawable/bg_action_circle_primary"
android:padding="13dp"
android:src="@drawable/ic_send_tokens"
app:tint="@android:color/white" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/wallet_asset_send"
android:textColor="@color/text_secondary"
android:textSize="11sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/viewAssetsTotalBalanceReceive"
style="@style/Widget.Nova.ActionButton"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:breakStrategy="high_quality"
android:hyphenationFrequency="full"
android:paddingBottom="8dp"
android:text="@string/wallet_asset_receive"
app:drawableTopCompat="@drawable/ic_receive_tokens"
tools:drawableTop="@drawable/ic_receive_tokens"
tools:text="Получить" />
android:orientation="vertical"
android:gravity="center"
android:clickable="true"
android:focusable="true"
android:paddingVertical="6dp">
<TextView
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@drawable/bg_action_circle_secondary"
android:padding="13dp"
android:src="@drawable/ic_receive_tokens"
app:tint="@color/icon_primary" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/wallet_asset_receive"
android:textColor="@color/text_secondary"
android:textSize="11sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/viewAssetsTotalBalanceSwap"
style="@style/Widget.Nova.ActionButton"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:breakStrategy="high_quality"
android:hyphenationFrequency="full"
android:paddingBottom="8dp"
android:text="@string/wallet_asset_swap"
app:drawableTopCompat="@drawable/ic_swap"
tools:drawableTop="@drawable/ic_swap" />
android:orientation="vertical"
android:gravity="center"
android:clickable="true"
android:focusable="true"
android:paddingVertical="6dp">
<TextView
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@drawable/bg_action_circle_secondary"
android:padding="13dp"
android:src="@drawable/ic_swap"
app:tint="@color/icon_primary" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/wallet_asset_swap"
android:textColor="@color/text_secondary"
android:textSize="11sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/viewAssetsTotalBalanceBuy"
style="@style/Widget.Nova.ActionButton"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:breakStrategy="high_quality"
android:hyphenationFrequency="full"
android:paddingBottom="8dp"
android:text="@string/wallet_asset_buy_sell"
app:drawableTopCompat="@drawable/ic_buy_tokens"
tools:drawableTop="@drawable/ic_buy" />
android:orientation="vertical"
android:gravity="center"
android:clickable="true"
android:focusable="true"
android:paddingVertical="6dp">
<TextView
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@drawable/bg_action_circle_secondary"
android:padding="13dp"
android:src="@drawable/ic_buy_tokens"
app:tint="@color/icon_primary" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/wallet_asset_buy_sell"
android:textColor="@color/text_secondary"
android:textSize="11sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/viewAssetsTotalBalanceGift"
style="@style/Widget.Nova.ActionButton"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:breakStrategy="high_quality"
android:hyphenationFrequency="full"
android:paddingBottom="8dp"
android:text="@string/common_gift"
app:drawableTopCompat="@drawable/ic_gift_card"
tools:drawableTop="@drawable/ic_gift_card" />
android:orientation="vertical"
android:gravity="center"
android:clickable="true"
android:focusable="true"
android:paddingVertical="6dp">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@drawable/bg_action_circle_secondary"
android:padding="13dp"
android:src="@drawable/ic_gift_card"
app:tint="@color/icon_primary" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/common_gift"
android:textColor="@color/text_secondary"
android:textSize="11sp" />
</LinearLayout>
</LinearLayout>