Compare commits

..

2 commits
0.0.5 ... main

Author SHA1 Message Date
91380c05a8
besser mache
All checks were successful
/ ls (pull_request) Successful in 1m27s
/ ls (push) Successful in 1m24s
/ ls (release) Successful in 56s
2025-06-18 18:39:30 +02:00
be09ed2f30
facts
Some checks failed
/ ls (pull_request) Failing after 22s
/ ls (release) Successful in 48s
/ ls (push) Successful in 1m20s
2025-06-16 20:51:30 +02:00
4 changed files with 194 additions and 21 deletions

99
README.md Normal file
View file

@ -0,0 +1,99 @@
# 🍸 Saufen - The Fabulous Drink Inventory System 🏳️‍🌈
*Because every fabulous party needs a fabulous drink management system!*
---
## ✨ What's This Fabulousness All About? ✨
Welcome to **Saufen** (German for "drinking" - because we're fancy like that! 💅), the most fabulous drink inventory management system that ever graced the internet!
This isn't just any boring inventory system - oh no, honey! This is where **gay excellence meets drink management** in the most spectacular way possible. We're talking about tracking your favorite cocktails, managing your bar stock, and making sure you never run out of the good stuff when the party gets started! 🎉
---
## 🎭 The Main Characters (What This Bad Bitch Does) 🎭
### 🍹 **Drink Type Management**
- Add all your favorite drinks with fabulous names and descriptions
- Set your desired stock levels (because running out of tequila is a CRIME!)
- Track current inventory like the organized queen you are
### 📋 **Order Management**
- Create fabulous orders when your stock gets low
- Track order status from "new" to "delivered" (the journey of a true icon!)
- Never let your bar run dry again!
### 🚨 **Low Stock Alerts**
- Get dramatic alerts when your favorite drinks are running low
- Because we all know that empty vodka bottle is a tragedy waiting to happen!
### 🎨 **Fabulous Fun Facts**
- Learn amazing drink trivia while managing your inventory
- Did you know the Cosmopolitan became popular thanks to 'Sex and the City'? ICONIC!
- Random fabulous facts appear on every page because education is fierce! 💅
---
## 🌈 Why This Project is Absolutely Everything 🌈
This project was born from the simple truth that **every fabulous party needs fabulous organization**. Whether you're running a gay bar, hosting the party of the century, or just want to keep track of your personal drink collection, Saufen has got your back!
It's built with love, fabulousness, and the understanding that sometimes you need to know exactly how many bottles of champagne you have before the drag show starts! 🎭
---
## 🎪 The Vibe We're Going For 🎪
Imagine if **RuPaul's Drag Race** and **Bar Rescue** had a beautiful baby, and that baby was obsessed with organization and fabulousness. That's Saufen!
We're talking:
- ✨ Rainbow aesthetics
- 💅 Fabulous drink facts
- 🎭 Dramatic low stock alerts
- 🍸 Comprehensive drink management
- 🏳️‍🌈 LGBTQ+ friendly vibes throughout
---
## 🎊 How to Get This Party Started 🎊
1. **Clone this fabulous repository**
2. **Install the dependencies** (because even queens need their tools!)
3. **Set up your database** (where all the magic happens)
4. **Start adding your drinks** (the fun part!)
5. **Let the fabulousness begin!** 🎉
---
## 🏆 What Makes This Project Special 🏆
- **Gay Excellence**: Built with love for the LGBTQ+ community
- **Fabulous Design**: Because boring interfaces are so last season
- **Smart Alerts**: Never run out of your favorite drinks again
- **Fun Facts**: Learn while you manage (education is fierce!)
- **Easy to Use**: So easy, even your straight friends can figure it out! 😘
---
## 🎭 The Story Behind the Name 🎭
"Saufen" is German for "drinking" - because we're international queens who appreciate a good cultural reference! Plus, it sounds fabulous when you say it with the right accent. Try it: "Saufen" - see? Fabulous!
---
## 🌟 Special Thanks 🌟
This project was created with love, fabulousness, and the understanding that every good party needs good organization. Shoutout to all the fabulous people who inspired this project and to everyone who believes that drink management can be both functional AND fabulous!
---
## 🎪 Final Thoughts 🎪
Remember, darlings: **Life is too short for bad drinks and bad organization**. With Saufen, you get the best of both worlds - fabulous drink management and fabulous vibes!
Now go forth and slay that inventory management! 💅✨
---
*Built with love, fabulousness, and the understanding that every queen needs her tools!* 🏳️‍🌈✨

View file

@ -60,7 +60,7 @@ function createExtraSparkles() {
// Continue creating extra sparkles while in bonkers mode // Continue creating extra sparkles while in bonkers mode
const newMode = document.documentElement.getAttribute('data-website-mode'); const newMode = document.documentElement.getAttribute('data-website-mode');
if (newMode === 'bonkers') { if (newMode === 'bonkers') {
setTimeout(() => createExtraSparkles(), 150); setTimeout(() => createExtraSparkles(), 75);
} }
} }
@ -72,7 +72,8 @@ function createSlayEffects() {
// Create floating "SLAY" text effects // Create floating "SLAY" text effects
const slayWords = [ const slayWords = [
'SLAY', 'QUEEN', 'FABULOUS', 'ICONIC', 'LEGENDARY', 'STUNNING', 'GORGEOUS', 'FLAWLESS', 'SLAY', 'QUEEN', 'FABULOUS', 'ICONIC', 'LEGENDARY', 'STUNNING', 'GORGEOUS', 'FLAWLESS',
'DAZZLING', 'RADIANT', 'BREATHTAKING', 'EXQUISITE', 'DIVINE' 'DAZZLING', 'RADIANT', 'BREATHTAKING', 'EXQUISITE', 'DIVINE', 'HOT', 'SEXY', 'SMOOTH',
'xoxo',
]; ];
const slayElement = document.createElement('div'); const slayElement = document.createElement('div');
slayElement.className = 'slay-text'; slayElement.className = 'slay-text';
@ -90,7 +91,7 @@ function createSlayEffects() {
// Continue creating slay effects while in bonkers mode // Continue creating slay effects while in bonkers mode
const newMode = document.documentElement.getAttribute('data-website-mode'); const newMode = document.documentElement.getAttribute('data-website-mode');
if (newMode === 'bonkers') { if (newMode === 'bonkers') {
setTimeout(() => createSlayEffects(), 800); setTimeout(() => createSlayEffects(), 100);
} }
} }

View file

@ -15,7 +15,7 @@
--bs-yellow: #F9F871; /* ⚡ Neon Lemon */ --bs-yellow: #F9F871; /* ⚡ Neon Lemon */
--bs-cyan: #00F5D4; /* 💎 Glitchy Teal */ --bs-cyan: #00F5D4; /* 💎 Glitchy Teal */
--bs-blue: #00A9E0; /* 💦 Splash Zone */ --bs-blue: #00A9E0; /* 💦 Splash Zone */
/* Let's redefine ALL the core colors to match the new energy */ /* Let's redefine ALL the core colors to match the new energy */
--bs-primary: var(--bs-pink); --bs-primary: var(--bs-pink);
--bs-secondary: var(--bs-green); --bs-secondary: var(--bs-green);
@ -23,7 +23,7 @@
--bs-info: var(--bs-blue); --bs-info: var(--bs-blue);
--bs-warning: var(--bs-yellow); --bs-warning: var(--bs-yellow);
--bs-danger: #FF3D3D; /* 🚨 Code Red Rave */ --bs-danger: #FF3D3D; /* 🚨 Code Red Rave */
/* --- BACKGROUNDS & TEXT --- */ /* --- BACKGROUNDS & TEXT --- */
/* No more boring white! */ /* No more boring white! */
--bs-body-bg: #FFF5FD; /* A soft, dreamy pink canvas */ --bs-body-bg: #FFF5FD; /* A soft, dreamy pink canvas */
@ -31,16 +31,16 @@
--bs-heading-color: var(--bs-purple); /* Make headings POP */ --bs-heading-color: var(--bs-purple); /* Make headings POP */
--bs-secondary-color: rgba(74, 0, 61, 0.75); /* Plum, but softer */ --bs-secondary-color: rgba(74, 0, 61, 0.75); /* Plum, but softer */
--bs-tertiary-color: rgba(74, 0, 61, 0.5); --bs-tertiary-color: rgba(74, 0, 61, 0.5);
/* Make cards and containers pure white to contrast the pink background */ /* Make cards and containers pure white to contrast the pink background */
--bs-tertiary-bg: #FFFFFF; --bs-tertiary-bg: #FFFFFF;
--bs-secondary-bg: #FEF9FE; --bs-secondary-bg: #FEF9FE;
/* --- LINKS & CODE --- */ /* --- LINKS & CODE --- */
--bs-link-color: var(--bs-pink); --bs-link-color: var(--bs-pink);
--bs-link-hover-color: var(--bs-purple); --bs-link-hover-color: var(--bs-purple);
--bs-code-color: var(--bs-purple); --bs-code-color: var(--bs-purple);
/* --- BORDERS & SHADOWS: LET'S GET QUIRKY --- */ /* --- BORDERS & SHADOWS: LET'S GET QUIRKY --- */
--bs-border-width: 2px; /* Chunky borders! */ --bs-border-width: 2px; /* Chunky borders! */
--bs-border-color: #FFD6F5; /* Pink-tinted border color */ --bs-border-color: #FFD6F5; /* Pink-tinted border color */
@ -49,24 +49,24 @@
--bs-border-radius-sm: 0.5rem; --bs-border-radius-sm: 0.5rem;
--bs-border-radius-lg: 1.5rem; --bs-border-radius-lg: 1.5rem;
--bs-border-radius-pill: 50rem; --bs-border-radius-pill: 50rem;
/* Say goodbye to black shadows, hello to colored glows! */ /* Say goodbye to black shadows, hello to colored glows! */
--bs-box-shadow: 0 4px 12px rgba(255, 0, 122, 0.2); --bs-box-shadow: 0 4px 12px rgba(255, 0, 122, 0.2);
--bs-box-shadow-sm: 0 2px 4px rgba(255, 0, 122, 0.15); --bs-box-shadow-sm: 0 2px 4px rgba(255, 0, 122, 0.15);
--bs-box-shadow-lg: 0 8px 30px rgba(255, 0, 122, 0.25); --bs-box-shadow-lg: 0 8px 30px rgba(255, 0, 122, 0.25);
--bs-box-shadow-inset: inset 0 1px 4px rgba(74, 0, 61, 0.2); --bs-box-shadow-inset: inset 0 1px 4px rgba(74, 0, 61, 0.2);
/* --- THE GRADIENT: THE SOUL OF THE THEME --- */ /* --- THE GRADIENT: THE SOUL OF THE THEME --- */
--bs-gradient: linear-gradient(75deg, var(--bs-primary), var(--bs-secondary)); --bs-gradient: linear-gradient(75deg, var(--bs-primary), var(--bs-secondary));
/* --- Don't forget the RGB values for Bootstrap components! --- */ /* --- Don't forget the RGB values for Bootstrap components! --- */
--bs-primary-rgb: 255, 0, 122; --bs-primary-rgb: 255, 0, 122;
--bs-secondary-rgb: 207, 255, 80; --bs-secondary-rgb: 207, 255, 80;
--bs-body-color-rgb: 74, 0, 61; --bs-body-color-rgb: 74, 0, 61;
--bs-body-bg-rgb: 255, 245, 253; --bs-body-bg-rgb: 255, 245, 253;
} }
/* /*
* ================================================================================================= * =================================================================================================
* 🌙🦇 CYBER GOTH THEME (DARK) 🦇🌙 * 🌙🦇 CYBER GOTH THEME (DARK) 🦇🌙
@ -77,31 +77,31 @@
*/ */
[data-bs-theme=dark] { [data-bs-theme=dark] {
color-scheme: dark; color-scheme: dark;
/* --- BACKGROUNDS & TEXT --- */ /* --- BACKGROUNDS & TEXT --- */
--bs-body-bg: #1D001A; /* Deep, dark space purple */ --bs-body-bg: #1D001A; /* Deep, dark space purple */
--bs-body-color: #FFE9FA; /* Light pink text for high contrast */ --bs-body-color: #FFE9FA; /* Light pink text for high contrast */
--bs-heading-color: var(--bs-cyan); /* Glowing cyan headings */ --bs-heading-color: var(--bs-cyan); /* Glowing cyan headings */
--bs-tertiary-bg: #2E0028; /* A slightly lighter container background */ --bs-tertiary-bg: #2E0028; /* A slightly lighter container background */
--bs-secondary-bg: #3A0033; --bs-secondary-bg: #3A0033;
--bs-secondary-color: rgba(255, 233, 250, 0.75); --bs-secondary-color: rgba(255, 233, 250, 0.75);
--bs-tertiary-color: rgba(255, 233, 250, 0.5); --bs-tertiary-color: rgba(255, 233, 250, 0.5);
/* --- LINKS & CODE --- */ /* --- LINKS & CODE --- */
/* Using the Toxic Slime for links gives it that cyber look */ /* Using the Toxic Slime for links gives it that cyber look */
--bs-link-color: var(--bs-green); --bs-link-color: var(--bs-green);
--bs-link-hover-color: var(--bs-cyan); --bs-link-hover-color: var(--bs-cyan);
--bs-code-color: var(--bs-pink); --bs-code-color: var(--bs-pink);
/* --- BORDERS & SHADOWS: NEON GLOWS --- */ /* --- BORDERS & SHADOWS: NEON GLOWS --- */
--bs-border-color: #5C004F; --bs-border-color: #5C004F;
--bs-border-color-translucent: rgba(255, 255, 255, 0.15); --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
/* Redefine shadows to be neon glows */ /* Redefine shadows to be neon glows */
--bs-box-shadow: 0 0 15px rgba(var(--bs-primary-rgb), 0.4); --bs-box-shadow: 0 0 15px rgba(var(--bs-primary-rgb), 0.4);
--bs-box-shadow-lg: 0 0 30px rgba(var(--bs-primary-rgb), 0.5); --bs-box-shadow-lg: 0 0 30px rgba(var(--bs-primary-rgb), 0.5);
/* --- EMPHASIS & SUBTLE BACKGROUNDS --- */ /* --- EMPHASIS & SUBTLE BACKGROUNDS --- */
/* These are for alerts, badges, etc. They'll be dark with glowing text. */ /* These are for alerts, badges, etc. They'll be dark with glowing text. */
--bs-primary-text-emphasis: #FF8AD1; --bs-primary-text-emphasis: #FF8AD1;
@ -110,7 +110,7 @@
--bs-info-text-emphasis: #7ADCF5; --bs-info-text-emphasis: #7ADCF5;
--bs-warning-text-emphasis: #FAF8A8; --bs-warning-text-emphasis: #FAF8A8;
--bs-danger-text-emphasis: #FF8A8A; --bs-danger-text-emphasis: #FF8A8A;
--bs-primary-bg-subtle: #3D002B; --bs-primary-bg-subtle: #3D002B;
--bs-secondary-bg-subtle: #415215; --bs-secondary-bg-subtle: #415215;
--bs-success-bg-subtle: #00332B; --bs-success-bg-subtle: #00332B;
@ -130,4 +130,50 @@
.emoji-bonkers .emoji-bonkers { display: inline; } .emoji-bonkers .emoji-bonkers { display: inline; }
.emoji-bonkers .emoji-normal, .emoji-bonkers .emoji-normal,
.emoji-bonkers .emoji-enhanced { display: none; } .emoji-bonkers .emoji-enhanced { display: none; }
/*
* =================================================================================================
* 🌈 RAINBOW PRIDE ELEMENTS 🌈
*
* Fabulous rainbow-themed elements to celebrate diversity and pride!
* =================================================================================================
*/
.bg-rainbow {
background: linear-gradient(
to right,
#FF5757, /* Red */
#FFBD59, /* Orange */
#F9F871, /* Yellow */
#CFFF50, /* Green */
#00F5D4, /* Teal */
#00A9E0, /* Blue */
#A328D6 /* Purple */
);
color: white;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
font-weight: bold;
border: none;
}
.fun-fact {
font-size: 1.1rem;
line-height: 1.6;
font-style: italic;
}
/* Add a subtle rainbow border to the fun facts card */
.card:has(.fun-fact) {
border-width: 2px;
border-style: solid;
border-image: linear-gradient(
to right,
#FF5757, /* Red */
#FFBD59, /* Orange */
#F9F871, /* Yellow */
#CFFF50, /* Green */
#00F5D4, /* Teal */
#00A9E0, /* Blue */
#A328D6 /* Purple */
) 1;
box-shadow: 0 4px 15px rgba(163, 40, 214, 0.2);
}

View file

@ -85,5 +85,32 @@
</div> </div>
</div> </div>
</div> </div>
<div class="card mt-3">
<div class="card-header bg-rainbow">
<h5 class="card-title">✨ Fabulous Drink Fun Facts ✨</h5>
</div>
<div class="card-body">
{% set funFacts = [
"The world's first gay bar, Café Lafitte in Exile, opened in New Orleans in 1933 and still serves fabulous cocktails today!",
"The colorful rainbow cocktail was created to celebrate Pride and contains six different colored liqueurs representing the Pride flag!",
"Drag queens in the 1950s would often meet at underground bars and order 'lavender cocktails' as a secret code!",
"The Cosmopolitan cocktail gained massive popularity thanks to 'Sex and the City' and became an LGBTQ+ nightlife staple!",
"The Stonewall Inn, site of the 1969 riots that sparked the modern LGBTQ+ rights movement, was originally a gay bar!",
"The term 'toast' comes from ancient Rome where they would literally put toast in wine to improve its flavor - how's that for quirky?",
"Champagne glasses were modeled after Marie Antoinette's breasts, according to fabulous but dubious historical legend!",
"Tequila doesn't contain a worm - that's mezcal, darling! And it's actually a moth larva, not a worm!",
"The world's most expensive cocktail, 'Diamonds Are Forever,' costs $22,600 and contains a real diamond at the bottom!",
"Absinthe was banned for nearly 100 years because people thought it caused hallucinations and 'moral degeneration' - how dramatic!",
"Ancient Egyptians believed that drinking wine made from red grapes was drinking the blood of those who had fought against the gods - fierce!",
"The Moscow Mule cocktail was invented to help sell vodka to Americans who thought it was too boring - now it's served in those gorgeous copper mugs!",
"The Bloody Mary was created as a hangover cure and named after Queen Mary I of England, who was quite the drama queen!"
] %}
{% set randomIndex = random(0, funFacts|length - 1) %}
<p class="mb-0 fun-fact">{{ funFacts[randomIndex] }}</p>
<p class="text-end mt-3"><small>💅 Slay all day while you sip away! 🏳️‍🌈</small></p>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}