3 Commits

Author SHA1 Message Date
0f13e8eb66 Refactor Hero component styles and move inline styles to CSS file
This commit centralizes Hero component styles by moving previously inline styles in `Hero.astro` to `Hero.css`. Additionally, it introduces a `.hero-overlay` class with improved background styling, removes unused component-specific background settings, and aligns spacing for better maintainability and consistency.
2025-07-19 16:56:07 +02:00
b830f2edaf Introduce CSS variables for consistent theming
This commit refactors existing styles to use CSS variables, centralizing values for colors, spacing, typography, and other design elements. It also adds a `variables.css` file for managing these variables. Updated affected components and stylesheets for better maintainability and consistency.
2025-07-19 16:45:51 +02:00
3b011bc463 Remove comments from fly.toml for cleaner configuration 2025-07-19 16:26:01 +02:00
14 changed files with 449 additions and 171 deletions

View File

@ -8,7 +8,7 @@
"name": "gallus-pub-v1", "name": "gallus-pub-v1",
"version": "0.0.1", "version": "0.0.1",
"dependencies": { "dependencies": {
"astro": "^5.11.0" "astro": "^5.12.0"
} }
}, },
"node_modules/@astrojs/compiler": { "node_modules/@astrojs/compiler": {
@ -24,9 +24,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@astrojs/markdown-remark": { "node_modules/@astrojs/markdown-remark": {
"version": "6.3.2", "version": "6.3.3",
"resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.3.2.tgz", "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.3.3.tgz",
"integrity": "sha512-bO35JbWpVvyKRl7cmSJD822e8YA8ThR/YbUsciWNA7yTcqpIAL2hJDToWP5KcZBWxGT6IOdOkHSXARSNZc4l/Q==", "integrity": "sha512-DDRtD1sPvAuA7ms2btc9A7/7DApKqgLMNrE6kh5tmkfy8utD0Z738gqd3p5aViYYdUtHIyEJ1X4mCMxfCfu15w==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@astrojs/internal-helpers": "0.6.1", "@astrojs/internal-helpers": "0.6.1",
@ -44,7 +44,7 @@
"remark-rehype": "^11.1.2", "remark-rehype": "^11.1.2",
"remark-smartypants": "^3.0.2", "remark-smartypants": "^3.0.2",
"shiki": "^3.2.1", "shiki": "^3.2.1",
"smol-toml": "^1.3.1", "smol-toml": "^1.3.4",
"unified": "^11.0.5", "unified": "^11.0.5",
"unist-util-remove-position": "^5.0.0", "unist-util-remove-position": "^5.0.0",
"unist-util-visit": "^5.0.0", "unist-util-visit": "^5.0.0",
@ -1227,60 +1227,60 @@
] ]
}, },
"node_modules/@shikijs/core": { "node_modules/@shikijs/core": {
"version": "3.7.0", "version": "3.8.1",
"resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.7.0.tgz", "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.8.1.tgz",
"integrity": "sha512-yilc0S9HvTPyahHpcum8eonYrQtmGTU0lbtwxhA6jHv4Bm1cAdlPFRCJX4AHebkCm75aKTjjRAW+DezqD1b/cg==", "integrity": "sha512-uTSXzUBQ/IgFcUa6gmGShCHr4tMdR3pxUiiWKDm8pd42UKJdYhkAYsAmHX5mTwybQ5VyGDgTjW4qKSsRvGSang==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@shikijs/types": "3.7.0", "@shikijs/types": "3.8.1",
"@shikijs/vscode-textmate": "^10.0.2", "@shikijs/vscode-textmate": "^10.0.2",
"@types/hast": "^3.0.4", "@types/hast": "^3.0.4",
"hast-util-to-html": "^9.0.5" "hast-util-to-html": "^9.0.5"
} }
}, },
"node_modules/@shikijs/engine-javascript": { "node_modules/@shikijs/engine-javascript": {
"version": "3.7.0", "version": "3.8.1",
"resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.7.0.tgz", "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.8.1.tgz",
"integrity": "sha512-0t17s03Cbv+ZcUvv+y33GtX75WBLQELgNdVghnsdhTgU3hVcWcMsoP6Lb0nDTl95ZJfbP1mVMO0p3byVh3uuzA==", "integrity": "sha512-rZRp3BM1llrHkuBPAdYAzjlF7OqlM0rm/7EWASeCcY7cRYZIrOnGIHE9qsLz5TCjGefxBFnwgIECzBs2vmOyKA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@shikijs/types": "3.7.0", "@shikijs/types": "3.8.1",
"@shikijs/vscode-textmate": "^10.0.2", "@shikijs/vscode-textmate": "^10.0.2",
"oniguruma-to-es": "^4.3.3" "oniguruma-to-es": "^4.3.3"
} }
}, },
"node_modules/@shikijs/engine-oniguruma": { "node_modules/@shikijs/engine-oniguruma": {
"version": "3.7.0", "version": "3.8.1",
"resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.7.0.tgz", "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.8.1.tgz",
"integrity": "sha512-5BxcD6LjVWsGu4xyaBC5bu8LdNgPCVBnAkWTtOCs/CZxcB22L8rcoWfv7Hh/3WooVjBZmFtyxhgvkQFedPGnFw==", "integrity": "sha512-KGQJZHlNY7c656qPFEQpIoqOuC4LrxjyNndRdzk5WKB/Ie87+NJCF1xo9KkOUxwxylk7rT6nhlZyTGTC4fCe1g==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@shikijs/types": "3.7.0", "@shikijs/types": "3.8.1",
"@shikijs/vscode-textmate": "^10.0.2" "@shikijs/vscode-textmate": "^10.0.2"
} }
}, },
"node_modules/@shikijs/langs": { "node_modules/@shikijs/langs": {
"version": "3.7.0", "version": "3.8.1",
"resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.7.0.tgz", "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.8.1.tgz",
"integrity": "sha512-1zYtdfXLr9xDKLTGy5kb7O0zDQsxXiIsw1iIBcNOO8Yi5/Y1qDbJ+0VsFoqTlzdmneO8Ij35g7QKF8kcLyznCQ==", "integrity": "sha512-TjOFg2Wp1w07oKnXjs0AUMb4kJvujML+fJ1C5cmEj45lhjbUXtziT1x2bPQb9Db6kmPhkG5NI2tgYW1/DzhUuQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@shikijs/types": "3.7.0" "@shikijs/types": "3.8.1"
} }
}, },
"node_modules/@shikijs/themes": { "node_modules/@shikijs/themes": {
"version": "3.7.0", "version": "3.8.1",
"resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.7.0.tgz", "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.8.1.tgz",
"integrity": "sha512-VJx8497iZPy5zLiiCTSIaOChIcKQwR0FebwE9S3rcN0+J/GTWwQ1v/bqhTbpbY3zybPKeO8wdammqkpXc4NVjQ==", "integrity": "sha512-Vu3t3BBLifc0GB0UPg2Pox1naTemrrvyZv2lkiSw3QayVV60me1ujFQwPZGgUTmwXl1yhCPW8Lieesm0CYruLQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@shikijs/types": "3.7.0" "@shikijs/types": "3.8.1"
} }
}, },
"node_modules/@shikijs/types": { "node_modules/@shikijs/types": {
"version": "3.7.0", "version": "3.8.1",
"resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.7.0.tgz", "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.8.1.tgz",
"integrity": "sha512-MGaLeaRlSWpnP0XSAum3kP3a8vtcTsITqoEPYdt3lQG3YCdQH4DnEhodkYcNMcU0uW0RffhoD1O3e0vG5eSBBg==", "integrity": "sha512-5C39Q8/8r1I26suLh+5TPk1DTrbY/kn3IdWA5HdizR0FhlhD05zx5nKCqhzSfDHH3p4S0ZefxWd77DLV+8FhGg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@shikijs/vscode-textmate": "^10.0.2", "@shikijs/vscode-textmate": "^10.0.2",
@ -1517,14 +1517,14 @@
} }
}, },
"node_modules/astro": { "node_modules/astro": {
"version": "5.11.0", "version": "5.12.0",
"resolved": "https://registry.npmjs.org/astro/-/astro-5.11.0.tgz", "resolved": "https://registry.npmjs.org/astro/-/astro-5.12.0.tgz",
"integrity": "sha512-MEICntERthUxJPSSDsDiZuwiCMrsaYy3fnDhp4c6ScUfldCB8RBnB/myYdpTFXpwYBy6SgVsHQ1H4MuuA7ro/Q==", "integrity": "sha512-Oov5JsMFHuUmuO+Nx6plfv3nQNK1Xl/8CgLvR8lBhZTjYnraxhuPX5COVAzbom+YLgwaDfK7KBd8zOEopRf9mg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@astrojs/compiler": "^2.12.2", "@astrojs/compiler": "^2.12.2",
"@astrojs/internal-helpers": "0.6.1", "@astrojs/internal-helpers": "0.6.1",
"@astrojs/markdown-remark": "6.3.2", "@astrojs/markdown-remark": "6.3.3",
"@astrojs/telemetry": "3.3.0", "@astrojs/telemetry": "3.3.0",
"@capsizecss/unpack": "^2.4.0", "@capsizecss/unpack": "^2.4.0",
"@oslojs/encoding": "^1.1.0", "@oslojs/encoding": "^1.1.0",
@ -1567,6 +1567,7 @@
"rehype": "^13.0.2", "rehype": "^13.0.2",
"semver": "^7.7.1", "semver": "^7.7.1",
"shiki": "^3.2.1", "shiki": "^3.2.1",
"smol-toml": "^1.3.4",
"tinyexec": "^0.3.2", "tinyexec": "^0.3.2",
"tinyglobby": "^0.2.12", "tinyglobby": "^0.2.12",
"tsconfck": "^3.1.5", "tsconfck": "^3.1.5",
@ -4075,17 +4076,17 @@
} }
}, },
"node_modules/shiki": { "node_modules/shiki": {
"version": "3.7.0", "version": "3.8.1",
"resolved": "https://registry.npmjs.org/shiki/-/shiki-3.7.0.tgz", "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.8.1.tgz",
"integrity": "sha512-ZcI4UT9n6N2pDuM2n3Jbk0sR4Swzq43nLPgS/4h0E3B/NrFn2HKElrDtceSf8Zx/OWYOo7G1SAtBLypCp+YXqg==", "integrity": "sha512-+MYIyjwGPCaegbpBeFN9+oOifI8CKiKG3awI/6h3JeT85c//H2wDW/xCJEGuQ5jPqtbboKNqNy+JyX9PYpGwNg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@shikijs/core": "3.7.0", "@shikijs/core": "3.8.1",
"@shikijs/engine-javascript": "3.7.0", "@shikijs/engine-javascript": "3.8.1",
"@shikijs/engine-oniguruma": "3.7.0", "@shikijs/engine-oniguruma": "3.8.1",
"@shikijs/langs": "3.7.0", "@shikijs/langs": "3.8.1",
"@shikijs/themes": "3.7.0", "@shikijs/themes": "3.8.1",
"@shikijs/types": "3.7.0", "@shikijs/types": "3.8.1",
"@shikijs/vscode-textmate": "^10.0.2", "@shikijs/vscode-textmate": "^10.0.2",
"@types/hast": "^3.0.4" "@types/hast": "^3.0.4"
} }

View File

@ -9,6 +9,6 @@
"astro": "astro" "astro": "astro"
}, },
"dependencies": { "dependencies": {
"astro": "^5.11.0" "astro": "^5.12.0"
} }
} }

View File

@ -1,25 +1,33 @@
--- ---
import "../../styles/components/Drinks.css" import "../../styles/components/Drinks.css"
--- ---
<div class="Drinks"> <section class="Drinks">
<div class="title">Drinks</div> <h2 class="title">Drinks</h2>
<a href="/pdf/Menu.pdf" class="card-link" target="_blank" rel="noopener noreferrer">Getränkekarte</a> <a href="/pdf/Menu.pdf" class="card-link" target="_blank" rel="noopener noreferrer">Getränkekarte</a>
<div class="monats-hit">Monats Hit</div> <h3 class="monats-hit">Monats Hit</h3>
<div class="mate-vodka"> <div class="mate-vodka">
<div class="circle"></div> <div class="circle" title="Mate Vodka">
<span class="circle-label">Mate Vodka</span>
</div>
<div>Mate Vodka</div> <div>Mate Vodka</div>
</div> </div>
<div class="circle-row"> <div class="circle-row">
<div class="circle"></div> <div class="circle" title="Bier">
<div class="circle"></div> <span class="circle-label">Bier</span>
<div class="circle"></div> </div>
<div class="circle" title="Wein">
<span class="circle-label">Wein</span>
</div>
<div class="circle" title="Cocktails">
<span class="circle-label">Cocktails</span>
</div>
</div> </div>
<div class="note"> <p class="note">
Wir bieten eine Auswahl... Wir bieten eine Auswahl an erlesenen Getränken für jeden Geschmack. Besuche uns und entdecke unsere saisonalen Spezialitäten und Klassiker.
</div> </p>
</div> </section>

View File

@ -1,27 +1,27 @@
--- ---
// src/components/EventsGrid.astro // src/components/EventsGrid.astro
import HoverCard from "./HoverCard.astro";
interface Event { interface Event {
image: string;
title: string; title: string;
date: Date; date: Date;
description: string; description: string;
} }
const { events = [] }: { events?: Event[] } = Astro.props as { events?: Event[] }; const { events = [] }: { events?: Event[] } = Astro.props as { events?: Event[] };
import '/styles/components/EventsGrid.css'; import '../../styles/components/EventsGrid.css';
--- ---
<section class="events-gird container"> <section class="events-gird container">
{events.map((event: Event) => ( {events.map((event: Event) => (
<article class="event-card"> <HoverCard
title={event.title}
<h3>{event.title}</h3> date={event.date}
description={event.description}
<p class="date">{event.date}</p> image={event.image}
<p class="description">{event.description}</p> />
))}
</article>
))}
</section> </section>

View File

@ -11,7 +11,7 @@ import "../../styles/components/Hero.css"
<h1>Dein Irish Pub</h1> <h1>Dein Irish Pub</h1>
<p>Dein Irish Pub</p> <p>Im Herzen von St.Gallen</p>
<a href="#" class="button">Aktuelles ↓</a> <a href="#" class="button">Aktuelles ↓</a>
</div> </div>
@ -21,16 +21,5 @@ import "../../styles/components/Hero.css"
</section> </section>
<style> <style>
.hero-overlay {
background-image: url('/images/Background.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
margin-top: 2em;
}
h1 {
padding-top: 2em;
}
</style> </style>

View File

@ -1,21 +1,21 @@
--- ---
// src/components/HoverCard.astro // src/components/HoverCard.astro
const { title, description, image, link } = Astro.props; import "../../styles/components/HoverCard.css"
const { title, description, image = "", date} = Astro.props;
--- ---
<article class="hover-card"> <article class="hover-card">
<div class="image-container">
<img class="card-image" src={image} alt={title} />
</div>
<a href={link}> <h3 class="card-title">{title}</h3>
<h4 class="card_date">{date}</h4>
<img src={image} alt={title} />
<div class="info">
<h3>{title}</h3>
<div class="hover-text">
<div>
<p>{description}</p> <p>{description}</p>
</div> </div>
</a> </div>
</article> </article>

View File

@ -13,8 +13,8 @@ import Footer from "./Footer.astro";
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Gallus Pub</title> <title>Gallus Pub</title>
<link rel="stylesheet" href="/Gallus_Pub_v1/styles/index.css" /> <link rel="stylesheet" href="/styles/variables.css" />
<link rel="stylesheet" href="/styles/index.css" />
</head> </head>
<body> <body>

View File

@ -1,6 +1,5 @@
--- ---
// src/pages/index.astro // src/pages/index.astro
import "../../styles/index.css"
import Layout from "../components/Layout.astro"; import Layout from "../components/Layout.astro";
import Hero from "../components/Hero.astro"; import Hero from "../components/Hero.astro";
import Welcome from "../components/Welcome.astro"; import Welcome from "../components/Welcome.astro";
@ -8,10 +7,10 @@ import EventsGrid from '../components/EventsGrid.astro';
import Drinks from "../components/Drinks.astro"; import Drinks from "../components/Drinks.astro";
const events = [ const events = [
{ title: 'Karaoke Night', date: 'Mi, 23. Juli 2025', description: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua' }, {image: '/images/Logo.png', title: 'Karaoke Night', date: 'Mi, 23. Juli 2025', description: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua' },
{ title: 'Pub Quiz', date: 'Fr, 25. Juli 2025', description: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptuaLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua' }, {image: '/images/Logo.png', title: 'Pub Quiz', date: 'Fr, 25. Juli 2025', description: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptuaLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua' },
{ title: 'Live-Musik', date: 'Sa, 26. Juli 2025', description: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod' }, {image: '/images/Logo.png', title: 'Live-Musik', date: 'Sa, 26. Juli 2025', description: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod' },
{ title: 'Cocktail-Abend', date: 'So, 27. Juli 2025', description: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua' } {image: '/images/Logo.png', title: 'Cocktail-Abend', date: 'So, 27. Juli 2025', description: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua' }
]; ];
--- ---

View File

@ -1,57 +1,195 @@
.Drinks { .Drinks {
font-family: sans-serif; font-family: var(--font-family-primary);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
margin-top: 2rem; margin-top: 2rem;
text-align: center; text-align: center;
background-color: #fff; background-color: var(--color-accent-green);
color: #ceb39b; color: var(--color-accent-beige);
padding: 2rem; padding: 2rem;
width: 100%; width: 100%;
border-radius: var(--border-radius);
box-shadow: var(--box-shadow);
} }
.title { .title {
font-size: 1.5rem; font-size: var(--font-size-large);
margin-bottom: 1rem; margin-bottom: 1.5rem;
font-weight: bold;
color: var(--color-text);
text-transform: uppercase;
letter-spacing: 1px;
} }
.card-link { .card-link {
border: 1px solid #000; border: 2px solid var(--color-accent-beige);
padding: 0.5rem 1rem; padding: 0.75rem 1.5rem;
margin-bottom: 2rem; margin-bottom: 2.5rem;
color: #fff; color: var(--color-text);
background: linear-gradient(45deg, #ffa500, #ff7f00); background-color: var(--color-background);
text-decoration: none;
border-radius: var(--border-radius);
font-weight: bold;
transition: all var(--transition-standard);
display: inline-block;
}
.card-link:hover {
background-color: var(--color-accent-beige);
color: var(--color-accent-green);
transform: translateY(-3px);
box-shadow: var(--box-shadow);
} }
.monats-hit { .monats-hit {
margin-bottom: 1rem; margin-bottom: 1.5rem;
font-size: var(--font-size-medium);
color: var(--color-text);
font-weight: bold;
position: relative;
padding-bottom: 0.5rem;
}
.monats-hit::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 50px;
height: 2px;
background-color: var(--color-accent-beige);
} }
.mate-vodka { .mate-vodka {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
margin-bottom: 1rem; margin-bottom: 1.5rem;
padding: 1rem;
background-color: rgba(0, 0, 0, 0.2);
border-radius: var(--border-radius);
width: 80%;
max-width: 300px;
}
.mate-vodka div:not(.circle) {
margin-top: 0.5rem;
font-weight: bold;
color: var(--color-accent-beige);
} }
.circle { .circle {
height: 6em; height: 6em;
width: 6em; width: 6em;
border: 2px solid #000; border: 2px solid var(--color-accent-beige);
border-radius: 50%; border-radius: 50%;
margin: 1rem; margin: 0.5rem;
background: radial-gradient(circle at 30% 30%, rgba(206, 179, 155, 0.2), transparent 70%);
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
transition: all var(--transition-standard);
position: relative;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
}
.circle:hover {
transform: scale(1.05);
border-color: var(--color-text);
}
.circle-label {
opacity: 0;
color: var(--color-text);
font-weight: bold;
font-size: 0.8rem;
text-align: center;
transition: opacity var(--transition-standard);
position: absolute;
}
.circle:hover .circle-label {
opacity: 1;
} }
.circle-row { .circle-row {
display: flex; display: flex;
justify-content: center; justify-content: center;
gap: 2rem; flex-wrap: wrap;
margin: 1rem 0; gap: 1.5rem;
margin: 1.5rem 0;
} }
.note { .note {
margin-top: 2rem; margin-top: 2rem;
font-style: italic; font-style: italic;
text-align: center; text-align: center;
color: var(--color-text);
max-width: 80%;
line-height: 1.6;
padding: 1rem;
border-top: 1px solid rgba(206, 179, 155, 0.3);
border-bottom: 1px solid rgba(206, 179, 155, 0.3);
}
/* Responsive Design */
@media (max-width: 768px) {
.Drinks {
padding: 1.5rem;
}
.title {
font-size: calc(var(--font-size-medium) + 0.2rem);
}
.mate-vodka {
width: 90%;
}
.circle {
height: 5em;
width: 5em;
}
.circle-label {
font-size: 0.7rem;
}
/* Make labels always visible on touch devices */
.circle-label {
opacity: 1;
background-color: rgba(0, 0, 0, 0.5);
padding: 2px 5px;
border-radius: 3px;
}
.circle-row {
gap: 1rem;
}
.note {
max-width: 95%;
}
}
@media (max-width: 480px) {
.circle-row {
flex-direction: column;
align-items: center;
}
.card-link {
padding: 0.5rem 1rem;
}
.circle {
margin: 1rem 0;
}
.mate-vodka {
padding: 0.8rem;
}
} }

View File

@ -1,32 +1,20 @@
article { .events-gird {
margin-bottom: 1em; display: flex;
flex-wrap: wrap;
justify-content: center;
gap: var(--gap-standard);
padding: var(--padding-vertical) var(--padding-horizontal);
width: 100%;
} }
.events-grid { @media (min-width: 1600px) {
display: grid; .events-gird {
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); justify-content: space-between;
gap: 2rem; }
margin: 3rem 0;
} }
.event-card {
background-color: #2a2a2a; @media (max-width: 1599px) {
padding: 1.5rem; .events-gird {
border-radius: 8px; justify-content: space-around;
transition: transform 0.2s; }
}
.event-card:hover {
transform: translateY(-5px);
}
.event-card h3 {
margin-bottom: 0.5rem;
color: #ffa500;
}
.event-card .date {
font-size: 0.9rem;
color: #ccc;
margin-bottom: 1rem;
}
.event-card .description {
font-size: 1rem;
color: #eee;
} }

View File

@ -8,6 +8,19 @@
border-bottom: 1px solid #444; border-bottom: 1px solid #444;
} }
.hero-overlay {
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 1)), url('/images/Background.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
margin-top: 2em;
}
h1 {
padding-top: 2em;
}
.nav-main { .nav-main {
display: flex; display: flex;
align-items: center; align-items: center;
@ -76,7 +89,7 @@
left: 0; left: 0;
right: 0; right: 0;
bottom: 0; bottom: 0;
background: rgba(0, 0, 0, 0.5); /* Background is set in the component */
} }
.hero-content { .hero-content {

View File

@ -0,0 +1,112 @@
.hover-card {
position: relative;
width: 350px;
height: 400px;
border-radius: var(--border-radius);
background-color: var(--color-accent-green);
box-shadow: var(--box-shadow);
transition: transform var(--transition-standard);
overflow: hidden;
margin: var(--margin-standard);
display: flex;
flex-direction: column;
}
.hover-card:hover {
transform: translateY(-5px);
}
.card-title {
padding: 15px 15px 5px 15px;
margin: 0;
color: var(--color-accent-beige);
font-size: var(--font-size-medium);
text-align: center;
order: -2;
}
.card_date {
padding: 0 15px 15px 15px;
margin: 0;
color: var(--color-accent-beige);
font-size: var(--font-size-small);
text-align: center;
font-style: italic;
order: -1;
}
.image-container {
flex-grow: 1;
position: relative;
overflow: hidden;
}
.card-image {
width: 100%;
height: 100%;
object-fit: cover;
transition: opacity 0.3s ease;
}
.hover-text {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: var(--color-accent-green-transparent);
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
opacity: 0;
transition: opacity var(--transition-standard);
}
.hover-text div {
color: var(--color-accent-beige);
text-align: center;
max-height: 100%;
width: 100%;
overflow-y: auto;
padding-right: 5px;
}
.hover-text div::-webkit-scrollbar {
width: 5px;
}
.hover-text div::-webkit-scrollbar-track {
background: rgba(0, 0, 0, 0.1);
border-radius: 10px;
}
.hover-text div::-webkit-scrollbar-thumb {
background: var(--color-accent-beige);
border-radius: 10px;
}
.hover-text div {
scrollbar-width: thin;
scrollbar-color: var(--color-accent-beige) rgba(0, 0, 0, 0.1);
}
.hover-card:hover .hover-text {
opacity: 1;
}
.hover-card:hover .card-image {
opacity: 0.1;
}
.hover-text p {
margin: 0;
padding: 0;
}
@media (max-width: 768px) {
.hover-card {
width: 100%;
max-width: 350px;
}
}

View File

@ -6,15 +6,15 @@
} }
body { body {
font-family: 'Georgia', serif; font-family: var(--font-family-primary);
background-color: #1f1414; background-color: var(--color-background);
color: #f5f5f5; color: var(--color-text);
line-height: 1.6; line-height: var(--line-height);
} }
/* === Container für zentralen Content === */ /* === Container für zentralen Content === */
.container { .container {
max-width: 1140px; max-width: var(--container-max-width);
width: var(--container-width);
margin: 0 auto; margin: 0 auto;
padding: 0 1rem;
} }

View File

@ -0,0 +1,30 @@
:root {
/* Colors */
--color-background: #000;
--color-text: #f5f5f5;
--color-accent-green: #213b28;
--color-accent-beige: #ceb39b;
--color-accent-green-transparent: rgba(33, 59, 40, 0.95);
--color-shadow: rgba(0, 0, 0, 0.2);
--font-family-primary: 'Georgia', serif;
--font-size-small: 1rem;
--font-size-medium: 1.5rem;
--font-size-large: 2rem;
--line-height: 1.6;
--container-width: 100%;
--container-max-width: 1600px;
--padding-vertical: 2rem;
--padding-horizontal: 0;
--margin-standard: 1rem;
--gap-standard: 30px;
--border-radius: 8px;
--box-shadow: 0 4px 8px var(--color-shadow);
--transition-standard: 0.3s ease;
--breakpoint-mobile: 768px;
--breakpoint-desktop: 1600px;
}