mirror of
https://github.com/callumalpass/tasknotes.git
synced 2026-07-22 12:50:26 +00:00
514 lines
14 KiB
CSS
514 lines
14 KiB
CSS
/* =================================================================
|
|
INLINE TASK WIDGET STYLES - BEM NAMING CONVENTION & PROPER SCOPING
|
|
================================================================= */
|
|
|
|
/* All inline task widget styles are scoped under .tasknotes-plugin for proper isolation */
|
|
|
|
/* =================================================================
|
|
INLINE TASK PREVIEW STYLES (Editor Widgets)
|
|
================================================================= */
|
|
|
|
/* Standalone inline task preview widget */
|
|
.tasknotes-plugin .task-inline-preview {
|
|
/* Layout - inline flexbox for proper element alignment */
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
white-space: nowrap;
|
|
|
|
/* Typography - match editor font */
|
|
font-size: var(--editor-font-size, 16px);
|
|
font-family: var(--editor-font-family, var(--font-interface));
|
|
|
|
/* Visual styling - clean text appearance */
|
|
padding: 2px 4px;
|
|
|
|
/* Interactivity */
|
|
cursor: pointer;
|
|
|
|
/* Prevent text selection issues */
|
|
user-select: none;
|
|
-webkit-user-select: none;
|
|
|
|
/* Ensure proper vertical alignment with text */
|
|
vertical-align: baseline;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
/* Hide when cursor is on the same line */
|
|
.tasknotes-plugin .task-inline-preview.task-inline-preview--cursor-hidden {
|
|
display: none;
|
|
}
|
|
|
|
|
|
/* Status indicator dot - match task card styling */
|
|
.tasknotes-plugin .task-inline-preview__status-dot {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 14px;
|
|
height: 14px;
|
|
border-radius: 50%;
|
|
border: 2px solid var(--tn-border-color);
|
|
background-color: transparent;
|
|
transition: all 0.2s ease;
|
|
cursor: pointer;
|
|
position: relative;
|
|
flex-shrink: 0;
|
|
margin-right: 6px; /* More gap between status and priority */
|
|
transform: translateY(2px); /* Lower the status circle slightly for better visual alignment */
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview__status-dot:hover {
|
|
border-color: var(--tn-text-muted);
|
|
box-shadow: 0 0 6px rgba(100, 149, 237, 0.4);
|
|
transform: translateY(2px) scale(1.1); /* Maintain the lowered position while scaling */
|
|
}
|
|
|
|
/* Priority indicator dot - filled solid circle */
|
|
.tasknotes-plugin .task-inline-preview__priority-dot {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 10px;
|
|
height: 10px;
|
|
border-radius: 50%;
|
|
background-color: var(--tn-text-muted);
|
|
border: none;
|
|
flex-shrink: 0;
|
|
margin-right: 6px; /* Gap between priority and title */
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* Date info styling */
|
|
.tasknotes-plugin .task-inline-preview__date {
|
|
opacity: 0.7;
|
|
font-size: 0.9em;
|
|
transition: opacity 0.15s ease;
|
|
flex-shrink: 0;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* Clickable date styling */
|
|
.tasknotes-plugin .task-inline-preview__date--clickable {
|
|
cursor: pointer;
|
|
border-radius: 3px;
|
|
padding: 1px 3px;
|
|
transition: all 0.15s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview__date--clickable:hover {
|
|
opacity: 1;
|
|
background-color: var(--background-modifier-hover);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
/* Date icon styling */
|
|
.tasknotes-plugin .task-inline-preview__date-icon {
|
|
display: inline-block;
|
|
width: 12px;
|
|
height: 12px;
|
|
margin-left: 6px;
|
|
margin-right: 6px;
|
|
transition: opacity 0.15s ease;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* Fix Lucide icon alignment within date icons */
|
|
.tasknotes-plugin .task-inline-preview__date-icon svg {
|
|
vertical-align: baseline;
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview__date--clickable:hover .task-inline-preview__date-icon {
|
|
opacity: 1;
|
|
filter: brightness(1.3);
|
|
}
|
|
|
|
/* Recurring indicator styling */
|
|
.tasknotes-plugin .task-inline-preview__recurring-indicator {
|
|
opacity: 0.6;
|
|
cursor: pointer;
|
|
display: inline-block;
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 3px;
|
|
padding: 1px 3px;
|
|
transition: all 0.15s ease;
|
|
flex-shrink: 0;
|
|
vertical-align: baseline;
|
|
margin-right: 2px;
|
|
}
|
|
|
|
/* Fix Lucide icon alignment within recurring indicator */
|
|
.tasknotes-plugin .task-inline-preview__recurring-indicator svg {
|
|
vertical-align: baseline;
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview:hover .task-inline-preview__recurring-indicator {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview__recurring-indicator:hover {
|
|
opacity: 1;
|
|
color: var(--interactive-accent);
|
|
transform: translateY(-1px);
|
|
filter: brightness(1.3);
|
|
}
|
|
|
|
/* Pencil icon styling */
|
|
.tasknotes-plugin .task-inline-preview__pencil {
|
|
opacity: 0;
|
|
cursor: pointer;
|
|
display: inline-block;
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 3px;
|
|
padding: 1px 3px;
|
|
transition: all 0.15s ease;
|
|
flex-shrink: 0;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* Fix Lucide icon alignment within pencil icon */
|
|
.tasknotes-plugin .task-inline-preview__pencil svg {
|
|
vertical-align: baseline;
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview:hover .task-inline-preview__pencil {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview__pencil:hover {
|
|
opacity: 1;
|
|
transform: translateY(-1px);
|
|
filter: brightness(1.3);
|
|
}
|
|
|
|
/* Hover state */
|
|
.tasknotes-plugin .task-inline-preview:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
/* Completed task styling with maximum specificity */
|
|
.tasknotes-plugin span.task-inline-preview.task-inline-preview--completed span.task-inline-preview__title,
|
|
.tasknotes-plugin.task-inline-preview.task-inline-preview--completed .task-inline-preview__title,
|
|
.tasknotes-plugin .task-inline-preview--completed .task-inline-preview__title {
|
|
text-decoration: line-through;
|
|
opacity: 0.7;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* Completed task title hover effect */
|
|
.tasknotes-plugin .task-inline-preview--completed .task-inline-preview__title:hover {
|
|
color: var(--interactive-accent);
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.tasknotes-plugin span.task-inline-preview.task-inline-preview--completed,
|
|
.tasknotes-plugin.task-inline-preview.task-inline-preview--completed,
|
|
.tasknotes-plugin .task-inline-preview--completed {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* =================================================================
|
|
INSTANT CONVERT BUTTON STYLES
|
|
================================================================= */
|
|
|
|
/* Convert button for checkbox tasks - High specificity to override browser defaults */
|
|
.tasknotes-plugin button.instant-convert-button {
|
|
/* Layout */
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
/* Sizing */
|
|
width: 15px;
|
|
height: 15px;
|
|
margin-left: 8px;
|
|
padding: 0;
|
|
|
|
/* Visual styling */
|
|
background: transparent;
|
|
color: var(--text-muted);
|
|
border: none !important;
|
|
box-shadow: none;
|
|
border-radius: 3px;
|
|
|
|
/* Interactivity */
|
|
cursor: pointer;
|
|
opacity: 0.6;
|
|
transition: all 0.15s ease;
|
|
|
|
/* Reset button styles */
|
|
font-family: inherit;
|
|
font-size: inherit;
|
|
line-height: 1;
|
|
box-sizing: border-box;
|
|
outline: none;
|
|
text-decoration: none;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
.tasknotes-plugin button.instant-convert-button:hover {
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
opacity: 1;
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
.tasknotes-plugin button.instant-convert-button:active {
|
|
transform: scale(0.95);
|
|
}
|
|
|
|
.tasknotes-plugin button.instant-convert-button:focus {
|
|
outline: 2px solid var(--interactive-accent);
|
|
outline-offset: 1px;
|
|
}
|
|
|
|
/* Icon inside the convert button */
|
|
.tasknotes-plugin .instant-convert-button__icon {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.tasknotes-plugin .instant-convert-button__icon svg {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
/* =================================================================
|
|
ADDITIONAL INLINE TASK PREVIEW ELEMENTS
|
|
================================================================= */
|
|
|
|
/* Completed status styling - filled circle with checkmark */
|
|
.tasknotes-plugin .task-inline-preview--completed .task-inline-preview__status-dot {
|
|
background-color: var(--current-status-color, var(--tn-color-success));
|
|
border-color: var(--current-status-color, var(--tn-color-success));
|
|
color: var(--tn-text-on-accent);
|
|
font-size: 9px;
|
|
font-weight: bold;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
/* Task title */
|
|
.tasknotes-plugin .task-inline-preview__title {
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: break-spaces;
|
|
color: var(--text-normal);
|
|
font-weight: 500;
|
|
margin: 0;
|
|
min-width: 0; /* Allow flex shrinking */
|
|
max-width: 250px; /* Give more room for task titles */
|
|
flex-shrink: 1; /* Allow shrinking if needed */
|
|
vertical-align: baseline;
|
|
cursor: pointer;
|
|
transition: color 0.15s ease;
|
|
border-radius: 2px;
|
|
padding: 1px 2px;
|
|
margin: -1px -2px;
|
|
}
|
|
|
|
/* Task title hover effect */
|
|
.tasknotes-plugin .task-inline-preview__title:hover {
|
|
color: var(--interactive-accent);
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
/* Priority indicator */
|
|
.tasknotes-plugin .task-inline-preview__priority {
|
|
font-weight: bold;
|
|
font-size: 0.85em;
|
|
flex-shrink: 0;
|
|
margin-left: 3px;
|
|
margin-right: 1px;
|
|
}
|
|
|
|
/* Priority border colors */
|
|
.tasknotes-plugin .task-inline-preview.task-inline-preview--priority-high {
|
|
border-left-color: var(--color-red);
|
|
border-left-width: 4px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview.task-inline-preview--priority-medium {
|
|
border-left-color: var(--color-orange);
|
|
border-left-width: 3px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview.task-inline-preview--priority-low {
|
|
border-left-color: var(--color-blue);
|
|
}
|
|
|
|
/* Pencil menu icon */
|
|
.tasknotes-plugin .task-inline-preview__menu-icon {
|
|
width: 10px;
|
|
height: 10px;
|
|
flex-shrink: 0;
|
|
opacity: 0.4;
|
|
transition: opacity 0.15s ease;
|
|
cursor: pointer;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 1px;
|
|
padding: 0;
|
|
margin-left: 1px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview__menu-icon:hover {
|
|
opacity: 1;
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview:hover .task-inline-preview__menu-icon {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* =================================================================
|
|
THEME-SPECIFIC ADJUSTMENTS
|
|
================================================================= */
|
|
|
|
/* Theme-specific adjustments */
|
|
.theme-dark .tasknotes-plugin .task-inline-preview {
|
|
background-color: var(--background-secondary);
|
|
border-color: var(--background-modifier-border);
|
|
}
|
|
|
|
.theme-light .tasknotes-plugin .task-inline-preview {
|
|
background-color: var(--background-secondary);
|
|
border-color: var(--background-modifier-border);
|
|
}
|
|
|
|
/* =================================================================
|
|
ANIMATIONS
|
|
================================================================= */
|
|
|
|
/* Animation for appearance */
|
|
.tasknotes-plugin .task-inline-preview {
|
|
animation: tn-fadeInTaskPreview 0.2s ease-out;
|
|
}
|
|
|
|
@keyframes tn-fadeInTaskPreview {
|
|
from {
|
|
opacity: 0;
|
|
transform: scale(0.95);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
/* =================================================================
|
|
RESPONSIVE DESIGN
|
|
================================================================= */
|
|
|
|
/* Responsive adjustments */
|
|
@media (max-width: 768px) {
|
|
.tasknotes-plugin .task-inline-preview {
|
|
max-width: 200px;
|
|
padding: 2px 4px;
|
|
gap: 6px;
|
|
font-size: calc(var(--editor-font-size, 16px) * 0.9);
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview__status-dot {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview__menu-icon {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
}
|
|
|
|
/* =================================================================
|
|
READING MODE SPECIFIC STYLES
|
|
================================================================= */
|
|
|
|
/* Reading mode task preview adjustments */
|
|
.tasknotes-plugin .task-inline-preview--reading-mode {
|
|
/* Ensure proper display in reading mode context */
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
|
|
/* Better visual integration with reading mode */
|
|
padding: 3px 8px;
|
|
border-radius: 4px;
|
|
background-color: var(--background-modifier-hover);
|
|
border: 1px solid var(--background-modifier-border);
|
|
|
|
/* Smooth transitions */
|
|
transition: all 0.15s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview--reading-mode:hover {
|
|
background-color: var(--background-modifier-hover-active);
|
|
border-color: var(--interactive-accent);
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
/* Reading mode title styling */
|
|
.tasknotes-plugin .task-inline-preview--reading-mode .task-inline-preview__title {
|
|
font-weight: 500;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* Reading mode date styling */
|
|
.tasknotes-plugin .task-inline-preview--reading-mode .task-inline-preview__date {
|
|
font-size: 0.85em;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* Reading mode icon adjustments */
|
|
.tasknotes-plugin .task-inline-preview--reading-mode .task-inline-preview__date-icon {
|
|
width: 11px;
|
|
height: 11px;
|
|
margin-right: 3px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview--reading-mode .task-inline-preview__pencil {
|
|
width: 11px;
|
|
height: 11px;
|
|
opacity: 0.5;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview--reading-mode:hover .task-inline-preview__pencil {
|
|
opacity: 0.9;
|
|
}
|
|
|
|
/* =================================================================
|
|
TASK INLINE PREVIEW DRAG AND DROP STATES
|
|
================================================================= */
|
|
|
|
/* Dragging state for task inline preview widgets */
|
|
.tasknotes-plugin .task-inline-preview--dragging {
|
|
opacity: 0.6;
|
|
transform: scale(0.95);
|
|
cursor: grabbing;
|
|
z-index: 1000;
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* Drag cursor for draggable task inline preview widgets */
|
|
.tasknotes-plugin .task-inline-preview[draggable="true"] {
|
|
cursor: grab;
|
|
}
|
|
|
|
.tasknotes-plugin .task-inline-preview[draggable="true"]:active {
|
|
cursor: grabbing;
|
|
}
|