From 961a995be6cdee722c819c77335abded6ce6fd1d Mon Sep 17 00:00:00 2001 From: Signynt Date: Thu, 21 May 2026 13:59:54 +0200 Subject: [PATCH] Removed `!important` rules in css --- main.ts | 33 +++++++++++++++++++++++++++++++++ styles.css | 8 ++------ 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/main.ts b/main.ts index c680662..8e6fe8b 100644 --- a/main.ts +++ b/main.ts @@ -156,6 +156,8 @@ interface VirtualFooterSettings { interface HTMLElementWithComponent extends HTMLElement { /** The Obsidian Component associated with this HTML element. */ component?: Component; + /** The MutationObserver for monitoring style changes. */ + observer?: MutationObserver; } // --- Constants --- @@ -2277,6 +2279,27 @@ export default class VirtualFooterPlugin extends Plugin { const containerEl = view.containerEl.querySelector(SELECTOR_EDITOR_CONTENT_CONTAINER_PARENT); contentEl?.classList.add(CSS_VIRTUAL_FOOTER_CM_PADDING); containerEl?.classList.add(CSS_VIRTUAL_FOOTER_REMOVE_FLEX); + + // Override the inline padding-bottom style + if (contentEl) { + const observedContentEl = contentEl as HTMLDivElement & { observer?: MutationObserver }; + contentEl.style.setProperty('padding-bottom', 'var(--p-spacing)', 'important'); + + // Watch for the style being reset and reapply if needed + const observer = new MutationObserver(() => { + const currentPadding = contentEl.style.paddingBottom; + if (!currentPadding || currentPadding === '650px') { + contentEl.style.setProperty('padding-bottom', 'var(--p-spacing)', 'important'); + } + }); + + observer.observe(contentEl, { attributes: true, attributeFilter: ['style'] }); + + // Store observer so you can disconnect it later + if (!observedContentEl.observer) { + observedContentEl.observer = observer; + } + } } /** @@ -2289,6 +2312,16 @@ export default class VirtualFooterPlugin extends Plugin { const containerEl = container.querySelector(SELECTOR_EDITOR_CONTENT_CONTAINER_PARENT); contentEl?.classList.remove(CSS_VIRTUAL_FOOTER_CM_PADDING); containerEl?.classList.remove(CSS_VIRTUAL_FOOTER_REMOVE_FLEX); + + // Remove the inline padding-bottom style + if (contentEl) { + const observedContentEl = contentEl as HTMLDivElement & { observer?: MutationObserver }; + contentEl.style.removeProperty('padding-bottom'); + if (observedContentEl.observer) { + observedContentEl.observer.disconnect(); + delete observedContentEl.observer; + } + } } /** diff --git a/styles.css b/styles.css index c509a4b..8293310 100644 --- a/styles.css +++ b/styles.css @@ -4,12 +4,8 @@ margin-inline: var(--content-margin); } -.virtual-footer-cm-padding { - padding-bottom: var(--p-spacing) !important; -} - -.virtual-footer-remove-flex { - flex: 0 1 auto !important; +.markdown-source-view.mod-cm6 .cm-contentContainer.virtual-footer-remove-flex { + flex: 0 1 auto; } .virtual-footer-footer-group{