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

379 lines
14 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="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>