2 Commits
Author SHA1 Message Date
aaron.axvig 3e695d6699 Scale only recipe cooking content 2026-08-03 22:24:41 -05:00
aaron.axvig bc81e8403d Add configurable stacked recipe layout 2026-08-03 22:19:54 -05:00
5 changed files with 35 additions and 16 deletions
+17 -9
View File
@@ -4,7 +4,7 @@
}
.MMM-NextcloudCookbook .ncc-active {
--ncc-type-scale: 1;
--ncc-content-scale: 1;
position: fixed;
inset: 0;
@@ -54,9 +54,9 @@
}
.MMM-NextcloudCookbook .ncc-recipe h1 {
margin: 0 0 calc(26px * var(--ncc-type-scale));
margin: 0 0 26px;
color: #fff6d8;
font-size: calc(82px * var(--ncc-type-scale));
font-size: 82px;
line-height: 1.08;
}
@@ -65,8 +65,8 @@
flex-wrap: wrap;
gap: 10px 22px;
align-items: baseline;
margin: 0 0 calc(36px * var(--ncc-type-scale));
font-size: calc(36px * var(--ncc-type-scale));
margin: 0 0 36px;
font-size: 36px;
}
.MMM-NextcloudCookbook .ncc-meta dt {
@@ -79,27 +79,35 @@
}
.MMM-NextcloudCookbook .ncc-columns {
display: block;
}
.MMM-NextcloudCookbook .ncc-layout-stacked section:first-child {
margin-bottom: calc(42px * var(--ncc-content-scale));
}
.MMM-NextcloudCookbook .ncc-layout-side-by-side {
display: grid;
grid-template-columns: minmax(260px, 0.8fr) minmax(400px, 1.4fr);
gap: 42px;
}
.MMM-NextcloudCookbook .ncc-columns h2 {
margin: 0 0 calc(18px * var(--ncc-type-scale));
margin: 0 0 calc(18px * var(--ncc-content-scale));
color: #d6b96b;
font-size: calc(56px * var(--ncc-type-scale));
font-size: calc(56px * var(--ncc-content-scale));
}
.MMM-NextcloudCookbook .ncc-columns ul,
.MMM-NextcloudCookbook .ncc-columns ol {
margin: 0;
padding-left: 1.25em;
font-size: calc(50px * var(--ncc-type-scale));
font-size: calc(50px * var(--ncc-content-scale));
line-height: 1.36;
}
.MMM-NextcloudCookbook .ncc-columns li {
margin-bottom: calc(18px * var(--ncc-type-scale));
margin-bottom: calc(18px * var(--ncc-content-scale));
}
.MMM-NextcloudCookbook .ncc-error {
+5 -3
View File
@@ -5,6 +5,7 @@ Module.register("MMM-NextcloudCookbook", {
controlPath: "/MMM-NextcloudCookbook/control",
controlUrl: "",
animationSpeed: 400,
layout: "stacked",
shareUrl: "",
sharePassword: ""
},
@@ -57,7 +58,7 @@ Module.register("MMM-NextcloudCookbook", {
for (let attempt = 0; attempt < 12; attempt++) {
const scale = (minimum + maximum) / 2;
root.style.setProperty("--ncc-type-scale", scale);
root.style.setProperty("--ncc-content-scale", scale);
const fits = recipe.scrollHeight <= availableHeight
&& recipe.scrollWidth <= availableWidth;
if (fits) {
@@ -67,7 +68,7 @@ Module.register("MMM-NextcloudCookbook", {
maximum = scale;
}
}
root.style.setProperty("--ncc-type-scale", best.toFixed(3));
root.style.setProperty("--ncc-content-scale", best.toFixed(3));
},
setRecipeMode(active) {
@@ -156,7 +157,8 @@ Module.register("MMM-NextcloudCookbook", {
article.appendChild(header);
const columns = document.createElement("div");
columns.className = "ncc-columns";
const layout = this.config.layout === "side-by-side" ? "side-by-side" : "stacked";
columns.className = `ncc-columns ncc-layout-${layout}`;
const ingredients = document.createElement("section");
const ingredientsTitle = document.createElement("h2");
+10 -1
View File
@@ -16,11 +16,20 @@ link; it should look like `https://cloud.example.test/s/SHARE_TOKEN`.
position: "bottom_right",
config: {
shareUrl: "https://cloud.example.test/s/SHARE_TOKEN",
controlUrl: "http://mirror.example.test:8080/MMM-NextcloudCookbook/control"
controlUrl: "http://mirror.example.test:8080/MMM-NextcloudCookbook/control",
layout: "stacked"
}
}
```
`layout` controls the full-screen recipe arrangement. Its default value,
`"stacked"`, displays the ingredients above the instructions. Set it to
`"side-by-side"` to display ingredients and instructions in two columns. Both
layouts automatically scale the ingredient and instruction sections to make
the best use of the available screen while keeping all recipe content visible.
The recipe title, timing metadata, yield, and QR controller remain at fixed
sizes.
The configured `position` controls where the QR controller appears during the
normal MagicMirror layout. When a recipe is activated, the module displays a
fixed full-screen overlay regardless of that region. Exiting recipe mode
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "mmm-nextcloud-cookbook",
"version": "0.1.2",
"version": "0.2.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "mmm-nextcloud-cookbook",
"version": "0.1.2",
"version": "0.2.1",
"dependencies": {
"fast-xml-parser": "5.10.1",
"qrcode": "1.5.4"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "mmm-nextcloud-cookbook",
"version": "0.1.2",
"version": "0.2.1",
"private": true,
"description": "Display recipes from a Nextcloud Cookbook share on MagicMirror",
"main": "node_helper.js",