diff --git a/src/components/ourProjects.tsx b/src/components/ourProjects.tsx index a06078ee..4ccc41b0 100644 --- a/src/components/ourProjects.tsx +++ b/src/components/ourProjects.tsx @@ -6,8 +6,7 @@ import { motion } from "framer-motion"; import React from "react"; import { useSafeColorMode } from "../utils/useSafeColorMode"; // Mobile-specific overrides for very small screens (<768px and <320px) -import "./ourProjects.mobile.css"; -// Import projects data and types +import "./ourProjects.mobile.css";// Import projects data and types import projectsData from "../data/projects.json"; import type { ProjectsData, ProjectItem } from "../data/types"; @@ -15,7 +14,7 @@ import type { ProjectsData, ProjectItem } from "../data/types"; * Legacy interface for backward compatibility * @deprecated Use ProjectsData from types.ts instead */ -export interface OurProjectsData { +export interface Data { tag: string; title: string; description: string; @@ -29,12 +28,12 @@ export interface OurProjectsData { * Legacy props interface for backward compatibility * @deprecated Component now imports data directly */ -export interface OurProjectsProps { - OurProjectsData?: OurProjectsData; +export interface Props { + Data?: Data; } /** - * OurProjects Component + * Component * * Displays a showcase of RecodeHive projects with interactive previews. * Now uses data-driven approach with JSON configuration for better maintainability. @@ -48,8 +47,8 @@ export interface OurProjectsProps { * * @param props - Optional props for backward compatibility */ -const OurProjects: React.FC = ({ - OurProjectsData: legacyData, +const ShowcasePage: React.FC = ({ + Data: legacyData, }) => { const { colorMode, isDark } = useSafeColorMode(); @@ -211,7 +210,7 @@ const SelectComponent = ({
{/* Animated Mesh Background */}
@@ -288,7 +287,7 @@ const SelectComponent = ({ className="perspective-1000 relative z-10" >
{/* Holographic Overlay */} -
+
@@ -581,4 +580,4 @@ const SelectComponent = ({ ); }; -export default OurProjects; +export default ShowcasePage; diff --git a/src/pages/showcase/_components/ShowcaseCard/styles.module.css b/src/pages/showcase/_components/ShowcaseCard/styles.module.css index cad43431..d2617af5 100644 --- a/src/pages/showcase/_components/ShowcaseCard/styles.module.css +++ b/src/pages/showcase/_components/ShowcaseCard/styles.module.css @@ -105,6 +105,7 @@ position: relative; overflow: hidden; + isolation: isolate; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); border: var(--card-border); border-radius: 8px; @@ -268,7 +269,6 @@ ); opacity: 0.5; transition: opacity 0.3s ease; - mix-blend-mode: multiply; } .card:hover .showcaseCardImage::after { diff --git a/src/pages/showcase/_components/ShowcaseTagSelect/styles.module.css b/src/pages/showcase/_components/ShowcaseTagSelect/styles.module.css index 66557816..208041ce 100644 --- a/src/pages/showcase/_components/ShowcaseTagSelect/styles.module.css +++ b/src/pages/showcase/_components/ShowcaseTagSelect/styles.module.css @@ -36,3 +36,16 @@ input:checked + .checkboxLabel:hover { opacity: 0.75; box-shadow: 0 0 2px 1px var(--ifm-color-primary-dark); } +input[type="checkbox"] + .checkboxLabel { + color: var(--ifm-color-content); +} + +[data-theme="dark"] input[type="checkbox"] + .checkboxLabel { + color: #ffffff; + border-color: #555555; +} + +[data-theme="light"] input[type="checkbox"] + .checkboxLabel { + color: #000000; + border-color: var(--ifm-color-secondary-darkest); +} \ No newline at end of file diff --git a/src/pages/showcase/index.tsx b/src/pages/showcase/index.tsx index f2949d02..27eeb0a7 100644 --- a/src/pages/showcase/index.tsx +++ b/src/pages/showcase/index.tsx @@ -26,7 +26,7 @@ import { type TagType, } from "@site/src/data/users"; import FavoriteIcon from "@site/src/components/svgIcons/FavoriteIcon"; -import { useColorMode } from "@docusaurus/theme-common"; + const TITLE = "recode hive: Framing all the opensource projects built by our community members"; @@ -185,11 +185,11 @@ function useSiteCountPlural() { ); } -function ShowcaseFilters() { +function ShowcaseFilters({ isDark = false }: { isDark?: boolean }) { const filteredUsers = useFilteredUsers(); const siteCountPlural = useSiteCountPlural(); return ( -
+
+