2
0

2 Achegas 5cef6e9cfc ... b5933216e4

Autor SHA1 Mensaxe Data
  lv b5933216e4 design before hai 1 día
  lv 7f0be598ed css sys hai 1 día

+ 1 - 0
app.json

@@ -34,6 +34,7 @@
       ]
     },
     "web": {
+      "bundler": "metro",
       "output": "static",
       "favicon": "./assets/images/favicon.png"
     },

+ 9 - 0
babel.config.js

@@ -0,0 +1,9 @@
+module.exports = function (api) {
+  api.cache(true);
+  return {
+    presets: [
+      ["babel-preset-expo", { jsxImportSource: "nativewind" }],
+      "nativewind/babel",
+    ],
+  };
+};

+ 264 - 0
design/components/code.html

@@ -0,0 +1,264 @@
+<!DOCTYPE html>
+
+<html lang="zh-CN"><head>
+<meta charset="utf-8"/>
+<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
+<script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
+<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
+<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&amp;display=swap" rel="stylesheet"/>
+<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
+<script id="tailwind-config">
+      tailwind.config = {
+        darkMode: "class",
+        theme: {
+          extend: {
+            "colors": {
+                    "on-primary": "#ffffff",
+                    "surface-container-highest": "#e2e2e7",
+                    "background": "#f9f9fe",
+                    "on-surface": "#1a1c1f",
+                    "on-secondary-container": "#394c84",
+                    "on-surface-variant": "#434655",
+                    "primary-container": "#2563eb",
+                    "surface-container": "#ededf2",
+                    "primary": "#004ac6",
+                    "on-error": "#ffffff",
+                    "on-secondary-fixed-variant": "#31447b",
+                    "primary-fixed": "#dbe1ff",
+                    "tertiary-fixed-dim": "#ffb596",
+                    "secondary-fixed": "#dbe1ff",
+                    "on-error-container": "#93000a",
+                    "tertiary-container": "#bc4800",
+                    "on-tertiary-container": "#ffede6",
+                    "tertiary-fixed": "#ffdbcd",
+                    "inverse-surface": "#2e3034",
+                    "outline-variant": "#c3c6d7",
+                    "secondary": "#495c95",
+                    "on-tertiary-fixed-variant": "#7d2d00",
+                    "on-tertiary-fixed": "#360f00",
+                    "outline": "#737686",
+                    "surface-tint": "#0053db",
+                    "surface-container-lowest": "#ffffff",
+                    "error-container": "#ffdad6",
+                    "inverse-primary": "#b4c5ff",
+                    "on-secondary-fixed": "#00174b",
+                    "secondary-container": "#acbfff",
+                    "surface-dim": "#d9dade",
+                    "surface-bright": "#f9f9fe",
+                    "surface-container-low": "#f3f3f8",
+                    "tertiary": "#943700",
+                    "primary-fixed-dim": "#b4c5ff",
+                    "on-background": "#1a1c1f",
+                    "surface": "#f9f9fe",
+                    "surface-variant": "#e2e2e7",
+                    "surface-container-high": "#e8e8ed",
+                    "inverse-on-surface": "#f0f0f5",
+                    "secondary-fixed-dim": "#b4c5ff",
+                    "on-secondary": "#ffffff",
+                    "on-primary-container": "#eeefff",
+                    "error": "#ba1a1a",
+                    "on-primary-fixed-variant": "#003ea8",
+                    "on-primary-fixed": "#00174b",
+                    "on-tertiary": "#ffffff"
+            },
+            "borderRadius": {
+                    "DEFAULT": "0.25rem",
+                    "lg": "0.5rem",
+                    "xl": "1.5rem",
+                    "2xl": "2rem"
+            },
+            "fontFamily": {
+                    "headline": ["Inter", "PingFang SC", "sans-serif"],
+                    "body": ["Inter", "PingFang SC", "sans-serif"],
+                    "label": ["Inter", "PingFang SC", "sans-serif"]
+            }
+          },
+        }
+      }
+    </script>
+<style>
+        .material-symbols-outlined {
+            font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
+        }
+        .ios-blur {
+            backdrop-filter: blur(20px);
+            -webkit-backdrop-filter: blur(20px);
+        }
+    </style>
+<style>
+    body {
+      min-height: max(884px, 100dvh);
+    }
+  </style>
+  </head>
+<body class="bg-surface font-body text-on-surface antialiased pb-24">
+<!-- Top AppBar (JSON Component) -->
+<header class="fixed top-0 w-full z-50 bg-white/80 dark:bg-slate-900/80 backdrop-blur-2xl shadow-[0_1px_0_0_rgba(0,0,0,0.05)] flex items-center justify-between px-6 h-16">
+<div class="flex items-center gap-3">
+<div class="w-8 h-8 rounded-full bg-primary-fixed flex items-center justify-center overflow-hidden">
+<img alt="User Profile" class="w-full h-full object-cover" data-alt="professional portrait of a financial advisor in a minimalist corporate style with soft lighting" src="https://lh3.googleusercontent.com/aida-public/AB6AXuCXS6JFP50IR0xKE0F8Ux7ctxME1lJB5F4xNeaPYvJMYMaguoUBKpqGWOdL7xYP-Uf_0n9-RoDo5WKKyuPNFrn1QooTfuDFbOtJfKsYFrwKTiDIRrPRt5wHPNO3IeWxd0sVL4cidXb8YSTi7CDi8yUWpv7yJxfAvTL6QuSEBiNPKD82NnXmtwTTqC08dlY8ZjoXFOK_QEMmuzOgl-QPJ_XrFP-SwYAa0u5-qCfXcGlljNFB2pWNxPR0z2eaCSsYfnAO0n1rwFAKrvUu"/>
+</div>
+<span class="text-lg font-bold text-slate-900 dark:text-slate-100 font-['PingFang_SC','SF_Pro','Inter'] tracking-tight">贷款助手</span>
+</div>
+<button class="text-blue-600 dark:text-blue-400 hover:opacity-70 transition-opacity active:scale-95 duration-200">
+<span class="material-symbols-outlined">notifications</span>
+</button>
+</header>
+<main class="pt-20 px-6 max-w-2xl mx-auto space-y-12">
+<!-- Section Title: Modals & Alerts Showcase -->
+<section class="space-y-6">
+<h2 class="text-2xl font-bold tracking-tight text-on-surface px-2">交互反馈组件</h2>
+<!-- Success Modal (iOS Center Style) -->
+<div class="relative group">
+<div class="absolute -inset-1 bg-gradient-to-r from-blue-100 to-indigo-100 rounded-2xl blur opacity-25"></div>
+<div class="relative bg-surface-container-lowest p-8 rounded-xl flex flex-col items-center text-center space-y-4 ios-blur shadow-[0_10px_40px_rgba(26,28,31,0.06)]">
+<div class="w-16 h-16 rounded-full bg-green-50 flex items-center justify-center mb-2">
+<span class="material-symbols-outlined text-green-500 text-4xl" style="font-variation-settings: 'FILL' 1;">check_circle</span>
+</div>
+<div>
+<h3 class="text-xl font-bold text-on-surface">交易成功</h3>
+<p class="text-on-surface-variant mt-2 text-sm">您的贷款申请已通过审核,资金预计将在24小时内到账。</p>
+</div>
+<div class="w-full pt-4 space-y-3">
+<button class="w-full py-4 bg-gradient-to-br from-primary-container to-primary text-white rounded-xl font-semibold shadow-lg shadow-blue-500/20 active:scale-[0.98] transition-transform">查看详情</button>
+<button class="w-full py-4 text-primary font-medium active:opacity-60 transition-opacity">返回首页</button>
+</div>
+</div>
+</div>
+<!-- Error Alert (iOS Compact Style) -->
+<div class="bg-surface-container-lowest/90 ios-blur rounded-xl overflow-hidden shadow-[0_10px_40px_rgba(26,28,31,0.06)] max-w-sm mx-auto">
+<div class="p-6 text-center border-b border-outline-variant/15">
+<h3 class="text-lg font-bold text-on-surface">验证失败</h3>
+<p class="text-on-surface-variant mt-1 text-sm leading-relaxed">无法识别您的身份信息,请重新上传清晰的二代身份证照片。</p>
+</div>
+<div class="grid grid-cols-2">
+<button class="py-4 text-on-surface-variant font-medium border-r border-outline-variant/15 active:bg-surface-container-low">取消</button>
+<button class="py-4 text-primary font-bold active:bg-surface-container-low">重试</button>
+</div>
+</div>
+<!-- Action Dialog (Confirm Disbursement) -->
+<div class="bg-surface-container-lowest p-6 rounded-xl space-y-6 shadow-[0_10px_40px_rgba(26,28,31,0.06)]">
+<div class="flex items-start gap-4">
+<div class="p-3 bg-tertiary-fixed rounded-xl text-tertiary">
+<span class="material-symbols-outlined">account_balance_wallet</span>
+</div>
+<div>
+<h3 class="text-lg font-bold">确认放款申请</h3>
+<p class="text-on-surface-variant text-sm mt-1">请核对放款账户及金额</p>
+</div>
+</div>
+<div class="bg-surface-container-low rounded-xl p-4 space-y-3">
+<div class="flex justify-between items-center">
+<span class="text-sm text-on-surface-variant">放款金额</span>
+<span class="font-bold text-lg">¥ 50,000.00</span>
+</div>
+<div class="flex justify-between items-center">
+<span class="text-sm text-on-surface-variant">收款账户</span>
+<span class="text-sm font-medium">工商银行 (**** 8829)</span>
+</div>
+</div>
+<div class="flex gap-3">
+<button class="flex-1 py-4 bg-surface-container-high text-on-surface font-semibold rounded-xl active:scale-[0.98] transition-transform">稍后再说</button>
+<button class="flex-1 py-4 bg-primary text-white font-semibold rounded-xl shadow-lg shadow-blue-500/20 active:scale-[0.98] transition-transform">确认放款</button>
+</div>
+</div>
+</section>
+<!-- Standard List Items Section -->
+<section class="space-y-6">
+<h2 class="text-2xl font-bold tracking-tight text-on-surface px-2">常用列表项</h2>
+<div class="bg-surface-container-lowest rounded-xl overflow-hidden shadow-[0_1px_3px_rgba(0,0,0,0.02)]">
+<!-- List Item 1 -->
+<div class="flex items-center justify-between p-5 hover:bg-surface-container-low transition-colors cursor-pointer group">
+<div class="flex items-center gap-4">
+<div class="w-10 h-10 rounded-xl bg-blue-50 flex items-center justify-center text-blue-600">
+<span class="material-symbols-outlined">receipt_long</span>
+</div>
+<div>
+<p class="font-semibold text-on-surface">还款计划</p>
+<p class="text-xs text-on-surface-variant">查看每期应还金额与日期</p>
+</div>
+</div>
+<span class="material-symbols-outlined text-outline group-hover:translate-x-1 transition-transform">chevron_right</span>
+</div>
+<!-- List Item 2 (With Status) -->
+<div class="flex items-center justify-between p-5 hover:bg-surface-container-low transition-colors cursor-pointer group">
+<div class="flex items-center gap-4">
+<div class="w-10 h-10 rounded-xl bg-orange-50 flex items-center justify-center text-orange-600">
+<span class="material-symbols-outlined">verified_user</span>
+</div>
+<div>
+<p class="font-semibold text-on-surface">身份认证</p>
+<p class="text-xs text-on-surface-variant">保障您的账户安全</p>
+</div>
+</div>
+<div class="flex items-center gap-2">
+<span class="px-2 py-1 bg-error-container text-on-error-container text-[10px] font-bold rounded-full tracking-wider uppercase">待完善</span>
+<span class="material-symbols-outlined text-outline group-hover:translate-x-1 transition-transform">chevron_right</span>
+</div>
+</div>
+<!-- List Item 3 (Switch style placeholder) -->
+<div class="flex items-center justify-between p-5 hover:bg-surface-container-low transition-colors cursor-pointer">
+<div class="flex items-center gap-4">
+<div class="w-10 h-10 rounded-xl bg-purple-50 flex items-center justify-center text-purple-600">
+<span class="material-symbols-outlined">notifications_active</span>
+</div>
+<div>
+<p class="font-semibold text-on-surface">消息推送</p>
+<p class="text-xs text-on-surface-variant">重要还款提醒</p>
+</div>
+</div>
+<div class="w-12 h-6 bg-primary rounded-full relative flex items-center px-1">
+<div class="w-4 h-4 bg-white rounded-full shadow-sm ml-auto"></div>
+</div>
+</div>
+</div>
+</section>
+<!-- Bento Grid Feature Highlight -->
+<section class="grid grid-cols-2 gap-4">
+<div class="col-span-2 bg-gradient-to-br from-blue-600 to-indigo-700 p-6 rounded-2xl text-white relative overflow-hidden h-44 flex flex-col justify-end">
+<img alt="Finance background" class="absolute inset-0 w-full h-full object-cover opacity-20 mix-blend-overlay" data-alt="high-quality close up of modern architectural glass building reflecting bright blue sky in an abstract pattern" src="https://lh3.googleusercontent.com/aida-public/AB6AXuBVg6ewjYsNUOYJrDAPDMae1nkKoJTuWHYBGZ372QXXeQzBoL04ahS3Xo3Zc2n6JY95Tck3s0lm6CIeZhQ_lNCwENOve-kZfzNXbZ_64g_bK6cdBEo_WqGP88CkL_b9KB7j1thcDELhuHAFGl_iyi057PSTTKslquKpMmkHkh1EwqgjykEpe3s9O5HwDERvGGbQfHEe9MwAq1eymOtmwAqGv8dzrxBi_FGhWYOORuLW5OkExEuB174TyAgaS-8Zc0YfEHY9dPJk3zLL"/>
+<div class="relative z-10">
+<p class="text-blue-100 text-sm font-medium mb-1">当前可用额度</p>
+<h3 class="text-3xl font-extrabold tracking-tight">¥ 125,000.00</h3>
+</div>
+</div>
+<div class="bg-surface-container-lowest p-5 rounded-2xl flex flex-col justify-between h-36 shadow-[0_10px_40px_rgba(26,28,31,0.04)]">
+<span class="material-symbols-outlined text-blue-600 bg-blue-50 w-10 h-10 flex items-center justify-center rounded-xl">monitoring</span>
+<div class="mt-2">
+<p class="text-xs text-on-surface-variant">近7日利率</p>
+<p class="font-bold text-lg text-on-surface">3.45%</p>
+</div>
+</div>
+<div class="bg-surface-container-lowest p-5 rounded-2xl flex flex-col justify-between h-36 shadow-[0_10px_40px_rgba(26,28,31,0.04)]">
+<span class="material-symbols-outlined text-emerald-600 bg-emerald-50 w-10 h-10 flex items-center justify-center rounded-xl">speed</span>
+<div class="mt-2">
+<p class="text-xs text-on-surface-variant">极速审批</p>
+<p class="font-bold text-lg text-on-surface">5 分钟</p>
+</div>
+</div>
+</section>
+</main>
+<!-- BottomNavBar (JSON Component) -->
+<nav class="fixed bottom-0 left-0 w-full bg-white/85 dark:bg-slate-900/85 backdrop-blur-3xl shadow-[0_-10px_40px_rgba(26,28,31,0.04)] rounded-t-3xl z-50 flex justify-around items-center px-4 pt-3 pb-8">
+<div class="flex flex-col items-center justify-center text-blue-600 dark:text-blue-400 active:scale-90 transition-transform duration-150 cursor-pointer">
+<span class="material-symbols-outlined" style="font-variation-settings: 'FILL' 1;">home</span>
+<span class="text-[11px] font-medium leading-none mt-1">首页</span>
+</div>
+<div class="flex flex-col items-center justify-center text-slate-400 dark:text-slate-500 hover:text-blue-50 transition-colors active:scale-90 transition-transform duration-150 cursor-pointer">
+<span class="material-symbols-outlined">group</span>
+<span class="text-[11px] font-medium leading-none mt-1">客户</span>
+</div>
+<div class="flex flex-col items-center justify-center text-slate-400 dark:text-slate-500 hover:text-blue-50 transition-colors active:scale-90 transition-transform duration-150 cursor-pointer">
+<span class="material-symbols-outlined">analytics</span>
+<span class="text-[11px] font-medium leading-none mt-1">分析</span>
+</div>
+<div class="flex flex-col items-center justify-center text-slate-400 dark:text-slate-500 hover:text-blue-50 transition-colors active:scale-90 transition-transform duration-150 cursor-pointer">
+<span class="material-symbols-outlined">description</span>
+<span class="text-[11px] font-medium leading-none mt-1">报表</span>
+</div>
+<div class="flex flex-col items-center justify-center text-slate-400 dark:text-slate-500 hover:text-blue-50 transition-colors active:scale-90 transition-transform duration-150 cursor-pointer">
+<span class="material-symbols-outlined">person</span>
+<span class="text-[11px] font-medium leading-none mt-1">我的</span>
+</div>
+</nav>
+</body></html>

BIN=BIN
design/components/screen.png


+ 89 - 0
design/cupertino_azure/DESIGN.md

@@ -0,0 +1,89 @@
+# Design System Specification: The Ethereal Interface
+
+## 1. Overview & Creative North Star: "The Digital Curator"
+This design system moves away from the rigid, boxed-in constraints of traditional web frameworks to embrace a philosophy we call **The Digital Curator**. Inspired by high-end iOS editorial layouts and the precision of Swiss minimalism, the North Star of this system is *effortless clarity*. 
+
+We do not use lines to contain content; we use light, space, and depth to organize it. The interface should feel like a series of meticulously arranged glass panes floating over a soft, infinite canvas. By prioritizing intentional asymmetry and varying tonal depths, we create a signature experience that feels bespoke, premium, and human-centric.
+
+---
+
+## 2. Colors & Tonal Architecture
+The palette is rooted in a sophisticated "Lucid Blue" (#2563eb) and a spectrum of soft, cool grays. 
+
+### The "No-Line" Rule
+**Explicit Instruction:** Sectioning via 1px solid borders is strictly prohibited. Physical boundaries must be defined solely through background color shifts or tonal transitions. Use `surface_container_low` sections against a `surface` background to create structure without visual "noise."
+
+### Surface Hierarchy & Nesting
+Treat the UI as a physical stack. The depth of a component is determined by its color token:
+*   **Base Layer:** `surface` (#f9f9fe) – The infinite canvas.
+*   **Sectioning:** `surface_container_low` (#f3f3f8) – Subtle grouping of related content.
+*   **Primary Containers:** `surface_container_lowest` (#ffffff) – High-contrast "pops" for cards and interactive elements.
+*   **Floating Elements:** `surface_bright` with 80% opacity and `backdrop-filter: blur(20px)`.
+
+### The "Glass & Gradient" Rule
+To inject "soul" into the interface:
+*   **Action Gradients:** Primary CTAs should transition subtly from `primary_container` (#2563eb) to `primary` (#004ac6) at a 135° angle.
+*   **Glassmorphism:** Headers and navigation bars must use a semi-transparent `surface_container_lowest` with a heavy backdrop blur to allow content colors to bleed through, creating a sense of environmental integration.
+
+---
+
+## 3. Typography: Editorial Authority
+We utilize **SF Pro** (or **PingFang SC** for regional optimization) to maintain an authoritative yet approachable voice. The hierarchy is designed to favor extreme contrast—large, bold headlines paired with generous tracking in labels.
+
+*   **Display (Display-LG/MD/SM):** Set with -0.02em letter spacing. These are your "hooks." Use them sparingly to break the grid.
+*   **Headlines (Headline-LG/MD/SM):** The backbone of the editorial flow. Ensure at least 32px of vertical breathing room above these.
+*   **Body (Body-LG/MD/SM):** Optimized for readability. Use `on_surface_variant` (#434655) for secondary body text to reduce visual weight.
+*   **Labels (Label-MD/SM):** All-caps with +0.05em tracking when used for category tags to provide a premium, "metadata" feel.
+
+---
+
+## 4. Elevation & Depth: Tonal Layering
+Traditional shadows are heavy; we use **Ambient Light** principles.
+
+*   **The Layering Principle:** Instead of shadows, place a `surface_container_lowest` card on top of a `surface_container_low` background. The slight shift in hex value creates a "soft lift."
+*   **Ambient Shadows:** For floating modals or menus, use a multi-layered shadow: `0 10px 40px rgba(26, 28, 31, 0.06)`. The color is a tint of `on_surface`, never pure black.
+*   **The "Ghost Border" Fallback:** If accessibility requires a border, use `outline_variant` (#c3c6d7) at **15% opacity**. It should be felt, not seen.
+*   **Corner Radii:** Apply a consistent `xl` (1.5rem / 24px) for large containers and `lg` (1rem / 16px) for standard cards to mimic the hardware curvature of modern iOS devices.
+
+---
+
+## 5. Components
+
+### Buttons & Interaction
+*   **Primary:** Gradient fill (`primary_container` to `primary`), white text, 16px radius.
+*   **Secondary:** `surface_container_high` background with `on_surface` text. No border.
+*   **Tertiary:** Ghost style. No background, `primary` text weight at "Medium."
+
+### Cards & Lists
+*   **The "No-Divider" Rule:** Vertical lists must never use horizontal lines. Use 16px–24px of vertical padding (`spacing-scale`) or alternating tonal backgrounds to separate items.
+*   **Cards:** Use `surface_container_lowest` with an `xl` corner radius. Content inside should have at least 24px of internal padding.
+
+### Input Fields
+*   **Form Style:** Use a "filled" approach rather than outlined. Use `surface_container_low` as the base. Upon focus, transition the background to `surface_container_lowest` and apply a 2px `primary` "Ghost Border" (20% opacity).
+
+### iOS Navigation Patterns
+*   **Bottom Sheets:** Use for secondary actions. Must include a "grabber" (a 36x5mm pill in `outline_variant`).
+*   **Tab Bars:** 100% width, `surface_container_lowest` with 85% opacity and `backdrop-filter: blur(30px)`. Icons should use `primary` for active states and `outline` for inactive.
+
+---
+
+## 6. Do's and Don'ts
+
+### Do:
+*   **Do** embrace negative space. If a layout feels "empty," it is likely working.
+*   **Do** use asymmetrical margins (e.g., a wider left margin for headlines) to create an editorial feel.
+*   **Do** use `primary_fixed_dim` for subtle accent backgrounds behind icons.
+
+### Don't:
+*   **Don't** use 1px solid borders to separate sections. Use color tokens `surface` vs `surface_container`.
+*   **Don't** use pure black (#000000) for text. Use `on_surface` (#1a1c1f) to maintain a premium softness.
+*   **Don't** use standard "drop shadows." If it looks like a 2010 web app, the blur radius is too small and the opacity is too high.
+
+
+
+
+1,根据@xx 下的设计生成相关react-native页面
+2,严格遵循 expo,expo-router 模式
+3,更具@xx 下的设计和@De 生成tailwind.config.js 里的通用颜色,尺寸等.颜色尽量使用 tailwind 里已命名颜色
+4,然后使用 nativewind/tailwndcss 来构建最终react-native页面
+5,参考@xx 下的  react-native 页面模版

+ 267 - 0
design/home/code.html

@@ -0,0 +1,267 @@
+<!DOCTYPE html>
+
+<html lang="zh-CN"><head>
+<meta charset="utf-8"/>
+<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
+<title>贷款助手 - 工作台</title>
+<script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
+<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&amp;display=swap" rel="stylesheet"/>
+<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
+<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
+<script id="tailwind-config">
+      tailwind.config = {
+        darkMode: "class",
+        theme: {
+          extend: {
+            "colors": {
+                    "on-primary": "#ffffff",
+                    "surface-container-highest": "#e2e2e7",
+                    "background": "#f9f9fe",
+                    "on-surface": "#1a1c1f",
+                    "on-secondary-container": "#394c84",
+                    "on-surface-variant": "#434655",
+                    "primary-container": "#2563eb",
+                    "surface-container": "#ededf2",
+                    "primary": "#004ac6",
+                    "on-error": "#ffffff",
+                    "on-secondary-fixed-variant": "#31447b",
+                    "primary-fixed": "#dbe1ff",
+                    "tertiary-fixed-dim": "#ffb596",
+                    "secondary-fixed": "#dbe1ff",
+                    "on-error-container": "#93000a",
+                    "tertiary-container": "#bc4800",
+                    "on-tertiary-container": "#ffede6",
+                    "tertiary-fixed": "#ffdbcd",
+                    "inverse-surface": "#2e3034",
+                    "outline-variant": "#c3c6d7",
+                    "secondary": "#495c95",
+                    "on-tertiary-fixed-variant": "#7d2d00",
+                    "on-tertiary-fixed": "#360f00",
+                    "outline": "#737686",
+                    "surface-tint": "#0053db",
+                    "surface-container-lowest": "#ffffff",
+                    "error-container": "#ffdad6",
+                    "inverse-primary": "#b4c5ff",
+                    "on-secondary-fixed": "#00174b",
+                    "secondary-container": "#acbfff",
+                    "surface-dim": "#d9dade",
+                    "surface-bright": "#f9f9fe",
+                    "surface-container-low": "#f3f3f8",
+                    "tertiary": "#943700",
+                    "primary-fixed-dim": "#b4c5ff",
+                    "on-background": "#1a1c1f",
+                    "surface": "#f9f9fe",
+                    "surface-variant": "#e2e2e7",
+                    "surface-container-high": "#e8e8ed",
+                    "inverse-on-surface": "#f0f0f5",
+                    "secondary-fixed-dim": "#b4c5ff",
+                    "on-secondary": "#ffffff",
+                    "on-primary-container": "#eeefff",
+                    "error": "#ba1a1a",
+                    "on-primary-fixed-variant": "#003ea8",
+                    "on-primary-fixed": "#00174b",
+                    "on-tertiary": "#ffffff"
+            },
+            "borderRadius": {
+                    "DEFAULT": "0.25rem",
+                    "lg": "1rem",
+                    "xl": "1.5rem",
+                    "full": "9999px"
+            },
+            "fontFamily": {
+                    "headline": ["Inter", "PingFang SC", "sans-serif"],
+                    "body": ["Inter", "PingFang SC", "sans-serif"],
+                    "label": ["Inter", "PingFang SC", "sans-serif"]
+            }
+          },
+        },
+      }
+    </script>
+<style>
+        body { font-family: 'Inter', 'PingFang SC', sans-serif; -webkit-font-smoothing: antialiased; }
+        .material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; }
+        .glass-effect { backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
+        .no-scrollbar::-webkit-scrollbar { display: none; }
+    </style>
+<style>
+    body {
+      min-height: max(884px, 100dvh);
+    }
+  </style>
+  </head>
+<body class="bg-surface text-on-surface min-h-screen pb-32">
+<!-- Top Navigation Bar -->
+<header class="fixed top-0 w-full z-50 bg-white/80 dark:bg-slate-900/80 backdrop-blur-2xl shadow-[0_1px_0_0_rgba(0,0,0,0.05)] flex items-center justify-between px-6 h-16">
+<div class="flex items-center gap-3">
+<div class="w-10 h-10 rounded-full bg-primary-fixed flex items-center justify-center overflow-hidden">
+<img alt="User Profile" class="w-full h-full object-cover" data-alt="professional portrait of a financial manager with a friendly expression, clean minimalist background" src="https://lh3.googleusercontent.com/aida-public/AB6AXuAaF6Bqe7nlS2tVYmF-LfBIYU57o4Kj4AtfsyncQeQGuLC-ORpT3gePVUf0KTniVG_rFcGCAex_6Hrq0SzCBjcJ_cJyS3PukPTxM2pOEP2KPjBF4R81A3EiHXtOTfCEwPmt6n_RkfBaE3SKySeg4bimGw0Auf3cfPlDA6eQHAsD2bDz5UGqo6vBhT1YrRPuQccm8-YAo7XA0kwa9SOy9CKxODzISqqsmKGRr_npa_Y4c735IDU3fg_2uJGXLheY_KgcqS9di0ub9N1n"/>
+</div>
+<span class="text-lg font-bold text-slate-900 dark:text-slate-100 tracking-tight font-headline">贷款助手</span>
+</div>
+<button class="text-slate-400 hover:opacity-70 transition-opacity active:scale-95 duration-200">
+<span class="material-symbols-outlined text-2xl" data-icon="notifications">notifications</span>
+</button>
+</header>
+<main class="pt-24 px-6 max-w-7xl mx-auto">
+<!-- Greeting Section -->
+<section class="mb-8">
+<p class="text-on-surface-variant text-sm font-label tracking-wider uppercase mb-1">2024年5月22日 星期三</p>
+<h1 class="text-3xl font-extrabold tracking-tight text-on-surface">早上好,王经理</h1>
+</section>
+<!-- Task Statistics - Bento Style -->
+<section class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-8">
+<div class="col-span-2 md:col-span-2 bg-primary-container bg-gradient-to-br from-primary-container to-primary p-6 rounded-xl text-on-primary shadow-lg shadow-primary/10">
+<div class="flex justify-between items-start mb-4">
+<span class="material-symbols-outlined bg-white/20 p-2 rounded-lg" data-icon="pending_actions">pending_actions</span>
+<span class="text-xs font-label bg-white/20 px-2 py-1 rounded-full">+12%</span>
+</div>
+<p class="text-on-primary/80 text-sm mb-1">待处理申请</p>
+<p class="text-4xl font-extrabold">24</p>
+</div>
+<div class="bg-surface-container-lowest p-6 rounded-xl shadow-sm hover:shadow-md transition-shadow">
+<p class="text-on-surface-variant text-sm mb-1">进行中</p>
+<p class="text-2xl font-bold text-on-surface">156</p>
+<div class="mt-4 h-1 w-full bg-surface-container rounded-full overflow-hidden">
+<div class="h-full bg-secondary w-[65%]"></div>
+</div>
+</div>
+<div class="bg-surface-container-lowest p-6 rounded-xl shadow-sm hover:shadow-md transition-shadow">
+<p class="text-on-surface-variant text-sm mb-1">成功撮合</p>
+<p class="text-2xl font-bold text-on-surface">1,280</p>
+<div class="mt-4 h-1 w-full bg-surface-container rounded-full overflow-hidden">
+<div class="h-full bg-tertiary w-[88%]"></div>
+</div>
+</div>
+</section>
+<!-- Quick Actions Grid -->
+<section class="mb-10">
+<h2 class="text-xl font-bold mb-5 tracking-tight">快捷操作</h2>
+<div class="grid grid-cols-4 md:grid-cols-4 gap-4">
+<button class="flex flex-col items-center gap-2 group active:scale-95 transition-transform">
+<div class="w-14 h-14 rounded-2xl bg-surface-container-high flex items-center justify-center text-primary group-hover:bg-primary-container group-hover:text-on-primary transition-colors">
+<span class="material-symbols-outlined text-2xl" data-icon="person_add">person_add</span>
+</div>
+<span class="text-xs font-medium text-on-surface-variant">新增客户</span>
+</button>
+<button class="flex flex-col items-center gap-2 group active:scale-95 transition-transform">
+<div class="w-14 h-14 rounded-2xl bg-surface-container-high flex items-center justify-center text-primary group-hover:bg-primary-container group-hover:text-on-primary transition-colors">
+<span class="material-symbols-outlined text-2xl" data-icon="upload_file">upload_file</span>
+</div>
+<span class="text-xs font-medium text-on-surface-variant">上传征信</span>
+</button>
+<button class="flex flex-col items-center gap-2 group active:scale-95 transition-transform">
+<div class="w-14 h-14 rounded-2xl bg-surface-container-high flex items-center justify-center text-primary group-hover:bg-primary-container group-hover:text-on-primary transition-colors">
+<span class="material-symbols-outlined text-2xl" data-icon="calculate">calculate</span>
+</div>
+<span class="text-xs font-medium text-on-surface-variant">额度测算</span>
+</button>
+<button class="flex flex-col items-center gap-2 group active:scale-95 transition-transform">
+<div class="w-14 h-14 rounded-2xl bg-surface-container-high flex items-center justify-center text-primary group-hover:bg-primary-container group-hover:text-on-primary transition-colors">
+<span class="material-symbols-outlined text-2xl" data-icon="assignment">assignment</span>
+</div>
+<span class="text-xs font-medium text-on-surface-variant">面谈记录</span>
+</button>
+</div>
+</section>
+<!-- Recent Activity List - No Borders -->
+<section class="mb-8">
+<div class="flex items-center justify-between mb-5">
+<h2 class="text-xl font-bold tracking-tight">最近动态</h2>
+<button class="text-primary text-sm font-medium">查看全部</button>
+</div>
+<div class="space-y-3">
+<!-- Activity Item -->
+<div class="bg-surface-container-lowest p-4 rounded-xl flex items-center gap-4 hover:bg-white transition-colors cursor-pointer group shadow-sm">
+<div class="w-12 h-12 rounded-full overflow-hidden bg-surface-container flex-shrink-0">
+<img alt="Client" class="w-full h-full object-cover" data-alt="close up of a professional business man smiling subtly, warm office lighting" src="https://lh3.googleusercontent.com/aida-public/AB6AXuBN6INUD6GZJZO9E4yt06uqTqpwyXWMrIUgV2pCwYF5WwBCDW7Ph8edn7Q6snR9_j1BWelvMgSI8WRbnRPuoFeS8TsHEZZVMGJOa1jmvAbqP8vS4I-CUoryleYtkOdBPbb-Uklm1CxuZQ9g3DMsNW0fCJlebsAsTEb4TH5XMuRBRtd4y94PMCl-qTV49UVIULxRGwzlWkd3SLFgZlJQON0B_mS1vUU2gdrQ5Nqog1tIo1HTu7Wr0RQJ2uI4aijEQC1_68bAV7FsUqKV"/>
+</div>
+<div class="flex-1 min-w-0">
+<div class="flex justify-between items-start mb-1">
+<h3 class="font-bold text-on-surface truncate">张德发 - 经营贷</h3>
+<span class="text-[10px] text-on-surface-variant font-label tracking-tighter">10分钟前</span>
+</div>
+<p class="text-xs text-on-surface-variant truncate">申请材料已上传,等待风控初审</p>
+</div>
+<div class="flex-shrink-0">
+<span class="px-2 py-1 rounded-full bg-secondary-container text-on-secondary-container text-[10px] font-bold">审核中</span>
+</div>
+</div>
+<!-- Activity Item -->
+<div class="bg-surface-container-lowest p-4 rounded-xl flex items-center gap-4 hover:bg-white transition-colors cursor-pointer group shadow-sm">
+<div class="w-12 h-12 rounded-full overflow-hidden bg-surface-container flex-shrink-0">
+<img alt="Client" class="w-full h-full object-cover" data-alt="portrait of a focused young woman professional, neutral corporate background" src="https://lh3.googleusercontent.com/aida-public/AB6AXuD3ARxomxkqEDtguZ0F44aNpo0tJN0xSb2LHoB0N2c_-hVTp9q8-5YinODomTSITdqrMbB9JDmQ98wzFxC_ssuvCqXkS57vmavdr8l-KvAqUwpVs8eYXG0uZQESpqSwhWzcVRG1NH7HUqqeIQv04i3LGpexi1FCUL0DDXa-h2m5rB1squXJNtca6Fw5pIWKs9a6z_03-JvtrEeF_Y3lL__3GcXZobhny9FL3cIjvVAWzkAO7jUhsLsaTu2i72FR_FOORgaZUezLv4yU"/>
+</div>
+<div class="flex-1 min-w-0">
+<div class="flex justify-between items-start mb-1">
+<h3 class="font-bold text-on-surface truncate">李美华 - 消费贷</h3>
+<span class="text-[10px] text-on-surface-variant font-label tracking-tighter">2小时前</span>
+</div>
+<p class="text-xs text-on-surface-variant truncate">系统匹配到 3 个符合条件的银行产品</p>
+</div>
+<div class="flex-shrink-0">
+<span class="px-2 py-1 rounded-full bg-tertiary-fixed text-on-tertiary-fixed text-[10px] font-bold">已匹配</span>
+</div>
+</div>
+<!-- Activity Item -->
+<div class="bg-surface-container-lowest p-4 rounded-xl flex items-center gap-4 hover:bg-white transition-colors cursor-pointer group shadow-sm">
+<div class="w-12 h-12 rounded-full overflow-hidden bg-surface-container flex-shrink-0">
+<img alt="Client" class="w-full h-full object-cover" data-alt="middle aged business owner in a casual work setting, natural sunlight" src="https://lh3.googleusercontent.com/aida-public/AB6AXuCiaR11ypA0jGtLcMe_CH3TZ7X-Yded6O2rbm1v8fkG8hdEdIQbT01t-mqrgPJPQJfaLRg8mTky8H199bePT72WmFDaNxnR7EGb6VWloG6FbTNqcJ4C8_OwzmZM4xgvD57S-SBSufnVUHZWXtMD0P5J4Zu1HTvWqQ3DwWxCHiKFGU0dIOpDJCx1H2SJK8yMVOm3PpNovp3yCbu1ozfejIFQs3E7TRRCPQWiVBu6tCE60TX6gTXutYQbCrdUKE6qJrknsIuDJjFonxsz"/>
+</div>
+<div class="flex-1 min-w-0">
+<div class="flex justify-between items-start mb-1">
+<h3 class="font-bold text-on-surface truncate">王大锤 - 房抵贷</h3>
+<span class="text-[10px] text-on-surface-variant font-label tracking-tighter">1天前</span>
+</div>
+<p class="text-xs text-on-surface-variant truncate">银行面谈已完成,正在落实抵押登记</p>
+</div>
+<div class="flex-shrink-0">
+<span class="px-2 py-1 rounded-full bg-primary-fixed text-on-primary-fixed text-[10px] font-bold">待抵押</span>
+</div>
+</div>
+</div>
+</section>
+<!-- Insights / Banner -->
+<section class="mb-12">
+<div class="relative overflow-hidden rounded-xl h-40 bg-slate-900 flex items-center p-8">
+<div class="z-10 relative">
+<h4 class="text-white text-xl font-bold mb-2">行业洞察</h4>
+<p class="text-slate-300 text-sm max-w-[200px]">本周 LPR 利率下调,建议优先推荐...</p>
+<button class="mt-4 bg-white text-slate-900 px-4 py-2 rounded-lg text-xs font-bold">立即了解</button>
+</div>
+<div class="absolute right-0 top-0 w-1/2 h-full opacity-60">
+<img class="w-full h-full object-cover" data-alt="abstract financial data visualization with glowing blue lines and charts on dark background" src="https://lh3.googleusercontent.com/aida-public/AB6AXuCM9E5OgTecmLIXhMBBU1EwgHmlR_fdkeQo6g8xyIvEBNaxWcvpFgwBDX6Wht2qNj6JQa3ggfpd2wK_QgX7TUP6JVoHx3T2PUsSi6C7CnPuiKcRudm7qGvqQTUwnHMAJWIUzGwrIfH-6b9ilybdzZhO55JrR07fv4N_5eizbgyAZ2CurDcTNK3dbJ0RvM6ryV5Pno4_QPD-nQIgyynZYKw9gezixTGLl7LvXg4cMao_ZwFf7hLXhfsJP4QnTzut_Ffyu__mxYYZljl_"/>
+</div>
+<div class="absolute inset-0 bg-gradient-to-r from-slate-900 via-slate-900/40 to-transparent"></div>
+</div>
+</section>
+</main>
+<!-- Bottom Navigation Bar -->
+<nav class="fixed bottom-0 left-0 w-full flex justify-around items-center px-4 pt-3 pb-8 bg-white/85 dark:bg-slate-900/85 backdrop-blur-3xl shadow-[0_-10px_40px_rgba(26,28,31,0.04)] z-50 rounded-t-3xl">
+<a class="flex flex-col items-center justify-center text-blue-600 dark:text-blue-400 active:scale-90 transition-transform duration-150" href="#">
+<span class="material-symbols-outlined" data-icon="home" style="font-variation-settings: 'FILL' 1;">home</span>
+<span class="text-[11px] font-medium leading-none mt-1">首页</span>
+</a>
+<a class="flex flex-col items-center justify-center text-slate-400 dark:text-slate-500 hover:text-blue-500 transition-colors active:scale-90 duration-150" href="#">
+<span class="material-symbols-outlined" data-icon="group">group</span>
+<span class="text-[11px] font-medium leading-none mt-1">客户</span>
+</a>
+<a class="flex flex-col items-center justify-center text-slate-400 dark:text-slate-500 hover:text-blue-500 transition-colors active:scale-90 duration-150" href="#">
+<span class="material-symbols-outlined" data-icon="analytics">analytics</span>
+<span class="text-[11px] font-medium leading-none mt-1">分析</span>
+</a>
+<a class="flex flex-col items-center justify-center text-slate-400 dark:text-slate-500 hover:text-blue-500 transition-colors active:scale-90 duration-150" href="#">
+<span class="material-symbols-outlined" data-icon="description">description</span>
+<span class="text-[11px] font-medium leading-none mt-1">报表</span>
+</a>
+<a class="flex flex-col items-center justify-center text-slate-400 dark:text-slate-500 hover:text-blue-500 transition-colors active:scale-90 duration-150" href="#">
+<span class="material-symbols-outlined" data-icon="person">person</span>
+<span class="text-[11px] font-medium leading-none mt-1">我的</span>
+</a>
+</nav>
+<!-- FAB -->
+<div class="fixed bottom-24 right-6 z-40">
+<button class="w-14 h-14 rounded-full bg-gradient-to-br from-primary-container to-primary text-on-primary flex items-center justify-center shadow-2xl shadow-primary/40 active:scale-90 transition-transform">
+<span class="material-symbols-outlined text-3xl" data-icon="add">add</span>
+</button>
+</div>
+</body></html>

BIN=BIN
design/home/screen.png


+ 218 - 0
design/profile/code.html

@@ -0,0 +1,218 @@
+<!DOCTYPE html>
+
+<html lang="zh-CN"><head>
+<meta charset="utf-8"/>
+<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
+<script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
+<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&amp;family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
+<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
+<script id="tailwind-config">
+      tailwind.config = {
+        darkMode: "class",
+        theme: {
+          extend: {
+            "colors": {
+                    "on-primary": "#ffffff",
+                    "surface-container-highest": "#e2e2e7",
+                    "background": "#f9f9fe",
+                    "on-surface": "#1a1c1f",
+                    "on-secondary-container": "#394c84",
+                    "on-surface-variant": "#434655",
+                    "primary-container": "#2563eb",
+                    "surface-container": "#ededf2",
+                    "primary": "#004ac6",
+                    "on-error": "#ffffff",
+                    "on-secondary-fixed-variant": "#31447b",
+                    "primary-fixed": "#dbe1ff",
+                    "tertiary-fixed-dim": "#ffb596",
+                    "secondary-fixed": "#dbe1ff",
+                    "on-error-container": "#93000a",
+                    "tertiary-container": "#bc4800",
+                    "on-tertiary-container": "#ffede6",
+                    "tertiary-fixed": "#ffdbcd",
+                    "inverse-surface": "#2e3034",
+                    "outline-variant": "#c3c6d7",
+                    "secondary": "#495c95",
+                    "on-tertiary-fixed-variant": "#7d2d00",
+                    "on-tertiary-fixed": "#360f00",
+                    "outline": "#737686",
+                    "surface-tint": "#0053db",
+                    "surface-container-lowest": "#ffffff",
+                    "error-container": "#ffdad6",
+                    "inverse-primary": "#b4c5ff",
+                    "on-secondary-fixed": "#00174b",
+                    "secondary-container": "#acbfff",
+                    "surface-dim": "#d9dade",
+                    "surface-bright": "#f9f9fe",
+                    "surface-container-low": "#f3f3f8",
+                    "tertiary": "#943700",
+                    "primary-fixed-dim": "#b4c5ff",
+                    "on-background": "#1a1c1f",
+                    "surface": "#f9f9fe",
+                    "surface-variant": "#e2e2e7",
+                    "surface-container-high": "#e8e8ed",
+                    "inverse-on-surface": "#f0f0f5",
+                    "secondary-fixed-dim": "#b4c5ff",
+                    "on-secondary": "#ffffff",
+                    "on-primary-container": "#eeefff",
+                    "error": "#ba1a1a",
+                    "on-primary-fixed-variant": "#003ea8",
+                    "on-primary-fixed": "#00174b",
+                    "on-tertiary": "#ffffff"
+            },
+            "borderRadius": {
+                    "DEFAULT": "0.25rem",
+                    "lg": "1rem",
+                    "xl": "1.5rem",
+                    "full": "9999px"
+            },
+            "fontFamily": {
+                    "headline": ["Inter", "PingFang SC"],
+                    "body": ["Inter", "PingFang SC"],
+                    "label": ["Inter", "PingFang SC"]
+            }
+          },
+        },
+      }
+    </script>
+<style>
+        .material-symbols-outlined {
+            font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
+            display: inline-block;
+            vertical-align: middle;
+        }
+        body {
+            font-family: 'Inter', 'PingFang SC', sans-serif;
+            -webkit-tap-highlight-color: transparent;
+        }
+        .glass-header {
+            backdrop-filter: blur(20px);
+            -webkit-backdrop-filter: blur(20px);
+        }
+    </style>
+<style>
+    body {
+      min-height: max(884px, 100dvh);
+    }
+  </style>
+  </head>
+<body class="bg-surface text-on-surface antialiased min-h-screen">
+<!-- TopAppBar -->
+<header class="fixed top-0 w-full z-50 bg-white/80 dark:bg-slate-900/80 backdrop-blur-2xl shadow-[0_1px_0_0_rgba(0,0,0,0.05)] flex items-center justify-between px-6 h-16 w-full">
+<div class="flex items-center gap-3">
+<div class="w-8 h-8 rounded-full overflow-hidden bg-surface-container">
+<img alt="User Profile" class="w-full h-full object-cover" data-alt="Close up portrait of a professional smiling Asian man in a business suit, soft natural lighting, clean background" src="https://lh3.googleusercontent.com/aida-public/AB6AXuCMclVdJTkeuusRqwHroiAItsC4Vp-AMqYCVxizWrvaTerY_EyETRglTkVpKG2uKa0PD3LpQfAS1-YS9rronBh1L3v-4pz7ZwYKRCg0VsGMTVpRTm6y-Y3y0xgKRbBRu4nE0MsXuBjENLUjmEw3vMMjVsiymFRYytvRlnjtz3XF5uc6CgAwDwFas0rRxbwC8s0lgwt8QrGNTGf_XsT-fXSud2U3ygX5CR3mv00p63SLpPkP0NK92CyNehCjDfk13ZpICH2AECVemxIB"/>
+</div>
+<span class="text-lg font-bold text-slate-900 dark:text-slate-100 font-['PingFang_SC','SF_Pro','Inter'] tracking-tight">贷款助手</span>
+</div>
+<div class="flex items-center">
+<button class="text-slate-400 dark:text-slate-500 hover:opacity-70 transition-opacity active:scale-95 duration-200">
+<span class="material-symbols-outlined" data-icon="notifications">notifications</span>
+</button>
+</div>
+</header>
+<main class="pt-24 pb-32 px-6 max-w-2xl mx-auto">
+<!-- Profile Hero Section -->
+<section class="flex flex-col items-center mb-10">
+<div class="relative mb-4">
+<div class="w-28 h-28 rounded-full p-1 bg-gradient-to-tr from-primary-container to-primary">
+<div class="w-full h-full rounded-full overflow-hidden border-4 border-surface-container-lowest">
+<img alt="User Profile" class="w-full h-full object-cover" data-alt="Professional headshot of an Asian financial advisor, clean studio lighting, high-end editorial style" src="https://lh3.googleusercontent.com/aida-public/AB6AXuD59yXzbwu2NndPt-nUsaCtM_jVcIvKafSSabxXRJz6bJcrk_HWZK0UUj9-hS8dnMb402NXmsqQfky5_l6wznb__lkBSydi4iKlQd4ghp7x6G5sSoImRHxDomyEZ9y73NG1f2Ye2a7RVlf5fkHpNqtG34TGaVC380vB7E1xXTeL-SjAABE3aT0uMQJ6M4Cfu8h6p-0I5_sje4NznSWnynLP0NT9GF-96tY0A9nJzHiurKQ5kz7fjYPnJLKVWRtEVxJxGtx_9Wh4XNWl"/>
+</div>
+</div>
+<div class="absolute bottom-1 right-1 bg-primary text-on-primary w-8 h-8 rounded-full flex items-center justify-center border-4 border-surface-container-lowest shadow-lg">
+<span class="material-symbols-outlined text-[16px]" style="font-variation-settings: 'FILL' 1;">verified</span>
+</div>
+</div>
+<h1 class="text-2xl font-extrabold tracking-tight text-on-surface mb-1">张建华</h1>
+<p class="text-on-surface-variant text-sm font-medium tracking-wide">高级信贷经理 · 智融金融</p>
+</section>
+<!-- Stats Grid (Bento Style) -->
+<section class="grid grid-cols-3 gap-4 mb-10">
+<div class="bg-surface-container-lowest rounded-xl p-4 flex flex-col items-center justify-center text-center shadow-sm">
+<span class="text-primary text-xl font-extrabold mb-1">128</span>
+<span class="text-[10px] uppercase tracking-widest text-outline font-bold">已完成</span>
+</div>
+<div class="bg-surface-container-lowest rounded-xl p-4 flex flex-col items-center justify-center text-center shadow-sm">
+<span class="text-primary text-xl font-extrabold mb-1">94%</span>
+<span class="text-[10px] uppercase tracking-widest text-outline font-bold">成功率</span>
+</div>
+<div class="bg-surface-container-lowest rounded-xl p-4 flex flex-col items-center justify-center text-center shadow-sm">
+<span class="text-primary text-xl font-extrabold mb-1">¥42k</span>
+<span class="text-[10px] uppercase tracking-widest text-outline font-bold">本月收入</span>
+</div>
+</section>
+<!-- Menu Groups -->
+<div class="space-y-6">
+<!-- Professional Group -->
+<div class="bg-surface-container-lowest rounded-xl overflow-hidden shadow-sm">
+<div class="flex items-center px-5 py-4 active:bg-surface-container-low transition-colors group">
+<div class="w-10 h-10 rounded-lg bg-blue-50 flex items-center justify-center text-primary mr-4">
+<span class="material-symbols-outlined" data-icon="group">group</span>
+</div>
+<span class="flex-1 font-semibold text-on-surface">我的客户</span>
+<span class="material-symbols-outlined text-outline-variant group-active:translate-x-1 transition-transform" data-icon="chevron_right">chevron_right</span>
+</div>
+<div class="flex items-center px-5 py-4 active:bg-surface-container-low transition-colors group">
+<div class="w-10 h-10 rounded-lg bg-indigo-50 flex items-center justify-center text-indigo-600 mr-4">
+<span class="material-symbols-outlined" data-icon="domain">domain</span>
+</div>
+<span class="flex-1 font-semibold text-on-surface">机构设置</span>
+<span class="material-symbols-outlined text-outline-variant group-active:translate-x-1 transition-transform" data-icon="chevron_right">chevron_right</span>
+</div>
+</div>
+<!-- System Group -->
+<div class="bg-surface-container-lowest rounded-xl overflow-hidden shadow-sm">
+<div class="flex items-center px-5 py-4 active:bg-surface-container-low transition-colors group">
+<div class="w-10 h-10 rounded-lg bg-orange-50 flex items-center justify-center text-orange-600 mr-4">
+<span class="material-symbols-outlined" data-icon="shield">shield</span>
+</div>
+<span class="flex-1 font-semibold text-on-surface">安全设置</span>
+<span class="material-symbols-outlined text-outline-variant group-active:translate-x-1 transition-transform" data-icon="chevron_right">chevron_right</span>
+</div>
+<div class="flex items-center px-5 py-4 active:bg-surface-container-low transition-colors group">
+<div class="w-10 h-10 rounded-lg bg-green-50 flex items-center justify-center text-green-600 mr-4">
+<span class="material-symbols-outlined" data-icon="contact_support">contact_support</span>
+</div>
+<span class="flex-1 font-semibold text-on-surface">帮助与支持</span>
+<span class="material-symbols-outlined text-outline-variant group-active:translate-x-1 transition-transform" data-icon="chevron_right">chevron_right</span>
+</div>
+<div class="flex items-center px-5 py-4 active:bg-surface-container-low transition-colors group">
+<div class="w-10 h-10 rounded-lg bg-slate-50 flex items-center justify-center text-slate-600 mr-4">
+<span class="material-symbols-outlined" data-icon="info">info</span>
+</div>
+<span class="flex-1 font-semibold text-on-surface">关于我们</span>
+<span class="material-symbols-outlined text-outline-variant group-active:translate-x-1 transition-transform" data-icon="chevron_right">chevron_right</span>
+</div>
+</div>
+<!-- Logout Button -->
+<button class="w-full mt-4 bg-surface-container-low hover:bg-error-container/10 text-error font-bold py-4 rounded-xl transition-all active:scale-[0.98] flex items-center justify-center gap-2">
+<span class="material-symbols-outlined" data-icon="logout">logout</span>
+                退出登录
+            </button>
+</div>
+</main>
+<!-- BottomNavBar -->
+<nav class="fixed bottom-0 left-0 w-full z-50 rounded-t-3xl bg-white/85 dark:bg-slate-900/85 backdrop-blur-3xl shadow-[0_-10px_40px_rgba(26,28,31,0.04)] border-none flex justify-around items-center px-4 pt-3 pb-8">
+<div class="flex flex-col items-center justify-center text-slate-400 dark:text-slate-500 hover:text-blue-500 transition-colors active:scale-90 duration-150">
+<span class="material-symbols-outlined" data-icon="home">home</span>
+<span class="text-[11px] font-medium leading-none mt-1">首页</span>
+</div>
+<div class="flex flex-col items-center justify-center text-slate-400 dark:text-slate-500 hover:text-blue-500 transition-colors active:scale-90 duration-150">
+<span class="material-symbols-outlined" data-icon="group">group</span>
+<span class="text-[11px] font-medium leading-none mt-1">客户</span>
+</div>
+<div class="flex flex-col items-center justify-center text-slate-400 dark:text-slate-500 hover:text-blue-500 transition-colors active:scale-90 duration-150">
+<span class="material-symbols-outlined" data-icon="analytics">analytics</span>
+<span class="text-[11px] font-medium leading-none mt-1">分析</span>
+</div>
+<div class="flex flex-col items-center justify-center text-slate-400 dark:text-slate-500 hover:text-blue-500 transition-colors active:scale-90 duration-150">
+<span class="material-symbols-outlined" data-icon="description">description</span>
+<span class="text-[11px] font-medium leading-none mt-1">报表</span>
+</div>
+<div class="flex flex-col items-center justify-center text-blue-600 dark:text-blue-400 hover:text-blue-500 transition-colors active:scale-90 duration-150">
+<span class="material-symbols-outlined" data-icon="person" style="font-variation-settings: 'FILL' 1;">person</span>
+<span class="text-[11px] font-medium leading-none mt-1">我的</span>
+</div>
+</nav>
+</body></html>

BIN=BIN
design/profile/screen.png


+ 197 - 0
design/sign/code.html

@@ -0,0 +1,197 @@
+<!DOCTYPE html>
+
+<html lang="zh-CN"><head>
+<meta charset="utf-8"/>
+<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
+<title>贷款助手 - 登录</title>
+<script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
+<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
+<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&amp;display=swap" rel="stylesheet"/>
+<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
+<script id="tailwind-config">
+        tailwind.config = {
+            darkMode: "class",
+            theme: {
+                extend: {
+                    "colors": {
+                        "on-primary": "#ffffff",
+                        "surface-container-highest": "#e2e2e7",
+                        "background": "#f9f9fe",
+                        "on-surface": "#1a1c1f",
+                        "on-secondary-container": "#394c84",
+                        "on-surface-variant": "#434655",
+                        "primary-container": "#2563eb",
+                        "surface-container": "#ededf2",
+                        "primary": "#004ac6",
+                        "on-error": "#ffffff",
+                        "on-secondary-fixed-variant": "#31447b",
+                        "primary-fixed": "#dbe1ff",
+                        "tertiary-fixed-dim": "#ffb596",
+                        "secondary-fixed": "#dbe1ff",
+                        "on-error-container": "#93000a",
+                        "tertiary-container": "#bc4800",
+                        "on-tertiary-container": "#ffede6",
+                        "tertiary-fixed": "#ffdbcd",
+                        "inverse-surface": "#2e3034",
+                        "outline-variant": "#c3c6d7",
+                        "secondary": "#495c95",
+                        "on-tertiary-fixed-variant": "#7d2d00",
+                        "on-tertiary-fixed": "#360f00",
+                        "outline": "#737686",
+                        "surface-tint": "#0053db",
+                        "surface-container-lowest": "#ffffff",
+                        "error-container": "#ffdad6",
+                        "inverse-primary": "#b4c5ff",
+                        "on-secondary-fixed": "#00174b",
+                        "secondary-container": "#acbfff",
+                        "surface-dim": "#d9dade",
+                        "surface-bright": "#f9f9fe",
+                        "surface-container-low": "#f3f3f8",
+                        "tertiary": "#943700",
+                        "primary-fixed-dim": "#b4c5ff",
+                        "on-background": "#1a1c1f",
+                        "surface": "#f9f9fe",
+                        "surface-variant": "#e2e2e7",
+                        "surface-container-high": "#e8e8ed",
+                        "inverse-on-surface": "#f0f0f5",
+                        "secondary-fixed-dim": "#b4c5ff",
+                        "on-secondary": "#ffffff",
+                        "on-primary-container": "#eeefff",
+                        "error": "#ba1a1a",
+                        "on-primary-fixed-variant": "#003ea8",
+                        "on-primary-fixed": "#00174b",
+                        "on-tertiary": "#ffffff"
+                    },
+                    "borderRadius": {
+                        "DEFAULT": "0.25rem",
+                        "lg": "1rem",
+                        "xl": "1.5rem",
+                        "full": "9999px"
+                    },
+                    "fontFamily": {
+                        "headline": ["Inter", "PingFang SC", "sans-serif"],
+                        "body": ["Inter", "PingFang SC", "sans-serif"],
+                        "label": ["Inter", "PingFang SC", "sans-serif"]
+                    }
+                },
+            }
+        }
+    </script>
+<style>
+        .material-symbols-outlined {
+            font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
+        }
+        .ios-blur {
+            backdrop-filter: blur(20px);
+            -webkit-backdrop-filter: blur(20px);
+        }
+        body {
+            font-family: 'Inter', 'PingFang SC', sans-serif;
+            -webkit-font-smoothing: antialiased;
+        }
+        .no-scrollbar::-webkit-scrollbar {
+            display: none;
+        }
+    </style>
+<style>
+    body {
+      min-height: max(884px, 100dvh);
+    }
+  </style>
+  </head>
+<body class="bg-surface text-on-surface min-h-screen flex flex-col items-center justify-start overflow-x-hidden">
+<!-- Hero Background Graphic (Ethereal Style) -->
+<div class="fixed top-0 left-0 w-full h-[397px] z-0 overflow-hidden">
+<div class="absolute inset-0 bg-gradient-to-br from-primary-container/10 via-surface to-surface"></div>
+<div class="absolute -top-24 -right-24 w-96 h-96 bg-primary-container/5 rounded-full blur-[80px]"></div>
+<div class="absolute top-1/4 -left-20 w-64 h-64 bg-secondary-container/10 rounded-full blur-[60px]"></div>
+</div>
+<!-- Main Content Canvas -->
+<main class="relative z-10 w-full max-w-md px-8 pt-24 pb-12 flex flex-col min-h-screen">
+<!-- Header Section -->
+<header class="mb-12">
+<div class="w-16 h-16 bg-gradient-to-tr from-primary-container to-primary rounded-xl flex items-center justify-center shadow-xl shadow-primary/20 mb-6">
+<span class="material-symbols-outlined text-white text-4xl" style="font-variation-settings: 'FILL' 1;">account_balance</span>
+</div>
+<h1 class="text-3xl font-bold tracking-tight text-on-surface mb-2">欢迎回来</h1>
+<p class="text-on-surface-variant font-medium">登录贷款助手,开启您的财务管理之旅</p>
+</header>
+<!-- Login Card -->
+<section class="bg-surface-container-lowest/80 ios-blur rounded-xl p-1 shadow-sm mb-8">
+<!-- Tabs -->
+<nav class="flex p-1 gap-1 mb-6">
+<button class="flex-1 py-3 text-sm font-semibold rounded-lg bg-surface-container-lowest shadow-sm text-primary transition-all duration-200">
+                    验证码登录
+                </button>
+<button class="flex-1 py-3 text-sm font-semibold text-on-surface-variant hover:text-on-surface transition-colors duration-200">
+                    密码登录
+                </button>
+</nav>
+<!-- Form Fields -->
+<div class="space-y-4 px-3 pb-6">
+<!-- Phone Number Input -->
+<div class="group">
+<label class="block text-[11px] font-bold tracking-wider text-outline uppercase mb-2 ml-1">手机号码</label>
+<div class="flex items-center bg-surface-container-low rounded-lg px-4 py-3.5 group-focus-within:bg-surface-container-lowest group-focus-within:ring-2 ring-primary/10 transition-all duration-200">
+<span class="text-on-surface font-semibold mr-3">+86</span>
+<div class="w-[1px] h-4 bg-outline-variant/30 mr-3"></div>
+<input class="bg-transparent border-none p-0 w-full text-on-surface placeholder:text-outline/60 focus:ring-0 font-medium" placeholder="请输入手机号" type="tel"/>
+<span class="material-symbols-outlined text-outline/40 text-xl">smartphone</span>
+</div>
+</div>
+<!-- Verification Code Input -->
+<div class="group">
+<label class="block text-[11px] font-bold tracking-wider text-outline uppercase mb-2 ml-1">验证码</label>
+<div class="flex items-center bg-surface-container-low rounded-lg px-4 py-3.5 group-focus-within:bg-surface-container-lowest group-focus-within:ring-2 ring-primary/10 transition-all duration-200">
+<input class="bg-transparent border-none p-0 w-full text-on-surface placeholder:text-outline/60 focus:ring-0 font-medium" placeholder="请输入6位验证码" type="text"/>
+<button class="ml-2 text-sm font-bold text-primary hover:opacity-70 active:scale-95 transition-all">
+                            获取验证码
+                        </button>
+</div>
+</div>
+</div>
+</section>
+<!-- Action Buttons -->
+<div class="space-y-4">
+<button class="w-full py-4 bg-gradient-to-br from-primary-container to-primary text-white font-bold rounded-lg shadow-lg shadow-primary/20 active:scale-[0.98] transition-all duration-200">
+                立即登录
+            </button>
+<div class="flex items-center justify-between px-2">
+<button class="text-sm font-medium text-on-surface-variant hover:text-primary transition-colors">注册账号</button>
+<button class="text-sm font-medium text-on-surface-variant hover:text-primary transition-colors">遇到问题?</button>
+</div>
+</div>
+<!-- Social Login / Divider -->
+<div class="mt-auto pt-12">
+<div class="flex items-center gap-4 mb-8">
+<div class="h-[1px] flex-1 bg-surface-container-highest"></div>
+<span class="text-xs font-bold text-outline tracking-widest uppercase">其他方式登录</span>
+<div class="h-[1px] flex-1 bg-surface-container-highest"></div>
+</div>
+<div class="flex justify-center gap-8 mb-12">
+<button class="w-12 h-12 rounded-full bg-surface-container-low flex items-center justify-center hover:bg-surface-container-high transition-colors active:scale-90 duration-150">
+<img alt="WeChat" class="w-6 h-6 grayscale opacity-60 hover:grayscale-0 hover:opacity-100 transition-all" data-alt="clean minimalist wechat icon logo in blue tone" src="https://lh3.googleusercontent.com/aida-public/AB6AXuB-r_nprCYMXXP2IvUJKNxUMXqvqCVHA4QMiC0fscarJC6YBIZFWm5zd7l7o_ud73RNOYAjKGl4FDnHWKy-1adLF1pPPD0XwDBZJGIP7Z5rjLct5E3spblLRPrO5FT2e0tdJgLEjzF2wsqmthedf5_8z-r3pYF7G_26sp7_SNceiIRPowaBP5LhAvnUNGrzK4JpZpj6Luvnp4C2RAL3w_fC0u38g3Bs3bnoTXmzOv_ACVg6Wpf4URUJPJ-ZCQIk915fJf01xzch-nhN"/>
+</button>
+<button class="w-12 h-12 rounded-full bg-surface-container-low flex items-center justify-center hover:bg-surface-container-high transition-colors active:scale-90 duration-150">
+<img alt="Apple" class="w-6 h-6 grayscale opacity-60 hover:grayscale-0 hover:opacity-100 transition-all" data-alt="minimalist apple logo in blue tone" src="https://lh3.googleusercontent.com/aida-public/AB6AXuDuvbBzcdMbP8ADIppF3NoJee0KH2m6P_b7Nme5ZSShMS-cMkx9oVVC5UVW82iGY9StX8UCRmVK_jFJc3GYlujROsy13xdz0BfQFM2uyxNp8c2dbxAQo8txyO9Sop2GhBnM9bC18w8Zb63nuBWzPPl2hpeE-PBMJ24RSq6ZTAgZ5t4nCzTvmsm-PWkZ0S3_uNkuTgb_JTfs8pPyYepcxxBm3gvfRy9v06yNFrtyRvLpfyaaRlWSGHCeV2RZUQcKxggPLrxF0WTM6Jr5"/>
+</button>
+</div>
+<!-- Agreement Section -->
+<div class="flex items-start gap-3 px-2">
+<div class="pt-0.5">
+<input class="w-4 h-4 rounded-full border-outline-variant text-primary focus:ring-primary/20 bg-surface-container-low transition-all" id="agreement" type="checkbox"/>
+</div>
+<label class="text-xs leading-relaxed text-on-surface-variant" for="agreement">
+                    登录即代表您已阅读并同意
+                    <a class="text-primary font-semibold" href="#">《用户服务协议》</a>、
+                    <a class="text-primary font-semibold" href="#">《隐私政策》</a>
+                    以及授权该应用获取您的公开信息。
+                </label>
+</div>
+</div>
+</main>
+<!-- Footer Decorative Shape -->
+<div class="fixed bottom-0 left-0 w-full h-24 pointer-events-none overflow-hidden z-0">
+<div class="absolute bottom-0 right-0 w-64 h-64 bg-primary-container/5 rounded-full blur-[60px] translate-y-1/2 translate-x-1/2"></div>
+</div>
+</body></html>

BIN=BIN
design/sign/screen.png


+ 6 - 0
metro.config.js

@@ -0,0 +1,6 @@
+const { getDefaultConfig } = require("expo/metro-config");
+const { withNativeWind } = require('nativewind/metro');
+ 
+const config = getDefaultConfig(__dirname)
+ 
+module.exports = withNativeWind(config, { input: './src/global.css' })

+ 3 - 0
nativewind-env.d.ts

@@ -0,0 +1,3 @@
+/// <reference types="nativewind/types" />
+
+// NOTE: This file should not be edited and should be committed with your source code. It is generated by NativeWind.

+ 1 - 0
package.json

@@ -28,6 +28,7 @@
     "expo-symbols": "~55.0.7",
     "expo-system-ui": "~55.0.14",
     "expo-web-browser": "~55.0.13",
+    "nativewind": "^4.2.3",
     "react": "19.2.0",
     "react-dom": "19.2.0",
     "react-native": "0.83.4",

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 483 - 0
pnpm-lock.yaml


+ 2 - 0
src/app/_layout.tsx

@@ -1,3 +1,5 @@
+import '@/global.css';
+
 import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';
 import React from 'react';
 import { useColorScheme } from 'react-native';

+ 11 - 0
src/app/customer.tsx

@@ -0,0 +1,11 @@
+import { SafeAreaView } from 'react-native-safe-area-context';
+
+
+
+export default function CustomerScreen() {
+  return (
+      <SafeAreaView className='flex-1'>
+        
+      </SafeAreaView>
+  );
+}

+ 0 - 181
src/app/explore.tsx

@@ -1,181 +0,0 @@
-import { Image } from 'expo-image';
-import { SymbolView } from 'expo-symbols';
-import React from 'react';
-import { Platform, Pressable, ScrollView, StyleSheet } from 'react-native';
-import { useSafeAreaInsets } from 'react-native-safe-area-context';
-
-import { ExternalLink } from '@/components/external-link';
-import { ThemedText } from '@/components/themed-text';
-import { ThemedView } from '@/components/themed-view';
-import { Collapsible } from '@/components/ui/collapsible';
-import { WebBadge } from '@/components/web-badge';
-import { BottomTabInset, MaxContentWidth, Spacing } from '@/constants/theme';
-import { useTheme } from '@/hooks/use-theme';
-
-export default function TabTwoScreen() {
-  const safeAreaInsets = useSafeAreaInsets();
-  const insets = {
-    ...safeAreaInsets,
-    bottom: safeAreaInsets.bottom + BottomTabInset + Spacing.three,
-  };
-  const theme = useTheme();
-
-  const contentPlatformStyle = Platform.select({
-    android: {
-      paddingTop: insets.top,
-      paddingLeft: insets.left,
-      paddingRight: insets.right,
-      paddingBottom: insets.bottom,
-    },
-    web: {
-      paddingTop: Spacing.six,
-      paddingBottom: Spacing.four,
-    },
-  });
-
-  return (
-    <ScrollView
-      style={[styles.scrollView, { backgroundColor: theme.background }]}
-      contentInset={insets}
-      contentContainerStyle={[styles.contentContainer, contentPlatformStyle]}>
-      <ThemedView style={styles.container}>
-        <ThemedView style={styles.titleContainer}>
-          <ThemedText type="subtitle">Explore</ThemedText>
-          <ThemedText style={styles.centerText} themeColor="textSecondary">
-            This starter app includes example{'\n'}code to help you get started.
-          </ThemedText>
-
-          <ExternalLink href="https://docs.expo.dev" asChild>
-            <Pressable style={({ pressed }) => pressed && styles.pressed}>
-              <ThemedView type="backgroundElement" style={styles.linkButton}>
-                <ThemedText type="link">Expo documentation</ThemedText>
-                <SymbolView
-                  tintColor={theme.text}
-                  name={{ ios: 'arrow.up.right.square', android: 'link', web: 'link' }}
-                  size={12}
-                />
-              </ThemedView>
-            </Pressable>
-          </ExternalLink>
-        </ThemedView>
-
-        <ThemedView style={styles.sectionsWrapper}>
-          <Collapsible title="File-based routing">
-            <ThemedText type="small">
-              This app has two screens: <ThemedText type="code">src/app/index.tsx</ThemedText> and{' '}
-              <ThemedText type="code">src/app/explore.tsx</ThemedText>
-            </ThemedText>
-            <ThemedText type="small">
-              The layout file in <ThemedText type="code">src/app/_layout.tsx</ThemedText> sets up
-              the tab navigator.
-            </ThemedText>
-            <ExternalLink href="https://docs.expo.dev/router/introduction">
-              <ThemedText type="linkPrimary">Learn more</ThemedText>
-            </ExternalLink>
-          </Collapsible>
-
-          <Collapsible title="Android, iOS, and web support">
-            <ThemedView type="backgroundElement" style={styles.collapsibleContent}>
-              <ThemedText type="small">
-                You can open this project on Android, iOS, and the web. To open the web version,
-                press <ThemedText type="smallBold">w</ThemedText> in the terminal running this
-                project.
-              </ThemedText>
-              <Image
-                source={require('@/assets/images/tutorial-web.png')}
-                style={styles.imageTutorial}
-              />
-            </ThemedView>
-          </Collapsible>
-
-          <Collapsible title="Images">
-            <ThemedText type="small">
-              For static images, you can use the <ThemedText type="code">@2x</ThemedText> and{' '}
-              <ThemedText type="code">@3x</ThemedText> suffixes to provide files for different
-              screen densities.
-            </ThemedText>
-            <Image source={require('@/assets/images/react-logo.png')} style={styles.imageReact} />
-            <ExternalLink href="https://reactnative.dev/docs/images">
-              <ThemedText type="linkPrimary">Learn more</ThemedText>
-            </ExternalLink>
-          </Collapsible>
-
-          <Collapsible title="Light and dark mode components">
-            <ThemedText type="small">
-              This template has light and dark mode support. The{' '}
-              <ThemedText type="code">useColorScheme()</ThemedText> hook lets you inspect what the
-              user&apos;s current color scheme is, and so you can adjust UI colors accordingly.
-            </ThemedText>
-            <ExternalLink href="https://docs.expo.dev/develop/user-interface/color-themes/">
-              <ThemedText type="linkPrimary">Learn more</ThemedText>
-            </ExternalLink>
-          </Collapsible>
-
-          <Collapsible title="Animations">
-            <ThemedText type="small">
-              This template includes an example of an animated component. The{' '}
-              <ThemedText type="code">src/components/ui/collapsible.tsx</ThemedText> component uses
-              the powerful <ThemedText type="code">react-native-reanimated</ThemedText> library to
-              animate opening this hint.
-            </ThemedText>
-          </Collapsible>
-        </ThemedView>
-        {Platform.OS === 'web' && <WebBadge />}
-      </ThemedView>
-    </ScrollView>
-  );
-}
-
-const styles = StyleSheet.create({
-  scrollView: {
-    flex: 1,
-  },
-  contentContainer: {
-    flexDirection: 'row',
-    justifyContent: 'center',
-  },
-  container: {
-    maxWidth: MaxContentWidth,
-    flexGrow: 1,
-  },
-  titleContainer: {
-    gap: Spacing.three,
-    alignItems: 'center',
-    paddingHorizontal: Spacing.four,
-    paddingVertical: Spacing.six,
-  },
-  centerText: {
-    textAlign: 'center',
-  },
-  pressed: {
-    opacity: 0.7,
-  },
-  linkButton: {
-    flexDirection: 'row',
-    paddingHorizontal: Spacing.four,
-    paddingVertical: Spacing.two,
-    borderRadius: Spacing.five,
-    justifyContent: 'center',
-    gap: Spacing.one,
-    alignItems: 'center',
-  },
-  sectionsWrapper: {
-    gap: Spacing.five,
-    paddingHorizontal: Spacing.four,
-    paddingTop: Spacing.three,
-  },
-  collapsibleContent: {
-    alignItems: 'center',
-  },
-  imageTutorial: {
-    width: '100%',
-    aspectRatio: 296 / 171,
-    borderRadius: Spacing.three,
-    marginTop: Spacing.two,
-  },
-  imageReact: {
-    width: 100,
-    height: 100,
-    alignSelf: 'center',
-  },
-});

+ 2 - 89
src/app/index.tsx

@@ -1,98 +1,11 @@
-import * as Device from 'expo-device';
-import { Platform, StyleSheet } from 'react-native';
 import { SafeAreaView } from 'react-native-safe-area-context';
 
-import { AnimatedIcon } from '@/components/animated-icon';
-import { HintRow } from '@/components/hint-row';
-import { ThemedText } from '@/components/themed-text';
-import { ThemedView } from '@/components/themed-view';
-import { WebBadge } from '@/components/web-badge';
-import { BottomTabInset, MaxContentWidth, Spacing } from '@/constants/theme';
 
-function getDevMenuHint() {
-  if (Platform.OS === 'web') {
-    return <ThemedText type="small">use browser devtools</ThemedText>;
-  }
-  if (Device.isDevice) {
-    return (
-      <ThemedText type="small">
-        shake device or press <ThemedText type="code">m</ThemedText> in terminal
-      </ThemedText>
-    );
-  }
-  const shortcut = Platform.OS === 'android' ? 'cmd+m (or ctrl+m)' : 'cmd+d';
-  return (
-    <ThemedText type="small">
-      press <ThemedText type="code">{shortcut}</ThemedText>
-    </ThemedText>
-  );
-}
 
 export default function HomeScreen() {
   return (
-    <ThemedView style={styles.container}>
-      <SafeAreaView style={styles.safeArea}>
-        <ThemedView style={styles.heroSection}>
-          <AnimatedIcon />
-          <ThemedText type="title" style={styles.title}>
-            Welcome to&nbsp;Expo
-          </ThemedText>
-        </ThemedView>
-
-        <ThemedText type="code" style={styles.code}>
-          get started
-        </ThemedText>
-
-        <ThemedView type="backgroundElement" style={styles.stepContainer}>
-          <HintRow
-            title="Try editing"
-            hint={<ThemedText type="code">src/app/index.tsx</ThemedText>}
-          />
-          <HintRow title="Dev tools" hint={getDevMenuHint()} />
-          <HintRow
-            title="Fresh start"
-            hint={<ThemedText type="code">npm run reset-project</ThemedText>}
-          />
-        </ThemedView>
-
-        {Platform.OS === 'web' && <WebBadge />}
+      <SafeAreaView className='flex-1'>
+        
       </SafeAreaView>
-    </ThemedView>
   );
 }
-
-const styles = StyleSheet.create({
-  container: {
-    flex: 1,
-    justifyContent: 'center',
-    flexDirection: 'row',
-  },
-  safeArea: {
-    flex: 1,
-    paddingHorizontal: Spacing.four,
-    alignItems: 'center',
-    gap: Spacing.three,
-    paddingBottom: BottomTabInset + Spacing.three,
-    maxWidth: MaxContentWidth,
-  },
-  heroSection: {
-    alignItems: 'center',
-    justifyContent: 'center',
-    flex: 1,
-    paddingHorizontal: Spacing.four,
-    gap: Spacing.four,
-  },
-  title: {
-    textAlign: 'center',
-  },
-  code: {
-    textTransform: 'uppercase',
-  },
-  stepContainer: {
-    gap: Spacing.three,
-    alignSelf: 'stretch',
-    paddingHorizontal: Spacing.three,
-    paddingVertical: Spacing.four,
-    borderRadius: Spacing.four,
-  },
-});

+ 3 - 3
src/components/app-tabs.tsx

@@ -14,15 +14,15 @@ export default function AppTabs() {
       indicatorColor={colors.backgroundElement}
       labelStyle={{ selected: { color: colors.text } }}>
       <NativeTabs.Trigger name="index">
-        <NativeTabs.Trigger.Label>Home</NativeTabs.Trigger.Label>
+        <NativeTabs.Trigger.Label>首页</NativeTabs.Trigger.Label>
         <NativeTabs.Trigger.Icon
           src={require('@/assets/images/tabIcons/home.png')}
           renderingMode="template"
         />
       </NativeTabs.Trigger>
 
-      <NativeTabs.Trigger name="explore">
-        <NativeTabs.Trigger.Label>Explore</NativeTabs.Trigger.Label>
+      <NativeTabs.Trigger name="customer">
+        <NativeTabs.Trigger.Label>客户</NativeTabs.Trigger.Label>
         <NativeTabs.Trigger.Icon
           src={require('@/assets/images/tabIcons/explore.png')}
           renderingMode="template"

+ 4 - 0
src/global.css

@@ -1,3 +1,7 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
 :root {
   --font-display:
     Spline Sans, Inter, ui-sans-serif, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji,

+ 2 - 0
src/index.d.ts

@@ -1,3 +1,5 @@
+/// <reference types="nativewind/types" />
+
 interface ApiConfig {
     url: string;
     timeout?: number;

+ 10 - 0
tailwind.config.js

@@ -0,0 +1,10 @@
+/** @type {import('tailwindcss').Config} */
+module.exports = {
+  // NOTE: Update this to include the paths to all files that contain Nativewind classes.
+  content: ["./src/**/*.{js,jsx,ts,tsx}"],
+  presets: [require("nativewind/preset")],
+  theme: {
+    extend: {},
+  },
+  plugins: [],
+}

+ 3 - 2
tsconfig.json

@@ -15,6 +15,7 @@
     "**/*.ts",
     "**/*.tsx",
     ".expo/types/**/*.ts",
-    "expo-env.d.ts"
+    "expo-env.d.ts",
+    "nativewind-env.d.ts"
   ]
-}
+}

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio