kalei/initial mockups/screens/mirror/15-mirror-home.html

333 lines
14 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=390, initial-scale=1">
<title>Kalei — Mirror</title>
<link rel="stylesheet" href="../../assets/design-system.css">
<style>
.mirror-aura {
position: absolute;
top: 15%;
left: 50%;
transform: translate(-50%, -50%);
width: 260px;
height: 260px;
border-radius: 50%;
background: radial-gradient(circle, rgba(245,158,11,0.14) 0%, transparent 70%);
filter: blur(50px);
animation: breathing 6s ease-in-out infinite;
pointer-events: none;
z-index: 0;
}
.mirror-greeting {
padding: var(--space-5) 0 var(--space-4);
position: relative;
z-index: 1;
}
.streak-badge {
display: inline-flex;
align-items: center;
gap: 6px;
background: rgba(245,158,11,0.12);
border: 1px solid rgba(245,158,11,0.25);
border-radius: var(--radius-full);
padding: 4px 12px;
font-size: 13px;
font-weight: 600;
color: var(--amber-light);
}
.start-session-card {
background: linear-gradient(135deg, rgba(245,158,11,0.12), rgba(245,158,11,0.04));
border: 1px solid rgba(245,158,11,0.25);
border-radius: var(--radius-xl);
padding: var(--space-5);
display: flex;
align-items: center;
gap: var(--space-4);
cursor: pointer;
text-decoration: none;
transition: all 0.2s;
position: relative;
z-index: 1;
margin-bottom: var(--space-5);
box-shadow: 0 0 24px rgba(245,158,11,0.08);
}
.start-session-card:hover { box-shadow: var(--glow-amber); }
.mirror-icon-wrap {
width: 56px;
height: 56px;
border-radius: var(--radius-lg);
background: rgba(245,158,11,0.15);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.session-card-content { flex: 1; }
.session-card-title {
font-size: 18px;
font-weight: 600;
color: var(--pure-light);
margin-bottom: 3px;
}
.session-card-sub {
font-size: 13px;
color: var(--dim-light);
}
.recent-session-item {
display: flex;
align-items: center;
gap: var(--space-3);
padding: var(--space-3) 0;
border-bottom: 1px solid rgba(28,34,64,0.5);
cursor: pointer;
text-decoration: none;
transition: opacity 0.2s ease-out;
}
.recent-session-item:hover { opacity: 0.72; }
.recent-session-item:last-child { border-bottom: none; }
.session-dot {
width: 36px;
height: 36px;
border-radius: var(--radius-md);
background: rgba(245,158,11,0.1);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.session-info { flex: 1; }
.session-date { font-size: 13px; color: var(--soft-light); font-weight: 500; }
.session-stats { font-size: 11px; color: var(--dim-light); margin-top: 2px; }
.fragments-grid {
display: flex;
flex-wrap: wrap;
gap: var(--space-2);
margin-top: var(--space-3);
position: relative;
z-index: 1;
}
.fragment-count-chip {
display: inline-flex;
align-items: center;
gap: 5px;
background: rgba(245,158,11,0.1);
border: 1px solid rgba(245,158,11,0.2);
border-radius: var(--radius-full);
padding: 4px 10px;
font-size: 12px;
font-weight: 500;
color: var(--amber-light);
}
.fragment-count-num {
background: rgba(245,158,11,0.2);
border-radius: var(--radius-full);
width: 18px;
height: 18px;
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
font-weight: 700;
color: var(--amber);
}
.content-z { position: relative; z-index: 1; }
</style>
</head>
<body>
<div class="device-frame">
<div class="status-bar">
<span class="time">9:41</span>
<div class="icons">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none">
<rect x="1" y="7" width="2.5" height="5" rx="0.5" fill="#E2E8F0" opacity="0.4"/>
<rect x="4.5" y="5" width="2.5" height="7" rx="0.5" fill="#E2E8F0" opacity="0.6"/>
<rect x="8" y="3" width="2.5" height="9" rx="0.5" fill="#E2E8F0" opacity="0.8"/>
<rect x="11.5" y="1" width="2.5" height="11" rx="0.5" fill="#E2E8F0"/>
</svg>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M 2,8 C 4,4 12,4 14,8" stroke="#E2E8F0" stroke-width="1.2" fill="none" stroke-linecap="round"/>
<path d="M 4,10 C 6,7 10,7 12,10" stroke="#E2E8F0" stroke-width="1" fill="none" opacity="0.8" stroke-linecap="round"/>
<circle cx="8" cy="12" r="1.2" fill="#E2E8F0"/>
</svg>
<svg width="24" height="12" viewBox="0 0 24 12" fill="none">
<rect x="0.5" y="0.5" width="21" height="11" rx="2.5" stroke="#E2E8F0" stroke-width="1" opacity="0.5"/>
<rect x="22" y="3" width="2" height="6" rx="1" fill="#E2E8F0" opacity="0.3"/>
<rect x="2" y="2" width="16" height="8" rx="1.5" fill="#10B981" opacity="0.9"/>
</svg>
</div>
</div>
<div class="screen-content" style="padding-bottom: 16px;">
<div class="mirror-aura"></div>
<div class="mirror-greeting">
<div style="display:flex; align-items:center; justify-content:space-between; margin-bottom: var(--space-2);">
<div class="heading text-pure">Good morning, Alex</div>
<div class="streak-badge">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none">
<path d="M7 1L9 5L13 5.5L10 8.5L10.5 13L7 11L3.5 13L4 8.5L1 5.5L5 5Z" fill="var(--amber)" opacity="0.9"/>
</svg>
14 days
</div>
</div>
<div class="body" style="color: var(--dim-light);">What's on your mind today?</div>
</div>
<!-- Start session card -->
<a class="start-session-card" href="16-mirror-session.html">
<div class="mirror-icon-wrap">
<!-- Mirror hexagon icon -->
<svg width="28" height="28" viewBox="0 0 28 28" fill="none">
<defs>
<linearGradient id="mirrorGrad" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#FDE68A"/>
<stop offset="100%" stop-color="#D97706"/>
</linearGradient>
</defs>
<path d="M14 3L20 7.5L20 16.5L14 21L8 16.5L8 7.5Z" stroke="url(#mirrorGrad)" fill="none" stroke-width="1.5"/>
<path d="M14 7L18 10.2V16.8L14 20L10 16.8V10.2Z" fill="url(#mirrorGrad)" opacity="0.3"/>
<circle cx="14" cy="12" r="2" fill="url(#mirrorGrad)" opacity="0.6"/>
</svg>
</div>
<div class="session-card-content">
<div class="session-card-title">Start a session</div>
<div class="session-card-sub">Journal freely — fragments detected automatically</div>
</div>
<svg width="20" height="20" viewBox="0 0 20 20" fill="none">
<path d="M8 4L14 10L8 16" stroke="var(--amber-light)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<!-- Recent sessions -->
<div class="content-z">
<div class="section-header">
<span class="section-title">Recent Sessions</span>
<span class="section-action">See all</span>
</div>
<div class="card" style="margin-bottom: var(--space-4);">
<a class="recent-session-item" href="19-mirror-reflection.html">
<div class="session-dot">
<svg width="18" height="18" viewBox="0 0 18 18" fill="none">
<path d="M9 2L12.5 6.5L13.5 11L9 14.5L4.5 11L5.5 6.5Z" stroke="var(--amber)" fill="none" stroke-width="1.2"/>
</svg>
</div>
<div class="session-info">
<div class="session-date">Feb 21 — Evening</div>
<div class="session-stats">12 min &nbsp;·&nbsp; 847 words &nbsp;·&nbsp; 3 fragments</div>
</div>
<svg width="14" height="14" viewBox="0 0 14 14" fill="none">
<path d="M5 3L9 7L5 11" stroke="var(--faint-light)" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a class="recent-session-item" href="19-mirror-reflection.html">
<div class="session-dot">
<svg width="18" height="18" viewBox="0 0 18 18" fill="none">
<path d="M9 2L12.5 6.5L13.5 11L9 14.5L4.5 11L5.5 6.5Z" stroke="var(--amber)" fill="none" stroke-width="1.2"/>
</svg>
</div>
<div class="session-info">
<div class="session-date">Feb 20 — Morning</div>
<div class="session-stats">8 min &nbsp;·&nbsp; 524 words &nbsp;·&nbsp; 1 fragment</div>
</div>
<svg width="14" height="14" viewBox="0 0 14 14" fill="none">
<path d="M5 3L9 7L5 11" stroke="var(--faint-light)" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a class="recent-session-item" href="19-mirror-reflection.html">
<div class="session-dot">
<svg width="18" height="18" viewBox="0 0 18 18" fill="none">
<path d="M9 2L12.5 6.5L13.5 11L9 14.5L4.5 11L5.5 6.5Z" stroke="var(--amber)" fill="none" stroke-width="1.2"/>
</svg>
</div>
<div class="session-info">
<div class="session-date">Feb 18 — Night</div>
<div class="session-stats">15 min &nbsp;·&nbsp; 1,102 words &nbsp;·&nbsp; 4 fragments</div>
</div>
<svg width="14" height="14" viewBox="0 0 14 14" fill="none">
<path d="M5 3L9 7L5 11" stroke="var(--faint-light)" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</div>
</div>
<!-- Your Fragments section -->
<div class="content-z">
<div class="section-header">
<span class="section-title">Your Fragments</span>
<span class="section-action">Details</span>
</div>
<div class="fragments-grid">
<div class="fragment-count-chip">
<svg width="10" height="10" viewBox="0 0 10 10">
<path d="M5 0.5L9 5L5 9.5L1 5Z" fill="var(--amber)" opacity="0.8"/>
</svg>
Catastrophizing
<div class="fragment-count-num">7</div>
</div>
<div class="fragment-count-chip">
<svg width="10" height="10" viewBox="0 0 10 10">
<path d="M5 0.5L9 5L5 9.5L1 5Z" fill="var(--amber)" opacity="0.8"/>
</svg>
Mind Reading
<div class="fragment-count-num">4</div>
</div>
<div class="fragment-count-chip">
<svg width="10" height="10" viewBox="0 0 10 10">
<path d="M5 0.5L9 5L5 9.5L1 5Z" fill="var(--amber)" opacity="0.8"/>
</svg>
Should Statements
<div class="fragment-count-num">3</div>
</div>
<div class="fragment-count-chip">
<svg width="10" height="10" viewBox="0 0 10 10">
<path d="M5 0.5L9 5L5 9.5L1 5Z" fill="var(--amber)" opacity="0.8"/>
</svg>
Overgeneralization
<div class="fragment-count-num">2</div>
</div>
<div class="fragment-count-chip">
<svg width="10" height="10" viewBox="0 0 10 10">
<path d="M5 0.5L9 5L5 9.5L1 5Z" fill="var(--amber)" opacity="0.8"/>
</svg>
Personalization
<div class="fragment-count-num">2</div>
</div>
</div>
</div>
</div>
<div class="tab-bar">
<a class="tab-item inactive" data-tab="turn" href="../turn/10-turn-home.html">
<svg width="24" height="24" viewBox="0 0 24 24"><path d="M12 2L20 12L12 22L4 12Z" fill="currentColor" opacity="0.9"/><path d="M12 2L20 12L12 12Z" fill="white" opacity="0.15"/></svg>
<span class="tab-label">Turn</span>
</a>
<a class="tab-item active" data-tab="mirror" href="15-mirror-home.html">
<svg width="24" height="24" viewBox="0 0 24 24"><path d="M12 3L16 8L18 14L12 19L6 14L8 8Z" stroke="currentColor" fill="none" stroke-width="1.2"/></svg>
<span class="tab-label">Mirror</span>
</a>
<a class="tab-item inactive" data-tab="lens" href="../lens/20-lens-dashboard.html">
<svg width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9" stroke="currentColor" fill="none" stroke-width="1.2"/><circle cx="12" cy="12" r="4" stroke="currentColor" fill="none" stroke-width="0.8"/></svg>
<span class="tab-label">Lens</span>
</a>
<a class="tab-item inactive" data-tab="gallery" href="../gallery/31-gallery-all.html">
<svg width="24" height="24" viewBox="0 0 24 24"><rect x="3" y="3" width="7.5" height="7.5" rx="1.5" stroke="currentColor" fill="none" stroke-width="1"/><rect x="13.5" y="3" width="7.5" height="7.5" rx="1.5" stroke="currentColor" fill="none" stroke-width="1"/><rect x="3" y="13.5" width="7.5" height="7.5" rx="1.5" stroke="currentColor" fill="none" stroke-width="1"/><rect x="13.5" y="13.5" width="7.5" height="7.5" rx="1.5" stroke="currentColor" fill="none" stroke-width="1"/></svg>
<span class="tab-label">Gallery</span>
</a>
<a class="tab-item inactive" data-tab="you" href="../you/35-you-profile.html">
<svg width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="9" r="4" stroke="currentColor" fill="none" stroke-width="1.2"/><path d="M4 20C4 16 8 14 12 14C16 14 20 16 20 20" stroke="currentColor" fill="none" stroke-width="1.2" stroke-linecap="round"/></svg>
<span class="tab-label">You</span>
</a>
</div>
</div>
</body>
</html>