Skip to content

Commit df8d96a

Browse files
committed
feat: add weekly-offer notice with social media links
Adds a "Wochenangebot" section below the Speisekarte pointing to Instagram and Facebook for weekly changing offers. Styled as a slightly rotated, dashed-border box in the paper-menu aesthetic with uniform golden shimmer text; links keep the regular link color so they stay recognizable. Content (copy, social URLs, hint) is sourced from site.yml and therefore editable directly via GitHub.
1 parent a5eddb6 commit df8d96a

5 files changed

Lines changed: 94 additions & 0 deletions

File tree

src/content/site.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,19 @@ footer_hours_label: "Öffnungszeiten: "
2626
footer_address_label: "Anfahrt: "
2727
footer_copyright: "Das Frittierwerk – Alle Rechte vorbehalten."
2828

29+
# Social-Media-Profile (werden im Wochenangebot verlinkt)
30+
social:
31+
instagram: "https://www.instagram.com/dasfrittierwerk/"
32+
facebook: "https://www.facebook.com/dasfrittierwerk"
33+
34+
# Wochenangebot – wechselnde Angebote, Verweis auf Social Media
35+
wochenangebot:
36+
title: "Wochenangebot"
37+
intro: "Entdecke unsere wöchentlich wechselnden Angebote auf {instagram} oder {facebook}."
38+
hint: "Nur solange der Vorrat reicht!"
39+
instagram_label: "Instagram"
40+
facebook_label: "Facebook"
41+
2942
# PWA / web app manifest
3043
theme_color: "#1a0f0a"
3144
background_color: "#1a0f0a"

src/scss/_menu.scss

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,44 @@
5454
}
5555
}
5656

57+
// Dashed "Besonderheit"-Box im Stil der Papier-Speisekarte
58+
// Genutzt z.B. für das Wochenangebot mit Verweis auf Social Media
59+
.special-notice {
60+
max-width: 40rem;
61+
padding: $spacer * 1.75 $spacer * 1.75;
62+
border: 2px dashed $gold-dark;
63+
border-radius: $border-radius;
64+
background-color: rgba($dark-bg, 0.5);
65+
transform: rotate(-1.5deg);
66+
transition: border-color 0.2s ease, transform 0.3s ease;
67+
68+
&:hover {
69+
border-color: $gold;
70+
transform: rotate(0);
71+
}
72+
73+
// Einheitliche Schrift im Stil der Papier-Speisekarte
74+
&__text,
75+
&__hint {
76+
font-family: $headings-font-family;
77+
font-size: $font-size-lg;
78+
font-weight: 600;
79+
line-height: $line-height-lg;
80+
letter-spacing: 0.02em;
81+
}
82+
83+
// Links behalten ihre reguläre Linkfarbe (kein Shine), damit sie erkennbar bleiben.
84+
// .text-shine setzt `color: transparent !important` — darum hier ebenfalls mit !important.
85+
a {
86+
color: $link-color !important;
87+
88+
&:hover,
89+
&:focus {
90+
color: $link-hover-color !important;
91+
}
92+
}
93+
}
94+
5795
.werkmenu-card {
5896
border: $navbar-border-width solid $gold-dark;
5997
border-radius: $border-radius;

src/ts/types/content.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,19 @@ export interface ContactData {
4545
directions_services?: DirectionsService[];
4646
}
4747

48+
export interface SocialLinks {
49+
instagram?: string;
50+
facebook?: string;
51+
}
52+
53+
export interface WochenangebotData {
54+
title?: string;
55+
intro?: string;
56+
hint?: string;
57+
instagram_label?: string;
58+
facebook_label?: string;
59+
}
60+
4861
export interface SiteData {
4962
name?: string;
5063
title?: string;
@@ -59,6 +72,8 @@ export interface SiteData {
5972
footer_hours_label?: string;
6073
footer_address_label?: string;
6174
footer_copyright?: string;
75+
social?: SocialLinks;
76+
wochenangebot?: WochenangebotData;
6277
}
6378

6479
export interface MenuItem {

src/views/pages/index.pug

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ extends ../layouts/main.pug
22

33
block content
44
include ../partials/speisekarte.pug
5+
include ../partials/wochenangebot.pug
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-
2+
var wa = site.wochenangebot || {};
3+
var social = site.social || {};
4+
var instagramUrl = social.instagram || '';
5+
var facebookUrl = social.facebook || '';
6+
var instagramLabel = wa.instagram_label || 'Instagram';
7+
var facebookLabel = wa.facebook_label || 'Facebook';
8+
var instagramLink = instagramUrl
9+
? '<a href="' + instagramUrl + '" target="_blank" rel="noopener">' + instagramLabel + '</a>'
10+
: instagramLabel;
11+
var facebookLink = facebookUrl
12+
? '<a href="' + facebookUrl + '" target="_blank" rel="noopener">' + facebookLabel + '</a>'
13+
: facebookLabel;
14+
var introTemplate = wa.intro || 'Entdecke unsere wöchentlich wechselnden Angebote auf {instagram} oder {facebook}.';
15+
var introHtml = introTemplate
16+
.replace('{instagram}', instagramLink)
17+
.replace('{facebook}', facebookLink);
18+
19+
section(id=slugify(wa.title || 'Wochenangebot'))
20+
.py-5
21+
.container
22+
h2.section-title.text-shine.text-center.text-uppercase= wa.title || 'Wochenangebot'
23+
.special-notice.mx-auto.text-center
24+
p.special-notice__text.text-shine.mb-3!= introHtml
25+
if wa.hint
26+
p.special-notice__hint.text-shine.mb-0
27+
| ! #{wa.hint}

0 commit comments

Comments
 (0)