kalei/initial mockups/screens/spectrum/53-spectrum-impact.html

379 lines
14 KiB
HTML
Raw Permalink Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=390, initial-scale=1">
<title>Kalei — Turn Impact</title>
<link rel="stylesheet" href="../../assets/design-system.css">
<style>
.impact-container {
padding: 16px;
}
.stats-row {
display: flex;
gap: 10px;
margin-bottom: 16px;
}
.stat-card {
flex: 1;
background: var(--deep-glass);
border: 1px solid var(--twilight);
border-radius: var(--radius-lg);
padding: 12px;
text-align: center;
}
.stat-val {
font-size: 28px;
font-weight: 700;
}
.stat-lbl {
font-size: 11px;
color: var(--dim-light);
margin-top: 2px;
}
.chart-section {
background: var(--kalei-navy);
border: 1px solid var(--twilight);
border-radius: var(--radius-xl);
padding: 16px;
margin-bottom: 12px;
}
.chart-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 14px;
}
.chart-title {
font-size: 14px;
font-weight: 600;
color: var(--soft-light);
}
.chart-legend {
display: flex;
gap: 12px;
}
.legend-item {
display: flex;
align-items: center;
gap: 5px;
font-size: 11px;
color: var(--dim-light);
}
.legend-dot {
width: 8px;
height: 8px;
border-radius: 2px;
}
.bar-chart-wrap {
overflow: hidden;
border-radius: var(--radius-md);
}
.impact-row {
background: var(--kalei-navy);
border: 1px solid var(--twilight);
border-radius: var(--radius-xl);
padding: 12px 14px;
margin-bottom: 8px;
display: flex;
align-items: center;
gap: 12px;
}
.impact-thought {
flex: 1;
min-width: 0;
}
.impact-thought-text {
font-size: 12px;
color: var(--dim-light);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.impact-date {
font-size: 10px;
color: var(--faint-light);
margin-top: 2px;
}
.impact-bars {
display: flex;
flex-direction: column;
gap: 3px;
width: 100px;
flex-shrink: 0;
}
.impact-bar-row {
display: flex;
align-items: center;
gap: 4px;
}
.impact-bar-bg {
flex: 1;
height: 8px;
background: var(--twilight);
border-radius: var(--radius-full);
overflow: hidden;
}
.impact-bar-fill {
height: 100%;
border-radius: var(--radius-full);
}
.impact-delta {
font-size: 12px;
font-weight: 700;
color: var(--emerald-light);
width: 32px;
text-align: right;
flex-shrink: 0;
}
.insight-panel {
background: linear-gradient(135deg, rgba(16,185,129,0.06), rgba(239,68,68,0.04));
border: 1px solid rgba(16,185,129,0.2);
border-radius: var(--radius-xl);
padding: 14px;
margin-top: 4px;
}
.insight-label {
font-size: 10px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--emerald-light);
margin-bottom: 6px;
display: flex;
align-items: center;
gap: 6px;
}
.insight-text {
font-size: 14px;
color: var(--soft-light);
line-height: 1.55;
}
.screen-content { padding-bottom: 20px; }
</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="nav-header">
<a class="nav-back" href="50-spectrum-dashboard.html">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none">
<path d="M12 4L6 10L12 16" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<span class="nav-title">Turn Impact</span>
<span class="nav-action"></span>
</div>
<div class="screen-content no-pad">
<div class="impact-container">
<!-- Stats row — aligned to canonical: 47 turns, Week 3: 14 turns -->
<div class="stats-row">
<div class="stat-card">
<div class="stat-val" style="color: var(--emerald-light);">+27%</div>
<div class="stat-lbl">Avg. Mood Lift</div>
</div>
<div class="stat-card">
<div class="stat-val" style="color: var(--pure-light);">47</div>
<div class="stat-lbl">Total Turns</div>
</div>
<div class="stat-card">
<div class="stat-val" style="color: var(--amethyst-light);">89%</div>
<div class="stat-lbl">Effectiveness</div>
</div>
</div>
<!-- Bar chart overview -->
<div class="chart-section">
<div class="chart-header">
<span class="chart-title">Before vs. After</span>
<div class="chart-legend">
<div class="legend-item">
<div class="legend-dot" style="background: var(--ruby); opacity: 0.7;"></div>
Before
</div>
<div class="legend-item">
<div class="legend-dot" style="background: var(--emerald);"></div>
After
</div>
</div>
</div>
<!-- Bar chart — extracted from spectrum-visualizations.svg "TURN IMPACT" section -->
<div class="bar-chart-wrap">
<svg width="326" height="130" viewBox="0 0 326 130">
<defs>
<linearGradient id="s53-grEmerald" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#6EE7B7"/><stop offset="100%" stop-color="#059669"/>
</linearGradient>
<filter id="s53-glowSm" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="1.5" result="b"/>
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<!-- Y axis + X axis baselines -->
<line x1="28" y1="0" x2="28" y2="100" stroke="#1C2240" stroke-width="0.5"/>
<line x1="28" y1="100" x2="326" y2="100" stroke="#1C2240" stroke-width="0.5"/>
<!-- Grid lines -->
<line x1="28" y1="10" x2="326" y2="10" stroke="#1C2240" stroke-width="0.5" stroke-dasharray="3,4"/>
<line x1="28" y1="36" x2="326" y2="36" stroke="#1C2240" stroke-width="0.5" stroke-dasharray="3,4"/>
<line x1="28" y1="62" x2="326" y2="62" stroke="#1C2240" stroke-width="0.5" stroke-dasharray="3,4"/>
<!-- Y labels -->
<text x="24" y="14" text-anchor="end" fill="#475569" font-size="8" font-family="Inter">10</text>
<text x="24" y="40" text-anchor="end" fill="#475569" font-size="8" font-family="Inter">7</text>
<text x="24" y="66" text-anchor="end" fill="#475569" font-size="8" font-family="Inter">5</text>
<!-- Bar pairs — exact proportions from spectrum-visualizations.svg Turn Impact section -->
<!-- Adapted: center offset 163, 3 pairs spread across 296px width -->
<g filter="url(#s53-glowSm)">
<!-- Pair 1: Distress — before: -40 tall (40%), after: -60 tall (60%) -->
<rect x="50" y="60" width="14" height="40" rx="2" fill="#EF4444" opacity="0.4"/>
<rect x="66" y="40" width="14" height="60" rx="2" fill="url(#s53-grEmerald)" opacity="0.6"/>
<text x="65" y="116" text-anchor="middle" fill="#475569" font-size="8" font-family="Inter">Distress</text>
<!-- Pair 2: Clarity — before: -25 tall, after: -55 tall -->
<rect x="130" y="75" width="14" height="25" rx="2" fill="#EF4444" opacity="0.4"/>
<rect x="146" y="45" width="14" height="55" rx="2" fill="url(#s53-grEmerald)" opacity="0.6"/>
<text x="145" y="116" text-anchor="middle" fill="#475569" font-size="8" font-family="Inter">Clarity</text>
<!-- Pair 3: Hope — before: -20 tall, after: -50 tall -->
<rect x="210" y="80" width="14" height="20" rx="2" fill="#EF4444" opacity="0.4"/>
<rect x="226" y="50" width="14" height="50" rx="2" fill="url(#s53-grEmerald)" opacity="0.6"/>
<text x="225" y="116" text-anchor="middle" fill="#475569" font-size="8" font-family="Inter">Hope</text>
</g>
<!-- Legend -->
<rect x="50" y="122" width="8" height="5" rx="1" fill="#EF4444" opacity="0.4"/>
<text x="62" y="127" font-size="8" fill="#94A3B8" font-family="Inter">Before</text>
<rect x="110" y="122" width="8" height="5" rx="1" fill="#10B981" opacity="0.6"/>
<text x="122" y="127" font-size="8" fill="#94A3B8" font-family="Inter">After</text>
</svg>
</div>
</div>
<!-- Individual Turn impact rows -->
<div class="section-header">
<span class="section-title">Individual Turns</span>
</div>
<!-- Individual turns — work/career context = 72% of Alex's turns -->
<div class="impact-row">
<div class="impact-thought">
<div class="impact-thought-text">"I completely bombed my presentation today..."</div>
<div class="impact-date">Feb 22 · 8:51am · Catastrophizing</div>
</div>
<div class="impact-bars">
<div class="impact-bar-row">
<div class="impact-bar-bg">
<div class="impact-bar-fill" style="width:28%; background: var(--ruby); opacity: 0.7;"></div>
</div>
</div>
<div class="impact-bar-row">
<div class="impact-bar-bg">
<div class="impact-bar-fill" style="width:80%; background: var(--emerald);"></div>
</div>
</div>
</div>
<div class="impact-delta">+52%</div>
</div>
<div class="impact-row">
<div class="impact-thought">
<div class="impact-thought-text">"Nobody at work actually wants me there..."</div>
<div class="impact-date">Feb 21 · 8:33am · Mind Reading</div>
</div>
<div class="impact-bars">
<div class="impact-bar-row">
<div class="impact-bar-bg">
<div class="impact-bar-fill" style="width:22%; background: var(--ruby); opacity: 0.7;"></div>
</div>
</div>
<div class="impact-bar-row">
<div class="impact-bar-bg">
<div class="impact-bar-fill" style="width:65%; background: var(--emerald);"></div>
</div>
</div>
</div>
<div class="impact-delta">+43%</div>
</div>
<div class="impact-row">
<div class="impact-thought">
<div class="impact-thought-text">"I should already be further along by now..."</div>
<div class="impact-date">Feb 19 · 8:40am · Should Statements</div>
</div>
<div class="impact-bars">
<div class="impact-bar-row">
<div class="impact-bar-bg">
<div class="impact-bar-fill" style="width:38%; background: var(--ruby); opacity: 0.7;"></div>
</div>
</div>
<div class="impact-bar-row">
<div class="impact-bar-bg">
<div class="impact-bar-fill" style="width:72%; background: var(--emerald);"></div>
</div>
</div>
</div>
<div class="impact-delta">+34%</div>
</div>
<div class="impact-row">
<div class="impact-thought">
<div class="impact-thought-text">"If I can't handle this, what does that say about me..."</div>
<div class="impact-date">Feb 15 · 7:58am · Personalization</div>
</div>
<div class="impact-bars">
<div class="impact-bar-row">
<div class="impact-bar-bg">
<div class="impact-bar-fill" style="width:18%; background: var(--ruby); opacity: 0.7;"></div>
</div>
</div>
<div class="impact-bar-row">
<div class="impact-bar-bg">
<div class="impact-bar-fill" style="width:58%; background: var(--emerald);"></div>
</div>
</div>
</div>
<div class="impact-delta">+40%</div>
</div>
<!-- Insight -->
<div class="insight-panel">
<div class="insight-label">
<svg width="12" height="12" viewBox="0 0 12 12">
<path d="M6 1L11 6L6 11L1 6Z" fill="#34D399"/>
</svg>
Impact Reading
</div>
<div class="insight-text">Work and career thoughts make up 72% of your turns — and they show your biggest lifts, averaging +27% per session. Your 89am turns (before the workday) consistently outperform afternoon ones. The morning ritual is paying off.</div>
</div>
</div>
</div>
</div>
</body>
</html>