333 lines
14 KiB
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 · 847 words · 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 · 524 words · 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 · 1,102 words · 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>
|