From 3afcd90038d1aedc1475c179dabad204e19c06c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Str=C3=B8m-Andersen?= Date: Sat, 12 Sep 2026 23:37:20 +0200 Subject: [PATCH 01/10] feat: add font and set up page meta --- index.html | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 078aeb6..be84ff4 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,18 @@ - + - project-1 + Prosjekt 1 + + + +
+ From 684990befe28612c614699252a139c26b22a2eae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Str=C3=B8m-Andersen?= Date: Sat, 12 Sep 2026 23:38:40 +0200 Subject: [PATCH 02/10] feat: add favicon --- index.html | 7 ++++++- public/favicon.svg | 1 - public/favicon/about.txt | 6 ++++++ public/favicon/android-chrome-192x192.png | Bin 0 -> 9252 bytes public/favicon/android-chrome-512x512.png | Bin 0 -> 26754 bytes public/favicon/apple-touch-icon.png | Bin 0 -> 8342 bytes public/favicon/favicon-16x16.png | Bin 0 -> 587 bytes public/favicon/favicon-32x32.png | Bin 0 -> 1240 bytes public/favicon/favicon.ico | Bin 0 -> 15406 bytes public/favicon/site.webmanifest | 1 + public/icons.svg | 24 ---------------------- 11 files changed, 13 insertions(+), 26 deletions(-) delete mode 100644 public/favicon.svg create mode 100644 public/favicon/about.txt create mode 100644 public/favicon/android-chrome-192x192.png create mode 100644 public/favicon/android-chrome-512x512.png create mode 100644 public/favicon/apple-touch-icon.png create mode 100644 public/favicon/favicon-16x16.png create mode 100644 public/favicon/favicon-32x32.png create mode 100644 public/favicon/favicon.ico create mode 100644 public/favicon/site.webmanifest delete mode 100644 public/icons.svg diff --git a/index.html b/index.html index be84ff4..b88f56f 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,14 @@ - Prosjekt 1 + + + + + + diff --git a/public/favicon.svg b/public/favicon.svg deleted file mode 100644 index 6893eb1..0000000 --- a/public/favicon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/favicon/about.txt b/public/favicon/about.txt new file mode 100644 index 0000000..b7b10f6 --- /dev/null +++ b/public/favicon/about.txt @@ -0,0 +1,6 @@ +This favicon was generated using the following graphics from Twitter Twemoji: + +- Graphics Title: 1f4da.svg +- Graphics Author: Copyright 2020 Twitter, Inc and other contributors (https://github.com/twitter/twemoji) +- Graphics Source: https://github.com/twitter/twemoji/blob/v14.0.2/assets/svg/1f4da.svg +- Graphics License: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/) diff --git a/public/favicon/android-chrome-192x192.png b/public/favicon/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..53216df7bdda598a3c37762c1150d9baa325bd43 GIT binary patch literal 9252 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

bxpd%;JKrSAzuJJmZeZYgXe!U+ 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 - - - - - - - - - - - - - - - - - - - - - - - From 21450fc82a69c47cb790f27aad83a44f4e3ce1eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Str=C3=B8m-Andersen?= Date: Sat, 12 Sep 2026 23:40:25 +0200 Subject: [PATCH 03/10] chore: remove unused template assets --- src/assets/.gitkeep | 0 src/assets/hero.png | Bin 13057 -> 0 bytes src/assets/react.svg | 1 - src/assets/vite.svg | 1 - 4 files changed, 2 deletions(-) create mode 100644 src/assets/.gitkeep delete mode 100644 src/assets/hero.png delete mode 100644 src/assets/react.svg delete mode 100644 src/assets/vite.svg diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/assets/hero.png b/src/assets/hero.png deleted file mode 100644 index 02251f4b956c55af2d76fd0788124d7eee2b45eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13057 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 P00000NkvXXu0mjft=yBf diff --git a/src/assets/react.svg b/src/assets/react.svg deleted file mode 100644 index 6c87de9..0000000 --- a/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/vite.svg b/src/assets/vite.svg deleted file mode 100644 index 5101b67..0000000 --- a/src/assets/vite.svg +++ /dev/null @@ -1 +0,0 @@ -Vite From a3ab41518f6142f4f9685d7e3b1e651fb12d1501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Str=C3=B8m-Andersen?= Date: Sat, 12 Sep 2026 23:45:42 +0200 Subject: [PATCH 04/10] feat: add base styles and css variables --- src/index.css | 114 +++++++------------------------------------------- 1 file changed, 14 insertions(+), 100 deletions(-) diff --git a/src/index.css b/src/index.css index 5fb3313..94ac235 100644 --- a/src/index.css +++ b/src/index.css @@ -1,111 +1,25 @@ :root { - --text: #6b6375; - --text-h: #08060d; - --bg: #fff; - --border: #e5e4e7; - --code-bg: #f4f3ec; - --accent: #aa3bff; - --accent-bg: rgba(170, 59, 255, 0.1); - --accent-border: rgba(170, 59, 255, 0.5); - --social-bg: rgba(244, 243, 236, 0.5); - --shadow: - rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px; - - --sans: system-ui, 'Segoe UI', Roboto, sans-serif; - --heading: system-ui, 'Segoe UI', Roboto, sans-serif; - --mono: ui-monospace, Consolas, monospace; - - font: 18px/145% var(--sans); - letter-spacing: 0.18px; - color-scheme: light dark; - color: var(--text); - background: var(--bg); - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - - @media (max-width: 1024px) { - font-size: 16px; - } + --theme-color: #0a2a3f; + --background-color: #f6f3f1; + --footer-background-color: #2b2a2a; + --border-color: #ebe9e6; + --border-radius: 8px; } -@media (prefers-color-scheme: dark) { - :root { - --text: #9ca3af; - --text-h: #f3f4f6; - --bg: #16171d; - --border: #2e303a; - --code-bg: #1f2028; - --accent: #c084fc; - --accent-bg: rgba(192, 132, 252, 0.15); - --accent-border: rgba(192, 132, 252, 0.5); - --social-bg: rgba(47, 48, 58, 0.5); - --shadow: - rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px; - } - - #social .button-icon { - filter: invert(1) brightness(2); - } +* { + margin: 0; + padding: 0; + box-sizing: border-box; } #root { - width: 1126px; - max-width: 100%; - margin: 0 auto; - text-align: center; - border-inline: 1px solid var(--border); - min-height: 100svh; display: flex; flex-direction: column; - box-sizing: border-box; -} - -body { - margin: 0; -} - -h1, -h2 { - font-family: var(--heading); - font-weight: 500; - color: var(--text-h); -} - -h1 { - font-size: 56px; - letter-spacing: -1.68px; - margin: 32px 0; - @media (max-width: 1024px) { - font-size: 36px; - margin: 20px 0; - } -} -h2 { - font-size: 24px; - line-height: 118%; - letter-spacing: -0.24px; - margin: 0 0 8px; - @media (max-width: 1024px) { - font-size: 20px; - } -} -p { - margin: 0; -} - -code, -.counter { - font-family: var(--mono); - display: inline-flex; - border-radius: 4px; - color: var(--text-h); + min-height: 100svh; + background-color: var(--background-color); + font-family: "Open Sans", sans-serif; } -code { - font-size: 15px; - line-height: 135%; - padding: 4px 8px; - background: var(--code-bg); +.main { + flex: 1; } From 7818a25a6dd580c69cf1f12855acce82455ba256 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Str=C3=B8m-Andersen?= Date: Sat, 12 Sep 2026 23:46:26 +0200 Subject: [PATCH 05/10] chore: remove unused App.css --- src/App.css | 184 ---------------------------------------------------- 1 file changed, 184 deletions(-) delete mode 100644 src/App.css diff --git a/src/App.css b/src/App.css deleted file mode 100644 index f90339d..0000000 --- a/src/App.css +++ /dev/null @@ -1,184 +0,0 @@ -.counter { - font-size: 16px; - padding: 5px 10px; - border-radius: 5px; - color: var(--accent); - background: var(--accent-bg); - border: 2px solid transparent; - transition: border-color 0.3s; - margin-bottom: 24px; - - &:hover { - border-color: var(--accent-border); - } - &:focus-visible { - outline: 2px solid var(--accent); - outline-offset: 2px; - } -} - -.hero { - position: relative; - - .base, - .framework, - .vite { - inset-inline: 0; - margin: 0 auto; - } - - .base { - width: 170px; - position: relative; - z-index: 0; - } - - .framework, - .vite { - position: absolute; - } - - .framework { - z-index: 1; - top: 34px; - height: 28px; - transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg) - scale(1.4); - } - - .vite { - z-index: 0; - top: 107px; - height: 26px; - width: auto; - transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg) - scale(0.8); - } -} - -#center { - display: flex; - flex-direction: column; - gap: 25px; - place-content: center; - place-items: center; - flex-grow: 1; - - @media (max-width: 1024px) { - padding: 32px 20px 24px; - gap: 18px; - } -} - -#next-steps { - display: flex; - border-top: 1px solid var(--border); - text-align: left; - - & > div { - flex: 1 1 0; - padding: 32px; - @media (max-width: 1024px) { - padding: 24px 20px; - } - } - - .icon { - margin-bottom: 16px; - width: 22px; - height: 22px; - } - - @media (max-width: 1024px) { - flex-direction: column; - text-align: center; - } -} - -#docs { - border-right: 1px solid var(--border); - - @media (max-width: 1024px) { - border-right: none; - border-bottom: 1px solid var(--border); - } -} - -#next-steps ul { - list-style: none; - padding: 0; - display: flex; - gap: 8px; - margin: 32px 0 0; - - .logo { - height: 18px; - } - - a { - color: var(--text-h); - font-size: 16px; - border-radius: 6px; - background: var(--social-bg); - display: flex; - padding: 6px 12px; - align-items: center; - gap: 8px; - text-decoration: none; - transition: box-shadow 0.3s; - - &:hover { - box-shadow: var(--shadow); - } - .button-icon { - height: 18px; - width: 18px; - } - } - - @media (max-width: 1024px) { - margin-top: 20px; - flex-wrap: wrap; - justify-content: center; - - li { - flex: 1 1 calc(50% - 8px); - } - - a { - width: 100%; - justify-content: center; - box-sizing: border-box; - } - } -} - -#spacer { - height: 88px; - border-top: 1px solid var(--border); - @media (max-width: 1024px) { - height: 48px; - } -} - -.ticks { - position: relative; - width: 100%; - - &::before, - &::after { - content: ''; - position: absolute; - top: -4.5px; - border: 5px solid transparent; - } - - &::before { - left: 0; - border-left-color: var(--border); - } - &::after { - right: 0; - border-right-color: var(--border); - } -} From 6dc7048c62b3bde2e16108e05f724f239ecf5666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Str=C3=B8m-Andersen?= Date: Sat, 12 Sep 2026 23:50:43 +0200 Subject: [PATCH 06/10] style: add semicolons to imports --- src/main.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main.tsx b/src/main.tsx index bef5202..e964b78 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,7 +1,7 @@ -import { StrictMode } from 'react' -import { createRoot } from 'react-dom/client' -import './index.css' -import App from './App.tsx' +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; +import './index.css'; +import App from './App.tsx'; createRoot(document.getElementById('root')!).render( From 27cff10da1721f87a54f05edd16ddd9f11bec177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Str=C3=B8m-Andersen?= Date: Sat, 12 Sep 2026 23:52:18 +0200 Subject: [PATCH 07/10] feat: Add Header component --- src/components/Header/Header.module.css | 26 +++++++++++++++++++++++++ src/components/Header/Header.tsx | 12 ++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/components/Header/Header.module.css create mode 100644 src/components/Header/Header.tsx diff --git a/src/components/Header/Header.module.css b/src/components/Header/Header.module.css new file mode 100644 index 0000000..7cc3d2b --- /dev/null +++ b/src/components/Header/Header.module.css @@ -0,0 +1,26 @@ +.header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 15px 40px; + background-color: white; + border-bottom: 2px solid var(--theme-color); +} + +.title { + margin: 0; + font-size: 1.5rem; +} + +.favoritesButton { + background-color: white; + border: 1px solid var(--border-color); + border-radius: var(--border-radius); + padding: 8px 16px; + cursor: pointer; + font-size: 0.925rem; + + &:hover { + border-color: var(--theme-color); + } +} diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx new file mode 100644 index 0000000..767e7ec --- /dev/null +++ b/src/components/Header/Header.tsx @@ -0,0 +1,12 @@ +import styles from './Header.module.css'; + +function Header() { + return ( +

+

Applikasjonsnavn

+ +
+ ); +} + +export default Header; From 088bfc67337d7f716eab60bf7ee395c9d7ce0c8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Str=C3=B8m-Andersen?= Date: Sat, 12 Sep 2026 23:54:39 +0200 Subject: [PATCH 08/10] feat: Add Footer component --- src/components/Footer/Footer.module.css | 16 ++++++++++++++++ src/components/Footer/Footer.tsx | 12 ++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/components/Footer/Footer.module.css create mode 100644 src/components/Footer/Footer.tsx diff --git a/src/components/Footer/Footer.module.css b/src/components/Footer/Footer.module.css new file mode 100644 index 0000000..8ce3581 --- /dev/null +++ b/src/components/Footer/Footer.module.css @@ -0,0 +1,16 @@ +.footer { + display: flex; + align-items: center; + justify-content: space-between; + + padding: 30px 40px; + background-color: var(--footer-background-color); + color: white; + font-size: 0.875rem; + + @media only screen and (max-width: 800px) { + flex-direction: column; + justify-content: center; + gap: 4px; + } +} diff --git a/src/components/Footer/Footer.tsx b/src/components/Footer/Footer.tsx new file mode 100644 index 0000000..9831a2f --- /dev/null +++ b/src/components/Footer/Footer.tsx @@ -0,0 +1,12 @@ +import styles from './Footer.module.css'; + +function Footer() { + return ( +
+

IT2810 Webutvikling - Gruppe 37 - Prosjekt 1

+

2026

+
+ ); +} + +export default Footer; From 523bc3f078d9e985cf05fde555e9a5b3e35534e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Str=C3=B8m-Andersen?= Date: Sat, 12 Sep 2026 23:56:27 +0200 Subject: [PATCH 09/10] feat: set up basic app layout --- src/App.tsx | 122 +++------------------------------------------------- 1 file changed, 7 insertions(+), 115 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 9ca8e8d..8a47004 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,122 +1,14 @@ -import { useState } from 'react' -import heroImg from './assets/hero.png' -import reactLogo from './assets/react.svg' -import viteLogo from './assets/vite.svg' -import './App.css' +import Header from './components/Header/Header.tsx'; +import Footer from './components/Footer/Footer.tsx'; function App() { - const [count, setCount] = useState(0) - return ( <> -
-
- - React logo - Vite logo -
-
-

Get started

-

- Edit src/App.tsx and save to test HMR -

-
- -
- -
- -
-
- -

Documentation

-

Your questions, answered

- -
-
- -

Connect with us

-

Join the Vite community

- -
-
- -
-
+
+
+