Merge branch 'main' of ssh://git.hofer.link:2222/philipp/aef-website

This commit is contained in:
2025-08-03 09:47:49 +02:00
3 changed files with 99 additions and 66 deletions

View File

@@ -62,7 +62,7 @@ async fn index(State(backend): State<Arc<Backend>>, cookies: CookieJar) -> Respo
(rank.client.get_display_name()) (rank.client.get_display_name())
@if rank.client == client { (PreEscaped("</mark>")) } @if rank.client == client { (PreEscaped("</mark>")) }
} }
span.font-headline.cam { (rank.amount) (PreEscaped("&nbsp;")) "📸" } span.font-headline.font-lg { (rank.amount) (PreEscaped("&nbsp;")) "📸" }
} }
} }
} }

View File

@@ -29,7 +29,7 @@ pub(super) async fn index(cookies: CookieJar, headers: HeaderMap) -> Markup {
blockquote { blockquote {
"Digital Shadows confronts visitors with their digital self copied, measured, analyzed. An experiment on data power, visibility, and control in the digital age." "Digital Shadows confronts visitors with their digital self copied, measured, analyzed. An experiment on data power, visibility, and control in the digital age."
footer { footer {
cite { "René Mayrhofer" } cite { "Digital Shadow Team" }
} }
} }
p { p {
@@ -37,72 +37,32 @@ pub(super) async fn index(cookies: CookieJar, headers: HeaderMap) -> Markup {
} }
h2 { h2 {
mark { "TODO: Hier weitermachen" } "What to do with this information?"
} }
h2 { "Features" } div.grid.gap-lg {
h3 { "Sample Form" }
form {
fieldset {
label for="name" {
"Name"
input type="text" id="name" name="name" placeholder="Your name" required;
}
label for="email" {
"Email"
input
type="email"
id="email"
name="email"
placeholder="your@email.com"
required;
}
label for="message" {
"Message"
textarea
id="message"
name="message"
placeholder="Your message here..."
rows="4" {}
}
}
input type="submit" value="Send Message";
}
h3 { "Sample Grid" }
div.grid {
div {
article { article {
header { "Card 1" } header {
p { "This is the first card in a responsive grid layout." } "Visit our booth"
}
}
div {
article {
header { "Card 2" }
p {
"This is the second card. Pico CSS handles the responsive behavior automatically."
}
}
}
div {
article {
header { "Card 3" }
p { "Third card completes our example grid layout." }
}
}
} }
h3 { "Sample Buttons" } "We will be delighted to see you at our booth in the Post City Linz, where our team will show you, what happens when your Digital Shadow becomes allmighty."
p {
button { "Primary Button" } footer {
" " "Where: Postcity Linz"
button.secondary { "Secondary Button" } }
" " }
button.contrast { "Contrast Button" } article {
header {
"Play our game"
}
"Ever wandered through Linz with the aim to find (hidden) cameras? Well, if you are that kind of person than our 'Discover cameras' game will be ideal for you!"
footer {
"Where: all over Linz"
}
}
} }
}) })
} }

View File

@@ -10,10 +10,17 @@
--pico-font-family: 'Arial', sans-serif; --pico-font-family: 'Arial', sans-serif;
--pico-form-element-spacing-vertical: .3rem; --pico-form-element-spacing-vertical: .3rem;
--pico-form-element-spacing-horizontal: .8rem; --pico-form-element-spacing-horizontal: .8rem;
--pico-box-shadow: unset;
--pico-card-sectioning-background-color: unset;
}
h2 {
--pico-typography-spacing-top: 4rem;
} }
h1 { h1 {
font-family: 'Rubik Doodle Shadow', sans-serif; font-family: 'Rubik Doodle Shadow', sans-serif;
text-transform: uppercase;
font-size: clamp(3rem, 1.875rem + 2vw, 4.5rem); font-size: clamp(3rem, 1.875rem + 2vw, 4.5rem);
letter-spacing: 0.33rem; letter-spacing: 0.33rem;
margin-top: clamp(3rem, 1.875rem + 2vw, 5rem); margin-top: clamp(3rem, 1.875rem + 2vw, 5rem);
@@ -56,6 +63,7 @@ input[type="submit"]:active {
.font-headline { .font-headline {
font-family: 'Rubik Doodle Shadow', sans-serif; font-family: 'Rubik Doodle Shadow', sans-serif;
text-transform: uppercase;
} }
.rank { .rank {
@@ -65,10 +73,16 @@ input[type="submit"]:active {
letter-spacing: 0.33rem; letter-spacing: 0.33rem;
} }
.cam { .font-lg {
font-size: 1.3rem; font-size: 1.3rem;
} }
@media (min-width: 768px) {
.gap-lg {
grid-gap: 5rem;
}
}
ul.iterated { ul.iterated {
padding-left: unset; padding-left: unset;
} }
@@ -78,14 +92,24 @@ ul.iterated > li {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: flex-end; align-items: flex-end;
border-bottom: 3px solid white; border-bottom: 2px solid var(--pico-color);
} border-radius: 2% 6% 5% 4% / 1% 1% 2% 4%;
position: relative;
:host(:not([data-theme=dark])), :root:not([data-theme=dark]), [data-theme=light] ul.iterated > li { &::before {
border-bottom: 3px solid black; content: '';
border-bottom: 1px solid var(--pico-color);
display: block;
width: 100%;
height: 100%;
position: absolute;
top: 50%;
left: 50%;
transform: translate3d(-50%, -50%, 0) scale(1.015) rotate(0.5deg);
border-radius: 1% 1% 2% 4% / 2% 6% 5% 4%;
}
} }
/* Header */ /* Header */
#theme_switcher { #theme_switcher {
width: 20px; width: 20px;
@@ -102,3 +126,52 @@ header a {
.easteregg { .easteregg {
color: var(--pico-background-color); color: var(--pico-background-color);
} }
blockquote {
text-align: center;
font-size: 1.3rem;
margin-top: 4rem;
margin-bottom: 4rem;
font-family: 'Courier New', monospace;
border: none;
}
/** Style article*/
article {
display: inline-block;
border: 2px solid var(--pico-color);
border-radius: 2% 6% 5% 4% / 1% 1% 2% 4%;
position: relative;
padding: clamp(1rem, 1.875rem + 2vw, 3rem);
&::before {
content: '';
border: 1px solid var(--pico-color);
display: block;
width: 100%;
height: 100%;
position: absolute;
top: 50%;
left: 50%;
transform: translate3d(-50%, -50%, 0) scale(1.015) rotate(0.5deg);
border-radius: 1% 1% 2% 4% / 2% 6% 5% 4%;
}
}
article>header {
font-family: 'Rubik Doodle Shadow', sans-serif;
text-transform: uppercase;
letter-spacing: 0.2rem;
color: var(--pico-primary);
font-size: 1.8rem;
text-align: center;
border: unset;
background-color: unset;
}
article>footer {
font-family: 'Courier New', monospace;
border: unset;
background-color: unset;
}