diff --git a/doc/prompt.txt b/doc/prompt.txt
index cdafb77..d7b7bee 100644
--- a/doc/prompt.txt
+++ b/doc/prompt.txt
@@ -45,4 +45,58 @@ dopln kluce pre UI texty pre preklad, pre kluce pouzivaj anglictinu, dopln potom
na zobrazeni app/ingredients sprav aby formular pre pridanie novej suroviny sa zobrazil az ked kliknem na tlacitko Nova surovina, a po uspesnom ulozeni ten formular pre pridanie novej suroviny skry, nezabudni vynulovat udaje vo formulari po ulozeni
----- 2026-02-14 08:08:33 -----------------------------------------------------
-dopln jemnejší UX flow (toasty, confirm modaly pri delete, loading/error states per card)
\ No newline at end of file
+dopln jemnejší UX flow (toasty, confirm modaly pri delete, loading/error states per card)
+
+----- 2026-02-14 12:44:33 -----------------------------------------------------
+v zozname surovin app/ingredients sa zobrazuju len bielkoviny, sacharidy a tuky, pridaj tam aj vlakninu,
+
+zaroven to chcem farebne rozlisit, urob to ako farebny stitok, ze bielkoviny budu modre, sacharidy oranzove, tuky cervene (mierne tlmena) a vlaknina tmavsia zelena
+
+podobne farebne to rozlis aj na denndom prehlade app/today v sucte dna a tiez tam pridaj vlakninu
+
+v zozname jedalnickov app/meals je pri kazdom len pocet kalorii, pridaj tam tiez sumar makrozivin (bielkoviny, sacharidy, tuky a vlaknina)
+
+GPT upravil takto:
+Rozšír UI aplikácie Nutrio nasledovne:
+
+1) Ingredients list (route: /app/ingredients)
+- Aktuálne sa zobrazujú len bielkoviny, sacharidy a tuky.
+- Pridaj zobrazenie vlákniny (fiber_g_100).
+- Makrá zobraz ako malé farebné štítky (badge), nie ako obyčajný text.
+
+Farby štítkov:
+- Bielkoviny (protein) → modrá #3B82F6
+- Sacharidy (carbs) → oranžová #F59E0B
+- Tuky (fat) → tlmená červená #EF4444
+- Vláknina (fiber) → tmavšia zelená #10B981
+
+Štýl badge:
+- malé zaoblené pill tvary
+- jemné svetlé pozadie (napr. 10–15% opacity farby)
+- text farba plná farba
+- formát: B 12g / S 24g / T 5g / V 6g
+
+2) Today page (route: /app/today)
+- V dennom súčte pridaj vlákninu.
+- Makrá zobraz rovnakým farebným štýlom ako v ingredients.
+- Kalórie nech ostanú neutrálne (tmavá šedá), vizuálne dominantné veľkosťou písma, nie farbou.
+
+Layout:
+- hore veľké číslo kcal
+- pod tým horizontálne makrá ako farebné štítky
+
+3) Meals list (route: /app/meals)
+- Aktuálne sa zobrazuje len počet kalórií.
+- Pridaj aj súhrn makier (protein, carbs, fat, fiber).
+- Zobraz ich rovnakým badge systémom pre konzistentnosť.
+- Kcal nech je oddelené (napr. nad makrami alebo výraznejšie písmo).
+
+4) Konzistentnosť:
+- Použi jeden spoločný komponent napr.
+- Nepoužívaj sýte plné farebné pozadia.
+- Použi minimalistický SaaS štýl.
+- Farby makier musia byť identické naprieč celou aplikáciou.
+- Nepridávaj nové knižnice.
+
+Výsledok:
+Čistý, konzistentný, moderný vzhľad bez prehnaných farieb.
diff --git a/frontend/src/assets/css/style.css b/frontend/src/assets/css/style.css
index bae23f2..3936f2f 100644
--- a/frontend/src/assets/css/style.css
+++ b/frontend/src/assets/css/style.css
@@ -13,6 +13,10 @@
--color-success-bg: #e7f4d8;
--color-error-bg: #f6dde0;
--color-error: #7d2430;
+ --macro-protein: #3B82F6;
+ --macro-carbs: #F59E0B;
+ --macro-fat: #EF4444;
+ --macro-fiber: #10B981;
--radius-md: 0.875rem;
--radius-lg: 1.25rem;
--space-xs: 0.5rem;
@@ -535,6 +539,20 @@ select {
font-size: var(--fs-sm);
}
+.list-row__meta--nutrition {
+ min-width: 0;
+ display: flex;
+ flex-direction: column;
+ align-items: flex-end;
+ gap: 0.42rem;
+}
+
+.list-row__kcal {
+ font-size: 1rem;
+ font-weight: 700;
+ color: color-mix(in srgb, var(--color-text) 88%, var(--color-muted));
+}
+
.list-row__actions {
display: flex;
gap: var(--space-xs);
@@ -556,20 +574,89 @@ select {
color: var(--color-muted);
}
-.totals-grid {
- display: grid;
- grid-template-columns: repeat(4, minmax(0, 1fr));
- gap: var(--space-sm);
+.day-meal-card__summary--nutrition {
+ display: flex;
+ flex-direction: column;
+ gap: 0.45rem;
}
-.totals-grid span {
+.day-meal-card__kcal {
+ font-size: var(--fs-sm);
+ font-weight: 700;
+ color: color-mix(in srgb, var(--color-text) 88%, var(--color-muted));
+}
+
+.totals-card__kcal {
+ display: flex;
+ flex-direction: column;
+ margin-bottom: var(--space-sm);
+}
+
+.totals-card__kcal-label {
display: block;
color: var(--color-muted);
font-size: var(--fs-sm);
}
-.totals-grid strong {
- font-size: 1.1rem;
+.totals-card__kcal-value {
+ font-size: clamp(2rem, 5vw, 2.75rem);
+ line-height: 1.05;
+ letter-spacing: -0.015em;
+ color: color-mix(in srgb, var(--color-text) 90%, var(--color-muted));
+}
+
+.macro-badge-group {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.42rem;
+}
+
+.macro-badge-group--with-top-gap {
+ margin-top: 0.45rem;
+}
+
+.macro-badge-group--compact {
+ gap: 0.32rem;
+}
+
+.macro-badge-group--right {
+ justify-content: flex-end;
+}
+
+.macro-badge {
+ display: inline-flex;
+ align-items: center;
+ border-radius: 999px;
+ padding: 0.24rem 0.56rem;
+ border: 1px solid transparent;
+ font-size: 0.76rem;
+ font-weight: 600;
+ line-height: 1;
+ white-space: nowrap;
+}
+
+.macro-badge--protein {
+ color: var(--macro-protein);
+ border-color: color-mix(in srgb, var(--macro-protein) 30%, var(--color-border));
+ background: color-mix(in srgb, var(--macro-protein) 13%, var(--color-surface));
+}
+
+.macro-badge--carbs {
+ color: var(--macro-carbs);
+ border-color: color-mix(in srgb, var(--macro-carbs) 30%, var(--color-border));
+ background: color-mix(in srgb, var(--macro-carbs) 13%, var(--color-surface));
+}
+
+.macro-badge--fat {
+ color: var(--macro-fat);
+ border-color: color-mix(in srgb, var(--macro-fat) 30%, var(--color-border));
+ background: color-mix(in srgb, var(--macro-fat) 13%, var(--color-surface));
+}
+
+.macro-badge--fiber {
+ color: var(--macro-fiber);
+ border-color: color-mix(in srgb, var(--macro-fiber) 30%, var(--color-border));
+ background: color-mix(in srgb, var(--macro-fiber) 13%, var(--color-surface));
}
.meal-items-editor h3,
@@ -747,10 +834,6 @@ select {
grid-template-columns: 1fr;
}
- .totals-grid {
- grid-template-columns: repeat(2, minmax(0, 1fr));
- }
-
.grid-two {
grid-template-columns: 1fr;
}
diff --git a/frontend/src/components/common/MacroBadge.vue b/frontend/src/components/common/MacroBadge.vue
new file mode 100644
index 0000000..37c37fe
--- /dev/null
+++ b/frontend/src/components/common/MacroBadge.vue
@@ -0,0 +1,28 @@
+
+
+
+
+ {{ label }} {{ formattedGrams }}g
+
+
diff --git a/frontend/src/components/today/DayMealCard.vue b/frontend/src/components/today/DayMealCard.vue
index 5ba9184..88333ae 100644
--- a/frontend/src/components/today/DayMealCard.vue
+++ b/frontend/src/components/today/DayMealCard.vue
@@ -1,6 +1,7 @@