kalei/initial mockups/screens/lens/23-lens-create-step3.html

180 lines
9.2 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=390, initial-scale=1">
<title>Kalei — New Goal Step 3</title>
<link rel="stylesheet" href="../../assets/design-system.css">
<style>
.step-dot.active { background: var(--emerald); box-shadow: 0 0 8px rgba(16,185,129,0.4); }
.step-dot.completed { background: var(--emerald); opacity: 0.5; }
.step-question { font-size: 22px; font-weight: 600; color: var(--pure-light); line-height: 1.3; margin-bottom: var(--space-3); }
.step-hint { font-size: 14px; color: var(--dim-light); line-height: 1.5; margin-bottom: var(--space-5); }
.nav-back { color: var(--emerald-light) !important; }
.obstacle-input-row {
display: flex; gap: var(--space-2); margin-bottom: var(--space-4);
}
.obstacle-input {
flex: 1; height: 48px; background: var(--deep-glass);
border: 1px solid var(--twilight); border-radius: var(--radius-md);
padding: 0 14px; font-size: 15px; color: var(--pure-light);
outline: none; transition: border-color 0.2s; font-family: var(--font-primary);
}
.obstacle-input::placeholder { color: var(--faint-light); }
.obstacle-input:focus { border-color: var(--emerald); }
.add-btn {
width: 48px; height: 48px; background: var(--emerald);
border: none; border-radius: var(--radius-md); cursor: pointer;
display: flex; align-items: center; justify-content: center; flex-shrink: 0;
transition: background 0.2s;
}
.add-btn:hover { background: var(--emerald-light); }
.obstacle-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.obstacle-chip {
display: inline-flex; align-items: center; gap: 6px;
background: rgba(16,185,129,0.1); border: 1px solid rgba(16,185,129,0.25);
border-radius: var(--radius-full); padding: 7px 14px;
font-size: 13px; font-weight: 500; color: var(--emerald-light);
}
.obstacle-chip-remove {
width: 16px; height: 16px; border-radius: 50%;
background: rgba(16,185,129,0.2); border: none; cursor: pointer;
display: flex; align-items: center; justify-content: center; color: var(--emerald);
font-size: 10px; font-weight: 700; transition: background 0.15s;
}
.obstacle-chip-remove:hover { background: rgba(16,185,129,0.4); }
.suggestions-label { font-size: 12px; color: var(--dim-light); margin: 16px 0 8px; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 500; }
.suggestion-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.suggestion-chip {
background: var(--deep-glass); border: 1px dashed var(--twilight);
border-radius: var(--radius-full); padding: 6px 12px; font-size: 12px;
color: var(--dim-light); cursor: pointer; transition: all 0.15s;
}
.suggestion-chip:hover { border-color: rgba(16,185,129,0.3); color: var(--emerald-light); }
.bottom-actions {
position: absolute; bottom: 0; left: 0; right: 0;
padding: var(--space-4) var(--space-4) var(--space-6);
background: linear-gradient(to top, var(--void) 70%, transparent);
display: flex; gap: var(--space-3);
}
.btn-back-ghost {
display: flex; align-items: center; justify-content: center;
height: 52px; width: 52px; background: var(--deep-glass);
color: var(--dim-light); border: 1px solid var(--twilight);
border-radius: var(--radius-lg); text-decoration: none; flex-shrink: 0;
transition: background 0.2s ease-out;
}
.btn-back-ghost:hover { background: var(--twilight); }
.btn-next-emerald {
display: flex; align-items: center; justify-content: center; gap: var(--space-2);
height: 52px; flex: 1; background: var(--emerald); color: var(--pure-light);
font-size: 16px; font-weight: 600; border-radius: var(--radius-lg);
box-shadow: var(--glow-emerald); text-decoration: none; transition: background 0.2s ease-out;
}
.btn-next-emerald:hover { background: var(--emerald-light); }
.screen-content { padding-bottom: 120px; }
</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="22-lens-create-step2.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">New Goal</span>
<span class="nav-action body-sm text-dim">3 of 6</span>
</div>
<div class="step-progress">
<div class="step-dot completed"></div>
<div class="step-dot completed"></div>
<div class="step-dot active"></div>
<div class="step-dot"></div>
<div class="step-dot"></div>
<div class="step-dot"></div>
</div>
<div class="screen-content" style="padding-top: var(--space-6);">
<div class="step-question">What might get in the way?</div>
<div class="step-hint">Anticipating obstacles makes you 2-3x more likely to follow through. Name the real barriers.</div>
<div class="obstacle-input-row">
<input type="text" class="obstacle-input" placeholder="Add an obstacle..." id="obstacleInput">
<button class="add-btn" onclick="addObstacle()">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M10 4v12M4 10h12" stroke="white" stroke-width="2" stroke-linecap="round"/></svg>
</button>
</div>
<div class="obstacle-chips" id="obstacleChips">
<span class="obstacle-chip">
Fear of judgment
<button class="obstacle-chip-remove" onclick="removeChip(this)">x</button>
</span>
<span class="obstacle-chip">
Losing my train of thought
<button class="obstacle-chip-remove" onclick="removeChip(this)">x</button>
</span>
<span class="obstacle-chip">
Voice shaking under pressure
<button class="obstacle-chip-remove" onclick="removeChip(this)">x</button>
</span>
</div>
<div class="suggestions-label">Common obstacles</div>
<div class="suggestion-chips">
<span class="suggestion-chip" onclick="addSuggestion(this)">Catastrophizing before the talk</span>
<span class="suggestion-chip" onclick="addSuggestion(this)">Mind going blank</span>
<span class="suggestion-chip" onclick="addSuggestion(this)">Manager in the room</span>
<span class="suggestion-chip" onclick="addSuggestion(this)">Technical difficulties</span>
<span class="suggestion-chip" onclick="addSuggestion(this)">Not enough preparation time</span>
<span class="suggestion-chip" onclick="addSuggestion(this)">Imposter syndrome</span>
</div>
</div>
<div class="bottom-actions">
<a class="btn-back-ghost" href="22-lens-create-step2.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>
<a class="btn-next-emerald" href="24-lens-create-step4.html">
Next
<svg width="18" height="18" viewBox="0 0 18 18" fill="none"><path d="M6 4l5 5-5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
</a>
</div>
</div>
<script>
function addObstacle() {
const input = document.getElementById('obstacleInput');
if (!input.value.trim()) return;
addChip(input.value.trim());
input.value = '';
}
function addSuggestion(el) {
addChip(el.textContent);
}
function addChip(text) {
const chips = document.getElementById('obstacleChips');
const chip = document.createElement('span');
chip.className = 'obstacle-chip';
chip.innerHTML = `${text}<button class="obstacle-chip-remove" onclick="removeChip(this)">x</button>`;
chips.appendChild(chip);
}
function removeChip(btn) {
btn.parentElement.remove();
}
document.getElementById('obstacleInput').addEventListener('keydown', e => {
if (e.key === 'Enter') addObstacle();
});
</script>
</body>
</html>