-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
261 lines (244 loc) · 10.8 KB
/
Copy pathindex.html
File metadata and controls
261 lines (244 loc) · 10.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<meta name="description" content="Modern MBTI personality assessment — discover your 16-type profile with deep insights, compatibility analysis, and growth recommendations." />
<title>Persona — MBTI Personality Profiler</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="style.css" />
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js" defer></script>
<script src="https://cdn.jsdelivr.net/npm/canvas-confetti@1.9.2/dist/confetti.browser.min.js" defer></script>
<script src="https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js" defer></script>
<script src="script.js" defer></script>
</head>
<body>
<div class="bg-orbs" aria-hidden="true">
<span class="orb orb-1"></span>
<span class="orb orb-2"></span>
<span class="orb orb-3"></span>
</div>
<header class="topbar glass">
<a href="#landing" class="brand" data-route="landing">
<span class="brand-mark">P</span>
<span class="brand-name">Persona</span>
</a>
<nav class="nav">
<a href="#landing" data-route="landing">Home</a>
<a href="#types" data-route="types">Types</a>
<a href="#compatibility" data-route="compatibility">Compatibility</a>
<a href="#history" data-route="history">History</a>
</nav>
<div class="topbar-actions">
<div class="xp-pill" title="Experience points">
<span class="xp-icon">★</span>
<span id="xp-count">0</span> XP
</div>
<button class="icon-btn" id="sound-toggle" title="Toggle sound" aria-label="Toggle sound">
<span data-sound-on>🔊</span>
</button>
<button class="icon-btn" id="theme-toggle" title="Toggle theme" aria-label="Toggle theme">
<span data-theme-icon>☾</span>
</button>
<button class="icon-btn nav-toggle" id="nav-toggle" aria-label="Open menu">☰</button>
</div>
</header>
<main id="main">
<!-- LANDING -->
<section class="view active" data-view="landing">
<div class="hero">
<div class="hero-inner">
<span class="eyebrow">Discover your cognitive blueprint</span>
<h1 class="hero-title">
Decode your <span class="grad-text">personality</span><br />
unlock how you <span class="grad-text-2">think</span>.
</h1>
<p class="hero-sub">
A modern MBTI assessment built for self-aware professionals. 60 thoughtful questions,
visual analytics, deep insights, and team compatibility — all in your browser.
</p>
<div class="hero-cta">
<button class="btn btn-primary btn-lg" data-route="assessment">
Start Assessment <span class="arrow">→</span>
</button>
<button class="btn btn-ghost btn-lg" data-route="types">Explore the 16 Types</button>
</div>
<div class="hero-stats">
<div><strong>60</strong><span>Questions</span></div>
<div><strong>16</strong><span>Types</span></div>
<div><strong>4</strong><span>Dimensions</span></div>
<div><strong>~10</strong><span>Minutes</span></div>
</div>
</div>
</div>
<section class="section">
<div class="section-head">
<span class="eyebrow">The Four Dimensions</span>
<h2>What MBTI measures</h2>
<p class="section-sub">Each dimension is a spectrum. You'll land somewhere on each one — that's your type.</p>
</div>
<div class="dim-grid" id="dim-grid"></div>
</section>
<section class="section">
<div class="section-head">
<span class="eyebrow">All 16 Types</span>
<h2>Find yourself in the gallery</h2>
<p class="section-sub">Each personality type has a distinct cognitive style and contribution.</p>
</div>
<div class="types-grid" id="landing-types-grid"></div>
</section>
<section class="section cta-section">
<div class="cta-card glass">
<h2>Ready to know yourself better?</h2>
<p>The assessment auto-saves as you go. Take your time.</p>
<button class="btn btn-primary btn-lg" data-route="assessment">Begin →</button>
</div>
</section>
</section>
<!-- ASSESSMENT -->
<section class="view" data-view="assessment">
<div class="assessment-shell">
<div class="assessment-head">
<div class="assessment-meta">
<span class="eyebrow" id="dim-label">Question</span>
<h2 id="q-counter">1 / 60</h2>
</div>
<button class="btn btn-ghost btn-sm" id="reset-assessment">Reset</button>
</div>
<div class="progress-wrap">
<div class="progress-bar"><span id="progress-fill"></span></div>
<span class="progress-pct" id="progress-pct">0%</span>
</div>
<article class="question-card glass" id="question-card" aria-live="polite">
<p class="question-text" id="question-text">Loading…</p>
<div class="likert" id="likert">
<button class="likert-btn" data-value="2"><span class="dot pos-2"></span>Strongly Agree</button>
<button class="likert-btn" data-value="1"><span class="dot pos-1"></span>Agree</button>
<button class="likert-btn" data-value="0"><span class="dot pos-0"></span>Neutral</button>
<button class="likert-btn" data-value="-1"><span class="dot neg-1"></span>Disagree</button>
<button class="likert-btn" data-value="-2"><span class="dot neg-2"></span>Strongly Disagree</button>
</div>
</article>
<div class="assessment-foot">
<button class="btn btn-ghost" id="prev-btn">← Back</button>
<span class="auto-save" id="auto-save">Auto-saved</span>
<button class="btn btn-primary" id="next-btn">Next →</button>
</div>
</div>
</section>
<!-- RESULTS -->
<section class="view" data-view="results">
<div class="results-shell">
<div class="result-hero glass" id="result-hero">
<!-- injected -->
</div>
<div class="result-grid">
<div class="card glass">
<h3>Trait spectrum</h3>
<div class="trait-bars" id="trait-bars"></div>
</div>
<div class="card glass">
<h3>Cognitive radar</h3>
<canvas id="radar-chart" height="260"></canvas>
</div>
</div>
<div class="card glass insights-card">
<div class="tabs" id="insight-tabs">
<button class="tab active" data-tab="strengths">Strengths</button>
<button class="tab" data-tab="weaknesses">Weaknesses</button>
<button class="tab" data-tab="communication">Communication</button>
<button class="tab" data-tab="leadership">Leadership</button>
<button class="tab" data-tab="learning">Learning</button>
<button class="tab" data-tab="workplace">Workplace</button>
<button class="tab" data-tab="careers">Careers</button>
<button class="tab" data-tab="teamwork">Team</button>
<button class="tab" data-tab="stress">Stress</button>
<button class="tab" data-tab="growth">Growth</button>
</div>
<div class="tab-body" id="insight-body"></div>
</div>
<div class="card glass">
<h3>You vibe with</h3>
<p class="muted">Top compatible types based on your profile</p>
<div class="compat-strip" id="compat-strip"></div>
</div>
<div class="result-actions">
<button class="btn btn-primary" id="share-btn">Share</button>
<button class="btn btn-ghost" id="download-btn">Download PNG</button>
<button class="btn btn-ghost" data-route="compatibility">Check compatibility</button>
<button class="btn btn-ghost" id="retake-btn">Retake</button>
</div>
</div>
</section>
<!-- TYPES -->
<section class="view" data-view="types">
<div class="section-head">
<span class="eyebrow">Gallery</span>
<h2>The 16 Personality Types</h2>
<p class="section-sub">Tap any card to dive into the full profile.</p>
</div>
<div class="filter-bar" id="type-filter"></div>
<div class="types-grid full" id="types-grid"></div>
</section>
<!-- COMPATIBILITY -->
<section class="view" data-view="compatibility">
<div class="section-head">
<span class="eyebrow">Compatibility</span>
<h2>How two types collide</h2>
<p class="section-sub">Pick two types to see their working chemistry.</p>
</div>
<div class="compat-shell">
<div class="compat-pickers">
<div class="picker glass">
<label>Type A</label>
<select id="compat-a"></select>
</div>
<div class="picker glass">
<label>Type B</label>
<select id="compat-b"></select>
</div>
</div>
<div class="compat-result glass" id="compat-result"></div>
<div class="card glass">
<h3>Full matrix</h3>
<div class="compat-matrix" id="compat-matrix"></div>
</div>
</div>
</section>
<!-- HISTORY -->
<section class="view" data-view="history">
<div class="section-head">
<span class="eyebrow">Your journey</span>
<h2>Assessment history</h2>
<p class="section-sub">Past results and unlocked badges.</p>
</div>
<div class="history-shell">
<div class="card glass">
<h3>Badges</h3>
<div class="badges" id="badges"></div>
</div>
<div class="card glass">
<h3>Past results</h3>
<div class="history-list" id="history-list"></div>
</div>
</div>
</section>
</main>
<!-- TYPE DETAIL MODAL -->
<div class="modal" id="type-modal" aria-hidden="true">
<div class="modal-backdrop" data-close></div>
<div class="modal-card glass" role="dialog" aria-modal="true">
<button class="modal-close" data-close aria-label="Close">×</button>
<div id="type-modal-body"></div>
</div>
</div>
<!-- TOAST -->
<div class="toast" id="toast" role="status" aria-live="polite"></div>
<footer class="footer">
<p>Persona · MBTI for the modern mind · Built with vanilla JS</p>
<p>Powered by <a href="https://www.tertiarycourses.com.sg/" target="_blank" rel="noopener noreferrer">Tertiary Infotech Academy Pte Ltd</a></p>
</footer>
</body>
</html>