ozzono commited on
Commit
9437c9a
·
verified ·
1 Parent(s): 31f0576

Upload index.html with huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +306 -0
index.html ADDED
@@ -0,0 +1,306 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="es">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Ponele — Juego de Palabras</title>
8
+ <meta name="description"
9
+ content="Adiviná la palabra secreta. Cuanto más cerca semánticamente, menor distancia. Jugá, pensá, ponele.">
10
+
11
+ <!-- Open Graph / Facebook / WhatsApp -->
12
+ <meta property="og:type" content="website">
13
+ <meta property="og:url" content="https://ponele.ar/">
14
+ <meta property="og:title" content="Ponele — Juego de Palabras">
15
+ <meta property="og:description"
16
+ content="Adiviná la palabra secreta. Cuanto más cerca semánticamente, menor distancia. Jugá, pensá, ponele.">
17
+ <meta property="og:image" content="https://ponele.ar/static/og-image.png">
18
+
19
+ <!-- Twitter -->
20
+ <meta property="twitter:card" content="summary_large_image">
21
+ <meta property="twitter:url" content="https://ponele.ar/">
22
+ <meta property="twitter:title" content="Ponele — Juego de Palabras">
23
+ <meta property="twitter:description"
24
+ content="Adiviná la palabra secreta. Cuanto más cerca semánticamente, menor distancia. Jugá, pensá, ponele.">
25
+ <meta property="twitter:image" content="https://ponele.ar/static/og-image.png">
26
+
27
+ <link rel="icon" type="image/png" href="https://ponele.ar/static/favicon.png">
28
+ <link rel="preconnect" href="https://fonts.googleapis.com">
29
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
30
+ <link
31
+ href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;800&family=Syne:wght@700;800&display=swap"
32
+ rel="stylesheet">
33
+ <link rel="stylesheet" href="style.css">
34
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
35
+ <script src="https://cdn.jsdelivr.net/npm/canvas-confetti@1.6.0/dist/confetti.browser.min.js"></script>
36
+ </head>
37
+
38
+ <body>
39
+ <div class="app-container">
40
+ <!-- Header -->
41
+ <header class="game-header">
42
+ <div class="logo">
43
+ <div class="logo-icon-wrapper">
44
+ <svg class="logo-svg" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
45
+ <!-- Shadow -->
46
+ <circle cx="54" cy="54" r="40" fill="black" />
47
+ <!-- Target Circles -->
48
+ <circle cx="50" cy="50" r="40" fill="#A855F7" stroke="white" stroke-width="4" />
49
+ <circle cx="50" cy="50" r="28" fill="white" stroke="black" stroke-width="4" />
50
+ <circle cx="50" cy="50" r="16" fill="var(--warm-yellow)" stroke="black" stroke-width="4" />
51
+ <!-- Arrow -->
52
+ <g transform="rotate(-45 50 50) translate(0, -10)">
53
+ <rect x="47" y="20" width="6" height="50" fill="#E5E7EB" stroke="black" stroke-width="2" />
54
+ <path d="M40 25 L50 5 L60 25 Z" fill="#3B82F6" stroke="black" stroke-width="2" />
55
+ </g>
56
+ </svg>
57
+ </div>
58
+ <div class="logo-text">
59
+ <h1 class="brand-name">Ponele</h1>
60
+ <span class="brand-tagline">ADIVINÁ LA PALABRA</span>
61
+ <div class="game-status-line">
62
+ <span id="game-number-label" class="game-number hidden">#0</span>
63
+ <span id="game-mode-tag" class="mode-tag">DIARIO</span>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ <div class="header-controls">
68
+ <div class="server-dot" id="server-status" title="Servidor online"></div>
69
+ <button id="btn-new-game" class="icon-btn hide-mobile" aria-label="Nueva Palabra"
70
+ title="Nueva palabra aleatoria"><i class="fa-solid fa-rotate"></i></button>
71
+ <button id="btn-hint" class="icon-btn hide-mobile" aria-label="Pedir Pista" title="Pedir una pista"><i
72
+ class="fa-solid fa-lightbulb"></i></button>
73
+ <button id="btn-give-up" class="icon-btn hide-mobile" aria-label="Rendirse" title="Rendirse"><i
74
+ class="fa-solid fa-flag-checkered"></i></button>
75
+ <button id="btn-stats" class="icon-btn hide-mobile" aria-label="Estadísticas"><i
76
+ class="fa-solid fa-chart-simple"></i></button>
77
+ <button id="btn-help" class="icon-btn hide-mobile" aria-label="Ayuda"><i
78
+ class="fa-solid fa-circle-question"></i></button>
79
+ </div>
80
+ </header>
81
+
82
+ <!-- Mobile Action Toolbar: visible only on mobile, sits between header and game -->
83
+ <div class="mobile-toolbar">
84
+ <button id="btn-new-game-mob" class="mob-btn" aria-label="Nueva Palabra">
85
+ <i class="fa-solid fa-rotate"></i><span>Nueva</span>
86
+ </button>
87
+ <button id="btn-hint-mob" class="mob-btn" aria-label="Pista">
88
+ <i class="fa-solid fa-lightbulb"></i><span>Pista</span>
89
+ </button>
90
+ <button id="btn-give-up-mob" class="mob-btn" aria-label="Rendirse">
91
+ <i class="fa-solid fa-flag-checkered"></i><span>Rendirse</span>
92
+ </button>
93
+ <button id="btn-stats-mob" class="mob-btn" aria-label="Estadísticas">
94
+ <i class="fa-solid fa-chart-simple"></i><span>Stats</span>
95
+ </button>
96
+ <button id="btn-help-mob" class="mob-btn" aria-label="Ayuda">
97
+ <i class="fa-solid fa-circle-question"></i><span>Ayuda</span>
98
+ </button>
99
+ </div>
100
+
101
+ <!-- Main Game Area -->
102
+ <main class="game-board">
103
+ <div class="input-section">
104
+ <div class="input-wrapper">
105
+ <input type="text" id="word-input" placeholder="Escribí una palabra..." autocomplete="on"
106
+ autocorrect="on" spellcheck="true" autocapitalize="none">
107
+ <button id="btn-submit" aria-label="Enviar"><i class="fa-solid fa-arrow-up"></i></button>
108
+ </div>
109
+ </div>
110
+
111
+ <div class="guesses-container">
112
+ <div class="guesses-header">
113
+ <span>Palabra</span>
114
+ <span>Distancia</span>
115
+ </div>
116
+ <div id="guesses-list" class="guesses-list">
117
+ <!-- Guesses will be injected here -->
118
+ </div>
119
+ </div>
120
+ </main>
121
+ </div>
122
+
123
+ <!-- Stats Modal -->
124
+ <div id="stats-modal" class="modal hidden">
125
+ <div class="modal-content stats-modal-content">
126
+ <button class="modal-close" id="btn-close-stats"><i class="fa-solid fa-xmark"></i></button>
127
+ <div class="stats-modal-header">
128
+ <i class="fa-solid fa-chart-simple"></i>
129
+ <h2>Métricas</h2>
130
+ </div>
131
+
132
+ <div class="stats-grid">
133
+ <div class="stat-card">
134
+ <span class="stat-value" id="stats-attempts">0</span>
135
+ <span class="stat-label">Intentos</span>
136
+ </div>
137
+ <div class="stat-card">
138
+ <span class="stat-value" id="stats-words">0</span>
139
+ <span class="stat-label">Palabras</span>
140
+ </div>
141
+ <div class="stat-card">
142
+ <span class="stat-value" id="stats-best-rank">—</span>
143
+ <span class="stat-label">Mejor Rank</span>
144
+ </div>
145
+ <div class="stat-card">
146
+ <span class="stat-value" id="stats-status">🔍</span>
147
+ <span class="stat-label">Estado</span>
148
+ </div>
149
+ </div>
150
+
151
+ <div class="stats-progress-section">
152
+ <div class="stats-progress-label">
153
+ <span>Progreso</span>
154
+ <span id="stats-progress-text">Sin intentos</span>
155
+ </div>
156
+ <div class="stats-progress-bar">
157
+ <div class="stats-progress-fill" id="stats-progress-fill" style="width: 0%"></div>
158
+ </div>
159
+ </div>
160
+
161
+ <div class="stats-hint" id="stats-hint">
162
+ <i class="fa-solid fa-lightbulb"></i>
163
+ <span>Escribí palabras para descubrir la palabra secreta</span>
164
+ </div>
165
+
166
+ <button class="btn-primary" id="btn-close-stats-action">Seguir Jugando</button>
167
+ </div>
168
+ </div>
169
+
170
+ <!-- Victory Modal -->
171
+ <div id="victory-modal" class="modal hidden">
172
+ <div class="modal-content victory-content">
173
+ <div class="victory-header" id="victory-header">
174
+ <i class="fa-solid fa-trophy" id="victory-icon"></i>
175
+ <h2 id="victory-title">¡Victoria!</h2>
176
+ </div>
177
+ <div class="winning-word-display">
178
+ <span class="rank-badge">#1</span>
179
+ <h1 id="winning-word">FRUTA</h1>
180
+ </div>
181
+
182
+ <div class="stats-grid">
183
+ <div class="stat-card">
184
+ <span class="stat-label">Intentos</span>
185
+ <span class="stat-value" id="victory-attempts">14</span>
186
+ </div>
187
+ <div class="stat-card">
188
+ <span class="stat-label">Tiempo</span>
189
+ <span class="stat-value" id="victory-time">02:45</span>
190
+ </div>
191
+ </div>
192
+
193
+ <div class="modal-actions">
194
+ <button class="btn-primary" id="btn-share"><i class="fa-solid fa-share-nodes"></i> Compartir</button>
195
+ <button class="btn-secondary" id="btn-new-word"><i class="fa-solid fa-rotate"></i> Nueva
196
+ Palabra</button>
197
+ </div>
198
+ </div>
199
+ </div>
200
+
201
+ <!-- Help Modal -->
202
+ <div id="help-modal" class="modal hidden">
203
+ <div class="modal-content help-content">
204
+ <button class="modal-close" id="btn-close-help"><i class="fa-solid fa-xmark"></i></button>
205
+ <div class="help-illustration">
206
+ <i class="fa-solid fa-lightbulb"></i>
207
+ </div>
208
+ <h2>Cómo Jugar</h2>
209
+ <p>Encuentra la palabra secreta escribiendo palabras relacionadas. Cuanto más cerca esté semánticamente,
210
+ menor será el número de distancia.</p>
211
+ <p><strong>Pistas:</strong> Usa la bombilla para obtener una palabra que te acerque a la solución.</p>
212
+ <p><strong>Rendirse:</strong> Usa la bandera si no logras encontrarla; revelará la palabra secreta.</p>
213
+
214
+ <div class="examples-list">
215
+ <div class="example-card high-sim">
216
+ <div class="ex-header">
217
+ <span>Manzana</span>
218
+ <span class="badge">#10</span>
219
+ </div>
220
+ <div class="ex-bar"></div>
221
+ <p>Alta similitud (Cerca)</p>
222
+ </div>
223
+ <div class="example-card low-sim">
224
+ <div class="ex-header">
225
+ <span>Silla</span>
226
+ <span class="badge">#5000</span>
227
+ </div>
228
+ <div class="ex-bar"></div>
229
+ <p>Baja similitud (Lejos)</p>
230
+ </div>
231
+ </div>
232
+
233
+ <button class="btn-primary" id="btn-understood">¡Entendido!</button>
234
+ </div>
235
+ </div>
236
+
237
+ <!-- Generic Message Modal -->
238
+ <div id="message-modal" class="modal hidden">
239
+ <div class="modal-content message-content">
240
+ <button class="modal-close" id="btn-close-message"><i class="fa-solid fa-xmark"></i></button>
241
+ <div class="message-header">
242
+ <i class="fa-solid fa-circle-exclamation" id="message-icon"></i>
243
+ <h2 id="message-title">Aviso</h2>
244
+ </div>
245
+ <p id="message-text" class="message-body">Mensaje del sistema</p>
246
+ <button class="btn-primary" id="btn-message-ok">Aceptar</button>
247
+ </div>
248
+ </div>
249
+
250
+ <!-- Confirmation Modal -->
251
+ <div id="confirm-modal" class="modal hidden">
252
+ <div class="modal-content confirm-content">
253
+ <div class="message-header">
254
+ <i class="fa-solid fa-circle-question" id="confirm-icon"></i>
255
+ <h2 id="confirm-title">¿Seguro?</h2>
256
+ </div>
257
+ <p id="confirm-text" class="message-body">¿Desesa continuar?</p>
258
+ <div class="modal-actions">
259
+ <button class="btn-secondary" id="btn-confirm-cancel">Cancelar</button>
260
+ <button class="btn-primary" id="btn-confirm-ok">Confirmar</button>
261
+ </div>
262
+ </div>
263
+ </div>
264
+
265
+ <!-- Share Modal -->
266
+ <div id="share-modal" class="modal hidden">
267
+ <div class="modal-content share-content">
268
+ <button class="modal-close" id="btn-close-share"><i class="fa-solid fa-xmark"></i></button>
269
+ <div class="message-header">
270
+ <i class="fa-solid fa-share-nodes" id="share-icon"></i>
271
+ <h2 id="share-title">¡Comparte tu victoria!</h2>
272
+ </div>
273
+ <p class="message-body">Desafía a tus amigos a encontrar la palabra secreta.</p>
274
+
275
+ <div class="share-grid">
276
+ <button class="share-btn whatsapp" id="btn-share-wa" aria-label="WhatsApp">
277
+ <i class="fa-brands fa-whatsapp"></i>
278
+ <span>WhatsApp</span>
279
+ </button>
280
+ <button class="share-btn twitter" id="btn-share-tw" aria-label="X / Twitter">
281
+ <i class="fa-brands fa-x-twitter"></i>
282
+ <span>X</span>
283
+ </button>
284
+ <button class="share-btn facebook" id="btn-share-fb" aria-label="Facebook">
285
+ <i class="fa-brands fa-facebook-f"></i>
286
+ <span>Facebook</span>
287
+ </button>
288
+ <button class="share-btn copy" id="btn-share-copy" aria-label="Copiar Enlace">
289
+ <i class="fa-regular fa-copy"></i>
290
+ <span>Copiar</span>
291
+ </button>
292
+ </div>
293
+ </div>
294
+ </div>
295
+
296
+ <!-- Back to top: standalone, no FAB menu -->
297
+ <div class="floating-controls" id="floating-controls">
298
+ <button id="btn-back-to-top" class="floating-btn hidden" aria-label="Volver arriba">
299
+ <i class="fa-solid fa-arrow-up"></i>
300
+ </button>
301
+ </div>
302
+
303
+ <script src="script.js"></script>
304
+ </body>
305
+
306
+ </html>