import styled, { createGlobalStyle } from 'styled-components'; import { ArticleGrid } from '@/components/article/grid'; import { Jumbo } from '@/typography'; import { useMemo } from 'react'; import { Sheet } from '../../components/sheet'; import { ThemeProvider, createTheme } from '@/theme'; import chroma from 'chroma-js'; import { Helmet } from 'react-helmet-async'; import { Page } from 'types'; const GlobalStyle = createGlobalStyle` * { box-sizing: border-box; } body, html { height: 100%; margin: 0; } body { font-size: 17px; background-color: ${({ theme }) => theme.colors.background}; color: ${({ theme }) => theme.colors.foreground}; } /* latin-ext */ @font-face { font-family: 'Archivo Black'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/archivoblack/v17/HTxqL289NzCGg4MzN6KJ7eW6CYKF_i7y.woff2) format('woff2'); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Archivo Black'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/archivoblack/v17/HTxqL289NzCGg4MzN6KJ7eW6CYyF_g.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Black Ops One'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/blackopsone/v20/qWcsB6-ypo7xBdr6Xshe96H3aDbbtwkh.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* vietnamese */ @font-face { font-family: 'Black Ops One'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/blackopsone/v20/qWcsB6-ypo7xBdr6Xshe96H3aDTbtwkh.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Black Ops One'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/blackopsone/v20/qWcsB6-ypo7xBdr6Xshe96H3aDXbtwkh.woff2) format('woff2'); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Black Ops One'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/blackopsone/v20/qWcsB6-ypo7xBdr6Xshe96H3aDvbtw.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Merriweather'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/merriweather/v30/u-440qyriQwlOrhSvowK_l5-cSZMZ-Y.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Merriweather'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/merriweather/v30/u-440qyriQwlOrhSvowK_l5-eCZMZ-Y.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* vietnamese */ @font-face { font-family: 'Merriweather'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/merriweather/v30/u-440qyriQwlOrhSvowK_l5-cyZMZ-Y.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Merriweather'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/merriweather/v30/u-440qyriQwlOrhSvowK_l5-ciZMZ-Y.woff2) format('woff2'); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Merriweather'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/merriweather/v30/u-440qyriQwlOrhSvowK_l5-fCZM.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Merriweather'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/merriweather/v30/u-4n0qyriQwlOrhSvowK_l52xwNZVcf6lvg.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Merriweather'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/merriweather/v30/u-4n0qyriQwlOrhSvowK_l52xwNZXMf6lvg.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* vietnamese */ @font-face { font-family: 'Merriweather'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/merriweather/v30/u-4n0qyriQwlOrhSvowK_l52xwNZV8f6lvg.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Merriweather'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/merriweather/v30/u-4n0qyriQwlOrhSvowK_l52xwNZVsf6lvg.woff2) format('woff2'); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Merriweather'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/merriweather/v30/u-4n0qyriQwlOrhSvowK_l52xwNZWMf6.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } `; const Hero = styled.div` display: flex; flex-wrap: wrap; `; const Download = styled.a` font-size: 30px; line-height: 40px; display: inline-block; background: ${({ theme }) => theme.colors.foreground}; color: ${({ theme }) => theme.colors.primary}; padding: 0 15px; text-transform: uppercase; margin: 10px; font-family: 'Black Ops One', sans-serif; @media only screen and (max-width: 700px) { margin: 5px; font-size: 3rem; line-height: 3.1rem; } `; const Title = styled(Jumbo)` font-size: 60px; line-height: 80px; display: inline-block; background: ${({ theme }) => theme.colors.primary}; color: ${({ theme }) => theme.colors.foreground}; padding: 0 15px; text-transform: uppercase; margin: 10px; font-family: 'Black Ops One', sans-serif; @media only screen and (max-width: 700px) { margin: 5px; font-size: 3rem; line-height: 3.1rem; } `; const Arrow = styled.div` position: absolute; bottom: 20px; display: flex; align-items: center; justify-content: center; :after { display: flex; align-items: center; justify-content: center; background: ${({ theme }) => theme.colors.primary}; border-radius: 50%; width: 80px; height: 80px; content: '↓'; font-size: 50px; @media only screen and (max-width: 700px) { width: 40px; height: 40px; } } `; const ImageBg = styled.picture` position: absolute; top: 0; left: 0; bottom: 0; right: 0; height: 100%; object-fit: cover; object-position: center; z-index: -1; opacity: 0.5; img { width: 100%; height: 100%; object-fit: cover; object-position: center; } `; const FrontPage: Page<'frontpage'> = ({ articles, profile }) => { const theme = useMemo( () => createTheme({ baseColor: chroma.random().brighten(1).hex(), }), [], ); return ( Morten Olsen {"Hi, I'm Morten".split(' ').map((char, index) => ( {char} ))} {'And I make software'.split(' ').map((char, index) => ( {char} ))} Download resumé {'Table of Content'.split(' ').map((char, index) => ( {char} ))} ); }; export default FrontPage;