-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathindex.html
More file actions
123 lines (117 loc) · 5.3 KB
/
Copy pathindex.html
File metadata and controls
123 lines (117 loc) · 5.3 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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>HiKid.Fun — Learn English!</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=Fredoka:wght@300;400;500;600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="/src/portal/portal.css" />
</head>
<body>
<div id="portal">
<!-- Floating clouds -->
<div class="cloud cloud-1">☁️</div>
<div class="cloud cloud-2">☁️</div>
<div class="cloud cloud-3">☁️</div>
<!-- Hero section with kitten mascot -->
<div id="hero-section">
<div id="kitten-container">
<svg id="kitten" class="kitten-idle" width="100" height="100" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg" aria-label="HiKid kitten">
<!-- Tail -->
<g class="kitten-tail">
<path d="M 155 140 Q 175 120 170 100 Q 165 80 150 95" fill="none" stroke="#F4C295" stroke-width="10" stroke-linecap="round"/>
</g>
<!-- Body -->
<g class="kitten-body">
<ellipse cx="100" cy="155" rx="55" ry="40" fill="#FFE4C4"/>
<ellipse cx="100" cy="155" rx="35" ry="25" fill="#FFF0D9"/>
</g>
<!-- Ears -->
<g class="kitten-ears">
<g class="ear-left">
<path d="M 55 75 L 45 35 L 85 55 Z" fill="#FFE4C4"/>
<path d="M 58 68 L 52 42 L 78 56 Z" fill="#FFB7C5"/>
</g>
<g class="ear-right">
<path d="M 145 75 L 155 35 L 115 55 Z" fill="#FFE4C4"/>
<path d="M 142 68 L 148 42 L 122 56 Z" fill="#FFB7C5"/>
</g>
</g>
<!-- Head -->
<g class="kitten-head">
<circle cx="100" cy="90" r="50" fill="#FFE4C4"/>
</g>
<!-- Blush -->
<g class="kitten-blush">
<ellipse cx="65" cy="105" rx="8" ry="5" fill="#FFB7C5" opacity="0.5"/>
<ellipse cx="135" cy="105" rx="8" ry="5" fill="#FFB7C5" opacity="0.5"/>
</g>
<!-- Eyes -->
<g class="kitten-eyes">
<ellipse cx="75" cy="85" rx="12" ry="14" fill="#FFFFFF"/>
<ellipse class="kitten-pupil" cx="75" cy="85" rx="7" ry="9" fill="#4A3728"/>
<circle cx="78" cy="81" r="3" fill="#FFFFFF"/>
<ellipse cx="125" cy="85" rx="12" ry="14" fill="#FFFFFF"/>
<ellipse class="kitten-pupil" cx="125" cy="85" rx="7" ry="9" fill="#4A3728"/>
<circle cx="128" cy="81" r="3" fill="#FFFFFF"/>
</g>
<!-- Nose -->
<g class="kitten-nose">
<ellipse cx="100" cy="102" rx="5" ry="4" fill="#FFB7C5"/>
</g>
<!-- Mouth -->
<g class="kitten-mouth">
<path class="mouth-smile" d="M 92 108 Q 100 115 108 108" fill="none" stroke="#4A3728" stroke-width="2" stroke-linecap="round"/>
<circle class="mouth-o" cx="100" cy="112" r="4.5" fill="#4A3728" opacity="0"/>
<line class="mouth-dash" x1="95" y1="112" x2="105" y2="112" stroke="#4A3728" stroke-width="2.5" stroke-linecap="round" opacity="0"/>
</g>
<!-- Whiskers -->
<g class="kitten-whiskers">
<line x1="45" y1="95" x2="70" y2="100" stroke="#C4A882" stroke-width="1.5" stroke-linecap="round"/>
<line x1="42" y1="105" x2="68" y2="105" stroke="#C4A882" stroke-width="1.5" stroke-linecap="round"/>
<line x1="45" y1="115" x2="70" y2="110" stroke="#C4A882" stroke-width="1.5" stroke-linecap="round"/>
<line x1="155" y1="95" x2="130" y2="100" stroke="#C4A882" stroke-width="1.5" stroke-linecap="round"/>
<line x1="158" y1="105" x2="132" y2="105" stroke="#C4A882" stroke-width="1.5" stroke-linecap="round"/>
<line x1="155" y1="115" x2="130" y2="110" stroke="#C4A882" stroke-width="1.5" stroke-linecap="round"/>
</g>
<!-- Paws -->
<g class="kitten-paws">
<ellipse cx="70" cy="185" rx="12" ry="8" fill="#FFE4C4"/>
<ellipse cx="70" cy="187" rx="7" ry="5" fill="#FFB7C5"/>
<ellipse cx="130" cy="185" rx="12" ry="8" fill="#FFE4C4"/>
<ellipse cx="130" cy="187" rx="7" ry="5" fill="#FFB7C5"/>
</g>
</svg>
<div id="kitten-bubble" class="hidden">Welcome back!</div>
</div>
<div id="hero-center">
<h1 class="app-title">HiKid.Fun - Learn English!</h1>
<p class="app-subtitle">Explore fun scenes and practice speaking</p>
</div>
<!-- Top bar: tree + score -->
<div id="top-bar">
<div id="score-tree">
<svg viewBox="0 0 140 280" id="tree-svg"></svg>
</div>
<div id="score-display">
<div class="star-icon">⭐</div>
<span id="star-count">0</span>
<span id="star-label">stars</span>
</div>
</div>
</div>
<!-- Scene cards -->
<div id="cards-container">
<div id="cards-grid"></div>
</div>
<!-- Loading / Error overlay -->
<div id="portal-loading" class="overlay">
<div class="spinner"></div>
<p>Loading scenes...</p>
</div>
</div>
<script type="module" src="/src/portal/portal.ts"></script>
</body>
</html>