diff --git a/apps/landing/devup.json b/apps/landing/devup.json
index 7a14c7f3..c3133c47 100644
--- a/apps/landing/devup.json
+++ b/apps/landing/devup.json
@@ -1 +1,500 @@
-{"theme":{"colors":{"light":{"primary":"#6159D4","secondary":"#85A5F2","link":"#006BFF","text":"#2F2F2F","background":"#FFFFFF","containerBackground":"#FFFFFF","border":"#E0E0E0","success":"#4CAF50","warning":"#FF9800","error":"#F44336","info":"#2196F3","base":"#FFFFFF","negativeBase":"#000000","title":"#1A1A1A","caption":"#A9A8B4","shadow":"#87878740","codeBg":"#3E3B41","cardBg":"#F8F8F8","buttonBlue":"#266CCD","joinBg":"#CDE2FA","third":"#918AE9","buttonBlueHover":"#1453AC","buttonBlueActive":"#19498B","textReverse":"#FFFFFF","footerTitle":"#A3A4B4","footerBg":"#E6E7ED","footerText":"#51575F","menuHover":"#F6F4FF","menuActive":"#EAE8FC","captionBold":"#878594","search":"#9C50FF"},"dark":{"primary":"#737FE4","secondary":"#2A4586","link":"#006BFF","text":"#EDEDED","background":"#131313","containerBackground":"#1E1E1E","border":"#333333","success":"#4CAF50","warning":"#FF9800","error":"#F44336","info":"#2196F3","base":"#000000","negativeBase":"#FFFFFF","title":"#FAFAFA","caption":"#787878","shadow":"#62626240","codeBg":"#2E303C","cardBg":"#28272B","buttonBlue":"#0867AF","joinBg":"#2F363E","third":"#737FE4","buttonBlueHover":"#1453AC","buttonBlueActive":"#19498B","textReverse":"#2F2F2F","footerTitle":"#A3A4B4","footerBg":"#2E303C","footerText":"#FFFFFF","menuHover":"#3C404B","menuActive":"#283259","captionBold":"#878594","search":"#6FA4FF"}},"typography":{"h1":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":800,"fontSize":"38px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":800,"fontSize":"52px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"h6Reg":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":400,"fontSize":"18px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":400,"fontSize":"24px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"buttonL":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":800,"fontSize":"17px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":800,"fontSize":"20px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"code":[{"fontFamily":"D2Coding","fontStyle":"normal","fontWeight":700,"fontSize":"13px","lineHeight":1.5,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"D2Coding","fontStyle":"normal","fontWeight":700,"fontSize":"15px","lineHeight":1.5,"letterSpacing":"-0.03em"}],"buttonM":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":600,"fontSize":"15px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":600,"fontSize":"17px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"h4":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":700,"fontSize":"28px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":700,"fontSize":"36px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"body":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":500,"fontSize":"14px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":500,"fontSize":"16px","lineHeight":1.5,"letterSpacing":"-0.03em"}],"h6":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":600,"fontSize":"18px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":600,"fontSize":"24px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"textS":[null,null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":500,"fontSize":"15px","lineHeight":1.4,"letterSpacing":"-0.03em"}],"buttonLbold":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":700,"fontSize":"17px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":700,"fontSize":"18px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"buttonLsemiB":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":600,"fontSize":"17px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":600,"fontSize":"18px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"h2":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":800,"fontSize":"36px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":800,"fontSize":"48px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"h3":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":700,"fontSize":"32px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":700,"fontSize":"42px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"h5":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":600,"fontSize":"24px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":600,"fontSize":"30px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"buttonS":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":800,"fontSize":"14px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":700,"fontSize":"15px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"caption":[null,null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":500,"fontSize":"14px","lineHeight":1.4,"letterSpacing":"-0.03em"}],"small":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":300,"fontSize":"11px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":400,"fontSize":"12px","lineHeight":1.4,"letterSpacing":"-0.03em"}],"buttonSmid":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":500,"fontSize":"14px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":500,"fontSize":"15px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"captionBold":[null,null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":700,"fontSize":"14px","lineHeight":1.3,"letterSpacing":"-0.03em"}],"textSbold":[null,null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":700,"fontSize":"15px","lineHeight":1.4,"letterSpacing":"-0.03em"}],"textL":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":500,"fontSize":"16px","lineHeight":1.3,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":500,"fontSize":"18px","lineHeight":1.5,"letterSpacing":"-0.03em"}],"footerMenu":[{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":500,"fontSize":"13px","lineHeight":1.4,"letterSpacing":"-0.03em"},null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":500,"fontSize":"14px","lineHeight":1.4,"letterSpacing":"-0.03em"}],"bodyReg":[null,null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":400,"fontSize":"16px","lineHeight":1.5,"letterSpacing":"-0.03em"}],"smallBold":[null,null,null,null,{"fontFamily":"Pretendard","fontStyle":"normal","fontWeight":800,"fontSize":"12px","lineHeight":1.4,"letterSpacing":"-0.03em"}]}}}
\ No newline at end of file
+{
+ "theme": {
+ "colors": {
+ "light": {
+ "primary": "#6159D4",
+ "secondary": "#85A5F2",
+ "link": "#006BFF",
+ "text": "#2F2F2F",
+ "background": "#FFFFFF",
+ "containerBackground": "#FFFFFF",
+ "border": "#E0E0E0",
+ "success": "#4CAF50",
+ "warning": "#FF9800",
+ "error": "#F44336",
+ "info": "#2196F3",
+ "base": "#FFFFFF",
+ "negativeBase": "#000000",
+ "title": "#1A1A1A",
+ "caption": "#A9A8B4",
+ "shadow": "#87878740",
+ "codeBg": "#3E3B41",
+ "cardBg": "#F8F8F8",
+ "buttonBlue": "#266CCD",
+ "joinBg": "#CDE2FA",
+ "third": "#918AE9",
+ "buttonBlueHover": "#1453AC",
+ "buttonBlueActive": "#19498B",
+ "textReverse": "#FFFFFF",
+ "footerTitle": "#A3A4B4",
+ "footerBg": "#E6E7ED",
+ "footerText": "#51575F",
+ "menuHover": "#F6F4FF",
+ "menuActive": "#EAE8FC",
+ "captionBold": "#878594",
+ "search": "#9C50FF"
+ },
+ "dark": {
+ "primary": "#737FE4",
+ "secondary": "#2A4586",
+ "link": "#006BFF",
+ "text": "#EDEDED",
+ "background": "#131313",
+ "containerBackground": "#1E1E1E",
+ "border": "#333333",
+ "success": "#4CAF50",
+ "warning": "#FF9800",
+ "error": "#F44336",
+ "info": "#2196F3",
+ "base": "#000000",
+ "negativeBase": "#FFFFFF",
+ "title": "#FAFAFA",
+ "caption": "#787878",
+ "shadow": "#62626240",
+ "codeBg": "#2E303C",
+ "cardBg": "#28272B",
+ "buttonBlue": "#0867AF",
+ "joinBg": "#2F363E",
+ "third": "#737FE4",
+ "buttonBlueHover": "#1453AC",
+ "buttonBlueActive": "#19498B",
+ "textReverse": "#2F2F2F",
+ "footerTitle": "#A3A4B4",
+ "footerBg": "#2E303C",
+ "footerText": "#FFFFFF",
+ "menuHover": "#3C404B",
+ "menuActive": "#283259",
+ "captionBold": "#878594",
+ "search": "#6FA4FF"
+ }
+ },
+ "typography": {
+ "h1": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 800,
+ "fontSize": "38px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 800,
+ "fontSize": "52px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "h6Reg": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 400,
+ "fontSize": "18px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 400,
+ "fontSize": "24px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "buttonL": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 800,
+ "fontSize": "17px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 800,
+ "fontSize": "20px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "code": [
+ {
+ "fontFamily": "D2Coding",
+ "fontStyle": "normal",
+ "fontWeight": 700,
+ "fontSize": "13px",
+ "lineHeight": 1.5,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "D2Coding",
+ "fontStyle": "normal",
+ "fontWeight": 700,
+ "fontSize": "15px",
+ "lineHeight": 1.5,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "buttonM": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 600,
+ "fontSize": "15px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 600,
+ "fontSize": "17px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "h4": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 700,
+ "fontSize": "28px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 700,
+ "fontSize": "36px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "body": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 500,
+ "fontSize": "14px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 500,
+ "fontSize": "16px",
+ "lineHeight": 1.5,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "h6": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 600,
+ "fontSize": "18px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 600,
+ "fontSize": "24px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "textS": {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 500,
+ "fontSize": "15px",
+ "lineHeight": 1.4,
+ "letterSpacing": "-0.03em"
+ },
+ "buttonLbold": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 700,
+ "fontSize": "17px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 700,
+ "fontSize": "18px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "buttonLsemiB": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 600,
+ "fontSize": "17px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 600,
+ "fontSize": "18px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "h2": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 800,
+ "fontSize": "36px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 800,
+ "fontSize": "48px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "h3": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 700,
+ "fontSize": "32px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 700,
+ "fontSize": "42px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "h5": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 600,
+ "fontSize": "24px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 600,
+ "fontSize": "30px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "buttonS": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 800,
+ "fontSize": "14px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 700,
+ "fontSize": "15px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "caption": {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 500,
+ "fontSize": "14px",
+ "lineHeight": 1.4,
+ "letterSpacing": "-0.03em"
+ },
+ "small": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 300,
+ "fontSize": "11px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 400,
+ "fontSize": "12px",
+ "lineHeight": 1.4,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "buttonSmid": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 500,
+ "fontSize": "14px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 500,
+ "fontSize": "15px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "captionBold": {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 700,
+ "fontSize": "14px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ "textSbold": {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 700,
+ "fontSize": "15px",
+ "lineHeight": 1.4,
+ "letterSpacing": "-0.03em"
+ },
+ "textL": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 500,
+ "fontSize": "16px",
+ "lineHeight": 1.3,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 500,
+ "fontSize": "18px",
+ "lineHeight": 1.5,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "footerMenu": [
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 500,
+ "fontSize": "13px",
+ "lineHeight": 1.4,
+ "letterSpacing": "-0.03em"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 500,
+ "fontSize": "14px",
+ "lineHeight": 1.4,
+ "letterSpacing": "-0.03em"
+ }
+ ],
+ "bodyReg": {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 400,
+ "fontSize": "16px",
+ "lineHeight": 1.5,
+ "letterSpacing": "-0.03em"
+ },
+ "smallBold": {
+ "fontFamily": "Pretendard",
+ "fontStyle": "normal",
+ "fontWeight": 800,
+ "fontSize": "12px",
+ "lineHeight": 1.4,
+ "letterSpacing": "-0.03em"
+ }
+ }
+ }
+}
diff --git a/apps/landing/src/app/(detail)/docs/RightIndex.tsx b/apps/landing/src/app/(detail)/docs/RightIndex.tsx
index cfefdaba..1a16098f 100644
--- a/apps/landing/src/app/(detail)/docs/RightIndex.tsx
+++ b/apps/landing/src/app/(detail)/docs/RightIndex.tsx
@@ -1,65 +1,131 @@
-import { Box, Flex, Image, Text, VStack } from '@devup-ui/react'
+'use client'
+import { Box, css, Flex, Text, VStack } from '@devup-ui/react'
+import Link from 'next/link'
+import { usePathname } from 'next/navigation'
+import { useEffect, useState } from 'react'
-import { URL_PREFIX } from '../../../constants'
+function IndexMenu({
+ children,
+ selected,
+ sub,
+ onClick,
+}: {
+ children: React.ReactNode
+ selected?: boolean
+ sub?: boolean
+ onClick?: () => void
+}) {
+ return (
+
+ {selected && }
+
+ {children}
+
+
+ )
+}
export function RightIndex() {
+ const pathname = usePathname()
+ const editUrl = `https://github.com/dev-five-git/devup-ui/tree/main/apps/landing/src/app/(detail)/docs${pathname.split('docs')[1]}/page.mdx`
+ const [menus, setMenus] = useState<
+ {
+ text: string
+ sub?: boolean
+ onClick?: () => void
+ }[]
+ >([])
+ useEffect(() => {
+ const elements = document.querySelectorAll(
+ '.markdown-body h1, .markdown-body h2',
+ )
+ const menus = []
+ for (let i = 0; i < elements.length; i++) {
+ const element = elements[i]
+ const text = element.textContent!
+ menus.push({
+ text,
+ sub: element.tagName === 'H2',
+ onClick: () => {
+ element.scrollIntoView({ behavior: 'smooth' })
+ },
+ })
+ }
+ setMenus(menus)
+ }, [pathname])
+
return (
-
+
Contents
-
-
+ {menus.map((menu) => (
+
+ {menu.text}
+
+ ))}
+
+
+
+
- Installation
-
-
-
-
- General Guides
-
-
-
-
- Framework Guides
-
-
-
-
- Next Steps
-
-
-
-
- Playground
-
-
-
-
- Acknowledgement
+ Edit this page
+
-
-
-
-
- Edit this page
-
-
-
+
)
}
diff --git a/apps/landing/src/app/(detail)/docs/layout.tsx b/apps/landing/src/app/(detail)/docs/layout.tsx
index a2d660ff..db37239a 100644
--- a/apps/landing/src/app/(detail)/docs/layout.tsx
+++ b/apps/landing/src/app/(detail)/docs/layout.tsx
@@ -14,7 +14,7 @@ export default function DetailLayout({
-
+
{children}
diff --git a/apps/landing/src/app/(detail)/team/TeamCard.tsx b/apps/landing/src/app/(detail)/team/TeamCard.tsx
new file mode 100644
index 00000000..5b4f60f4
--- /dev/null
+++ b/apps/landing/src/app/(detail)/team/TeamCard.tsx
@@ -0,0 +1,68 @@
+import { Box, Flex, Image, Text, VStack } from '@devup-ui/react'
+import Link from 'next/link'
+
+import { Github } from '../../../components/Header/Github'
+import { Insta } from '../../../components/Header/Insta'
+
+interface TeamCardProps {
+ userId: string
+ role: string
+ instaId?: string
+}
+
+export async function TeamCard({ userId, role, instaId }: TeamCardProps) {
+ const data = await fetch(`https://api.github.com/users/${userId}`).then(
+ (res) => res.json(),
+ )
+ const avatarUrl = data.avatar_url
+ const name = data.name
+ return (
+
+
+
+
+
+
+
+ {name}
+
+
+ {role}
+
+
+
+
+
+
+
+ {instaId && (
+
+
+
+ )}
+
+
+
+ )
+}
diff --git a/apps/landing/src/app/(detail)/team/page.mdx b/apps/landing/src/app/(detail)/team/page.mdx
index 788f860d..0b58811c 100644
--- a/apps/landing/src/app/(detail)/team/page.mdx
+++ b/apps/landing/src/app/(detail)/team/page.mdx
@@ -1,14 +1,10 @@
-## Team
-a
-## What is Devup UI?
-## What is Devup UI?
-## What is Devup UI?
-## What is Devup UI?
-## What is Devup UI?
-## What is Devup UI?
-## What is Devup UI?
-## What is Devup UI?
-## What is Devup UI?
-## What is Devup UI?
-## What is Devup UI?
-## What is Devup UI?
+# Team
+
+We are a team committed to developing the most optimized CSS-in-JS solutions.
+
+---
+
+import {TeamCard} from "./TeamCard";
+
+
+
diff --git a/apps/landing/src/app/layout.tsx b/apps/landing/src/app/layout.tsx
index da952f6c..7557fc73 100644
--- a/apps/landing/src/app/layout.tsx
+++ b/apps/landing/src/app/layout.tsx
@@ -23,7 +23,7 @@ export default function RootLayout({
-
+ {URL_PREFIX && }
-
-
-
- 메뉴 타이틀 1
-
-
-
- 상세 메뉴 1
-
-
- 상세 메뉴 2
-
-
- 상세 메뉴 3
-
-
- 상세 메뉴 4
+
+
+
+
+
+
+ Docs
+
+
+
+
+
+ Overview
+
+
+
+
+
+ Installation
+
+
+
+
+ Features
+
+
+
+
+ API
+
+
+
+
+ Devup
+
+
+
+
+
+
+
+ Team
+
+
+
+
+
+
+
+
+
+
+ 상호: (주)데브파이브 | 대표자명: 오정민 |{' '}
+
+ 사업자등록번호: 사업자등록번호: 868-86-03159
+
+ 주소: 경기 고양시 덕양구 마상로140번길 81 4층
-
- 상세 메뉴 5
+
+ Copyright © 2021-2024 데브파이브. All Rights Reserved.
-
-
-
- 메뉴 타이틀 2
-
-
- 상세 메뉴 1
-
-
- 상세 메뉴 2
-
-
-
-
- 메뉴 타이틀 3
-
-
- 상세 메뉴 1
-
-
- 상세 메뉴 2
-
-
- 상세 메뉴 3
-
-
- 상세 메뉴 4
-
-
-
-
-
-
-
-
- 상호: (주)데브파이브 | 대표자명: 오정민 | 사업자등록번호:
- 868-86-03159 주소: 경기 고양시 덕양구 마상로140번길 81 4층
-
-
- Copyright © 2021-2024 데브파이브. All Rights Reserved.
-
-
-
-
+
+
)
}
diff --git a/apps/landing/src/components/Header/Github.tsx b/apps/landing/src/components/Header/Github.tsx
index 3012d37a..87fdf3fc 100644
--- a/apps/landing/src/components/Header/Github.tsx
+++ b/apps/landing/src/components/Header/Github.tsx
@@ -1,30 +1,21 @@
import { css } from '@devup-ui/react'
-import Link from 'next/link'
export function Github() {
return (
-
-
-
+
+
)
}
diff --git a/apps/landing/src/components/Header/Insta.tsx b/apps/landing/src/components/Header/Insta.tsx
new file mode 100644
index 00000000..be55b7eb
--- /dev/null
+++ b/apps/landing/src/components/Header/Insta.tsx
@@ -0,0 +1,21 @@
+import { css } from '@devup-ui/react'
+
+export function Insta() {
+ return (
+
+ )
+}
diff --git a/apps/landing/src/components/Header/index.tsx b/apps/landing/src/components/Header/index.tsx
index 64355e6c..0fb7169c 100644
--- a/apps/landing/src/components/Header/index.tsx
+++ b/apps/landing/src/components/Header/index.tsx
@@ -19,7 +19,15 @@ export function Header() {
const top = (
-
+
+
+