Udskift billeder sådan de passer til tekst indhold - Initial Deployment
Browse files- README.md +7 -5
- index.html +376 -18
- prompts.txt +452 -0
README.md
CHANGED
@@ -1,10 +1,12 @@
|
|
1 |
---
|
2 |
-
title:
|
3 |
-
emoji:
|
4 |
-
colorFrom:
|
5 |
-
colorTo:
|
6 |
sdk: static
|
7 |
pinned: false
|
|
|
|
|
8 |
---
|
9 |
|
10 |
-
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
1 |
---
|
2 |
+
title: soulmatch-hovedside-v1
|
3 |
+
emoji: 🐳
|
4 |
+
colorFrom: pink
|
5 |
+
colorTo: green
|
6 |
sdk: static
|
7 |
pinned: false
|
8 |
+
tags:
|
9 |
+
- deepsite
|
10 |
---
|
11 |
|
12 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
index.html
CHANGED
@@ -1,19 +1,377 @@
|
|
1 |
-
<!
|
2 |
-
<html>
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
</html>
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="da">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<title>SoulMatch - Bekæmp ensomhed gennem fysiske møder</title>
|
7 |
+
<link rel="icon" type="image/x-icon" href="https://q1f3.c3.e2-9.dev/soulmatch-uploads-public/SoulMatch%20logo.jpeg">
|
8 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
9 |
+
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap" rel="stylesheet">
|
10 |
+
<link href="https://unpkg.com/[email protected]/dist/aos.css" rel="stylesheet">
|
11 |
+
<script src="https://unpkg.com/[email protected]/dist/aos.js"></script>
|
12 |
+
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
|
13 |
+
<script src="https://unpkg.com/feather-icons"></script>
|
14 |
+
<script>
|
15 |
+
tailwind.config = {
|
16 |
+
theme: {
|
17 |
+
extend: {
|
18 |
+
colors: {
|
19 |
+
primary: '#006B76',
|
20 |
+
'primary-light': '#E6F0F1',
|
21 |
+
'primary-dark': '#005F69',
|
22 |
+
accent: '#8A2BE2',
|
23 |
+
background: '#F8F9FA',
|
24 |
+
'text-primary': '#212529',
|
25 |
+
'text-secondary': '#6C757D',
|
26 |
+
'dark-background': '#121826',
|
27 |
+
'dark-surface': '#1d2432',
|
28 |
+
'dark-surface-light': '#2a3343',
|
29 |
+
'dark-border': '#3c465b',
|
30 |
+
'dark-text-primary': '#e2e8f0',
|
31 |
+
'dark-text-secondary': '#94a3b8'
|
32 |
+
}
|
33 |
+
}
|
34 |
+
},
|
35 |
+
darkMode: 'class'
|
36 |
+
}
|
37 |
+
</script>
|
38 |
+
<style>
|
39 |
+
body {
|
40 |
+
font-family: 'Nunito', sans-serif;
|
41 |
+
}
|
42 |
+
.hero-bg {
|
43 |
+
background: linear-gradient(135deg, #016a75 0%, #016a75 100%);
|
44 |
+
}
|
45 |
+
.feature-card:hover {
|
46 |
+
transform: translateY(-5px);
|
47 |
+
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
|
48 |
+
}
|
49 |
+
.btn-primary {
|
50 |
+
background: linear-gradient(135deg, #016a75 0%, #016a75 100%);
|
51 |
+
}
|
52 |
+
.btn-primary:hover {
|
53 |
+
background: linear-gradient(135deg, #016a75 0%, #016a75 100%);
|
54 |
+
}
|
55 |
+
.icon-primary {
|
56 |
+
color: #016a75;
|
57 |
+
}
|
58 |
+
</style>
|
59 |
+
</head>
|
60 |
+
<body class="bg-background dark:bg-dark-background text-text-primary dark:text-dark-text-primary">
|
61 |
+
<!-- Header -->
|
62 |
+
<header class="sticky top-0 z-50 bg-white dark:bg-dark-surface shadow-sm">
|
63 |
+
<div class="container mx-auto px-4 py-3 flex justify-between items-center">
|
64 |
+
<div class="flex items-center space-x-2">
|
65 |
+
<img src="https://q1f3.c3.e2-9.dev/soulmatch-uploads-public/SoulMatch%20logo.jpeg" alt="SoulMatch Logo" class="h-10 w-10 rounded-full">
|
66 |
+
<span class="text-xl font-bold text-primary">SoulMatch</span>
|
67 |
+
</div>
|
68 |
+
<nav class="hidden md:flex space-x-6">
|
69 |
+
<a href="#" class="font-semibold hover:text-primary transition">Hjem</a>
|
70 |
+
<a href="#" class="font-semibold hover:text-primary transition">Om os</a>
|
71 |
+
<a href="#" class="font-semibold hover:text-primary transition">Funktioner</a>
|
72 |
+
<a href="#" class="font-semibold hover:text-primary transition">Sikkerhed</a>
|
73 |
+
<a href="#" class="font-semibold hover:text-primary transition">Kontakt</a>
|
74 |
+
</nav>
|
75 |
+
<div class="flex items-center space-x-3">
|
76 |
+
<button class="px-4 py-2 rounded-full bg-primary text-white font-bold hover:bg-primary-dark transition">Download</button>
|
77 |
+
<button id="theme-toggle" class="p-2 rounded-full hover:bg-gray-200 dark:hover:bg-dark-surface-light">
|
78 |
+
<i data-feather="moon" class="dark:hidden"></i>
|
79 |
+
<i data-feather="sun" class="hidden dark:block"></i>
|
80 |
+
</button>
|
81 |
+
</div>
|
82 |
+
</div>
|
83 |
+
</header>
|
84 |
+
|
85 |
+
<!-- Hero Section -->
|
86 |
+
<section class="hero-bg text-white py-16 md:py-24">
|
87 |
+
<div class="container mx-auto px-4 text-center">
|
88 |
+
<h1 class="text-4xl md:text-6xl font-bold mb-6" data-aos="fade-up">Gem mobilen væk, og vær sammen som mennesker</h1>
|
89 |
+
<p class="text-xl md:text-2xl mb-8 max-w-3xl mx-auto" data-aos="fade-up" data-aos-delay="100">SoulMatch forbinder dig med ligesindede og skaber meningsfulde fysiske møder i virkeligheden</p>
|
90 |
+
<div class="flex flex-col sm:flex-row justify-center gap-4" data-aos="fade-up" data-aos-delay="200">
|
91 |
+
<button class="px-8 py-4 bg-white text-[#016a75] font-bold rounded-full shadow-lg hover:bg-gray-100 transition">Download Appen</button>
|
92 |
+
<button class="px-8 py-4 bg-transparent border-2 border-white text-white font-bold rounded-full hover:bg-white/10 transition">Lær Mere</button>
|
93 |
+
</div>
|
94 |
+
</div>
|
95 |
+
</section>
|
96 |
+
|
97 |
+
<!-- Problem Section -->
|
98 |
+
<section class="py-16 bg-white dark:bg-dark-surface">
|
99 |
+
<div class="container mx-auto px-4">
|
100 |
+
<div class="text-center mb-16">
|
101 |
+
<h2 class="text-3xl md:text-4xl font-bold mb-4">Et stigende samfundsproblem</h2>
|
102 |
+
<p class="text-xl text-text-secondary dark:text-dark-text-secondary max-w-3xl mx-auto">Ensomhed påvirker tusindvis af danskere, især unge. SoulMatch tager fat om kernen i problemet</p>
|
103 |
+
</div>
|
104 |
+
|
105 |
+
<div class="grid md:grid-cols-2 gap-12 items-center">
|
106 |
+
<div data-aos="fade-right">
|
107 |
+
<img src="http://static.photos/people/640x360/42" alt="Ensom person i Danmark" class="rounded-2xl shadow-lg">
|
108 |
+
</div>
|
109 |
+
<div data-aos="fade-left">
|
110 |
+
<h3 class="text-2xl font-bold mb-4">Hver fjerde ung føler sig ensom</h3>
|
111 |
+
<p class="mb-4 text-text-secondary dark:text-dark-text-secondary">Langvarig ensomhed har alvorlige konsekvenser for både mental og fysisk sundhed. Det koster samfundet over 8 mia. kroner årligt.</p>
|
112 |
+
<ul class="space-y-3">
|
113 |
+
<li class="flex items-start">
|
114 |
+
<i data-feather="check-circle" class="icon-primary mt-1 mr-2"></i>
|
115 |
+
<span>22% af unge (16-24 år) føler sig alvorligt ensomme</span>
|
116 |
+
</li>
|
117 |
+
<li class="flex items-start">
|
118 |
+
<i data-feather="check-circle" class="icon-primary mt-1 mr-2"></i>
|
119 |
+
<span>Svært for unge med ADHD og autisme at finde fællesskaber</span>
|
120 |
+
</li>
|
121 |
+
<li class="flex items-start">
|
122 |
+
<i data-feather="check-circle" class="icon-primary mt-1 mr-2"></i>
|
123 |
+
<span>Mange tilbud, men svært at finde det rigtige lokalt</span>
|
124 |
+
</li>
|
125 |
+
</ul>
|
126 |
+
</div>
|
127 |
+
</div>
|
128 |
+
</div>
|
129 |
+
</section>
|
130 |
+
|
131 |
+
<!-- Solution Section -->
|
132 |
+
<section class="py-16 bg-primary-light dark:bg-dark-surface">
|
133 |
+
<div class="container mx-auto px-4">
|
134 |
+
<div class="text-center mb-16">
|
135 |
+
<h2 class="text-3xl md:text-4xl font-bold mb-4">Hvordan SoulMatch hjælper</h2>
|
136 |
+
<p class="text-xl text-text-secondary dark:text-dark-text-secondary max-w-3xl mx-auto">Vi kombinerer avanceret teknologi med menneskelige behov for at skabe meningsfulde forbindelser</p>
|
137 |
+
</div>
|
138 |
+
|
139 |
+
<div class="grid md:grid-cols-3 gap-8">
|
140 |
+
<div class="bg-white dark:bg-dark-surface rounded-2xl p-6 shadow-lg feature-card transition" data-aos="fade-up">
|
141 |
+
<div class="w-12 h-12 rounded-full bg-primary flex items-center justify-center mb-4">
|
142 |
+
<i data-feather="users" class="text-white"></i>
|
143 |
+
</div>
|
144 |
+
<h3 class="text-xl font-bold mb-2">AI-Drevet Matching</h3>
|
145 |
+
<p class="text-text-secondary dark:text-dark-text-secondary">Matcher dig med ligesindede baseret på personlighed, interesser og baggrund</p>
|
146 |
+
</div>
|
147 |
+
|
148 |
+
<div class="bg-white dark:bg-dark-surface rounded-2xl p-6 shadow-lg feature-card transition" data-aos="fade-up" data-aos-delay="100">
|
149 |
+
<div class="w-12 h-12 rounded-full bg-primary flex items-center justify-center mb-4">
|
150 |
+
<i data-feather="map-pin" class="text-white"></i>
|
151 |
+
</div>
|
152 |
+
<h3 class="text-xl font-bold mb-2">Fysiske Møder</h3>
|
153 |
+
<p class="text-text-secondary dark:text-dark-text-secondary">Chatten kræver NFC-bekræftelse inden for 3 dage for at fortsætte samtalen</p>
|
154 |
+
</div>
|
155 |
+
|
156 |
+
<div class="bg-white dark:bg-dark-surface rounded-2xl p-6 shadow-lg feature-card transition" data-aos="fade-up" data-aos-delay="200">
|
157 |
+
<div class="w-12 h-12 rounded-full bg-primary flex items-center justify-center mb-4">
|
158 |
+
<i data-feather="shield" class="text-white"></i>
|
159 |
+
</div>
|
160 |
+
<h3 class="text-xl font-bold mb-2">Sikkerhed & Tryghed</h3>
|
161 |
+
<p class="text-text-secondary dark:text-dark-text-secondary">MitID-verificering, ansigtsgenkendelse og SOS-funktion skaber trygge møder</p>
|
162 |
+
</div>
|
163 |
+
</div>
|
164 |
+
</div>
|
165 |
+
</section>
|
166 |
+
|
167 |
+
<!-- Features Section -->
|
168 |
+
<section class="py-16 bg-white dark:bg-dark-background">
|
169 |
+
<div class="container mx-auto px-4">
|
170 |
+
<div class="text-center mb-16">
|
171 |
+
<h2 class="text-3xl md:text-4xl font-bold mb-4">Funktioner der skaber forbindelse</h2>
|
172 |
+
<p class="text-xl text-text-secondary dark:text-dark-text-secondary max-w-3xl mx-auto">SoulMatch kombinerer teknologi og menneskelige behov for at skabe autentiske relationer</p>
|
173 |
+
</div>
|
174 |
+
|
175 |
+
<div class="space-y-16">
|
176 |
+
<div class="flex flex-col md:flex-row items-center gap-8">
|
177 |
+
<div class="md:w-1/2" data-aos="fade-right">
|
178 |
+
<img src="http://static.photos/technology/640x360/12" alt="AI Personlighedsmatching teknologi" class="rounded-2xl shadow-lg">
|
179 |
+
</div>
|
180 |
+
<div class="md:w-1/2" data-aos="fade-left">
|
181 |
+
<h3 class="text-2xl font-bold mb-4">Dybdegående Personlighedsmatching</h3>
|
182 |
+
<p class="mb-4 text-text-secondary dark:text-dark-text-secondary">Vores AI analyserer din personlighed og matcher dig med ligesindede baseret på Jungiansk psykologi og Big Five-modellen.</p>
|
183 |
+
<ul class="space-y-2">
|
184 |
+
<li class="flex items-center">
|
185 |
+
<i data-feather="check" class="icon-primary mr-2"></i>
|
186 |
+
<span>Valgfri personlighedstest for præcis matching</span>
|
187 |
+
</li>
|
188 |
+
<li class="flex items-center">
|
189 |
+
<i data-feather="check" class="icon-primary mr-2"></i>
|
190 |
+
<span>Match på interesser, kultur og opvækst</span>
|
191 |
+
</li>
|
192 |
+
</ul>
|
193 |
+
</div>
|
194 |
+
</div>
|
195 |
+
|
196 |
+
<div class="flex flex-col md:flex-row-reverse items-center gap-8">
|
197 |
+
<div class="md:w-1/2" data-aos="fade-left">
|
198 |
+
<img src="http://static.photos/people/640x360/78" alt="Let's Go funktion - fysiske møder" class="rounded-2xl shadow-lg">
|
199 |
+
</div>
|
200 |
+
<div class="md:w-1/2" data-aos="fade-right">
|
201 |
+
<h3 class="text-2xl font-bold mb-4">"Let's Go" Funktion</h3>
|
202 |
+
<p class="mb-4 text-text-secondary dark:text-dark-text-secondary">Find personer i dit område med fælles interesser og foreslå konkrete møder. Vores system hjælper med at organisere og planlægge.</p>
|
203 |
+
<ul class="space-y-2">
|
204 |
+
<li class="flex items-center">
|
205 |
+
<i data-feather="check" class="icon-primary mr-2"></i>
|
206 |
+
<span>Foreslå møder baseret på fælles interesser</span>
|
207 |
+
</li>
|
208 |
+
<li class="flex items-center">
|
209 |
+
<i data-feather="check" class="icon-primary mr-2"></i>
|
210 |
+
<span>Vælg gruppestørrelse og mødested</span>
|
211 |
+
</li>
|
212 |
+
</ul>
|
213 |
+
</div>
|
214 |
+
</div>
|
215 |
+
|
216 |
+
<div class="flex flex-col md:flex-row items-center gap-8">
|
217 |
+
<div class="md:w-1/2" data-aos="fade-right">
|
218 |
+
<img src="http://static.photos/cityscape/640x360/34" alt="Events og mødesteder i byen" class="rounded-2xl shadow-lg">
|
219 |
+
</div>
|
220 |
+
<div class="md:w-1/2" data-aos="fade-left">
|
221 |
+
<h3 class="text-2xl font-bold mb-4">Events & Mødesteder</h3>
|
222 |
+
<p class="mb-4 text-text-secondary dark:text-dark-text-secondary">Find og opret events i dit lokalsamfund. Vores database samler alle sociale tilbud på ét sted.</p>
|
223 |
+
<ul class="space-y-2">
|
224 |
+
<li class="flex items-center">
|
225 |
+
<i data-feather="check" class="icon-primary mr-2"></i>
|
226 |
+
<span>Database over lokale mødesteder og events</span>
|
227 |
+
</li>
|
228 |
+
<li class="flex items-center">
|
229 |
+
<i data-feather="check" class="icon-primary mr-2"></i>
|
230 |
+
<span>Opret dine egne events og inviter andre</span>
|
231 |
+
</li>
|
232 |
+
</ul>
|
233 |
+
</div>
|
234 |
+
</div>
|
235 |
+
</div>
|
236 |
+
</div>
|
237 |
+
</section>
|
238 |
+
|
239 |
+
<!-- CTA Section -->
|
240 |
+
<section class="py-16 bg-[#016a75] text-white">
|
241 |
+
<div class="container mx-auto px-4 text-center">
|
242 |
+
<h2 class="text-3xl md:text-4xl font-bold mb-6">Vil du være med til at bekæmpe ensomheden?</h2>
|
243 |
+
<p class="text-xl mb-8 max-w-2xl mx-auto">Download SoulMatch i dag og tag det første skridt mod meningsfulde forbindelser</p>
|
244 |
+
<div class="flex flex-col sm:flex-row justify-center gap-4">
|
245 |
+
<button class="px-8 py-4 bg-white text-[#016a75] font-bold rounded-full shadow-lg hover:bg-gray-100 transition flex items-center justify-center">
|
246 |
+
<i data-feather="download" class="mr-2"></i> Download til iOS
|
247 |
+
</button>
|
248 |
+
<button class="px-8 py-4 bg-transparent border-2 border-white text-white font-bold rounded-full hover:bg-white/10 transition flex items-center justify-center">
|
249 |
+
<i data-feather="download" class="mr-2"></i> Download til Android
|
250 |
+
</button>
|
251 |
+
</div>
|
252 |
+
</div>
|
253 |
+
</section>
|
254 |
+
|
255 |
+
<!-- Footer -->
|
256 |
+
<footer class="bg-dark-surface text-dark-text-primary py-12">
|
257 |
+
<div class="container mx-auto px-4">
|
258 |
+
<div class="grid md:grid-cols-4 gap-8">
|
259 |
+
<div>
|
260 |
+
<div class="flex items-center space-x-2 mb-4">
|
261 |
+
<img src="https://q1f3.c3.e2-9.dev/soulmatch-uploads-public/SoulMatch%20logo.jpeg" alt="SoulMatch Logo" class="h-8 w-8 rounded-full">
|
262 |
+
<span class="text-xl font-bold text-white">SoulMatch</span>
|
263 |
+
</div>
|
264 |
+
<p class="text-dark-text-secondary mb-4">Skaber meningsfulde forbindelser gennem fysiske møder og AI-drevet matching.</p>
|
265 |
+
<div class="flex space-x-4">
|
266 |
+
<a href="#" class="text-dark-text-secondary hover:text-white transition">
|
267 |
+
<i data-feather="facebook"></i>
|
268 |
+
</a>
|
269 |
+
<a href="#" class="text-dark-text-secondary hover:text-white transition">
|
270 |
+
<i data-feather="instagram"></i>
|
271 |
+
</a>
|
272 |
+
<a href="#" class="text-dark-text-secondary hover:text-white transition">
|
273 |
+
<i data-feather="twitter"></i>
|
274 |
+
</a>
|
275 |
+
</div>
|
276 |
+
</div>
|
277 |
+
|
278 |
+
<div>
|
279 |
+
<h3 class="text-lg font-bold text-white mb-4">Produkt</h3>
|
280 |
+
<ul class="space-y-2 text-dark-text-secondary">
|
281 |
+
<li><a href="#" class="hover:text-white transition">Funktioner</a></li>
|
282 |
+
<li><a href="#" class="hover:text-white transition">Sikkerhed</a></li>
|
283 |
+
<li><a href="#" class="hover:text-white transition">Download</a></li>
|
284 |
+
<li><a href="#" class="hover:text-white transition">Priser</a></li>
|
285 |
+
</ul>
|
286 |
+
</div>
|
287 |
+
|
288 |
+
<div>
|
289 |
+
<h3 class="text-lg font-bold text-white mb-4">Virksomhed</h3>
|
290 |
+
<ul class="space-y-2 text-dark-text-secondary">
|
291 |
+
<li><a href="#" class="hover:text-white transition">Om os</a></li>
|
292 |
+
<li><a href="#" class="hover:text-white transition">Blog</a></li>
|
293 |
+
<li><a href="#" class="hover:text-white transition">Karriere</a></li>
|
294 |
+
<li><a href="#" class="hover:text-white transition">Presse</a></li>
|
295 |
+
</ul>
|
296 |
+
</div>
|
297 |
+
|
298 |
+
<div>
|
299 |
+
<h3 class="text-lg font-bold text-white mb-4">Support</h3>
|
300 |
+
<ul class="space-y-2 text-dark-text-secondary">
|
301 |
+
<li><a href="#" class="hover:text-white transition">Hjælp & FAQ</a></li>
|
302 |
+
<li><a href="#" class="hover:text-white transition">Kontakt os</a></li>
|
303 |
+
<li><a href="#" class="hover:text-white transition">Privatlivspolitik</a></li>
|
304 |
+
<li><a href="#" class="hover:text-white transition">Vilkår for brug</a></li>
|
305 |
+
</ul>
|
306 |
+
</div>
|
307 |
+
</div>
|
308 |
+
|
309 |
+
<div class="border-t border-dark-border mt-12 pt-8 text-center text-dark-text-secondary">
|
310 |
+
<p>© 2023 SoulMatch. Alle rettigheder forbeholdes.</p>
|
311 |
+
</div>
|
312 |
+
</div>
|
313 |
+
</footer>
|
314 |
+
|
315 |
+
<script>
|
316 |
+
// Set initial theme
|
317 |
+
if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
|
318 |
+
document.documentElement.classList.add('dark');
|
319 |
+
} else {
|
320 |
+
document.documentElement.classList.remove('dark');
|
321 |
+
}
|
322 |
+
|
323 |
+
// Initialize AOS
|
324 |
+
AOS.init({
|
325 |
+
duration: 800,
|
326 |
+
easing: 'ease-out-cubic'
|
327 |
+
});
|
328 |
+
|
329 |
+
// Initialize Feather Icons
|
330 |
+
feather.replace();
|
331 |
+
|
332 |
+
// Theme toggle
|
333 |
+
const themeToggle = document.getElementById('theme-toggle');
|
334 |
+
themeToggle.addEventListener('click', function() {
|
335 |
+
document.documentElement.classList.toggle('dark');
|
336 |
+
if (document.documentElement.classList.contains('dark')) {
|
337 |
+
localStorage.setItem('theme', 'dark');
|
338 |
+
} else {
|
339 |
+
localStorage.setItem('theme', 'light');
|
340 |
+
}
|
341 |
+
|
342 |
+
// Update icon
|
343 |
+
const sunIcon = themeToggle.querySelector('[data-feather="sun"]');
|
344 |
+
const moonIcon = themeToggle.querySelector('[data-feather="moon"]');
|
345 |
+
|
346 |
+
if (document.documentElement.classList.contains('dark')) {
|
347 |
+
sunIcon.classList.remove('hidden');
|
348 |
+
moonIcon.classList.add('hidden');
|
349 |
+
} else {
|
350 |
+
sunIcon.classList.add('hidden');
|
351 |
+
moonIcon.classList.remove('hidden');
|
352 |
+
}
|
353 |
+
});
|
354 |
+
|
355 |
+
// Update theme toggle icon on load
|
356 |
+
function updateThemeIcon() {
|
357 |
+
const sunIcon = themeToggle.querySelector('[data-feather="sun"]');
|
358 |
+
const moonIcon = themeToggle.querySelector('[data-feather="moon"]');
|
359 |
+
|
360 |
+
if (document.documentElement.classList.contains('dark')) {
|
361 |
+
sunIcon.classList.remove('hidden');
|
362 |
+
moonIcon.classList.add('hidden');
|
363 |
+
} else {
|
364 |
+
sunIcon.classList.add('hidden');
|
365 |
+
moonIcon.classList.remove('hidden');
|
366 |
+
}
|
367 |
+
feather.replace();
|
368 |
+
}
|
369 |
+
|
370 |
+
// Initial icon update
|
371 |
+
updateThemeIcon();
|
372 |
+
|
373 |
+
// Listen for theme changes
|
374 |
+
themeToggle.addEventListener('click', updateThemeIcon);
|
375 |
+
</script>
|
376 |
+
</body>
|
377 |
</html>
|
prompts.txt
ADDED
@@ -0,0 +1,452 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Lav denne hovedside for app:
|
2 |
+
SoulMatch er en innovativ applikation designet til at bekæmpe den stigende ensomhed i
|
3 |
+
Danmark ved at facilitere meningsfulde fællesskaber og trygge, fysiske møder mellem
|
4 |
+
mennesker. Appen er skabt ud fra personlig erfaring med ensomhed hos stifteren, Buster, som
|
5 |
+
selv har ADHD og autisme. Projektet er udviklet i tæt samarbejde med Aalborg Universitet,
|
6 |
+
Psykologi, for at sikre en solid faglig finansiering.
|
7 |
+
SoulMatch anvender avanceret AI-teknologi til at matche brugere baseret på en bred vifte af
|
8 |
+
kriterier, herunder personlighed, interesser, hobbyer, kultur, opvækst og køn. Appens centrale
|
9 |
+
motto er "Gem mobilen væk, og vær sammen som mennesker"
|
10 |
+
. Dette understreges af en unik
|
11 |
+
funktion, der kræver fysisk fremmøde og NFC-bekræftelse inden for tre dage for at opretholde
|
12 |
+
chat forbindelsen. SoulMatch vil desuden integrere en database over sociale tilbud og frivillige
|
13 |
+
organisationer, understøttet af kommuner og foreninger, for at gøre det nemmere at finde lokale
|
14 |
+
fællesskaber.
|
15 |
+
Formålet er at gøre det nemmere, sjovere og mere trygt for folk at mødes fysisk og få samtalen i
|
16 |
+
gang, med en vision om at blive Danmarks mest brugte og anerkendte platform for sociale
|
17 |
+
events, og senere udvide internationalt.
|
18 |
+
2. Problemstilling
|
19 |
+
Ensomhed er et alvorligt og stigende samfundsproblem i Danmark. Undersøgelser viser, at op
|
20 |
+
mod hver fjerde ung føler sig ensom i længere perioder. Langvarig ensomhed er en alvorlig
|
21 |
+
sundhedsmæssig udfordring, der koster samfundet over 8 mia. kroner årligt og øger risikoen for
|
22 |
+
bl.a. forhøjet blodtryk, søvnforstyrrelser og depression. For unge i alderen 16-24 år føler 22%
|
23 |
+
sig alvorligt ensomme. Ensomhed handler ofte om kvaliteten af relationer snarere end antallet.
|
24 |
+
Specifikt for unge med ADHD og autisme, eller unge i generel mistrivsel, kan det være særligt
|
25 |
+
svært at finde ligesindede og indgå i meningsfulde relationer. De kan have vanskeligheder med
|
26 |
+
at navigere i komplekse sociale situationer, afkode sociale nuancer og tage initiativ til møder
|
27 |
+
[Implied from 20, 38]. Der er mange tilbud derude, men det er svært for folk at gennemskue de
|
28 |
+
præcise muligheder i deres lokale by inden for deres behov, og selv kommunale medarbejdere
|
29 |
+
har svært ved at rumme og huske alle tilbuddene.
|
30 |
+
3. Mission, Vision og Værdier
|
31 |
+
Mission: At gøre det nemmere, sjovere og mere trygt for folk at mødes fysisk og få samtalen i
|
32 |
+
gang.
|
33 |
+
Vision: At skabe Danmarks mest brugte og anerkendte platform for sociale events, der hjælper
|
34 |
+
folk med at mødes i virkeligheden, med en fremtidig udvidelse til udlandet.
|
35 |
+
Værdier:
|
36 |
+
●
|
37 |
+
●
|
38 |
+
●
|
39 |
+
●
|
40 |
+
●
|
41 |
+
●
|
42 |
+
●
|
43 |
+
●
|
44 |
+
Tryghed
|
45 |
+
Nye venner
|
46 |
+
Fordele med rabatkoder
|
47 |
+
Sikkerhed (herunder MitID verificering og SOS alarm)
|
48 |
+
Bekræftelse af personen bag skærmen (MitID og ansigtsgodkendelse)
|
49 |
+
Gode steder at mødes i sin by
|
50 |
+
Virksomheder som støtter kampen mod ensomhed
|
51 |
+
Personlighedsanalyse
|
52 |
+
Motto: "Gem mobilen væk, og vær sammen som mennesker"
|
53 |
+
.
|
54 |
+
4. Målgruppe
|
55 |
+
Primær målgruppe:
|
56 |
+
●
|
57 |
+
●
|
58 |
+
●
|
59 |
+
Ensomme individer, især unge (16-24 år).
|
60 |
+
Unge med ADHD og autisme, der oplever ensomhed og har svært ved at finde
|
61 |
+
fællesskaber.
|
62 |
+
Individer i generel mistrivsel, der søger meningsfulde relationer.
|
63 |
+
Sekundær målgruppe:
|
64 |
+
●
|
65 |
+
Kommuner og deres medarbejdere, der har svært ved at overskue og formidle lokale
|
66 |
+
●
|
67 |
+
●
|
68 |
+
sociale tilbud.
|
69 |
+
Foreningslivet og frivillige organisationer, der tilbyder sociale aktiviteter.
|
70 |
+
Virksomheder, der ønsker at støtte kampen mod ensomhed og tilbyde rabatter til
|
71 |
+
brugere.
|
72 |
+
5. Værdiskabelse
|
73 |
+
SoulMatch leverer værdi ved at:
|
74 |
+
●
|
75 |
+
●
|
76 |
+
●
|
77 |
+
●
|
78 |
+
●
|
79 |
+
●
|
80 |
+
●
|
81 |
+
Bekæmpe ensomhed: Ved at facilitere meningsfulde forbindelser, der matcher brugere
|
82 |
+
på dybdegående niveauer, adresserer appen ensomhedens kerne, som handler om
|
83 |
+
kvaliteten af relationer.
|
84 |
+
Fremme inklusion for sårbare grupper: Især for unge med ADHD og autisme tilbyder
|
85 |
+
appen en struktureret og tryg ramme for at finde ligesindede, hvilket mindsker social
|
86 |
+
angst og følelsen af isolation [Implied from 20, 38]. Dybdegående personlighedsmatch
|
87 |
+
og aktivitetsbaserede møder er særligt gavnlige for disse grupper.
|
88 |
+
Strukturere sociale møder: Gennem funktioner som "Let's Go" og personlighedsspil
|
89 |
+
reduceres barrierer og kognitiv byrde ved at initiere sociale interaktioner.
|
90 |
+
Gøre sociale tilbud tilgængelige: En centraliseret database for kommunale og
|
91 |
+
foreningsdrevne tilbud løser problemet med informationsspredning og gør det nemmere
|
92 |
+
for borgere at finde relevante fællesskaber lokalt.
|
93 |
+
Incitament til fysiske møder: Den unikke 3-dages chatgrænse med NFC-bekræftelse
|
94 |
+
tvinger brugere til at omsætte online interesse til offline interaktion, hvilket er afgørende
|
95 |
+
for at opbygge reelle relationer.
|
96 |
+
Sikre tryghed: Robuste sikkerhedsfunktioner som MitID-verificering, ansigts
|
97 |
+
godkendelse og en SOS-funktion skaber et fundament af tillid, som er essentielt for
|
98 |
+
sårbare brugere.
|
99 |
+
Belønne social deltagelse: Rabatordninger og "Buddy Points" motiverer til aktiv
|
100 |
+
deltagelse og gentagne møder, hvilket styrker fællesskaberne.
|
101 |
+
6. Funktionelle Krav
|
102 |
+
6.1. Brugerprofil & Onboarding
|
103 |
+
●
|
104 |
+
●
|
105 |
+
●
|
106 |
+
●
|
107 |
+
Gratis tilmelding: Brugere skal kunne oprette en profil uden omkostninger.
|
108 |
+
Sikkerhedskrav ved tilmelding:
|
109 |
+
○
|
110 |
+
MitID-verificering: Obligatorisk for at sikre ægte identitet og tryghed.
|
111 |
+
○
|
112 |
+
Ansigts godkendelse: Ved verificering og upload af profilbilleder for at matche
|
113 |
+
person med billeder.
|
114 |
+
Sikkerhed ved app-åbning: Ansigts Verificering, fingeraftryk eller pinkode er påkrævet
|
115 |
+
for at åbne appen.
|
116 |
+
Profiloprettelse:
|
117 |
+
○
|
118 |
+
Mulighed for at uploade profilbilleder.
|
119 |
+
○
|
120 |
+
Indtastning af interesser og hobbyer.
|
121 |
+
○
|
122 |
+
Valgfri personlighedsanalyse (hurtig eller dybdegående) for at øge match succes.
|
123 |
+
○
|
124 |
+
Indtastning af informationer om kultur, opvækst, køn og "meget mere" til
|
125 |
+
AI-match.
|
126 |
+
6.2. AI-drevet Matchnings System (Kommende efter beta)
|
127 |
+
●
|
128 |
+
Avanceret AI: Systemet skal benytte en gennemtestet og trænet AI til præcisions
|
129 |
+
matchning.
|
130 |
+
●
|
131 |
+
●
|
132 |
+
Matchnings Kriterier: AI'en matcher baseret på:
|
133 |
+
○
|
134 |
+
Personlighed: Fra valgfri personlighedsanalyse, inspireret af Jungiansk
|
135 |
+
psykologi og Big Five (OCEAN) modeller.
|
136 |
+
○
|
137 |
+
Interesser og hobbyer: Specificerede af brugeren.
|
138 |
+
○
|
139 |
+
Kultur, opvækst, køn: Som dybdegående faktorer.
|
140 |
+
○
|
141 |
+
"Meget mere": Fleksibel udvidelse af kriterier.
|
142 |
+
Formål: At skabe meningsfulde fællesskaber og dybe forbindelser ved at hjælpe
|
143 |
+
brugere med at forstå sig selv og hinanden.
|
144 |
+
6.3. Sociale Interaktion Funktioner
|
145 |
+
●
|
146 |
+
●
|
147 |
+
●
|
148 |
+
"Let's Go" Funktion:
|
149 |
+
○
|
150 |
+
Søgning: Brugere kan søge efter andre baseret på specifikke interesser.
|
151 |
+
○
|
152 |
+
Møde Initiativer: Mulighed for at foreslå konkrete tidspunkter og steder at
|
153 |
+
mødes.
|
154 |
+
○
|
155 |
+
Gruppestørrelse: Brugere kan vælge, hvor mange der skal deltage i mødet.
|
156 |
+
Chatfunktion:
|
157 |
+
○
|
158 |
+
Privat chat: Mulighed for at skrive med nye bekendtskaber privat, før de tilføjes
|
159 |
+
som venner.
|
160 |
+
○
|
161 |
+
3-dages chat grænse: Chatten slettes automatisk efter 3 dage, medmindre
|
162 |
+
brugerne mødes fysisk.
|
163 |
+
○
|
164 |
+
NFC-bekræftelse: Fysisk møde bekræftes ved at lade to telefoner røre hinanden
|
165 |
+
via NFC-teknologi for at bevare chatten.
|
166 |
+
○
|
167 |
+
Venneanmodning: Efter fysisk møde kan brugere sende venneanmodninger i
|
168 |
+
appen.
|
169 |
+
○
|
170 |
+
Del events: Mulighed for at dele events via chatten med venner.
|
171 |
+
Personlighedsspil (valgfri, kommende efter beta):
|
172 |
+
○
|
173 |
+
Algoritme Genererede spørgsmål: Spørgsmål genereres baseret på brugerens
|
174 |
+
personlighedsanalyse, for at facilitere bedre indledende samtaler.
|
175 |
+
○
|
176 |
+
"Sjove facts": Mulighed for brugere at dele sjove facts om sig selv.
|
177 |
+
6.4. Event- og Stedbaserede Funktioner
|
178 |
+
●
|
179 |
+
●
|
180 |
+
Database over mødesteder: En opdateret database over steder, hvor det er muligt at
|
181 |
+
mødes med andre, med søgefunktion efter interesse og by.
|
182 |
+
Database for kommunale og foreningsdrevne tilbud (Beta-version):
|
183 |
+
○
|
184 |
+
App'en skal initialt fungere som en opdateret database over frivillige
|
185 |
+
organisationer og sociale tilbud i danske kommuner.
|
186 |
+
○
|
187 |
+
Kommunal/Forenings Login: Medarbejdere fra kommuner og foreninger får et
|
188 |
+
login (via medarbejdersignatur) for at oprette og administrere tilbud og events.
|
189 |
+
○
|
190 |
+
Mailkampagner: Ansvarlige for foreninger får tilsendt login og inviteres ind i
|
191 |
+
databasen.
|
192 |
+
○
|
193 |
+
Facebook Link Integration: Mulighed for automatisk at tilføje informationer fra
|
194 |
+
Facebook sider.
|
195 |
+
●
|
196 |
+
●
|
197 |
+
●
|
198 |
+
Event Funktionalitet:
|
199 |
+
○
|
200 |
+
Opret begivenheder: Brugere kan selv oprette og foreslå begivenheder.
|
201 |
+
○
|
202 |
+
Se begivenheder: Oversigt over kommende begivenheder.
|
203 |
+
○
|
204 |
+
Hjemmeskærm Visning: Visning af venner og andre deltagere i events på
|
205 |
+
hjemmeskærmen.
|
206 |
+
○
|
207 |
+
Kalenderintegration: Mulighed for automatisk at tilføje events til Google
|
208 |
+
Kalender, Apple Kalender mv..
|
209 |
+
Frivilligt arbejde: En funktion i appen til at finde frivilligt arbejde i lokalsamfundet.
|
210 |
+
Placering Verifikation (kommende efter beta): Verifikation af placering ved events og
|
211 |
+
mødesteder.
|
212 |
+
6.5. Incitamenter og Belønninger
|
213 |
+
●
|
214 |
+
●
|
215 |
+
●
|
216 |
+
Rabatkoder: Brugere kan opnå rabatkoder til samarbejdspartnere (f.eks. Espresso
|
217 |
+
House, Heidis Beer Bar), når de mødes med et nyt bekendtskab i minimum 15 minutter.
|
218 |
+
○
|
219 |
+
Fortjeneste: En del af rabatten (f.eks. 15%) eller en fast fee pr. kupon går til
|
220 |
+
driften af appen.
|
221 |
+
Buddy Points System (kommende efter beta): Brugere optjener points, når de mødes
|
222 |
+
gentagne gange, hvilket giver adgang til yderligere rabatter.
|
223 |
+
Sociale Medie Belønninger (ekstra draft funktion): Valgfri mulighed for at opnå f.eks.
|
224 |
+
en ekstra kaffe ved at lave opslag på sociale medier om rabatter og tagge Soul Match
|
225 |
+
profil.
|
226 |
+
6.6. Sikkerhedsfunktioner
|
227 |
+
●
|
228 |
+
●
|
229 |
+
●
|
230 |
+
●
|
231 |
+
Bruger Verificering: MitID-verificering og ansigts godkendelse ved tilmelding (se 6.1).
|
232 |
+
Ansigts-/Fingerprint-/Pinkode-login: Ved hver åbning af app'en for at sikre brugerens
|
233 |
+
profil.
|
234 |
+
SOS-funktion (kommende efter beta): Aktiveres ved gentagne tryk på lydstyrke
|
235 |
+
op-knappen (5 gange), hvorefter kameraet starter med at filme skjult i baggrunden.
|
236 |
+
Rapporterings- og udelukkelse system:
|
237 |
+
○
|
238 |
+
Ved 2 utilfredse anklager mod en person udelukkes vedkommende permanent
|
239 |
+
fra platformen.
|
240 |
+
○
|
241 |
+
Ved meget alvorlige anklager (med beviser) bandlyses personen øjeblikkeligt og
|
242 |
+
bliver politianmeldt.
|
243 |
+
6.7. Admin- og Backend-funktioner (for Soul Match Team & Partnere)
|
244 |
+
●
|
245 |
+
"Min side" for kommuner/foreninger: Medarbejderlogin til at administrere tilbud og
|
246 |
+
●
|
247 |
+
●
|
248 |
+
events.
|
249 |
+
Rabatkode database (kommende efter beta): Central administration af rabatkoder.
|
250 |
+
B2B platform (kommende efter beta): Til virksomhedspartnere med medarbejder
|
251 |
+
logins.
|
252 |
+
●
|
253 |
+
Personlighedstest database (kommende efter beta): Administration af
|
254 |
+
personlighedstest data.
|
255 |
+
|
256 |
+
Design guide:
|
257 |
+
# SoulMatch Design System & Guide
|
258 |
+
|
259 |
+
## 1. Introduktion & Filosofi
|
260 |
+
|
261 |
+
Velkommen til SoulMatch Design System. Dette dokument er den centrale kilde til sandhed for vores visuelle identitet, UI-komponenter og designprincipper. Vores mål er at skabe en ensartet, intuitiv og tryg oplevelse for alle brugere, der bekæmper ensomhed i Danmark.
|
262 |
+
|
263 |
+
### Vores Designprincipper
|
264 |
+
|
265 |
+
- **Tryghed Først (Safety First):** Designet skal altid fremstå professionelt, sikkert og troværdigt. Brugeren skal føle sig tryg ved at interagere med appen og andre mennesker.
|
266 |
+
- **Indbydende & Inkluderende (Welcoming & Inclusive):** Vores visuelle sprog er varmt, venligt og imødekommende. Vi designer for alle, uanset baggrund.
|
267 |
+
- **Opfordrende (Encouraging):** Designet skal motivere til handling – især til at deltage i events og mødes i den virkelige verden.
|
268 |
+
- **Simpelt & Fokuseret (Simple & Focused):** Vi undgår unødig kompleksitet. Hver skærm har et klart formål, og brugerflowet er ubesværet.
|
269 |
+
|
270 |
+
---
|
271 |
+
|
272 |
+
## 2. Visuel Identitet
|
273 |
+
|
274 |
+
### 2.1. Logo
|
275 |
+
|
276 |
+
Vores logo repræsenterer forbindelse og fællesskab.
|
277 |
+
|
278 |
+
**Primært Logo:**
|
279 |
+
`https://q1f3.c3.e2-9.dev/soulmatch-uploads-public/SoulMatch%20logo.jpeg`
|
280 |
+
|
281 |
+
**Retningslinjer for brug:**
|
282 |
+
- **Frirum:** Bevar altid et frirum omkring logoet svarende til højden på "S"-et i "SoulMatch".
|
283 |
+
- **Baggrund:** Logoet skal primært bruges på lyse eller hvide baggrunde.
|
284 |
+
- **Ændringer:** Logoet må ikke strækkes, forvrænges, omfarves eller ændres på nogen måde.
|
285 |
+
|
286 |
+
### 2.2. Farvepalette
|
287 |
+
|
288 |
+
Vores farver er valgt for at skabe en følelse af ro, tillid og varme.
|
289 |
+
|
290 |
+
#### Light Mode
|
291 |
+
|
292 |
+
| Farve | HEX-kode | Tailwind Klasse | Anvendelse |
|
293 |
+
| ------------------- | --------- | ------------------- | --------------------------------------------------- |
|
294 |
+
| **Primary** | `#006B76` | `primary` | Vigtige knapper (CTAs), aktive links, branding. |
|
295 |
+
| **Primary Light** | `#E6F0F1` | `primary-light` | Baggrunde for sektioner, hover-effekter, tags. |
|
296 |
+
| **Primary Dark** | `#005F69` | `primary-dark` | Hover-effekter på primære knapper. |
|
297 |
+
| **Accent** | `#8A2BE2` | `accent` | Specielle highlights, AI-funktioner, notifikationer. |
|
298 |
+
| **Baggrund** | `#F8F9FA` | `background` | Appens overordnede baggrundsfarve. |
|
299 |
+
| **Tekst Primær** | `#212529` | `text-primary` | Overskrifter og primær brødtekst. |
|
300 |
+
| **Tekst Sekundær** | `#6C757D` | `text-secondary` | Undertekster, labels, mindre vigtig information. |
|
301 |
+
|
302 |
+
#### Dark Mode
|
303 |
+
|
304 |
+
| Farve | HEX-kode | Tailwind Klasse | Anvendelse |
|
305 |
+
| ------------------- | --------- | ----------------------- | ----------------------------------------------- |
|
306 |
+
| **Baggrund** | `#121826` | `dark-background` | Appens overordnede baggrundsfarve. |
|
307 |
+
| **Overflade** | `#1d2432` | `dark-surface` | Baggrund for kort, modaler og navigation. |
|
308 |
+
| **Overflade Lys** | `#2a3343` | `dark-surface-light` | Baggrund for input-felter, hover-effekter. |
|
309 |
+
| **Kant** | `#3c465b` | `dark-border` | Kanter og skillevægge. |
|
310 |
+
| **Tekst Primær** | `#e2e8f0` | `dark-text-primary` | Overskrifter og primær brødtekst. |
|
311 |
+
| **Tekst Sekundær** | `#94a3b8` | `dark-text-secondary` | Undertekster, labels. |
|
312 |
+
|
313 |
+
#### Statusfarver
|
314 |
+
|
315 |
+
| Status | Light Mode | Dark Mode | Anvendelse |
|
316 |
+
| --------- | -------------------------- | ------------------------------ | --------------------------------------------- |
|
317 |
+
| **Succes**| `bg-green-100`, `text-green-800` | `bg-green-900/30`, `text-green-300` | Bekræftelser, succesfulde handlinger. |
|
318 |
+
| **Fejl** | `bg-red-100`, `text-red-600` | `bg-red-900/20`, `text-red-400` | Fejlmeddelelser, advarsler om sletning. |
|
319 |
+
| **Advarsel**| `bg-yellow-100`, `text-yellow-800` | `bg-yellow-900/30`, `text-yellow-300` | Vigtig information, der kræver opmærksomhed. |
|
320 |
+
|
321 |
+
### 2.3. Typografi
|
322 |
+
|
323 |
+
Vi bruger **Nunito** som vores primære font for dens venlige, læselige og moderne udtryk.
|
324 |
+
|
325 |
+
| Element | Størrelse | Vægt | Tailwind Klasse |
|
326 |
+
| --------------- | ---------------- | ------------ | -------------------------------- |
|
327 |
+
| **Overskrift 1**| 30px (1.875rem) | Bold (700) | `text-3xl font-bold` |
|
328 |
+
| **Overskrift 2**| 24px (1.5rem) | Bold (700) | `text-2xl font-bold` |
|
329 |
+
| **Overskrift 3**| 20px (1.25rem) | Bold (700) | `text-xl font-bold` |
|
330 |
+
| **Brødtekst** | 16px (1rem) | Normal (400) | `text-base` |
|
331 |
+
| **Label/Lille** | 14px (0.875rem) | Semibold(600)| `text-sm font-semibold` |
|
332 |
+
| **Ekstra Lille**| 12px (0.75rem) | Normal (400) | `text-xs` |
|
333 |
+
|
334 |
+
---
|
335 |
+
|
336 |
+
## 3. Layout & Spacing
|
337 |
+
|
338 |
+
Konsistens i afstand er nøglen til et rent og professionelt design. Vores system er baseret på en **4px grid**.
|
339 |
+
|
340 |
+
| Værdi | Tailwind Eksempel |
|
341 |
+
| ----- | ----------------- |
|
342 |
+
| 4px | `p-1`, `space-x-1`|
|
343 |
+
| 8px | `p-2`, `space-x-2`|
|
344 |
+
| 12px | `p-3` |
|
345 |
+
| 16px | `p-4`, `m-4` |
|
346 |
+
| 24px | `p-6` |
|
347 |
+
| 32px | `p-8` |
|
348 |
+
|
349 |
+
**Generelle Layouts:**
|
350 |
+
- **Mobil:** Enkelt kolonne-layout med `BottomNav` i bunden.
|
351 |
+
- **Desktop:** To-kolonne-layout, hvor `BottomNav` omdannes til en `Sidebar` i venstre side, og hovedindholdet vises til højre.
|
352 |
+
|
353 |
+
---
|
354 |
+
|
355 |
+
## 4. Ikonografi
|
356 |
+
|
357 |
+
Vi bruger **Lucide Icons** for deres rene, lette og konsistente stil.
|
358 |
+
- **Standardstørrelse:** 24px til navigation og store ikoner. 20px eller 16px til mindre ikoner i knapper eller lister.
|
359 |
+
- **Stroke Width:** `1.5` for organisation-ikoner, `2` for standard-ikoner, `2.5` for aktive navigations-ikoner.
|
360 |
+
- **Anvendelse:** Ikoner skal altid ledsages af en tekst-label, medmindre funktionen er universelt genkendelig (f.eks. et 'X' for at lukke). Brug `aria-label` for ikon-knapper uden synlig tekst.
|
361 |
+
|
362 |
+
---
|
363 |
+
|
364 |
+
## 5. Komponentbibliotek
|
365 |
+
|
366 |
+
Dette er kernen i vores design system. Hver komponent er designet til at være genanvendelig, konsistent og tilgængelig.
|
367 |
+
|
368 |
+
### 5.1. Knapper (Buttons)
|
369 |
+
|
370 |
+
| Type | Beskrivelse | Klasse (Eksempel) |
|
371 |
+
| ------------------- | -------------------------------------------------- | -------------------------------------------------------------------------------- |
|
372 |
+
| **Primær (CTA)** | Til den vigtigste handling på en side. | `bg-primary text-white font-bold py-3 px-6 rounded-full shadow-lg` |
|
373 |
+
| **Sekundær** | Til mindre vigtige handlinger. | `bg-primary-light text-primary font-bold py-3 px-6 rounded-full` |
|
374 |
+
| **Tekst/Link** | Til navigation eller handlinger med lav prioritet. | `text-primary font-bold hover:underline` |
|
375 |
+
| **Destruktiv** | Til handlinger, der sletter data. | `bg-red-600 text-white font-bold ...` |
|
376 |
+
|
377 |
+
**States:** Alle knapper skal have tydelige `hover`, `focus`, `active`, og `disabled` states.
|
378 |
+
|
379 |
+
### 5.2. Kort (Cards)
|
380 |
+
|
381 |
+
Kort er den primære måde, vi viser indhold som events og mødesteder.
|
382 |
+
|
383 |
+
- **`EventCard`:** Viser billede, tidspunkt, titel, antal deltagere og host. Har en `hover`-effekt, hvor billedet zoomer let.
|
384 |
+
- **`PlaceCard`:** Kompakt design med billede, tilbud, navn, adresse og kategori.
|
385 |
+
- **Generelt:** Alle kort har `rounded-2xl`, `bg-white dark:bg-dark-surface`, og en let `shadow-sm`.
|
386 |
+
|
387 |
+
### 5.3. Formularer (Forms)
|
388 |
+
|
389 |
+
- **Input-felter:** Skal have en label, `bg-gray-50 dark:bg-dark-surface-light`, `rounded-lg`, og en tydelig `focus`-state med en `primary` ring.
|
390 |
+
- **Textareas:** Følger samme stil som input-felter.
|
391 |
+
- **`ToggleSwitch`:** En specialdesignet switch til til/fra-valg.
|
392 |
+
- **`CategorySelector`:** En genanvendelig komponent med indbygget søgefunktion og dropdown-funktionalitet til valg af kategorier.
|
393 |
+
|
394 |
+
### 5.4. Modaler (Modals)
|
395 |
+
|
396 |
+
- **Baggrund:** En mørk, semi-transparent overlay (`bg-black bg-opacity-50`).
|
397 |
+
- **Indhold:** En centreret boks (`bg-white dark:bg-dark-surface`, `rounded-2xl`) med indholdet.
|
398 |
+
- **Lukning:** Skal kunne lukkes ved at klikke uden for modalen eller på et 'X'-ikon. Focus skal fanges inde i modalen.
|
399 |
+
- **Eksempler:** `PlaceDetailModal`, `ShareModal`, `ReportUserModal`.
|
400 |
+
|
401 |
+
### 5.5. Navigation
|
402 |
+
|
403 |
+
- **`BottomNav` (Mobil):** Fast i bunden med 5 ikoner. Den centrale "Opret"-knap er større og hævet.
|
404 |
+
- **`OrganizationSidebar` (Desktop):** Fast i venstre side med ikoner og tekst-labels.
|
405 |
+
|
406 |
+
### 5.6. Feedback & Notifikationer
|
407 |
+
|
408 |
+
- **`Toast`:** Vises nederst til højre. Forsvinder automatisk efter 5 sekunder. Bruges til ikke-kritiske notifikationer.
|
409 |
+
- **`LoadingScreen`:** En fuldskærms- eller inline-komponent med SoulMatch-logoet og en blød fade-animation. Bruges ved indlæsning af appen eller sider.
|
410 |
+
- **Fejlmeddelelser:** Vises inline i formularer eller som en banner-komponent for side-dækkende fejl. Skal være i fejlfarven (rød).
|
411 |
+
|
412 |
+
---
|
413 |
+
|
414 |
+
## 6. Animation & Bevægelse (Motion)
|
415 |
+
|
416 |
+
Vi bruger **Framer Motion** til at tilføje subtile og meningsfulde animationer.
|
417 |
+
|
418 |
+
- **Side-overgange:** En simpel `fade`-effekt (`opacity: 0` til `1`).
|
419 |
+
- **Modal-visning:** En kombination af `scale` og `opacity` for en blød pop-up-effekt.
|
420 |
+
- **Liste-elementer:** Når nye elementer tilføjes til en liste (f.eks. tags), animeres de ind med `opacity` og `scale`.
|
421 |
+
- **Loading-animationer:** `pulse-slow` animation for at indikere aktivitet.
|
422 |
+
|
423 |
+
---
|
424 |
+
|
425 |
+
## 7. Tilgængelighed (Accessibility - a11y)
|
426 |
+
|
427 |
+
Vi stræber efter at overholde **WCAG 2.1 AA**-standarderne.
|
428 |
+
|
429 |
+
- **Farvekontrast:** Al tekst skal have en kontrastratio på mindst 4.5:1 mod sin baggrund.
|
430 |
+
- **Semantisk HTML:** Korrekt brug af `<nav>`, `<main>`, `<button>`, etc.
|
431 |
+
- **Tastatur-navigation:** Alle interaktive elementer skal være tilgængelige og kunne betjenes via tastatur. En tydelig `focus`-ring skal være synlig.
|
432 |
+
- **ARIA-attributter:** Brug af `aria-label`, `role`, og `aria-live` for at give kontekst til skærmlæsere, især for ikon-knapper og dynamisk indhold som toasts.
|
433 |
+
- **Billeder:** Alle billeder, der formidler indhold, skal have en beskrivende `alt`-tekst. Dekorative billeder skal have en tom `alt=""`.
|
434 |
+
|
435 |
+
---
|
436 |
+
|
437 |
+
## 8. Sprog & Tone (Voice & Tone)
|
438 |
+
|
439 |
+
- **Sprog:** Dansk.
|
440 |
+
- **Tone:**
|
441 |
+
- **Velkommende:** "Velkommen tilbage", "Fortæl os lidt om dig selv".
|
442 |
+
- **Opmuntrende:** "Find din nye SoulMate", "Skal vi tage afsted sammen? 😊".
|
443 |
+
- **Klar og direkte:** "Opret Event", "Gem Ændringer".
|
444 |
+
- **Tryghedsskabende:** "Din anmeldelse er anonym."
|
445 |
+
- **Emojis:** Brug af emojis (😊, 😎, 🎉) er opfordret, hvor det passer, for at skabe en venlig og uformel tone, der appellerer til vores målgruppe.
|
446 |
+
Lys mode virker ik
|
447 |
+
Gradients skal være i designguide farverne #016a75
|
448 |
+
Det skal være farverne #016a75
|
449 |
+
Icon farver skal være 016a75
|
450 |
+
Icon farver skal være #016a75
|
451 |
+
Få billederne til at passe med titlerne
|
452 |
+
Udskift billeder sådan de passer til tekst indhold
|