www.hip-berlin.de/src/layouts/Layout.astro

316 lines
6.5 KiB
Plaintext
Raw Normal View History

2022-11-06 20:02:17 +00:00
---
2022-11-23 23:17:29 +00:00
import Socials from '../components/Socials.astro'
2022-11-06 20:02:17 +00:00
export interface Props {
2022-11-16 14:47:44 +00:00
title?: string
2022-11-06 20:02:17 +00:00
}
const { title } = Astro.props
2022-11-16 14:47:44 +00:00
const permaTitle = 'Hacking in Parallel 2022 //// Berlin'
2022-11-06 20:02:17 +00:00
---
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8' />
<meta name='viewport' content='width=device-width' />
<link rel='icon' type='image/svg+xml' href='/favicon.svg' />
2022-11-16 14:47:44 +00:00
<title>{`${title ? title + ' / ' : ''}${permaTitle}`}</title>
2022-12-24 20:53:24 +00:00
<script type="text/javascript" src="https://pretalx.c3voc.de/hip-berlin-2022/schedule/widget/v2.en.js"></script>
2022-12-26 11:59:48 +00:00
<meta name="viewport" content="width=device-width, initial-scale=1" />
2022-11-06 20:02:17 +00:00
</head>
<body>
2022-11-18 14:09:45 +00:00
<header class='site-header'>
2022-11-23 22:55:59 +00:00
<a href='/' class={title ? '' : 'invisible'}>
<img class='logo' src='/design-resources/logo/slashes.svg' />
</a>
2022-11-23 23:34:25 +00:00
<input type='checkbox' id='nav-toggle' />
2022-11-23 21:41:04 +00:00
<nav>
2022-11-23 22:48:16 +00:00
<label for='nav-toggle' class='mobile-only'>Close</label>
<ul class='nav-links'>
<li>
<a href='/'>Home</a>
2022-11-23 23:34:25 +00:00
</li>
2022-12-11 20:36:17 +00:00
<li>
<a
2022-12-24 20:53:24 +00:00
href='/schedule/'
2022-12-11 20:36:17 +00:00
target='_blank'
rel='noopener,noreferrer'>Schedule</a
>
</li>
2022-11-23 21:41:04 +00:00
<li>
2022-12-01 17:04:05 +00:00
<a
href='https://pretix.hip-berlin.de/hip2022/hip2022/'
target='_blank'
2022-12-11 20:36:17 +00:00
rel='noopener,noreferrer'>Tickets</a
2022-11-23 21:41:04 +00:00
>
2022-11-23 23:34:25 +00:00
</li>
<li>
<a href='/resources/'>Resources</a>
</li>
2022-11-29 20:23:00 +00:00
<li>
<a href='/coc/'>CoC</a>
</li>
2022-12-01 17:04:05 +00:00
<li>
<a
href='https://engelsystem.hip-berlin.de/'
target='_blank'
rel='noopener,noreferrer'>Angel Center</a
>
</li>
2022-11-23 21:41:04 +00:00
</ul>
2022-11-23 23:17:29 +00:00
<Socials additionalClass='mobile-only' />
2022-11-23 21:41:04 +00:00
</nav>
2022-11-23 22:48:16 +00:00
<label for='nav-toggle' class='mobile-only gradient-border'>Menu</label>
2022-11-23 23:17:29 +00:00
<Socials additionalClass='desktop-only' />
2022-11-18 14:09:45 +00:00
</header>
2022-11-06 20:02:17 +00:00
<slot />
2022-11-16 14:47:44 +00:00
<footer>
<a href='/imprint/'>Imprint</a> ////
<a href='/privacy/'>Privacy</a>
</footer>
2022-11-16 14:27:52 +00:00
<style is:global lang='scss'>
:root {
--background: #000;
--headline-color: #fff;
--text-color: #7a7879;
--gradient: linear-gradient(
95.7deg,
#44b4e9 -2.12%,
#008317 41.14%,
#fed61e 64.72%,
#ff9900 77.58%,
#6c2400 96.25%
);
}
@font-face {
font-family: 'IBM Plex Mono';
font-style: normal;
font-weight: 500;
src: local('IBM Plex Mono Medm'), local('IBMPlexMono-Medm'),
url('/fonts/IBMPlexMono-Medium-Latin1.woff2') format('woff2');
unicode-range: U+0000, U+000D, U+0020-007E, U+00A0-00FF, U+0131,
U+0152-0153, U+02C6, U+02DA, U+02DC, U+2013-2014, U+2018-201A,
U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC,
U+2122, U+2212, U+FB01-FB02;
}
2022-11-17 17:50:11 +00:00
*,
*:after,
*:before {
box-sizing: border-box;
}
2022-11-16 14:27:52 +00:00
html {
font-family: 'IBM Plex Mono', monospace;
background-color: var(--background);
color: var(--text-color, #cdcfdb);
font-size: 1rem;
line-height: 1.5;
font-weight: 500;
2022-11-17 17:50:11 +00:00
width: 100vw;
2022-11-16 15:50:25 +00:00
}
body {
margin: 0;
padding: 0;
2022-11-17 17:50:11 +00:00
overflow-x: hidden;
width: 100%;
2022-11-16 15:50:25 +00:00
}
2022-11-18 14:09:45 +00:00
.site-header {
2022-11-23 22:48:16 +00:00
max-height: 4.5rem;
2022-11-18 14:09:45 +00:00
display: flex;
justify-content: space-between;
2022-11-23 23:38:48 +00:00
max-width: 90rem;
2022-11-23 21:45:42 +00:00
margin: 0 auto;
2022-11-23 22:48:16 +00:00
align-items: stretch;
> label {
font-size: 1.5rem;
margin: auto 1.5rem;
padding: 0.25rem 0.75rem;
}
2022-11-18 14:09:45 +00:00
}
2022-11-18 14:00:31 +00:00
.logo {
2022-11-23 21:41:04 +00:00
width: 6.4rem;
2022-11-18 14:09:45 +00:00
height: 100%;
2022-11-23 22:48:16 +00:00
margin: auto;
2022-11-18 14:09:45 +00:00
margin-left: 0.75rem;
2022-11-23 21:41:04 +00:00
}
nav {
2022-11-23 22:48:16 +00:00
// mobile menu styles
position: fixed;
height: 100vh;
width: 100vw;
background: var(--background);
text-align: center;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
padding: 2rem 2rem 4rem 2rem;
2022-11-23 22:48:16 +00:00
font-size: 1.5rem;
transform: translateX(100vw);
transition: transform 0.25s ease-in-out;
2022-12-26 11:59:48 +00:00
z-index: 100000;
2022-11-29 20:23:00 +00:00
@supports (height: 100dvh) {
2022-12-01 17:04:05 +00:00
height: 100dvh;
padding: 2rem;
}
2022-11-23 22:48:16 +00:00
label {
align-self: flex-end;
}
.nav-links {
// height: 100%;
2022-11-23 21:41:04 +00:00
list-style: none;
padding: 0;
gap: 2rem;
2022-11-23 23:34:25 +00:00
li:not(:last-child):after {
content: '////';
opacity: 0.5;
display: block;
}
2022-11-23 21:41:04 +00:00
}
2022-11-23 22:48:16 +00:00
2022-11-23 23:34:25 +00:00
// desktop menu styles
2022-12-01 17:04:05 +00:00
@media screen and (min-width: 1024px) {
2022-11-23 22:48:16 +00:00
flex-direction: row;
padding: 0;
position: relative;
2022-11-23 23:34:25 +00:00
font-size: 1rem;
2022-11-23 22:48:16 +00:00
width: 100%;
2022-11-23 23:34:25 +00:00
height: auto;
2022-11-23 22:48:16 +00:00
transform: none;
background: none;
justify-content: center;
.nav-links {
display: flex;
2022-11-23 23:05:48 +00:00
gap: 0.75rem;
2022-11-23 23:34:25 +00:00
li:not(:last-child):after {
content: '/';
display: inline;
}
2022-11-23 22:48:16 +00:00
}
2022-11-23 21:41:04 +00:00
}
2022-11-18 14:00:31 +00:00
}
2022-11-23 21:57:43 +00:00
#nav-toggle {
overflow: hidden;
2022-11-23 22:48:16 +00:00
position: absolute;
left: -99999px;
2022-11-23 23:34:25 +00:00
top: -9999px;
2022-11-23 22:48:16 +00:00
}
#nav-toggle:checked + nav {
transform: none;
2022-11-23 21:57:43 +00:00
}
2022-11-16 15:50:25 +00:00
.socials {
list-style: none;
2022-11-18 14:09:45 +00:00
display: inline-flex;
2022-11-23 22:48:16 +00:00
justify-content: center;
2022-11-16 15:50:25 +00:00
margin: 0;
padding: 1.5rem;
2022-11-23 22:48:16 +00:00
width: 100%;
gap: 2rem;
2022-11-16 15:50:25 +00:00
li {
height: 100%;
flex: 0 1 1.25rem;
2022-11-16 15:50:25 +00:00
img {
height: 100%;
}
}
2022-11-23 22:48:16 +00:00
&.desktop-only {
2022-12-01 17:04:05 +00:00
height: 4.2rem;
2022-11-23 22:48:16 +00:00
width: auto;
2022-12-01 17:04:05 +00:00
gap: 1rem;
2022-11-23 22:48:16 +00:00
ul {
flex-direction: row;
}
}
2022-11-16 14:27:52 +00:00
}
2022-11-16 14:47:44 +00:00
main {
margin: auto;
padding: 1.5rem;
2022-11-17 17:50:11 +00:00
width: 100%;
2022-11-16 14:47:44 +00:00
max-width: 64ch;
}
2022-11-16 14:27:52 +00:00
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: 500;
2022-11-16 15:50:25 +00:00
color: var(--headline-color);
2022-11-16 14:27:52 +00:00
}
a {
color: var(--headline-color);
text-decoration: none;
2022-11-16 15:50:25 +00:00
transition: opacity 0.2s ease-in-out;
&:hover {
2022-11-17 17:50:11 +00:00
opacity: 0.75;
2022-11-16 15:50:25 +00:00
}
2022-11-16 14:27:52 +00:00
}
2022-11-18 13:48:47 +00:00
button {
appearance: none;
border: none;
color: inherit;
font-family: inherit;
font-size: inherit;
font-weight: 500;
cursor: pointer;
}
2022-11-16 14:27:52 +00:00
.gradient-bg {
background: var(--gradient);
padding: 1.5rem;
color: var(--background);
border-radius: 1.5rem;
}
.gradient-border {
position: relative;
background-clip: padding-box;
background: var(--background);
border-radius: 1.5rem;
padding: 1.5rem;
2022-11-18 13:48:47 +00:00
transition: border-radius 0.2s ease-in-out;
2022-11-16 14:27:52 +00:00
&::before {
position: absolute;
inset: 0;
margin: -3px;
z-index: -1;
background: var(--gradient);
border-radius: inherit;
content: '';
}
2022-11-18 13:48:47 +00:00
&:is(button):hover {
border-radius: 0.5rem;
}
2022-11-16 14:27:52 +00:00
}
2022-11-16 14:47:44 +00:00
footer {
font-size: 0.75rem;
text-align: center;
padding: 1.5rem 0;
}
2022-11-23 22:48:16 +00:00
2022-12-01 17:04:05 +00:00
@media screen and (max-width: 1024px) {
2022-11-23 22:48:16 +00:00
.desktop-only {
display: none;
}
}
2022-12-01 17:04:05 +00:00
@media screen and (min-width: 1024px) {
2022-11-23 22:48:16 +00:00
.mobile-only {
display: none;
}
.desktop-only {
display: inherit;
}
}
2022-11-23 22:55:59 +00:00
.invisible {
opacity: 0;
pointer-events: none;
}
2022-11-16 14:27:52 +00:00
</style>
2022-11-06 20:02:17 +00:00
</body>
</html>