lubriedev_lmath/styles.css

95 lines
No EOL
3.9 KiB
CSS

.lmath-container {
display: flex;
flex-direction: row;
align-items: center;
background-color: #1e1e1e;
border-radius: 12px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.1);
min-height: 261px;
margin: 16px;
}
.lmath-container .lmath-latex {
width: 50%;
display: flex;
align-items: center;
justify-content: center;
padding: 24px;
box-sizing: border-box;
/* `font-size` fija la base desde la que MathJax escala la fórmula. No lleva
!important: una declaración directa sobre el elemento gana a la herencia,
y el prefijo `.lmath-container` sube la especificidad por si Obsidian fija
un tamaño en un ancestro con selector de una sola clase. */
font-size: 24px;
/* La fórmula es de solo lectura: mostramos el cursor normal (flecha) en vez
del I-beam de texto que el navegador pone por defecto sobre el texto
seleccionable de KaTeX. `cursor` se hereda, así que fijarlo aquí cubre todo
el árbol de KaTeX y los TRES bloques (obs-graph, obs-system, obs-derivate),
que comparten esta clase de panel, más cualquier bloque futuro que la use. */
cursor: default;
}
.lmath-container .lmath-latex .katex {
font-size: 1.6em;
}
/* Obsidian envuelve las matemáticas de bloque ($$…$$) en un elemento con su
propio overflow-x:auto + max-width:100%, que mostraba una barra de scroll
NATIVA (con flechas) redundante incluso cuando la fórmula cabe de sobra. Se
notaba sólo en una ventana de anchos concreta (p.ej. x^{1000}…x^{9999}),
justo cuando ese bloque interno desbordaba su propia caja por unos píxeles.
El scroll horizontal de la fórmula lo gestiona el contenedor del plugin
(overflow controlado por JS + fades + rueda), así que anulamos por completo
el overflow propio de Obsidian/MathJax: dejamos que el contenido fluya hasta
el contenedor del plugin, que será el único (y sólo si desborda de verdad) en
mostrar su barra fina.
Especificidad: en Live Preview, Obsidian scrollea el mjx-container con
`.markdown-source-view.mod-cm6 .math-block > mjx-container` (app.css) →
especificidad (0,3,1) = 3 clases + el tipo `mjx-container`. La neutralización
con solo `.lmath-container .lmath-latex .MathJax` (0,3,0) EMPATABA en clases
pero perdía por ese tipo extra, y la barra nativa reaparecía en fórmulas
anchas (p.ej. la tupla paramétrica). Para ganarle SIN `!important` (dispara
css/no-important) y SIN usar `mjx-container` como selector de tipo (dispara
selector-type-no-unknown de stylelint), la línea del mjx-container lleva una
clase extra —`.math-block .MathJax` = (0,4,0), gana por conteo de clases 4>3—.
El resto del prefijo (2 clases) basta para las demás capas: Obsidian no les
fija overflow propio. */
.lmath-container .lmath-latex .markdown-rendered,
.lmath-container .lmath-latex p,
.lmath-container .lmath-latex .math,
.lmath-container .lmath-latex .math-block,
.lmath-container .lmath-latex .katex-display,
.lmath-container .lmath-latex .math-block .MathJax,
.lmath-container .lmath-latex .MJX-TEX {
overflow: visible;
max-width: none;
margin: 0;
}
.lmath-grafica {
width: 50%;
height: 261px;
position: relative;
border-left: 1px solid rgba(255, 255, 255, 0.08);
overflow: hidden;
box-sizing: border-box;
/* Fuente Lora SOLO para el texto de la interfaz del plugin (popovers, etiquetas,
botones): el plano aloja todos esos overlays DOM. Se acota aquí a propósito para
NO tocar el panel LaTeX (.lmath-latex, hermano) ni el resto de Obsidian. El
LaTeX de KaTeX conserva su propia fuente aunque estuviera dentro (fija font-family
en sus spans). La familia "Lora" la carga host-obsidian/fuentes.ts en runtime;
var(--font-interface) es el fallback mientras carga o si falla. */
font-family: "Lora", var(--font-interface);
}
.lmath-info {
display: none;
}
.lmath-aviso {
width: 100%;
text-align: center;
font-size: 24px;
}