Main.tsx 1.13 KiB
Newer Older
Andrei Eres's avatar
Andrei Eres committed
import React from 'react'
import styled from 'styled-components'
Andrei Eres's avatar
Andrei Eres committed
import { BaseProps } from '../types'
Andrei Eres's avatar
Andrei Eres committed
import Footer from './Footer'
import Header from './Header'
Andrei Eres's avatar
Andrei Eres committed
const Main: React.FC<BaseProps> = ({ children, className }) => (
  <main className={className}>
    <Header />
    <div className='container'>{children}</div>
    <Footer />
  </main>
)
Andrei Eres's avatar
Andrei Eres committed
export default styled(Main)`
Andrei Eres's avatar
Andrei Eres committed
  display: flex;
  flex-direction: column;
Andrei Eres's avatar
Andrei Eres committed
  height: 100%;
Andrei Eres's avatar
Andrei Eres committed
  font-size: ${({ theme }: BaseProps) => theme.fontSize};
  line-height: ${({ theme }: BaseProps) => theme.lineHeight};
Andrei Eres's avatar
Andrei Eres committed
  color: ${({ theme }: BaseProps) => theme.mainTextColor};

  a {
Andrei Eres's avatar
Andrei Eres committed
    color: ${({ theme }: BaseProps) => theme.fadedTextColor};
    transition: ${({ theme }: BaseProps) => theme.transition};
  }

  a:hover {
Andrei Eres's avatar
Andrei Eres committed
    color: ${({ theme }: BaseProps) => theme.mainTextColor};
  }
Andrei Eres's avatar
Andrei Eres committed

Andrei Eres's avatar
Andrei Eres committed
  h1 {
    margin: 0;
    margin-bottom: 0.5rem;
    font-size: ${({ theme }: BaseProps) => theme.titleFontSize};
    line-height: ${({ theme }: BaseProps) => theme.lineHeight};
    font-weight: bold;
  }

Andrei Eres's avatar
Andrei Eres committed
  p {
    margin: 0 0 0.5rem;
  }

Andrei Eres's avatar
Andrei Eres committed
  .emphasis {
    margin: 0 0 1.5rem;
  }

Andrei Eres's avatar
Andrei Eres committed
  .container {
    padding: 1rem;
  }
Andrei Eres's avatar
Andrei Eres committed
`