61 Commits

Author SHA1 Message Date
1f94bbca15 Remove redundant event timing and reservation details from index.astro
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-10-25 16:58:43 +02:00
5ef15f0b5c Update event time and pricing details in index.astro
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-10-25 16:57:29 +02:00
020bfca731 Remove commented file reference from index.astro
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-10-25 16:47:59 +02:00
ac864ba054 Update event details and assets in index.astro and public/images
- Swapped event titles, dates, and images for better accuracy.
- Replaced `kevin_mcflannigan.png` with `Event4.png`.
- Updated `Menu.pdf`.
2025-10-25 16:29:39 +02:00
e93ba5d29b Remove outdated event details from index.astro
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-09-23 11:06:37 +02:00
k
feb137471d Update event details and images for improved content clarity and presentation.
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-09-21 15:31:37 +02:00
k
0622d190d1 Remove comment.
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-09-17 12:14:05 +02:00
k
2867678223 Remove tappable hint text from HoverCard styles. 2025-09-17 12:06:25 +02:00
k
096ac9f789 Update Getränkekarte PDF link to point to Getraenke_Gallus_2025.pdf.
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-08-06 14:29:18 +02:00
k
3006ccd5a0 Merge remote-tracking branch 'origin/main'
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-08-05 15:12:38 +02:00
k
8a8bcc304a Enhance HoverCard behavior and styles for better mobile interactivity and accessibility:
- **Hover support refinement**: Limited hover effects to devices with pointer precision and hover capability.
- **Active state improvements**: Added visual feedback for tap and ensured consistent card toggling on mobile, including outside-click handling.
- **Styling additions**: Introduced a tappable hint for better user guidance and refined cursor styles.
- **Script update**: Prevented multiple active cards and ensured seamless closing on external clicks.
2025-08-05 15:12:26 +02:00
k
54c6f205e0 Rename Menu.pdf to Getraenke_Gallus_2025.pdf in the public/pdf directory.
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-08-05 14:18:10 +02:00
k
48fddf7b15 Rename Menu.pdf to Getraenke_Gallus_2025.pdf in the public/pdf directory.
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-08-05 14:04:09 +02:00
k
2733c2e7f4 Remove redundant whiskey circle styles and update menu PDF.
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-08-05 14:01:31 +02:00
k
9502123b89 Remove Kevin McFlannigan details from events and update circle dimensions to use vh for better responsiveness.
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-08-05 13:47:09 +02:00
ca2d724bd8 Update Drinks.css and index.astro for style adjustments and event details update
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- Replaced `em` with `rem` in `.circle` dimensions for consistent scaling.
- Revised event descriptions and titles in `index.astro` for clarity.
- Updated `Menu.pdf` file.
2025-08-04 14:17:28 +02:00
k
38229ac5e9 Refine Drinks section text and styling:
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- **Content updates**: Adjusted description text for a more engaging and detailed presentation.
- **Styling changes**: Reduced title margin, enlarged circle dimensions for better visual balance, and added spacing to card links.
- **Layout improvements**: Removed redundant whiskey circle styles for cleaner CSS.
2025-08-02 15:54:09 +02:00
k
a11c838d2a Update gallery images and refine Drinks section:
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- **Gallery updates**: Added `Gallery9.png` and reordered images for better organization.
- **Drinks section tweak**: Removed redundant label text in "Mate Vodka" circle.
2025-08-02 15:43:46 +02:00
k
f9fe914c32 Update images, enhance Drinks section, and adjust styles:
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- **Image updates**: Replaced placeholder images with new gallery images (`Gallery1.png` to `Gallery8.png`) and added whiskey images (`Whiskey1.png` to `Whiskey3.png`).
- **Drinks section**: Added description, updated drink types, and included new images for Whiskey options and Monthly Special.
- **Circular design refinements**: Enlarged circle dimensions, ensured image fit with `object-fit: cover`, and added responsive adjustments.
- **Style improvements**: Introduced overflow handling, z-index management, and tailored sizes for Whiskey circles.
2025-08-02 15:36:14 +02:00
k
21e09f7155 Update images, enhance Drinks section, and adjust styles:
- **Image updates**: Replaced placeholder images with new gallery images (`Gallery1.png` to `Gallery8.png`) and added whiskey images (`Whiskey1.png` to `Whiskey3.png`).
- **Drinks section**: Added description, updated drink types, and included new images for Whiskey options and Monthly Special.
- **Circular design refinements**: Enlarged circle dimensions, ensured image fit with `object-fit: cover`, and added responsive adjustments.
- **Style improvements**: Introduced overflow handling, z-index management, and tailored sizes for Whiskey circles.
2025-08-02 15:32:51 +02:00
k
0b37f73634 Enhance Header interactivity and clean up HoverCard structure:
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- **Mobile menu improvements**: Added functionality to close the menu when navigation links are clicked.
- **HoverCard cleanup**: Removed unused title and date markup for a leaner structure.
2025-08-02 14:49:04 +02:00
k
c764f892a1 Add active state for mobile HoverCard
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- **New functionality**: Introduced an active state for `HoverCard` on mobile devices, triggered via click.
- **Style updates**: Added styles to handle `active` class for text and image opacity.
- **Responsive aspect ratio**: Ensured square aspect ratio with the addition of `aspect-ratio: 1 / 1` in CSS.
- **Script enhancement**: Implemented JavaScript for toggling the active state on mobile.
2025-08-02 14:41:16 +02:00
k
78f367530a Refactor Header and HoverCard styles for consistency and responsiveness:
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- **Standardized dimensions**: Converted `px` values to `rem` in `HoverCard.css`.
- **Improved header layout**: Enhanced mobile-first responsiveness with distinct layouts for desktop and mobile.
- **New navigation styles**: Adjusted alignment, spacing, and transitions for the burger menu and mobile dropdown.
- **Optimized media queries**: Simplified and organized breakpoints for better maintainability.
2025-08-02 14:35:34 +02:00
k
b539329420 Add responsive mobile menu with burger icon and animations:
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- **Mobile menu implementation**: Introduced a burger menu for smaller screens, enabling navigation toggle.
- **Responsive styles**: Added CSS adjustments for headers and navigation under `768px` and `480px` breakpoints.
- **Interactive behavior**: Implemented toggle functionality using JavaScript for mobile menu activation.
- **Styling updates**: Enhanced mobile and desktop navigation distinction with scoped CSS changes.
2025-08-02 14:30:49 +02:00
k
3e93e8ce3b Update events, images, and improve layout:
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- **Events update**: Replaced existing events with new details and images.
- **Image updates**: Replaced outdated images with optimized ones (e.g., `Event1.png`, `Event2.png`, `Event3.png`).
- **Footer improvements**: Added `id` to enable smooth scrolling for "Contact".
- **Welcome section**: Adjusted heading structure for better readability.
- **Navigation fix**: Replaced "Openings" link with "Contact".
- **CSS cleanup**: Removed redundant comment in `Hero.css` and fixed typos in alt text.
2025-08-02 14:27:11 +02:00
k
2fab4bf70b Refactor styles and imports for consistency and maintainability:
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
- **CSS restructuring**: Moved `styles` folder into `src` for better organization.
- **Updated imports**: Adjusted component CSS imports to reflect new paths.
- **Component tweaks**:
  - Increased HoverCard width from `350px` to `400px` for better visual balance.
  - Adjusted Footer layout: reorganized copyright and added email link.
  - Modified Drinks circle dimensions (from `6em` to `9em`) for improved design.
- **Footer styles**: Changed copyright section's layout with top spacing and border adjustments.
2025-08-02 13:50:56 +02:00
k
1a6be67af1 Merge remote-tracking branch 'origin/main'
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
# Conflicts:
#	styles/components/ContactForm.css
2025-08-02 13:35:59 +02:00
k
fea45fc4f8 rm command 2025-08-02 13:35:38 +02:00
761bd6be80 Update CSS imports and Dockerfile for consistent styles handling
- Enforced `!important` for `--color-background` in `variables.css`.
- Centralized CSS imports in `Layout.astro` for cleaner markup.
- Adjusted Dockerfile to ensure CSS variables are copied to `public/styles`.
- Refined fallback handling in `index.css` for `background-color`.
2025-08-02 12:57:17 +02:00
8e6bd12da5 Remove unused cache and name fields from .woodpecker.yml for cleaner pipeline configuration 2025-08-02 12:57:16 +02:00
548a2d6f53 Refactor .woodpecker.yml for streamlined deployment and simplify Dockerfile health check 2025-08-02 12:57:16 +02:00
01edb8d575 Update deployment configuration files for optimized CI/CD pipeline
- Simplified `fly.toml` by removing inline comments.
- Refactored `.woodpecker.yml` pipeline syntax for better clarity and flexibility.
- Adjusted `Dockerfile` to fix `dist` directory path and streamline `CMD` execution.
2025-08-02 12:57:16 +02:00
c498b19afb Update fly.toml, .woodpecker.yml, and Dockerfile for deployment improvements
- Increased health check grace period in `fly.toml` to 30s.
- Added `dist` directory to cache mounts in `.woodpecker.yml`.
- Fixed file copy path in `Dockerfile` for accurate builds.
2025-08-02 12:57:16 +02:00
74a8e7b393 make main a version off dev 2025-08-02 12:57:16 +02:00
9c4b6ec425 Text rearangment 2025-08-02 12:57:14 +02:00
dc3f0b53d7 Improve logo responsiveness and container padding in styles.css
- Updated `.logo-container` for full-width responsiveness.
- Adjusted `.logo-container img` to maintain aspect ratio and center align.
- Added padding to `.container` for better layout spacing.
2025-08-02 12:57:14 +02:00
b215592292 Update footer styles for improved readability
- Changed `background-color` to a darker shade for better contrast.
- Added white text color for enhanced visibility.
2025-08-02 12:57:14 +02:00
9c7ecc97df Fix typo in "Coming Soon" text in index.html 2025-08-02 12:57:14 +02:00
0fd4fbe61f Remove .dockerignore file to avoid redundant configuration 2025-08-02 12:57:14 +02:00
6e489ceac3 Remove .dockerignore file to avoid redundant configuration 2025-08-02 12:57:14 +02:00
21d51732e5 Add .dockerignore and update Fly.io configuration
- Created `.dockerignore` to exclude irrelevant files during Docker image build.
- Enhanced `fly.toml` with additional configuration such as VM specs and adjusted syntax.
- Fixed logo path in `index.html` and relocated the logo file for proper referencing.
2025-08-02 12:57:12 +02:00
f1c94ed438 Update Gallus Pub site design and content
- Changed background and text colors in `styles.css` for a refreshed look.
- Updated logo implementation in `index.html` to use an actual image.
- Adjusted social links and opening hours information.
- Added Font Awesome library to the project configuration.
- Included new logo image in the `public` directory.
2025-08-02 12:57:02 +02:00
493c2a94f0 Remove Gallus_Pub and Gallus_Pub_v1 directories along with associated configuration and files
This commit deletes the entire setup for both Gallus_Pub and Gallus_Pub_v1 projects, including `.gitignore`, configuration files, source code, styles, package files, and other related assets.
2025-08-02 12:56:52 +02:00
0a939975c3 Remove About and Contact sections from navigation and index page
This commit comments out the About and Contact links in the navigation menu and removes the corresponding sections from the index page. Additionally, adjusted header styles for a full-width layout.
2025-07-23 21:08:38 +02:00
7e0f052ce7 Anpassungen damit das Navi ein OnePager wird, die verlinkung von About und Contact stimmt noch nicht. 2025-07-23 16:48:04 +02:00
77c5d5df82 event hinzugefügt und erste anpassungen am nav für onePager 2025-07-23 16:39:01 +02:00
f0afa677a0 Event Cards Update und alle links sind Orange, einheitlich auf der ganzen Seite 2025-07-23 14:56:34 +02:00
f356b37c9e Rredundantz in Header.css und Hero.css normalisieren 2025-07-23 12:49:23 +02:00
k
096883b0ee Add contact form and WhatsApp integration
- Created a new, styled contact form with input validation.
- Added WhatsApp Chat link for direct communication.
- Introduced `ContactForm.css` with responsive styles to improve usability.
2025-07-20 14:28:13 +02:00
k
749b3e5079 Event Header fix 2025-07-20 13:59:45 +02:00
k
3c1a6fae2c Update styles and layout for improved responsiveness and consistency:
- **Global fonts**: Adjusted `font-family` fallback to include `serif`.
- **Header improvements**: Refined structure with flexbox, adjusted heights, and fixed responsive issues (e.g., removed hardcoded margins).
- **New Layout styles**: Added scoped `Layout.css` for better layout control and modularity.
- **Links fix**: Corrected casing in `About` and `Contact` links for proper navigation.
2025-07-20 13:57:33 +02:00
k
f3952e7e81 Add section IDs and smooth scrolling for improved navigation:
- Updated components (`Hero`, `Welcome`, `EventsGrid`, `ImageCarousel`, `Drinks`) to accept optional `id` props and applied them to `<section>` elements.
- Enabled smooth scrolling by adding `scroll-behavior: smooth` to global styles.
- Enhanced dropdown menu: added internal links for section navigation and adjusted styling for improved responsiveness.
- Updated color handling in `ImageCarousel` to use CSS variables for better theme consistency.
2025-07-20 13:32:43 +02:00
k
00213204c4 Add ImageCarousel component with responsive design and functionality.
- Introduced a new `ImageCarousel` component to display image galleries with navigation and indicators.
- Included scoped CSS for custom styles and responsiveness.
- Integrated `ImageCarousel` into the homepage with sample image data.
2025-07-20 12:57:40 +02:00
15dedfabcf Remove Gallus_Pub project and all related files
This commit deletes the entire `Gallus_Pub` directory, including its configuration, source files, and dependencies.
2025-07-19 18:00:06 +02:00
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
k
89e1683eee Refactor and enhance Gallus Pub website:
- **Added component-specific styles**: Introduced scoped CSS files for `Hero`, `Header`, `Drinks`, `Footer`, and `Welcome` components.
- **Expanded functionality**: Added `Drinks` section with a new layout and stylized elements.
- **Assets fix**: Replaced asset links with correct paths, ensuring consistency for images and files (e.g., `Welcome.png`, `Menu.pdf`).
- **Reorganized header and footer**: Modernized `Header` layout with a fixed navbar, added utility spacer, and redesigned footer to include additional details.
- **Integrated Docker and CI/CD**: Added `Dockerfile`, `fly.toml`, and `.woodpecker.yml` for multi-environment deployment.
- **Improved homepage**: Incorporated `Drinks` component and updated styles for cohesive design.
- **CSS cleanup**: Removed redundant global styles from `index.css` and migrated them to appropriate scoped styles.

Complete revamp to provide modular and deployable updates for long-term scalability.
2025-07-19 15:47:22 +02:00
675594ae8a first version with the components: EventGird, welcome and events 2025-07-18 16:17:18 +02:00
22eb4eb7c7 Add HoverCard component and integrate it into the homepage
This commit introduces a reusable HoverCard component, designed to display an image, title, and hover-revealed text. The component is styled to match the website theme. Additionally, it has been integrated into the index.astro page with placeholder content for demonstration purposes. Updated the project configuration to include the Font Awesome library.
2025-07-16 22:00:34 +02:00
19682fe6c8 create dev branch 2025-07-15 20:14:46 +02:00
58 changed files with 452 additions and 228 deletions

8
.idea/.gitignore generated vendored
View File

@ -1,8 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

12
.idea/Gallus_Pub.iml generated
View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

8
.idea/modules.xml generated
View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Gallus_Pub.iml" filepath="$PROJECT_DIR$/.idea/Gallus_Pub.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated
View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 KiB

After

Width:  |  Height:  |  Size: 706 KiB

BIN
public/images/Event1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
public/images/Event2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
public/images/Event3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
public/images/Event4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

BIN
public/images/Gallery1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 800 KiB

BIN
public/images/Gallery2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 747 KiB

BIN
public/images/Gallery3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 KiB

BIN
public/images/Gallery4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 KiB

BIN
public/images/Gallery5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 KiB

BIN
public/images/Gallery6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

BIN
public/images/Gallery7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

BIN
public/images/Gallery8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

BIN
public/images/Gallery9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

BIN
public/images/Whiskey1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

BIN
public/images/Whiskey2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

BIN
public/images/Whiskey3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,6 @@
---
import Layout from "../components/Layout.astro";
import "../../styles/components/ContactForm.css";
import "../styles/components/ContactForm.css";
---
<Layout>

View File

@ -1,35 +1,44 @@
---
import "../../styles/components/Drinks.css"
import "../styles/components/Drinks.css"
const { id } = Astro.props;
---
<section id={id} class="Drinks">
<h2 class="title">Drinks</h2>
<a href="/pdf/Menu.pdf" class="card-link" target="_blank" rel="noopener noreferrer">Getränkekarte</a>
<p class="note">
Ob ein frisch gezapftes Pint, ein edler Tropfen Whiskey oder ein gemütliches Glas Wein hier kannst du in entspannter
Atmosphäre das Leben genießen. Natürlich dürfen auch Cocktails nicht fehlen. Vieles kreieren wir auch selber - Sláinte!
</p>
<a href="/pdf/Getraenke_Gallus_2025.pdf" class="card-link" target="_blank" rel="noopener noreferrer">Getränkekarte</a>
<h3 class="monats-hit">Monats Hit</h3>
<div class="mate-vodka">
<div class="circle" title="Mate Vodka">
<span class="circle-label">Mate Vodka</span>
<img src="/images/MonthlyHit.png" alt="Monats Hit" class="circle-image" />
<span class="circle-label"></span>
</div>
<div>Mate Vodka</div>
</div>
<div class="circle-row">
<div class="circle" title="Bier">
<span class="circle-label">Bier</span>
</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>
<p class="note">
Wir bieten eine Auswahl an erlesenen Getränken für jeden Geschmack. Besuche uns und entdecke unsere saisonalen Spezialitäten und Klassiker.
Für Whisky-Liebhaber haben wir erlesene Sorten aus Schottland und Irland im Angebot.
</p>
<div class="circle-row">
<div class="circle whiskey-circle" title="Whiskey 1">
<img src="/images/Whiskey1.png" alt="Whiskey 1" class="circle-image" />
<span class="circle-label"></span>
</div>
<div class="circle whiskey-circle" title="Whiskey 2">
<img src="/images/Whiskey2.png" alt="Whiskey 2" class="circle-image" />
<span class="circle-label"></span>
</div>
<div class="circle whiskey-circle" title="Whiskey 3">
<img src="/images/Whiskey3.png" alt="Whiskey 3" class="circle-image" />
<span class="circle-label"></span>
</div>
</div>
</section>

View File

@ -13,7 +13,7 @@ const { events = [], id }: { events?: Event[]; id?: string } = Astro.props as {
events?: Event[];
id?: string;
};
import "../../styles/components/EventsGrid.css";
import "../styles/components/EventsGrid.css";
---
<h2 class="section-title">Events</h2>

View File

@ -1,14 +1,12 @@
---
// src/components/Footer.astro
import "/styles/components/Footer.css"
import "../styles/components/Footer.css"
const currentYear = new Date().getFullYear();
---
<footer class="footer">
<footer class="footer" id="footer">
<div class="footer-content">
<div class="copyright">
&copy; {currentYear} Gallus Pub. Alle Rechte vorbehalten.
</div>
<div class="footer-sections">
<div class="footer-section">
@ -24,8 +22,8 @@ const currentYear = new Date().getFullYear();
<p>Gallus Pub</p>
<p>Metzgergasse 13</p>
<p>9000 St. Gallen</p>
<p>Reservierungen via Whatsapp</p>
<p><a href="tel:0772322770">077 232 27 70</a></p>
<p><a href="mailto:info@gallus-pub.ch">info@gallus-pub.ch</a></p>
</div>
<div class="footer-section">
@ -33,12 +31,12 @@ const currentYear = new Date().getFullYear();
<p>Du planst einen Event?</p>
<p>Der "St.Gallerruum" im 2.OG</p>
<p>kann gemietet werden.</p>
<br/>
<p>Gerne öffnen wir auf Anfrage</p>
<p>auch ausserhalb unserer</p>
<p>Betriebszeiten.</p>
<p>Reservierungen via Whatsapp</p>
</div>
</div>
<div class="copyright">
&copy; {currentYear} Gallus Pub. Alle Rechte vorbehalten.
</div>
</div>
</footer>

View File

@ -1,28 +1,81 @@
---
// src/components/Header.astro
const { url } = Astro;
import "../../styles/components/Header.css";
import "../styles/components/Header.css";
---
<header class="header">
<!-- Desktop Layout -->
<div class="desktop-layout">
<div class="logo-container">
<a href="/">
<img src="/images/Logo.png" alt="Logo" class="logo" />
</a>
</div>
<!-- Hauptnavigation: immer Home, About, Contact -->
<nav class="nav-main">
<div>
<div class="desktop-menu">
<a href="/#hero">Home</a>
<a href="/#events">Events</a>
<a href="/#gallery">Galerie</a>
<a href="/#drinks">Drinks</a>
<a href="/#openings">Openings</a>
<a href="/#footer">Contact</a>
<!--<a href="/#about">About</a>
<a href="/#contact">Contact</a>-->
</div>
</nav>
</div>
<!-- Mobile Layout -->
<div class="mobile-layout">
<!-- Centered Logo -->
<div class="mobile-logo-container">
<a href="/">
<img src="/images/Logo.png" alt="Logo" class="logo" />
</a>
</div>
<!-- Burger Menu Below Logo -->
<div class="burger-menu">
<div class="burger-icon">
<span></span>
<span></span>
<span></span>
</div>
</div>
<!-- Mobile Navigation Menu (Dropdown) -->
<div class="mobile-menu">
<a href="/#hero">Home</a>
<a href="/#events">Events</a>
<a href="/#gallery">Galerie</a>
<a href="/#drinks">Drinks</a>
<a href="/#footer">Contact</a>
</div>
</div>
</header>
<div class="header-spacer"></div>
<script>
// Toggle mobile menu when burger icon is clicked
document.addEventListener('DOMContentLoaded', () => {
const burgerIcon = document.querySelector('.burger-icon');
const mobileMenu = document.querySelector('.mobile-menu');
const mobileMenuLinks = document.querySelectorAll('.mobile-menu a');
// Toggle menu when burger icon is clicked
burgerIcon.addEventListener('click', () => {
burgerIcon.classList.toggle('active');
mobileMenu.classList.toggle('active');
});
// Close menu when a navigation link is clicked
mobileMenuLinks.forEach(link => {
link.addEventListener('click', () => {
burgerIcon.classList.remove('active');
mobileMenu.classList.remove('active');
});
});
});
</script>

View File

@ -1,6 +1,6 @@
---
// src/components/Hero.astro
import "../../styles/components/Hero.css"
import "../styles/components/Hero.css"
const { id } = Astro.props;
---

View File

@ -1,7 +1,6 @@
---
// src/components/HoverCard.astro
import "../../styles/components/HoverCard.css";
const { title, description, image = "", date } = Astro.props;
import "../styles/components/HoverCard.css";
const {title, description, image = "", date} = Astro.props;
---
<article class="hover-card">
@ -9,10 +8,41 @@ const { title, description, image = "", date } = Astro.props;
<img class="card-image" src={image} alt={title} />
</div>
<h3 class="card-title" set:html={title} />
<h4 class="card_date">{date}</h4>
<div class="hover-text">
<div>
<p set:html={description} />
</div>
</div>
</article>
<script>
document.addEventListener('DOMContentLoaded', () => {
const hoverCards = document.querySelectorAll('.hover-card');
hoverCards.forEach(card => {
card.addEventListener('click', (e) => {
// Only toggle on mobile devices
if (window.innerWidth <= 768) {
e.preventDefault();
// Close all other active cards first
hoverCards.forEach(otherCard => {
if (otherCard !== card) {
otherCard.classList.remove('active');
}
});
// Toggle current card
card.classList.toggle('active');
}
});
// Close card when clicking outside (mobile only)
document.addEventListener('click', (e) => {
if (window.innerWidth <= 768 && !card.contains(e.target)) {
card.classList.remove('active');
}
});
});
});
</script>

View File

@ -1,6 +1,6 @@
---
// src/components/ImageCarousel.astro
import "../../styles/components/ImageCarousel.css";
import "../styles/components/ImageCarousel.css";
interface Image {
src: string;

View File

@ -2,9 +2,9 @@
// src/components/Layout.astro
import Header from "./Header.astro";
import Footer from "./Footer.astro";
import "../../styles/components/Layout.css"
import "../../styles/variables.css"
import "../../styles/index.css"
import "../styles/components/Layout.css"
import "../styles/variables.css"
import "../styles/index.css"
---
<!doctype html>

View File

@ -1,6 +1,6 @@
---
// src/components/Welcome.astro
import "../../styles/components/Welcome.css"
import "../styles/components/Welcome.css"
const { id } = Astro.props;
---
@ -9,7 +9,8 @@ const { id } = Astro.props;
<div class="welcome-text">
<h2>Herzlich willkommen im Gallus Pub!</h2>
<h2>Herzlich willkommen im</h2>
<h2>Gallus Pub!</h2>
<p>
Wie die meisten bereits wissen, ist hier jeder willkommen - ob jung
@ -51,7 +52,7 @@ const { id } = Astro.props;
<div class="welcome-image">
<img src="/images/Welcome.png" alt="Welcome backgrount image" />
<img src="/images/Welcome.png" alt="Welcome background image" />
</div>
</section>

View File

@ -1,5 +1,4 @@
---
// src/pages/index.astro
import Layout from "../components/Layout.astro";
import Hero from "../components/Hero.astro";
import Welcome from "../components/Welcome.astro";
@ -32,38 +31,51 @@ const events = [
`,
},
{
image: "/images/crepes_sucette.jpg",
image: "/images/Event3.png",
title: "Karaoke tes",
date: "Mittwoch - Samstag",
description: `
`,
},
{
image: "/images/Event2.png",
title: "Karaoke test",
date: "Mittwoch - Samstag",
description: `
`,
},
{
image: "/images/Event1.png",
title: "Crepes Sucette <br /> Live Music im Gallus Pub!",
date: "Do, 04. September 2025",
description: `
<b>20:00 Uhr</b> <br>
<a href="Metzgergasse 13, 9000 St. Gallen">Metzgergasse 13, 9000 St. Gallen</a> <br>
Erlebt einen musikalischen Abend mit der Band <b>Crepes Sucette</b> <br>
Jetzt reservieren: <a href="tel:+41772322770">077 232 27 70</a>`,
<b>ab 19 Uhr gehts los, bis max. 21.30 Uhr</b> <br>
Kosten? CHF 10 pro Spielgast
Reservieren unter <a href="tel:+41772322770">077 232 27 70</a>
`,
},
{
image: "/images/kevin_mcflannigan.jpeg",
image: "/images/Event4.png",
title: "Kevin McFlannigan <br> Live Music im Gallus Pub!",
date: "Sa, 27. September 2025",
description: `
<b>ab 20:00 Uhr</b> <br>
Singer & Songwriter Kevin McFlannigan <br>
Eintritt ist Frei / Hutkollekte <br>
Reservieren unter <a href="tel:+41772322770">077 232 27 70</a>
`,
},
];
const images = [
{ src: "/images/Logo.png", alt: "Erstes Bild" },
{ src: "/images/Logo.png", alt: "Zweites Bild" },
{ src: "/images/Logo.png", alt: "Drittes Bild" },
{ src: "/images/Logo.png", alt: "Viertes Bild" },
{ src: "/images/Logo.png", alt: "Fünftes Bild" },
{ src: "/images/Logo.png", alt: "Sechstes Bild" },
{ src: "/images/Logo.png", alt: "Siebtes Bild" },
{ src: "/images/Logo.png", alt: "Achtes Bild" },
{ src: "/images/Logo.png", alt: "Neuntes Bild" },
{ src: "/images/Logo.png", alt: "Zehntes Bild" },
{ src: "/images/Gallery7.png", alt: "Siebtes Bild" },
{ src: "/images/Gallery8.png", alt: "Achtes Bild" },
{ src: "/images/Gallery9.png", alt: "Neuntes Bild" },
{ src: "/images/Gallery6.png", alt: "Sechstes Bild" },
{ src: "/images/Gallery1.png", alt: "Erstes Bild" },
{ src: "/images/Gallery2.png", alt: "Zweites Bild" },
{ src: "/images/Gallery3.png", alt: "Drittes Bild" },
{ src: "/images/Gallery4.png", alt: "Viertes Bild" },
{ src: "/images/Gallery5.png", alt: "Fünftes Bild" },
];
---

9
src/public/favicon.svg Normal file
View File

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
<style>
path { fill: #000; }
@media (prefers-color-scheme: dark) {
path { fill: #FFF; }
}
</style>
</svg>

After

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 KiB

BIN
src/public/images/Logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

View File

Before

Width:  |  Height:  |  Size: 384 KiB

After

Width:  |  Height:  |  Size: 384 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
src/public/pdf/Menu.pdf Normal file

Binary file not shown.

View File

@ -1,5 +1,3 @@
/* styles/components/ContactForm.css */
.contact-container {
max-width: 800px;
margin: 2rem auto;

View File

@ -15,7 +15,7 @@
.title {
font-size: var(--font-size-large);
margin-bottom: 1.5rem;
margin-bottom: 0.5rem;
font-weight: bold;
color: var(--color-text);
text-transform: uppercase;
@ -25,6 +25,7 @@
.card-link {
border: 2px solid var(--color-accent-beige);
padding: 0.75rem 1.5rem;
margin-top: 2.5rem;
margin-bottom: 2.5rem;
color: var(--color-text);
background-color: var(--color-background);
@ -68,7 +69,6 @@
align-items: center;
margin-bottom: 1.5rem;
padding: 1rem;
background-color: rgba(0, 0, 0, 0.2);
border-radius: var(--border-radius);
width: 80%;
max-width: 300px;
@ -81,8 +81,8 @@
}
.circle {
height: 6em;
width: 6em;
height: 35vh;
width: 35vh;
border: 2px solid var(--color-accent-beige);
border-radius: 50%;
margin: 0.5rem;
@ -94,6 +94,7 @@
justify-content: center;
align-items: center;
cursor: pointer;
overflow: hidden;
}
.circle:hover {
@ -109,12 +110,25 @@
text-align: center;
transition: opacity var(--transition-standard);
position: absolute;
z-index: 2;
}
.circle:hover .circle-label {
opacity: 1;
}
.circle-image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
border-radius: 50%;
z-index: 1;
}
.circle-row {
display: flex;
justify-content: center;
@ -149,10 +163,6 @@
width: 90%;
}
.circle {
height: 5em;
width: 5em;
}
.circle-label {
font-size: 0.7rem;

View File

@ -13,9 +13,9 @@
.copyright {
text-align: center;
margin-bottom: 2rem;
padding-bottom: 1rem;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
margin-top: 2rem;
padding-top: 1rem;
border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.footer-sections {

View File

@ -0,0 +1,190 @@
.header {
position: fixed;
top: 0;
left: 0;
right: 0;
background-color: #0e0c0c;
z-index: 1000;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
backdrop-filter: blur(5px);
width: 100%;
border-bottom: 1px solid #444;
}
.header-spacer {
height: 70px;
/* Should match the header height */
}
/* Desktop Layout */
.desktop-layout {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 2rem;
height: 70px;
}
.logo-container {
display: flex;
align-items: center;
}
.logo {
margin-left: 2em;
height: 4em;
width: auto;
transition: transform 0.3s ease;
}
.logo:hover {
transform: scale(1.05);
}
.nav-main {
display: flex;
align-items: center;
}
.nav-main a {
margin: 0 1rem;
color: white;
text-decoration: none;
font-size: 1rem;
cursor: pointer;
}
.nav-main a:hover {
color: #ffa500;
}
/* Mobile Layout */
.mobile-layout {
display: none;
flex-direction: column;
align-items: center;
padding: 1rem;
}
.mobile-logo-container {
display: flex;
justify-content: center;
margin-bottom: 0.5rem;
}
.mobile-logo-container .logo {
margin: 0;
height: 3.5em;
}
/* Burger Menu Styles */
.burger-menu {
display: flex;
justify-content: center;
cursor: pointer;
margin: 0.5rem 0;
}
.burger-icon {
width: 30px;
height: 24px;
position: relative;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.burger-icon span {
display: block;
height: 3px;
width: 100%;
background-color: white;
border-radius: 3px;
transition: all 0.3s ease;
}
.burger-icon.active span:nth-child(1) {
transform: translateY(10.5px) rotate(45deg);
}
.burger-icon.active span:nth-child(2) {
opacity: 0;
}
.burger-icon.active span:nth-child(3) {
transform: translateY(-10.5px) rotate(-45deg);
}
/* Mobile Menu Styles */
.mobile-menu {
display: none;
width: 100%;
background-color: #0e0c0c;
flex-direction: column;
align-items: center;
padding: 0;
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease;
z-index: 999;
}
.mobile-menu.active {
max-height: 300px; /* Adjust based on content */
padding: 0.5rem 0;
}
.mobile-menu a {
margin: 0.5rem 0;
color: white;
text-decoration: none;
font-size: 1.2rem;
text-align: center;
width: 100%;
padding: 0.5rem 0;
border-bottom: 1px solid #333;
}
.mobile-menu a:last-child {
border-bottom: none;
}
.mobile-menu a:hover {
color: #ffa500;
}
@media (max-width: 768px) {
.header-spacer {
height: 120px; /* Adjusted for the taller mobile header */
}
/* Hide desktop layout, show mobile layout */
.desktop-layout {
display: none;
}
.mobile-layout {
display: flex;
}
/* Show mobile menu when active */
.mobile-menu.active {
display: flex;
}
}
@media (max-width: 480px) {
.header-spacer {
height: 110px; /* Slightly smaller for very small screens */
}
.mobile-logo-container .logo {
height: 3em;
}
.burger-icon {
width: 25px;
height: 20px;
}
}

View File

@ -1,4 +1,3 @@
/* === Hero === */
.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;

View File

@ -1,7 +1,7 @@
.hover-card {
position: relative;
width: 350px;
height: 400px;
width: 25rem;
height: 25rem;
border-radius: var(--border-radius);
background-color: var(--color-accent-green);
box-shadow: var(--box-shadow);
@ -12,8 +12,19 @@
flex-direction: column;
}
.hover-card:hover {
/* Hover effects only for devices that support hover */
@media (hover: hover) and (pointer: fine) {
.hover-card:hover {
transform: translateY(-5px);
}
.hover-card:hover .hover-text {
opacity: 1;
}
.hover-card:hover .card-image {
opacity: 0.1;
}
}
.card-title {
@ -93,11 +104,12 @@
scrollbar-color: var(--color-accent-beige) rgba(0, 0, 0, 0.1);
}
.hover-card:hover .hover-text {
/* Active state for mobile tap functionality */
.hover-card.active .hover-text {
opacity: 1;
}
.hover-card:hover .card-image {
.hover-card.active .card-image {
opacity: 0.1;
}
@ -110,5 +122,34 @@
.hover-card {
width: 100%;
max-width: 350px;
/* Maintain square aspect ratio */
aspect-ratio: 1 / 1;
height: auto;
/* Add cursor pointer to indicate it's clickable */
cursor: pointer;
}
/* Add visual feedback for tap */
.hover-card:active {
transform: scale(0.98);
}
.hover-card::after {
position: absolute;
bottom: 10px;
right: 10px;
background-color: rgba(0, 0, 0, 0.7);
color: var(--color-accent-beige);
font-size: 0.7rem;
padding: 4px 8px;
border-radius: 12px;
opacity: 0.8;
pointer-events: none;
z-index: 10;
}
/* Hide the hint when card is active */
.hover-card.active::after {
display: none;
}
}

View File

@ -1,92 +0,0 @@
.header {
position: fixed;
top: 0;
left: 0;
right: 0;
background-color: #0e0c0c;
z-index: 1000;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
backdrop-filter: blur(5px);
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 2rem;
height: 70px;
width: 100%;
border-bottom: 1px solid #444;
}
.header-spacer {
height: 70px;
/* Should match the header height */
}
.logo-container {
display: flex;
align-items: center;
}
.logo {
margin-left: 2em;
height: 4em;
width: auto;
transition: transform 0.3s ease;
}
.logo:hover {
transform: scale(1.05);
}
.nav-main {
display: flex;
align-items: center;
}
.nav-main a {
margin: 0 1rem;
color: white;
text-decoration: none;
font-size: 1rem;
cursor: pointer;
}
.nav-main a:hover {
color: #ffa500;
}
@media (max-width: 768px) {
.header {
height: 65px;
}
.logo {
margin-left: 1em;
height: 3em;
}
.header-spacer {
height: 65px;
}
}
@media (max-width: 480px) {
.header {
padding: 0.5rem;
height: 60px;
}
.logo {
margin-left: 0.5em;
height: 2.5em;
}
.nav-main a {
margin: 0 0.5rem;
font-size: 0.9rem;
}
.header-spacer {
height: 60px;
}
}