Files
Lorenzo SanesiandClaude Opus 5.5 b83ce039fb
Deploy stack su Proxmox / deploy (push) Failing after 3s
Piattaforma ITI TECHNOLOGY: monorepo, Medusa, API, sito, area riservata e deploy
Monorepo npm con apps/public (Angular SSR), apps/private (Angular SPA),
apps/api (Fastify), packages/shared e packages/styles; Medusa 2.21 in medusa/;
infrastruttura Docker (Postgres PostGIS+pgvector, Redis, Caddy, backup) e
workflow Gitea Actions per il deploy via SSH a ogni push su master.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018jQyT6dR9czzGwqb7FkG6u
2026-10-20 09:30:48 +02:00

105 lines
2.3 KiB
SCSS

// Tipografia del corpo degli articoli del blog: HTML generato dal markdown dall'API (marked + sanitize-html).
// Usata dal sito pubblico (pagina articolo) e dall'anteprima dell'editor admin: stesso aspetto nei due punti.
// Il contenuto è inserito con [innerHTML], senza attributi di incapsulamento: includere dentro `::ng-deep`.
/// Stili del contenitore (larghezza di lettura, corpo del testo).
@mixin container {
max-width: 72ch;
font-size: var(--font-size-lg);
line-height: var(--line-height-normal);
}
/// Stili degli elementi generati dal markdown.
/// @example .prose { @include prose.container; } .prose ::ng-deep { @include prose.content; }
@mixin content {
h2,
h3,
h4 {
margin-top: var(--space-6);
margin-bottom: var(--space-3);
}
h2 {
font-size: var(--font-size-2xl);
}
h3 {
font-size: var(--font-size-xl);
}
p,
ul,
ol,
blockquote,
pre,
table,
figure {
margin-block: 0 var(--space-4);
}
li + li {
margin-top: var(--space-2);
}
img {
display: block;
max-width: 100%;
height: auto;
border-radius: var(--radius-md);
}
figure {
margin-inline: 0;
}
figcaption {
margin-top: var(--space-2);
font-size: var(--font-size-sm);
color: var(--color-ink-muted);
}
blockquote {
margin-inline: 0;
padding: var(--space-3) var(--space-5);
border-left: 4px solid var(--color-primary);
background: var(--color-primary-soft);
border-radius: 0 var(--radius-md) var(--radius-md) 0;
p:last-child {
margin-bottom: 0;
}
}
code {
font-family: var(--font-mono);
font-size: 0.9em;
padding: 0.1em 0.3em;
border-radius: var(--radius-sm);
background: var(--color-surface-alt);
}
pre {
overflow-x: auto;
padding: var(--space-4);
border-radius: var(--radius-md);
background: var(--color-surface-alt);
font-size: var(--font-size-sm);
code {
padding: 0;
background: none;
}
}
table {
display: block;
max-width: 100%;
overflow-x: auto;
border-collapse: collapse;
font-size: var(--font-size-md);
}
th,
td {
padding: var(--space-2) var(--space-3);
border: 1px solid var(--color-line);
text-align: left;
}
th {
background: var(--color-surface-alt);
}
hr {
margin-block: var(--space-6);
border: 0;
border-top: 1px solid var(--color-line);
}
}