New layout and veckomeny
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Elias Jansson
2025-05-09 15:14:00 +02:00
parent ad2e09595a
commit 3ff2833101
7 changed files with 645 additions and 485 deletions

View File

@@ -0,0 +1,185 @@
:root {
--surface: #ffffff;
--header: #EDF2F7; /* Ljus blågrå */
--border: #CBD5E0; /* Neutral gråblå */
--input: #F7FAFC; /* Nästan vit */
--text: #2D3748; /* Djup gråblå, bra kontrast */
--subtext: #718096; /* Neutral textgrå */
--highlight: #3182CE; /* Klar blå (används till knappar/länkar) */
--danger: #E53E3E; /* Röd */
--success: #38A169; /* Grön */
--warn: #DD6B20; /* Orangebrun */
--bg: #F9FAFB; /* Väldigt ljus bakgrund */
}
table {
width: 100%;
border-collapse: separate;
border-spacing: 0 4px;
font-size: 0.9rem;
background: var(--bg);
}
th {
background: var(--header);
color: var(--text);
padding: 8px 12px;
text-align: left;
}
td {
background: var(--surface);
padding: 8px 12px;
vertical-align: top;
}
h1, h2 {
color: var(--text);
}
.week-nav a {
color: var(--highlight);
font-weight: bold;
text-decoration: none;
margin: 0 6px;
}
.week-nav a:hover {
text-decoration: underline;
}
.meal-input {
background: var(--input);
border: 1px solid var(--border);
color: var(--text);
border-radius: 8px;
padding: 6px;
font-size: 0.85rem;
width: 100%;
}
.meal-input.new-entry {
border-color: var(--warn);
}
.meal-input.existing-entry {
border-color: var(--success);
}
.delete-btn {
background: none;
border: none;
color: var(--danger);
cursor: pointer;
padding: 0;
font-size: 1rem;
}
select.meal-input {
appearance: none;
background: var(--input);
border: 1px solid var(--border);
border-radius: 8px;
color: var(--text);
padding: 6px;
width: 100%;
font-size: 0.9rem;
}
.save-menu-btn {
background: var(--highlight);
color: white;
padding: 8px 16px;
border: none;
border-radius: 8px;
font-weight: bold;
font-size: 0.9rem;
cursor: pointer;
transition: background 0.2s ease;
}
.save-menu-btn:hover {
background: #2B6CB0; /* lite mörkare blå */
}
.recent-history {
background: var(--header);
border-radius: 8px;
color: var(--text);
padding: 16px;
margin-top: 24px;
}
.recent-history table {
width: 100%;
border-collapse: collapse;
font-size: 0.85rem;
}
.recent-history th,
.recent-history td {
padding: 4px 8px;
text-align: left;
}
/* Dag-cell med ikonknapp */
.day-cell {
max-width: 0px;
padding: 8px 12px;
font-weight: bold;
vertical-align: top;
}
.day-cell button {
margin-right: 6px;
background: none;
border: none;
color: var(--text);
font-size: 1rem;
cursor: pointer;
}
/* Måltidscell och frukost/lunchfält */
.meal-cell {
padding: 8px 12px;
vertical-align: top;
}
.meal-entry-group {
display: flex;
flex-direction: column;
gap: 4px;
}
.meal-input-group {
display: flex;
align-items: center;
gap: 4px;
}
/* Extra-rad under varje dag */
.extra-row td {
padding: 0;
}
.extra-meals {
display: flex;
flex-direction: column;
gap: 8px;
padding: 8px 0;
}
.extra-meals label {
font-size: 0.85rem;
color: var(--subtext);
min-width: 60px;
}
/* Kockcell */
.cook-cell {
padding: 8px 12px;
vertical-align: top;
}

View File

@@ -1,227 +1,223 @@
/* Base Styles */
body {
background-color: #1F2C3C; /* Dark background */
color: #B0BEC5; /* Light Gray text for better readability */
font-family: 'Roboto', sans-serif;
margin: 0;
padding: 20px; /* Keep padding for general layout */
}
/* Container for Centering and Max Width */
.budget-page {
width: 100%; /* Make the page full width */
max-width: 1900px; /* Adjust or remove this */
margin: 0 auto; /* Centering */
padding: 0; /* Removed extra padding for budget page */
}
/* Grid Layout */
.grid-container {
display: grid;
grid-template-columns: 250px 1fr 250px;
gap: 10px; /* Keep existing gap */
padding: 0; /* Removed padding for grid container */
margin: 0; /* Removed margin for grid container */
}
.left-sidebar, .sidebar-budget-right {
background-color: #f9f9f9; /* Softer background */
border-radius: 12px;
padding: 10px; /* Adjusted padding for sidebars */
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.main-content {
padding: 10px;
background-color: #f4f4f4; /* Light gray */
border-radius: 12px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.nav-link {
color: #3A4E62; /* Muted blue-gray for consistency */
}
.nav-link:hover {
text-decoration: underline;
}
@media (max-width: 768px) {
.grid-container {
grid-template-columns: 1fr; /* Responsive layout */
}
}
.header-container {
/* ==========================================================================
HEADER LEWEL DESIGN (utan meny)
========================================================================== */
.top-bar {
display: flex;
justify-content: flex-start; /* Aligns the header to the left */
align-items: center; /* Centers items vertically */
margin-bottom: 0px; /* Adjust space below the header as needed */
justify-content: space-between;
align-items: flex-end;
background: linear-gradient(to right, #1F2C3C, #2E3C4F);
padding: 0 16px 0;
border-bottom: 2px solid #394B5A;
position: sticky;
top: 0;
z-index: 1000;
box-shadow: 0 2px 8px rgba(0,0,0,0.4);
height: 54px;
}
.header-left {
display: flex;
align-items: flex-end;
height: 100%;
}
.family-header {
text-align: left; /* Ensures text aligns to the left */
margin: 0; /* Removes default margin */
display: flex;
align-items: baseline;
margin: 0;
padding: 0;
line-height: 1;
font-size: 2em;
letter-spacing: -0.5px;
font-family: 'Segoe UI', sans-serif;
font-weight: 600;
text-shadow: 0 1px 2px rgba(0,0,0,0.2);
}
.family-header span {
margin: 0;
padding: 0;
display: inline-block;
line-height: 1;
}
.initial {
font-weight: bold; /* Adjust as needed */
font-size: 1.2em; /* Adjust size for initials */
font-weight: 700;
font-size: 1.4em;
}
.name {
color: #ffffff; /* White for names */
font-size: 0.4em; /* Adjust size as needed */
font-size: 0.45em;
color: #f7f7f7;
opacity: 0.95;
}
/* Specific colors for initials */
.initial.L {
color: #FF0000; /* Red for first L */
color: #ff3333;
}
.initial.E {
color: #FF7F00; /* Orange for first E */
color: #ff9900;
}
.initial.W {
color: #FFFF00; /* Yellow */
color: #ffd700;
}
.initial.E2 { /* Second E */
color: #00FF00; /* Green */
.initial.E2 {
color: #00cc66;
}
.initial.L2 { /* Second L */
color: #0088CC; /* Blue */
.initial.L2 {
color: #3399ff;
}
.navbar-nav {
list-style-type: none; /* Remove bullet points */
padding: 0; /* Remove padding */
}
.nav-item {
margin: 10px 0; /* Adjust spacing between links */
}
.nav-link {
text-decoration: none; /* Remove underline */
color: #3A4E62; /* Muted blue-gray for consistency */
display: flex; /* Use flexbox to align icon and text */
align-items: center; /* Center items vertically */
}
.nav-link i {
margin-right: 8px; /* Space between icon and text */
font-size: 1.2em; /* Adjust icon size */
}
/* Sidebar Right Styles */
.sidebar-section {
margin-bottom: 5px;
}
.sidebar-header {
cursor: pointer;
background-color: #4CAF50; /* Green */
color: white;
padding: 8px; /* Slightly more padding */
border-radius: 5px;
display: flex;
justify-content: space-between;
align-items: center; /* Center items vertically */
font-size: 14px;
transition: background-color 0.3s; /* Smooth hover transition */
}
.sidebar-header:hover {
background-color: #45a049; /* Darker green on hover */
}
.accordion-item {
border-top: 1px solid #ddd; /* Separator between items */
}
.accordion-header {
display: flex; /* Flexbox for header */
justify-content: space-between;
align-items: center; /* Center vertically */
padding: 8px; /* Padding for accordion header */
cursor: pointer;
background-color: #f1f1f1; /* Light background for header */
border-radius: 4px;
transition: background-color 0.3s; /* Smooth hover transition */
}
.accordion-header:hover {
background-color: #e0e0e0; /* Slightly darker background on hover */
}
.accordion-content {
display: none; /* Hidden by default */
background-color: #fff; /* White background for content */
padding: 5px; /* Padding for content */
border-radius: 4px; /* Rounded corners */
}
.item-name {
font-weight: normal; /* Normal weight for item names */
font-size: 12px; /* Smaller font size */
}
.item-amount {
color: #333;
font-size: 12px; /* Smaller font size for amounts */
}
.date-picker {
.auth-links {
position: relative;
}
.date-picker-toggle {
background-color: #4A6572; /* Muted blue-gray */
color: #ffffff;
padding: 10px 15px;
.auth-menu {
position: relative;
}
.auth-icon-button {
background: none;
border: none;
border-radius: 6px;
cursor: pointer;
font-size: 16px;
transition: background-color 0.3s;
}
.date-picker-toggle:hover {
background-color: #3A4E62; /* Darker blue-gray on hover */
}
.date-picker-dropdown {
position: absolute;
top: 100%;
left: 0;
background-color: #333;
color: #ffffff;
padding: 10px;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
margin-top: 8px;
z-index: 1000;
display: flex;
gap: 10px;
width: max-content;
font-size: 20px;
cursor: pointer;
padding: 6px;
transition: opacity 0.2s;
}
.date-picker-dropdown select {
background-color: #444;
color: #ffffff;
border: none;
padding: 8px;
border-radius: 4px;
font-size: 14px;
appearance: none;
cursor: pointer;
transition: background-color 0.3s;
.auth-icon-button:hover {
opacity: 0.85;
}
.date-picker-dropdown select:hover {
background-color: #555;
.auth-dropdown {
position: absolute;
top: 36px;
right: 0;
background-color: #ffffff;
border-radius: 6px;
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
min-width: 160px;
display: none;
flex-direction: column;
z-index: 1001;
}
.auth-dropdown a {
padding: 8px 12px;
color: #1F2C3C;
text-decoration: none;
font-size: 13px;
border-bottom: 1px solid #eee;
}
.auth-dropdown a:last-child {
border-bottom: none;
}
.auth-dropdown a:hover {
background-color: #f0f0f0;
}
.auth-menu.open .auth-dropdown {
display: flex;
}
/* ==========================================================================
LAYOUT OMBYGGD STRUKTUR
========================================================================== */
body {
background-color: #1F2C3C;
color: #D0DCE4;
font-family: 'Segoe UI', sans-serif;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
min-height: 100vh;
font-size: 15px;
line-height: 1.5;
}
.page-content {
display: flex;
flex-grow: 1;
padding: 16px;
gap: 16px;
background-color: #223344;
}
.sidebar {
width: 155px;
background-color: #f9f9f9;
border-radius: 8px;
padding: 4px;
box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}
.main-panel {
flex: 1;
background-color: #ffffff;
border-radius: 10px;
padding: 20px;
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
display: flex;
flex-direction: column;
gap: 16px;
color: #2C3E50;
font-size: 16px;
line-height: 1.7;
}
/* ==========================================================================
NAVIGATIONSLISTA KOMPAKT STIL
========================================================================== */
.nav-list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 0;
}
.nav-list a {
text-decoration: none;
color: #1F2C3C;
font-weight: 500;
display: flex;
align-items: center;
gap: 6px;
padding: 4px 6px;
border-radius: 4px;
font-size: 13px;
transition: background-color 0.2s;
line-height: 1.3;
}
.nav-list a:hover {
background-color: #e0e0e0;
}
.nav-list i {
font-size: 0.9em;
width: 14px;
text-align: center;
}
/* ==========================================================================
RESPONSIVT
========================================================================== */
@media (max-width: 768px) {
.page-content {
flex-direction: column;
}
.sidebar {
width: 100%;
}
}