jacobinwwey_obsidian-NotEMD/styles.css
2026-04-14 06:52:29 -05:00

819 lines
21 KiB
CSS

/*
* Notemd v1.8.2
*/
:root {
--notemd-accent: #0d9488;
--notemd-accent-strong: #0f766e;
--notemd-action: #f97316;
--notemd-surface: color-mix(in srgb, var(--background-secondary) 86%, #f0fdfa 14%);
--notemd-surface-alt: color-mix(in srgb, var(--background-primary) 82%, #f0fdfa 18%);
--notemd-border: color-mix(in srgb, var(--background-modifier-border) 80%, #14b8a6 20%);
--notemd-focus: color-mix(in srgb, var(--interactive-accent) 75%, #f97316 25%);
--notemd-button-shadow: 0 1px 0 color-mix(in srgb, #ffffff 20%, transparent),
0 2px 6px color-mix(in srgb, #0f172a 10%, transparent);
--notemd-button-shadow-hover: 0 1px 0 color-mix(in srgb, #ffffff 34%, transparent),
0 8px 18px color-mix(in srgb, #0f172a 16%, transparent);
--notemd-button-shadow-active: inset 0 1px 0 color-mix(in srgb, #0f172a 12%, transparent),
0 1px 2px color-mix(in srgb, #0f172a 12%, transparent);
--notemd-cta-text: color-mix(in srgb, var(--text-normal) 94%, #1f2937 6%);
--notemd-sidebar-font: "Plus Jakarta Sans", "Avenir Next", "Segoe UI", sans-serif;
}
/* Progress Modal */
.notemd-progress-modal {
padding: 1em;
max-width: 600px;
font-family: var(--notemd-sidebar-font);
}
.notemd-diagram-preview-modal {
padding: 1em;
max-width: 920px;
width: min(92vw, 920px);
font-family: var(--notemd-sidebar-font);
}
.notemd-diagram-preview-toolbar {
display: flex;
justify-content: flex-end;
gap: 0.6em;
margin-bottom: 0.8em;
}
.notemd-diagram-preview-source-path {
margin: 0 0 0.8em;
color: var(--text-muted);
font-size: 12px;
}
.notemd-diagram-preview-body {
min-height: 360px;
max-height: 72vh;
overflow: auto;
border: 1px solid var(--notemd-border);
border-radius: 12px;
background: var(--notemd-surface-alt);
padding: 1em;
}
.notemd-diagram-preview-body.is-mermaid {
background: var(--background-primary);
}
.notemd-diagram-preview-body.is-json-canvas {
background: var(--notemd-surface-alt);
}
.notemd-diagram-preview-body.is-vega-lite {
background: var(--notemd-surface-alt);
}
.notemd-diagram-preview-body svg {
display: block;
max-width: 100%;
height: auto;
}
.notemd-diagram-preview-frame {
width: 100%;
min-height: 520px;
border: 0;
background: transparent;
}
.notemd-status-container {
margin-bottom: 1em;
}
.notemd-status-text {
font-weight: 600;
margin: 0;
line-height: 1.4;
}
.notemd-progress-bar-container {
width: 100%;
height: 18px;
background-color: var(--background-secondary);
border-radius: 999px;
margin: 10px 0;
overflow: hidden;
border: 1px solid var(--notemd-border);
}
.notemd-progress-bar-fill {
height: 100%;
background: linear-gradient(90deg, var(--notemd-accent), var(--notemd-accent-strong));
transition: width 180ms ease-out, background-color 180ms ease-out;
width: 0%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
font-weight: 700;
}
.notemd-progress-bar-fill.is-error {
background: linear-gradient(90deg, #ef4444, #b91c1c);
}
.notemd-log-output {
max-height: 240px;
overflow-y: auto;
background: var(--notemd-surface-alt);
border-radius: 10px;
padding: 0.7em;
margin: 0.75em 0 0;
font-family: var(--font-monospace);
font-size: 12px;
border: 1px solid var(--notemd-border);
}
.notemd-log-entry {
margin-bottom: 0.3em;
line-height: 1.45;
}
.notemd-log-time {
color: var(--text-muted);
margin-right: 0.45em;
}
.notemd-log-message {
color: var(--text-normal);
}
.notemd-cancel-button,
.notemd-copy-log-button {
background: var(--background-secondary);
color: var(--text-normal);
border: 1px solid var(--notemd-border);
border-radius: 8px;
padding: 0.44em 0.75em;
font-size: 12px;
font-family: var(--notemd-sidebar-font);
cursor: pointer;
box-shadow: var(--notemd-button-shadow);
transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}
.notemd-cancel-button:hover,
.notemd-copy-log-button:hover {
background: color-mix(in srgb, var(--background-modifier-hover) 70%, #f0fdfa 30%);
border-color: var(--notemd-accent);
box-shadow: var(--notemd-button-shadow-hover);
}
.notemd-cancel-button:active,
.notemd-copy-log-button:active {
transform: translateY(1px) scale(0.995);
box-shadow: var(--notemd-button-shadow-active);
}
.notemd-cancel-button:focus-visible,
.notemd-copy-log-button:focus-visible,
.notemd-action-button:focus-visible,
.notemd-language-select:focus-visible,
.notemd-section-summary:focus-visible {
outline: 2px solid var(--notemd-focus);
outline-offset: 2px;
}
.notemd-cancel-button.is-active {
opacity: 1;
cursor: pointer;
}
.notemd-cancel-button:disabled {
opacity: 0.45;
cursor: not-allowed;
}
.notemd-error-text {
color: var(--text-error);
}
.is-hidden {
display: none !important;
}
/* Sidebar */
.notemd-sidebar-container {
padding: 0.85em;
height: 100%;
min-height: 0;
font-family: var(--notemd-sidebar-font);
background:
radial-gradient(circle at 12% 0%, color-mix(in srgb, #14b8a6 8%, transparent) 0%, transparent 34%),
radial-gradient(circle at 88% 2%, color-mix(in srgb, #f97316 7%, transparent) 0%, transparent 30%);
}
.notemd-sidebar-shell {
display: flex;
flex-direction: column;
gap: 0.85em;
height: 100%;
min-height: 0;
overflow: hidden;
}
.notemd-sidebar-scroll {
display: flex;
flex-direction: column;
gap: 0.85em;
flex: 1 1 auto;
min-height: 0;
overflow-y: auto;
padding-right: 0.12em;
padding-bottom: 0.18em;
}
.notemd-sidebar-footer {
display: flex;
flex-direction: column;
gap: 0.75em;
flex: 0 0 auto;
}
.notemd-sidebar-footer.mod-docked {
flex: 0 0 clamp(280px, 42vh, 460px);
min-height: 280px;
max-height: 56%;
overflow: hidden;
}
.notemd-hero-card {
border: 1px solid var(--notemd-border);
border-radius: 14px;
padding: 0.85em 0.95em;
background:
radial-gradient(circle at 8% 6%, color-mix(in srgb, #14b8a6 18%, transparent) 0%, transparent 40%),
radial-gradient(circle at 92% 4%, color-mix(in srgb, #f97316 18%, transparent) 0%, transparent 42%),
var(--notemd-surface);
}
.notemd-hero-card h3 {
margin: 0;
font-size: 16px;
line-height: 1.3;
}
.notemd-hero-card p {
margin: 0.45em 0 0;
color: var(--text-muted);
font-size: 12px;
line-height: 1.5;
}
.notemd-section-card {
border: 1px solid var(--notemd-border);
border-radius: 12px;
padding: 0.2em 0.75em 0.75em;
background: var(--notemd-surface-alt);
transition: border-color 160ms ease, box-shadow 180ms ease, background-color 180ms ease;
}
.notemd-section-card[open] {
border-color: color-mix(in srgb, var(--notemd-border) 62%, var(--notemd-accent) 38%);
box-shadow: inset 0 1px 0 color-mix(in srgb, #ffffff 18%, transparent);
}
.notemd-section-summary {
cursor: pointer;
list-style: none;
font-weight: 700;
font-size: 13px;
line-height: 1.4;
padding: 0.45em 0.15em 0.32em;
border-radius: 8px;
color: var(--text-normal);
transition: background-color 140ms ease;
}
.notemd-section-summary:hover {
background: color-mix(in srgb, var(--background-modifier-hover) 68%, #f0fdfa 32%);
}
.notemd-section-summary::-webkit-details-marker {
display: none;
}
.notemd-section-summary::before {
content: "▸";
display: inline-block;
margin-right: 0.45em;
transition: transform 150ms ease-out;
color: var(--notemd-accent);
}
.notemd-section-card[open] > .notemd-section-summary::before {
transform: rotate(90deg);
}
.notemd-section-description {
margin: 0 0 0.55em;
color: var(--text-muted);
font-size: 12px;
line-height: 1.45;
}
.notemd-button-grid {
display: grid;
grid-template-columns: 1fr;
gap: 0.52em;
}
.notemd-action-button {
position: relative;
overflow: hidden;
display: inline-flex;
align-items: center;
border: 1px solid var(--notemd-border);
border-radius: 10px;
padding: 0.52em 0.66em;
text-align: left;
font-size: 12px;
font-weight: 600;
letter-spacing: 0.01em;
line-height: 1.35;
background: var(--background-secondary);
color: var(--text-normal);
min-height: 40px;
box-shadow: var(--notemd-button-shadow);
transition: transform 140ms ease-out, border-color 140ms ease-out, background-color 140ms ease-out, box-shadow 160ms ease;
}
.notemd-action-button::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(
180deg,
color-mix(in srgb, #ffffff 24%, transparent) 0%,
transparent 46%
);
opacity: 0.4;
pointer-events: none;
transition: opacity 160ms ease;
}
.notemd-action-button:hover {
cursor: pointer;
transform: translateY(-1px);
border-color: var(--notemd-accent);
background: color-mix(in srgb, var(--background-modifier-hover) 64%, #f0fdfa 36%);
box-shadow: var(--notemd-button-shadow-hover);
}
.notemd-action-button:hover::after {
opacity: 0.58;
}
.notemd-action-button:active {
transform: translateY(1px) scale(0.997);
box-shadow: var(--notemd-button-shadow-active);
}
.notemd-action-button.mod-cta {
border-color: color-mix(in srgb, var(--interactive-accent) 60%, var(--notemd-action) 40%);
background: linear-gradient(
135deg,
color-mix(in srgb, var(--interactive-accent) 18%, var(--background-secondary) 82%),
color-mix(in srgb, var(--notemd-action) 24%, var(--background-secondary) 76%)
);
color: var(--notemd-cta-text) !important;
text-shadow: none;
box-shadow:
0 1px 0 color-mix(in srgb, #ffffff 30%, transparent),
0 7px 16px color-mix(in srgb, var(--interactive-accent) 16%, transparent);
}
.notemd-workflow-button.mod-cta {
border-color: color-mix(in srgb, var(--interactive-accent) 56%, var(--notemd-action) 44%);
background:
linear-gradient(
135deg,
color-mix(in srgb, #14b8a6 22%, var(--background-secondary) 78%),
color-mix(in srgb, #f97316 18%, var(--background-secondary) 82%)
);
}
.notemd-action-button.mod-cta:hover {
border-color: color-mix(in srgb, var(--interactive-accent) 72%, var(--notemd-action) 28%);
background:
linear-gradient(
135deg,
color-mix(in srgb, var(--interactive-accent) 26%, var(--background-secondary) 74%),
color-mix(in srgb, var(--notemd-action) 30%, var(--background-secondary) 70%)
);
}
.notemd-action-button.mod-cta:active {
background:
linear-gradient(
135deg,
color-mix(in srgb, var(--interactive-accent) 24%, var(--background-secondary) 76%),
color-mix(in srgb, var(--notemd-action) 28%, var(--background-secondary) 72%)
);
}
.notemd-action-button:disabled {
opacity: 0.52;
cursor: not-allowed;
transform: none;
box-shadow: none;
}
.notemd-inline-control {
display: flex;
align-items: center;
gap: 0.6em;
margin-top: 0.4em;
}
.notemd-inline-label {
font-size: 12px;
color: var(--text-muted);
min-width: 64px;
}
.notemd-provider-callout {
border: 1px solid var(--notemd-border);
border-radius: 12px;
padding: 0.85em 0.95em;
margin: 0 0 0.9em;
background:
radial-gradient(circle at 12% 16%, color-mix(in srgb, #14b8a6 14%, transparent) 0%, transparent 36%),
radial-gradient(circle at 88% 12%, color-mix(in srgb, #f97316 12%, transparent) 0%, transparent 34%),
var(--notemd-surface-alt);
}
.notemd-provider-callout strong {
display: block;
line-height: 1.4;
}
.notemd-provider-callout p {
margin: 0.45em 0 0;
color: var(--text-muted);
line-height: 1.5;
}
.notemd-provider-validation {
border-radius: 10px;
padding: 0.75em 0.85em;
margin: 0 0 0.85em;
border: 1px solid transparent;
}
.notemd-provider-validation strong {
display: block;
line-height: 1.4;
}
.notemd-provider-validation p {
margin: 0.4em 0 0;
line-height: 1.45;
}
.notemd-provider-validation-warning {
background: color-mix(in srgb, #f59e0b 12%, var(--background-secondary) 88%);
border-color: color-mix(in srgb, #f59e0b 42%, var(--background-modifier-border) 58%);
}
.notemd-provider-validation-error {
background: color-mix(in srgb, #ef4444 10%, var(--background-secondary) 90%);
border-color: color-mix(in srgb, #ef4444 38%, var(--background-modifier-border) 62%);
}
.notemd-provider-badge-row {
display: flex;
flex-wrap: wrap;
gap: 0.45em;
margin-bottom: 0.6em;
}
.notemd-provider-badge {
display: inline-flex;
align-items: center;
border-radius: 999px;
padding: 0.2em 0.65em;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.02em;
background: color-mix(in srgb, #14b8a6 18%, var(--background-secondary) 82%);
color: var(--text-normal);
border: 1px solid color-mix(in srgb, var(--notemd-border) 75%, #14b8a6 25%);
}
.notemd-provider-badge.is-secondary {
background: color-mix(in srgb, #f97316 15%, var(--background-secondary) 85%);
border-color: color-mix(in srgb, var(--notemd-border) 70%, #f97316 30%);
}
.notemd-language-select {
width: 100%;
min-height: 34px;
border-radius: 8px;
border: 1px solid var(--notemd-border);
background: var(--background-primary);
color: var(--text-normal);
padding: 0.35em 0.5em;
font-size: 12px;
}
.notemd-workflow-warning {
margin-top: 0.2em;
border: 1px solid color-mix(in srgb, var(--text-error) 70%, transparent);
background: color-mix(in srgb, var(--text-error) 11%, transparent);
border-radius: 8px;
padding: 0.45em 0.55em;
font-size: 11px;
line-height: 1.4;
color: var(--text-normal);
}
.notemd-workflow-builder {
border: 1px solid var(--notemd-border);
border-radius: 12px;
padding: 0.7em;
background: var(--notemd-surface-alt);
margin: 0.55em 0 0.85em;
display: flex;
flex-direction: column;
gap: 0.7em;
}
.notemd-workflow-builder-warning {
border: 1px solid color-mix(in srgb, #f59e0b 65%, transparent);
background: color-mix(in srgb, #f59e0b 13%, transparent);
border-radius: 8px;
font-size: 12px;
line-height: 1.45;
padding: 0.45em 0.55em;
}
.notemd-workflow-card {
border: 1px solid var(--notemd-border);
border-radius: 10px;
background: var(--background-primary);
padding: 0.58em;
display: flex;
flex-direction: column;
gap: 0.45em;
}
.notemd-workflow-card-header {
display: flex;
justify-content: space-between;
align-items: center;
gap: 0.6em;
}
.notemd-workflow-row {
display: flex;
flex-direction: column;
gap: 0.2em;
}
.notemd-workflow-row label {
font-size: 12px;
color: var(--text-muted);
}
.notemd-workflow-row input {
width: 100%;
min-height: 32px;
}
.notemd-workflow-subtitle {
margin: 0.2em 0 0;
font-size: 12px;
color: var(--text-muted);
}
.notemd-workflow-action-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto auto auto;
gap: 0.35em;
align-items: center;
}
.notemd-workflow-action-row select {
min-height: 34px;
}
.notemd-workflow-action-row button {
min-height: 30px;
min-width: 30px;
}
.notemd-workflow-builder-toolbar {
display: flex;
flex-wrap: wrap;
gap: 0.45em;
margin-top: 0.2em;
}
.notemd-progress-area {
border: 1px solid var(--notemd-border);
border-radius: 14px;
padding: 0.72em 0.8em 0.82em;
background:
linear-gradient(
180deg,
color-mix(in srgb, var(--notemd-surface) 82%, #ffffff 18%),
color-mix(in srgb, var(--notemd-surface-alt) 88%, #f0fdfa 12%)
);
box-shadow: inset 0 1px 0 color-mix(in srgb, #ffffff 40%, transparent);
}
.notemd-progress-area.is-idle {
border-color: color-mix(in srgb, var(--notemd-border) 68%, var(--interactive-accent) 32%);
background:
linear-gradient(
180deg,
color-mix(in srgb, var(--notemd-surface) 76%, #ffffff 24%),
color-mix(in srgb, var(--notemd-surface-alt) 90%, #e0f2fe 10%)
);
}
.notemd-progress-meta {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.75em;
margin-bottom: 0.45em;
}
.notemd-progress-value {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 50px;
padding: 0.24em 0.58em;
border-radius: 999px;
border: 1px solid color-mix(in srgb, var(--notemd-border) 76%, var(--notemd-accent) 24%);
background: color-mix(in srgb, #14b8a6 15%, var(--background-secondary) 85%);
color: var(--text-normal);
font-size: 12px;
font-weight: 800;
letter-spacing: 0.03em;
}
.notemd-progress-value.is-idle {
border-color: color-mix(in srgb, var(--notemd-border) 62%, var(--interactive-accent) 38%);
background: color-mix(in srgb, var(--interactive-accent) 12%, var(--background-secondary) 88%);
color: color-mix(in srgb, var(--text-normal) 88%, var(--interactive-accent) 12%);
}
.notemd-progress-value.is-error {
border-color: color-mix(in srgb, #ef4444 46%, var(--background-modifier-border) 54%);
background: color-mix(in srgb, #ef4444 12%, var(--background-secondary) 88%);
}
.notemd-progress-area .notemd-progress-bar-container.mod-sidebar {
position: relative;
height: 20px;
margin: 0;
background:
linear-gradient(
180deg,
color-mix(in srgb, var(--background-secondary) 92%, #ffffff 8%),
color-mix(in srgb, var(--background-secondary-alt, var(--background-secondary)) 88%, #0f172a 12%)
);
box-shadow:
inset 0 1px 1px color-mix(in srgb, #000000 10%, transparent),
inset 0 0 0 1px color-mix(in srgb, var(--notemd-border) 72%, #0d9488 28%);
}
.notemd-progress-area .notemd-progress-bar-container.mod-sidebar.is-idle {
border-style: solid;
background:
linear-gradient(
135deg,
color-mix(in srgb, var(--background-secondary) 84%, #e0f2fe 16%) 0%,
color-mix(in srgb, var(--background-secondary-alt, var(--background-secondary)) 88%, #bae6fd 12%) 100%
);
box-shadow:
inset 0 1px 0 color-mix(in srgb, #ffffff 42%, transparent),
inset 0 0 0 1px color-mix(in srgb, var(--interactive-accent) 22%, var(--notemd-border) 78%);
}
.notemd-progress-area .notemd-progress-bar-container.mod-sidebar.is-idle::after {
content: 'Standby';
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: color-mix(in srgb, var(--text-normal) 68%, var(--interactive-accent) 32%);
pointer-events: none;
}
.notemd-progress-area .notemd-progress-bar-fill {
position: relative;
box-shadow:
inset 0 0 0 1px color-mix(in srgb, #ffffff 18%, transparent),
0 4px 14px color-mix(in srgb, var(--notemd-accent) 18%, transparent);
}
.notemd-progress-area .notemd-progress-bar-container.mod-sidebar.is-idle .notemd-progress-bar-fill {
opacity: 0.16;
box-shadow: none;
}
.notemd-time-remaining {
margin: 0.5em 0 0;
color: color-mix(in srgb, var(--text-muted) 88%, var(--text-normal) 12%);
font-size: 11px;
font-weight: 600;
line-height: 1.45;
}
.notemd-log-card {
border: 1px solid var(--notemd-border);
border-radius: 14px;
background: var(--notemd-surface-alt);
padding: 0.72em 0.78em 0.78em;
display: flex;
flex-direction: column;
gap: 0.45em;
}
.notemd-log-card.mod-persistent {
flex: 1 1 180px;
min-height: 180px;
overflow: hidden;
}
.notemd-log-header {
display: flex;
justify-content: space-between;
align-items: center;
gap: 0.7em;
}
.notemd-log-header h5 {
margin: 0;
font-size: 12px;
line-height: 1.4;
}
.notemd-log-output.mod-sidebar {
flex: 1 1 auto;
min-height: 160px;
height: 100%;
max-height: none;
margin: 0;
background: var(--background-secondary);
}
.notemd-log-output.is-selectable {
user-select: text;
-webkit-user-select: text;
}
@media (max-width: 420px) {
.notemd-sidebar-container {
padding: 0.65em;
}
.notemd-action-button {
min-height: 44px;
}
.notemd-log-output.mod-sidebar {
min-height: 120px;
}
}
@media (prefers-reduced-motion: reduce) {
.notemd-action-button,
.notemd-cancel-button,
.notemd-copy-log-button,
.notemd-progress-bar-fill,
.notemd-section-summary::before {
transition: none !important;
}
}
/* RTL safety: keep Notemd panel readable in right-to-left locales. */
.mod-rtl .notemd-sidebar-container,
.mod-rtl .notemd-log-output,
.mod-rtl .notemd-status-text,
.mod-rtl .notemd-time-remaining {
direction: rtl;
text-align: right;
}
.notemd-log-time,
.notemd-log-message,
.notemd-status-text,
.notemd-time-remaining {
unicode-bidi: plaintext;
}