Compare commits
5 Commits
e3a58556f7
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
5d5f0879c2
|
|||
|
046099b7f1
|
|||
|
d245f2f00a
|
|||
|
8ad7df30d7
|
|||
|
dcb1a59777
|
+5
-1
@@ -48,5 +48,9 @@
|
|||||||
"overrides": {
|
"overrides": {
|
||||||
"@types/react": "19.2.14",
|
"@types/react": "19.2.14",
|
||||||
"@types/react-dom": "19.2.3"
|
"@types/react-dom": "19.2.3"
|
||||||
}
|
},
|
||||||
|
"browserslist": [
|
||||||
|
"> 0.5% in NO",
|
||||||
|
"not dead"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-1
@@ -35,7 +35,22 @@ export default function RootLayout({
|
|||||||
<html lang="no">
|
<html lang="no">
|
||||||
<head>
|
<head>
|
||||||
<link rel="preconnect" href="https://use.typekit.net" crossOrigin="anonymous" />
|
<link rel="preconnect" href="https://use.typekit.net" crossOrigin="anonymous" />
|
||||||
<link rel="stylesheet" href="https://use.typekit.net/spa5smt.css" />
|
<link rel="preconnect" href="https://p.typekit.net" crossOrigin="anonymous" />
|
||||||
|
{/*
|
||||||
|
Load Adobe Fonts without blocking render: the stylesheet is requested
|
||||||
|
with media="print" (fetched but not applied), then the inline script
|
||||||
|
below swaps it to media="all" once it has loaded.
|
||||||
|
*/}
|
||||||
|
<link
|
||||||
|
id="typekit-css"
|
||||||
|
rel="stylesheet"
|
||||||
|
href="https://use.typekit.net/spa5smt.css"
|
||||||
|
media="print"
|
||||||
|
suppressHydrationWarning
|
||||||
|
/>
|
||||||
|
<script>
|
||||||
|
{`(function(){var l=document.getElementById('typekit-css');if(!l)return;function s(){l.media='all'}if(l.sheet){s()}else{l.addEventListener('load',s)}})();`}
|
||||||
|
</script>
|
||||||
{process.env.UMAMI_SCRIPT_URL && process.env.UMAMI_WEBSITE_ID && (
|
{process.env.UMAMI_SCRIPT_URL && process.env.UMAMI_WEBSITE_ID && (
|
||||||
<script
|
<script
|
||||||
defer
|
defer
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ export const EventItem = ({
|
|||||||
alt={featuredImage.alt}
|
alt={featuredImage.alt}
|
||||||
width={0}
|
width={0}
|
||||||
height={0}
|
height={0}
|
||||||
sizes="(max-width: 900px) 100vw, 25vw"
|
sizes="(max-width: 900px) calc(100vw - 2rem), 30vw"
|
||||||
loading={imageLoading}
|
loading={imageLoading}
|
||||||
fetchPriority={imageFetchPriority}
|
fetchPriority={imageFetchPriority}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -9,13 +9,13 @@ export const FeaturedEvents = ({ events }: { events: EventListItemFragment[] })
|
|||||||
<section className={styles.featuredEvents}>
|
<section className={styles.featuredEvents}>
|
||||||
<SectionHeader heading="Arrangementer" link="/arrangementer" linkText="Se alle arrangementer" />
|
<SectionHeader heading="Arrangementer" link="/arrangementer" linkText="Se alle arrangementer" />
|
||||||
<ul className={styles.eventList}>
|
<ul className={styles.eventList}>
|
||||||
{events.slice(0, 3).map((event, index) => (
|
{events.slice(0, 3).map((event) => (
|
||||||
<EventItem
|
<EventItem
|
||||||
key={event.id}
|
key={event.id}
|
||||||
event={event}
|
event={event}
|
||||||
mode="list"
|
mode="list"
|
||||||
imageLoading="eager"
|
imageLoading="eager"
|
||||||
imageFetchPriority={index < 2 ? "high" : undefined}
|
imageFetchPriority="high"
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -25,8 +25,12 @@ export const Header = () => {
|
|||||||
const { replace } = useRouter();
|
const { replace } = useRouter();
|
||||||
const pathname = usePathname();
|
const pathname = usePathname();
|
||||||
const [showMenu, setShowMenu] = useState(false);
|
const [showMenu, setShowMenu] = useState(false);
|
||||||
|
// Only enable the menu's slide/fade animations once the user has interacted,
|
||||||
|
// so they don't play on first page load
|
||||||
|
const [hasInteracted, setHasInteracted] = useState(false);
|
||||||
|
|
||||||
function toggleMenu() {
|
function toggleMenu() {
|
||||||
|
setHasInteracted(true);
|
||||||
setShowMenu(!showMenu);
|
setShowMenu(!showMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,6 +65,7 @@ export const Header = () => {
|
|||||||
<header
|
<header
|
||||||
className={styles.header}
|
className={styles.header}
|
||||||
data-show={showMenu}
|
data-show={showMenu}
|
||||||
|
data-animate={hasInteracted}
|
||||||
data-small={!isInView}
|
data-small={!isInView}
|
||||||
>
|
>
|
||||||
<Link href="/" aria-label="Hjem">
|
<Link href="/" aria-label="Hjem">
|
||||||
|
|||||||
@@ -54,6 +54,12 @@
|
|||||||
transition: transform .6s ease;
|
transition: transform .6s ease;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&[data-animate=false] {
|
||||||
|
.mainMenu {
|
||||||
|
animation: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.overlay {
|
.overlay {
|
||||||
@@ -282,4 +288,4 @@
|
|||||||
.logo {
|
.logo {
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user