-
-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy pathlayout.tsx
More file actions
115 lines (111 loc) · 2.99 KB
/
layout.tsx
File metadata and controls
115 lines (111 loc) · 2.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import { Box, globalCss, ThemeScript } from '@devup-ui/react'
import type { Metadata } from 'next'
import Footer from '@/components/Footer'
import Header from '@/components/Header'
export const metadata: Metadata = {
title: 'Braillify',
description: '크로스플랫폼 한국어 점역 라이브러리',
keywords: [
'한글 점역',
'한글 점역 라이브러리',
'한글 점역 라이브러리 추천',
'Braillify',
'브레일리파이',
'점자 번역',
'점자 번역기',
'점자 통역',
'점자 통역기',
'점역기',
'점자 번역 라이브러리',
'점자 통역 라이브러리',
'점자 번역 라이브러리 추천',
'점자 통역 라이브러리 추천',
'braille translator',
'한글 점자',
'영어 점자',
'점역 서비스',
'점자 ↔ 한글',
'점자 ↔ 영어',
'braille english',
'braille korean',
'braille translator',
],
openGraph: {
title: 'Braillify',
description: '크로스플랫폼 한국어 점역 라이브러리',
images: ['https://braillify.kr/og-image.png'],
siteName: 'Braillify',
type: 'website',
url: 'https://braillify.kr',
},
metadataBase: new URL('https://braillify.kr'),
alternates: {
canonical: '/',
},
}
globalCss({
imports: ['https://spoqa.github.io/spoqa-han-sans/css/SpoqaHanSansNeo.css'],
'html, body': {
maxWidth: '100vw',
overflowX: 'hidden',
},
body: {
maxHeight: '100vh',
background: '#373634',
// WebkitFontSmoothing: 'antialiased',
// MozOsxFontSmoothing: 'grayscale',
fontFamily: 'Spoqa Han Sans Neo, Arial, Helvetica, sans-serif',
wordBreak: 'keep-all',
},
'*': {
boxSizing: 'border-box',
padding: 0,
margin: 0,
},
a: {
color: '$link',
textDecoration: 'none',
},
'::placeholder': {
fontFamily: 'Spoqa Han Sans Neo, Arial, Helvetica, sans-serif',
},
})
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode
}>) {
return (
<html lang="ko" suppressHydrationWarning>
<head>
<script
dangerouslySetInnerHTML={{
__html: `
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-KHQZ6Z4V')`,
}}
/>
<ThemeScript auto />
<link href="/favicon.svg" rel="shortcut icon" />
</head>
<body>
<noscript>
<iframe
height="0"
src="https://www.googletagmanager.com/ns.html?id=GTM-KHQZ6Z4V"
style={{ display: 'none', visibility: 'hidden' }}
width="0"
/>
</noscript>
<Box bg="$background" pos="relative">
<Header />
{children}
</Box>
<Footer />
</body>
</html>
)
}