diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx
index b359a7b..b5985c5 100644
--- a/src/components/Navbar.tsx
+++ b/src/components/Navbar.tsx
@@ -24,9 +24,9 @@ export default function Navbar() {
-
+
);
diff --git a/src/index.css b/src/index.css
index f278ac6..5960035 100644
--- a/src/index.css
+++ b/src/index.css
@@ -1,14 +1,21 @@
@import "tailwindcss";
:root {
- --background-color: var(--color-pink-900);
+ --bg: #f9f6ff;
+ --container: #ede6fa;
+ --card: #d6c6ff;
+ --text: #1e102e;
+ --text-muted: #4a375e;
+ --accent: #7f39fb;
+ --accent-gradient: linear-gradient(135deg, #7f39fb, #d500f9);
+
font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
line-height: 1.5;
font-weight: 400;
color-scheme: light dark;
- color: rgba(255, 255, 255, 0.87);
- background-color: var(--background-color);
+ color: var(--text);
+ background-color: var(--bg);
font-synthesis: none;
text-rendering: optimizeLegibility;
@@ -16,31 +23,47 @@
-moz-osx-font-smoothing: grayscale;
}
+[data-theme="dark"] {
+ --bg: #1e102e;
+ --container: #3a1a5d;
+ --card: #5c2d91;
+ --text: #f5e6ff;
+ --text-muted: #c9a4e3;
+ --accent: #bb86fc;
+ --accent-gradient: linear-gradient(135deg, #7f39fb, #d500f9);
+}
+
.border-background {
- border-color: var(--background-color);
+ border-color: var(--accent);
}
.page {
- background-color: var(--background-color);
- color: black;
+ background-color: var(--bg);
+ color: var(--text);
+ transition: background-color 0.3s, color 0.3s;
}
.pageTitle {
- color: var(--color-fuchsia-50);
+ color: var(--accent);
+ font-weight: bold;
+ font-size: 1.25em;
}
.dreamPanel {
- background-color: var(--color-violet-400);
- color: var(--color-fuchsia-200);
+ background-color: var(--card);
+ border-radius: 10px;
+ padding: 1em;
+ color: var(--text);
+ border: 1px solid var(--accent);
}
a {
font-weight: 500;
- color: #646cff;
+ color: var(--accent);
text-decoration: inherit;
}
a:hover {
- color: #535bf2;
+ color: var(--text-muted);
}
body {
@@ -49,6 +72,9 @@ body {
place-items: center;
min-width: 320px;
min-height: 100vh;
+ background-color: var(--bg);
+ color: var(--text);
+ transition: background-color 0.3s, color 0.3s;
}
h1 {
@@ -63,27 +89,87 @@ button {
font-size: 1em;
font-weight: 500;
font-family: inherit;
- background-color: #1a1a1a;
+ background-color: var(--container);
+ color: var(--text);
cursor: pointer;
- transition: border-color 0.25s;
+ transition: border-color 0.25s, background-color 0.3s, color 0.3s;
}
button:hover {
- border-color: #646cff;
+ border-color: var(--accent);
}
button:focus,
button:focus-visible {
outline: 4px auto -webkit-focus-ring-color;
}
-@media (prefers-color-scheme: light) {
- :root {
- color: #213547;
- --background-color: fuchsia;
- }
- a:hover {
- color: #747bff;
- }
- button {
- background-color: #f9f9f9;
- }
+.feed-container {
+ background-color: var(--container);
+ padding: 1em;
+}
+
+.dream-card {
+ background-color: var(--card);
+ border-radius: 10px;
+ padding: 1em;
+ color: var(--text);
+ border: 1px solid var(--accent);
+}
+
+.dream-card .title {
+ color: var(--accent);
+ font-weight: bold;
+ font-size: 1.25em;
+}
+
+.dream-card .timestamp {
+ color: var(--text-muted);
+ font-size: 0.85em;
+}
+
+.microphone-button {
+ background: var(--accent-gradient);
+ color: white;
+ border-radius: 50%;
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
+}
+
+/* Theme Toggle Styles */
+.theme-toggle {
+ position: absolute;
+ top: 1rem;
+ right: 1rem;
+ display: inline-block;
+}
+
+.theme-toggle input {
+ display: none;
+}
+
+.theme-toggle .slider {
+ width: 40px;
+ height: 20px;
+ background-color: #bbb;
+ border-radius: 20px;
+ cursor: pointer;
+ position: relative;
+}
+
+.theme-toggle .slider::before {
+ content: "";
+ width: 16px;
+ height: 16px;
+ position: absolute;
+ left: 2px;
+ top: 2px;
+ background: white;
+ border-radius: 50%;
+ transition: transform 0.3s;
+}
+
+.theme-toggle input:checked + .slider::before {
+ transform: translateX(20px);
+}
+
+.theme-toggle input:checked + .slider {
+ background-color: var(--accent);
}
diff --git a/src/pages/Feed.tsx b/src/pages/Feed.tsx
index 9f8f608..115dd29 100644
--- a/src/pages/Feed.tsx
+++ b/src/pages/Feed.tsx
@@ -8,35 +8,36 @@ export default function Feed() {
const sortedDreams = [...mockDreams].sort((a, b) => b.date.getTime() - a.date.getTime());
return (
-
Feed
-
- {sortedDreams.map((dream: Dream) => {
- const user: User | undefined = MockUserMap.get(dream.userId);
- return (
- -
-

-
{user?.name} hat geträumt:
-
-
- {dream.title}
-
- {dream.input}
-
- {dream.date.toLocaleDateString('de-DE', {
- day: '2-digit',
- month: '2-digit',
- year: 'numeric',
- hour: '2-digit',
- minute: '2-digit',
- })}
-
-
- )
- })}
-
+
+
+ {sortedDreams.map((dream: Dream) => {
+ const user: User | undefined = MockUserMap.get(dream.userId);
+ return (
+ -
+

+
{user?.name} hat geträumt:
+
+
+ {dream.title}
+
+ {dream.input}
+
+ {dream.date.toLocaleDateString('de-DE', {
+ day: '2-digit',
+ month: '2-digit',
+ year: 'numeric',
+ hour: '2-digit',
+ minute: '2-digit',
+ })}
+
+
+ )
+ })}
+
+
);
}