+
+
Suggest a roadmap
diff --git a/src/app/(app)/providers.tsx b/src/app/(app)/providers.tsx
index 86951d210..9e1237b37 100644
--- a/src/app/(app)/providers.tsx
+++ b/src/app/(app)/providers.tsx
@@ -7,10 +7,14 @@ export default function RootProvider({ children }: { children: React.ReactNode }
return (
{children}
diff --git a/src/app/globals.css b/src/app/globals.css
index 0b6c240fe..563101cb2 100644
--- a/src/app/globals.css
+++ b/src/app/globals.css
@@ -255,7 +255,7 @@ html {
:root {
--background: 0 0% 100%;
--foreground: 240 10% 3.9%;
- --card: 0 0% 5% 1;
+ --card: 0 0% 100%;
--card-foreground: 240 10% 3.9%;
--popover: 0 0% 100%;
--popover-foreground: 240 10% 3.9%;
@@ -266,7 +266,7 @@ html {
--muted: 240 4.8% 95.9%;
--muted-foreground: 240 3.8% 46.1%;
--accent: 237 59.3% 60%;
- --accent-foreground: 240 5.9% 10%;
+ --accent-foreground: 0 0% 98%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 0 0% 98%;
--border: 240 5.9% 90%;
@@ -278,13 +278,13 @@ html {
--chart-4: 43 74% 66%;
--chart-5: 27 87% 67%;
--radius: 0.5rem;
- --sidebar-background: 0 0% 7%;
- --sidebar-foreground: 240 4.8% 95.9%;
+ --sidebar-background: 0 0% 100%;
+ --sidebar-foreground: 240 10% 3.9%;
--sidebar-primary: 224.3 76.3% 48%;
--sidebar-primary-foreground: 0 0% 100%;
- --sidebar-accent: 240 3.7% 15.9%;
- --sidebar-accent-foreground: 240 4.8% 95.9%;
- --sidebar-border: 240 3.7% 15.9%;
+ --sidebar-accent: 240 4.8% 95.9%;
+ --sidebar-accent-foreground: 240 5.9% 10%;
+ --sidebar-border: 240 5.9% 90%;
--sidebar-ring: 217.2 91.2% 59.8%;
--mantine-color-text: var(--foreground) !important;
--mantine-color-red-6: var(--foreground) !important;
@@ -294,6 +294,36 @@ html {
--mantine-primary-color-light-hover: rgba(94, 102, 214, 0.12) !important;
--mantine-color-gray-0: var(--background) !important;
}
+
+ .dark {
+ --background: 240 10% 3.9%;
+ --foreground: 0 0% 98%;
+ --card: 0 0% 5% 1;
+ --card-foreground: 0 0% 98%;
+ --popover: 240 10% 3.9%;
+ --popover-foreground: 0 0% 98%;
+ --primary: 0 0% 98%;
+ --primary-foreground: 240 5.9% 10%;
+ --secondary: 240 3.7% 15.9%;
+ --secondary-foreground: 0 0% 98%;
+ --muted: 240 3.7% 15.9%;
+ --muted-foreground: 240 5% 64.9%;
+ --accent: 237 59.3% 60%;
+ --accent-foreground: 0 0% 98%;
+ --destructive: 0 62.8% 30.6%;
+ --destructive-foreground: 0 0% 98%;
+ --border: 240 3.7% 15.9%;
+ --input: 240 3.7% 15.9%;
+ --ring: 240 4.9% 83.9%;
+ --sidebar-background: 0 0% 7%;
+ --sidebar-foreground: 240 4.8% 95.9%;
+ --sidebar-primary: 224.3 76.3% 48%;
+ --sidebar-primary-foreground: 0 0% 100%;
+ --sidebar-accent: 240 3.7% 15.9%;
+ --sidebar-accent-foreground: 240 4.8% 95.9%;
+ --sidebar-border: 240 3.7% 15.9%;
+ --sidebar-ring: 217.2 91.2% 59.8%;
+ }
}
@layer base {
@@ -301,7 +331,7 @@ html {
@apply border-border;
}
body {
- @apply bg-background text-foreground;
+ @apply bg-white dark:bg-background text-foreground;
}
h1,
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 21eed0993..292a82424 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -3,17 +3,24 @@ import { OnestFont } from './styles/fonts/font';
import { UbuntuFont } from './styles/fonts/font';
import { SatoshiFont } from './styles/fonts/font';
import { InterFont } from './styles/fonts/font';
+import { ThemeProvider } from '@/components/theme-provider';
import './globals.css';
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
-
+
- {children}
+
+ {children}
+
diff --git a/src/components/app/dashboard/all-questions-bento-box.tsx b/src/components/app/dashboard/all-questions-bento-box.tsx
index 64974b947..e1c1a9480 100644
--- a/src/components/app/dashboard/all-questions-bento-box.tsx
+++ b/src/components/app/dashboard/all-questions-bento-box.tsx
@@ -42,15 +42,20 @@ export default function AllQuestionsDashboardBentoBox() {
return (
-
-
+
+
View all Questions
-
+
{/* Scrolling content */}
{/* Bottom fade effect */}
-
+
);
diff --git a/src/components/app/dashboard/dashboard-bento-grid.tsx b/src/components/app/dashboard/dashboard-bento-grid.tsx
index fccb848bd..50409399d 100644
--- a/src/components/app/dashboard/dashboard-bento-grid.tsx
+++ b/src/components/app/dashboard/dashboard-bento-grid.tsx
@@ -19,19 +19,19 @@ export default async function DashboardBentoGrid() {
},
{
header:
,
- className: 'col-span-2 text-white lg:min-h-auto lg:h-[370px]',
+ className: 'col-span-2 text-black dark:text-white lg:min-h-auto lg:h-[370px]',
href: '/questions',
padded: false,
},
{
header:
,
- className: 'col-span-2 text-white lg:h-[370px]',
+ className: 'col-span-2 text-black dark:text-white lg:h-[370px]',
padded: false,
},
{
header:
,
className:
- 'h-full text-white justify-center min-h-[18rem] lg:h-[370px] col-span-2 lg:col-span-1',
+ 'h-full text-black dark:text-white justify-center min-h-[18rem] lg:h-[370px] col-span-2 lg:col-span-1',
href: studyPath ? `/roadmaps/${studyPath.studyPath.slug}` : '/roadmaps',
padded: false,
gradientBg: true,
diff --git a/src/components/app/dashboard/dashboard-question-card.tsx b/src/components/app/dashboard/dashboard-question-card.tsx
index 3abbf752d..4adede561 100644
--- a/src/components/app/dashboard/dashboard-question-card.tsx
+++ b/src/components/app/dashboard/dashboard-question-card.tsx
@@ -13,16 +13,16 @@ export default function DashboardQuestionCard(opts: DashboardQuestionCardProps)
const { name, correct } = opts.question;
return (
-
+
-
+
{correct ? (
-
+
) : (
-
+
)}
-
{name}
+
{name}
);
diff --git a/src/components/app/dashboard/next-question-bento-box.tsx b/src/components/app/dashboard/next-question-bento-box.tsx
index ad9c6d9bd..7d511b5f4 100644
--- a/src/components/app/dashboard/next-question-bento-box.tsx
+++ b/src/components/app/dashboard/next-question-bento-box.tsx
@@ -41,8 +41,8 @@ export default async function NextQuestionBentoBox() {
<>
-
Your Next Challenge Awaits
-
+
Your Next Challenge Awaits
+
Take just 2 minutes to answer your next question and keep your streak alive!
@@ -52,7 +52,7 @@ export default async function NextQuestionBentoBox() {
-
Topics to Explore:
+
Topics to Explore:
@@ -61,8 +61,11 @@ export default async function NextQuestionBentoBox() {
-
+
-
Personalised Progression
-
+
Personalised Progression
+
Your very own, personalised progression framework to help you grow as a developer.
diff --git a/src/components/app/navigation/sidebar-dropdown.tsx b/src/components/app/navigation/sidebar-dropdown.tsx
index 474805cce..7c0a6e580 100644
--- a/src/components/app/navigation/sidebar-dropdown.tsx
+++ b/src/components/app/navigation/sidebar-dropdown.tsx
@@ -18,6 +18,7 @@ import {
} from '@/components/ui/dropdown-menu';
import LogoutButton from '@/components/auth/logout';
import ProfilePicture from '@/components/ui/profile-picture';
+import { ThemeToggle } from '@/components/theme-toggle';
import type { UserRecord } from '@/types/User';
import { getUserDisplayName } from '@/utils/user';
@@ -38,12 +39,12 @@ export default function SidebarAreaComponent(opts: {
const { user } = opts;
return (
-
+
-
+
-
+
{user && getUserDisplayName(user)}
-
+
{capitalise(user?.userLevel || 'Anonymous')}
-
+
Upgrade
@@ -84,6 +85,16 @@ export default function SidebarAreaComponent(opts: {
GitHub
+
+
+
{user && (
diff --git a/src/components/app/navigation/sidebar-footer.tsx b/src/components/app/navigation/sidebar-footer.tsx
index 3c0a0eb48..98222fdf6 100644
--- a/src/components/app/navigation/sidebar-footer.tsx
+++ b/src/components/app/navigation/sidebar-footer.tsx
@@ -14,7 +14,7 @@ export default function SidebarFooter({ user }: SidebarFooterProps) {
const pathname = usePathname();
return (
-
+
{!user && (