+
${this._escape(r.name)}
${meta.join("")}
@@ -148,7 +148,7 @@ class CookCliCard extends HTMLElement {
})
.join("");
- return `
${rows}
`;
+ return `
${cards}
`;
}
_render() {
@@ -167,27 +167,74 @@ class CookCliCard extends HTMLElement {
.card-content { padding: 0 16px 16px; }
.state-msg { padding: 16px 0; color: var(--secondary-text-color); }
.state-msg.error { color: var(--error-color, #db4437); }
- .recipe-list { display: flex; flex-direction: column; }
- .recipe-row {
- display: flex; align-items: center; gap: 12px;
- padding: 10px 4px; border-bottom: 1px solid var(--divider-color);
+
+ /* Grille responsive : 1 colonne par défaut (mobile),
+ puis 2 / 3 / 4 colonnes selon la largeur disponible. */
+ .recipe-grid {
+ display: grid;
+ grid-template-columns: 1fr;
+ gap: 12px;
+ }
+ @media (min-width: 500px) {
+ .recipe-grid { grid-template-columns: repeat(2, 1fr); }
+ }
+ @media (min-width: 800px) {
+ .recipe-grid { grid-template-columns: repeat(3, 1fr); }
+ }
+ @media (min-width: 1100px) {
+ .recipe-grid { grid-template-columns: repeat(4, 1fr); }
+ }
+
+ .recipe-card {
+ display: flex;
+ flex-direction: column;
+ background: var(--card-background-color);
+ border-radius: 12px;
+ overflow: hidden;
cursor: pointer;
+ border: 1px solid var(--divider-color);
+ transition: transform 0.15s ease, box-shadow 0.15s ease;
}
- .recipe-row:last-child { border-bottom: none; }
- .recipe-row:hover { background: var(--secondary-background-color); }
+ .recipe-card:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
+ }
+ .recipe-card:hover .recipe-name {
+ color: var(--primary-color);
+ }
+
.recipe-thumb {
- width: 56px; height: 56px; border-radius: 8px; object-fit: cover;
- flex-shrink: 0; background: var(--secondary-background-color);
+ width: 100%;
+ aspect-ratio: 16 / 10;
+ object-fit: cover;
+ display: block;
+ background: var(--secondary-background-color);
+ flex-shrink: 0;
+ }
+ .recipe-thumb-placeholder {
+ background: var(--divider-color);
+ }
+
+ .recipe-card-text {
+ padding: 10px 12px 12px;
+ min-width: 0;
}
- .recipe-thumb-placeholder { background: var(--divider-color); }
- .recipe-row-text { min-width: 0; }
.recipe-name {
- font-weight: 500; color: var(--primary-text-color);
- overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
+ font-weight: 500;
+ color: var(--primary-text-color);
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ margin-bottom: 4px;
}
.recipe-meta {
- display: flex; gap: 12px; font-size: 0.85em;
- color: var(--secondary-text-color); white-space: nowrap;
+ display: flex;
+ gap: 12px;
+ font-size: 0.85em;
+ color: var(--secondary-text-color);
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
}
`;
}