scotttomaszewski_obsidian-d.../styles.css
Scott Tomaszewski 2ea9bc7f0f fix: dock action bar bottom-center; support comma-list refs in inline + live preview
- Action bar anchored to passage bottom rendered off-screen for tall (full-chapter)
  passages; dock it bottom-center of the viewport via CSS instead.
- Inline reading-mode processor and the Live Preview extension used single-range
  parse(), so non-contiguous refs like 'Genesis 1:2, 4, 8' weren't recognized; route
  both through parseList()/getBibleContentList().
2026-06-02 22:36:41 -04:00

623 lines
13 KiB
CSS

body {
--dj-font-size: 100%;
--dj-heading-color: var(--text-accent);
--dj-verse-number-color: var(--text-accent);
--dj-woc-color: var(--text-accent);
--dj-block-indentation: 2em;
}
/* Utility Classes */
/* Doubled class raises specificity (0,2,0) so this wins over component
display rules without needing !important. */
.dj-hidden.dj-hidden {
display: none;
}
.hide-dj-passage-properties {
/* hide in reading mode */
--metadata-display-reading: none;
/* hide in editing/live preview mode too */
--metadata-display-editing: none;
}
button.clear-input-button {
position: absolute;
top: 50%;
right: 0.3em;
transform: translateY(-50%);
border: none;
background: transparent;
cursor: pointer;
fontSize: 1em;
lineHeight: 1;
padding: 0;
height: 1rem;
width: 1rem;
}
/* Bible Navigation Styles */
.bible-navigation {
display: flex;
justify-content: space-between;
align-items: center;
margin: 0 0 20px;
border-radius: 4px;
position: relative;
font-family: var(--default-font);
font-size: 14px;
}
.bible-passage-container .bible-navigation {
margin-bottom: 12px;
}
.nav-prev, .nav-next, .nav-book-selector {
padding: 6px 10px;
border-radius: 4px;
font-weight: 500;
}
.nav-button {
background: none;
border: none;
cursor: pointer;
font-size: inherit;
font-family: inherit;
color: var(--text-accent);
padding: 6px 10px;
border-radius: 4px;
font-weight: 500;
text-align: center;
transition: background-color 0.2s ease;
line-height: 1.5;
}
.nav-button:hover {
background-color: var(--background-modifier-hover);
color: var(--text-accent-hover);
text-decoration: none;
}
.nav-disabled {
color: var(--text-muted);
cursor: not-allowed;
}
.nav-book-select-container {
width: 100%;
margin-bottom: 8px;
}
.nav-book-select-container input {
width: 100%;
}
.nav-book-selector {
cursor: pointer;
color: var(--text-normal);
background-color: var(--background-primary);
border: 1px solid var(--background-modifier-border);
font-weight: bold;
padding: 6px 14px;
user-select: none;
}
.nav-book-selector:hover {
background-color: var(--background-modifier-hover);
}
.nav-book-data {
position: absolute;
top: 110%;
left: 50%;
transform: translateX(-50%);
background-color: var(--background-primary);
border: 1px solid var(--background-modifier-border);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
padding: 15px;
border-radius: 4px;
z-index: 100;
width: 300px;
}
.nav-book-data .dropdown {
width: 100%;
margin-bottom: 8px;
}
.nav-book-data .dropdown select {
width: 100%;
padding: 6px;
background-color: var(--background-primary);
color: var(--text-normal);
border: 1px solid var(--background-modifier-border);
border-radius: 4px;
}
.nav-chapter-container {
margin-bottom: 8px;
}
.nav-book-data .nav-go-button {
width: 100%;
padding: 6px 12px;
background-color: var(--interactive-accent);
color: var(--text-on-accent);
border: none;
border-radius: 4px;
cursor: pointer;
font-weight: 500;
display: block;
text-align: center;
}
/* About Section Styles */
.disciples-journal-about {
max-width: 450px;
margin: 0 auto;
padding: 12px;
text-align: center;
}
.disciples-journal-about p {
margin-bottom: 12px;
}
.disciples-journal-about small {
font-size: 0.8em;
color: var(--text-muted);
}
/* API Info Styles */
.disciples-journal-api-info {
background-color: var(--background-secondary);
border-left: 4px solid var(--text-accent);
padding: 12px 15px;
margin-bottom: 15px;
border-radius: 4px;
}
.disciples-journal-api-info p {
margin: 0 0 10px 0;
}
.disciples-journal-api-info ol {
margin: 0 0 10px 20px;
}
.disciples-journal-api-info li {
margin-bottom: 5px;
}
.disciples-journal-api-info a {
color: var(--text-accent);
text-decoration: underline;
}
.disciples-journal-api-info a:hover {
text-decoration: none;
}
/* Bible Copyright Container Styles */
.bible-copyright-container {
margin-top: 20px;
border-top: 1px solid var(--background-modifier-border);
padding-top: 10px;
}
.bible-copyright {
font-size: 12px;
color: var(--text-muted);
margin-top: 8px;
}
.bible-copyright summary {
cursor: pointer;
opacity: 0.8;
transition: opacity 0.2s ease;
}
.bible-copyright summary:hover {
opacity: 1;
text-decoration: underline;
}
.bible-copyright-content {
background-color: var(--background-secondary);
padding: 10px;
border-radius: 4px;
margin-top: 8px;
font-size: 11px;
}
.bible-copyright-content p {
margin: 6px 0;
}
/* Bible Verse Preview Styles */
.bible-verse-preview {
position: absolute;
z-index: 1000;
background-color: var(--background-secondary); /* Example background */
border: 1px solid var(--background-modifier-border);
box-shadow: 0 2px 8px rgba(0,0,0,0.15);
padding: 10px;
border-radius: 4px;
max-width: 400px; /* Example max-width */
font-size: 0.9em; /* Example font-size */
}
.bible-verse-preview-heading {
font-weight: bold;
margin-bottom: 5px;
padding-bottom: 5px;
border-bottom: 1px solid var(--background-modifier-border);
cursor: pointer; /* Make heading clickable */
}
.bible-verse-preview-heading:hover {
color: var(--text-accent);
}
.bible-verse-preview-content p {
margin: 5px 0;
line-height: 1.4;
}
.bible-passage .bible-passage-text,
.bible-passage .bible-passage-content { /* Apply to both text and content divs */
font-size: var(--dj-font-size);
}
.inline-bible-reference .inline-bible-reference-text { /* Target the text part */
font-size: var(--dj-font-size);
}
/* Bible reference styles */
.bible-verse-preview {
font-size: var(--dj-font-size);
max-width: 600px;
padding: 0.5em 1em;
border-radius: 5px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
background-color: var(--background-primary); /* Use existing background-primary */
border: 1px solid var(--background-modifier-border);
z-index: 1000;
overflow: auto;
}
.bible-verse-preview h1,
.bible-verse-preview h2,
.bible-verse-preview h3,
.bible-verse-preview h4 {
margin: 0.2em 0;
color: var(--dj-heading-color);
}
.bible-verse-preview .passage-content {
margin-top: 0.5em;
line-height: 1.6;
}
.bible-verse-preview .verse-num {
vertical-align: super;
font-size: 0.75em;
font-weight: bold;
color: var(--dj-verse-number-color);
margin-right: 0.25em;
}
.bible-verse-preview .woc {
color: var(--dj-woc-color);
}
.bible-verse-preview .indent {
padding-left: var(--dj-block-indentation);
display: block;
margin: 0.5em 0;
}
.bible-verse-preview .esv-text {
font-size: 0.9em;
margin-bottom: 0.5em;
}
.bible-verse-preview .copyright {
font-size: 0.8em;
color: var(--text-muted);
margin-top: 0.5em;
}
.bible-reference {
cursor: pointer;
display: inline-block;
border-bottom: 1px dotted var(--text-accent);
font-weight: 500;
white-space: nowrap;
}
.bible-reference:hover {
color: var(--text-accent);
}
.bible-heading {
color: var(--dj-heading-color);
font-weight: bold;
margin: 1em 0 0.5em 0;
}
.bible-reference-clickable {
cursor: pointer;
color: var(--text-accent);
}
.bible-reference-clickable:hover {
text-decoration: underline;
}
.verse-missing-token {
padding: 0.5em;
border: 1px solid var(--background-modifier-border);
border-radius: 4px;
background-color: var(--background-secondary);
margin: 0.5em 0;
}
.verse-missing-token .message {
color: var(--text-muted);
font-style: italic;
}
/* Bible Passage Container Styles */
.bible-passage-container {
background-color: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: 6px;
padding: 16px;
}
.bible-passage-heading {
font-weight: bold;
color: var(--dj-heading-color);
margin-top: 0;
margin-bottom: 12px;
border-bottom: 1px solid var(--background-modifier-border);
padding-bottom: 6px;
}
.bible-passage-text {
font-size: var(--dj-font-size); /* Use variable */
line-height: 1.5;
}
.bible-verse {
margin: 8px 0;
}
.bible-chapter-heading {
font-size: 1.4em;
font-weight: bold;
color: var(--dj-heading-color);
margin-top: 24px;
margin-bottom: 16px;
border-bottom: 1px solid var(--background-modifier-border);
padding-bottom: 8px;
}
.bible-verse-number {
font-weight: bold;
color: var(--dj-verse-number-color);
margin-right: 4px;
}
.bible-verse-text {
color: var(--text-normal);
}
.bible-reference-error {
color: var(--text-error);
font-style: italic;
border: 1px solid var(--background-modifier-error);
padding: 8px 12px;
border-radius: 4px;
display: inline-block;
}
/* ESV API HTML Rendering Styles */
.bible-passage-text h2 {
font-size: 1.3em;
margin-top: 20px;
margin-bottom: 10px;
color: var(--dj-heading-color);
}
.bible-passage-text h3 {
font-size: 1.1em;
font-style: italic;
margin-top: 16px;
margin-bottom: 8px;
color: var(--dj-heading-color);
}
.bible-passage-text .woc {
color: var(--dj-woc-color);
}
.bible-passage-container .bible-passage-text .chapter-num,
.bible-passage-container .bible-passage-text .verse-num {
font-weight: bold;
font-size: 0.8em;
color: var(--dj-verse-number-color);
vertical-align: top;
margin-right: 0.2em;
}
.bible-passage-text p {
margin: 0.6em 0;
}
.bible-passage-text .block-indent {
margin-left: var(--dj-block-indentation);
}
.bible-passage-text .line {
display: block;
}
.bible-passage-text .indent {
padding-left: 1.5em;
}
.bible-passage-text .footnote {
font-size: 0.8em;
color: var(--text-muted);
display: var(--dj-footnote-display, inline);
}
.bible-verse-preview .footnote {
font-size: 0.8em;
color: var(--text-muted);
display: var(--dj-preview-footnote-display, var(--dj-footnote-display, inline));
}
.bible-passage-text .footnotes {
margin-top: 2em;
padding-top: 1em;
border-top: 1px solid var(--background-modifier-border);
font-size: 0.9em;
display: var(--dj-footnotes-display, block);
}
.bible-verse-preview .footnotes {
margin-top: 2em;
padding-top: 1em;
border-top: 1px solid var(--background-modifier-border);
font-size: 0.9em;
display: var(--dj-preview-footnotes-display, var(--dj-footnotes-display, block));
}
.bible-passage-text .audio {
display: none;
}
.bible-passage-text .extra_text {
color: var(--text-muted);
}
.inline-bible-reference .inline-bible-reference-text { /* Target the text part */
font-size: var(--dj-font-size); /* Keep original font size variable for now, or switch to --dj-font-size if desired */
}
/* Settings: frontmatter/API info blocks */
.disciples-journal-info-label {
font-weight: var(--font-bold);
margin-bottom: var(--size-4-1);
}
.disciples-journal-var-list {
margin-top: 0;
padding-left: var(--size-4-6);
}
/* Book search input (navigation) */
.disciples-journal-book-suggest-wrapper {
position: relative;
display: inline-block;
}
.disciples-journal-book-suggest-input {
padding-right: 1.5em;
}
/* ===== Verse selection ===== */
.dj-selectable .dj-verse {
cursor: pointer;
border-radius: var(--radius-s);
}
.dj-selectable .dj-verse:hover {
background: var(--background-modifier-hover);
}
.dj-verse-selected,
.dj-selectable .dj-verse-selected:hover {
background: var(--text-selection);
box-shadow: inset 0 0 0 1px var(--text-accent);
}
/* Floating action bar — bottom-center dock, so it stays in view regardless of how tall
the passage is (a full chapter is taller than the viewport, so anchoring to the passage
would push the bar off-screen). Appears only while verses are selected. */
.dj-verse-action-bar {
position: fixed;
z-index: var(--layer-popover);
left: 50%;
bottom: var(--size-4-6);
transform: translateX(-50%);
max-width: calc(100% - var(--size-4-8));
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: center;
gap: var(--size-4-2);
padding: var(--size-4-2) var(--size-4-3);
border-radius: var(--radius-m);
background: var(--background-secondary);
box-shadow: var(--shadow-l);
}
.dj-verse-action-label {
font-weight: var(--font-bold);
margin-right: var(--size-4-1);
}
.dj-verse-action-bar button {
cursor: pointer;
}
.dj-split-button {
display: inline-flex;
}
.dj-split-button .dj-split-main {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.dj-split-button .dj-split-chevron {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
padding-left: var(--size-4-1);
padding-right: var(--size-4-1);
}
.dj-format-toggle {
display: inline-flex;
gap: var(--size-2-1);
margin-right: var(--size-4-1);
}
.dj-format-toggle button.is-active {
background: var(--interactive-accent);
color: var(--text-on-accent);
}
.dj-verse-action-bar button:focus-visible {
outline: 2px solid var(--interactive-accent);
outline-offset: 2px;
}
/* Full-width and enlarge touch targets on narrow / mobile layouts */
@media (max-width: 600px) {
.dj-verse-action-bar {
left: var(--size-4-2);
right: var(--size-4-2);
bottom: var(--size-4-3);
transform: none;
max-width: none;
}
.dj-verse-action-bar button {
min-height: 44px;
min-width: 44px;
}
}