-
+
{t('high')}
{highScore.toString().padStart(3, '0')}
-
+
{t('score')}
@@ -508,9 +508,9 @@ export function InteractiveGame() {
e.stopPropagation();
exitGame();
}}
- className="-mr-1 p-1.5 transition-colors hover:text-[#ff005b] md:-mr-2 md:p-2"
+ className="-mr-1 p-2 transition-colors hover:text-[#ff005b] md:-mr-2"
>
-
+
diff --git a/frontend/components/about/PricingSection.tsx b/frontend/components/about/PricingSection.tsx
index ace570f8..974ab81f 100644
--- a/frontend/components/about/PricingSection.tsx
+++ b/frontend/components/about/PricingSection.tsx
@@ -1,6 +1,6 @@
'use client';
import { motion } from 'framer-motion';
-import { ArrowRight, Check, Heart, Server, Sparkles, X } from 'lucide-react';
+import { ArrowRight, BadgeDollarSign, Check, Heart, Server, Sparkles, X } from 'lucide-react';
import Link from 'next/link';
import { useTranslations } from 'next-intl';
import { useState } from 'react';
@@ -46,7 +46,7 @@ export function PricingSection({ sponsors = [] }: PricingSectionProps) {
aria-hidden="true"
/>
-
+
@@ -59,7 +59,7 @@ export function PricingSection({ sponsors = [] }: PricingSectionProps) {
{t('heading')}
-
+
-
+
{t('disclaimer')}
diff --git a/frontend/components/about/SponsorsWall.tsx b/frontend/components/about/SponsorsWall.tsx
index 5ea51bd9..c4b20194 100644
--- a/frontend/components/about/SponsorsWall.tsx
+++ b/frontend/components/about/SponsorsWall.tsx
@@ -1,7 +1,7 @@
'use client';
import { motion } from 'framer-motion';
-import { Crown, Plus, Sparkles } from 'lucide-react';
+import { Crown, Heart, Plus } from 'lucide-react';
import Image from 'next/image';
import Link from 'next/link';
import { useTranslations } from 'next-intl';
@@ -23,7 +23,7 @@ export function SponsorsWall({ sponsors = [] }: SponsorsWallProps) {
return (
diff --git a/frontend/components/theme/ThemeToggle.tsx b/frontend/components/theme/ThemeToggle.tsx
index c97e6ac8..43cef244 100644
--- a/frontend/components/theme/ThemeToggle.tsx
+++ b/frontend/components/theme/ThemeToggle.tsx
@@ -1,6 +1,6 @@
'use client';
-import { motion } from 'framer-motion';
+import { AnimatePresence, motion } from 'framer-motion';
import { Monitor, Moon, Sun } from 'lucide-react';
import { useTranslations } from 'next-intl';
import { useTheme } from 'next-themes';
@@ -45,13 +45,15 @@ export function ThemeToggle() {
aria-label={t(labelKey)}
className="theme-toggle-btn relative flex h-7 w-7 items-center justify-center rounded-full"
>
- {theme === value && (
-
- )}
+
+ {theme === value && (
+
+ )}
+
))}
diff --git a/frontend/components/ui/github-star-button.tsx b/frontend/components/ui/github-star-button.tsx
deleted file mode 100644
index e69de29b..00000000
diff --git a/frontend/data/about.ts b/frontend/data/about.ts
index af4b9785..2f2c3f8c 100644
--- a/frontend/data/about.ts
+++ b/frontend/data/about.ts
@@ -60,7 +60,7 @@ export const TOPICS = [
color:
'group-hover:border-[#F05032]/50 dark:group-hover:border-[#F05032]/50 group-hover:bg-[#F05032]/10',
glow: 'bg-[#F05032]',
- href: '/q&a',
+ href: '/q&a/?category=git',
},
{
id: 'html',
diff --git a/frontend/lib/about/stats.ts b/frontend/lib/about/stats.ts
index 3bf3a171..c42e764e 100644
--- a/frontend/lib/about/stats.ts
+++ b/frontend/lib/about/stats.ts
@@ -43,7 +43,7 @@ export const getPlatformStats = unstable_cache(
const linkedinCount = process.env.LINKEDIN_FOLLOWER_COUNT
? parseInt(process.env.LINKEDIN_FOLLOWER_COUNT)
- : 1342;
+ : 1400;
let totalUsers = 243;
let solvedTests = 1890;
diff --git a/frontend/messages/en.json b/frontend/messages/en.json
index eb73aff6..4ae6b0ac 100644
--- a/frontend/messages/en.json
+++ b/frontend/messages/en.json
@@ -775,7 +775,7 @@
"disclaimer": "*No developers were harmed in the making of this pricing table. Only caffeine levels were impacted."
},
"sponsors": {
- "badge": "Latest Contributors",
+ "badge": "Open Source Heroes",
"emptySlot": "You?",
"yourSpot": "Your Spot",
"joinClub": "Join the club",
diff --git a/frontend/messages/pl.json b/frontend/messages/pl.json
index 255327cb..a995ed5b 100644
--- a/frontend/messages/pl.json
+++ b/frontend/messages/pl.json
@@ -802,7 +802,7 @@
"disclaimer": "*Żaden developer nie ucierpiał podczas tworzenia tej tabeli cenowej. Ucierpiał tylko poziom kofeiny."
},
"sponsors": {
- "badge": "Ostatni kontrybutorzy",
+ "badge": "Bohaterowie Open Source",
"emptySlot": "Ty?",
"yourSpot": "Twoje miejsce",
"joinClub": "Dołącz do klubu",
diff --git a/frontend/messages/uk.json b/frontend/messages/uk.json
index 85047ccd..cb28df50 100644
--- a/frontend/messages/uk.json
+++ b/frontend/messages/uk.json
@@ -778,7 +778,7 @@
"disclaimer": "*Жоден розробник не постраждав під час створення цієї таблиці. Постраждав лише рівень кофеїну."
},
"sponsors": {
- "badge": "Останні контриб'ютори",
+ "badge": "Герої Open Source",
"emptySlot": "Ти?",
"yourSpot": "Твоє місце",
"joinClub": "Приєднатись до клубу",
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 9e78de91..01ec0a22 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -9737,6 +9737,17 @@
}
}
},
+ "node_modules/next-intl/node_modules/@swc/helpers": {
+ "version": "0.5.18",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.18.tgz",
+ "integrity": "sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
"node_modules/next-themes": {
"version": "0.4.6",
"resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz",