diff --git a/index.html b/index.html index 9cdad27..8bcf8a2 100644 --- a/index.html +++ b/index.html @@ -1,10 +1,23 @@ - + - HowAboutQuestion + 문제어때 + + + + + + + + + + + + +
diff --git a/public/favicon.png b/public/favicon.png index d0bc708..3e205ae 100644 Binary files a/public/favicon.png and b/public/favicon.png differ diff --git a/src/assets/images/logo.webp b/src/assets/images/logo.webp new file mode 100644 index 0000000..311e539 Binary files /dev/null and b/src/assets/images/logo.webp differ diff --git a/src/pages/help/Help.module.scss b/src/pages/help/Help.module.scss index 8734e48..fd4106a 100644 --- a/src/pages/help/Help.module.scss +++ b/src/pages/help/Help.module.scss @@ -65,3 +65,61 @@ flex-direction: column; gap: 64px; } + +.floatingBtn { + display: none; + position: fixed; + bottom: 28px; + left: 24px; + z-index: 198; + width: 52px; + height: 52px; + border-radius: 50%; + border: none; + cursor: pointer; + background-color: $bg-white; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); + padding: 0; + overflow: hidden; + transition: transform 0.2s ease, box-shadow 0.2s ease; + + img { + width: 100%; + height: 100%; + object-fit: cover; + } + + &:hover { + transform: scale(1.08); + box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2); + } +} + +@media (max-width: 768px) { + .main { + padding: 40px 24px 80px; + } + + .heroTitle { + font-size: $font-2xl; + } + + .heroDesc { + font-size: $font-md; + } + + .categoryTitle { + font-size: $font-xl; + margin-bottom: 24px; + } + + .sectionList { + gap: 48px; + } + + .floatingBtn { + display: flex; + align-items: center; + justify-content: center; + } +} diff --git a/src/pages/help/Help.tsx b/src/pages/help/Help.tsx index 02b7bc9..59fb0ce 100644 --- a/src/pages/help/Help.tsx +++ b/src/pages/help/Help.tsx @@ -13,6 +13,7 @@ import styles from '@/pages/help/Help.module.scss'; const Help: React.FC = () => { const firstStepId = helpCategories[0].steps[0].id; const [activeStepId, setActiveStepId] = useState(firstStepId); + const [isSidebarOpen, setIsSidebarOpen] = useState(false); const sectionRefs = useRef>(new Map()); useEffect(() => { @@ -50,7 +51,10 @@ const Help: React.FC = () => { const handleStepClick = (_categoryId: string, stepId: string) => { const el = sectionRefs.current.get(stepId); if (el) { - el.scrollIntoView({ behavior: 'smooth', block: 'start' }); + const NAVBAR_HEIGHT = 60; + const PADDING = 24; + const top = el.getBoundingClientRect().top + window.scrollY - NAVBAR_HEIGHT - PADDING; + window.scrollTo({ top, behavior: 'smooth' }); } }; @@ -69,6 +73,8 @@ const Help: React.FC = () => { categories={helpCategories} activeStepId={activeStepId} onStepClick={handleStepClick} + isOpen={isSidebarOpen} + onClose={() => setIsSidebarOpen(false)} />
@@ -96,6 +102,15 @@ const Help: React.FC = () => {
+ + +