Initial commit
This commit is contained in:
18
src/components/About.astro
Normal file
18
src/components/About.astro
Normal file
@ -0,0 +1,18 @@
|
||||
|
||||
<main class="flex gap-8 flex-col">
|
||||
<h1 class="text-4xl font-bold">Om STUDiO 2025</h1>
|
||||
<div class="flex gap-2 text-lg max-w-prose flex-col">
|
||||
<p>
|
||||
STUDiO 2025 er en studentfestival som arrangeres under fadderuka i Oslo fra 11. til 15. august på Chateau Neuf.
|
||||
</p>
|
||||
<p>
|
||||
Det blir sosiale og spennende arrangementer hver dag! Festivalen er for alle nye og gamle studenter i Oslo. Opplev høydepunktet i semesteret - ta med fadderbarna eller vennegjengen, eller kom alene og møt nye venner.
|
||||
</p>
|
||||
<p>
|
||||
Ikke gå glipp av den største studiekickoffen i Oslo!
|
||||
</p>
|
||||
<p>
|
||||
Flere av arrangementene våre er gratis, og alt er ID 18+.
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
14
src/components/FAQ.astro
Normal file
14
src/components/FAQ.astro
Normal file
@ -0,0 +1,14 @@
|
||||
<section class="flex flex-col gap-4">
|
||||
<h2 class="text-xl font-bold">Ofte stilte spørsmål</h2>
|
||||
<ul class="flex flex-col gap-2">
|
||||
<li>
|
||||
<strong>Hvordan finner jeg fram til STUDiO?</strong>
|
||||
<p>Vi anbefaler å ta kollektivt til Majorstuen, eller Borgen dersom du tar t-banen</p>
|
||||
<p><a href="https://neuf.no/praktisk#adkomst" target="_blank">Se mer info på Chateau Neuf sine nettsider</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Hvor lenge holder dere på?</strong>
|
||||
<p>Dørene åpner kl. 18 og stenger kl. 02 hver dag, hele uken</p>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
30
src/components/Footer.astro
Normal file
30
src/components/Footer.astro
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
import { Image } from 'astro:assets';
|
||||
import logo from '@assets/logo.png';
|
||||
import DNS from '@assets/DNS-logo-hvit.png';
|
||||
import { FaFacebook, FaInstagram, FaTiktok } from 'react-icons/fa';
|
||||
---
|
||||
<footer class="flex items-center justify-between bg-red-900 text-white py-16 px-8 mt-20">
|
||||
<div class="flex gap-2 items-center justify-center">
|
||||
<Image src={logo} alt="Logo for Studentfestivalen i Oslo" class="hero-logo" width={48} height={48}/>
|
||||
<p>Studentfestivalen i Oslo 2025</p>
|
||||
</div>
|
||||
<div class="flex gap-2 items-center justify-center">
|
||||
<Image src ={DNS} alt="Logo for Det Norske Studentersamfund" class="hero-logo" width={169} height={169}/>
|
||||
<div class="flex flex-col items-center justify-center gap-2">
|
||||
<address>Slemdalsveien 15, 0369 Oslo</address>
|
||||
<div>
|
||||
<div class="flex gap-4">
|
||||
<a href="https://www.facebook.com/events/692300293586085" target="_blank" rel="noopener noreferrer" aria-label="Facebook">
|
||||
<FaFacebook class="text-white text-2xl hover:text-gray-300" />
|
||||
</a>
|
||||
<a href="https://www.instagram.com/studentfestivalenioslo/" target="_blank" rel="noopener noreferrer" aria-label="Instagram">
|
||||
<FaInstagram class="text-white text-2xl hover:text-gray-300" />
|
||||
</a>
|
||||
<a href="https://www.tiktok.com/@studentersamfund" target="_blank" rel="noopener noreferrer" aria-label="TikTok">
|
||||
<FaTiktok class="text-white text-2xl hover:text-gray-300" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
9
src/components/Hero.astro
Normal file
9
src/components/Hero.astro
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
import logo from '@assets/logo.png';
|
||||
import { Image } from 'astro:assets';
|
||||
---
|
||||
|
||||
<section class="flex flex-col items-center justify-center h-[75vh] gap-4">
|
||||
<h1 class="text-4xl">Studentfestivalen i Oslo 2025</h1>
|
||||
<Image src={logo} alt="Studentfestivalen i Oslo Logo" width={250} height={250}/>
|
||||
</section>
|
15
src/components/Links.astro
Normal file
15
src/components/Links.astro
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
const links = [
|
||||
{ href: "https://www.neuf.no", text: "Chateau Neuf" },
|
||||
{ href: "https://forms.gle/PvEh37nvRyicLFXn6", text: "Bli frivillig!" },
|
||||
{ href: "https://www.instagram.com/studentfestivalenioslo/", text: "Instagram" },
|
||||
{ href: "https://www.facebook.com/studentfestivalen", text: "Facebook" },
|
||||
{ href: "https://www.tiktok.com/@studentersamfund", text: "TikTok" },
|
||||
];
|
||||
---
|
||||
|
||||
<div class="flex gap-4 justify-center items-center">
|
||||
{links.map(link => (
|
||||
<a href={link.href} target="_blank" rel="noopener noreferrer">{link.text}</a>
|
||||
))}
|
||||
</div>
|
47
src/components/Nav.astro
Normal file
47
src/components/Nav.astro
Normal file
@ -0,0 +1,47 @@
|
||||
<nav class="flex justify-between items-center px-10 py-4 bg-accent mb-4">
|
||||
<h1 class="text-xl font-bold text-white">
|
||||
<a href="/">STUDiO 2025</a>
|
||||
</h1>
|
||||
<ul class="flex space-x-4 text-white">
|
||||
<li><a href="/">Hjem</a></li>
|
||||
<li><a href="/program">Program</a></li>
|
||||
<li><a href="https://forms.gle/PvEh37nvRyicLFXn6" target="_blank">Bli frivillig</a></li>
|
||||
<li><a href="/about">Om</a></li>
|
||||
<li>
|
||||
<button onclick={() => toggleLanguage()} class="ml-4 bg-blue-500 text-white px-3 py-1 rounded">
|
||||
Norsk / English
|
||||
</button>
|
||||
</li>
|
||||
|
||||
<script>
|
||||
let currentLanguage = 'no';
|
||||
|
||||
function toggleLanguage() {
|
||||
currentLanguage = currentLanguage === 'no' ? 'en' : 'no';
|
||||
const links = document.querySelectorAll('nav ul li a');
|
||||
links.forEach(link => {
|
||||
const href = link.getAttribute('href');
|
||||
if (currentLanguage === 'en') {
|
||||
link.setAttribute('href', `/en-${href.slice(1)}`);
|
||||
} else {
|
||||
link.setAttribute('href', `/${href.replace('/en-', '')}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
<style>
|
||||
nav a {
|
||||
padding: 0.5em 0.5em;
|
||||
color: var(--text);
|
||||
border-bottom: 4px solid transparent;
|
||||
text-decoration: none;
|
||||
}
|
||||
nav a.active {
|
||||
text-decoration: none;
|
||||
border-bottom-color: var(--accent);
|
||||
}
|
||||
</style>
|
65
src/components/Program.astro
Normal file
65
src/components/Program.astro
Normal file
@ -0,0 +1,65 @@
|
||||
---
|
||||
const currentDate = new Date().toLocaleDateString("nb-NO", {
|
||||
weekday: 'long',
|
||||
year: 'numeric',
|
||||
month: 'long',
|
||||
day: 'numeric'
|
||||
});
|
||||
|
||||
const events = [
|
||||
{
|
||||
id: "9882",
|
||||
slug: "magic-the-gathering-monday",
|
||||
title: "Magic: The Gathering Monday",
|
||||
subtitle: "",
|
||||
nextOccurrence: {
|
||||
id: "9326",
|
||||
start: "2025-06-16 15:00:00+00:00",
|
||||
end: null,
|
||||
venue: {
|
||||
id: "52",
|
||||
slug: "galleriet",
|
||||
title: "Galleriet",
|
||||
preposition: "i",
|
||||
url: "/lokaler/galleriet/",
|
||||
},
|
||||
venueCustom: "",
|
||||
},
|
||||
url: "https://neuf.no/arrangementer/magic-the-gathering-monday",
|
||||
futureOccurrencesCount: 2,
|
||||
},
|
||||
// ...other events
|
||||
];
|
||||
|
||||
function formatDate(dateString) {
|
||||
const options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit' };
|
||||
return new Date(dateString).toLocaleDateString('no-NO', options);
|
||||
}
|
||||
|
||||
// Filter events for Monday
|
||||
const mondayEvents = events.filter(event => {
|
||||
const eventDate = new Date(event.nextOccurrence.start);
|
||||
return eventDate.getDay() === 1; // Monday is represented by 1
|
||||
});
|
||||
---
|
||||
|
||||
<div class="flex gap-4 flex-col">
|
||||
<div class="flex items-center justify-between">
|
||||
<h2 class="font-bold text-xl">Hva skjer i dag?</h2>
|
||||
<p>{currentDate}</p>
|
||||
</div>
|
||||
<ul>
|
||||
{events.map(event => (
|
||||
<li key={event.id}>
|
||||
<a href={event.url}>
|
||||
<h2>{event.title}</h2>
|
||||
{event.subtitle && <p>{event.subtitle}</p>}
|
||||
<p>
|
||||
{event.nextOccurrence.start && formatDate(event.nextOccurrence.start)}{" "}
|
||||
{event.nextOccurrence.venueCustom || `${event.nextOccurrence.venue.preposition} ${event.nextOccurrence.venue.title}`}
|
||||
</p>
|
||||
</a>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
6
src/components/Today.astro
Normal file
6
src/components/Today.astro
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
const currentDate = new Date().toLocaleDateString();
|
||||
---
|
||||
<div>
|
||||
<p> {currentDate}</p>
|
||||
</div>
|
20
src/components/Vors.astro
Normal file
20
src/components/Vors.astro
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
const videoUrl = "https://www.youtube.com/watch?v=t7T4RPBpTVY";
|
||||
---
|
||||
|
||||
<div style="width: 560px; height: 315px;">
|
||||
<div class="mt-4 text-xl mb-2">
|
||||
|
||||
Sett på låta for litt stemning før dere kommer🔥
|
||||
</div>
|
||||
<iframe
|
||||
width="560"
|
||||
height="315"
|
||||
src={videoUrl.replace("watch?v=", "embed/")}
|
||||
title="YouTube video player"
|
||||
frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowfullscreen>
|
||||
</iframe>
|
||||
|
||||
</div>
|
Reference in New Issue
Block a user