mirror of
				https://github.com/DerTyp7/explainegy-nextjs.git
				synced 2025-10-31 05:37:12 +01:00 
			
		
		
		
	asd
This commit is contained in:
		
							
								
								
									
										51
									
								
								app/Nav.tsx
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								app/Nav.tsx
									
									
									
									
									
								
							| @@ -1,6 +1,53 @@ | |||||||
| import React from "react"; | "use client"; | ||||||
|  | import React, { useRef } from "react"; | ||||||
| import styles from "../styles/Nav.module.scss"; | import styles from "../styles/Nav.module.scss"; | ||||||
|  | import Image from "next/image"; | ||||||
|  | import Link from "next/link"; | ||||||
|  |  | ||||||
|  | function switchTheme() {} | ||||||
|  |  | ||||||
| export default function Nav() { | export default function Nav() { | ||||||
| 	return <nav className={styles.nav}>Nav</nav>; | 	const switchThemeSvgRef = useRef(); | ||||||
|  |  | ||||||
|  | 	return ( | ||||||
|  | 		<nav className={styles.nav}> | ||||||
|  | 			<div className={styles.containerLeft}> | ||||||
|  | 				<Image | ||||||
|  | 					src={"/images/logo.svg"} | ||||||
|  | 					height={40} | ||||||
|  | 					width={160} | ||||||
|  | 					alt="Nav bar logo" | ||||||
|  | 				/> | ||||||
|  | 				<div className={styles.links}> | ||||||
|  | 					<Link href={"/tutorials"}>Tutorials</Link> | ||||||
|  | 				</div> | ||||||
|  | 			</div> | ||||||
|  | 			<div className={styles.containerCenter}> | ||||||
|  | 				<div className={styles.searchBar}> | ||||||
|  | 					<div className={styles.icon}> | ||||||
|  | 						<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"> | ||||||
|  | 							<path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352c79.5 0 144-64.5 144-144s-64.5-144-144-144S64 128.5 64 208s64.5 144 144 144z" /> | ||||||
|  | 						</svg> | ||||||
|  | 					</div> | ||||||
|  | 					<input type="text" name="" id="" /> | ||||||
|  | 				</div> | ||||||
|  | 			</div> | ||||||
|  | 			<div className={styles.containerRight}> | ||||||
|  | 				<div | ||||||
|  | 					className={styles.themeSwitch} | ||||||
|  | 					onClick={() => { | ||||||
|  | 						switchTheme(); | ||||||
|  | 					}} | ||||||
|  | 				> | ||||||
|  | 					<svg | ||||||
|  | 						ref={switchThemeSvgRef} | ||||||
|  | 						xmlns="http://www.w3.org/2000/svg" | ||||||
|  | 						viewBox="0 0 512 512" | ||||||
|  | 					> | ||||||
|  | 						<path d="M448 256c0-106-86-192-192-192V448c106 0 192-86 192-192zm64 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z" /> | ||||||
|  | 					</svg> | ||||||
|  | 				</div> | ||||||
|  | 			</div> | ||||||
|  | 		</nav> | ||||||
|  | 	); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ export default function RootLayout({ | |||||||
| 	return ( | 	return ( | ||||||
| 		<html style={{ scrollBehavior: "smooth" }}> | 		<html style={{ scrollBehavior: "smooth" }}> | ||||||
| 			<head></head> | 			<head></head> | ||||||
| 			<body> | 			<body className="theme-dark"> | ||||||
| 				<header> | 				<header> | ||||||
| 					<Nav /> | 					<Nav /> | ||||||
| 				</header> | 				</header> | ||||||
|   | |||||||
| @@ -1,5 +1,109 @@ | |||||||
|  | @import "variables.scss"; | ||||||
| .nav { | .nav { | ||||||
| 	background-color: rgb(12, 12, 14); | 	background-color: $color-background-nav; | ||||||
| 	height: 60px; | 	height: 60px; | ||||||
| 	margin-bottom: 50px; | 	margin-bottom: 50px; | ||||||
|  | 	display: grid; | ||||||
|  | 	grid-template-columns: 1fr 1fr 1fr; | ||||||
|  | 	align-items: center; | ||||||
|  | 	box-shadow: $color-shadow-nav 0px 4px 8px; | ||||||
|  |  | ||||||
|  | 	& > div { | ||||||
|  | 		height: 100%; | ||||||
|  | 		display: flex; | ||||||
|  | 		justify-content: center; | ||||||
|  | 		align-items: center; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	.containerLeft { | ||||||
|  | 		column-gap: 100px; | ||||||
|  |  | ||||||
|  | 		.links { | ||||||
|  | 			font-size: 0.8em; | ||||||
|  | 			font-weight: bold; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	.containerCenter { | ||||||
|  | 		.searchBar { | ||||||
|  | 			display: flex; | ||||||
|  | 			justify-content: center; | ||||||
|  | 			align-items: center; | ||||||
|  | 			border: 2px solid rgba(95, 95, 95, 0.5); | ||||||
|  | 			border-radius: 5px; | ||||||
|  | 			padding-left: 10px; | ||||||
|  | 			transition: all 50ms linear; | ||||||
|  |  | ||||||
|  | 			&:hover { | ||||||
|  | 				border-color: rgba(91, 91, 91, 0.9); | ||||||
|  |  | ||||||
|  | 				.icon { | ||||||
|  | 					svg { | ||||||
|  | 						fill: $color-font; | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			&:focus-within { | ||||||
|  | 				border-color: rgba(91, 91, 91, 0.9); | ||||||
|  | 				.icon { | ||||||
|  | 					svg { | ||||||
|  | 						fill: $color-font; | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			input { | ||||||
|  | 				width: 300px; | ||||||
|  | 				height: 30px; | ||||||
|  | 				background-color: transparent; | ||||||
|  | 				border: 0px; | ||||||
|  | 				outline: 0; | ||||||
|  | 				padding-right: 10px; | ||||||
|  | 				color: $color-font; | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			.icon { | ||||||
|  | 				display: block; | ||||||
|  | 				padding-right: 10px; | ||||||
|  | 				svg { | ||||||
|  | 					height: 15px; | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	.containerRight { | ||||||
|  | 		justify-content: flex-end; | ||||||
|  | 		padding-right: 50px; | ||||||
|  |  | ||||||
|  | 		.themeSwitch { | ||||||
|  | 			svg { | ||||||
|  | 				transition: all 50ms linear; | ||||||
|  | 				height: 24px; | ||||||
|  | 				cursor: pointer; | ||||||
|  | 				animation-duration: 100ms; | ||||||
|  | 				animation-timing-function: linear; | ||||||
|  | 				animation-iteration-count: 1; | ||||||
|  | 				&:hover { | ||||||
|  | 					fill: $color-font; | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	svg { | ||||||
|  | 		aspect-ratio: 1; | ||||||
|  | 		fill: mix($color-font, $color-background-body, 70%); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	@keyframes spinThemeSwitch { | ||||||
|  | 		from { | ||||||
|  | 			transform: rotate(0deg); | ||||||
|  | 		} | ||||||
|  | 		to { | ||||||
|  | 			transform: rotate(-180deg); | ||||||
|  | 			fill: #000; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,9 +1,27 @@ | |||||||
| /* By default colors are in dark mode */ | /* By default colors are in dark mode */ | ||||||
| /* Colors: General */ | /* Colors: General */ | ||||||
| $color-overlay-mix: #fff; |  | ||||||
| $color-background-body: #181a1b; //181a1b | $color-background-body: #ffffff; //181a1b | ||||||
|  | $color-font: #000000; | ||||||
|  | $color-shadow-nav: #000c2b0d; | ||||||
|  | // Light | ||||||
|  | .theme-light { | ||||||
|  | 	$color-background-body: #ffffff; //181a1b | ||||||
|  | 	$color-font: #000000; | ||||||
|  | 	$color-shadow-nav: #000c2b0d; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Dark | ||||||
|  | .theme-dark { | ||||||
|  | 	$color-background-body: #181a1b; //181a1b | ||||||
|  | 	$color-font: #ffffff; | ||||||
|  | 	$color-shadow-nav: #00000033; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | $color-overlay-mix: $color-font; | ||||||
|  |  | ||||||
|  | $color-background-nav: transparent; | ||||||
| $color-background-card: mix($color-overlay-mix, $color-background-body, 5%); | $color-background-card: mix($color-overlay-mix, $color-background-body, 5%); | ||||||
| $color-font: #ffffff; |  | ||||||
| $color-accent: #2294ff; | $color-accent: #2294ff; | ||||||
| $color-font-link: $color-accent; | $color-font-link: $color-accent; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Janis
					Janis