```json{
"summary": "为徒步社交应用TrailPeak设计的iOS风格个人页面,采用明亮户外主题配色方案,包含圆形头像、个人简介、美观的图片网格和底部导航。设计融合现代化iOS界面元素与户外冒险美学,使用天空蓝、森林绿和阳光橙作为主色调,营造清新自然的视觉体验。",
"widget": {"type":"full-html","html":"<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n <title>TrailPeak - 个人主页</title>\n <script src=\"https://cdn.tailwindcss.com\"></script>\n <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.c…\">\n <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700…\" rel=\"stylesheet\">\n <style>\n :root {\n --primary-blue: #38BDF8;\n --primary-green: #10B981;\n --primary-orange: #F59E0B;\n --bg-gradient: linear-gradient(135deg, #F9FAFB 0%, #F3F4F6 100%);\n --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05), 0 8px 10px -6px rgba(0, 0, 0, 0.01);\n --ios-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);\n }\n \n * {\n font-family: -apple-system, BlinkMacSystemFont, 'Inter', sans-serif;\n }\n \n body {\n background: var(--bg-gradient);\n color: #1F2937;\n overflow-x: hidden;\n -webkit-tap-highlight-color: transparent;\n }\n \n .status-bar {\n height: 44px;\n background: rgba(255, 255, 255, 0.8);\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n }\n \n .avatar-container {\n position: relative;\n width: 100px;\n height: 100px;\n margin: 0 auto;\n }\n \n .avatar {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n border: 4px solid white;\n box-shadow: var(--ios-shadow);\n object-fit: cover;\n transition: transform 0.3s ease;\n }\n \n .avatar:hover {\n transform: scale(1.05);\n }\n \n .badge {\n position: absolute;\n bottom: 5px;\n right: 5px;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: var(--primary-orange);\n color: white;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n border: 2px solid white;\n box-shadow: 0 2px 5px rgba(245, 158, 11, 0.3);\n }\n \n .stats-card {\n background: white;\n border-radius: 16px;\n box-shadow: var(--ios-shadow);\n transition: all 0.3s ease;\n overflow: hidden;\n }\n \n .stats-card:hover {\n transform: translateY(-5px);\n box-shadow: 0 15px 30px -10px rgba(0, 0, 0, 0.1);\n }\n \n .grid-item {\n position: relative;\n border-radius: 12px;\n overflow: hidden;\n box-shadow: var(--ios-shadow);\n transition: all 0.3s ease;\n }\n \n .grid-item:hover {\n transform: translateY(-5px);\n box-shadow: 0 15px 25px -5px rgba(0, 0, 0, 0.1);\n }\n \n .grid-item::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(to top, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0) 50%);\n opacity: 0;\n transition: opacity 0.3s ease;\n }\n \n .grid-item:hover::after {\n opacity: 1;\n }\n \n .tab-bar {\n height: 83px;\n background: rgba(255, 255, 255, 0.95);\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n box-shadow: 0 -2px 20px rgba(0, 0, 0, 0.05);\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n }\n \n .tab-item {\n position: relative;\n transition: all 0.3s ease;\n color: #9CA3AF;\n }\n \n .tab-item.active {\n color: var(--primary-blue);\n }\n \n .tab-item.active::after {\n content: '';\n position: absolute;\n bottom: -8px;\n left: 50%;\n transform: translateX(-50%);\n width: 5px;\n height: 5px;\n border-radius: 50%;\n background: var(--primary-blue);\n }\n \n .tab-item:hover {\n color: var(--primary-blue);\n transform: translateY(-3px);\n }\n \n .btn-primary {\n background: linear-gradient(135deg, var(--primary-blue) 0%, #0EA5E9 100%);\n color: white;\n border-radius: 12px;\n padding: 10px 20px;\n font-weight: 600;\n box-shadow: 0 4px 15px rgba(56, 189, 248, 0.3);\n transition: all 0.3s ease;\n }\n \n .btn-primary:hover {\n transform: translateY(-3px);\n box-shadow: 0 8px 20px rgba(56, 189, 248, 0.4);\n }\n \n .btn-outline {\n border: 2px solid var(--primary-green);\n color: var(--primary-green);\n border-radius: 12px;\n padding: 10px 20px;\n font-weight: 600;\n transition: all 0.3s ease;\n }\n \n .btn-outline:hover {\n background: var(--primary-green);\n color: white;\n transform: translateY(-3px);\n }\n \n .fade-in {\n animation: fadeIn 0.5s ease forwards;\n }\n \n .fade-in-delay-1 {\n animation: fadeIn 0.5s ease 0.1s forwards;\n opacity: 0;\n }\n \n .fade-in-delay-2 {\n animation: fadeIn 0.5s ease 0.2s forwards;\n opacity: 0;\n }\n \n @keyframes fadeIn {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n }\n \n /* iOS风格滚动条 */\n ::-webkit-scrollbar {\n width: 5px;\n }\n \n ::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 10px;\n }\n \n ::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 10px;\n }\n \n ::-webkit-scrollbar-thumb:hover {\n background: #a8a8a8;\n }\n \n /* 自定义iOS开关 */\n .ios-switch {\n position: relative;\n display: inline-block;\n width: 52px;\n height: 32px;\n }\n \n .ios-switch input {\n opacity: 0;\n width: 0;\n height: 0;\n }\n \n .ios-slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #e5e7eb;\n transition: .4s;\n border-radius: 34px;\n }\n \n .ios-slider:before {\n position: absolute;\n content: \"\";\n height: 24px;\n width: 24px;\n left: 4px;\n bottom: 4px;\n background-color: white;\n transition: .4s;\n border-radius: 50%;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);\n }\n \n input:checked + .ios-slider {\n background-color: var(--primary-green);\n }\n \n input:checked + .ios-slider:before {\n transform: translateX(20px);\n }\n \n .notification-dot {\n position: absolute;\n top: -2px;\n right: -2px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: #EF4444;\n border: 2px solid white;\n }\n </style>\n</head>\n<body class=\"min-h-screen pb-20\">\n <!-- iOS状态栏 -->\n <div class=\"status-bar flex items-center justify-between px-4 fixed top-0 left-0 right-0 z-50 fade-in\">\n <div class=\"text-sm font-semibold text-gray-800\">9:41</div>\n <div class=\"flex items-center space-x-1\">\n <i class=\"fas fa-signal text-gray-800\"></i>\n <i class=\"fas fa-wifi text-gray-800 ml-1\"></i>\n <i class=\"fas fa-battery-three-quarters text-gray-800 ml-1\"></i>\n </div>\n </div>\n \n <!-- 主要内容区域 -->\n <main class=\"pt-12 px-5 max-w-md mx-auto\">\n <!-- 返回和设置按钮 -->\n <div class=\"flex justify-between items-center mb-6 fade-in\">\n <a href=\"#\" class=\"text-gray-600 hover:text-gray-900 transition-colors\">\n <i class=\"fas fa-chevron-left text-lg\"></i>\n </a>\n <h1 class=\"text-xl font-bold text-gray-900\">个人主页</h1>\n <a href=\"#\" class=\"text-gray-600 hover:text-gray-900 transition-colors relative\">\n <i class=\"fas fa-cog text-lg\"></i>\n <span class=\"notification-dot\"></span>\n </a>\n </div>\n \n <!-- 用户头像和基本信息 -->\n <div class=\"text-center mb-8 fade-in-delay-1\">\n <div class=\"avatar-container mb-4\">\n <img src=\"/assets/images/products/product-14.jpg\" alt=\"用户头像\" class=\"avatar\">\n <div class=\"badge\">\n <i class=\"fas fa-mountain\"></i>\n </div>\n </div>\n <h2 class=\"text-2xl font-bold text-gray-900 mb-1\">张山峰</h2>\n <p class=\"text-gray-600 mb-2\">@trail_explorer</p>\n <div class=\"flex justify-center items-center space-x-1 text-sm text-gray-500 mb-4\">\n <i class=\"fas fa-map-marker-alt text-primary-green\"></i>\n <span>杭州 · 资深徒步者</span>\n </div>\n <p class=\"text-gray-700 mb-6 max-w-sm mx-auto\">热爱探索未知山径,累计徒步里程超过5000公里。喜欢在徒步中拍摄自然美景,与志同道合的朋友分享户外经历。</p>\n \n <div class=\"flex justify-center space-x-3\">\n <button class=\"btn-primary flex items-center space-x-2\">\n <i class=\"fas fa-plus\"></i>\n <span>关注</span>\n </button>\n <button class=\"btn-outline flex items-center space-x-2\">\n <i class=\"fas fa-envelope\"></i>\n <span>私信</span>\n </button>\n </div>\n </div>\n \n <!-- 用户统计卡片 -->\n <div class=\"stats-card p-5 mb-8 fade-in-delay-1\">\n <div class=\"grid grid-cols-3 gap-4 text-center\">\n <div class=\"p-3\">\n <div class=\"text-2xl font-bold text-primary-blue mb-1\">247</div>\n <div class=\"text-sm text-gray-600\">徒步次数</div>\n </div>\n <div class=\"p-3 border-l border-r border-gray-100\">\n <div class=\"text-2xl font-bold text-primary-green mb-1\">5,280</div>\n <div class=\"text-sm text-gray-600\">总里程(km)</div>\n </div>\n <div class=\"p-3\">\n <div class=\"text-2xl font-bold text-primary-orange mb-1\">1,892</div>\n <div class=\"text-sm text-gray-600\">粉丝</div>\n </div>\n </div>\n </div>\n \n <!-- 成就徽章区域 -->\n <div class=\"mb-8 fade-in-delay-2\">\n <div class=\"flex justify-between items-center mb-4\">\n <h3 class=\"text-lg font-bold text-gray-900\">成就徽章</h3>\n <a href=\"#\" class=\"text-primary-blue text-sm font-medium flex items-center\">\n 查看全部\n <i class=\"fas fa-chevron-right ml-1 text-xs\"></i>\n </a>\n </div>\n <div class=\"flex space-x-4 overflow-x-auto pb-2\">\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-blue-100 to-blue-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-mountain text-primary-blue text-xl\"></i>\n </div>\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-green-100 to-green-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-tree text-primary-green text-xl\"></i>\n </div>\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-orange-100 to-orange-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-campground text-primary-orange text-xl\"></i>\n </div>\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-purple-100 to-purple-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-hiking text-purple-500 text-xl\"></i>\n </div>\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-red-100 to-red-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-fire text-red-500 text-xl\"></i>\n </div>\n </div>\n </div>\n \n <!-- 图片发布网格 -->\n <div class=\"mb-12 fade-in-delay-2\">\n <div class=\"flex justify-between items-center mb-4\">\n <h3 class=\"text-lg font-bold text-gray-900\">我的徒步相册</h3>\n <div class=\"flex items-center space-x-2\">\n <span class=\"text-sm text-gray-600\">网格视图</span>\n <label class=\"ios-switch\">\n <input type=\"checkbox\" checked>\n <span class=\"ios-slider\"></span>\n </label>\n </div>\n </div>\n \n <div class=\"grid grid-cols-3 gap-2\">\n <!-- 图片1 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/travel-nature/travel-nature-11.jpg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>128</span>\n </div>\n </div>\n </div>\n \n <!-- 图片2 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/16-9/nature-06.jpg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>89</span>\n </div>\n </div>\n </div>\n \n <!-- 图片3 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/hero/1-6.jpg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>156</span>\n </div>\n </div>\n </div>\n \n <!-- 图片4 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/showcase/blog6-large.jpeg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>203</span>\n </div>\n </div>\n </div>\n \n <!-- 图片5 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/hero/hero-1-v2-4.jpeg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>74</span>\n </div>\n </div>\n </div>\n \n <!-- 添加新图片按钮 -->\n <div class=\"aspect-square border-2 border-dashed border-gray-300 rounded-xl flex items-center justify-center hover:border-primary-blue transition-colors cursor-pointer\">\n <div class=\"text-center\">\n <i class=\"fas fa-plus text-gray-400 text-2xl mb-2\"></i>\n <p class=\"text-xs text-gray-500\">添加照片</p>\n </div>\n </div>\n </div>\n </div>\n </main>\n \n <!-- iOS风格底部标签栏 -->\n <div class=\"tab-bar fixed bottom-0 left-0 right-0 z-40\">\n <div class=\"flex justify-around items-center h-full px-2\">\n <a href=\"#\" class=\"tab-item active flex flex-col items-center justify-center\">\n <i class=\"fas fa-user text-xl mb-1\"></i>\n <span class=\"text-xs font-medium\">个人</span>\n </a>\n \n <a href=\"#\" class=\"tab-item flex flex-col items-center justify-center\">\n <i class=\"fas fa-compass text-xl mb-1\"></i>\n <span class=\"text-xs font-medium\">探索</span>\n </a>\n \n <a href=\"#\" class=\"tab-item flex flex-col items-center justify-center relative\">\n <div class=\"absolute -top-1 right-4 w-6 h-6 rounded-full bg-gradient-to-r from-primary-blue to-primary-green flex items-center justify-center text-white text-xs font-bold\">\n <i class=\"fas fa-plus\"></i>\n </div>\n <i class=\"fas fa-plus-circle text-3xl text-primary-blue mb-1\"></i>\n <span class=\"text-xs font-medium\">发布</span>\n </a>\n \n <a href=\"#\" class=\"tab-item flex flex-col items-center justify-center\">\n <i class=\"fas fa-heart text-xl mb-1\"></i>\n <span class=\"text-xs font-medium\">收藏</span>\n </a>\n \n <a href=\"#\" class=\"tab-item flex flex-col items-center justify-center relative\">\n <span class=\"notification-dot top-0 right-2\"></span>\n <i class=\"fas fa-bell text-xl mb-1\"></i>\n <span class=\"text-xs font-medium\">消息</span>\n </a>\n </div>\n </div>\n \n <script>\n // 简单的交互效果\n document.addEventListener('DOMContentLoaded', function() {\n // 网格图片悬停效果\n const gridItems = document.querySelectorAll('.grid-item');\n gridItems.forEach(item => {\n item.addEventListener('mouseenter', function() {\n const likeCount = this.querySelector('.absolute');\n if (likeCount) {\n likeCount.style.opacity = '1';\n }\n });\n \n item.addEventListener('mouseleave', function() {\n const likeCount = this.querySelector('.absolute');\n if (likeCount) {\n likeCount.style.opacity = '0';\n }\n });\n });\n \n // 切换按钮点击效果\n const tabItems = document.querySelectorAll('.tab-item');\n tabItems.forEach(item => {\n item.addEventListener('click', function(e) {\n e.preventDefault();\n tabItems.forEach(tab => tab.classList.remove('active'));\n this.classList.add('active');\n });\n });\n \n // iOS开关切换\n const iosSwitch = document.querySelector('.ios-switch input');\n if (iosSwitch) {\n iosSwitch.addEventListener('change', function() {\n const gridContainer = document.querySelector('.grid');\n if (this.checked) {\n gridContainer.classList.remove('grid-cols-2');\n gridContainer.classList.add('grid-cols-3');\n } else {\n gridContainer.classList.remove('grid-cols-3');\n gridContainer.classList.add('grid-cols-2');\n }\n });\n }\n \n // 关注按钮交互\n const followBtn = document.querySelector('.btn-primary');\n if (followBtn) {\n followBtn.addEventListener('click', function() {\n const isFollowing = this.textContent.includes('已关注');\n if (isFollowing) {\n this.innerHTML = '<i class=\"fas fa-plus\"></i><span>关注</span>';\n this.classList.remove('bg-gray-600');\n this.classList.add('bg-gradient-to-r', 'from-primary-blue', 'to-blue-500');\n } else {\n this.innerHTML = '<i class=\"fas fa-check\"></i><span>已关注</span>';\n this.classList.remove('bg-gradient-to-r', 'from-primary-blue', 'to-blue-500');\n this.classList.add('bg-gray-600');\n }\n });\n }\n });\n </script>\n</body>\n</html>"},
"next": ["添加好友列表功能","集成地图轨迹展示","增加活动日历","添加成就进度条","优化深色模式"],
"breakpoint": "xs"
}
```
推理
用户要求设计一个徒步社交应用"TrailPeak"的iOS风格用户个人页UI。我需要先理解需求:这是一个户外徒步社交应用,需要iOS风格的个人页面,包含圆形头像、个人简介、图片发布网格和底部导航。主题是明亮户外配色。
首先,我需要获取设计系统建议。由于这是徒步社交应用,应该采用户外主题。让我调用get_design_system工具来获取专业的设计建议。返回的设计系统建议是简约风格,但我想这不够具体。我需要为徒步社交应用设计一个明亮户外主题的iOS风格界面。让我重新调用设计系统工具,提供更具体的查询。设计系统返回的建议似乎比较通用。我需要自己决定设计方向。根据用户需求,这是一个徒步社交应用"TrailPeak"的个人页面,需要iOS风格,明亮户外主题配色。让我思考一下:
**内部思考阶段:**
1. **需求分析**:
- 目标:设计一个iOS风格的用户个人页面
- 设备类型:移动端优先(iOS风格)
- 目标受众:徒步爱好者、户外社交用户
- 功能:个人资料展示、图片发布网格、底部导航
2. **设计决策**:
- 美学方向:采用现代化iOS设计语言,结合户外主题
- 配色方案:明亮户外主题 - 考虑天空蓝、森林绿、阳光黄等自然色彩
- 布局:顶部头像和简介,中间图片网格,底部导航栏
- 字体:选择清晰易读的字体,适合移动端
- 动效:添加平滑过渡和微交互
3. **资产调用**:我需要获取一些户外相关的图片资源。让我调用get_assets工具。现在我需要一个用户头像,让我搜索一个徒步者的头像。好的,我已经获取了一些资源。现在开始构建设计。
**设计概念**:
- **美学方向**:现代化iOS设计语言结合户外冒险主题
- **配色方案**:
- 主色:天空蓝 (#38BDF8)
- 辅色:森林绿 (#10B981)
- 强调色:阳光橙 (#F59E0B)
- 背景:浅灰渐变 (#F9FAFB 到 #F3F4F6)
- 文字:深灰 (#1F2937) 和白色
- **字体**:
- 标题:SF Pro Display (Apple系统字体,使用font-family: -apple-system, BlinkMacSystemFont)
- 正文:SF Pro Text
- **布局**:典型的iOS应用布局,包含状态栏、内容区域和底部标签栏
- **特殊效果**:卡片阴影、平滑过渡、网格图片悬停效果
现在开始编写代码。我需要创建一个完整的HTML页面,包含TailwindCSS和自定义CSS。使用Font Awesome图标,确保响应式设计,针对移动端优化。
让我构建HTML结构。现在开始编写代码。我将创建一个完整的iOS风格个人页面。```json{
"summary": "为徒步社交应用TrailPeak设计的iOS风格个人页面,采用明亮户外主题配色方案,包含圆形头像、个人简介、美观的图片网格和底部导航。设计融合现代化iOS界面元素与户外冒险美学,使用天空蓝、森林绿和阳光橙作为主色调,营造清新自然的视觉体验。",
"widget": {"type":"full-html","html":"<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n <title>TrailPeak - 个人主页</title>\n <script src=\"https://cdn.tailwindcss.com\"></script>\n <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css\">\n <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n <style>\n :root {\n --primary-blue: #38BDF8;\n --primary-green: #10B981;\n --primary-orange: #F59E0B;\n --bg-gradient: linear-gradient(135deg, #F9FAFB 0%, #F3F4F6 100%);\n --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05), 0 8px 10px -6px rgba(0, 0, 0, 0.01);\n --ios-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);\n }\n \n * {\n font-family: -apple-system, BlinkMacSystemFont, 'Inter', sans-serif;\n }\n \n body {\n background: var(--bg-gradient);\n color: #1F2937;\n overflow-x: hidden;\n -webkit-tap-highlight-color: transparent;\n }\n \n .status-bar {\n height: 44px;\n background: rgba(255, 255, 255, 0.8);\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n }\n \n .avatar-container {\n position: relative;\n width: 100px;\n height: 100px;\n margin: 0 auto;\n }\n \n .avatar {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n border: 4px solid white;\n box-shadow: var(--ios-shadow);\n object-fit: cover;\n transition: transform 0.3s ease;\n }\n \n .avatar:hover {\n transform: scale(1.05);\n }\n \n .badge {\n position: absolute;\n bottom: 5px;\n right: 5px;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: var(--primary-orange);\n color: white;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n border: 2px solid white;\n box-shadow: 0 2px 5px rgba(245, 158, 11, 0.3);\n }\n \n .stats-card {\n background: white;\n border-radius: 16px;\n box-shadow: var(--ios-shadow);\n transition: all 0.3s ease;\n overflow: hidden;\n }\n \n .stats-card:hover {\n transform: translateY(-5px);\n box-shadow: 0 15px 30px -10px rgba(0, 0, 0, 0.1);\n }\n \n .grid-item {\n position: relative;\n border-radius: 12px;\n overflow: hidden;\n box-shadow: var(--ios-shadow);\n transition: all 0.3s ease;\n }\n \n .grid-item:hover {\n transform: translateY(-5px);\n box-shadow: 0 15px 25px -5px rgba(0, 0, 0, 0.1);\n }\n \n .grid-item::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(to top, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0) 50%);\n opacity: 0;\n transition: opacity 0.3s ease;\n }\n \n .grid-item:hover::after {\n opacity: 1;\n }\n \n .tab-bar {\n height: 83px;\n background: rgba(255, 255, 255, 0.95);\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n box-shadow: 0 -2px 20px rgba(0, 0, 0, 0.05);\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n }\n \n .tab-item {\n position: relative;\n transition: all 0.3s ease;\n color: #9CA3AF;\n }\n \n .tab-item.active {\n color: var(--primary-blue);\n }\n \n .tab-item.active::after {\n content: '';\n position: absolute;\n bottom: -8px;\n left: 50%;\n transform: translateX(-50%);\n width: 5px;\n height: 5px;\n border-radius: 50%;\n background: var(--primary-blue);\n }\n \n .tab-item:hover {\n color: var(--primary-blue);\n transform: translateY(-3px);\n }\n \n .btn-primary {\n background: linear-gradient(135deg, var(--primary-blue) 0%, #0EA5E9 100%);\n color: white;\n border-radius: 12px;\n padding: 10px 20px;\n font-weight: 600;\n box-shadow: 0 4px 15px rgba(56, 189, 248, 0.3);\n transition: all 0.3s ease;\n }\n \n .btn-primary:hover {\n transform: translateY(-3px);\n box-shadow: 0 8px 20px rgba(56, 189, 248, 0.4);\n }\n \n .btn-outline {\n border: 2px solid var(--primary-green);\n color: var(--primary-green);\n border-radius: 12px;\n padding: 10px 20px;\n font-weight: 600;\n transition: all 0.3s ease;\n }\n \n .btn-outline:hover {\n background: var(--primary-green);\n color: white;\n transform: translateY(-3px);\n }\n \n .fade-in {\n animation: fadeIn 0.5s ease forwards;\n }\n \n .fade-in-delay-1 {\n animation: fadeIn 0.5s ease 0.1s forwards;\n opacity: 0;\n }\n \n .fade-in-delay-2 {\n animation: fadeIn 0.5s ease 0.2s forwards;\n opacity: 0;\n }\n \n @keyframes fadeIn {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n }\n \n /* iOS风格滚动条 */\n ::-webkit-scrollbar {\n width: 5px;\n }\n \n ::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 10px;\n }\n \n ::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 10px;\n }\n \n ::-webkit-scrollbar-thumb:hover {\n background: #a8a8a8;\n }\n \n /* 自定义iOS开关 */\n .ios-switch {\n position: relative;\n display: inline-block;\n width: 52px;\n height: 32px;\n }\n \n .ios-switch input {\n opacity: 0;\n width: 0;\n height: 0;\n }\n \n .ios-slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #e5e7eb;\n transition: .4s;\n border-radius: 34px;\n }\n \n .ios-slider:before {\n position: absolute;\n content: \"\";\n height: 24px;\n width: 24px;\n left: 4px;\n bottom: 4px;\n background-color: white;\n transition: .4s;\n border-radius: 50%;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);\n }\n \n input:checked + .ios-slider {\n background-color: var(--primary-green);\n }\n \n input:checked + .ios-slider:before {\n transform: translateX(20px);\n }\n \n .notification-dot {\n position: absolute;\n top: -2px;\n right: -2px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: #EF4444;\n border: 2px solid white;\n }\n </style>\n</head>\n<body class=\"min-h-screen pb-20\">\n <!-- iOS状态栏 -->\n <div class=\"status-bar flex items-center justify-between px-4 fixed top-0 left-0 right-0 z-50 fade-in\">\n <div class=\"text-sm font-semibold text-gray-800\">9:41</div>\n <div class=\"flex items-center space-x-1\">\n <i class=\"fas fa-signal text-gray-800\"></i>\n <i class=\"fas fa-wifi text-gray-800 ml-1\"></i>\n <i class=\"fas fa-battery-three-quarters text-gray-800 ml-1\"></i>\n </div>\n </div>\n \n <!-- 主要内容区域 -->\n <main class=\"pt-12 px-5 max-w-md mx-auto\">\n <!-- 返回和设置按钮 -->\n <div class=\"flex justify-between items-center mb-6 fade-in\">\n <a href=\"#\" class=\"text-gray-600 hover:text-gray-900 transition-colors\">\n <i class=\"fas fa-chevron-left text-lg\"></i>\n </a>\n <h1 class=\"text-xl font-bold text-gray-900\">个人主页</h1>\n <a href=\"#\" class=\"text-gray-600 hover:text-gray-900 transition-colors relative\">\n <i class=\"fas fa-cog text-lg\"></i>\n <span class=\"notification-dot\"></span>\n </a>\n </div>\n \n <!-- 用户头像和基本信息 -->\n <div class=\"text-center mb-8 fade-in-delay-1\">\n <div class=\"avatar-container mb-4\">\n <img src=\"/assets/images/products/product-14.jpg\" alt=\"用户头像\" class=\"avatar\">\n <div class=\"badge\">\n <i class=\"fas fa-mountain\"></i>\n </div>\n </div>\n <h2 class=\"text-2xl font-bold text-gray-900 mb-1\">张山峰</h2>\n <p class=\"text-gray-600 mb-2\">@trail_explorer</p>\n <div class=\"flex justify-center items-center space-x-1 text-sm text-gray-500 mb-4\">\n <i class=\"fas fa-map-marker-alt text-primary-green\"></i>\n <span>杭州 · 资深徒步者</span>\n </div>\n <p class=\"text-gray-700 mb-6 max-w-sm mx-auto\">热爱探索未知山径,累计徒步里程超过5000公里。喜欢在徒步中拍摄自然美景,与志同道合的朋友分享户外经历。</p>\n \n <div class=\"flex justify-center space-x-3\">\n <button class=\"btn-primary flex items-center space-x-2\">\n <i class=\"fas fa-plus\"></i>\n <span>关注</span>\n </button>\n <button class=\"btn-outline flex items-center space-x-2\">\n <i class=\"fas fa-envelope\"></i>\n <span>私信</span>\n </button>\n </div>\n </div>\n \n <!-- 用户统计卡片 -->\n <div class=\"stats-card p-5 mb-8 fade-in-delay-1\">\n <div class=\"grid grid-cols-3 gap-4 text-center\">\n <div class=\"p-3\">\n <div class=\"text-2xl font-bold text-primary-blue mb-1\">247</div>\n <div class=\"text-sm text-gray-600\">徒步次数</div>\n </div>\n <div class=\"p-3 border-l border-r border-gray-100\">\n <div class=\"text-2xl font-bold text-primary-green mb-1\">5,280</div>\n <div class=\"text-sm text-gray-600\">总里程(km)</div>\n </div>\n <div class=\"p-3\">\n <div class=\"text-2xl font-bold text-primary-orange mb-1\">1,892</div>\n <div class=\"text-sm text-gray-600\">粉丝</div>\n </div>\n </div>\n </div>\n \n <!-- 成就徽章区域 -->\n <div class=\"mb-8 fade-in-delay-2\">\n <div class=\"flex justify-between items-center mb-4\">\n <h3 class=\"text-lg font-bold text-gray-900\">成就徽章</h3>\n <a href=\"#\" class=\"text-primary-blue text-sm font-medium flex items-center\">\n 查看全部\n <i class=\"fas fa-chevron-right ml-1 text-xs\"></i>\n </a>\n </div>\n <div class=\"flex space-x-4 overflow-x-auto pb-2\">\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-blue-100 to-blue-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-mountain text-primary-blue text-xl\"></i>\n </div>\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-green-100 to-green-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-tree text-primary-green text-xl\"></i>\n </div>\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-orange-100 to-orange-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-campground text-primary-orange text-xl\"></i>\n </div>\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-purple-100 to-purple-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-hiking text-purple-500 text-xl\"></i>\n </div>\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-red-100 to-red-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-fire text-red-500 text-xl\"></i>\n </div>\n </div>\n </div>\n \n <!-- 图片发布网格 -->\n <div class=\"mb-12 fade-in-delay-2\">\n <div class=\"flex justify-between items-center mb-4\">\n <h3 class=\"text-lg font-bold text-gray-900\">我的徒步相册</h3>\n <div class=\"flex items-center space-x-2\">\n <span class=\"text-sm text-gray-600\">网格视图</span>\n <label class=\"ios-switch\">\n <input type=\"checkbox\" checked>\n <span class=\"ios-slider\"></span>\n </label>\n </div>\n </div>\n \n <div class=\"grid grid-cols-3 gap-2\">\n <!-- 图片1 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/travel-nature/travel-nature-11.jpg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>128</span>\n </div>\n </div>\n </div>\n \n <!-- 图片2 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/16-9/nature-06.jpg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>89</span>\n </div>\n </div>\n </div>\n \n <!-- 图片3 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/hero/1-6.jpg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>156</span>\n </div>\n </div>\n </div>\n \n <!-- 图片4 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/showcase/blog6-large.jpeg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>203</span>\n </div>\n </div>\n </div>\n \n <!-- 图片5 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/hero/hero-1-v2-4.jpeg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>74</span>\n </div>\n </div>\n </div>\n \n <!-- 添加新图片按钮 -->\n <div class=\"aspect-square border-2 border-dashed border-gray-300 rounded-xl flex items-center justify-center hover:border-primary-blue transition-colors cursor-pointer\">\n <div class=\"text-center\">\n <i class=\"fas fa-plus text-gray-400 text-2xl mb-2\"></i>\n <p class=\"text-xs text-gray-500\">添加照片</p>\n </div>\n </div>\n </div>\n </div>\n </main>\n \n <!-- iOS风格底部标签栏 -->\n <div class=\"tab-bar fixed bottom-0 left-0 right-0 z-40\">\n <div class=\"flex justify-around items-center h-full px-2\">\n <a href=\"#\" class=\"tab-item active flex flex-col items-center justify-center\">\n <i class=\"fas fa-user text-xl mb-1\"></i>\n <span class=\"text-xs font-medium\">个人</span>\n </a>\n \n <a href=\"#\" class=\"tab-item flex flex-col items-center justify-center\">\n <i class=\"fas fa-compass text-xl mb-1\"></i>\n <span class=\"text-xs font-medium\">探索</span>\n </a>\n \n <a href=\"#\" class=\"tab-item flex flex-col items-center justify-center relative\">\n <div class=\"absolute -top-1 right-4 w-6 h-6 rounded-full bg-gradient-to-r from-primary-blue to-primary-green flex items-center justify-center text-white text-xs font-bold\">\n <i class=\"fas fa-plus\"></i>\n </div>\n <i class=\"fas fa-plus-circle text-3xl text-primary-blue mb-1\"></i>\n <span class=\"text-xs font-medium\">发布</span>\n </a>\n \n <a href=\"#\" class=\"tab-item flex flex-col items-center justify-center\">\n <i class=\"fas fa-heart text-xl mb-1\"></i>\n <span class=\"text-xs font-medium\">收藏</span>\n </a>\n \n <a href=\"#\" class=\"tab-item flex flex-col items-center justify-center relative\">\n <span class=\"notification-dot top-0 right-2\"></span>\n <i class=\"fas fa-bell text-xl mb-1\"></i>\n <span class=\"text-xs font-medium\">消息</span>\n </a>\n </div>\n </div>\n \n <script>\n // 简单的交互效果\n document.addEventListener('DOMContentLoaded', function() {\n // 网格图片悬停效果\n const gridItems = document.querySelectorAll('.grid-item');\n gridItems.forEach(item => {\n item.addEventListener('mouseenter', function() {\n const likeCount = this.querySelector('.absolute');\n if (likeCount) {\n likeCount.style.opacity = '1';\n }\n });\n \n item.addEventListener('mouseleave', function() {\n const likeCount = this.querySelector('.absolute');\n if (likeCount) {\n likeCount.style.opacity = '0';\n }\n });\n });\n \n // 切换按钮点击效果\n const tabItems = document.querySelectorAll('.tab-item');\n tabItems.forEach(item => {\n item.addEventListener('click', function(e) {\n e.preventDefault();\n tabItems.forEach(tab => tab.classList.remove('active'));\n this.classList.add('active');\n });\n });\n \n // iOS开关切换\n const iosSwitch = document.querySelector('.ios-switch input');\n if (iosSwitch) {\n iosSwitch.addEventListener('change', function() {\n const gridContainer = document.querySelector('.grid');\n if (this.checked) {\n gridContainer.classList.remove('grid-cols-2');\n gridContainer.classList.add('grid-cols-3');\n } else {\n gridContainer.classList.remove('grid-cols-3');\n gridContainer.classList.add('grid-cols-2');\n }\n });\n }\n \n // 关注按钮交互\n const followBtn = document.querySelector('.btn-primary');\n if (followBtn) {\n followBtn.addEventListener('click', function() {\n const isFollowing = this.textContent.includes('已关注');\n if (isFollowing) {\n this.innerHTML = '<i class=\"fas fa-plus\"></i><span>关注</span>';\n this.classList.remove('bg-gray-600');\n this.classList.add('bg-gradient-to-r', 'from-primary-blue', 'to-blue-500');\n } else {\n this.innerHTML = '<i class=\"fas fa-check\"></i><span>已关注</span>';\n this.classList.remove('bg-gradient-to-r', 'from-primary-blue', 'to-blue-500');\n this.classList.add('bg-gray-600');\n }\n });\n }\n });\n </script>\n</body>\n</html>"},
"next": ["添加好友列表功能","集成地图轨迹展示","增加活动日历","添加成就进度条","优化深色模式"],
"breakpoint": "xs"
}```
首先,我需要获取设计系统建议。由于这是徒步社交应用,应该采用户外主题。让我调用get_design_system工具来获取专业的设计建议。返回的设计系统建议是简约风格,但我想这不够具体。我需要为徒步社交应用设计一个明亮户外主题的iOS风格界面。让我重新调用设计系统工具,提供更具体的查询。设计系统返回的建议似乎比较通用。我需要自己决定设计方向。根据用户需求,这是一个徒步社交应用"TrailPeak"的个人页面,需要iOS风格,明亮户外主题配色。让我思考一下:
**内部思考阶段:**
1. **需求分析**:
- 目标:设计一个iOS风格的用户个人页面
- 设备类型:移动端优先(iOS风格)
- 目标受众:徒步爱好者、户外社交用户
- 功能:个人资料展示、图片发布网格、底部导航
2. **设计决策**:
- 美学方向:采用现代化iOS设计语言,结合户外主题
- 配色方案:明亮户外主题 - 考虑天空蓝、森林绿、阳光黄等自然色彩
- 布局:顶部头像和简介,中间图片网格,底部导航栏
- 字体:选择清晰易读的字体,适合移动端
- 动效:添加平滑过渡和微交互
3. **资产调用**:我需要获取一些户外相关的图片资源。让我调用get_assets工具。现在我需要一个用户头像,让我搜索一个徒步者的头像。好的,我已经获取了一些资源。现在开始构建设计。
**设计概念**:
- **美学方向**:现代化iOS设计语言结合户外冒险主题
- **配色方案**:
- 主色:天空蓝 (#38BDF8)
- 辅色:森林绿 (#10B981)
- 强调色:阳光橙 (#F59E0B)
- 背景:浅灰渐变 (#F9FAFB 到 #F3F4F6)
- 文字:深灰 (#1F2937) 和白色
- **字体**:
- 标题:SF Pro Display (Apple系统字体,使用font-family: -apple-system, BlinkMacSystemFont)
- 正文:SF Pro Text
- **布局**:典型的iOS应用布局,包含状态栏、内容区域和底部标签栏
- **特殊效果**:卡片阴影、平滑过渡、网格图片悬停效果
现在开始编写代码。我需要创建一个完整的HTML页面,包含TailwindCSS和自定义CSS。使用Font Awesome图标,确保响应式设计,针对移动端优化。
让我构建HTML结构。现在开始编写代码。我将创建一个完整的iOS风格个人页面。```json{
"summary": "为徒步社交应用TrailPeak设计的iOS风格个人页面,采用明亮户外主题配色方案,包含圆形头像、个人简介、美观的图片网格和底部导航。设计融合现代化iOS界面元素与户外冒险美学,使用天空蓝、森林绿和阳光橙作为主色调,营造清新自然的视觉体验。",
"widget": {"type":"full-html","html":"<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n <title>TrailPeak - 个人主页</title>\n <script src=\"https://cdn.tailwindcss.com\"></script>\n <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css\">\n <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n <style>\n :root {\n --primary-blue: #38BDF8;\n --primary-green: #10B981;\n --primary-orange: #F59E0B;\n --bg-gradient: linear-gradient(135deg, #F9FAFB 0%, #F3F4F6 100%);\n --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05), 0 8px 10px -6px rgba(0, 0, 0, 0.01);\n --ios-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);\n }\n \n * {\n font-family: -apple-system, BlinkMacSystemFont, 'Inter', sans-serif;\n }\n \n body {\n background: var(--bg-gradient);\n color: #1F2937;\n overflow-x: hidden;\n -webkit-tap-highlight-color: transparent;\n }\n \n .status-bar {\n height: 44px;\n background: rgba(255, 255, 255, 0.8);\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n }\n \n .avatar-container {\n position: relative;\n width: 100px;\n height: 100px;\n margin: 0 auto;\n }\n \n .avatar {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n border: 4px solid white;\n box-shadow: var(--ios-shadow);\n object-fit: cover;\n transition: transform 0.3s ease;\n }\n \n .avatar:hover {\n transform: scale(1.05);\n }\n \n .badge {\n position: absolute;\n bottom: 5px;\n right: 5px;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: var(--primary-orange);\n color: white;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n border: 2px solid white;\n box-shadow: 0 2px 5px rgba(245, 158, 11, 0.3);\n }\n \n .stats-card {\n background: white;\n border-radius: 16px;\n box-shadow: var(--ios-shadow);\n transition: all 0.3s ease;\n overflow: hidden;\n }\n \n .stats-card:hover {\n transform: translateY(-5px);\n box-shadow: 0 15px 30px -10px rgba(0, 0, 0, 0.1);\n }\n \n .grid-item {\n position: relative;\n border-radius: 12px;\n overflow: hidden;\n box-shadow: var(--ios-shadow);\n transition: all 0.3s ease;\n }\n \n .grid-item:hover {\n transform: translateY(-5px);\n box-shadow: 0 15px 25px -5px rgba(0, 0, 0, 0.1);\n }\n \n .grid-item::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(to top, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0) 50%);\n opacity: 0;\n transition: opacity 0.3s ease;\n }\n \n .grid-item:hover::after {\n opacity: 1;\n }\n \n .tab-bar {\n height: 83px;\n background: rgba(255, 255, 255, 0.95);\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n box-shadow: 0 -2px 20px rgba(0, 0, 0, 0.05);\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n }\n \n .tab-item {\n position: relative;\n transition: all 0.3s ease;\n color: #9CA3AF;\n }\n \n .tab-item.active {\n color: var(--primary-blue);\n }\n \n .tab-item.active::after {\n content: '';\n position: absolute;\n bottom: -8px;\n left: 50%;\n transform: translateX(-50%);\n width: 5px;\n height: 5px;\n border-radius: 50%;\n background: var(--primary-blue);\n }\n \n .tab-item:hover {\n color: var(--primary-blue);\n transform: translateY(-3px);\n }\n \n .btn-primary {\n background: linear-gradient(135deg, var(--primary-blue) 0%, #0EA5E9 100%);\n color: white;\n border-radius: 12px;\n padding: 10px 20px;\n font-weight: 600;\n box-shadow: 0 4px 15px rgba(56, 189, 248, 0.3);\n transition: all 0.3s ease;\n }\n \n .btn-primary:hover {\n transform: translateY(-3px);\n box-shadow: 0 8px 20px rgba(56, 189, 248, 0.4);\n }\n \n .btn-outline {\n border: 2px solid var(--primary-green);\n color: var(--primary-green);\n border-radius: 12px;\n padding: 10px 20px;\n font-weight: 600;\n transition: all 0.3s ease;\n }\n \n .btn-outline:hover {\n background: var(--primary-green);\n color: white;\n transform: translateY(-3px);\n }\n \n .fade-in {\n animation: fadeIn 0.5s ease forwards;\n }\n \n .fade-in-delay-1 {\n animation: fadeIn 0.5s ease 0.1s forwards;\n opacity: 0;\n }\n \n .fade-in-delay-2 {\n animation: fadeIn 0.5s ease 0.2s forwards;\n opacity: 0;\n }\n \n @keyframes fadeIn {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n }\n \n /* iOS风格滚动条 */\n ::-webkit-scrollbar {\n width: 5px;\n }\n \n ::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 10px;\n }\n \n ::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 10px;\n }\n \n ::-webkit-scrollbar-thumb:hover {\n background: #a8a8a8;\n }\n \n /* 自定义iOS开关 */\n .ios-switch {\n position: relative;\n display: inline-block;\n width: 52px;\n height: 32px;\n }\n \n .ios-switch input {\n opacity: 0;\n width: 0;\n height: 0;\n }\n \n .ios-slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #e5e7eb;\n transition: .4s;\n border-radius: 34px;\n }\n \n .ios-slider:before {\n position: absolute;\n content: \"\";\n height: 24px;\n width: 24px;\n left: 4px;\n bottom: 4px;\n background-color: white;\n transition: .4s;\n border-radius: 50%;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);\n }\n \n input:checked + .ios-slider {\n background-color: var(--primary-green);\n }\n \n input:checked + .ios-slider:before {\n transform: translateX(20px);\n }\n \n .notification-dot {\n position: absolute;\n top: -2px;\n right: -2px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: #EF4444;\n border: 2px solid white;\n }\n </style>\n</head>\n<body class=\"min-h-screen pb-20\">\n <!-- iOS状态栏 -->\n <div class=\"status-bar flex items-center justify-between px-4 fixed top-0 left-0 right-0 z-50 fade-in\">\n <div class=\"text-sm font-semibold text-gray-800\">9:41</div>\n <div class=\"flex items-center space-x-1\">\n <i class=\"fas fa-signal text-gray-800\"></i>\n <i class=\"fas fa-wifi text-gray-800 ml-1\"></i>\n <i class=\"fas fa-battery-three-quarters text-gray-800 ml-1\"></i>\n </div>\n </div>\n \n <!-- 主要内容区域 -->\n <main class=\"pt-12 px-5 max-w-md mx-auto\">\n <!-- 返回和设置按钮 -->\n <div class=\"flex justify-between items-center mb-6 fade-in\">\n <a href=\"#\" class=\"text-gray-600 hover:text-gray-900 transition-colors\">\n <i class=\"fas fa-chevron-left text-lg\"></i>\n </a>\n <h1 class=\"text-xl font-bold text-gray-900\">个人主页</h1>\n <a href=\"#\" class=\"text-gray-600 hover:text-gray-900 transition-colors relative\">\n <i class=\"fas fa-cog text-lg\"></i>\n <span class=\"notification-dot\"></span>\n </a>\n </div>\n \n <!-- 用户头像和基本信息 -->\n <div class=\"text-center mb-8 fade-in-delay-1\">\n <div class=\"avatar-container mb-4\">\n <img src=\"/assets/images/products/product-14.jpg\" alt=\"用户头像\" class=\"avatar\">\n <div class=\"badge\">\n <i class=\"fas fa-mountain\"></i>\n </div>\n </div>\n <h2 class=\"text-2xl font-bold text-gray-900 mb-1\">张山峰</h2>\n <p class=\"text-gray-600 mb-2\">@trail_explorer</p>\n <div class=\"flex justify-center items-center space-x-1 text-sm text-gray-500 mb-4\">\n <i class=\"fas fa-map-marker-alt text-primary-green\"></i>\n <span>杭州 · 资深徒步者</span>\n </div>\n <p class=\"text-gray-700 mb-6 max-w-sm mx-auto\">热爱探索未知山径,累计徒步里程超过5000公里。喜欢在徒步中拍摄自然美景,与志同道合的朋友分享户外经历。</p>\n \n <div class=\"flex justify-center space-x-3\">\n <button class=\"btn-primary flex items-center space-x-2\">\n <i class=\"fas fa-plus\"></i>\n <span>关注</span>\n </button>\n <button class=\"btn-outline flex items-center space-x-2\">\n <i class=\"fas fa-envelope\"></i>\n <span>私信</span>\n </button>\n </div>\n </div>\n \n <!-- 用户统计卡片 -->\n <div class=\"stats-card p-5 mb-8 fade-in-delay-1\">\n <div class=\"grid grid-cols-3 gap-4 text-center\">\n <div class=\"p-3\">\n <div class=\"text-2xl font-bold text-primary-blue mb-1\">247</div>\n <div class=\"text-sm text-gray-600\">徒步次数</div>\n </div>\n <div class=\"p-3 border-l border-r border-gray-100\">\n <div class=\"text-2xl font-bold text-primary-green mb-1\">5,280</div>\n <div class=\"text-sm text-gray-600\">总里程(km)</div>\n </div>\n <div class=\"p-3\">\n <div class=\"text-2xl font-bold text-primary-orange mb-1\">1,892</div>\n <div class=\"text-sm text-gray-600\">粉丝</div>\n </div>\n </div>\n </div>\n \n <!-- 成就徽章区域 -->\n <div class=\"mb-8 fade-in-delay-2\">\n <div class=\"flex justify-between items-center mb-4\">\n <h3 class=\"text-lg font-bold text-gray-900\">成就徽章</h3>\n <a href=\"#\" class=\"text-primary-blue text-sm font-medium flex items-center\">\n 查看全部\n <i class=\"fas fa-chevron-right ml-1 text-xs\"></i>\n </a>\n </div>\n <div class=\"flex space-x-4 overflow-x-auto pb-2\">\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-blue-100 to-blue-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-mountain text-primary-blue text-xl\"></i>\n </div>\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-green-100 to-green-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-tree text-primary-green text-xl\"></i>\n </div>\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-orange-100 to-orange-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-campground text-primary-orange text-xl\"></i>\n </div>\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-purple-100 to-purple-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-hiking text-purple-500 text-xl\"></i>\n </div>\n <div class=\"flex-shrink-0 w-16 h-16 rounded-full bg-gradient-to-br from-red-100 to-red-50 flex items-center justify-center border-2 border-white shadow-sm\">\n <i class=\"fas fa-fire text-red-500 text-xl\"></i>\n </div>\n </div>\n </div>\n \n <!-- 图片发布网格 -->\n <div class=\"mb-12 fade-in-delay-2\">\n <div class=\"flex justify-between items-center mb-4\">\n <h3 class=\"text-lg font-bold text-gray-900\">我的徒步相册</h3>\n <div class=\"flex items-center space-x-2\">\n <span class=\"text-sm text-gray-600\">网格视图</span>\n <label class=\"ios-switch\">\n <input type=\"checkbox\" checked>\n <span class=\"ios-slider\"></span>\n </label>\n </div>\n </div>\n \n <div class=\"grid grid-cols-3 gap-2\">\n <!-- 图片1 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/travel-nature/travel-nature-11.jpg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>128</span>\n </div>\n </div>\n </div>\n \n <!-- 图片2 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/16-9/nature-06.jpg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>89</span>\n </div>\n </div>\n </div>\n \n <!-- 图片3 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/hero/1-6.jpg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>156</span>\n </div>\n </div>\n </div>\n \n <!-- 图片4 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/showcase/blog6-large.jpeg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>203</span>\n </div>\n </div>\n </div>\n \n <!-- 图片5 -->\n <div class=\"grid-item aspect-square\">\n <img src=\"/assets/images/hero/hero-1-v2-4.jpeg\" alt=\"徒步照片\" class=\"w-full h-full object-cover\">\n <div class=\"absolute bottom-2 left-2 z-10 opacity-0 transition-opacity duration-300 grid-item-hover:opacity-100\">\n <div class=\"flex items-center text-white text-xs\">\n <i class=\"fas fa-heart mr-1\"></i>\n <span>74</span>\n </div>\n </div>\n </div>\n \n <!-- 添加新图片按钮 -->\n <div class=\"aspect-square border-2 border-dashed border-gray-300 rounded-xl flex items-center justify-center hover:border-primary-blue transition-colors cursor-pointer\">\n <div class=\"text-center\">\n <i class=\"fas fa-plus text-gray-400 text-2xl mb-2\"></i>\n <p class=\"text-xs text-gray-500\">添加照片</p>\n </div>\n </div>\n </div>\n </div>\n </main>\n \n <!-- iOS风格底部标签栏 -->\n <div class=\"tab-bar fixed bottom-0 left-0 right-0 z-40\">\n <div class=\"flex justify-around items-center h-full px-2\">\n <a href=\"#\" class=\"tab-item active flex flex-col items-center justify-center\">\n <i class=\"fas fa-user text-xl mb-1\"></i>\n <span class=\"text-xs font-medium\">个人</span>\n </a>\n \n <a href=\"#\" class=\"tab-item flex flex-col items-center justify-center\">\n <i class=\"fas fa-compass text-xl mb-1\"></i>\n <span class=\"text-xs font-medium\">探索</span>\n </a>\n \n <a href=\"#\" class=\"tab-item flex flex-col items-center justify-center relative\">\n <div class=\"absolute -top-1 right-4 w-6 h-6 rounded-full bg-gradient-to-r from-primary-blue to-primary-green flex items-center justify-center text-white text-xs font-bold\">\n <i class=\"fas fa-plus\"></i>\n </div>\n <i class=\"fas fa-plus-circle text-3xl text-primary-blue mb-1\"></i>\n <span class=\"text-xs font-medium\">发布</span>\n </a>\n \n <a href=\"#\" class=\"tab-item flex flex-col items-center justify-center\">\n <i class=\"fas fa-heart text-xl mb-1\"></i>\n <span class=\"text-xs font-medium\">收藏</span>\n </a>\n \n <a href=\"#\" class=\"tab-item flex flex-col items-center justify-center relative\">\n <span class=\"notification-dot top-0 right-2\"></span>\n <i class=\"fas fa-bell text-xl mb-1\"></i>\n <span class=\"text-xs font-medium\">消息</span>\n </a>\n </div>\n </div>\n \n <script>\n // 简单的交互效果\n document.addEventListener('DOMContentLoaded', function() {\n // 网格图片悬停效果\n const gridItems = document.querySelectorAll('.grid-item');\n gridItems.forEach(item => {\n item.addEventListener('mouseenter', function() {\n const likeCount = this.querySelector('.absolute');\n if (likeCount) {\n likeCount.style.opacity = '1';\n }\n });\n \n item.addEventListener('mouseleave', function() {\n const likeCount = this.querySelector('.absolute');\n if (likeCount) {\n likeCount.style.opacity = '0';\n }\n });\n });\n \n // 切换按钮点击效果\n const tabItems = document.querySelectorAll('.tab-item');\n tabItems.forEach(item => {\n item.addEventListener('click', function(e) {\n e.preventDefault();\n tabItems.forEach(tab => tab.classList.remove('active'));\n this.classList.add('active');\n });\n });\n \n // iOS开关切换\n const iosSwitch = document.querySelector('.ios-switch input');\n if (iosSwitch) {\n iosSwitch.addEventListener('change', function() {\n const gridContainer = document.querySelector('.grid');\n if (this.checked) {\n gridContainer.classList.remove('grid-cols-2');\n gridContainer.classList.add('grid-cols-3');\n } else {\n gridContainer.classList.remove('grid-cols-3');\n gridContainer.classList.add('grid-cols-2');\n }\n });\n }\n \n // 关注按钮交互\n const followBtn = document.querySelector('.btn-primary');\n if (followBtn) {\n followBtn.addEventListener('click', function() {\n const isFollowing = this.textContent.includes('已关注');\n if (isFollowing) {\n this.innerHTML = '<i class=\"fas fa-plus\"></i><span>关注</span>';\n this.classList.remove('bg-gray-600');\n this.classList.add('bg-gradient-to-r', 'from-primary-blue', 'to-blue-500');\n } else {\n this.innerHTML = '<i class=\"fas fa-check\"></i><span>已关注</span>';\n this.classList.remove('bg-gradient-to-r', 'from-primary-blue', 'to-blue-500');\n this.classList.add('bg-gray-600');\n }\n });\n }\n });\n </script>\n</body>\n</html>"},
"next": ["添加好友列表功能","集成地图轨迹展示","增加活动日历","添加成就进度条","优化深色模式"],
"breakpoint": "xs"
}```
角色
assistant
content
total_tokens
19086
summary
为徒步社交应用TrailPeak设计的iOS风格个人页面,采用明亮户外主题配色方案,包含圆形头像、个人简介、美观的图片网格和底部导航。设计融合现代化iOS界面元素与户外冒险美学,使用天空蓝、森林绿和阳光橙作为主色调,营造清新自然的视觉体验。
uiParsing
关闭