parent
fab7853d23
commit
6f31660bfd
@ -0,0 +1,14 @@ |
|||||||
|
import Link from "next/link" |
||||||
|
import styled from 'styled-components' |
||||||
|
|
||||||
|
const Footer = styled.footer` |
||||||
|
border-top: 1px dotted #aaa; |
||||||
|
` |
||||||
|
|
||||||
|
export default () => { |
||||||
|
return ( |
||||||
|
<Footer> |
||||||
|
<p>Footer</p> |
||||||
|
</Footer> |
||||||
|
) |
||||||
|
} |
@ -1,8 +1,19 @@ |
|||||||
import '../styles/globals.css' |
import '../styles/globals.css' |
||||||
import type { AppProps } from 'next/app' |
import type { AppProps } from 'next/app' |
||||||
|
import type { ReactElement, ReactNode } from 'react' |
||||||
|
import type { NextPage } from 'next' |
||||||
|
|
||||||
|
export type NextPageWithLayout = NextPage & { |
||||||
|
getLayout?: (page: ReactElement) => ReactNode |
||||||
|
} |
||||||
|
|
||||||
|
type AppPropsWithLayout = AppProps & { |
||||||
|
Component: NextPageWithLayout |
||||||
|
} |
||||||
|
|
||||||
function MyApp({ Component, pageProps }: AppProps) { |
function MyApp({ Component, pageProps }: AppProps) { |
||||||
return <Component {...pageProps} /> |
const getLayout = Component.getLayout ?? ((page) => page) |
||||||
|
return getLayout(<Component {...pageProps}/>) |
||||||
} |
} |
||||||
|
|
||||||
export default MyApp |
export default MyApp |
||||||
|
@ -1,21 +1,38 @@ |
|||||||
import type { NextPage } from 'next' |
// Stuff
|
||||||
import Head from 'next/head' |
import type {NextPageWithLayout} from './_app' |
||||||
import styles from '../styles/Home.module.css' |
import type { ReactElement } from 'react' |
||||||
import styled from 'styled-components' |
import Layout from '../components/layout' |
||||||
import Header from 'components/header' |
|
||||||
|
|
||||||
|
// Components
|
||||||
|
// import Head from 'next/head'
|
||||||
|
// import styles from '../styles/Home.module.css'
|
||||||
|
// import Header from 'components/header'
|
||||||
|
|
||||||
const Home: NextPage = () => { |
|
||||||
|
const Page: NextPageWithLayout = () => { |
||||||
return ( |
return ( |
||||||
<div className={styles.container}> |
<p>yo</p> |
||||||
<Head> |
|
||||||
<title>wych.dev</title> |
|
||||||
<link rel="icon" href="/favicon.ico" /> |
|
||||||
</Head> |
|
||||||
|
|
||||||
<Header /> |
|
||||||
</div> |
|
||||||
) |
) |
||||||
} |
} |
||||||
|
|
||||||
export default Home |
Page.getLayout = (page: ReactElement) => { |
||||||
|
return <Layout>{page}</Layout> |
||||||
|
} |
||||||
|
export default Page |
||||||
|
|
||||||
|
// const Home: NextPage = () => {
|
||||||
|
// return (
|
||||||
|
// <div className={styles.container}>
|
||||||
|
// <Head>
|
||||||
|
// <title>wych.dev</title>
|
||||||
|
// <link rel="icon" href="/favicon.ico" />
|
||||||
|
// </Head>
|
||||||
|
//
|
||||||
|
// <Header />
|
||||||
|
// </div>
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
|
||||||
|
//export default Home
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,116 +0,0 @@ |
|||||||
.container { |
|
||||||
padding: 0 2rem; |
|
||||||
} |
|
||||||
|
|
||||||
.main { |
|
||||||
min-height: 100vh; |
|
||||||
padding: 4rem 0; |
|
||||||
flex: 1; |
|
||||||
display: flex; |
|
||||||
flex-direction: column; |
|
||||||
justify-content: center; |
|
||||||
align-items: center; |
|
||||||
} |
|
||||||
|
|
||||||
.footer { |
|
||||||
display: flex; |
|
||||||
flex: 1; |
|
||||||
padding: 2rem 0; |
|
||||||
border-top: 1px solid #eaeaea; |
|
||||||
justify-content: center; |
|
||||||
align-items: center; |
|
||||||
} |
|
||||||
|
|
||||||
.footer a { |
|
||||||
display: flex; |
|
||||||
justify-content: center; |
|
||||||
align-items: center; |
|
||||||
flex-grow: 1; |
|
||||||
} |
|
||||||
|
|
||||||
.title a { |
|
||||||
color: #0070f3; |
|
||||||
text-decoration: none; |
|
||||||
} |
|
||||||
|
|
||||||
.title a:hover, |
|
||||||
.title a:focus, |
|
||||||
.title a:active { |
|
||||||
text-decoration: underline; |
|
||||||
} |
|
||||||
|
|
||||||
.title { |
|
||||||
margin: 0; |
|
||||||
line-height: 1.15; |
|
||||||
font-size: 4rem; |
|
||||||
} |
|
||||||
|
|
||||||
.title, |
|
||||||
.description { |
|
||||||
text-align: center; |
|
||||||
} |
|
||||||
|
|
||||||
.description { |
|
||||||
margin: 4rem 0; |
|
||||||
line-height: 1.5; |
|
||||||
font-size: 1.5rem; |
|
||||||
} |
|
||||||
|
|
||||||
.code { |
|
||||||
background: #fafafa; |
|
||||||
border-radius: 5px; |
|
||||||
padding: 0.75rem; |
|
||||||
font-size: 1.1rem; |
|
||||||
font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, |
|
||||||
Bitstream Vera Sans Mono, Courier New, monospace; |
|
||||||
} |
|
||||||
|
|
||||||
.grid { |
|
||||||
display: flex; |
|
||||||
align-items: center; |
|
||||||
justify-content: center; |
|
||||||
flex-wrap: wrap; |
|
||||||
max-width: 800px; |
|
||||||
} |
|
||||||
|
|
||||||
.card { |
|
||||||
margin: 1rem; |
|
||||||
padding: 1.5rem; |
|
||||||
text-align: left; |
|
||||||
color: inherit; |
|
||||||
text-decoration: none; |
|
||||||
border: 1px solid #eaeaea; |
|
||||||
border-radius: 10px; |
|
||||||
transition: color 0.15s ease, border-color 0.15s ease; |
|
||||||
max-width: 300px; |
|
||||||
} |
|
||||||
|
|
||||||
.card:hover, |
|
||||||
.card:focus, |
|
||||||
.card:active { |
|
||||||
color: #0070f3; |
|
||||||
border-color: #0070f3; |
|
||||||
} |
|
||||||
|
|
||||||
.card h2 { |
|
||||||
margin: 0 0 1rem 0; |
|
||||||
font-size: 1.5rem; |
|
||||||
} |
|
||||||
|
|
||||||
.card p { |
|
||||||
margin: 0; |
|
||||||
font-size: 1.25rem; |
|
||||||
line-height: 1.5; |
|
||||||
} |
|
||||||
|
|
||||||
.logo { |
|
||||||
height: 1em; |
|
||||||
margin-left: 0.5rem; |
|
||||||
} |
|
||||||
|
|
||||||
@media (max-width: 600px) { |
|
||||||
.grid { |
|
||||||
width: 100%; |
|
||||||
flex-direction: column; |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue