From 3858949372612f55f957792d97fa52d5c0481189 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Wed, 17 Sep 2025 21:36:54 +0000 Subject: [PATCH] garden 2 --- assets/css/custom.css | 39 +++++++++++---------- assets/js/main.js | 4 +++ assets/pasted-20250917-213121-f6094c15.png | Bin 0 -> 3719 bytes assets/pasted-20250917-213310-92d2c7b6.png | Bin 0 -> 3639 bytes assets/pasted-20250917-213502-cf2d46cd.png | Bin 0 -> 4526 bytes 5 files changed, 24 insertions(+), 19 deletions(-) create mode 100644 assets/pasted-20250917-213121-f6094c15.png create mode 100644 assets/pasted-20250917-213310-92d2c7b6.png create mode 100644 assets/pasted-20250917-213502-cf2d46cd.png diff --git a/assets/css/custom.css b/assets/css/custom.css index 39ddf1e..5e5529d 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -347,30 +347,31 @@ header { z-index: 1; } -.petal div { +/* This is for each individual petal piece */ +.petal > div { position: absolute; top: 50%; left: 50%; - margin-top: -10px; - margin-left: -5px; - width: 10px; + width: 14px; height: 20px; - border-radius: 5px; - transform-origin: 50% 100%; + margin-left: -7px; + margin-top: -22px; /* Controls distance from center */ + border-radius: 50%; + transform-origin: center 22px; /* PIVOT POINT: (width/2) (margin-top) */ } /* Petal Colors */ -.petal-pink div { background-color: #ffaccb; } -.petal-yellow div { background-color: #fff38a; } -.petal-purple div { background-color: #d9abff; } -.petal-white div { background-color: #ffffff; } +.petal-pink > div { background-color: #ffaccb; } +.petal-yellow > div { background-color: #fff38a; } +.petal-purple > div { background-color: #d9abff; } +.petal-white > div { background-color: #ffffff; } - -.petal .p1 { transform: rotate(0deg) translateY(-15px); } -.petal .p2 { transform: rotate(45deg) translateY(-15px); } -.petal .p3 { transform: rotate(90deg) translateY(-15px); } -.petal .p4 { transform: rotate(135deg) translateY(-15px); } -.petal .p5 { transform: rotate(180deg) translateY(-15px); } -.petal .p6 { transform: rotate(225deg) translateY(-15px); } -.petal .p7 { transform: rotate(270deg) translateY(-15px); } -.petal .p8 { transform: rotate(315deg) translateY(-15px); } +/* Position and rotate each petal */ +.petal .p1 { transform: rotate(0deg); } +.petal .p2 { transform: rotate(45deg); } +.petal .p3 { transform: rotate(90deg); } +.petal .p4 { transform: rotate(135deg); } +.petal .p5 { transform: rotate(180deg); } +.petal .p6 { transform: rotate(225deg); } +.petal .p7 { transform: rotate(270deg); } +.petal .p8 { transform: rotate(315deg); } diff --git a/assets/js/main.js b/assets/js/main.js index 2613a2a..cb4029d 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -16,7 +16,11 @@ document.addEventListener('DOMContentLoaded', () => { // --- Initialization --- function init() { tasks.forEach(renderTask); + // Filter out garden elements whose tasks are no longer completed or no longer exist + const completedTaskIds = new Set(tasks.filter(t => t.completed).map(t => t.id)); + gardenElements = gardenElements.filter(el => completedTaskIds.has(el.taskId)); gardenElements.forEach(renderGardenElement); + saveState(); // Resync localStorage with the filtered elements } // --- State Management --- diff --git a/assets/pasted-20250917-213121-f6094c15.png b/assets/pasted-20250917-213121-f6094c15.png new file mode 100644 index 0000000000000000000000000000000000000000..bea93e50cd4d9a84df1be2bf61117ee7d706b1b8 GIT binary patch literal 3719 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 literal 0 HcmV?d00001 diff --git a/assets/pasted-20250917-213502-cf2d46cd.png b/assets/pasted-20250917-213502-cf2d46cd.png new file mode 100644 index 0000000000000000000000000000000000000000..68e0df3e47ac2a208215b2824004bd4e75f1cb65 GIT binary patch literal 4526 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 S4#9FP05v5oSfzq_$o~NKU~6sw literal 0 HcmV?d00001