@ -0,0 +1,15 @@
|
|||||||
|
import Head from 'next/head';
|
||||||
|
import Image from 'next/image';
|
||||||
|
import styles from '../styles/components/Footer.module.css';
|
||||||
|
import Link from 'next/link';
|
||||||
|
import logo from "../public/img/logoblue.png";
|
||||||
|
|
||||||
|
export default function Footer() {
|
||||||
|
return (
|
||||||
|
<footer className={styles.footer}>
|
||||||
|
<div className="container">
|
||||||
|
<p>© 2021 DubbelNull vof — Kvk nr. 81343493</p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
)
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
import Head from 'next/head';
|
||||||
|
import Image from 'next/image';
|
||||||
|
import styles from '../styles/components/Menu.module.css';
|
||||||
|
import Link from 'next/link';
|
||||||
|
import logo from "../public/img/logoblue.png";
|
||||||
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
|
||||||
|
import { faMugHot } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
|
||||||
|
export default function Menu() {
|
||||||
|
return (
|
||||||
|
<menu className={styles.menu}>
|
||||||
|
<div className="container">
|
||||||
|
<a href="/">
|
||||||
|
<Image src={logo} />
|
||||||
|
<h2>{process.env.NEXT_PUBLIC_NAME?.toUpperCase()}</h2>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<Link href="">About</Link>
|
||||||
|
<Link href="">Blog</Link>
|
||||||
|
<Link href="">Showcase</Link>
|
||||||
|
<Link href="">Services</Link>
|
||||||
|
<Link href="">Contact</Link>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* <div>
|
||||||
|
<Link href="/about">About</Link>
|
||||||
|
<Link href="/about">Blog</Link>
|
||||||
|
<Link href="/about">Showcase</Link>
|
||||||
|
<Link href="/about">Services</Link>
|
||||||
|
<Link href="/about">Contact</Link>
|
||||||
|
</div> */}
|
||||||
|
</div>
|
||||||
|
</menu>
|
||||||
|
)
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
import Head from 'next/head'
|
||||||
|
|
||||||
|
export default function GlobalLayout(props: any) {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<Head>
|
||||||
|
<title>owo</title>
|
||||||
|
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/img/favicons/apple-touch-icon.png" />
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicons/favicon-32x32.png" />
|
||||||
|
<link rel="icon" type="image/png" sizes="194x194" href="/img/favicons/favicon-194x194.png" />
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="/img/favicons/android-chrome-192x192.png" />
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicons/favicon-16x16.png" />
|
||||||
|
<link rel="manifest" href="/img/favicons/site.webmanifest" />
|
||||||
|
<link rel="mask-icon" href="/img/favicons/safari-pinned-tab.svg" color="#2563eb" />
|
||||||
|
<link rel="shortcut icon" href="/img/favicons/favicon.ico" />
|
||||||
|
<meta name="apple-mobile-web-app-title" content="DubbelNull" />
|
||||||
|
<meta name="application-name" content="DubbelNull" />
|
||||||
|
<meta name="msapplication-TileColor" content="#2d89ef" />
|
||||||
|
<meta name="msapplication-config" content="/img/favicons/browserconfig.xml" />
|
||||||
|
<meta name="theme-color" content="#000000" />
|
||||||
|
</Head>
|
||||||
|
|
||||||
|
{props.children}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
/// <reference types="next" />
|
||||||
|
/// <reference types="next/types/global" />
|
||||||
|
/// <reference types="next/image-types/global" />
|
@ -0,0 +1,3 @@
|
|||||||
|
module.exports = {
|
||||||
|
reactStrictMode: true,
|
||||||
|
}
|
@ -1,7 +0,0 @@
|
|||||||
import '../styles/globals.css'
|
|
||||||
|
|
||||||
function MyApp({ Component, pageProps }) {
|
|
||||||
return <Component {...pageProps} />
|
|
||||||
}
|
|
||||||
|
|
||||||
export default MyApp
|
|
@ -0,0 +1,16 @@
|
|||||||
|
import '../styles/globals.css'
|
||||||
|
import type { AppProps } from 'next/app'
|
||||||
|
import SiteLayout from '../layouts/global'
|
||||||
|
import Menu from '../components/menu'
|
||||||
|
import Footer from '../components/footer'
|
||||||
|
|
||||||
|
function MyApp({ Component, pageProps }: AppProps) {
|
||||||
|
return (
|
||||||
|
<SiteLayout>
|
||||||
|
<Menu />
|
||||||
|
<Component {...pageProps}></Component>
|
||||||
|
<Footer />
|
||||||
|
</SiteLayout>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
export default MyApp
|
@ -1,5 +0,0 @@
|
|||||||
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
|
|
||||||
|
|
||||||
export default (req, res) => {
|
|
||||||
res.status(200).json({ name: 'John Doe' })
|
|
||||||
}
|
|
@ -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' })
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
import Head from 'next/head'
|
||||||
|
import Image from 'next/image'
|
||||||
|
import styles from '../styles/Index.module.css'
|
||||||
|
|
||||||
|
export default function Home() {
|
||||||
|
return (
|
||||||
|
<div className="page">
|
||||||
|
<Head>
|
||||||
|
<title>{process.env.NEXT_PUBLIC_NAME}</title>
|
||||||
|
<meta name="viewport" content="initial-scale=1.0, width=device-width" />
|
||||||
|
</Head>
|
||||||
|
|
||||||
|
<section className="container">
|
||||||
|
<section className={styles.banner}>
|
||||||
|
<h1>{process.env.NEXT_PUBLIC_MOTTO}</h1>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<article className={"content " + styles.indexanim}>
|
||||||
|
<h1 className={styles.description}>
|
||||||
|
DubbelNull is a small 2-man startup from The Netherlands developing and designing web applications.
|
||||||
|
We make all kinds of things with a range of technologies like Laravel, NextJS and Wordpress.
|
||||||
|
</h1>
|
||||||
|
</article>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 22 KiB |
@ -0,0 +1,27 @@
|
|||||||
|
# Your Favicon Package
|
||||||
|
|
||||||
|
This package was generated with [RealFaviconGenerator](https://realfavicongenerator.net/) [v0.16](https://realfavicongenerator.net/change_log#v0.16)
|
||||||
|
|
||||||
|
## Install instructions
|
||||||
|
|
||||||
|
To install this package:
|
||||||
|
|
||||||
|
Extract this package in <code><web site>/images/</code>. If your site is <code>http://www.example.com</code>, you should be able to access a file named <code>http://www.example.com/images/favicon.ico</code>.
|
||||||
|
|
||||||
|
Insert the following code in the `head` section of your pages:
|
||||||
|
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="194x194" href="/images/favicon-194x194.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="/images/android-chrome-192x192.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="/images/site.webmanifest">
|
||||||
|
<link rel="mask-icon" href="/images/safari-pinned-tab.svg" color="#2563eb">
|
||||||
|
<link rel="shortcut icon" href="/images/favicon.ico">
|
||||||
|
<meta name="apple-mobile-web-app-title" content="DubbelNull">
|
||||||
|
<meta name="application-name" content="DubbelNull">
|
||||||
|
<meta name="msapplication-TileColor" content="#2d89ef">
|
||||||
|
<meta name="msapplication-config" content="/images/browserconfig.xml">
|
||||||
|
<meta name="theme-color" content="#000000">
|
||||||
|
|
||||||
|
*Optional* - Check your favicon with the [favicon checker](https://realfavicongenerator.net/favicon_checker)
|
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 2.2 KiB |
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig>
|
||||||
|
<msapplication>
|
||||||
|
<tile>
|
||||||
|
<square150x150logo src="/images/mstile-150x150.png"/>
|
||||||
|
<TileColor>#2d89ef</TileColor>
|
||||||
|
</tile>
|
||||||
|
</msapplication>
|
||||||
|
</browserconfig>
|
After Width: | Height: | Size: 933 B |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 15 KiB |
@ -0,0 +1,13 @@
|
|||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="194x194" href="/images/favicon-194x194.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="/images/android-chrome-192x192.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="/images/site.webmanifest">
|
||||||
|
<link rel="mask-icon" href="/images/safari-pinned-tab.svg" color="#2563eb">
|
||||||
|
<link rel="shortcut icon" href="/images/favicon.ico">
|
||||||
|
<meta name="apple-mobile-web-app-title" content="DubbelNull">
|
||||||
|
<meta name="application-name" content="DubbelNull">
|
||||||
|
<meta name="msapplication-TileColor" content="#2d89ef">
|
||||||
|
<meta name="msapplication-config" content="/images/browserconfig.xml">
|
||||||
|
<meta name="theme-color" content="#000000">
|
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 4.5 KiB |
@ -0,0 +1,54 @@
|
|||||||
|
{
|
||||||
|
"name": "DubbelNull",
|
||||||
|
"short_name": "DubbelNull",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "/images/android-chrome-36x36.png",
|
||||||
|
"sizes": "36x36",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/images/android-chrome-48x48.png",
|
||||||
|
"sizes": "48x48",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/images/android-chrome-72x72.png",
|
||||||
|
"sizes": "72x72",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/images/android-chrome-96x96.png",
|
||||||
|
"sizes": "96x96",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/images/android-chrome-144x144.png",
|
||||||
|
"sizes": "144x144",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/images/android-chrome-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/images/android-chrome-256x256.png",
|
||||||
|
"sizes": "256x256",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/images/android-chrome-384x384.png",
|
||||||
|
"sizes": "384x384",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/images/android-chrome-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"theme_color": "#000000",
|
||||||
|
"background_color": "#000000",
|
||||||
|
"display": "standalone"
|
||||||
|
}
|
After Width: | Height: | Size: 16 KiB |
@ -0,0 +1,45 @@
|
|||||||
|
/* layout */
|
||||||
|
.banner {
|
||||||
|
background-image: url('/img/banner.png');
|
||||||
|
height: 500px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner h1 {
|
||||||
|
margin-top: -5rem;
|
||||||
|
font-size: 3em;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* page properties */
|
||||||
|
.description {
|
||||||
|
font-weight: normal;
|
||||||
|
text-align: center;
|
||||||
|
width: 75%;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* animation */
|
||||||
|
.indexanim {
|
||||||
|
-webkit-animation-name: indexanim;
|
||||||
|
animation-name: indexanim;
|
||||||
|
-webkit-animation-duration: 0.5s;
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
margin-top: -10rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes indexanim {
|
||||||
|
0% {
|
||||||
|
margin-top: 0;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
margin-top: -10rem;
|
||||||
|
opacity: 100;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
.footer {
|
||||||
|
padding: var(--padding-large) 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer > div {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
@ -0,0 +1,57 @@
|
|||||||
|
/* menu layout */
|
||||||
|
.menu {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
padding: 10px 0;
|
||||||
|
margin: unset;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu > div {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu > div * {
|
||||||
|
margin: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu img {
|
||||||
|
width: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu > div > *:first-child {
|
||||||
|
display: inline-flex;
|
||||||
|
gap: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu > div > *:first-child h2 {
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu > div > *:last-child {
|
||||||
|
display: inline-flex;
|
||||||
|
gap: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* menu items */
|
||||||
|
.menu a {
|
||||||
|
font-family: "Red Hat Display";
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0.2em 0.5em;
|
||||||
|
font-family: "Red Hat Display";
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 0.9em;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu > div > *:last-child a {
|
||||||
|
cursor: no-drop;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu a:hover {
|
||||||
|
background-color: rgba(36, 99, 235, 0.1);
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "es5",
|
||||||
|
"lib": ["dom", "dom.iterable", "esnext"],
|
||||||
|
"allowJs": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"strict": true,
|
||||||
|
"forceConsistentCasingInFileNames": true,
|
||||||
|
"noEmit": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"module": "esnext",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
"isolatedModules": true,
|
||||||
|
"jsx": "preserve"
|
||||||
|
},
|
||||||
|
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
|
}
|