diff options
| author | Armand Philippot <git@armandphilippot.com> | 2021-12-12 23:23:52 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2021-12-12 23:23:52 +0100 |
| commit | 6c1cbe9f4d956ad6140c780b2f88f5de4e4eee67 (patch) | |
| tree | 86ecc5b223a771d90dd977bc3917a8dacedb4128 /src | |
| parent | f3d462c8183598362605dc53589583f2859f20b9 (diff) | |
build: move global styles and pages inside src directory
Diffstat (limited to 'src')
| -rw-r--r-- | src/pages/_app.tsx | 8 | ||||
| -rw-r--r-- | src/pages/api/hello.ts | 13 | ||||
| -rw-r--r-- | src/pages/index.tsx | 72 | ||||
| -rw-r--r-- | src/styles/Home.module.css | 116 | ||||
| -rw-r--r-- | src/styles/globals.css | 16 |
5 files changed, 225 insertions, 0 deletions
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx new file mode 100644 index 0000000..f3f9628 --- /dev/null +++ b/src/pages/_app.tsx @@ -0,0 +1,8 @@ +import '../styles/globals.css'; +import type { AppProps } from 'next/app'; + +function MyApp({ Component, pageProps }: AppProps) { + return <Component {...pageProps} />; +} + +export default MyApp; diff --git a/src/pages/api/hello.ts b/src/pages/api/hello.ts new file mode 100644 index 0000000..89e4d6b --- /dev/null +++ b/src/pages/api/hello.ts @@ -0,0 +1,13 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction +import type { NextApiRequest, NextApiResponse } from 'next'; + +type Data = { + name: string; +}; + +export default function handler( + req: NextApiRequest, + res: NextApiResponse<Data> +) { + res.status(200).json({ name: 'John Doe' }); +} diff --git a/src/pages/index.tsx b/src/pages/index.tsx new file mode 100644 index 0000000..da31f7d --- /dev/null +++ b/src/pages/index.tsx @@ -0,0 +1,72 @@ +import type { NextPage } from 'next'; +import Head from 'next/head'; +import Image from 'next/image'; +import styles from '../styles/Home.module.css'; + +const Home: NextPage = () => { + return ( + <div className={styles.container}> + <Head> + <title>Create Next App</title> + <meta name="description" content="Generated by create next app" /> + <link rel="icon" href="/favicon.ico" /> + </Head> + + <main className={styles.main}> + <h1 className={styles.title}> + Welcome to <a href="https://nextjs.org">Next.js!</a> + </h1> + + <p className={styles.description}> + Get started by editing{' '} + <code className={styles.code}>pages/index.tsx</code> + </p> + + <div className={styles.grid}> + <a href="https://nextjs.org/docs" className={styles.card}> + <h2>Documentation →</h2> + <p>Find in-depth information about Next.js features and API.</p> + </a> + + <a href="https://nextjs.org/learn" className={styles.card}> + <h2>Learn →</h2> + <p>Learn about Next.js in an interactive course with quizzes!</p> + </a> + + <a + href="https://github.com/vercel/next.js/tree/master/examples" + className={styles.card} + > + <h2>Examples →</h2> + <p>Discover and deploy boilerplate example Next.js projects.</p> + </a> + + <a + href="https://vercel.com/new?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app" + className={styles.card} + > + <h2>Deploy →</h2> + <p> + Instantly deploy your Next.js site to a public URL with Vercel. + </p> + </a> + </div> + </main> + + <footer className={styles.footer}> + <a + href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app" + target="_blank" + rel="noopener noreferrer" + > + Powered by{' '} + <span className={styles.logo}> + <Image src="/vercel.svg" alt="Vercel Logo" width={72} height={16} /> + </span> + </a> + </footer> + </div> + ); +}; + +export default Home; diff --git a/src/styles/Home.module.css b/src/styles/Home.module.css new file mode 100644 index 0000000..eb806ad --- /dev/null +++ b/src/styles/Home.module.css @@ -0,0 +1,116 @@ +.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; + 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; + } +} diff --git a/src/styles/globals.css b/src/styles/globals.css new file mode 100644 index 0000000..e5e2dcc --- /dev/null +++ b/src/styles/globals.css @@ -0,0 +1,16 @@ +html, +body { + padding: 0; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, + Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; +} + +a { + color: inherit; + text-decoration: none; +} + +* { + box-sizing: border-box; +} |
