diff --git a/package-lock.json b/package-lock.json index fde3b35..c57a773 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,7 @@ "devDependencies": { "@vitejs/plugin-react": "^4.3.4", "autoprefixer": "^10.4.20", + "clsx": "^2.1.1", "postcss": "^8.5.1", "prop-types": "^15.8.1", "tailwindcss": "^3.4.17", @@ -1440,6 +1441,16 @@ "node": ">= 6" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", diff --git a/package.json b/package.json index 55aea02..040d313 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "devDependencies": { "@vitejs/plugin-react": "^4.3.4", "autoprefixer": "^10.4.20", + "clsx": "^2.1.1", "postcss": "^8.5.1", "prop-types": "^15.8.1", "tailwindcss": "^3.4.17", diff --git a/src/App.jsx b/src/App.jsx index c157eda..424e586 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,10 +1,19 @@ -import { Projects } from './components'; +import clsx from 'clsx'; +import { Header, Projects } from './components'; import { projects } from './data'; +import { useTheme } from './hooks'; export default function App() { + const { isDarkMode } = useTheme(); return ( -
+
+
); diff --git a/src/components/Header.jsx b/src/components/Header.jsx new file mode 100644 index 0000000..b23381d --- /dev/null +++ b/src/components/Header.jsx @@ -0,0 +1,24 @@ +import clsx from 'clsx'; + +import { useTheme } from '../hooks'; + +export const Header = () => { + const { isDarkMode, toggleTheme } = useTheme(); + + return ( +
+

React JS Fall 2024

+ +
+ ); +}; diff --git a/src/components/index.jsx b/src/components/index.jsx index 912fb59..4ff32c5 100644 --- a/src/components/index.jsx +++ b/src/components/index.jsx @@ -1 +1,2 @@ export * from './project/Projects'; +export * from './Header'; diff --git a/src/components/project/Project.jsx b/src/components/project/Project.jsx index 8b9d3a9..296f307 100644 --- a/src/components/project/Project.jsx +++ b/src/components/project/Project.jsx @@ -1,8 +1,11 @@ +import clsx from 'clsx'; import { useState } from 'react'; +import { useTheme } from '../../hooks'; import { ProjectPropType } from '../propTypesDefs'; export const Project = ({ project }) => { + const { isDarkMode } = useTheme(); const [selectedContributor, setSelectedContributor] = useState(); return ( @@ -12,7 +15,12 @@ export const Project = ({ project }) => { {project.contributors.map((contributor) => (