-
New to Open Source?
-
- Check out our comprehensive guide to learn how to make your
- first contribution.
-
-
setCurrentView("guide")}
- className="inline-flex items-center gap-2 px-6 py-3 bg-white text-green-600 font-semibold rounded-lg hover:bg-green-50 transition-colors shadow-lg"
- >
- View Contribution Guide
-
+
+
+ {/* --- Hero: High Authority --- */}
+ {/* --- Hero Section with Animated Mesh Gradient --- */}
+
+
+
+
+
+
+
+ Experience Excellence
+
+
+ The Events
+ Pipeline
+
+
+ Where theory meets deployment. Participate in world-class technical events curated for the elite engineering community.
+
+
+
+ {/* Live Card Shortcut */}
+
+
+
+
+
+
Happening Now
+
System Design Interview Masterclass
+
+
+
+
Ajay Dhangar
+
Lead Architect
+
+
+
+ Join Live Session
+
+
+
+
+
+
+
+ {/* --- Advanced Control Bar --- */}
+
+
+
+ {/* Tab Switcher */}
+
+ {['all', 'live', 'upcoming', 'past'].map((tab) => (
+ setActiveTab(tab as any)}
+ className={`flex-1 md:flex-none px-6 py-2 rounded-xl text-[10px] font-black uppercase tracking-widest transition-all ${
+ activeTab === tab
+ ? 'bg-white dark:bg-slate-700 shadow-md'
+ : 'opacity-40 hover:opacity-100'
+ }`}
+ style={{ color: activeTab === tab ? 'var(--ifm-color-primary)' : 'inherit' }}
+ >
+ {tab}
+
+ ))}
+
+
+ {/* Search Input */}
+
+
+ setSearchQuery(e.target.value)}
+ />
- >
- ) : (
- setCurrentView("events")} />
- )}
+
+
+ {/* --- Dynamic Bento Grid --- */}
+
+ {filteredEvents.length > 0 ? (
+
+ {filteredEvents.map((event, i) => (
+
+ {/* Image Layer */}
+
+
+
+
+
+ {/* Icon Badge Layer */}
+
+
+ {event.category === 'Hackathon' && }
+ {event.category === 'Workshop' && }
+ {event.category === 'Webinar' && }
+ {event.category}
+
+
+
+ {/* Content Layer */}
+
+
+
+ {event.status === 'live' && (
+
+ Live Now
+
+ )}
+ {event.date}
+
+
+
+ {event.title}
+
+
+
+
+
+
+ ))}
+
+ ) : (
+
+
No events found
+
+ )}
+
+
+ {/* --- Footer CTA: Speaker Program --- */}
+
+
+
+
+ Have a Vision?
+
+
+ We're always scouting for elite engineers to host workshops and lead community hackathons.
+
+
+ Apply as Speaker
+
+
+
+
+
+
+
);
-}
+}
\ No newline at end of file
diff --git a/src/pages/mentoring.tsx b/src/pages/mentoring.tsx
new file mode 100644
index 000000000..e394e3d29
--- /dev/null
+++ b/src/pages/mentoring.tsx
@@ -0,0 +1,153 @@
+import Layout from "@theme/Layout";
+import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
+import {
+ Rocket,
+ Target,
+ Users2,
+ Zap,
+ ChevronRight,
+ GraduationCap,
+ Briefcase,
+ LineChart,
+ Quote
+} from 'lucide-react';
+
+export default function Mentoring() {
+ const { siteConfig } = useDocusaurusContext();
+
+ const tracks = [
+ {
+ title: "Frontend Excellence",
+ icon:
,
+ skills: ["React/Next.js", "Tailwind CSS", "Browser Engines", "Performance"],
+ color: "from-yellow-500/10 to-orange-500/10"
+ },
+ {
+ title: "Backend Architecture",
+ icon:
,
+ skills: ["Node.js", "System Design", "Microservices", "Databases"],
+ color: "from-blue-500/10 to-indigo-500/10"
+ },
+ {
+ title: "Career Strategy",
+ icon:
,
+ skills: ["Resume Review", "Mock Interviews", "Salary Negotiation", "Personal Branding"],
+ color: "from-emerald-500/10 to-teal-500/10"
+ }
+ ];
+
+ return (
+
+
+
+ {/* --- Hero Section with Animated Gradient --- */}
+
+
+
+
+
+ Exclusive Community Mentoring
+
+
+ Don’t just learn.
+ Level Up.
+
+
+ Bridge the gap between tutorials and the industry. Get matched with
+ experienced developers who will guide you through real-world projects
+ and career hurdles.
+
+
+
+ Apply for Mentorship
+
+
+ Become a Mentor
+
+
+
+
+
+ {/* --- The Mentoring Loop (Process) --- */}
+
+
+
+ {[
+ { title: "Personalized Roadmap", desc: "No generic paths. We analyze your current skills and build a custom growth plan.", icon:
},
+ { title: "Weekly Sync-ups", desc: "One-on-one sessions to review code, unblock technical issues, and plan your next move.", icon:
},
+ { title: "Career Acceleration", desc: "Insider tips on high-growth companies and direct referrals for top-performing mentees.", icon:
},
+ ].map((item, i) => (
+
+
{item.icon}
+
{item.title}
+
{item.desc}
+
+ ))}
+
+
+
+
+ {/* --- Mentorship Tracks --- */}
+
+
+
Choose Your Track
+
Specialized guidance for modern engineering roles.
+
+
+
+ {tracks.map((track, i) => (
+
+
+ {track.icon}
+
+
{track.title}
+
+ {track.skills.map((skill, si) => (
+
+
{skill}
+
+ ))}
+
+
+ ))}
+
+
+
+ {/* --- Industry Testimonial --- */}
+
+
+
+
+ "The mentorship program at CodeHarborHub didn't just teach me how to code—it taught me how to think like a Senior Engineer. I landed my dream role at a Fortune 500 company within 3 months."
+
+
+
+
+
Sarah Jenkins
+
Software Engineer @ Microsoft
+
+
+
+
+
+ {/* --- FAQ / CTA Final --- */}
+
+ Ready to level up?
+ Applications are currently open for the Spring 2026 cohort.
+
+
+ Submit My Application
+
+
+ Frequently Asked Questions
+
+
+
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/src/pages/playground.tsx b/src/pages/playground.tsx
new file mode 100644
index 000000000..0c5aa48bb
--- /dev/null
+++ b/src/pages/playground.tsx
@@ -0,0 +1,147 @@
+import React, { useState } from "react";
+import Layout from "@theme/Layout";
+import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
+import { Sandpack } from "@codesandbox/sandpack-react";
+import {
+ Code2,
+ Sparkles,
+ Monitor,
+ Cpu,
+ Share2,
+ Wand2,
+ Layers
+} from "lucide-react";
+
+export default function Playground() {
+ const { siteConfig } = useDocusaurusContext();
+ const [template, setTemplate] = useState<"react" | "vanilla" | "vue">("react");
+
+ const templates = {
+ react: {
+ title: "React.js",
+ icon:
,
+ color: "text-cyan-500",
+ },
+ vue: {
+ title: "Vue.js",
+ icon:
,
+ color: "text-emerald-500",
+ },
+ vanilla: {
+ title: "Vanilla JS",
+ icon:
,
+ color: "text-yellow-500",
+ }
+ };
+
+ return (
+
+
+
+ {/* --- Header Section --- */}
+
+
+
+
+ Live Environment
+
+
+ Interactive Playground
+
+
+ Experiment with modern web technologies in a secure, high-performance sandbox.
+ Zero setup required.
+
+
+
+ {/* Template Selector */}
+
+ {(Object.keys(templates) as Array).map((t) => (
+ setTemplate(t)}
+ className={`flex items-center gap-2 px-5 py-2.5 rounded-xl font-bold text-sm transition-all ${
+ template === t
+ ? "bg-white dark:bg-slate-800 text-slate-900 dark:text-white shadow-sm ring-1 ring-slate-200 dark:ring-slate-700"
+ : "text-slate-500 hover:text-slate-700 dark:hover:text-slate-300"
+ }`}
+ >
+ {templates[t].icon}
+ {templates[t].title}
+
+ ))}
+
+
+
+
+ {/* --- Editor Section --- */}
+
+
+
+
+ {/* Fake Window Controls */}
+
+
+
+
+ Preview Mode: Active
+
+
+
+
+
+
+
+ {/* Sandpack Integration */}
+
+
+
+
+
+ {/* Feature Bento Grid Below Editor */}
+
+
+
+
Live Reload
+
See your changes instantly as you type with HMR (Hot Module Replacement) technology.
+
+
+
+
Shareable Links
+
Export your code snippets to a unique URL to collaborate with the CodeHarborHub community.
+
+
+
+
NPM Support
+
Add any package from NPM to test complex components or libraries right in the browser.
+
+
+
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/src/pages/roadmaps.tsx b/src/pages/roadmaps.tsx
new file mode 100644
index 000000000..923cf175b
--- /dev/null
+++ b/src/pages/roadmaps.tsx
@@ -0,0 +1,220 @@
+import Layout from "@theme/Layout";
+import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
+import {
+ Map,
+ ChevronRight,
+ Layers,
+ Smartphone,
+ Terminal,
+ Globe,
+ CheckCircle,
+ Clock,
+ ArrowUpRight,
+ Sparkles,
+} from "lucide-react";
+
+export default function Roadmaps() {
+ const { siteConfig } = useDocusaurusContext();
+
+ const roadmapCards = [
+ {
+ title: "Frontend Developer",
+ level: "Beginner to Pro",
+ duration: "6 Months",
+ icon:
,
+ topics: [
+ "HTML/CSS",
+ "JavaScript",
+ "React",
+ "State Management",
+ "Deployment",
+ ],
+ color: "blue",
+ },
+ {
+ title: "Backend Engineer",
+ level: "Intermediate",
+ duration: "8 Months",
+ icon:
,
+ topics: ["Node.js", "SQL & NoSQL", "System Design", "APIs", "Security"],
+ color: "emerald",
+ },
+ {
+ title: "Full Stack Master",
+ level: "Advanced",
+ duration: "12 Months",
+ icon:
,
+ topics: ["Next.js", "PostgreSQL", "Docker", "CI/CD", "AWS/Vercel"],
+ color: "purple",
+ },
+ {
+ title: "Mobile App Dev",
+ level: "Beginner",
+ duration: "5 Months",
+ icon:
,
+ topics: ["React Native", "Expo", "Mobile UI", "App Store Logic"],
+ color: "rose",
+ },
+ ];
+
+ return (
+
+
+ {/* --- Hero Header --- */}
+
+
+
+
+ Technical Career Paths
+
+
+ Your Path to Success in
+ Tech
+
+
+ Tired of tutorial hell? Follow our curated, community-validated
+ roadmaps to go from your first line of code to a job-ready
+ engineer.
+
+
+
+
+ {/* --- Roadmap Grid --- */}
+
+
+ {roadmapCards.map((path, i) => (
+
+ {/* Background Accent */}
+
+
+
+
+ {path.icon}
+
+
+
+ {path.duration}
+
+
+ {path.level}
+
+
+
+
+
+ {path.title}
+
+
+
+ {path.topics.map((topic, ti) => (
+
+ {" "}
+ {topic}
+
+ ))}
+
+
+
+ View Full Roadmap
+
+
+ ))}
+
+
+
+ {/* --- Why Roadmaps Matter (Visual Info) --- */}
+
+
+
+
+
+ Stop Learning Randomly.
+
+
+ {[
+ {
+ title: "Structured Curriculum",
+ desc: "Every topic is placed in logical order to ensure you have the prerequisites for the next stage.",
+ },
+ {
+ title: "Industry Validated",
+ desc: "Our roadmaps are updated for 2026 standards, focusing only on skills that get you hired.",
+ },
+ {
+ title: "Interactive Tracking",
+ desc: "Mark your progress as you go and stay motivated with visual completion stats.",
+ },
+ ].map((feature, i) => (
+
+
+ {i + 1}
+
+
+
+ {feature.title}
+
+
+ {feature.desc}
+
+
+
+ ))}
+
+
+
+
+
+
+
+
+
+ roadmap_visualization.v2
+
+
+
+
+
+ Interactive Visualization Component Loading Stage
+ 04...
+
+
+
+
+
+
+
+ {/* --- Call to Action --- */}
+
+
+
+
+
+
+ Can't decide where to start?
+
+
+ Take our 2-minute "Career Quiz" to find the roadmap that best
+ matches your goals and personality.
+
+
+ Take the Quiz
+
+
+
+
+
+ );
+}
diff --git a/src/theme/DocItem/DocContent.js b/src/theme/DocItem/DocContent.js
deleted file mode 100644
index 1fa177d21..000000000
--- a/src/theme/DocItem/DocContent.js
+++ /dev/null
@@ -1,113 +0,0 @@
-import React from "react";
-import Head from "@docusaurus/Head";
-import MDXComponents from "../MDXComponents";
-import { MDXProvider } from "@mdx-js/react";
-import {
- useDoc,
- useDocsVersion,
-} from "@docusaurus/plugin-content-docs/client";
-import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import DocPaginator from "@theme/DocPaginator";
-import DocVersionBanner from "@theme/DocVersionBanner";
-import TOC from "@theme/TOC";
-import clsx from "clsx";
-import styles from "./styles.module.css";
-import DocsInfo from "./DocsInfo";
-import DocsRating from "./DocsRating";
-
-export const DocContent = ({ Content, contentRef, readingTimeInWords }) => {
- const { siteConfig } = useDocusaurusContext();
- const {
- metadata,
- frontMatter: {
- image: metaImage,
- keywords,
- hide_title: hideTitle,
- hide_table_of_contents: hideTableOfContents,
- },
- toc,
- } = useDoc();
-
- const { url: siteUrl } = siteConfig;
- const versionMetadata = useDocsVersion();
- const {
- description,
- title,
- permalink,
- editUrl,
- lastUpdatedAt,
- lastUpdatedBy,
- unversionedId,
- } = metadata;
-
- const metaImageUrl = useBaseUrl(metaImage, {
- absolute: true,
- });
-
- return (
- <>
-
- {description &&
}
- {description && (
-
- )}
- {keywords && keywords.length && (
-
- )}
- {metaImage &&
}
- {metaImage &&
}
- {metaImage && (
-
- )}
- {permalink &&
}
- {permalink &&
}
-
-
-
-
- {/*
*/}
-
-
- {!hideTitle && (
-
- )}
- {(editUrl || lastUpdatedAt || lastUpdatedBy) && (
-
- )}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {!hideTableOfContents && toc && (
-
-
-
- )}
-
- >
- );
-};
\ No newline at end of file
diff --git a/src/theme/DocItem/DocsInfo.js b/src/theme/DocItem/DocsInfo.js
deleted file mode 100644
index 028aa56c8..000000000
--- a/src/theme/DocItem/DocsInfo.js
+++ /dev/null
@@ -1,89 +0,0 @@
-import React from "react";
-import { useLocation } from "react-router-dom";
-import {
- FiEdit3,
- FiPrinter,
- FiAlertCircle,
- FiClock,
- FiUser,
-} from "react-icons/fi";
-import styles from "./styles.module.css";
-import ShareButton from "./ShareButton";
-
-function DocsInfo({ docsPluginId, ...props }) {
- const location = useLocation();
- const openDocIssueURL =
- "https://github.com/codeharborhub/codeharborhub.github.io/issues/new?assignees=&labels=&template=---doc-error-report.md&title=Issue with codeharborhub.github.io" +
- `${location.pathname}`;
-
- return (
-
-
- {/* Left Section – Meta Info */}
- {(props.lastUpdatedAt || props.lastUpdatedBy) && (
-
- {props.lastUpdatedAt && (
-
-
-
- {new Date(props.lastUpdatedAt).toLocaleDateString()}
-
-
- )}
- {props.readingTimeInWords && (
-
- ⏱ {props.readingTimeInWords}
-
- )}
- {props.lastUpdatedBy && (
-
-
- {props.lastUpdatedBy}
-
- )}
-
- )}
-
- {/* Right Section – Actions */}
-
- {props.editUrl && (
-
-
- Edit
-
- )}
-
-
window.print()}
- className={styles.actionBtn}
- aria-label="Print this page"
- >
-
- Print
-
-
- {openDocIssueURL && (
-
-
- Report
-
- )}
-
-
-
-
-
- );
-}
-
-export default DocsInfo;
\ No newline at end of file
diff --git a/src/theme/DocItem/DocsRating.js b/src/theme/DocItem/DocsRating.js
deleted file mode 100644
index 9925068b3..000000000
--- a/src/theme/DocItem/DocsRating.js
+++ /dev/null
@@ -1,82 +0,0 @@
-import React, { useState } from "react";
-import { useLocation } from "react-router-dom";
-import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment";
-// import { useColorMode } from "@docusaurus/theme-common";
-import { FiThumbsUp, FiThumbsDown } from "react-icons/fi";
-import styles from "./styles.module.css";
-
-const DocsRating = ({ label }) => {
- if (!ExecutionEnvironment.canUseDOM) return null;
-
- const location = useLocation();
- // const { colorMode } = useColorMode();
- const DiscordInviteURL = "https://discord.gg/8p9Z6jkVru";
- const openDocIssueURL =
- `https://github.com/codeharborhub/codeharborhub.github.io/issues/new?assignees=&labels=&template=---doc-error-report.md&title=Issue with codeharborhub.github.io${location.pathname}`;
- const docEnhancementURL =
- `https://github.com/codeharborhub/codeharborhub.github.io/issues/new?assignees=&labels=&template=---doc-site-enhancement-request.md&title=Doc enhancement request for codeharborhub.github.io${location.pathname}`;
-
- const [haveVoted, setHaveVoted] = useState(false);
- const [liked, setLiked] = useState(false);
-
- const giveFeedback = (value) => {
- if (window.ga) {
- window.ga("send", {
- hitType: "event",
- eventCategory: "button",
- eventAction: "feedback",
- eventLabel: label,
- eventValue: value,
- });
- }
- setLiked(value === 1);
- setHaveVoted(true);
- };
-
- return (
-
- {haveVoted ? (
- liked ? (
-
🎉 Thanks for letting us know!
- ) : (
-
- )
- ) : (
-
-
Was this topic helpful?
-
- giveFeedback(1)}
- aria-label="Yes"
- >
-
- Yes
-
- giveFeedback(0)}
- aria-label="No"
- >
-
- No
-
-
-
- )}
-
- );
-};
-
-export default DocsRating;
diff --git a/src/theme/DocItem/Layout.js b/src/theme/DocItem/Layout.js
deleted file mode 100644
index d20a731d0..000000000
--- a/src/theme/DocItem/Layout.js
+++ /dev/null
@@ -1,61 +0,0 @@
-//Swizzled this component to fix TOC sidebar not showing on small screens
-
-import React from 'react';
-import clsx from 'clsx';
-import {useWindowSize} from '@docusaurus/theme-common';
-import {useDoc} from '@docusaurus/plugin-content-docs/client';
-import DocItemPaginator from '@theme/DocItem/Paginator';
-import DocVersionBanner from '@theme/DocVersionBanner';
-import DocVersionBadge from '@theme/DocVersionBadge';
-import DocItemFooter from '@theme/DocItem/Footer';
-import DocItemTOCMobile from '@theme/DocItem/TOC/Mobile';
-import DocItemTOCDesktop from '@theme/DocItem/TOC/Desktop';
-import DocItemContent from '@theme/DocItem/Content';
-import DocBreadcrumbs from '@theme/DocBreadcrumbs';
-import Unlisted from '@theme/Unlisted';
-import styles from './styles.module.css';
-
-/**
- * Decide if the toc should be rendered, on mobile or desktop viewports
- */
-function useDocTOC() {
- const {frontMatter, toc} = useDoc();
- const windowSize = useWindowSize({ desktopBreakpoint: 1150 });
- const hidden = frontMatter.hide_table_of_contents;
- const canRender = !hidden && toc.length > 0;
- const mobile = canRender ?
: undefined;
- const desktop =
- canRender && (windowSize === 'desktop' || windowSize === 'ssr') ? (
-
- ) : undefined;
- return {
- hidden,
- mobile,
- desktop,
- };
-}
-export default function DocItemLayout({children}) {
- const docTOC = useDocTOC();
- const {
- metadata: {unlisted},
- } = useDoc();
- return (
-
-
- {unlisted &&
}
-
-
-
-
-
- {docTOC.mobile}
- {children}
-
-
-
-
-
- {docTOC.desktop &&
{docTOC.desktop}
}
-
- );
-}
\ No newline at end of file
diff --git a/src/theme/DocItem/ShareButton.js b/src/theme/DocItem/ShareButton.js
deleted file mode 100644
index d5882a1cb..000000000
--- a/src/theme/DocItem/ShareButton.js
+++ /dev/null
@@ -1,75 +0,0 @@
-import React from "react";
-import { useLocation } from "react-router-dom";
-import { useColorMode } from "@docusaurus/theme-common";
-import {
- FiShare2,
- FiTwitter,
- FiLinkedin,
- FiFacebook,
- FiMail,
-} from "react-icons/fi";
-import styles from "./shareButton.module.css";
-
-function ShareButton({ title }) {
- const location = useLocation();
- const { colorMode } = useColorMode();
- const baseUrl = "https://codeharborhub.github.io";
- const fullUrl = baseUrl + location.pathname;
-
- const shareLinks = [
- {
- name: "Twitter",
- url: `https://twitter.com/share?url=${fullUrl}&text=Check out this article on ${title}&hashtags=codeharborhub,opensource`,
- icon:
,
- color: "#1DA1F2",
- },
- {
- name: "LinkedIn",
- url: `https://www.linkedin.com/shareArticle?mini=true&url=${fullUrl}&source=CodeHarborHub`,
- icon:
,
- color: "#0A66C2",
- },
- {
- name: "Facebook",
- url: `https://www.facebook.com/sharer/sharer.php?u=${fullUrl}`,
- icon:
,
- color: "#1877F2",
- },
- {
- name: "Email",
- url: `mailto:?subject=Shared Article | ${title} | CodeHarborHub Docs&body=Check out this article on ${title}: ${fullUrl}`,
- icon:
,
- color: "#D44638",
- },
- ];
-
- return (
-
- );
-}
-
-export default ShareButton;
\ No newline at end of file
diff --git a/src/theme/DocItem/index.js b/src/theme/DocItem/index.js
deleted file mode 100644
index 7cfe71d63..000000000
--- a/src/theme/DocItem/index.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import React, { useEffect, useRef, useState } from "react";
-import readingTime from "reading-time/lib/reading-time";
-import { DocProvider } from "@docusaurus/plugin-content-docs/client";
-
-//Components
-import { DocContent } from "./DocContent";
-
-function DocItem(props) {
- const contentRef = useRef();
- const [readingTimeInWords, setReadingTimeInWords] = useState("");
-
- useEffect(() => {
- if (contentRef.current) {
- const readTime = readingTime(contentRef.current.innerText);
- setReadingTimeInWords(readTime.text);
- }
- }, [contentRef]);
- return (
-
-
-
- );
-}
-
-export default DocItem;
\ No newline at end of file
diff --git a/src/theme/DocItem/shareButton.module.css b/src/theme/DocItem/shareButton.module.css
deleted file mode 100644
index 013b5cf47..000000000
--- a/src/theme/DocItem/shareButton.module.css
+++ /dev/null
@@ -1,67 +0,0 @@
-.dropdown {
- position: relative;
- display: inline-block;
-}
-
-.trigger {
- display: flex;
- align-items: center;
- gap: 0.4rem;
- padding: 0.4rem 0.7rem;
- border: 1px solid var(--ifm-color-emphasis-200);
- border-radius: 6px;
- background: var(--ifm-background-surface-color);
- cursor: pointer;
- color: var(--ifm-font-color-base);
- transition: background 0.2s;
- font-size: 0.9rem;
-}
-
-.trigger:hover {
- background: var(--ifm-color-emphasis-100);
-}
-
-.shareIcon {
- font-size: 1rem;
-}
-
-.menu {
- display: none;
- position: absolute;
- top: 100%;
- right: 0;
- margin-top: 0.4rem;
- padding: 0.4rem 0;
- background: var(--ifm-background-surface-color);
- border: 1px solid var(--ifm-color-emphasis-200);
- border-radius: 6px;
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
- min-width: 160px;
- z-index: 20;
- list-style: none;
-}
-
-.dropdown:hover .menu {
- display: block;
-}
-
-.menuItem {
- display: flex;
- align-items: center;
- gap: 0.6rem;
- padding: 0.6rem 0.8rem;
- color: var(--ifm-font-color-base);
- text-decoration: none;
- transition: background 0.2s, color 0.2s;
- font-size: 0.9rem;
-}
-
-.menuItem:hover {
- background: var(--ifm-color-emphasis-100);
- color: var(--hover-color);
- text-decoration: none;
-}
-
-.icon {
- font-size: 1rem;
-}
diff --git a/src/theme/DocItem/styles.module.css b/src/theme/DocItem/styles.module.css
deleted file mode 100644
index 2864ff056..000000000
--- a/src/theme/DocItem/styles.module.css
+++ /dev/null
@@ -1,131 +0,0 @@
-.docTitle {
- font-size: 3rem;
- margin-bottom: -calc(var(--ifm-leading-desktop) * var(--ifm-leading));
- /* text-align: justify; */
-}
-
-.docsInfoWrapper {
- width: 100%;
- display: flex;
- justify-content: center;
-}
-
-.docsInfoContainer {
- width: 100%;
- padding: 1rem 0.2rem;
- display: flex;
- justify-content: space-between;
- align-items: center;
- flex-wrap: wrap;
- border-radius: 8px;
-}
-
-.metaInfo {
- display: flex;
- flex-wrap: wrap;
- gap: 0.75rem;
- color: var(--ifm-color-content-secondary);
- font-size: 0.9rem;
-}
-
-.metaItem {
- display: flex;
- align-items: center;
- gap: 0.4rem;
-}
-
-.actions {
- display: flex;
- align-items: center;
- gap: 0.8rem;
- margin-top: 0.6rem;
-}
-
-.actionBtn {
- display: inline-flex;
- align-items: center;
- gap: 0.35rem;
- padding: 0.4rem 0.75rem;
- border: 1px solid var(--ifm-color-emphasis-200);
- border-radius: 6px;
- background: var(--ifm-background-surface-color);
- font-size: 0.85rem;
- color: var(--ifm-font-color-base);
- text-decoration: none;
- cursor: pointer;
- transition: all 0.2s ease;
-}
-
-.actionBtn:hover {
- background: var(--ifm-color-primary);
- color: #fff;
- border-color: var(--ifm-color-primary);
-}
-
-.icon {
- font-size: 1rem;
- vertical-align: middle;
-}
-
-.docsRating {
- /* max-width: 600px; */
- text-align: center;
- font-family: var(--ifm-font-family-base);
-}
-
-.heading {
- font-size: 1.2rem;
- margin-bottom: 1rem;
-}
-
-.buttonGroup {
- display: flex;
- justify-content: center;
- gap: 1rem;
- flex-wrap: wrap;
-}
-
-.voteBtn {
- display: flex;
- align-items: center;
- gap: 0.5rem;
- background: var(--ifm-background-surface-color);
- border: 1px solid var(--ifm-color-emphasis-200);
- color: var(--ifm-font-color-base);
- padding: 0.6rem 1.2rem;
- border-radius: 6px;
- cursor: pointer;
- transition: background 0.2s, color 0.2s, border 0.2s;
- font-size: 0.95rem;
-}
-
-.voteBtn:hover {
- background: var(--ifm-color-emphasis-100);
- border-color: var(--ifm-color-primary);
- color: var(--ifm-color-primary);
-}
-
-.icon {
- font-size: 1.1rem;
-}
-
-.thankYou {
- font-size: 1.1rem;
- color: var(--ifm-color-success);
- font-weight: 500;
-}
-
-.feedbackLinks {
- text-align: left;
- margin-top: 0.5rem;
- line-height: 1.6;
-}
-
-.feedbackLinks a {
- color: var(--ifm-color-primary);
- text-decoration: none;
-}
-
-.feedbackLinks a:hover {
- text-decoration: underline;
-}