HassanB4 commited on
Commit
e5a87ae
Β·
verified Β·
1 Parent(s): 7d22813

Fix logo URL (absolute CDN path) + polish design: typography, cards, team avatars

Browse files
Files changed (1) hide show
  1. index.html +297 -187
index.html CHANGED
@@ -6,19 +6,16 @@
6
  <title>Haakkim β€” Arabic LLM Arena</title>
7
  <style>
8
  :root {
9
- --bg: #0f1117;
10
- --surface: #1a1d27;
11
- --surface2: #222536;
12
- --border: #2e3149;
13
- --accent: #6366f1;
14
- --accent2: #8b5cf6;
15
  --brand: #4ade80;
16
- --brand-dark: #22c55e;
17
- --gold: #f59e0b;
18
  --text: #e2e8f0;
19
- --muted: #94a3b8;
20
- --green: #10b981;
21
- --radius: 12px;
22
  }
23
 
24
  * { box-sizing: border-box; margin: 0; padding: 0; }
@@ -27,336 +24,449 @@
27
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
28
  background: var(--bg);
29
  color: var(--text);
30
- line-height: 1.6;
31
- min-height: 100vh;
32
  }
33
 
34
- /* ── Hero ────────────────────────────────── */
35
  .hero {
36
- background: linear-gradient(160deg, #0a0f0a 0%, #0d1a10 40%, #0f1117 100%);
37
  border-bottom: 1px solid var(--border);
38
- padding: 72px 24px 56px;
39
  text-align: center;
40
  position: relative;
41
  overflow: hidden;
42
  }
43
  .hero::before {
 
 
 
 
 
 
 
 
44
  content: '';
45
  position: absolute;
46
  inset: 0;
47
- background: radial-gradient(ellipse 70% 60% at 50% -10%, rgba(74,222,128,0.12) 0%, transparent 65%);
 
 
 
48
  pointer-events: none;
49
  }
50
 
 
 
 
 
 
51
  .hero-logo {
52
- height: 90px;
53
  display: block;
54
- margin: 0 auto 28px;
55
  object-fit: contain;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  }
57
 
58
- .hero p {
59
- font-size: 1.1rem;
 
 
60
  color: var(--muted);
61
- max-width: 580px;
62
- margin: 0 auto 32px;
63
  }
64
- .hero-links {
 
 
 
65
  display: flex;
66
- gap: 12px;
67
  justify-content: center;
68
  flex-wrap: wrap;
69
  }
70
- .btn {
71
  display: inline-flex;
72
  align-items: center;
73
- gap: 8px;
74
- padding: 10px 22px;
75
- border-radius: 8px;
76
- font-size: 0.95rem;
77
  font-weight: 600;
78
  text-decoration: none;
79
- transition: all 0.2s;
80
- cursor: pointer;
81
  }
82
- .btn-primary {
 
83
  background: var(--brand);
84
- color: #0a0f0a;
85
- font-weight: 700;
86
  }
87
- .btn-primary:hover { background: #22c55e; transform: translateY(-1px); box-shadow: 0 4px 20px rgba(74,222,128,0.3); }
88
- .btn-outline {
89
- background: transparent;
90
  color: var(--text);
91
  border: 1px solid var(--border);
92
  }
93
- .btn-outline:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-1px); }
94
- .btn-dataset {
95
- background: rgba(74,222,128,0.12);
96
  color: var(--brand);
97
- border: 1px solid rgba(74,222,128,0.3);
98
  }
99
- .btn-dataset:hover { background: rgba(74,222,128,0.2); transform: translateY(-1px); }
100
 
101
- /* ── Container ───────────────────────────── */
102
- .container { max-width: 1100px; margin: 0 auto; padding: 0 24px; }
103
- section { padding: 56px 0; }
104
- section + section { border-top: 1px solid var(--border); }
105
 
106
- .section-title {
107
- font-size: 1.5rem;
 
 
 
 
 
 
108
  font-weight: 700;
 
 
 
109
  margin-bottom: 8px;
 
 
 
 
110
  color: var(--text);
 
 
111
  }
112
- .section-sub {
113
- font-size: 0.95rem;
114
  color: var(--muted);
115
- margin-bottom: 32px;
 
116
  }
117
 
118
- /* ── Cards ───────────────────────────────── */
119
- .cards-grid {
120
  display: grid;
121
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
122
- gap: 20px;
123
  }
124
- .card {
125
  background: var(--surface);
126
  border: 1px solid var(--border);
127
  border-radius: var(--radius);
128
- padding: 24px;
129
- transition: border-color 0.2s, transform 0.2s;
 
 
130
  }
131
- .card:hover { border-color: var(--brand); transform: translateY(-2px); }
132
- .card-icon { font-size: 1.8rem; margin-bottom: 12px; }
133
- .card h3 { font-size: 1rem; font-weight: 700; margin-bottom: 8px; }
134
- .card p { font-size: 0.88rem; color: var(--muted); }
135
- .card-tag {
136
- display: inline-block;
137
- margin-top: 10px;
138
- padding: 3px 10px;
139
- border-radius: 99px;
140
- font-size: 0.75rem;
141
- font-weight: 600;
142
- background: rgba(74,222,128,0.12);
143
- color: var(--brand);
144
  }
145
- .card-tag-no {
146
- background: rgba(100,116,139,0.15);
147
- color: var(--muted);
 
 
 
 
 
 
 
 
 
 
148
  }
 
 
149
 
150
- /* ── Dataset callout ─────────────────────── */
151
- .dataset-callout {
152
- background: linear-gradient(135deg, rgba(74,222,128,0.06), rgba(99,102,241,0.06));
153
- border: 1px solid rgba(74,222,128,0.25);
154
  border-radius: var(--radius);
155
- padding: 28px 32px;
156
  display: flex;
157
  align-items: center;
158
- gap: 24px;
 
 
 
 
 
 
 
 
 
159
  flex-wrap: wrap;
 
 
 
 
 
 
 
 
 
160
  }
161
- .dataset-callout .ds-icon { font-size: 2.5rem; }
162
- .dataset-callout h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 4px; }
163
- .dataset-callout p { font-size: 0.88rem; color: var(--muted); }
164
 
165
- /* ── Team ────────────────────────────────── */
166
  .team-grid {
167
  display: grid;
168
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
169
- gap: 20px;
170
  }
171
  .team-card {
172
  background: var(--surface);
173
  border: 1px solid var(--border);
174
  border-radius: var(--radius);
175
- padding: 24px;
176
  text-align: center;
177
- transition: border-color 0.2s;
178
  display: flex;
179
  flex-direction: column;
180
  align-items: center;
 
181
  }
182
- .team-card:hover { border-color: var(--brand); }
183
- .team-avatar {
184
- width: 72px;
185
- height: 72px;
 
186
  border-radius: 50%;
187
- background: linear-gradient(135deg, var(--brand), var(--brand-dark));
 
188
  display: flex;
189
  align-items: center;
190
  justify-content: center;
191
- font-size: 1.3rem;
192
  font-weight: 800;
193
- color: #0a0f0a;
194
- margin: 0 auto 14px;
195
- flex-shrink: 0;
196
- }
197
- .team-name { font-weight: 700; font-size: 1rem; margin-bottom: 3px; }
198
- .team-role { font-size: 0.78rem; color: var(--brand); font-weight: 600; margin-bottom: 4px; text-transform: uppercase; letter-spacing: 0.04em; }
199
- .team-affil { font-size: 0.76rem; color: var(--muted); margin-bottom: 10px; }
200
- .team-links { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
 
 
 
 
 
 
201
  .team-email {
202
  display: inline-flex;
203
  align-items: center;
204
- gap: 4px;
205
  font-size: 0.76rem;
206
  color: var(--muted);
207
  text-decoration: none;
 
 
 
 
208
  }
209
- .team-email:hover { color: var(--brand); text-decoration: underline; }
210
 
211
- /* ── Footer ──────────────────────────────── */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212
  footer {
213
- border-top: 1px solid var(--border);
214
  padding: 32px 24px;
215
  text-align: center;
216
- font-size: 0.82rem;
217
  color: var(--muted);
 
218
  }
219
  footer a { color: var(--brand); text-decoration: none; }
220
  footer a:hover { text-decoration: underline; }
221
 
222
  @media (max-width: 600px) {
223
- .hero { padding: 48px 16px 36px; }
224
- .dataset-callout { flex-direction: column; gap: 12px; }
225
  }
226
  </style>
227
  </head>
228
  <body>
229
 
230
- <!-- ═══════════════════════════════════════════════════
231
- HERO
232
- ════════════════════════════════════════════════════ -->
233
  <div class="hero">
234
- <img
235
- src="haakkim-logo-withname.png"
236
- alt="Haakkim"
237
- class="hero-logo"
238
- onerror="this.style.display='none'; document.getElementById('hero-fallback').style.display='block';"
239
- />
240
- <div id="hero-fallback" style="display:none; font-size:2.8rem; font-weight:900; color:var(--brand); margin-bottom:20px;">Haakkim &nbsp; Ψ­ΩŽΩƒΩΩ‘Ω…</div>
 
 
 
 
 
241
 
242
- <p>An open arena-style human preference evaluation platform for Arabic large language models β€” built from the ground up for Arabic.</p>
 
 
 
243
 
244
- <div class="hero-links">
245
- <a href="https://haakkim.tech" class="btn btn-primary">🌐 Live Platform</a>
246
- <a href="https://haakkim.tech/#leaderboard" class="btn btn-outline">πŸ† Leaderboard</a>
247
- <a href="https://huggingface.co/datasets/Haakkim/Haakkim-1.0v" class="btn btn-dataset">πŸ“¦ Dataset v1.0</a>
248
  </div>
249
  </div>
250
 
251
- <div class="container">
252
 
253
- <!-- ═══════════════════════════════════════════════════
254
- EVALUATION MODES
255
- ════════════════════════════════════════════════════ -->
256
  <section>
257
- <div class="section-title">Evaluation Modes</div>
258
- <div class="section-sub">Three ways to compare Arabic LLMs β€” only Ranked Arena feeds the official leaderboard</div>
259
- <div class="cards-grid">
260
- <div class="card">
261
- <div class="card-icon">βš”οΈ</div>
 
262
  <h3>Ranked Arena</h3>
263
- <p>Random model pairing, single-turn MSA, matched system instruction. Results feed the official Bradley–Terry leaderboard.</p>
264
- <span class="card-tag">βœ“ BT Leaderboard</span>
265
  </div>
266
- <div class="card">
267
- <div class="card-icon">↔️</div>
268
  <h3>Side-by-Side</h3>
269
- <p>User-selected model pair, any dialect. Useful for targeted comparisons but excluded from ranked scoring to prevent selection bias.</p>
270
- <span class="card-tag card-tag-no">Win-rate only</span>
271
  </div>
272
- <div class="card">
273
- <div class="card-icon">❓</div>
274
  <h3>10 Questions</h3>
275
- <p>Fixed Arabic prompt pool, any dialect. Provides consistent benchmarking within a curated set of questions.</p>
276
- <span class="card-tag card-tag-no">Win-rate only</span>
277
  </div>
278
  </div>
279
  </section>
280
 
281
- <!-- ═══════════════════════════════════════════════════
282
- DATASET CALLOUT
283
- ════════════════════════════════════════════════════ -->
284
  <section>
285
- <div class="dataset-callout">
 
 
 
286
  <div class="ds-icon">πŸ“¦</div>
287
- <div style="flex:1">
288
- <h3>Haakkim/Haakkim-1.0v β€” Battle Dataset</h3>
289
- <p>1,273 battle records (Parquet, PII-scrubbed). Includes voted comparisons and skipped battles across all 11 dialects and 3 evaluation modes. Full conversation transcripts, sampling weights, category annotations.</p>
 
 
 
 
 
 
 
 
 
 
290
  </div>
291
- <a href="https://huggingface.co/datasets/Haakkim/Haakkim-1.0v" class="btn btn-dataset">View Dataset β†’</a>
292
  </div>
293
  </section>
294
 
295
- <!-- ═══════════════════════════════════════════════════
296
- TEAM
297
- ════════════════════════════════════════════════════ -->
298
  <section>
299
- <div class="section-title">Team</div>
300
- <div class="section-sub">College of Computing, Umm Al-Qura University β€” Mecca, Saudi Arabia</div>
 
301
  <div class="team-grid">
302
 
303
  <div class="team-card">
304
- <div class="team-avatar">MM</div>
305
  <div class="team-name">Dr. Mourad Mars</div>
306
  <div class="team-role">Principal Investigator</div>
307
  <div class="team-affil">Umm Al-Qura University</div>
308
- <div class="team-links">
309
- <a href="mailto:msmars@uqu.edu.sa" class="team-email">βœ‰ msmars@uqu.edu.sa</a>
310
- </div>
311
  </div>
312
 
313
  <div class="team-card">
314
- <div class="team-avatar">HB</div>
315
  <div class="team-name">Hassan Barmandah</div>
316
  <div class="team-role">AI Researcher</div>
317
  <div class="team-affil">Umm Al-Qura University</div>
318
- <div class="team-links">
319
- <a href="mailto:hassanhbarmandah@gmail.com" class="team-email">βœ‰ hassanhbarmandah@gmail.com</a>
320
- </div>
321
  </div>
322
 
323
  <div class="team-card">
324
- <div class="team-avatar">AA</div>
325
  <div class="team-name">Abdulrhman Alassaf</div>
326
  <div class="team-role">Software Engineer</div>
327
  <div class="team-affil">Umm Al-Qura University</div>
328
- <div class="team-links">
329
- <a href="mailto:aaalassaf@outlook.com" class="team-email">βœ‰ aaalassaf@outlook.com</a>
330
- </div>
331
  </div>
332
 
333
  </div>
334
  </section>
335
 
336
- <!-- ═══════════════════════════════════════════════════
337
- CITATION
338
- ════════════════════════════════════════════════════ -->
339
  <section>
340
- <div class="section-title">Citation</div>
341
- <div class="section-sub">If you use Haakkim or this dataset in your research, please cite:</div>
342
- <pre style="background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;font-size:0.82rem;line-height:1.7;overflow-x:auto;color:var(--muted)"><code>@misc{mars2026haakkim,
343
- title = {Haakkim: An Arena-Style Human Preference Evaluation Platform for Arabic {LLMs}},
344
- author = {Mars, Mourad and Barmandah, Hassan and Alassaf, Abdulrhman},
345
- year = {2026},
346
- howpublished = {\url{https://huggingface.co/datasets/Haakkim/Haakkim-1.0v}},
347
- note = {College of Computing, Umm Al-Qura University, Mecca, Saudi Arabia}
348
- }</code></pre>
 
349
  </section>
350
 
351
- </div><!-- /container -->
352
 
353
  <footer>
354
- <div>
355
- <a href="https://haakkim.tech">haakkim.tech</a> &nbsp;Β·&nbsp;
356
- <a href="https://haakkim.tech/#leaderboard">Leaderboard</a> &nbsp;Β·&nbsp;
357
- <a href="https://huggingface.co/datasets/Haakkim/Haakkim-1.0v">Dataset</a>
358
- </div>
359
- <div style="margin-top:8px">College of Computing, Umm Al-Qura University Β· Mecca, Saudi Arabia Β· CC BY 4.0</div>
360
  </footer>
361
 
362
  </body>
 
6
  <title>Haakkim β€” Arabic LLM Arena</title>
7
  <style>
8
  :root {
9
+ --bg: #0b0e14;
10
+ --surface: #131720;
11
+ --surface2: #1c2132;
12
+ --border: #252c42;
 
 
13
  --brand: #4ade80;
14
+ --brand-dark: #16a34a;
15
+ --brand-glow: rgba(74,222,128,0.15);
16
  --text: #e2e8f0;
17
+ --muted: #8492b0;
18
+ --radius: 14px;
 
19
  }
20
 
21
  * { box-sizing: border-box; margin: 0; padding: 0; }
 
24
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
25
  background: var(--bg);
26
  color: var(--text);
27
+ line-height: 1.65;
 
28
  }
29
 
30
+ /* ── Hero ──────────────────────────────────────── */
31
  .hero {
32
+ background: linear-gradient(175deg, #081008 0%, #0a160c 50%, #0b0e14 100%);
33
  border-bottom: 1px solid var(--border);
34
+ padding: 80px 24px 64px;
35
  text-align: center;
36
  position: relative;
37
  overflow: hidden;
38
  }
39
  .hero::before {
40
+ content: '';
41
+ position: absolute;
42
+ top: -80px; left: 50%; transform: translateX(-50%);
43
+ width: 600px; height: 400px;
44
+ background: radial-gradient(ellipse, rgba(74,222,128,0.18) 0%, transparent 70%);
45
+ pointer-events: none;
46
+ }
47
+ .hero::after {
48
  content: '';
49
  position: absolute;
50
  inset: 0;
51
+ background: repeating-linear-gradient(
52
+ 0deg, transparent, transparent 39px,
53
+ rgba(74,222,128,0.025) 40px
54
+ );
55
  pointer-events: none;
56
  }
57
 
58
+ .hero-logo-wrap {
59
+ position: relative;
60
+ z-index: 1;
61
+ margin-bottom: 24px;
62
+ }
63
  .hero-logo {
64
+ height: 80px;
65
  display: block;
66
+ margin: 0 auto;
67
  object-fit: contain;
68
+ filter: drop-shadow(0 0 24px rgba(74,222,128,0.35));
69
+ }
70
+ .hero-logo-fallback {
71
+ display: none;
72
+ flex-direction: column;
73
+ align-items: center;
74
+ gap: 4px;
75
+ }
76
+ .hero-logo-fallback .wordmark {
77
+ font-size: 3rem;
78
+ font-weight: 900;
79
+ letter-spacing: -0.03em;
80
+ color: var(--brand);
81
+ line-height: 1;
82
+ }
83
+ .hero-logo-fallback .ar {
84
+ font-size: 1.4rem;
85
+ color: rgba(74,222,128,0.6);
86
+ direction: rtl;
87
  }
88
 
89
+ .hero-tagline {
90
+ position: relative;
91
+ z-index: 1;
92
+ font-size: 1.05rem;
93
  color: var(--muted);
94
+ max-width: 520px;
95
+ margin: 0 auto 36px;
96
  }
97
+
98
+ .hero-badges {
99
+ position: relative;
100
+ z-index: 1;
101
  display: flex;
102
+ gap: 10px;
103
  justify-content: center;
104
  flex-wrap: wrap;
105
  }
106
+ .badge {
107
  display: inline-flex;
108
  align-items: center;
109
+ gap: 7px;
110
+ padding: 9px 20px;
111
+ border-radius: 999px;
112
+ font-size: 0.88rem;
113
  font-weight: 600;
114
  text-decoration: none;
115
+ transition: transform 0.18s, box-shadow 0.18s;
 
116
  }
117
+ .badge:hover { transform: translateY(-2px); }
118
+ .badge-primary {
119
  background: var(--brand);
120
+ color: #07130a;
121
+ box-shadow: 0 0 20px rgba(74,222,128,0.3);
122
  }
123
+ .badge-primary:hover { box-shadow: 0 4px 30px rgba(74,222,128,0.5); }
124
+ .badge-outline {
125
+ background: rgba(255,255,255,0.04);
126
  color: var(--text);
127
  border: 1px solid var(--border);
128
  }
129
+ .badge-outline:hover { border-color: var(--brand); color: var(--brand); }
130
+ .badge-dataset {
131
+ background: rgba(74,222,128,0.1);
132
  color: var(--brand);
133
+ border: 1px solid rgba(74,222,128,0.25);
134
  }
135
+ .badge-dataset:hover { background: rgba(74,222,128,0.18); }
136
 
137
+ /* ── Layout ────────────────────────────────────── */
138
+ .wrap { max-width: 1080px; margin: 0 auto; padding: 0 24px; }
 
 
139
 
140
+ section {
141
+ padding: 64px 0;
142
+ border-bottom: 1px solid var(--border);
143
+ }
144
+ section:last-child { border-bottom: none; }
145
+
146
+ .s-label {
147
+ font-size: 0.7rem;
148
  font-weight: 700;
149
+ letter-spacing: 0.12em;
150
+ text-transform: uppercase;
151
+ color: var(--brand);
152
  margin-bottom: 8px;
153
+ }
154
+ .s-title {
155
+ font-size: 1.6rem;
156
+ font-weight: 800;
157
  color: var(--text);
158
+ margin-bottom: 6px;
159
+ letter-spacing: -0.02em;
160
  }
161
+ .s-sub {
162
+ font-size: 0.9rem;
163
  color: var(--muted);
164
+ margin-bottom: 36px;
165
+ max-width: 600px;
166
  }
167
 
168
+ /* ── Evaluation mode cards ─────────────────────── */
169
+ .mode-grid {
170
  display: grid;
171
+ grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
172
+ gap: 16px;
173
  }
174
+ .mode-card {
175
  background: var(--surface);
176
  border: 1px solid var(--border);
177
  border-radius: var(--radius);
178
+ padding: 28px 24px;
179
+ transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
180
+ position: relative;
181
+ overflow: hidden;
182
  }
183
+ .mode-card::before {
184
+ content: '';
185
+ position: absolute;
186
+ top: 0; left: 0; right: 0;
187
+ height: 2px;
188
+ background: linear-gradient(90deg, transparent, var(--brand), transparent);
189
+ opacity: 0;
190
+ transition: opacity 0.2s;
 
 
 
 
 
191
  }
192
+ .mode-card:hover { border-color: rgba(74,222,128,0.4); transform: translateY(-3px); box-shadow: 0 8px 32px rgba(0,0,0,0.3); }
193
+ .mode-card:hover::before { opacity: 1; }
194
+ .mode-icon { font-size: 1.6rem; margin-bottom: 14px; }
195
+ .mode-card h3 { font-size: 1rem; font-weight: 700; margin-bottom: 8px; }
196
+ .mode-card p { font-size: 0.85rem; color: var(--muted); margin-bottom: 16px; line-height: 1.6; }
197
+ .tag {
198
+ display: inline-flex;
199
+ align-items: center;
200
+ gap: 5px;
201
+ padding: 4px 12px;
202
+ border-radius: 999px;
203
+ font-size: 0.73rem;
204
+ font-weight: 700;
205
  }
206
+ .tag-yes { background: rgba(74,222,128,0.12); color: var(--brand); border: 1px solid rgba(74,222,128,0.25); }
207
+ .tag-no { background: rgba(100,116,139,0.1); color: var(--muted); border: 1px solid var(--border); }
208
 
209
+ /* ── Dataset callout ───────────────────────────── */
210
+ .ds-callout {
211
+ background: linear-gradient(135deg, rgba(74,222,128,0.07), rgba(74,222,128,0.02));
212
+ border: 1px solid rgba(74,222,128,0.22);
213
  border-radius: var(--radius);
214
+ padding: 32px 36px;
215
  display: flex;
216
  align-items: center;
217
+ gap: 28px;
218
+ flex-wrap: wrap;
219
+ }
220
+ .ds-icon { font-size: 2.8rem; flex-shrink: 0; }
221
+ .ds-body { flex: 1; min-width: 200px; }
222
+ .ds-body h3 { font-size: 1.05rem; font-weight: 700; margin-bottom: 5px; }
223
+ .ds-body p { font-size: 0.85rem; color: var(--muted); }
224
+ .ds-meta {
225
+ display: flex;
226
+ gap: 10px;
227
  flex-wrap: wrap;
228
+ margin-top: 12px;
229
+ }
230
+ .ds-pill {
231
+ background: var(--surface2);
232
+ border: 1px solid var(--border);
233
+ border-radius: 999px;
234
+ padding: 3px 12px;
235
+ font-size: 0.75rem;
236
+ color: var(--muted);
237
  }
 
 
 
238
 
239
+ /* ── Team ──────────────────────────────────────── */
240
  .team-grid {
241
  display: grid;
242
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
243
+ gap: 16px;
244
  }
245
  .team-card {
246
  background: var(--surface);
247
  border: 1px solid var(--border);
248
  border-radius: var(--radius);
249
+ padding: 32px 24px 24px;
250
  text-align: center;
251
+ transition: border-color 0.2s, transform 0.2s;
252
  display: flex;
253
  flex-direction: column;
254
  align-items: center;
255
+ gap: 4px;
256
  }
257
+ .team-card:hover { border-color: rgba(74,222,128,0.35); transform: translateY(-2px); }
258
+
259
+ .avatar {
260
+ width: 64px;
261
+ height: 64px;
262
  border-radius: 50%;
263
+ background: linear-gradient(135deg, #1a3a25, #0f2018);
264
+ border: 2px solid rgba(74,222,128,0.3);
265
  display: flex;
266
  align-items: center;
267
  justify-content: center;
268
+ font-size: 1.1rem;
269
  font-weight: 800;
270
+ color: var(--brand);
271
+ margin-bottom: 14px;
272
+ letter-spacing: 0.02em;
273
+ }
274
+ .team-name { font-size: 1rem; font-weight: 700; }
275
+ .team-role {
276
+ font-size: 0.7rem;
277
+ font-weight: 700;
278
+ letter-spacing: 0.1em;
279
+ text-transform: uppercase;
280
+ color: var(--brand);
281
+ margin-top: 2px;
282
+ }
283
+ .team-affil { font-size: 0.78rem; color: var(--muted); margin-top: 2px; margin-bottom: 14px; }
284
  .team-email {
285
  display: inline-flex;
286
  align-items: center;
287
+ gap: 5px;
288
  font-size: 0.76rem;
289
  color: var(--muted);
290
  text-decoration: none;
291
+ border: 1px solid var(--border);
292
+ border-radius: 999px;
293
+ padding: 5px 14px;
294
+ transition: border-color 0.15s, color 0.15s;
295
  }
296
+ .team-email:hover { border-color: var(--brand); color: var(--brand); }
297
 
298
+ /* ── Citation ──────────────────────────────────── */
299
+ .cite-block {
300
+ background: var(--surface);
301
+ border: 1px solid var(--border);
302
+ border-radius: var(--radius);
303
+ padding: 24px 28px;
304
+ font-family: 'SFMono-Regular', 'Fira Code', Consolas, monospace;
305
+ font-size: 0.8rem;
306
+ line-height: 1.8;
307
+ color: var(--muted);
308
+ overflow-x: auto;
309
+ }
310
+ .cite-block .k { color: #c084fc; }
311
+ .cite-block .v { color: #86efac; }
312
+ .cite-block .p { color: var(--muted); }
313
+
314
+ /* ── Footer ────────────────────────────────────── */
315
  footer {
 
316
  padding: 32px 24px;
317
  text-align: center;
318
+ font-size: 0.8rem;
319
  color: var(--muted);
320
+ border-top: 1px solid var(--border);
321
  }
322
  footer a { color: var(--brand); text-decoration: none; }
323
  footer a:hover { text-decoration: underline; }
324
 
325
  @media (max-width: 600px) {
326
+ .hero { padding: 56px 16px 48px; }
327
+ .ds-callout { padding: 22px 20px; }
328
  }
329
  </style>
330
  </head>
331
  <body>
332
 
333
+ <!-- HERO -->
 
 
334
  <div class="hero">
335
+ <div class="hero-logo-wrap">
336
+ <img
337
+ src="https://huggingface.co/spaces/Haakkim/README/resolve/main/haakkim-logo-withname.png"
338
+ alt="Haakkim"
339
+ class="hero-logo"
340
+ onerror="this.style.display='none'; document.querySelector('.hero-logo-fallback').style.display='flex';"
341
+ />
342
+ <div class="hero-logo-fallback">
343
+ <div class="wordmark">Haakkim</div>
344
+ <div class="ar">Ψ­ΩŽΩƒΩΩ‘Ω…</div>
345
+ </div>
346
+ </div>
347
 
348
+ <p class="hero-tagline">
349
+ An open arena-style human preference evaluation platform for Arabic large language models,
350
+ covering 11 dialect varieties and ranked by a statistically rigorous Bradley–Terry model.
351
+ </p>
352
 
353
+ <div class="hero-badges">
354
+ <a href="https://haakkim.tech" class="badge badge-primary">🌐 Live Platform</a>
355
+ <a href="https://haakkim.tech/#leaderboard" class="badge badge-outline">πŸ† Leaderboard</a>
356
+ <a href="https://huggingface.co/datasets/Haakkim/Haakkim-1.0v" class="badge badge-dataset">πŸ“¦ Dataset v1.0</a>
357
  </div>
358
  </div>
359
 
360
+ <div class="wrap">
361
 
362
+ <!-- EVALUATION MODES -->
 
 
363
  <section>
364
+ <div class="s-label">How It Works</div>
365
+ <div class="s-title">Evaluation Modes</div>
366
+ <div class="s-sub">Three ways to compare Arabic LLMs β€” only Ranked Arena feeds the official leaderboard.</div>
367
+ <div class="mode-grid">
368
+ <div class="mode-card">
369
+ <div class="mode-icon">βš”οΈ</div>
370
  <h3>Ranked Arena</h3>
371
+ <p>Random model pairing, single-turn MSA, matched system instruction. The only mode that feeds the official Bradley–Terry leaderboard.</p>
372
+ <span class="tag tag-yes">βœ“ BT Leaderboard</span>
373
  </div>
374
+ <div class="mode-card">
375
+ <div class="mode-icon">↔️</div>
376
  <h3>Side-by-Side</h3>
377
+ <p>User-selected model pair, any dialect. Useful for targeted comparisons β€” excluded from ranked scoring to prevent selection bias.</p>
378
+ <span class="tag tag-no">Win-rate only</span>
379
  </div>
380
+ <div class="mode-card">
381
+ <div class="mode-icon">❓</div>
382
  <h3>10 Questions</h3>
383
+ <p>Fixed Arabic prompt pool, any dialect. Provides consistent benchmarking within a curated question set.</p>
384
+ <span class="tag tag-no">Win-rate only</span>
385
  </div>
386
  </div>
387
  </section>
388
 
389
+ <!-- DATASET -->
 
 
390
  <section>
391
+ <div class="s-label">Open Data</div>
392
+ <div class="s-title">Battle Dataset</div>
393
+ <div class="s-sub">First public release of Haakkim battle data β€” fully open, PII-scrubbed, ready to use.</div>
394
+ <div class="ds-callout">
395
  <div class="ds-icon">πŸ“¦</div>
396
+ <div class="ds-body">
397
+ <h3>Haakkim / Haakkim-1.0v</h3>
398
+ <p>
399
+ Battle records covering all 11 dialect varieties and all 3 evaluation modes.
400
+ Includes full conversation transcripts, sampling weights, and category annotations.
401
+ </p>
402
+ <div class="ds-meta">
403
+ <span class="ds-pill">1,273 battles</span>
404
+ <span class="ds-pill">67 models</span>
405
+ <span class="ds-pill">11 dialects</span>
406
+ <span class="ds-pill">CC BY 4.0</span>
407
+ <span class="ds-pill">Parquet Β· PII-scrubbed</span>
408
+ </div>
409
  </div>
410
+ <a href="https://huggingface.co/datasets/Haakkim/Haakkim-1.0v" class="badge badge-dataset" style="white-space:nowrap;">View Dataset β†’</a>
411
  </div>
412
  </section>
413
 
414
+ <!-- TEAM -->
 
 
415
  <section>
416
+ <div class="s-label">People</div>
417
+ <div class="s-title">Team</div>
418
+ <div class="s-sub">College of Computing, Umm Al-Qura University β€” Mecca, Saudi Arabia</div>
419
  <div class="team-grid">
420
 
421
  <div class="team-card">
422
+ <div class="avatar">MM</div>
423
  <div class="team-name">Dr. Mourad Mars</div>
424
  <div class="team-role">Principal Investigator</div>
425
  <div class="team-affil">Umm Al-Qura University</div>
426
+ <a href="mailto:msmars@uqu.edu.sa" class="team-email">βœ‰ msmars@uqu.edu.sa</a>
 
 
427
  </div>
428
 
429
  <div class="team-card">
430
+ <div class="avatar">HB</div>
431
  <div class="team-name">Hassan Barmandah</div>
432
  <div class="team-role">AI Researcher</div>
433
  <div class="team-affil">Umm Al-Qura University</div>
434
+ <a href="mailto:hassanhbarmandah@gmail.com" class="team-email">βœ‰ hassanhbarmandah@gmail.com</a>
 
 
435
  </div>
436
 
437
  <div class="team-card">
438
+ <div class="avatar">AA</div>
439
  <div class="team-name">Abdulrhman Alassaf</div>
440
  <div class="team-role">Software Engineer</div>
441
  <div class="team-affil">Umm Al-Qura University</div>
442
+ <a href="mailto:aaalassaf@outlook.com" class="team-email">βœ‰ aaalassaf@outlook.com</a>
 
 
443
  </div>
444
 
445
  </div>
446
  </section>
447
 
448
+ <!-- CITATION -->
 
 
449
  <section>
450
+ <div class="s-label">Research</div>
451
+ <div class="s-title">Citation</div>
452
+ <div class="s-sub">If you use Haakkim or this dataset in your research, please cite:</div>
453
+ <div class="cite-block"><span class="k">@misc</span><span class="p">{</span>mars2026haakkim<span class="p">,</span>
454
+ <span class="k">title</span> <span class="p">=</span> <span class="v">{Haakkim: An Arena-Style Human Preference Evaluation Platform for Arabic {LLMs}}</span><span class="p">,</span>
455
+ <span class="k">author</span> <span class="p">=</span> <span class="v">{Mars, Mourad and Barmandah, Hassan and Alassaf, Abdulrhman}</span><span class="p">,</span>
456
+ <span class="k">year</span> <span class="p">=</span> <span class="v">{2026}</span><span class="p">,</span>
457
+ <span class="k">howpublished</span> <span class="p">=</span> <span class="v">{\url{https://huggingface.co/datasets/Haakkim/Haakkim-1.0v}}</span><span class="p">,</span>
458
+ <span class="k">note</span> <span class="p">=</span> <span class="v">{College of Computing, Umm Al-Qura University, Mecca, Saudi Arabia}</span>
459
+ <span class="p">}</span></div>
460
  </section>
461
 
462
+ </div>
463
 
464
  <footer>
465
+ <a href="https://haakkim.tech">haakkim.tech</a> &nbsp;Β·&nbsp;
466
+ <a href="https://haakkim.tech/#leaderboard">Leaderboard</a> &nbsp;Β·&nbsp;
467
+ <a href="https://huggingface.co/datasets/Haakkim/Haakkim-1.0v">Dataset</a>
468
+ <br><br>
469
+ College of Computing, Umm Al-Qura University Β· Mecca, Saudi Arabia Β· CC BY 4.0
 
470
  </footer>
471
 
472
  </body>