mirror of
https://github.com/davidvkimball/obsidian-property-over-file-name.git
synced 2026-07-22 06:44:12 +00:00
Backlinks were unreliable to override and effectively unfixable, so the integration is removed entirely. BacklinkService and all of its wiring, settings, and styles are gone, leaving the rest of the plugin untouched. New setting: Hide unresolved links. When enabled, the quick switcher and link suggester only surface notes that already exist, hiding unresolved link placeholders such as site-absolute paths like /blog/... that have no matching note in the vault.
284 lines
7.9 KiB
CSS
284 lines
7.9 KiB
CSS
/* Property Over Filename Plugin Styles */
|
|
|
|
/* Enhanced suggestion styling - SCOPED to plugin only */
|
|
.property-over-filename-suggestion .suggestion-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
}
|
|
|
|
.property-over-filename-suggestion .suggestion-title {
|
|
font-weight: 500;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.property-over-filename-suggestion .suggestion-note {
|
|
font-size: 0.85em;
|
|
color: var(--text-muted);
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* Highlight matching text in suggestions - SCOPED to plugin only */
|
|
.property-over-filename-suggestion .suggestion-highlight {
|
|
background-color: var(--text-highlight-bg);
|
|
color: var(--text-highlight-bg-active);
|
|
font-weight: 600;
|
|
border-radius: 2px;
|
|
padding: 0 1px;
|
|
}
|
|
|
|
/* Property-based display indicator - SCOPED to plugin only */
|
|
.property-over-filename-suggestion .suggestion-content .suggestion-title[data-custom-display="true"] {
|
|
color: var(--interactive-accent);
|
|
font-weight: 600;
|
|
}
|
|
|
|
/* Recent files styling - SCOPED to plugin only */
|
|
.property-over-filename-suggestion .suggestion-content[data-recent="true"] .suggestion-title {
|
|
color: var(--text-accent);
|
|
}
|
|
|
|
/* New note creation styling - SCOPED to plugin only */
|
|
.property-over-filename-suggestion .suggestion-content[data-new-note="true"] .suggestion-title {
|
|
color: var(--interactive-accent);
|
|
font-style: italic;
|
|
}
|
|
|
|
.property-over-filename-suggestion .suggestion-content[data-new-note="true"] .suggestion-title::before {
|
|
content: "📝 ";
|
|
margin-right: 4px;
|
|
}
|
|
|
|
|
|
/* Remove duplicate prompt instructions - use the ones below */
|
|
|
|
/* Quick switcher enhancements - SCOPED to plugin only */
|
|
.property-over-filename-modal .suggestion-item {
|
|
padding: 8px 12px;
|
|
border-radius: 4px;
|
|
transition: background-color 0.1s ease;
|
|
}
|
|
|
|
.property-over-filename-modal .suggestion-item:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
.property-over-filename-modal .suggestion-item.is-selected {
|
|
background-color: var(--background-modifier-hover);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* Ensure selected item text has proper contrast */
|
|
.property-over-filename-modal .suggestion-item.is-selected .suggestion-title {
|
|
color: var(--text-normal);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.property-over-filename-modal .suggestion-item.is-selected .suggestion-note {
|
|
color: var(--text-muted);
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* Ensure selected item icons have proper contrast */
|
|
.property-over-filename-modal .suggestion-item.is-selected .suggestion-flair {
|
|
color: var(--text-muted);
|
|
opacity: 0.7;
|
|
}
|
|
|
|
/* Settings tab enhancements - SCOPED to plugin only */
|
|
.property-over-filename-settings .setting-item-description {
|
|
color: var(--text-muted);
|
|
font-size: 0.9em;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.property-over-filename-settings .setting-item-control {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
/* Button styling for settings - SCOPED to plugin only */
|
|
.property-over-filename-settings .setting-item .setting-button {
|
|
background-color: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border: none;
|
|
border-radius: 4px;
|
|
padding: 6px 12px;
|
|
font-size: 0.9em;
|
|
cursor: pointer;
|
|
transition: background-color 0.1s ease;
|
|
}
|
|
|
|
.property-over-filename-settings .setting-item .setting-button:hover {
|
|
background-color: var(--interactive-accent-hover);
|
|
}
|
|
|
|
.property-over-filename-settings .setting-item .setting-button.setting-button-warning {
|
|
background-color: var(--text-error);
|
|
}
|
|
|
|
.property-over-filename-settings .setting-item .setting-button.setting-button-warning:hover {
|
|
background-color: var(--text-error-hover);
|
|
}
|
|
|
|
/* Hidden modal utility class - SCOPED to plugin only. Doubled class
|
|
raises specificity to 0,3,0 so we beat Obsidian's default modal rules
|
|
through cascade alone, without needing !important. */
|
|
.property-over-filename-modal .modal.hidden.hidden {
|
|
display: none;
|
|
}
|
|
|
|
/* Mobile-specific adjustments - SCOPED to plugin only */
|
|
@media (max-width: 768px) {
|
|
.property-over-filename-suggestion .suggestion-content {
|
|
padding: 4px 0;
|
|
}
|
|
|
|
.property-over-filename-suggestion .suggestion-title {
|
|
font-size: 0.95em;
|
|
}
|
|
|
|
.property-over-filename-suggestion .suggestion-note {
|
|
font-size: 0.8em;
|
|
}
|
|
}
|
|
|
|
/* Tab title styling - no dimming */
|
|
.workspace-tab-header .workspace-tab-header-inner-title {
|
|
transition: opacity 0.05s ease;
|
|
}
|
|
|
|
/* Dark mode adjustments - SCOPED to plugin only */
|
|
.theme-dark .property-over-filename-suggestion .suggestion-highlight {
|
|
background-color: rgba(255, 255, 0, 0.3);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* Dark mode contrast improvements */
|
|
.theme-dark .property-over-filename-modal .suggestion-item.is-selected {
|
|
background-color: var(--background-modifier-hover);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.theme-dark .property-over-filename-modal .suggestion-item.is-selected .suggestion-title,
|
|
.theme-dark .property-over-filename-modal .suggestion-item.is-selected .suggestion-note {
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.theme-dark .property-over-filename-modal .suggestion-item.is-selected .suggestion-flair {
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* Let Obsidian handle dark theme footer styling */
|
|
|
|
/* Animation for smooth transitions - SCOPED to plugin only */
|
|
.property-over-filename-suggestion .suggestion-item {
|
|
transition: all 0.15s ease;
|
|
}
|
|
|
|
/* Focus states for accessibility - SCOPED to plugin only */
|
|
.property-over-filename-suggestion .suggestion-item:focus-visible {
|
|
outline: 2px solid var(--interactive-accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Quick Switcher specific styles to match Obsidian's exact structure */
|
|
|
|
/* Suggestion items with mod-complex class - SCOPED to plugin only */
|
|
.property-over-filename-suggestion .suggestion-item.mod-complex {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 8px 12px;
|
|
border-radius: 4px;
|
|
transition: background-color 0.1s ease;
|
|
min-height: 40px;
|
|
}
|
|
|
|
.property-over-filename-suggestion .suggestion-item.mod-complex .suggestion-content {
|
|
flex: 1;
|
|
min-width: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
}
|
|
|
|
.property-over-filename-suggestion .suggestion-item.mod-complex .suggestion-aux {
|
|
flex-shrink: 0;
|
|
margin-left: 8px;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.property-over-filename-suggestion .suggestion-item.mod-complex .suggestion-flair {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 24px;
|
|
height: 24px;
|
|
color: var(--text-muted);
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.property-over-filename-suggestion .suggestion-item.mod-complex .suggestion-flair svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
/* Excluded files styling */
|
|
.suggestion-item.mod-excluded {
|
|
opacity: 0.45;
|
|
filter: grayscale(1);
|
|
}
|
|
|
|
/* Let Obsidian handle footer styling - don't override */
|
|
|
|
/* Remove incorrect modal flex layout */
|
|
|
|
/* Override any conflicting styles - SCOPED to plugin only */
|
|
.property-over-filename-modal .suggestion-item .suggestion-title {
|
|
font-weight: 500;
|
|
color: var(--text-normal);
|
|
font-size: 0.95em;
|
|
}
|
|
|
|
.property-over-filename-modal .suggestion-item .suggestion-note {
|
|
font-size: 0.8em;
|
|
color: var(--text-muted);
|
|
opacity: 0.9;
|
|
}
|
|
|
|
/* Improve contrast for unselected items */
|
|
.property-over-filename-modal .suggestion-item:not(.is-selected) .suggestion-title {
|
|
color: var(--text-normal);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.property-over-filename-modal .suggestion-item:not(.is-selected) .suggestion-note {
|
|
color: var(--text-muted);
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* Improve contrast for unselected item icons */
|
|
.property-over-filename-modal .suggestion-item:not(.is-selected) .suggestion-flair {
|
|
color: var(--text-muted);
|
|
opacity: 0.7;
|
|
}
|
|
|
|
/* Group settings styling. The plugin's minAppVersion is 1.11.0+ where the
|
|
first .setting-item no longer gets a default border-top, so we don't need
|
|
the old :has(+ .setting-item) carve-out. Doubled class boosts specificity
|
|
to 0,2,1 to win against Obsidian's default heading rules without !important. */
|
|
.setting-group-heading.setting-group-heading h3 {
|
|
margin: 1.5rem 0 0.75rem;
|
|
padding-bottom: 0.5rem;
|
|
font-size: 1rem;
|
|
font-weight: 600;
|
|
border-bottom: none;
|
|
}
|
|
|
|
.setting-group-heading:first-child h3 {
|
|
margin-top: 0;
|
|
}
|
|
|