Эх сурвалжийг харах

메인 화면 개발시작 (수정중)

home 6 сар өмнө
parent
commit
c6930b0d47

+ 1 - 2
index.html

@@ -6,8 +6,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>Vite + React</title>
   </head>
-  <body>
-    <div id="root"></div>
+  <body id="root">
     <script type="module" src="/src/main.jsx"></script>
   </body>
 </html>

+ 2 - 0
src/App.jsx

@@ -1,9 +1,11 @@
 import Header from "./components/header";
+import Main from "./pages/main/index.jsx";
 
 const App = () => {
     return (
         <>
             <Header />
+            <Main />
         </>
     );
 };

BIN
src/assets/visual_prev.png


+ 1 - 1
src/components/header/Sidebar.jsx

@@ -15,7 +15,7 @@ const Sidebar = ({ isOpen, onClose }) => {
     return (
         <article
             id="sidebar"
-            className={`fixed top-0 right-0 w-[360px] h-full px-0 pb-6 bg-white overflow-y-scroll shadow-[rgba(0,0,0,0.3)_-1px_0_10px_4px] z-[9999] transition-transform duration-500 ease-in-out transform ${isOpen ? 'translate-x-0' : 'translate-x-[120%]'}`}
+            className={`fixed top-0 right-0 w-[300px] h-full px-0 pb-6 bg-white overflow-y-scroll shadow-[rgba(0,0,0,0.3)_-1px_0_10px_4px] z-[9999] transition-transform duration-500 ease-in-out transform ${isOpen ? 'translate-x-0' : 'translate-x-[120%]'}`}
         >
             <div>
                 <div className="relative py-10 px-4 border-b border-gray-300 bg-gray-100 text-center">

+ 11 - 8
src/components/header/index.jsx

@@ -1,20 +1,23 @@
-import React, {useState} from 'react';
+import React, { useState } from 'react';
 import Sidebar from "./Sidebar.jsx";
 import Navbar from "./navbar/index.jsx";
 
 const Header = () => {
-    // 모바일 메뉴의 열림/닫힘 상태를 관리하기 위한 상태
     const [isMenuOpen, setIsMenuOpen] = useState(false);
 
-    // 햄버거 버튼 클릭 시 메뉴 토글
-    const toggleMenu = () => {
-        setIsMenuOpen(!isMenuOpen);
-    };
+    const toggleMenu = () => setIsMenuOpen(prev => !prev);
+    const closeMenu = () => setIsMenuOpen(false); // 닫는 함수 분리
 
     return (
         <header className="fixed w-full z-10">
-            <Sidebar isOpen={isMenuOpen} onClose={toggleMenu}/>
-            <Navbar onClickHamburgerBtn={toggleMenu}/>
+            {/* 디머 */}
+            <article
+                id="sidebar-dimmer"
+                className={`fixed top-0 left-0 w-full h-full z-[9998] transition-opacity duration-500 ease-in-out ${isMenuOpen ? 'bg-black/50 opacity-100 pointer-events-auto' : 'opacity-0 pointer-events-none'}`}
+                onClick={closeMenu}
+            />
+            <Sidebar isOpen={isMenuOpen} onClose={closeMenu} />
+            <Navbar onClickHamburgerBtn={toggleMenu} />
         </header>
     );
 };

+ 23 - 0
src/pages/main/index.jsx

@@ -0,0 +1,23 @@
+import React from 'react';
+import img1 from "../../assets/visual_prev.png"; 
+
+const Main = () => {
+    return (
+        <section>
+            <section className="relative">
+                <button className="absolute top-1/2 max-sm:left-2 max-sm:w-10 h-auto z-5000 block cursor-pointer transform translate-y-[-50%]">
+                    <img src={img1} alt=""/>
+                </button>
+                <div>
+                    <div className="w-[800px] ml-auto mr-auto before:table before:content-['']">
+                        <article>
+                            
+                        </article>
+                    </div>
+                </div>
+            </section>
+        </section>
+    );
+};
+
+export default Main;