Initial commit

This commit is contained in:
ASOwnerYT
2024-11-27 15:42:04 +13:00
commit c8f05290e8
23 changed files with 5421 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
{
"extends": "next/core-web-vitals"
}
+40
View File
@@ -0,0 +1,40 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions
# testing
/coverage
# next.js
/.next/
/out/
# production
/build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# env files (can opt-in for committing if needed)
.env*
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts
+36
View File
@@ -0,0 +1,36 @@
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
## Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `app/page.js`. The page auto-updates as you edit the file.
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
+7
View File
@@ -0,0 +1,7 @@
{
"compilerOptions": {
"paths": {
"@/*": ["./src/*"]
}
}
}
+4
View File
@@ -0,0 +1,4 @@
/** @type {import('next').NextConfig} */
const nextConfig = {};
export default nextConfig;
+4706
View File
File diff suppressed because it is too large Load Diff
+20
View File
@@ -0,0 +1,20 @@
{
"name": "computer-repair",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"react": "19.0.0-rc-66855b96-20241106",
"react-dom": "19.0.0-rc-66855b96-20241106",
"next": "15.0.3"
},
"devDependencies": {
"eslint": "^8",
"eslint-config-next": "15.0.3"
}
}
+1
View File
@@ -0,0 +1 @@
<svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 391 B

+1
View File
@@ -0,0 +1 @@
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

+1
View File
@@ -0,0 +1 @@
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 128 B

+1
View File
@@ -0,0 +1 @@
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>

After

Width:  |  Height:  |  Size: 385 B

+33
View File
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#000000" height="800px" width="800px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 477.065 477.065" xml:space="preserve">
<g>
<path d="M285.447,102.43l8.201-17.199c6.77-14.21,17.982-25.375,31.788-32.037h-60.099c5.047,9.139,4.487,19.28-4.116,29.312
C273.444,82.506,283.289,91.225,285.447,102.43z"/>
<path d="M451.613,53.194h-56.761c21.415,17.028,19.008,40.074,1.818,47.24l-8.495,3.541c43.761,0,43.467-4.038,43.467,23.022
c5.823,12.082,5.389,25.918,0,37.699v144.151c0,6.149-4.986,11.135-11.135,11.135H56.559c-6.149,0-11.135-4.985-11.135-11.135
V152.559c-6.289-9.24-4.224-18.03-4.224-45.416c0-13.511,10.933-24.637,24.676-24.637c-7.501-7.493-9.705-19.101-4.084-29.312
h-36.34C11.399,53.194,0,64.592,0,78.646v269.218c0,14.054,11.399,25.453,25.453,25.453h168.696l-22.719,54.664h-10.421
c-9.053,0-16.398,7.345-16.398,16.4c0,9.053,7.345,16.398,16.398,16.398h155.046c9.055,0,16.4-7.345,16.4-16.398
c0-9.055-7.345-16.4-16.4-16.4h-10.419l-22.719-54.664h168.696c14.053,0,25.451-11.399,25.451-25.453V78.646
C477.065,64.592,465.666,53.194,451.613,53.194z M369.291,356.849c-6.585,0-11.927-5.343-11.927-11.927
c0-6.585,5.342-11.927,11.927-11.927c6.585,0,11.927,5.342,11.927,11.927C381.218,351.506,375.876,356.849,369.291,356.849z
M408.052,356.849c-6.585,0-11.927-5.343-11.927-11.927c0-6.585,5.342-11.927,11.927-11.927c6.585,0,11.927,5.342,11.927,11.927
C419.979,351.506,414.638,356.849,408.052,356.849z"/>
<path d="M89.792,83.919c-2.438,4.597-4.472,9.434-6.025,14.489c-11.741,0-26.663-2.71-26.663,8.735
c0,44.197-4.503,40.369,26.647,40.369c1.57,5.055,3.603,9.901,6.041,14.496c-18.526,18.52-20.95,16.804-5.186,32.558
c9.861-10.669,19.116-12.564,48.109-24.645c-15.28-10.071-25.405-27.332-25.405-46.954c0-31.02,25.235-56.255,56.247-56.255
c34.956,0,62.181,31.921,55.145,67.374l51.324-21.4c0-16.593-4.457-14.279-26.665-14.279c-1.552-5.055-3.602-9.9-6.04-14.497
c8.293-8.3,20.794-16.966,12.703-25.057c-31.432-31.439-25.375-31.696-47.427-9.652c-4.597-2.438-9.427-4.48-14.504-6.025
c0-11.717,2.702-26.664-8.713-26.664c-44.197,0-40.361-4.519-40.361,26.664c-5.062,1.545-9.907,3.587-14.504,6.025
c-8.293-8.3-16.942-20.778-25.049-12.703C68.238,67.714,67.71,61.851,89.792,83.919z"/>
<path d="M163.557,82.614c-22.253,0-40.345,18.099-40.345,40.353c0,18.433,12.485,33.853,29.397,38.661l46.092-19.21
C214.059,114.737,193.467,82.614,163.557,82.614z"/>
<path d="M294.92,119.543l-188.294,78.479c-36.308,15.133-13.914,70.86,23.123,55.456l188.31-78.471
c49.074,17.192,51.092,19.342,88.1-4.123c20.328-12.897,15.668-45.159,3.198-40.004l-32.984,13.736
c-5.761,2.406-12.423-0.312-14.846-6.127c-16.71-40.066-19.24-32.62,29.025-52.73c12.098-5.039-6.957-31.354-30.671-25.88
l-16.368,3.735C314.379,70.268,307.81,92.452,294.92,119.543z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4 6H20M4 12H20M4 18H20" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 347 B

+43
View File
@@ -0,0 +1,43 @@
import Image from "next/image";
import Link from 'next/link'
import styles from "./Navbar.module.css";
import logo from "../assets/logo.svg";
import menu from "../assets/menu.svg";
export default function Navbar() {
return (
<nav className={styles.navbar}>
<div className={`${styles.container} container shadow`}>
<div className={styles.header}>
<div>
<Link href="/">
<Image src={logo} width="32" height="32" alt="Logo" />
</Link>
</div>
<button className={styles.menuIcon} aria-label="Menu">
<Image src={menu} width="32" height="32" alt="Menu" />
</button>
</div>
<ul className={styles.links}>
<li>
<Link href="/" className={styles.active}>
Home
</Link>
</li>
<li>
<Link href="winners.html">Winners Podium</Link>
</li>
<li>
<a href="gallery.html">Gallery</a>
</li>
<li>
<a href="contact.html">Contact</a>
</li>
<li>
<a href="about.html">About</a>
</li>
</ul>
</div>
</nav>
);
}
+123
View File
@@ -0,0 +1,123 @@
.navbar {
/* Make navbar stay at top of screen (static) */
position: sticky;
top: 0;
left: 0;
right: 0;
z-index: 9999;
background-color: #fff;
}
/* Reset default styling on lists */
.navbar .container ul {
list-style-type: none;
margin-left: 0;
margin-bottom: 0;
}
/* Position nav items correctly */
.navbar .container li {
display: inline;
}
/* Padding betweeen nav items */
.navbar .container li:not(:last-of-type) {
padding-right: 1rem;
}
/* Reset default styling on links */
.navbar .container li a {
color: inherit;
text-decoration: none;
}
/* Underline links on hover */
.navbar .container li a:hover {
text-decoration: underline;
}
/* Make active link bold */
.navbar .container li a.active {
font-weight: bold;
}
.menuIcon {
font-size: 1.5rem;
cursor: pointer;
border: none;
background: none;
color: inherit;
}
/* Add styles for mobile view */
@media (max-width: 500px) {
.links {
display: flex;
flex-direction: column;
border-radius: 0;
position: absolute;
top: -10em;
left: 0;
right: 0;
z-index: -2;
font-size: 1rem;
transition-property: top border-radius;
transition-duration: 0.3s;
}
.links {
padding-left: 20px;
padding-right: 20px;
}
.links li {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
margin-bottom: 0.5rem;
}
.links.active {
top: 60px;
border-radius: 0 0 0.5em 0.5em;
}
.header {
display: flex;
justify-content: space-between;
align-items: center;
padding-top: 1rem;
padding-bottom: 1rem;
background-color: #fff;
}
}
/* Styles for desktop view */
@media (min-width: 501px) {
.links {
display: flex;
flex-direction: row;
}
.menuIcon {
display: none;
}
.navbar .container {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
padding-top: 1rem;
padding-bottom: 1rem;
}
}
.header {
display: flex;
flex-direction: row;
justify-content: space-between;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.
Binary file not shown.
+355
View File
@@ -0,0 +1,355 @@
/* Reset default margin/padding */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
/* Fonts */
font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
/*
These are variables that can be used anywhere in the CSS
Example of usage: background-color: var(--bg-light);
In this example the background would be white as --bg-light is set to white here
*/
/* Accent colour*/
--accent: #034ea2;
--accent-secondary: #085fc3;
/* Spacing */
--section-spacing: 4rem;
--spacing: 3rem;
/* Misc */
--transition: 0.2s ease-in-out;
}
/*
* Remove text-shadow in selection highlight:
* https://twitter.com/miketaylr/status/12228805301
*
* Customize the background color to match your design.
*/
::-moz-selection {
background: #b3d4fc;
text-shadow: none;
}
::selection {
background: #b3d4fc;
text-shadow: none;
}
/*
* A better looking default horizontal rule
*/
hr {
display: block;
height: 1px;
border: 0;
border-top: 1px solid #ccc;
margin: 1em 0;
padding: 0;
}
/*
* Remove the gap between audio, canvas, iframes,
* images, videos and the bottom of their containers:
* https://github.com/h5bp/html5-boilerplate/issues/440
*/
audio,
canvas,
iframe,
img,
svg,
video {
vertical-align: middle;
}
/*
* Remove default fieldset styles.
*/
fieldset {
border: 0;
margin: 0;
padding: 0;
}
/*
* Allow only vertical resizing of textareas.
*/
textarea {
resize: vertical;
}
/* ==========================================================================
Author's custom styles
========================================================================== */
/* ==========================================================================
Helper classes
========================================================================== */
/*
* Hide visually and from screen readers
*/
.hidden,
[hidden] {
display: none !important;
}
/*
* Hide only visually, but have it available for screen readers:
* https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
*
* 1. For long content, line feeds are not interpreted as spaces and small width
* causes content to wrap 1 word per line:
* https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
*/
.visually-hidden {
border: 0;
clip: rect(0, 0, 0, 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
white-space: nowrap;
width: 1px;
/* 1 */
}
/*
* Extends the .visually-hidden class to allow the element
* to be focusable when navigated to via the keyboard:
* https://www.drupal.org/node/897638
*/
.visually-hidden.focusable:active,
.visually-hidden.focusable:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
white-space: inherit;
width: auto;
}
/*
* Hide visually and from screen readers, but maintain layout
*/
.invisible {
visibility: hidden;
}
/*
* Clearfix: contain floats
*
* The use of `table` rather than `block` is only necessary if using
* `::before` to contain the top-margins of child elements.
*/
.clearfix::before,
.clearfix::after {
content: "";
display: table;
}
.clearfix::after {
clear: both;
}
/* ==========================================================================
EXAMPLE Media Queries for Responsive Design.
These examples override the primary ('mobile first') styles.
Modify as content requires.
========================================================================== */
@media only screen and (min-width: 35em) {
/* Style adjustments for viewports that meet the condition */
}
@media print,
(-webkit-min-device-pixel-ratio: 1.25),
(min-resolution: 1.25dppx),
(min-resolution: 120dpi) {
/* Style adjustments for high resolution devices */
}
/* ==========================================================================
Print styles.
Inlined to avoid the additional HTTP request:
https://www.phpied.com/delay-loading-your-print-css/
========================================================================== */
@media print {
*,
*::before,
*::after {
background: #fff !important;
color: #000 !important;
/* Black prints faster */
box-shadow: none !important;
text-shadow: none !important;
}
a,
a:visited {
text-decoration: underline;
}
a[href]::after {
content: " (" attr(href) ")";
}
abbr[title]::after {
content: " (" attr(title) ")";
}
/*
* Don't show links that are fragment identifiers,
* or use the `javascript:` pseudo protocol
*/
a[href^="#"]::after,
a[href^="javascript:"]::after {
content: "";
}
pre {
white-space: pre-wrap !important;
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
tr,
img {
page-break-inside: avoid;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
}
/*
* Typography
*/
h1 {
margin-bottom: 1rem;
}
h2 {
margin-bottom: 0.5rem;
}
@media screen and (min-width: 480px) {
h1 {
font-size: 2.5rem;
}
}
p,
.text ul {
margin-bottom: 1rem;
}
/* Add margin to lists */
.text ul {
margin-left: 1.5rem;
}
.animate-text {
clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
}
/* Links */
a,
[role="link"] {
color: var(--accent);
text-decoration: none;
-webkit-text-decoration: none;
}
/* Underline links when hovered */
a:hover,
[role="link"] {
text-decoration: underline;
-webkit-text-decoration: underline;
}
/*
* Constrained container
* This centeres elements horizontally and constrains the width so that elements are aligned (like a margin)
*/
.container {
margin-left: auto;
margin-right: auto;
max-width: 1440px;
padding-left: 20px;
padding-right: 20px;
position: relative;
}
/* Desktop */
@media (min-width: 920px) {
.container {
padding-left: 70px;
padding-right: 70px;
}
}
/* Centered container (centered verticially and horizontally on page) */
.centeredContainer {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 100vh;
}
/*
* Misc styling
*/
.rounded {
border-radius: 0.5rem;
}
.shadow {
box-shadow: 0px 0px 24px -12px rgba(0, 0, 0, 0.5);
-webkit-box-shadow: 0px 0px 24px -12px rgba(0, 0, 0, 0.5);
transition:
box-shadow var(--transition),
-webkit-box-shadow var(--transition);
}
/* Section */
section {
margin-bottom: var(--spacing);
}
+30
View File
@@ -0,0 +1,30 @@
import localFont from "next/font/local";
import "./globals.css";
import Navbar from "./components/Navbar"
const geistSans = localFont({
src: "./fonts/GeistVF.woff",
variable: "--font-geist-sans",
weight: "100 900",
});
const geistMono = localFont({
src: "./fonts/GeistMonoVF.woff",
variable: "--font-geist-mono",
weight: "100 900",
});
export const metadata = {
title: "Create Next App",
description: "Generated by create next app",
};
export default function RootLayout({ children }) {
return (
<html lang="en">
<body className={`${geistSans.variable} ${geistMono.variable}`}>
<Navbar />
{children}
</body>
</html>
);
}
+12
View File
@@ -0,0 +1,12 @@
import Image from "next/image";
import styles from "./page.module.css";
export default function Home() {
return (
<div className={styles.page}>
<main className={styles.main}>
<h1>Hello world</h1>
</main>
</div>
);
}
View File