Add live OCA module status, Pixabay photography, new email

- new section: Top OCA modules, module / area / 19.0 / 20.0 status,
  rows rendered from the n8n webhook at
  n8n.odoo4projects.com/webhook/oc-guy/modules, with the last fetched
  snapshot in the markup as a no-JS fallback
- photography swapped from archival maps to Pixabay photos (archive
  aisle, cardboard boxes, old books, workshop tools, warehouse)
- featured module is now a full-bleed dark spread with the warehouse shot
- contact address is oliver@oc-guy.com throughout
- credits point at Pixabay and its Content License
This commit is contained in:
The OC Guy committed 2026-10-23 14:57:25 +00:00
1 parent 251bec598b
commit 43d0fc4658
8 files changed
+233 -23

No files matched your search

+85
View File
@@ -654,3 +654,88 @@ html.js [data-rv].rv-in { opacity: 1; transform: none; }
.nav-cta { min-height: 44px; }
.foot-links { gap: 10px 18px; }
}
/* ---------- featured module as a dark spread ---------- */
.feature {
background: var(--ink);
color: #f4f2ee;
border: 0;
grid-template-columns: 5fr 7fr;
align-items: stretch;
}
.feature-photo { margin: 0; }
.feature-photo img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; object-position: 50% 45%; }
.feature-body p { color: rgba(255, 255, 255, 0.82); }
.plate-kicker { color: rgba(255, 255, 255, 0.58); }
.feature-name { color: #fff; }
.benefits { border-top-color: rgba(255, 255, 255, 0.25); }
.benefits li { border-bottom-color: rgba(255, 255, 255, 0.16); color: rgba(255, 255, 255, 0.66); }
.benefits strong { color: #fff; }
.feature-note { color: rgba(255, 255, 255, 0.6); }
.feature .btn { background: #f4f2ee; border-color: #f4f2ee; color: var(--ink); }
.feature .btn:hover, .feature .btn:focus-visible { background: transparent; color: #f4f2ee; }
@media (max-width: 900px) {
.feature { grid-template-columns: 1fr; }
.feature-photo img { min-height: 0; height: clamp(200px, 38vw, 300px); }
}
/* ---------- OCA module status table ---------- */
.oca-table { width: 100%; border-collapse: collapse; font-size: var(--step-sm); }
.oca-table thead th {
padding: 0 0 10px;
text-align: left;
font-size: var(--step-xs);
font-weight: 600;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--muted);
border-bottom: 1px solid var(--ink);
}
.oca-table thead th:nth-child(1) { width: 54%; }
.oca-table thead th:nth-child(2) { width: 26%; }
.oca-table thead th:nth-child(3),
.oca-table thead th:nth-child(4) { width: 74px; text-align: center; }
.oca-table tbody td { padding: 13px 0; border-bottom: 1px solid var(--rule); vertical-align: middle; }
.oca-name a {
font-family: var(--serif);
font-size: var(--step-h3);
font-weight: 500;
line-height: 1.2;
text-decoration: none;
}
.oca-name a:hover, .oca-name a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.oca-area {
font-size: var(--step-xs);
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--muted);
}
.oca-status { text-align: center; }
.mark {
display: inline-flex;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
border: 1px solid var(--rule-strong);
font-size: 12px;
line-height: 1;
color: var(--muted);
}
.mark.is-on { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.oca-note {
margin: 14px 0 0;
max-width: 48em;
font-family: var(--serif);
font-style: italic;
font-size: var(--step-sm);
color: var(--muted);
}
@media (max-width: 600px) {
.oca-table thead th:nth-child(2),
.oca-table .oca-area { display: none; }
.oca-name a { font-size: var(--step-body); }
.oca-table tbody td { padding: 12px 0; }
}