diff --git a/@types/styled.d.ts b/@types/styled.d.ts new file mode 100644 index 0000000..a4270bf --- /dev/null +++ b/@types/styled.d.ts @@ -0,0 +1,9 @@ +import 'styled-components'; + +import { theme } from 'styles/theme'; + +export type Theme = typeof theme; + +declare module 'styled-components' { + export interface DefaultTheme extends Theme {} +} diff --git a/src/pages/_app.js b/pages/_app.tsx similarity index 67% rename from src/pages/_app.js rename to pages/_app.tsx index b43f55e..d394d06 100644 --- a/src/pages/_app.js +++ b/pages/_app.tsx @@ -1,13 +1,13 @@ import { ThemeProvider } from 'styled-components'; -import { theme } from '../styles/theme'; -import GlobalStyle from '../styles/globals'; +import { theme } from 'styles/theme'; +import GlobalStyles from 'styles/global'; function MyApp({ Component, pageProps }) { return ( - + ); } diff --git a/src/pages/_document.js b/pages/_document.tsx similarity index 83% rename from src/pages/_document.js rename to pages/_document.tsx index a7564bf..31f0c13 100644 --- a/src/pages/_document.js +++ b/pages/_document.tsx @@ -1,8 +1,17 @@ -import Document, { Html, Head, Main, NextScript } from 'next/document'; +import Document, { + DocumentInitialProps, + DocumentContext, + Html, + Head, + Main, + NextScript, +} from 'next/document'; import { ServerStyleSheet } from 'styled-components'; export default class MyDocument extends Document { - static async getInitialProps(ctx) { + static async getInitialProps( + ctx: DocumentContext, + ): Promise { const sheet = new ServerStyleSheet(); const originalRenderPage = ctx.renderPage; diff --git a/styles/Home.module.css b/styles/Home.module.css deleted file mode 100644 index 42e7e60..0000000 --- a/styles/Home.module.css +++ /dev/null @@ -1,122 +0,0 @@ -.container { - min-height: 100vh; - padding: 0 0.5rem; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -.main { - padding: 5rem 0; - flex: 1; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -.footer { - width: 100%; - height: 100px; - border-top: 1px solid #eaeaea; - display: flex; - justify-content: center; - align-items: center; -} - -.footer img { - margin-left: 0.5rem; -} - -.footer a { - display: flex; - justify-content: center; - align-items: center; -} - -.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 { - 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; - margin-top: 3rem; -} - -.card { - margin: 1rem; - flex-basis: 45%; - 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; -} - -.card:hover, -.card:focus, -.card:active { - color: #0070f3; - border-color: #0070f3; -} - -.card h3 { - margin: 0 0 1rem 0; - font-size: 1.5rem; -} - -.card p { - margin: 0; - font-size: 1.25rem; - line-height: 1.5; -} - -.logo { - height: 1em; -} - -@media (max-width: 600px) { - .grid { - width: 100%; - flex-direction: column; - } -} diff --git a/styles/global.ts b/styles/global.ts new file mode 100644 index 0000000..31e7803 --- /dev/null +++ b/styles/global.ts @@ -0,0 +1,27 @@ +import { createGlobalStyle } from 'styled-components'; + +export default createGlobalStyle` + * { + margin: 0; + padding: 0; + box-sizing: border-box; + } + + body { + background: ${({ theme }) => theme.colors.background}; + color: ${({ theme }) => theme.colors.black}; + + font-family: 'Roboto',sans-serif; + font-size: 1rem; + font-weight: 400; + } + + input, + button { + outline: 0; + } + + button { + cursor: pointer; + } +`; diff --git a/styles/globals.css b/styles/globals.css deleted file mode 100644 index e5e2dcc..0000000 --- a/styles/globals.css +++ /dev/null @@ -1,16 +0,0 @@ -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; -} diff --git a/styles/theme/colors.ts b/styles/theme/colors.ts new file mode 100644 index 0000000..71b21f1 --- /dev/null +++ b/styles/theme/colors.ts @@ -0,0 +1,9 @@ +export const colors = { + background: '#055388', + white: '#ffffff', + black: '#000000', + 'black-secondary': '#212121', + alto: '#dbdbdb', + title: '#2e384d', + green: 'rgb(81, 215, 100)', +}; diff --git a/styles/theme/index.ts b/styles/theme/index.ts new file mode 100644 index 0000000..1b8ef66 --- /dev/null +++ b/styles/theme/index.ts @@ -0,0 +1,5 @@ +import { colors } from './colors'; + +export const theme = { + colors, +};