Files
life-echo/app-ios/demo/chat-list.html
penghanyuan 748f252c2f add ios app
2026-01-31 21:20:50 +01:00

355 lines
8.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>往事拾遗 - 对话列表</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;600&display=swap" rel="stylesheet">
<style>
:root {
--deep-purple: #200028;
--slate-purple: #8C8EA3;
--medium-purple: #A177A6;
--lavender: #CEB0DA;
--blush: #DBBABA;
--cream: #FAF7F8;
--white: #FFFFFF;
--font-serif: 'Noto Serif SC', serif;
--font-sans: 'Noto Sans SC', sans-serif;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
-webkit-tap-highlight-color: transparent;
}
body {
font-family: var(--font-sans);
background: #1a1a2e;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
padding: 20px;
}
/* Phone Frame */
.phone-frame {
width: 393px;
height: 852px;
background: var(--cream);
border-radius: 55px;
overflow: hidden;
position: relative;
box-shadow:
0 0 0 11px #1a1a1a,
0 0 0 13px #3a3a3a,
0 25px 50px -12px rgba(0, 0, 0, 0.5);
}
/* Dynamic Island */
.dynamic-island {
position: absolute;
top: 11px;
left: 50%;
transform: translateX(-50%);
width: 126px;
height: 37px;
background: #000;
border-radius: 24px;
z-index: 1000;
}
/* Screen */
.screen {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
}
/* Header */
.header {
padding: 60px 20px 20px;
background: var(--medium-purple);
flex-shrink: 0;
}
.header-title {
font-family: var(--font-serif);
font-size: 32px;
font-weight: 600;
color: var(--white);
margin-bottom: 6px;
}
.header-subtitle {
font-size: 15px;
color: rgba(255,255,255,0.85);
}
/* Content */
.content {
flex: 1;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
.content::-webkit-scrollbar {
display: none;
}
/* Section */
.section-title {
font-size: 13px;
color: var(--slate-purple);
padding: 16px 20px 10px;
font-weight: 500;
letter-spacing: 0.5px;
}
/* Chat List Item */
.chat-item {
display: flex;
align-items: center;
padding: 14px 20px;
cursor: pointer;
transition: background 0.2s ease;
text-decoration: none;
}
.chat-item:active {
background: rgba(206, 176, 218, 0.3);
}
.chat-avatar {
width: 56px;
height: 56px;
border-radius: 14px;
background: var(--lavender);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
font-size: 26px;
box-shadow: 0 2px 8px rgba(32, 0, 40, 0.08);
}
.chat-info {
flex: 1;
min-width: 0;
}
.chat-name {
font-size: 17px;
font-weight: 500;
color: var(--deep-purple);
margin-bottom: 4px;
}
.chat-preview {
font-size: 14px;
color: var(--slate-purple);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
line-height: 1.4;
}
.chat-meta {
text-align: right;
flex-shrink: 0;
margin-left: 12px;
}
.chat-time {
font-size: 12px;
color: var(--slate-purple);
margin-bottom: 6px;
}
.chat-badge {
width: 20px;
height: 20px;
border-radius: 10px;
background: var(--medium-purple);
color: var(--white);
font-size: 12px;
display: flex;
align-items: center;
justify-content: center;
margin-left: auto;
}
/* Divider */
.divider {
height: 1px;
background: rgba(32, 0, 40, 0.06);
margin-left: 90px;
}
/* Empty State */
.empty-state {
text-align: center;
padding: 60px 40px;
color: var(--slate-purple);
}
.empty-icon {
font-size: 48px;
margin-bottom: 16px;
}
.empty-text {
font-size: 15px;
line-height: 1.6;
}
/* Tip Card */
.tip-card {
margin: 20px;
padding: 16px 20px;
background: var(--white);
border-radius: 16px;
box-shadow: 0 2px 12px rgba(32, 0, 40, 0.06);
}
.tip-title {
font-size: 14px;
font-weight: 500;
color: var(--deep-purple);
margin-bottom: 8px;
display: flex;
align-items: center;
gap: 8px;
}
.tip-title svg {
width: 18px;
height: 18px;
stroke: var(--medium-purple);
fill: none;
stroke-width: 2;
}
.tip-content {
font-size: 13px;
color: var(--slate-purple);
line-height: 1.6;
}
/* Navigation Bar */
.nav-bar {
display: flex;
justify-content: space-around;
align-items: flex-start;
padding: 12px 0;
padding-bottom: calc(12px + 34px);
background: var(--white);
border-top: 1px solid rgba(32, 0, 40, 0.08);
flex-shrink: 0;
}
.nav-item {
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
cursor: pointer;
opacity: 0.5;
transition: all 0.3s ease;
padding: 4px 20px;
text-decoration: none;
}
.nav-item.active {
opacity: 1;
}
.nav-item svg {
width: 26px;
height: 26px;
stroke: var(--deep-purple);
fill: none;
stroke-width: 1.8;
}
.nav-item.active svg {
stroke: var(--medium-purple);
}
.nav-item span {
font-size: 11px;
color: var(--deep-purple);
font-weight: 500;
}
.nav-item.active span {
color: var(--medium-purple);
}
</style>
</head>
<body>
<div class="phone-frame">
<div class="dynamic-island"></div>
<div class="screen">
<!-- Header -->
<div class="header">
<h1 class="header-title">往事拾遗</h1>
<p class="header-subtitle">用对话,留住珍贵的记忆</p>
</div>
<!-- Content -->
<div class="content">
<div class="section-title">我的对话</div>
<a href="chat.html" class="chat-item">
<div class="chat-avatar">📖</div>
<div class="chat-info">
<div class="chat-name">回忆录助手</div>
<div class="chat-preview">您想从哪里开始呢?可以聊聊童年...</div>
</div>
<div class="chat-meta">
<div class="chat-time">刚刚</div>
</div>
</a>
<div class="divider"></div>
<!-- Tip Card -->
<div class="tip-card">
<div class="tip-title">
<svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
小贴士
</div>
<div class="tip-content">
每天花几分钟聊聊往事AI 会帮您整理成完整的回忆录。您可以聊童年趣事、求学经历、工作故事,或者任何难忘的回忆。
</div>
</div>
</div>
<!-- Navigation Bar -->
<nav class="nav-bar">
<a href="chat-list.html" class="nav-item active">
<svg viewBox="0 0 24 24"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
<span>对话</span>
</a>
<a href="demo.html" class="nav-item">
<svg viewBox="0 0 24 24"><path d="M4 19.5A2.5 2.5 0 016.5 17H20M4 19.5A2.5 2.5 0 004 14.5V5a2 2 0 012-2h14v16.5"/></svg>
<span>回忆录</span>
</a>
<a href="demo.html" class="nav-item">
<svg viewBox="0 0 24 24"><path d="M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2M12 11a4 4 0 100-8 4 4 0 000 8z"/></svg>
<span>我的</span>
</a>
</nav>
</div>
</div>
</body>
</html>