UI/logic updates, tests added, backend updated

This commit is contained in:
2026-03-18 06:46:45 +00:00
parent b80d2a7379
commit 251e3c5821
27 changed files with 2113 additions and 1142 deletions

View File

@@ -190,6 +190,17 @@ html, body {
border-radius: 4px;
}
.save-success-btn {
opacity: 1 !important;
color: white !important;
cursor: default;
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.transition-swing {
transition: all 0.3s ease;
}
.print-btn {
background-color: #3b4e1e !important;
color: #f4e4bc !important;
@@ -208,89 +219,82 @@ html, body {
@media print {
@page {
margin: 0.5in 0.75in !important;
margin: 0 !important;
size: auto;
}
.v-application,
.v-application__wrap,
main.v-main,
.v-container {
padding-top: 0 !important;
margin-top: 0 !important;
position: static !important;
}
.recipe-content {
margin-top: -20px !important;
padding-top: 0 !important;
}
.chat-container,
.v-app-bar,
.no-print,
.separator,
.v-divider,
button,
.v-btn {
display: none !important;
}
body, .recipe-bg, .landing-page, .recipe-card {
body {
background: white !important;
background-image: none !important;
box-shadow: none !important;
color: black !important;
padding: 0.75in !important;
margin: 0 !important;
width: 100% !important;
height: auto !important;
min-height: 0 !important;
box-sizing: border-box !important;
overflow: visible !important;
position: relative !important;
}
.chat-container, .v-app-bar, .no-print, .separator, .v-divider, .recipe-description, button, .v-btn {
display: none !important;
height: 0 !important;
margin: 0 !important;
padding: 0 !important;
}
.v-row,
.v-col,
.v-container,
.v-card,
.recipe-card,
div[class*="v-col"] {
border: none !important;
outline: none !important;
.v-application, .v-application__wrap, main.v-main, .v-container, .recipe-card {
height: auto !important;
min-height: 0 !important;
margin: 0 !important;
padding: 0 !important;
position: static !important;
}
html, body {
height: auto !important;
overflow: visible !important;
}
.v-application {
display: block !important; /* Prevents flex-grow from creating a 2nd page */
}
/* 3. Tighten the Footer (Just in case) */
footer, .brand-subtitle {
page-break-after: avoid !important;
}
.v-card,
.recipe-card,
.v-application,
.v-application__wrap,
[class*="elevation-"] {
box-shadow: none !important;
border: none !important;
background-color: transparent !important;
background-image: none !important;
}
/* 2. Specific fix for Vuetify's "thin" borders */
.v-border-thin,
.border,
.border-sm {
border-width: 0 !important;
}
.v-border-thin,
.border,
.border-sm {
border-width: 0 !important;
}
header.text-center {
margin-top: 0 !important;
padding-top: 0 !important;
margin-bottom: 2px !important;
}
header.text-center img,
.v-img,
[class*="v-img"] {
max-height: 60px !important;
margin-bottom: 2px !important;
}
.brand-subtitle {
margin-bottom: 5px !important;
font-size: 0.7rem !important;
}
.recipe-content {
margin: 0 !important;
padding: 0 !important;
}
header.text-center img, .v-img, [class*="v-img"] {
max-height: 65px !important;
margin-bottom: 2px !important;
}
.recipe-title {
margin-top: 0 !important;
padding-top: 0 !important;
margin-bottom: 45px !important;
margin-bottom: 40px !important;
font-size: 1.6rem !important;
text-align: center;
font-weight: bold !important;
line-height: 1.2 !important;
}
.recipe-content .v-row {
@@ -298,53 +302,41 @@ html, body {
flex-direction: row !important;
flex-wrap: nowrap !important;
width: 100% !important;
gap: 0.4in !important;
gap: 0.5in !important;
align-items: flex-start !important;
margin-top: 0 !important;
padding-top: 0 !important;
}
.recipe-content .v-row > div:first-child {
flex: 0 0 35% !important;
width: 35% !important;
max-width: 35% !important;
padding: 0 !important;
flex: 0 0 33% !important;
max-width: 33% !important;
}
.recipe-content .v-row > div:last-child {
flex: 0 0 60% !important;
width: 60% !important;
max-width: 60% !important;
padding: 0 !important;
margin: 0 !important;
flex: 0 0 62% !important;
max-width: 62% !important;
}
.section-header {
margin-bottom: 12px !important;
padding-bottom: 0 !important;
border-bottom: none !important;
width: 100% !important;
}
* {
border: none !important;
box-shadow: none !important;
outline: none !important;
font-weight: bold !important;
margin-bottom: 15px !important;
text-transform: uppercase;
}
.ingredient-item, .step-text {
font-size: 0.95rem !important;
line-height: 1.3 !important;
color: black !important;
}
.step-number {
border: none !important;
line-height: 1.4 !important;
}
.instruction-step {
margin-bottom: 8px !important;
gap: 8px !important;
margin-bottom: 10px !important;
display: flex !important;
gap: 10px !important;
}
.recipe-content, .v-row, .v-col, * {
overflow: visible !important;
height: auto !important;
}
.step-number, .ingredient-item::before {
@@ -352,12 +344,6 @@ html, body {
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
.recipe-content, .v-row, .v-col {
overflow: visible !important;
height: auto !important;
border: none !important;
}
}
.section-header {

View File

@@ -94,10 +94,11 @@
text-align: center !important;
}
.v-textarea .v-field__input {
font-weight: 500 !important;
color: #2c2925 !important;
.v-textarea .v-field__input, .v-textarea textarea {
font-family: 'Libre Baskerville', serif !important;
font-size: 1.1rem !important;
line-height: 1.6 !important;
color: #2c2925 !important
}
.v-field-label {
@@ -105,6 +106,13 @@
opacity: 0.6 !important;
}
.v-textarea .v-label,
.v-textarea .v-field-label {
font-family: 'Libre Baskerville', serif !important;
font-style: italic;
}
.v-field__outline {
--v-field-border-opacity: 1 !important;
color: #d1c7b7 !important;