monapdx_obsidian-skeletal/styles.css
Ashly e1f533342d Add local deploy script, docs, and UI tweaks
Add local deployment workflow and docs: .env.local.example, scripts/deploy-local.mjs, deploy:local npm script, screenshots, and CHANGELOG.md. Update README with deployment, screenshots, usage, and development instructions. Update .gitignore to exclude local env, logs, and build outputs. Polish UI and layout: refactor TemplateBrowserModal structure and update styles.css for responsive modal/pane scrolling. Small metadata changes: manifest/package.json author/description and LICENSE copyright.
2026-07-17 02:18:18 -07:00

313 lines
6 KiB
CSS

/* Modal shell: stay within Obsidian workspace; no hard-coded screen heights */
.modal.skeletal-modal-dialog {
display: flex;
flex-direction: column;
width: min(960px, 96vw);
max-width: 96vw;
height: min(820px, calc(100vh - 2rem));
max-height: calc(100vh - 2rem);
max-height: calc(100dvh - 2rem);
margin-top: 0;
overflow: hidden;
}
.skeletal-modal-dialog .modal-content {
display: flex;
flex-direction: column;
flex: 1 1 auto;
min-height: 0;
height: 100%;
overflow: hidden;
padding-bottom: 0;
}
.skeletal-modal {
display: flex;
flex-direction: column;
gap: 0.75rem;
flex: 1 1 auto;
min-height: 0;
height: 100%;
overflow: hidden;
}
.skeletal-modal-header {
display: flex;
flex-direction: column;
gap: 0.75rem;
flex: 0 0 auto;
min-width: 0;
}
.skeletal-modal-title {
margin: 0;
}
.skeletal-search-row {
display: flex;
}
.skeletal-search-input {
width: 100%;
padding: 0.5rem 0.75rem;
border-radius: 6px;
border: 1px solid var(--background-modifier-border);
background: var(--background-primary);
color: var(--text-normal);
}
.skeletal-category-nav {
display: flex;
flex-wrap: wrap;
gap: 0.35rem;
max-height: 4.5rem;
overflow: auto;
}
.skeletal-category-btn {
border: 1px solid var(--background-modifier-border);
background: var(--background-secondary);
color: var(--text-muted);
border-radius: 999px;
padding: 0.2rem 0.65rem;
cursor: pointer;
font-size: var(--font-ui-small);
}
.skeletal-category-btn.is-active,
.skeletal-category-btn:hover {
color: var(--text-normal);
background: var(--background-modifier-hover);
border-color: var(--interactive-accent);
}
/* Middle region fills leftover space; panes scroll independently */
.skeletal-modal-body {
display: grid;
grid-template-columns: minmax(180px, 280px) minmax(0, 1fr);
gap: 0.75rem;
flex: 1 1 auto;
min-height: 0;
overflow: hidden;
}
.skeletal-pane {
min-height: 0;
min-width: 0;
overflow: hidden;
border: 1px solid var(--background-modifier-border);
border-radius: 8px;
background: var(--background-primary);
}
.skeletal-pane-list {
padding: 0.35rem;
overflow: auto;
}
.skeletal-pane-detail {
padding: 0.75rem;
display: flex;
flex-direction: column;
gap: 0.75rem;
overflow: hidden;
}
/* Controls scroll; preview stays pinned below them inside the detail pane */
.skeletal-detail-scroll {
flex: 1 1 auto;
min-height: 0;
overflow: auto;
padding-bottom: 0.25rem;
}
.skeletal-preview-section {
flex: 0 0 auto;
display: flex;
flex-direction: column;
gap: 0.35rem;
min-height: 0;
border-top: 1px solid var(--background-modifier-border);
padding-top: 0.65rem;
}
.skeletal-template-item {
padding: 0.55rem 0.65rem;
border-radius: 6px;
cursor: pointer;
border: 1px solid transparent;
}
.skeletal-template-item:hover,
.skeletal-template-item:focus-visible {
background: var(--background-modifier-hover);
outline: none;
}
.skeletal-template-item.is-selected {
background: var(--background-modifier-hover);
border-color: var(--interactive-accent);
}
.skeletal-template-item-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.5rem;
}
.skeletal-template-item-name {
font-weight: 600;
color: var(--text-normal);
}
.skeletal-template-item-category {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
text-transform: capitalize;
margin-top: 0.1rem;
}
.skeletal-template-item-desc {
font-size: var(--font-ui-small);
color: var(--text-muted);
margin-top: 0.25rem;
}
.skeletal-favorite-btn {
border: none;
background: transparent;
color: var(--text-muted);
cursor: pointer;
padding: 0 0.2rem;
font-size: 1rem;
}
.skeletal-favorite-btn.is-favorite {
color: var(--text-accent);
}
.skeletal-detail-title {
margin: 0 0 0.25rem;
}
.skeletal-detail-desc {
color: var(--text-muted);
margin-bottom: 0.5rem;
}
.skeletal-controls .setting-item {
border-top: none;
padding: 0.45rem 0;
}
.skeletal-textarea {
width: 100%;
min-height: 4.5rem;
}
.skeletal-char-input {
width: 3.5rem !important;
}
.skeletal-preview-toolbar {
display: flex;
flex-wrap: wrap;
gap: 0.35rem;
flex: 0 0 auto;
}
.skeletal-preview-tab {
border: 1px solid var(--background-modifier-border);
background: var(--background-secondary);
color: var(--text-muted);
border-radius: 6px;
padding: 0.25rem 0.6rem;
cursor: pointer;
}
.skeletal-preview-tab.is-active {
color: var(--text-normal);
border-color: var(--interactive-accent);
}
.skeletal-preview-host,
.skeletal-preview {
min-height: 7rem;
max-height: min(12rem, 22vh);
overflow: auto;
border: 1px solid var(--background-modifier-border);
border-radius: 6px;
padding: 0.65rem;
background: var(--background-secondary);
}
.skeletal-preview-raw {
margin: 0;
white-space: pre-wrap;
word-break: break-word;
font-family: var(--font-monospace);
font-size: var(--font-ui-small);
}
/* Action bar stays outside the scroll region; never overlays content */
.skeletal-actions {
flex: 0 0 auto;
border-top: 1px solid var(--background-modifier-border);
padding-top: 0.5rem;
padding-bottom: 0.15rem;
background: var(--background-primary);
z-index: 1;
}
.skeletal-actions .setting-item {
border: none;
padding: 0.25rem 0;
margin: 0;
}
.skeletal-actions .setting-item-control {
flex-wrap: wrap;
gap: 0.35rem;
}
.skeletal-empty {
color: var(--text-muted);
padding: 0.75rem;
}
@media (max-width: 720px) {
.modal.skeletal-modal-dialog {
width: min(960px, 96vw);
height: min(920px, calc(100vh - 1rem));
max-height: calc(100vh - 1rem);
max-height: calc(100dvh - 1rem);
}
.skeletal-modal-body {
grid-template-columns: 1fr;
grid-template-rows: minmax(7rem, 28%) minmax(0, 1fr);
}
.skeletal-preview-host,
.skeletal-preview {
max-height: min(10rem, 20vh);
}
}
@media (max-height: 700px) {
.skeletal-modal {
gap: 0.5rem;
}
.skeletal-pane-detail {
gap: 0.5rem;
padding: 0.5rem;
}
.skeletal-preview-host,
.skeletal-preview {
min-height: 5rem;
max-height: min(8rem, 18vh);
}
}