@ -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"]
|
||||
}
|