All checks were successful
Deploy Quartz site to GitHub Pages / build (push) Successful in 1m52s
19214 lines
498 KiB
CSS
19214 lines
498 KiB
CSS
/* TaskNotes Plugin Styles */
|
|
|
|
/*
|
|
This file is automatically generated by the build process.
|
|
To modify styles, edit the source files in the styles/ directory.
|
|
|
|
Source files:
|
|
|
|
Core System:
|
|
- styles/variables.css: CSS custom properties and design system variables
|
|
- styles/utilities.css: Scoped utility classes for layout, spacing, typography, and states
|
|
- styles/base.css: Basic styles, animations, card components, and layout
|
|
|
|
BEM Component Files:
|
|
- styles/task-card-bem.css: TaskCard component with proper BEM scoping
|
|
- styles/task-inline-widget.css: Inline task widget for editor with proper BEM scoping
|
|
- styles/note-card-bem.css: NoteCard component with proper BEM scoping
|
|
- styles/filter-bar-bem.css: FilterBar component with proper BEM scoping
|
|
- styles/modal-bem.css: Modal components with proper BEM scoping
|
|
|
|
BEM View Files:
|
|
- styles/task-list-view.css: TaskListView component with proper BEM scoping
|
|
- styles/calendar-view.css: CalendarView component with proper BEM scoping
|
|
- styles/kanban-view.css: KanbanView component with proper BEM scoping
|
|
- styles/agenda-view.css: AgendaView component with proper BEM scoping
|
|
- styles/pomodoro-view.css: PomodoroView component with proper BEM scoping
|
|
- styles/pomodoro-stats-view.css: PomodoroStatsView component with proper BEM scoping
|
|
- styles/settings-view.css: SettingsView component with proper BEM scoping
|
|
|
|
Run 'npm run build-css' to regenerate this file.
|
|
*/
|
|
|
|
|
|
/* ===== VARIABLES.CSS ===== */
|
|
/* Material 3 Expressive Design System Variables (2025) */
|
|
:root {
|
|
/* ================================================
|
|
SPACING SYSTEM - Optimized 4dp Grid Base for Compact Design
|
|
================================================ */
|
|
|
|
/* Material 3 Expressive spacing tokens - more compact for desktop */
|
|
--cs-spacing-xs: 2px; /* 0.5 units - tighter for compact design */
|
|
--cs-spacing-sm: 4px; /* 1 unit - reduced base grid */
|
|
--cs-spacing-md: 8px; /* 2 units - more compact */
|
|
--cs-spacing-lg: 12px; /* 3 units - reduced from 24px */
|
|
--cs-spacing-xl: 16px; /* 4 units - more compact */
|
|
--cs-spacing-xxl: 24px; /* 6 units - significantly reduced */
|
|
|
|
/* ================================================
|
|
MATERIAL 3 EXPRESSIVE ELEVATION SYSTEM
|
|
================================================ */
|
|
|
|
/* Enhanced elevation shadows with more personality and depth */
|
|
--cs-elevation-0: none;
|
|
--cs-elevation-1: 0 1px 2px rgba(0, 0, 0, 0.12), 0 1px 3px rgba(0, 0, 0, 0.06);
|
|
--cs-elevation-2: 0 2px 4px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.08);
|
|
--cs-elevation-3: 0 3px 6px rgba(0, 0, 0, 0.12), 0 3px 9px rgba(0, 0, 0, 0.08);
|
|
--cs-elevation-4: 0 4px 8px rgba(0, 0, 0, 0.12), 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
--cs-elevation-5: 0 6px 12px rgba(0, 0, 0, 0.12), 0 6px 18px rgba(0, 0, 0, 0.08);
|
|
|
|
/* Removed expressive shadow variants - rely on standard elevation system */
|
|
|
|
/* Surface container colors for elevation */
|
|
--cs-surface-container-lowest: var(--background-primary);
|
|
--cs-surface-container-low: var(--background-primary-alt);
|
|
--cs-surface-container: var(--background-secondary);
|
|
--cs-surface-container-high: var(--background-secondary-alt);
|
|
--cs-surface-container-highest: var(--background-modifier-cover);
|
|
|
|
/* ================================================
|
|
MATERIAL 3 EXPRESSIVE TYPOGRAPHY SCALE
|
|
================================================ */
|
|
|
|
/* Display - More expressive and compact for desktop use */
|
|
--cs-text-display-large: 2.75rem; /* 44px - reduced from 56px */
|
|
--cs-text-display-medium: 2.25rem; /* 36px - reduced from 45px */
|
|
--cs-text-display-small: 1.875rem; /* 30px - reduced from 36px */
|
|
|
|
/* Headlines - Optimized for desktop density */
|
|
--cs-text-headline-large: 1.75rem; /* 28px - reduced from 32px */
|
|
--cs-text-headline-medium: 1.5rem; /* 24px - reduced from 28px */
|
|
--cs-text-headline-small: 1.25rem; /* 20px - reduced from 24px */
|
|
|
|
/* Titles - Compact yet readable */
|
|
--cs-text-title-large: 1.125rem; /* 18px - reduced from 22px */
|
|
--cs-text-title-medium: 0.875rem; /* 14px - reduced from 16px */
|
|
--cs-text-title-small: 0.75rem; /* 12px - reduced from 14px */
|
|
|
|
/* Body - Optimized for readability and compactness */
|
|
--cs-text-body-large: 0.875rem; /* 14px - reduced from 16px */
|
|
--cs-text-body-medium: 0.75rem; /* 12px - reduced from 14px */
|
|
--cs-text-body-small: 0.6875rem; /* 11px - slightly reduced */
|
|
|
|
/* Labels - Compact component text */
|
|
--cs-text-label-large: 0.75rem; /* 12px - reduced from 14px */
|
|
--cs-text-label-medium: 0.6875rem; /* 11px - slightly reduced */
|
|
--cs-text-label-small: 0.625rem; /* 10px - more compact */
|
|
|
|
/* Legacy typography for compatibility */
|
|
--cs-text-xs: var(--cs-text-label-small);
|
|
--cs-text-sm: var(--cs-text-label-medium);
|
|
--cs-text-base: var(--cs-text-body-medium);
|
|
--cs-text-md: var(--cs-text-body-large);
|
|
--cs-text-lg: var(--cs-text-title-medium);
|
|
--cs-text-xl: var(--cs-text-title-large);
|
|
--cs-text-2xl: var(--cs-text-headline-small);
|
|
|
|
/* ================================================
|
|
EXPRESSIVE BORDER RADIUS SYSTEM
|
|
================================================ */
|
|
|
|
/* Material 3 Expressive corner radius tokens - more dynamic and personality-driven */
|
|
--cs-radius-xs: 2px; /* Extra small - more subtle */
|
|
--cs-radius-sm: 6px; /* Small - slightly more rounded */
|
|
--cs-radius-md: 10px; /* Medium - more organic feel */
|
|
--cs-radius-lg: 14px; /* Large - enhanced personality */
|
|
--cs-radius-xl: 20px; /* Extra large - more expressive */
|
|
--cs-radius-xxl: 28px; /* Extra extra large - bold expression */
|
|
--cs-radius-full: 50%; /* Full/pill - unchanged */
|
|
|
|
/* Removed expressive radius variations - keep consistent radius system */
|
|
|
|
/* ================================================
|
|
COMPACT COMPONENT SIZING
|
|
================================================ */
|
|
|
|
/* Touch targets - Optimized for desktop with compact design */
|
|
--cs-touch-target: 36px; /* Reduced from 48px for compactness */
|
|
--cs-touch-target-lg: 44px; /* Reduced from 56px */
|
|
--cs-touch-target-dense: 28px; /* More compact dense layouts */
|
|
|
|
/* Button heights - More compact for desktop */
|
|
--cs-button-height-sm: 24px; /* Reduced from 32px */
|
|
--cs-button-height-md: 32px; /* Reduced from 40px */
|
|
--cs-button-height-lg: var(--cs-touch-target);
|
|
|
|
/* Input heights - Compact but usable */
|
|
--cs-input-height-sm: 24px; /* Reduced from 32px */
|
|
--cs-input-height-md: 32px; /* Reduced from 40px */
|
|
--cs-input-height-lg: var(--cs-touch-target);
|
|
|
|
/* Icon sizes - Proportionally adjusted */
|
|
--cs-icon-sm: 14px; /* Reduced from 16px */
|
|
--cs-icon-md: 20px; /* Reduced from 24px */
|
|
--cs-icon-lg: 28px; /* Reduced from 32px */
|
|
|
|
/* ================================================
|
|
EXPRESSIVE MOTION PHYSICS SYSTEM
|
|
================================================ */
|
|
|
|
/* Material 3 Expressive motion tokens - enhanced with spatial springs */
|
|
--cs-motion-duration-instant: 25ms; /* Near-instant feedback */
|
|
--cs-motion-duration-short1: 75ms; /* Very quick interactions */
|
|
--cs-motion-duration-short2: 120ms; /* Quick interactions */
|
|
--cs-motion-duration-short3: 180ms; /* Standard interactions */
|
|
--cs-motion-duration-short4: 240ms; /* Slightly longer interactions */
|
|
--cs-motion-duration-medium1: 300ms; /* Medium duration */
|
|
--cs-motion-duration-medium2: 360ms; /* Medium-long duration */
|
|
--cs-motion-duration-medium3: 420ms; /* Longer interactions */
|
|
--cs-motion-duration-medium4: 480ms; /* Long interactions */
|
|
--cs-motion-duration-long1: 540ms; /* Very long interactions */
|
|
--cs-motion-duration-long2: 600ms; /* Extra long */
|
|
|
|
/* Enhanced easing curves for more natural, physics-based motion */
|
|
--cs-motion-easing-linear: cubic-bezier(0, 0, 1, 1);
|
|
--cs-motion-easing-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
--cs-motion-easing-standard-accelerate: cubic-bezier(0.3, 0, 1, 1);
|
|
--cs-motion-easing-standard-decelerate: cubic-bezier(0, 0, 0, 1);
|
|
--cs-motion-easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
|
|
--cs-motion-easing-emphasized-accelerate: cubic-bezier(0.3, 0, 0.8, 0.15);
|
|
--cs-motion-easing-emphasized-decelerate: cubic-bezier(0.05, 0.7, 0.1, 1);
|
|
|
|
/* Simplified motion system - keep only essential easing curves */
|
|
--cs-motion-easing-spring: cubic-bezier(0.175, 0.885, 0.32, 1.1);
|
|
|
|
/* Simplified transition tokens */
|
|
--cs-transition-instant: var(--cs-motion-duration-instant) var(--cs-motion-easing-standard);
|
|
--cs-transition-fast: var(--cs-motion-duration-short2) var(--cs-motion-easing-standard);
|
|
--cs-transition-normal: var(--cs-motion-duration-short3) var(--cs-motion-easing-spring);
|
|
--cs-transition-slow: var(--cs-motion-duration-medium1) var(--cs-motion-easing-emphasized);
|
|
|
|
/* ================================================
|
|
STATE SYSTEM
|
|
================================================ */
|
|
|
|
/* Opacity values for different states */
|
|
--cs-state-hover: 0.08;
|
|
--cs-state-focus: 0.12;
|
|
--cs-state-pressed: 0.16;
|
|
--cs-state-dragged: 0.16;
|
|
--cs-state-disabled: 0.38;
|
|
|
|
/* ================================================
|
|
Z-INDEX SYSTEM
|
|
================================================ */
|
|
|
|
/* Layer hierarchy for proper stacking */
|
|
--cs-z-base: 0;
|
|
--cs-z-sticky: 100;
|
|
--cs-z-fixed: 200;
|
|
--cs-z-overlay: 300;
|
|
--cs-z-dropdown: 1000;
|
|
--cs-z-tooltip: 2000;
|
|
--cs-z-modal: 3000;
|
|
--cs-z-notification: 4000;
|
|
|
|
/* Simplified Color System - Rely more on theme colors */
|
|
/* Only define colors when theme doesn't provide suitable alternatives */
|
|
|
|
/* Blue scale for notes and information */
|
|
--cs-blue-100: rgba(59, 130, 246, 0.1); /* Light blue background for scheduled tasks */
|
|
--cs-blue-300: var(--color-blue, #60a5fa);
|
|
--cs-blue-400: var(--color-blue, #3b82f6);
|
|
--cs-blue-500: var(--color-blue, #2563eb);
|
|
|
|
/* Purple scale for special items */
|
|
--cs-purple-100: rgba(139, 92, 246, 0.1); /* Light purple background for daily notes */
|
|
--cs-purple-300: var(--color-purple, #a78bfa);
|
|
--cs-purple-400: var(--color-purple, #8b5cf6);
|
|
--cs-purple-500: var(--color-purple, #7c3aed);
|
|
|
|
/* Use theme's muted colors */
|
|
--cs-gray-100: rgba(107, 114, 128, 0.1); /* Light gray background for archived tasks */
|
|
--cs-gray-300: var(--background-modifier-border);
|
|
--cs-gray-400: var(--background-modifier-border-hover);
|
|
--cs-gray-500: var(--text-muted);
|
|
--cs-gray-600: var(--text-faint);
|
|
|
|
/* Red and green gradient colors for due dates and completed tasks */
|
|
--cs-red-100: rgba(239, 68, 68, 0.1); /* Light red background for due tasks */
|
|
--cs-green-100: rgba(34, 197, 94, 0.1); /* Light green background for completed tasks */
|
|
|
|
/* Fixed semantic usage for UI elements (not user-customizable) */
|
|
/* Notes heatmap - blue intensities for calendar */
|
|
--cs-color-notes-light: var(--cs-blue-300);
|
|
--cs-color-notes-medium: var(--cs-blue-400);
|
|
--cs-color-notes-heavy: var(--cs-blue-500);
|
|
|
|
/* Special item colors (daily notes, recurring) */
|
|
--cs-color-daily-note: var(--cs-purple-300);
|
|
--cs-color-recurring: var(--cs-purple-400);
|
|
|
|
/* Archived/inactive content */
|
|
--cs-color-archived: var(--cs-gray-500);
|
|
|
|
/* Note: Status and Priority colors are user-customizable via settings */
|
|
/* They are injected as CSS variables: --status-{value}-color and --priority-{value}-color */
|
|
/* Default fallbacks for when custom colors aren't loaded yet */
|
|
--cs-color-status-fallback: var(--text-muted);
|
|
--cs-color-priority-fallback: var(--text-muted);
|
|
|
|
/* Legacy component sizing - using updated values from above */
|
|
|
|
/* Z-index scale */
|
|
--cs-z-dropdown: 1000;
|
|
--cs-z-modal: 2000;
|
|
--cs-z-tooltip: 3000;
|
|
|
|
/* Shadow system */
|
|
--cs-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
--cs-shadow-md: 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.1);
|
|
--cs-shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
--cs-shadow-xl: 0 6px 12px rgba(0, 0, 0, 0.25);
|
|
}
|
|
|
|
/* ================================================
|
|
TASKNOTES PLUGIN SCOPED VARIABLES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin {
|
|
/* ================================================
|
|
SCOPED THEME INTEGRATION
|
|
================================================ */
|
|
|
|
/* Base & Text Colors - Map to Obsidian theme variables */
|
|
--tn-bg-primary: var(--background-primary);
|
|
--tn-bg-secondary: var(--background-secondary);
|
|
--tn-bg-primary-alt: var(--background-primary-alt, var(--background-primary));
|
|
--tn-bg-secondary-alt: var(--background-secondary-alt, var(--background-secondary));
|
|
--tn-text-normal: var(--text-normal);
|
|
--tn-text-muted: var(--text-muted);
|
|
--tn-text-faint: var(--text-faint);
|
|
--tn-text-accent: var(--interactive-accent);
|
|
|
|
/* Borders & Dividers - Map to Obsidian theme variables */
|
|
--tn-border-color: var(--background-modifier-border);
|
|
--tn-border-color-hover: var(--background-modifier-border-hover);
|
|
--tn-border-color-focus: var(--background-modifier-border-focus);
|
|
--tn-border-color-interactive: var(--interactive-accent);
|
|
|
|
/* Interactive States - Map to Obsidian theme variables */
|
|
--tn-interactive-normal: var(--interactive-normal);
|
|
--tn-interactive-hover: color-mix(in srgb, var(--tn-interactive-accent) 8%, transparent);
|
|
--tn-interactive-accent: var(--interactive-accent);
|
|
--tn-interactive-accent-hover: var(--interactive-accent-hover);
|
|
--tn-interactive-success: var(--interactive-success);
|
|
|
|
/* Semantic Colors - Use Obsidian's color palette when available */
|
|
--tn-color-success: var(--color-green, #00aa00);
|
|
--tn-color-warning: var(--color-yellow, #ffa500);
|
|
--tn-color-error: var(--color-red, #ff0000);
|
|
--tn-color-info: var(--color-blue, #0066cc);
|
|
--tn-color-overdue: var(--color-red, #ff0000);
|
|
|
|
/* ================================================
|
|
SCOPED SPACING SYSTEM (inherit from design system)
|
|
================================================ */
|
|
|
|
--tn-spacing-xs: var(--cs-spacing-xs);
|
|
--tn-spacing-sm: var(--cs-spacing-sm);
|
|
--tn-spacing-md: var(--cs-spacing-md);
|
|
--tn-spacing-lg: var(--cs-spacing-lg);
|
|
--tn-spacing-xl: var(--cs-spacing-xl);
|
|
--tn-spacing-xxl: var(--cs-spacing-xxl);
|
|
|
|
/* ================================================
|
|
SCOPED TYPOGRAPHY SYSTEM (inherit from design system)
|
|
================================================ */
|
|
|
|
--tn-font-size-xs: var(--cs-text-label-small);
|
|
--tn-font-size-sm: var(--cs-text-label-medium);
|
|
--tn-font-size-md: var(--cs-text-body-medium);
|
|
--tn-font-size-lg: var(--cs-text-body-large);
|
|
--tn-font-size-xl: var(--cs-text-title-medium);
|
|
--tn-font-size-2xl: var(--cs-text-title-large);
|
|
|
|
/* Typography weights and styles */
|
|
--tn-font-weight-normal: 400;
|
|
--tn-font-weight-medium: 500;
|
|
--tn-font-weight-semibold: 600;
|
|
--tn-font-weight-bold: 700;
|
|
|
|
/* ================================================
|
|
SCOPED BORDERS & SHADOWS (inherit from design system)
|
|
================================================ */
|
|
|
|
--tn-radius-xs: var(--cs-radius-xs);
|
|
--tn-radius-sm: var(--cs-radius-sm);
|
|
--tn-radius-md: var(--cs-radius-md);
|
|
--tn-radius-lg: var(--cs-radius-lg);
|
|
--tn-radius-xl: var(--cs-radius-xl);
|
|
--tn-radius-full: var(--cs-radius-full);
|
|
|
|
--tn-shadow-light: var(--cs-elevation-1);
|
|
--tn-shadow-medium: var(--cs-elevation-2);
|
|
--tn-shadow-strong: var(--cs-elevation-3);
|
|
--tn-shadow-hover: var(--cs-elevation-4);
|
|
|
|
/* ================================================
|
|
SCOPED MOTION SYSTEM (inherit from design system)
|
|
================================================ */
|
|
|
|
--tn-transition-fast: var(--cs-transition-fast);
|
|
--tn-transition-normal: var(--cs-transition-normal);
|
|
--tn-transition-slow: var(--cs-transition-slow);
|
|
|
|
/* ================================================
|
|
SCOPED COMPONENT SIZING (inherit from design system)
|
|
================================================ */
|
|
|
|
--tn-button-height-sm: var(--cs-button-height-sm);
|
|
--tn-button-height-md: var(--cs-button-height-md);
|
|
--tn-button-height-lg: var(--cs-button-height-lg);
|
|
|
|
--tn-input-height-sm: var(--cs-input-height-sm);
|
|
--tn-input-height-md: var(--cs-input-height-md);
|
|
--tn-input-height-lg: var(--cs-input-height-lg);
|
|
|
|
--tn-icon-sm: var(--cs-icon-sm);
|
|
--tn-icon-md: var(--cs-icon-md);
|
|
--tn-icon-lg: var(--cs-icon-lg);
|
|
|
|
/* ================================================
|
|
SCOPED Z-INDEX SYSTEM (inherit from design system)
|
|
================================================ */
|
|
|
|
--tn-z-base: var(--cs-z-base);
|
|
--tn-z-sticky: var(--cs-z-sticky);
|
|
--tn-z-dropdown: var(--cs-z-dropdown);
|
|
--tn-z-modal: var(--cs-z-modal);
|
|
--tn-z-tooltip: var(--cs-z-tooltip);
|
|
--tn-z-notification: var(--cs-z-notification);
|
|
|
|
/* ================================================
|
|
PLUGIN-SPECIFIC VARIABLES
|
|
================================================ */
|
|
|
|
/* Status & Priority colors are dynamically injected by StatusManager & PriorityManager */
|
|
/* These are fallbacks for when dynamic colors aren't loaded yet */
|
|
--tn-color-status-fallback: var(--tn-text-muted);
|
|
--tn-color-priority-fallback: var(--tn-text-muted);
|
|
|
|
/* Special component colors */
|
|
--tn-color-archived: var(--cs-color-archived);
|
|
--tn-color-daily-note: var(--cs-color-daily-note);
|
|
--tn-color-recurring: var(--cs-color-recurring);
|
|
|
|
/* Calendar and heatmap colors */
|
|
--tn-color-notes-light: var(--cs-color-notes-light);
|
|
--tn-color-notes-medium: var(--cs-color-notes-medium);
|
|
--tn-color-notes-heavy: var(--cs-color-notes-heavy);
|
|
}
|
|
|
|
/* ===== UTILITIES.CSS ===== */
|
|
/* ================================================
|
|
TASKNOTES SCOPED UTILITY CLASSES
|
|
================================================
|
|
|
|
This file contains a comprehensive set of utility classes for the
|
|
ChronoSync/TaskNotes plugin. All utilities are properly scoped under
|
|
.tasknotes-plugin and follow the established naming conventions.
|
|
|
|
Naming Convention: .tn-{property}-{value}
|
|
All utilities use --tn- CSS variables for consistency
|
|
|
|
Categories:
|
|
- Layout Utilities (flexbox, grid, positioning)
|
|
- Spacing Utilities (margin, padding, gap)
|
|
- Typography Utilities (text alignment, font styles)
|
|
- Display Utilities (visibility, display types)
|
|
- Background & Border Utilities
|
|
- State Utilities (hover, focus, loading)
|
|
- Animation Utilities
|
|
|
|
================================================ */
|
|
|
|
/* ================================================
|
|
LAYOUT UTILITIES - FLEXBOX
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-flex {
|
|
display: flex;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-inline {
|
|
display: inline-flex;
|
|
}
|
|
|
|
/* Flex Direction */
|
|
.tasknotes-plugin .tn-flex-row {
|
|
flex-direction: row;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-col {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-row-reverse {
|
|
flex-direction: row-reverse;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-col-reverse {
|
|
flex-direction: column-reverse;
|
|
}
|
|
|
|
/* Flex Wrap */
|
|
.tasknotes-plugin .tn-flex-wrap {
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-nowrap {
|
|
flex-wrap: nowrap;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-wrap-reverse {
|
|
flex-wrap: wrap-reverse;
|
|
}
|
|
|
|
/* Justify Content */
|
|
.tasknotes-plugin .tn-justify-start {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-justify-end {
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-justify-center {
|
|
justify-content: center;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-justify-between {
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-justify-around {
|
|
justify-content: space-around;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-justify-evenly {
|
|
justify-content: space-evenly;
|
|
}
|
|
|
|
/* Align Items */
|
|
.tasknotes-plugin .tn-items-start {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-items-end {
|
|
align-items: flex-end;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-items-center {
|
|
align-items: center;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-items-baseline {
|
|
align-items: baseline;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-items-stretch {
|
|
align-items: stretch;
|
|
}
|
|
|
|
/* Align Self */
|
|
.tasknotes-plugin .tn-self-auto {
|
|
align-self: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-self-start {
|
|
align-self: flex-start;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-self-end {
|
|
align-self: flex-end;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-self-center {
|
|
align-self: center;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-self-stretch {
|
|
align-self: stretch;
|
|
}
|
|
|
|
/* Flex Growth and Shrink */
|
|
.tasknotes-plugin .tn-flex-1 {
|
|
flex: 1 1 0%;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-auto {
|
|
flex: 1 1 auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-initial {
|
|
flex: 0 1 auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-none {
|
|
flex: none;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-grow {
|
|
flex-grow: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-grow-0 {
|
|
flex-grow: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-shrink {
|
|
flex-shrink: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-shrink-0 {
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* Common Flex Combinations */
|
|
.tasknotes-plugin .tn-flex-center {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-between {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-around {
|
|
display: flex;
|
|
justify-content: space-around;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-evenly {
|
|
display: flex;
|
|
justify-content: space-evenly;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-col-center {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-flex-col-between {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
/* ================================================
|
|
LAYOUT UTILITIES - GRID
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-grid {
|
|
display: grid;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-grid-inline {
|
|
display: inline-grid;
|
|
}
|
|
|
|
/* Grid Template Columns */
|
|
.tasknotes-plugin .tn-grid-cols-1 {
|
|
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-grid-cols-2 {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-grid-cols-3 {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-grid-cols-4 {
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-grid-cols-5 {
|
|
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-grid-cols-6 {
|
|
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-grid-cols-7 {
|
|
grid-template-columns: repeat(7, minmax(0, 1fr));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-grid-cols-12 {
|
|
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
}
|
|
|
|
/* Grid Template Rows */
|
|
.tasknotes-plugin .tn-grid-rows-1 {
|
|
grid-template-rows: repeat(1, minmax(0, 1fr));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-grid-rows-2 {
|
|
grid-template-rows: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-grid-rows-3 {
|
|
grid-template-rows: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-grid-rows-4 {
|
|
grid-template-rows: repeat(4, minmax(0, 1fr));
|
|
}
|
|
|
|
/* Grid Column Span */
|
|
.tasknotes-plugin .tn-col-span-1 {
|
|
grid-column: span 1 / span 1;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-col-span-2 {
|
|
grid-column: span 2 / span 2;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-col-span-3 {
|
|
grid-column: span 3 / span 3;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-col-span-4 {
|
|
grid-column: span 4 / span 4;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-col-span-full {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
/* Grid Row Span */
|
|
.tasknotes-plugin .tn-row-span-1 {
|
|
grid-row: span 1 / span 1;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-row-span-2 {
|
|
grid-row: span 2 / span 2;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-row-span-3 {
|
|
grid-row: span 3 / span 3;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-row-span-full {
|
|
grid-row: 1 / -1;
|
|
}
|
|
|
|
/* ================================================
|
|
LAYOUT UTILITIES - POSITIONING
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-static {
|
|
position: static;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-fixed {
|
|
position: fixed;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-absolute {
|
|
position: absolute;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-relative {
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-sticky {
|
|
position: sticky;
|
|
}
|
|
|
|
/* Positioning Values */
|
|
.tasknotes-plugin .tn-inset-0 {
|
|
top: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-top-0 {
|
|
top: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-right-0 {
|
|
right: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-bottom-0 {
|
|
bottom: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-left-0 {
|
|
left: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-top-auto {
|
|
top: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-right-auto {
|
|
right: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-bottom-auto {
|
|
bottom: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-left-auto {
|
|
left: auto;
|
|
}
|
|
|
|
/* ================================================
|
|
SPACING UTILITIES - MARGIN
|
|
================================================ */
|
|
|
|
/* All sides */
|
|
.tasknotes-plugin .tn-m-0 {
|
|
margin: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-m-xs {
|
|
margin: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-m-sm {
|
|
margin: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-m-md {
|
|
margin: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-m-lg {
|
|
margin: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-m-xl {
|
|
margin: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-m-auto {
|
|
margin: auto;
|
|
}
|
|
|
|
/* Horizontal */
|
|
.tasknotes-plugin .tn-mx-0 {
|
|
margin-left: 0;
|
|
margin-right: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mx-xs {
|
|
margin-left: var(--tn-spacing-xs);
|
|
margin-right: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mx-sm {
|
|
margin-left: var(--tn-spacing-sm);
|
|
margin-right: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mx-md {
|
|
margin-left: var(--tn-spacing-md);
|
|
margin-right: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mx-lg {
|
|
margin-left: var(--tn-spacing-lg);
|
|
margin-right: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mx-xl {
|
|
margin-left: var(--tn-spacing-xl);
|
|
margin-right: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mx-auto {
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
/* Vertical */
|
|
.tasknotes-plugin .tn-my-0 {
|
|
margin-top: 0;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-my-xs {
|
|
margin-top: var(--tn-spacing-xs);
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-my-sm {
|
|
margin-top: var(--tn-spacing-sm);
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-my-md {
|
|
margin-top: var(--tn-spacing-md);
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-my-lg {
|
|
margin-top: var(--tn-spacing-lg);
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-my-xl {
|
|
margin-top: var(--tn-spacing-xl);
|
|
margin-bottom: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-my-auto {
|
|
margin-top: auto;
|
|
margin-bottom: auto;
|
|
}
|
|
|
|
/* Individual sides */
|
|
.tasknotes-plugin .tn-mt-0 {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mt-xs {
|
|
margin-top: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mt-sm {
|
|
margin-top: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mt-md {
|
|
margin-top: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mt-lg {
|
|
margin-top: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mt-xl {
|
|
margin-top: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mt-auto {
|
|
margin-top: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mr-0 {
|
|
margin-right: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mr-xs {
|
|
margin-right: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mr-sm {
|
|
margin-right: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mr-md {
|
|
margin-right: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mr-lg {
|
|
margin-right: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mr-xl {
|
|
margin-right: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mr-auto {
|
|
margin-right: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mb-0 {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mb-xs {
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mb-sm {
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mb-md {
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mb-lg {
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mb-xl {
|
|
margin-bottom: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-mb-auto {
|
|
margin-bottom: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-ml-0 {
|
|
margin-left: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-ml-xs {
|
|
margin-left: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-ml-sm {
|
|
margin-left: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-ml-md {
|
|
margin-left: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-ml-lg {
|
|
margin-left: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-ml-xl {
|
|
margin-left: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-ml-auto {
|
|
margin-left: auto;
|
|
}
|
|
|
|
/* ================================================
|
|
SPACING UTILITIES - PADDING
|
|
================================================ */
|
|
|
|
/* All sides */
|
|
.tasknotes-plugin .tn-p-0 {
|
|
padding: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-p-xs {
|
|
padding: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-p-sm {
|
|
padding: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-p-md {
|
|
padding: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-p-lg {
|
|
padding: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-p-xl {
|
|
padding: var(--tn-spacing-xl);
|
|
}
|
|
|
|
/* Horizontal */
|
|
.tasknotes-plugin .tn-px-0 {
|
|
padding-left: 0;
|
|
padding-right: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-px-xs {
|
|
padding-left: var(--tn-spacing-xs);
|
|
padding-right: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-px-sm {
|
|
padding-left: var(--tn-spacing-sm);
|
|
padding-right: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-px-md {
|
|
padding-left: var(--tn-spacing-md);
|
|
padding-right: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-px-lg {
|
|
padding-left: var(--tn-spacing-lg);
|
|
padding-right: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-px-xl {
|
|
padding-left: var(--tn-spacing-xl);
|
|
padding-right: var(--tn-spacing-xl);
|
|
}
|
|
|
|
/* Vertical */
|
|
.tasknotes-plugin .tn-py-0 {
|
|
padding-top: 0;
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-py-xs {
|
|
padding-top: var(--tn-spacing-xs);
|
|
padding-bottom: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-py-sm {
|
|
padding-top: var(--tn-spacing-sm);
|
|
padding-bottom: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-py-md {
|
|
padding-top: var(--tn-spacing-md);
|
|
padding-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-py-lg {
|
|
padding-top: var(--tn-spacing-lg);
|
|
padding-bottom: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-py-xl {
|
|
padding-top: var(--tn-spacing-xl);
|
|
padding-bottom: var(--tn-spacing-xl);
|
|
}
|
|
|
|
/* Individual sides */
|
|
.tasknotes-plugin .tn-pt-0 {
|
|
padding-top: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pt-xs {
|
|
padding-top: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pt-sm {
|
|
padding-top: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pt-md {
|
|
padding-top: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pt-lg {
|
|
padding-top: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pt-xl {
|
|
padding-top: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pr-0 {
|
|
padding-right: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pr-xs {
|
|
padding-right: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pr-sm {
|
|
padding-right: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pr-md {
|
|
padding-right: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pr-lg {
|
|
padding-right: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pr-xl {
|
|
padding-right: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pb-0 {
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pb-xs {
|
|
padding-bottom: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pb-sm {
|
|
padding-bottom: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pb-md {
|
|
padding-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pb-lg {
|
|
padding-bottom: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pb-xl {
|
|
padding-bottom: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pl-0 {
|
|
padding-left: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pl-xs {
|
|
padding-left: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pl-sm {
|
|
padding-left: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pl-md {
|
|
padding-left: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pl-lg {
|
|
padding-left: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pl-xl {
|
|
padding-left: var(--tn-spacing-xl);
|
|
}
|
|
|
|
/* ================================================
|
|
SPACING UTILITIES - GAP
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-gap-0 {
|
|
gap: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-xs {
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-sm {
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-md {
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-lg {
|
|
gap: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-xl {
|
|
gap: var(--tn-spacing-xl);
|
|
}
|
|
|
|
/* Column Gap */
|
|
.tasknotes-plugin .tn-gap-x-0 {
|
|
column-gap: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-x-xs {
|
|
column-gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-x-sm {
|
|
column-gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-x-md {
|
|
column-gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-x-lg {
|
|
column-gap: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-x-xl {
|
|
column-gap: var(--tn-spacing-xl);
|
|
}
|
|
|
|
/* Row Gap */
|
|
.tasknotes-plugin .tn-gap-y-0 {
|
|
row-gap: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-y-xs {
|
|
row-gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-y-sm {
|
|
row-gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-y-md {
|
|
row-gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-y-lg {
|
|
row-gap: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-gap-y-xl {
|
|
row-gap: var(--tn-spacing-xl);
|
|
}
|
|
|
|
/* ================================================
|
|
DISPLAY UTILITIES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-block {
|
|
display: block;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-inline-block {
|
|
display: inline-block;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-inline {
|
|
display: inline;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-hidden {
|
|
display: none !important;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-table {
|
|
display: table;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-table-row {
|
|
display: table-row;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-table-cell {
|
|
display: table-cell;
|
|
}
|
|
|
|
/* ================================================
|
|
VISIBILITY UTILITIES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-visible {
|
|
visibility: visible;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-invisible {
|
|
visibility: hidden;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-collapse {
|
|
visibility: collapse;
|
|
}
|
|
|
|
/* ================================================
|
|
TYPOGRAPHY UTILITIES
|
|
================================================ */
|
|
|
|
/* Text Alignment */
|
|
.tasknotes-plugin .tn-text-left {
|
|
text-align: left;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-center {
|
|
text-align: center;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-right {
|
|
text-align: right;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-justify {
|
|
text-align: justify;
|
|
}
|
|
|
|
/* Font Weight */
|
|
.tasknotes-plugin .tn-font-thin {
|
|
font-weight: 100;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-font-light {
|
|
font-weight: 300;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-font-normal {
|
|
font-weight: var(--tn-font-weight-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-font-medium {
|
|
font-weight: var(--tn-font-weight-medium);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-font-semibold {
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-font-bold {
|
|
font-weight: var(--tn-font-weight-bold);
|
|
}
|
|
|
|
/* Font Size */
|
|
.tasknotes-plugin .tn-text-xs {
|
|
font-size: var(--tn-font-size-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-sm {
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-base {
|
|
font-size: var(--tn-font-size-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-lg {
|
|
font-size: var(--tn-font-size-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-xl {
|
|
font-size: var(--tn-font-size-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-2xl {
|
|
font-size: var(--tn-font-size-2xl);
|
|
}
|
|
|
|
/* Text Transform */
|
|
.tasknotes-plugin .tn-uppercase {
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-lowercase {
|
|
text-transform: lowercase;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-capitalize {
|
|
text-transform: capitalize;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-normal-case {
|
|
text-transform: none;
|
|
}
|
|
|
|
/* Text Decoration */
|
|
.tasknotes-plugin .tn-underline {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-line-through {
|
|
text-decoration: line-through;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-no-underline {
|
|
text-decoration: none;
|
|
}
|
|
|
|
/* Line Height */
|
|
.tasknotes-plugin .tn-leading-none {
|
|
line-height: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-leading-tight {
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-leading-snug {
|
|
line-height: 1.375;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-leading-normal {
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-leading-relaxed {
|
|
line-height: 1.625;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-leading-loose {
|
|
line-height: 2;
|
|
}
|
|
|
|
/* Text Colors */
|
|
.tasknotes-plugin .tn-text-normal {
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-muted {
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-faint {
|
|
color: var(--tn-text-faint);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-accent {
|
|
color: var(--tn-text-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-success {
|
|
color: var(--tn-color-success);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-warning {
|
|
color: var(--tn-color-warning);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-error {
|
|
color: var(--tn-color-error);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-text-info {
|
|
color: var(--tn-color-info);
|
|
}
|
|
|
|
/* ================================================
|
|
BACKGROUND UTILITIES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-bg-primary {
|
|
background-color: var(--tn-bg-primary);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-bg-secondary {
|
|
background-color: var(--tn-bg-secondary);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-bg-accent {
|
|
background-color: var(--tn-interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-bg-success {
|
|
background-color: var(--tn-color-success);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-bg-warning {
|
|
background-color: var(--tn-color-warning);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-bg-error {
|
|
background-color: var(--tn-color-error);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-bg-info {
|
|
background-color: var(--tn-color-info);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-bg-transparent {
|
|
background-color: transparent;
|
|
}
|
|
|
|
/* ================================================
|
|
BORDER UTILITIES
|
|
================================================ */
|
|
|
|
/* Border Width */
|
|
.tasknotes-plugin .tn-border-0 {
|
|
border-width: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border {
|
|
border-width: 1px;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-2 {
|
|
border-width: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-t {
|
|
border-top-width: 1px;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-r {
|
|
border-right-width: 1px;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-b {
|
|
border-bottom-width: 1px;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-l {
|
|
border-left-width: 1px;
|
|
}
|
|
|
|
/* Border Style */
|
|
.tasknotes-plugin .tn-border-solid {
|
|
border-style: solid;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-dashed {
|
|
border-style: dashed;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-dotted {
|
|
border-style: dotted;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-none {
|
|
border-style: none;
|
|
}
|
|
|
|
/* Border Color */
|
|
.tasknotes-plugin .tn-border-normal {
|
|
border-color: var(--tn-border-color);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-hover {
|
|
border-color: var(--tn-border-color-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-accent {
|
|
border-color: var(--tn-interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-success {
|
|
border-color: var(--tn-color-success);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-warning {
|
|
border-color: var(--tn-color-warning);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-error {
|
|
border-color: var(--tn-color-error);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-border-transparent {
|
|
border-color: transparent;
|
|
}
|
|
|
|
/* Border Radius */
|
|
.tasknotes-plugin .tn-rounded-none {
|
|
border-radius: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-rounded-xs {
|
|
border-radius: var(--tn-radius-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-rounded-sm {
|
|
border-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-rounded {
|
|
border-radius: var(--tn-radius-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-rounded-md {
|
|
border-radius: var(--tn-radius-md);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-rounded-lg {
|
|
border-radius: var(--tn-radius-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-rounded-xl {
|
|
border-radius: var(--tn-radius-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-rounded-full {
|
|
border-radius: var(--tn-radius-full);
|
|
}
|
|
|
|
/* Individual corner radius */
|
|
.tasknotes-plugin .tn-rounded-t-sm {
|
|
border-top-left-radius: var(--tn-radius-sm);
|
|
border-top-right-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-rounded-r-sm {
|
|
border-top-right-radius: var(--tn-radius-sm);
|
|
border-bottom-right-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-rounded-b-sm {
|
|
border-bottom-left-radius: var(--tn-radius-sm);
|
|
border-bottom-right-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-rounded-l-sm {
|
|
border-top-left-radius: var(--tn-radius-sm);
|
|
border-bottom-left-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
/* ================================================
|
|
SHADOW UTILITIES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-shadow-none {
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-shadow-light {
|
|
box-shadow: var(--tn-shadow-light);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-shadow {
|
|
box-shadow: var(--tn-shadow-medium);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-shadow-medium {
|
|
box-shadow: var(--tn-shadow-medium);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-shadow-strong {
|
|
box-shadow: var(--tn-shadow-strong);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-shadow-hover {
|
|
box-shadow: var(--tn-shadow-hover);
|
|
}
|
|
|
|
/* ================================================
|
|
OVERFLOW UTILITIES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-overflow-auto {
|
|
overflow: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-overflow-hidden {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-overflow-visible {
|
|
overflow: visible;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-overflow-scroll {
|
|
overflow: scroll;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-overflow-x-auto {
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-overflow-x-hidden {
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-overflow-x-scroll {
|
|
overflow-x: scroll;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-overflow-y-auto {
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-overflow-y-hidden {
|
|
overflow-y: hidden;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-overflow-y-scroll {
|
|
overflow-y: scroll;
|
|
}
|
|
|
|
/* ================================================
|
|
SIZE UTILITIES
|
|
================================================ */
|
|
|
|
/* Width */
|
|
.tasknotes-plugin .tn-w-auto {
|
|
width: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-full {
|
|
width: 100%;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-screen {
|
|
width: 100vw;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-min {
|
|
width: min-content;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-max {
|
|
width: max-content;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-fit {
|
|
width: fit-content;
|
|
}
|
|
|
|
/* Specific widths */
|
|
.tasknotes-plugin .tn-w-0 {
|
|
width: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-px {
|
|
width: 1px;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-1 {
|
|
width: 0.25rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-2 {
|
|
width: 0.5rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-4 {
|
|
width: 1rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-8 {
|
|
width: 2rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-12 {
|
|
width: 3rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-16 {
|
|
width: 4rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-20 {
|
|
width: 5rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-w-24 {
|
|
width: 6rem;
|
|
}
|
|
|
|
/* Height */
|
|
.tasknotes-plugin .tn-h-auto {
|
|
height: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-full {
|
|
height: 100%;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-screen {
|
|
height: 100vh;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-min {
|
|
height: min-content;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-max {
|
|
height: max-content;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-fit {
|
|
height: fit-content;
|
|
}
|
|
|
|
/* Specific heights */
|
|
.tasknotes-plugin .tn-h-0 {
|
|
height: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-px {
|
|
height: 1px;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-1 {
|
|
height: 0.25rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-2 {
|
|
height: 0.5rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-4 {
|
|
height: 1rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-8 {
|
|
height: 2rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-12 {
|
|
height: 3rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-16 {
|
|
height: 4rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-20 {
|
|
height: 5rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-h-24 {
|
|
height: 6rem;
|
|
}
|
|
|
|
/* Min/Max Width */
|
|
.tasknotes-plugin .tn-min-w-0 {
|
|
min-width: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-min-w-full {
|
|
min-width: 100%;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-max-w-xs {
|
|
max-width: 20rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-max-w-sm {
|
|
max-width: 24rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-max-w-md {
|
|
max-width: 28rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-max-w-lg {
|
|
max-width: 32rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-max-w-xl {
|
|
max-width: 36rem;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-max-w-full {
|
|
max-width: 100%;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-max-w-none {
|
|
max-width: none;
|
|
}
|
|
|
|
/* Min/Max Height */
|
|
.tasknotes-plugin .tn-min-h-0 {
|
|
min-height: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-min-h-full {
|
|
min-height: 100%;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-max-h-full {
|
|
max-height: 100%;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-max-h-screen {
|
|
max-height: 100vh;
|
|
}
|
|
|
|
/* ================================================
|
|
Z-INDEX UTILITIES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-z-0 {
|
|
z-index: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-z-10 {
|
|
z-index: 10;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-z-20 {
|
|
z-index: 20;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-z-30 {
|
|
z-index: 30;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-z-40 {
|
|
z-index: 40;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-z-50 {
|
|
z-index: 50;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-z-auto {
|
|
z-index: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-z-sticky {
|
|
z-index: var(--tn-z-sticky);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-z-dropdown {
|
|
z-index: var(--tn-z-dropdown);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-z-modal {
|
|
z-index: var(--tn-z-modal);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-z-tooltip {
|
|
z-index: var(--tn-z-tooltip);
|
|
}
|
|
|
|
/* ================================================
|
|
CURSOR UTILITIES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-cursor-auto {
|
|
cursor: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-cursor-default {
|
|
cursor: default;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-cursor-pointer {
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-cursor-wait {
|
|
cursor: wait;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-cursor-text {
|
|
cursor: text;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-cursor-move {
|
|
cursor: move;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-cursor-help {
|
|
cursor: help;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-cursor-not-allowed {
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-cursor-grab {
|
|
cursor: grab;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-cursor-grabbing {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
/* ================================================
|
|
USER SELECT UTILITIES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-select-none {
|
|
user-select: none;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-select-text {
|
|
user-select: text;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-select-all {
|
|
user-select: all;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-select-auto {
|
|
user-select: auto;
|
|
}
|
|
|
|
/* ================================================
|
|
POINTER EVENTS UTILITIES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-pointer-events-none {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-pointer-events-auto {
|
|
pointer-events: auto;
|
|
}
|
|
|
|
/* ================================================
|
|
TRANSITIONS UTILITIES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-transition-none {
|
|
transition: none;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-transition-fast {
|
|
transition: all var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-transition {
|
|
transition: all var(--tn-transition-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-transition-slow {
|
|
transition: all var(--tn-transition-slow);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-transition-colors {
|
|
transition: color var(--tn-transition-normal), background-color var(--tn-transition-normal), border-color var(--tn-transition-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-transition-opacity {
|
|
transition: opacity var(--tn-transition-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-transition-transform {
|
|
transition: transform var(--tn-transition-normal);
|
|
}
|
|
|
|
/* ================================================
|
|
TRANSFORM UTILITIES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-transform {
|
|
transform: var(--tw-transform);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-transform-none {
|
|
transform: none;
|
|
}
|
|
|
|
/* Scale */
|
|
.tasknotes-plugin .tn-scale-0 {
|
|
--tw-scale-x: 0;
|
|
--tw-scale-y: 0;
|
|
transform: scale(var(--tw-scale-x), var(--tw-scale-y));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-scale-50 {
|
|
--tw-scale-x: 0.5;
|
|
--tw-scale-y: 0.5;
|
|
transform: scale(var(--tw-scale-x), var(--tw-scale-y));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-scale-75 {
|
|
--tw-scale-x: 0.75;
|
|
--tw-scale-y: 0.75;
|
|
transform: scale(var(--tw-scale-x), var(--tw-scale-y));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-scale-90 {
|
|
--tw-scale-x: 0.9;
|
|
--tw-scale-y: 0.9;
|
|
transform: scale(var(--tw-scale-x), var(--tw-scale-y));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-scale-95 {
|
|
--tw-scale-x: 0.95;
|
|
--tw-scale-y: 0.95;
|
|
transform: scale(var(--tw-scale-x), var(--tw-scale-y));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-scale-100 {
|
|
--tw-scale-x: 1;
|
|
--tw-scale-y: 1;
|
|
transform: scale(var(--tw-scale-x), var(--tw-scale-y));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-scale-105 {
|
|
--tw-scale-x: 1.05;
|
|
--tw-scale-y: 1.05;
|
|
transform: scale(var(--tw-scale-x), var(--tw-scale-y));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-scale-110 {
|
|
--tw-scale-x: 1.1;
|
|
--tw-scale-y: 1.1;
|
|
transform: scale(var(--tw-scale-x), var(--tw-scale-y));
|
|
}
|
|
|
|
.tasknotes-plugin .tn-scale-125 {
|
|
--tw-scale-x: 1.25;
|
|
--tw-scale-y: 1.25;
|
|
transform: scale(var(--tw-scale-x), var(--tw-scale-y));
|
|
}
|
|
|
|
/* ================================================
|
|
OPACITY UTILITIES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-opacity-0 {
|
|
opacity: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-opacity-25 {
|
|
opacity: 0.25;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-opacity-50 {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-opacity-75 {
|
|
opacity: 0.75;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-opacity-100 {
|
|
opacity: 1;
|
|
}
|
|
|
|
/* ================================================
|
|
STATE UTILITIES
|
|
================================================ */
|
|
|
|
/* Loading State */
|
|
.tasknotes-plugin .tn-loading {
|
|
opacity: 0.7;
|
|
pointer-events: none;
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-loading::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 16px;
|
|
height: 16px;
|
|
margin: -8px 0 0 -8px;
|
|
border: 2px solid currentColor;
|
|
border-top-color: transparent;
|
|
border-radius: 50%;
|
|
animation: tn-spin 0.8s linear infinite;
|
|
}
|
|
|
|
/* Disabled State */
|
|
.tasknotes-plugin .tn-disabled {
|
|
opacity: 0.5;
|
|
cursor: not-allowed;
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* Interactive States */
|
|
.tasknotes-plugin .tn-hover-opacity:hover {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-hover-scale:hover {
|
|
transform: scale(1.05);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-hover-shadow:hover {
|
|
box-shadow: var(--tn-shadow-hover);
|
|
}
|
|
|
|
/* Focus States */
|
|
.tasknotes-plugin .tn-focus-ring:focus {
|
|
outline: 2px solid var(--tn-interactive-accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-focus-ring:focus-visible {
|
|
outline: 2px solid var(--tn-interactive-accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* ================================================
|
|
ANIMATION UTILITIES
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .tn-animate-spin {
|
|
animation: tn-spin 1s linear infinite;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-animate-pulse {
|
|
animation: tn-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-animate-bounce {
|
|
animation: tn-bounce 1s infinite;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-animate-fade-in {
|
|
animation: tn-fade-in 0.3s ease-out;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-animate-slide-up {
|
|
animation: tn-slide-up 0.3s ease-out;
|
|
}
|
|
|
|
/* Keyframes */
|
|
@keyframes tn-spin {
|
|
0% { transform: rotate(0deg); }
|
|
100% { transform: rotate(360deg); }
|
|
}
|
|
|
|
@keyframes tn-pulse {
|
|
0%, 100% { opacity: 1; }
|
|
50% { opacity: 0.5; }
|
|
}
|
|
|
|
@keyframes tn-bounce {
|
|
0%, 100% {
|
|
transform: translateY(-25%);
|
|
animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
|
|
}
|
|
50% {
|
|
transform: translateY(0);
|
|
animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
|
|
}
|
|
}
|
|
|
|
@keyframes tn-fade-in {
|
|
0% { opacity: 0; }
|
|
100% { opacity: 1; }
|
|
}
|
|
|
|
@keyframes tn-slide-up {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(10px);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
/* ================================================
|
|
ACCESSIBILITY UTILITIES
|
|
================================================ */
|
|
|
|
/* Screen Reader Only */
|
|
.tasknotes-plugin .tn-sr-only {
|
|
position: absolute;
|
|
width: 1px;
|
|
height: 1px;
|
|
padding: 0;
|
|
margin: -1px;
|
|
overflow: hidden;
|
|
clip: rect(0, 0, 0, 0);
|
|
white-space: nowrap;
|
|
border: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-not-sr-only {
|
|
position: static;
|
|
width: auto;
|
|
height: auto;
|
|
padding: 0;
|
|
margin: 0;
|
|
overflow: visible;
|
|
clip: auto;
|
|
white-space: normal;
|
|
}
|
|
|
|
/* ================================================
|
|
RESPONSIVE UTILITIES (MOBILE-FIRST)
|
|
================================================ */
|
|
|
|
/* Small screens (tablets, 768px and up) */
|
|
@media (min-width: 768px) {
|
|
.tasknotes-plugin .tn-sm-block {
|
|
display: block;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-sm-hidden {
|
|
display: none;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-sm-flex {
|
|
display: flex;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-sm-grid {
|
|
display: grid;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-sm-flex-row {
|
|
flex-direction: row;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-sm-flex-col {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-sm-text-left {
|
|
text-align: left;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-sm-text-center {
|
|
text-align: center;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-sm-text-right {
|
|
text-align: right;
|
|
}
|
|
}
|
|
|
|
/* Medium screens (desktops, 992px and up) */
|
|
@media (min-width: 992px) {
|
|
.tasknotes-plugin .tn-md-block {
|
|
display: block;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-md-hidden {
|
|
display: none;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-md-flex {
|
|
display: flex;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-md-grid {
|
|
display: grid;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-md-flex-row {
|
|
flex-direction: row;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-md-flex-col {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-md-text-left {
|
|
text-align: left;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-md-text-center {
|
|
text-align: center;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-md-text-right {
|
|
text-align: right;
|
|
}
|
|
}
|
|
|
|
/* Large screens (large desktops, 1200px and up) */
|
|
@media (min-width: 1200px) {
|
|
.tasknotes-plugin .tn-lg-block {
|
|
display: block;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-lg-hidden {
|
|
display: none;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-lg-flex {
|
|
display: flex;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-lg-grid {
|
|
display: grid;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-lg-flex-row {
|
|
flex-direction: row;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-lg-flex-col {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-lg-text-left {
|
|
text-align: left;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-lg-text-center {
|
|
text-align: center;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-lg-text-right {
|
|
text-align: right;
|
|
}
|
|
}
|
|
|
|
/* ================================================
|
|
DARK MODE SUPPORT
|
|
================================================ */
|
|
|
|
/* Dark mode specific utilities */
|
|
.theme-dark .tasknotes-plugin .tn-dark-bg-primary {
|
|
background-color: var(--tn-bg-primary);
|
|
}
|
|
|
|
.theme-dark .tasknotes-plugin .tn-dark-bg-secondary {
|
|
background-color: var(--tn-bg-secondary);
|
|
}
|
|
|
|
.theme-dark .tasknotes-plugin .tn-dark-text-normal {
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.theme-dark .tasknotes-plugin .tn-dark-text-muted {
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.theme-dark .tasknotes-plugin .tn-dark-border-normal {
|
|
border-color: var(--tn-border-color);
|
|
}
|
|
|
|
/* ================================================
|
|
REDUCED MOTION SUPPORT
|
|
================================================ */
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.tasknotes-plugin .tn-transition-fast,
|
|
.tasknotes-plugin .tn-transition,
|
|
.tasknotes-plugin .tn-transition-slow,
|
|
.tasknotes-plugin .tn-transition-colors,
|
|
.tasknotes-plugin .tn-transition-opacity,
|
|
.tasknotes-plugin .tn-transition-transform {
|
|
transition: none !important;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-animate-spin,
|
|
.tasknotes-plugin .tn-animate-pulse,
|
|
.tasknotes-plugin .tn-animate-bounce,
|
|
.tasknotes-plugin .tn-animate-fade-in,
|
|
.tasknotes-plugin .tn-animate-slide-up {
|
|
animation: none !important;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-hover-scale:hover {
|
|
transform: none !important;
|
|
}
|
|
}
|
|
|
|
/* ================================================
|
|
HIGH CONTRAST SUPPORT
|
|
================================================ */
|
|
|
|
@media (prefers-contrast: high) {
|
|
.tasknotes-plugin .tn-border {
|
|
border-width: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-focus-ring:focus,
|
|
.tasknotes-plugin .tn-focus-ring:focus-visible {
|
|
outline-width: 3px;
|
|
}
|
|
}
|
|
|
|
/* ================================================
|
|
BUTTON UTILITIES - SCOPED FOR SETTINGS ONLY
|
|
================================================ */
|
|
|
|
/* Base Button - Scoped to settings modal */
|
|
.mod-settings .tasknotes-plugin .tn-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--tn-spacing-sm);
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-md);
|
|
border: none;
|
|
border-radius: var(--tn-radius-md);
|
|
background: transparent;
|
|
color: var(--tn-text-normal);
|
|
font-family: inherit;
|
|
font-size: var(--tn-font-size-md);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
line-height: 1;
|
|
cursor: var(--cursor);
|
|
user-select: none;
|
|
text-decoration: none;
|
|
outline: none;
|
|
box-shadow: none;
|
|
transition: all var(--tn-transition-fast);
|
|
min-height: var(--tn-button-height-md);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn:hover {
|
|
background: var(--tn-interactive-hover);
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn:active {
|
|
opacity: 0.8;
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn:focus-visible {
|
|
outline: 2px solid var(--tn-interactive-accent);
|
|
outline-offset: 2px;
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn:disabled {
|
|
opacity: var(--cs-state-disabled);
|
|
cursor: not-allowed;
|
|
pointer-events: none;
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* Button Sizes */
|
|
.mod-settings .tasknotes-plugin .tn-btn--sm {
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
font-size: var(--tn-font-size-sm);
|
|
min-height: var(--tn-button-height-sm);
|
|
border-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn--lg {
|
|
padding: var(--tn-spacing-md) var(--tn-spacing-lg);
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
min-height: var(--tn-button-height-lg);
|
|
border-radius: var(--tn-radius-lg);
|
|
}
|
|
|
|
/* Button Variants */
|
|
.mod-settings .tasknotes-plugin .tn-btn--primary {
|
|
background: var(--tn-interactive-accent);
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn--primary:hover {
|
|
background: var(--tn-interactive-accent-hover);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn--secondary {
|
|
background: var(--tn-interactive-normal);
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn--secondary:hover {
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn--ghost {
|
|
background: transparent;
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn--ghost:hover {
|
|
background: var(--tn-interactive-hover);
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn--danger {
|
|
background: transparent;
|
|
color: var(--tn-color-error);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn--danger:hover {
|
|
background: var(--tn-color-error);
|
|
color: var(--tn-bg-primary);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn--success {
|
|
background: transparent;
|
|
color: var(--tn-color-success);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn--success:hover {
|
|
background: var(--tn-color-success);
|
|
color: var(--tn-bg-primary);
|
|
}
|
|
|
|
/* Icon-only buttons */
|
|
.mod-settings .tasknotes-plugin .tn-btn--icon {
|
|
width: var(--tn-button-height-md);
|
|
height: var(--tn-button-height-md);
|
|
padding: 0;
|
|
border-radius: var(--tn-radius-md);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn--icon.tn-btn--sm {
|
|
width: var(--tn-button-height-sm);
|
|
height: var(--tn-button-height-sm);
|
|
border-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn--icon.tn-btn--lg {
|
|
width: var(--tn-button-height-lg);
|
|
height: var(--tn-button-height-lg);
|
|
border-radius: var(--tn-radius-lg);
|
|
}
|
|
|
|
/* Pill buttons */
|
|
.mod-settings .tasknotes-plugin .tn-btn--pill {
|
|
border-radius: var(--tn-radius-full);
|
|
}
|
|
|
|
/* Full width buttons */
|
|
.mod-settings .tasknotes-plugin .tn-btn--full {
|
|
width: 100%;
|
|
}
|
|
|
|
/* Button Groups */
|
|
.mod-settings .tasknotes-plugin .tn-btn-group {
|
|
display: flex;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn-group .tn-btn {
|
|
flex: 1;
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn-group--attached {
|
|
gap: 0;
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn-group--attached .tn-btn {
|
|
border-radius: 0;
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn-group--attached .tn-btn:first-child {
|
|
border-radius: var(--tn-radius-md) 0 0 var(--tn-radius-md);
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn-group--attached .tn-btn:last-child {
|
|
border-radius: 0 var(--tn-radius-md) var(--tn-radius-md) 0;
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn-group--attached .tn-btn:only-child {
|
|
border-radius: var(--tn-radius-md);
|
|
}
|
|
|
|
/* Loading state */
|
|
.mod-settings .tasknotes-plugin .tn-btn--loading {
|
|
position: relative;
|
|
color: transparent;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.mod-settings .tasknotes-plugin .tn-btn--loading::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 16px;
|
|
height: 16px;
|
|
margin: -8px 0 0 -8px;
|
|
border: 2px solid currentColor;
|
|
border-top-color: transparent;
|
|
border-radius: 50%;
|
|
animation: tn-spin 0.8s linear infinite;
|
|
}
|
|
|
|
|
|
/* ================================================
|
|
CODEMIRROR WIDGET UTILITIES
|
|
================================================ */
|
|
|
|
/**
|
|
* Widget Cursor Fix
|
|
*
|
|
* Minimal fix for CodeMirror widget artifacts.
|
|
* Only prevents editing inside widgets and hides visual artifacts.
|
|
* Does NOT hide the editor cursor to preserve normal editing experience.
|
|
*
|
|
* Fixes:
|
|
* - Prevents text selection inside widgets
|
|
* - Prevents contenteditable behavior
|
|
* - Hides widget buffer image artifacts
|
|
*
|
|
* Trade-offs:
|
|
* - Cursor may appear next to widgets (acceptable for normal editing UX)
|
|
* - Widget buffer artifacts are hidden
|
|
*
|
|
* Usage: Add .cm-widget-cursor-fix to your widget container element
|
|
*/
|
|
.cm-widget-cursor-fix {
|
|
/* Prevent text selection and editing inside widget */
|
|
user-select: none;
|
|
-webkit-user-select: none;
|
|
-moz-user-select: none;
|
|
-ms-user-select: none;
|
|
|
|
/* Prevent contenteditable behavior */
|
|
-webkit-user-modify: read-only;
|
|
-moz-user-modify: read-only;
|
|
|
|
/* Ensure no text cursor appears inside widget elements */
|
|
caret-color: transparent;
|
|
}
|
|
|
|
/* Hide CodeMirror widgetBuffer image artifacts only */
|
|
.cm-content > .cm-line:has(.cm-widget-cursor-fix) img.cm-widgetBuffer {
|
|
display: none !important;
|
|
}
|
|
|
|
|
|
/* ===== BASE.CSS ===== */
|
|
/* Reduced motion support - scope to TaskNotes components only */
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.tasknotes-container *,
|
|
.tasknotes-card *,
|
|
.tasknotes-button * {
|
|
animation-duration: 0.01ms !important;
|
|
animation-iteration-count: 1 !important;
|
|
transition-duration: 0.01ms !important;
|
|
}
|
|
}
|
|
|
|
/* Button click feedback - scope to TaskNotes buttons only */
|
|
.tasknotes-container button:active:not(:disabled),
|
|
.tasknotes-button:active:not(:disabled) {
|
|
transform: scale(0.98);
|
|
}
|
|
|
|
/* Performance optimization animations */
|
|
@keyframes tn-task-flash {
|
|
0% {
|
|
background-color: var(--interactive-accent-hover);
|
|
transform: scale(1.02);
|
|
}
|
|
100% {
|
|
background-color: transparent;
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
@keyframes tn-task-pulse {
|
|
0%, 100% {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
50% {
|
|
opacity: 0.8;
|
|
transform: scale(1.01);
|
|
}
|
|
}
|
|
|
|
@keyframes tn-task-fade-in {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(-4px);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes tn-tracking-pulse {
|
|
0%, 100% {
|
|
opacity: 0.3;
|
|
transform: scale(1);
|
|
}
|
|
50% {
|
|
opacity: 0.6;
|
|
transform: scale(1.01);
|
|
}
|
|
}
|
|
|
|
/* Task update animations */
|
|
.tasknotes-plugin .task-flash {
|
|
animation: tn-task-flash 1500ms ease-out;
|
|
}
|
|
|
|
.tasknotes-plugin .task-pulse {
|
|
animation: tn-task-pulse 1000ms ease-in-out;
|
|
}
|
|
|
|
.tasknotes-plugin .task-fade-in {
|
|
animation: tn-task-fade-in 300ms ease-out;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ===== TASK-CARD-BEM.CSS ===== */
|
|
/* =================================================================
|
|
TASKCARD COMPONENT - BEM NAMING CONVENTION & PROPER SCOPING
|
|
================================================================= */
|
|
|
|
/* All TaskCard styles are scoped under .tasknotes-plugin for proper isolation */
|
|
|
|
.tasknotes-plugin .task-card {
|
|
/* Layout & Structure */
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0;
|
|
position: relative;
|
|
|
|
/* Spacing & Sizing - Refined spacing for better visual breathing room */
|
|
padding: var(--tn-spacing-md) var(--tn-spacing-lg);
|
|
margin-bottom: 1px;
|
|
|
|
/* Visual Styling - Subtle depth with minimal shadow */
|
|
background-color: transparent;
|
|
border: none;
|
|
border-radius: var(--tn-radius-xs);
|
|
box-shadow: none;
|
|
|
|
/* Interactions & Accessibility - Smooth transitions */
|
|
transition: all var(--tn-transition-fast);
|
|
outline: none;
|
|
role: listitem;
|
|
tabindex: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
/* Prevent parent hover when hovering over subtasks or blocking tasks */
|
|
.tasknotes-plugin .task-card:has(.task-card__subtasks:hover, .task-card__blocking:hover) {
|
|
background-color: transparent;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card:focus {
|
|
background-color: var(--background-modifier-hover);
|
|
outline: 2px solid var(--background-modifier-border-focus);
|
|
outline-offset: -2px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card:focus:not(:focus-visible) {
|
|
outline: none;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
/* Remove border radius for cleaner list appearance */
|
|
.tasknotes-plugin .task-card:first-child,
|
|
.tasknotes-plugin .task-card:last-child,
|
|
.tasknotes-plugin .task-card:first-child:last-child {
|
|
border-radius: 0;
|
|
}
|
|
|
|
/* =================================================================
|
|
TASKCARD ELEMENTS (BEM __element)
|
|
================================================================= */
|
|
|
|
.tasknotes-plugin .task-card__main-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
width: 100%;
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__content {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__title {
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: 400;
|
|
line-height: 1.4;
|
|
color: var(--tn-text-normal);
|
|
margin: 0;
|
|
word-wrap: break-word;
|
|
word-break: break-word;
|
|
white-space: normal;
|
|
transition: color var(--tn-transition-fast);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__title-text {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__metadata {
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-muted);
|
|
line-height: 1.3;
|
|
margin: 0;
|
|
font-weight: 400;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
margin-top: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__metadata-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__metadata-pill {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
padding: 3px 8px;
|
|
border-radius: var(--tn-radius-md);
|
|
font-size: var(--tn-font-size-sm);
|
|
line-height: 1.2;
|
|
font-weight: 500;
|
|
background: var(--background-secondary);
|
|
color: var(--text-muted);
|
|
border: 1px solid var(--background-modifier-border);
|
|
transition: background var(--tn-transition-fast), border-color var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__metadata-pill:hover {
|
|
background: var(--background-modifier-hover);
|
|
border-color: var(--background-modifier-border-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__metadata-pill--blocked {
|
|
background: color-mix(in srgb, var(--tn-color-error) 75%, var(--tn-bg-primary));
|
|
color: var(--tn-bg-primary);
|
|
border-color: color-mix(in srgb, var(--tn-color-error) 85%, var(--tn-bg-primary));
|
|
padding-inline: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__metadata-pill--blocked:hover {
|
|
background: var(--tn-color-error);
|
|
color: var(--tn-bg-primary);
|
|
border-color: var(--tn-color-error);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__metadata-pill--blocking {
|
|
background: transparent;
|
|
color: var(--tn-color-error);
|
|
border-color: color-mix(in srgb, var(--tn-color-error) 70%, transparent);
|
|
}
|
|
|
|
|
|
.tasknotes-plugin .task-card__tag {
|
|
background: var(--tn-bg-secondary);
|
|
color: var(--tn-text-muted);
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
border-radius: var(--tn-radius-xs);
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: 400;
|
|
border: none;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__due-date {
|
|
color: var(--tn-color-success);
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: 400;
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-xs);
|
|
border-radius: var(--tn-radius-xs);
|
|
background: color-mix(in srgb, var(--tn-color-success) 15%, var(--tn-bg-primary));
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__due-date--overdue {
|
|
color: var(--tn-color-error);
|
|
background: color-mix(in srgb, var(--tn-color-error) 15%, var(--tn-bg-primary));
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__due-date--today {
|
|
color: var(--tn-color-warning);
|
|
background: color-mix(in srgb, var(--tn-color-warning) 15%, var(--tn-bg-primary));
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__priority-badge {
|
|
display: none; /* Hide priority badges in favor of dots */
|
|
}
|
|
|
|
/* Simplified info display - no progressive disclosure for Todoist style */
|
|
|
|
/* Drag handle indicator */
|
|
.tasknotes-plugin .task-card__drag-handle {
|
|
position: absolute;
|
|
left: 0;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
width: 4px;
|
|
height: 20px;
|
|
background: repeating-linear-gradient(
|
|
to bottom,
|
|
var(--tn-text-faint) 0px,
|
|
var(--tn-text-faint) 2px,
|
|
transparent 2px,
|
|
transparent 4px
|
|
);
|
|
opacity: 0;
|
|
transition: opacity var(--tn-transition-fast);
|
|
border-radius: var(--tn-radius-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card[draggable="true"]:hover .task-card__drag-handle {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card[draggable="true"]:active .task-card__drag-handle {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* Container queries for adaptive layouts */
|
|
@container (max-width: 300px) {
|
|
.tasknotes-plugin .task-card {
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__quick-actions {
|
|
gap: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__quick-action {
|
|
width: 20px;
|
|
height: 20px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__metadata {
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__status-dot {
|
|
display: inline-block;
|
|
width: 18px;
|
|
height: 18px;
|
|
border-radius: 50%;
|
|
flex-shrink: 0;
|
|
border: 2px solid color-mix(in srgb, var(--tn-border-color) 80%, transparent);
|
|
background-color: transparent;
|
|
transition: all var(--tn-transition-fast);
|
|
position: relative;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__status-dot:hover {
|
|
background-color: color-mix(in srgb, var(--next-status-color, var(--tn-interactive-accent)) 30%, transparent);
|
|
border-color: var(--next-status-color, var(--tn-interactive-accent));
|
|
}
|
|
|
|
/* Completed status - filled circle with status color */
|
|
.tasknotes-plugin .task-card--completed > .task-card__main-row .task-card__status-dot {
|
|
background-color: var(--current-status-color, var(--tn-color-success));
|
|
border-color: var(--current-status-color, var(--tn-color-success));
|
|
box-shadow: none;
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--completed > .task-card__main-row .task-card__status-dot:hover {
|
|
background-color: color-mix(in srgb, var(--next-status-color, var(--tn-interactive-accent)) 50%, var(--current-status-color, var(--tn-color-success)));
|
|
border-color: var(--next-status-color, var(--tn-interactive-accent));
|
|
}
|
|
|
|
/* Completion animation - subtle pulse when task is completed */
|
|
@keyframes status-complete {
|
|
0% {
|
|
transform: scale(1);
|
|
box-shadow: 0 0 0 0 color-mix(in srgb, var(--current-status-color, var(--tn-color-success)) 40%, transparent);
|
|
}
|
|
50% {
|
|
transform: scale(1.2);
|
|
box-shadow: 0 0 0 6px color-mix(in srgb, var(--current-status-color, var(--tn-color-success)) 0%, transparent);
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
box-shadow: none;
|
|
}
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--completed.task-card--just-completed > .task-card__main-row .task-card__status-dot {
|
|
animation: status-complete 0.6s cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
/* Status dot with icon mode - uses Lucide icons from theme */
|
|
.tasknotes-plugin .task-card__status-dot--icon {
|
|
border: none;
|
|
background-color: transparent;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__status-dot--icon svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
color: var(--current-status-color, var(--tn-text-muted));
|
|
stroke-width: 2;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__status-dot--icon:hover svg {
|
|
color: var(--next-status-color, var(--tn-interactive-accent));
|
|
}
|
|
|
|
/* Completed state for icon mode */
|
|
.tasknotes-plugin .task-card--completed > .task-card__main-row .task-card__status-dot--icon {
|
|
background-color: transparent;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--completed > .task-card__main-row .task-card__status-dot--icon svg {
|
|
color: var(--current-status-color, var(--tn-color-success));
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--completed > .task-card__main-row .task-card__status-dot--icon:hover svg {
|
|
color: var(--next-status-color, var(--tn-interactive-accent));
|
|
}
|
|
|
|
/* =================================================================
|
|
BADGE AREA - Groups secondary indicators (recurring, reminder, project)
|
|
================================================================= */
|
|
|
|
.tasknotes-plugin .task-card__badges {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* Hide badges container when empty */
|
|
.tasknotes-plugin .task-card__badges:empty {
|
|
display: none;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__recurring-indicator {
|
|
width: 14px;
|
|
height: 14px;
|
|
color: var(--tn-text-muted);
|
|
opacity: 0.7;
|
|
display: none; /* Hidden by default, shown via modifier */
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: all var(--tn-transition-fast);
|
|
border-radius: var(--tn-radius-sm);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__recurring-indicator:hover {
|
|
opacity: 1;
|
|
color: var(--interactive-accent);
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__recurring-indicator svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
/* Recurrence instance statistics pills */
|
|
.tasknotes-plugin .task-card__metadata-pill--completed-instances {
|
|
color: var(--text-success);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__metadata-pill--skipped-instances {
|
|
color: var(--text-muted);
|
|
opacity: 0.7;
|
|
}
|
|
|
|
/* Reminder indicator */
|
|
.tasknotes-plugin .task-card__reminder-indicator {
|
|
width: 14px;
|
|
height: 14px;
|
|
color: var(--tn-text-muted);
|
|
opacity: 0.7;
|
|
transition: all var(--tn-transition-fast);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: var(--tn-radius-sm);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__reminder-indicator:hover {
|
|
opacity: 1;
|
|
color: var(--interactive-accent);
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__reminder-indicator svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
/* Project indicator */
|
|
.tasknotes-plugin .task-card__project-indicator {
|
|
width: 14px;
|
|
height: 14px;
|
|
color: var(--tn-text-muted);
|
|
opacity: 0.7;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: var(--tn-radius-sm);
|
|
transition: all var(--tn-transition-fast);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__project-indicator:hover {
|
|
opacity: 1;
|
|
color: var(--interactive-accent);
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__project-indicator svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
/* Chevron for expandable subtasks */
|
|
.tasknotes-plugin .task-card__chevron {
|
|
width: 14px;
|
|
height: 14px;
|
|
color: var(--tn-text-muted);
|
|
opacity: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: var(--tn-radius-sm);
|
|
transition: all var(--tn-transition-fast);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__chevron:hover {
|
|
opacity: 1;
|
|
color: var(--interactive-accent);
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
/* In left mode, chevrons are always visible (like group chevrons) */
|
|
.tasknotes-plugin .task-card.task-card--chevron-left .task-card__chevron {
|
|
opacity: 1;
|
|
position: absolute;
|
|
left: calc(-1 * var(--tn-spacing-lg) - 14px);
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card:hover .task-card__chevron {
|
|
opacity: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__chevron svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
transition: transform var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__chevron--expanded svg {
|
|
transform: rotate(90deg);
|
|
}
|
|
|
|
/* Blocking toggle */
|
|
.tasknotes-plugin .task-card__blocking-toggle {
|
|
width: 14px;
|
|
height: 14px;
|
|
color: var(--tn-text-muted);
|
|
opacity: 0.8;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: color var(--tn-transition-fast), background var(--tn-transition-fast), opacity var(--tn-transition-fast);
|
|
border-radius: var(--tn-radius-sm);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__blocking-toggle:hover {
|
|
opacity: 1;
|
|
color: var(--interactive-accent);
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__blocking-toggle svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__blocking-toggle--expanded {
|
|
color: var(--interactive-accent);
|
|
opacity: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__blocking-toggle.is-hidden {
|
|
display: none;
|
|
}
|
|
|
|
/* Left-position variant for subtask chevron */
|
|
.tasknotes-plugin .task-card.task-card--chevron-left {
|
|
/* Reserve gutter for chevron plus spacing */
|
|
padding-left: calc(var(--tn-spacing-lg) + 20px);
|
|
}
|
|
|
|
/* Ensure nested cards in left mode also reserve chevron gutter */
|
|
.tasknotes-plugin .task-card__subtasks .task-card.task-card--chevron-left {
|
|
padding-left: calc(var(--tn-spacing-md) + 20px);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__subtasks {
|
|
margin-left: 24px;
|
|
margin-top: 6px;
|
|
border-left: 2px solid color-mix(in srgb, var(--tn-border-color) 40%, transparent);
|
|
padding-left: 14px;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__subtasks::before {
|
|
content: '';
|
|
position: absolute;
|
|
left: -2px;
|
|
top: 0;
|
|
width: 2px;
|
|
height: 100%;
|
|
background: linear-gradient(
|
|
to bottom,
|
|
color-mix(in srgb, var(--tn-interactive-accent) 30%, transparent),
|
|
transparent
|
|
);
|
|
opacity: 0;
|
|
transition: opacity var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card:hover .task-card__subtasks::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__subtasks .task-card {
|
|
margin-bottom: 3px;
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__subtasks .task-card:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--subtask {
|
|
background: color-mix(in srgb, var(--tn-bg-secondary) 25%, transparent);
|
|
border-radius: var(--tn-radius-sm);
|
|
backdrop-filter: blur(2px);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__blocking {
|
|
margin-left: 24px;
|
|
margin-top: 6px;
|
|
border-left: 2px dashed color-mix(in srgb, var(--tn-color-error) 30%, transparent);
|
|
padding-left: 14px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__blocking::before {
|
|
content: '';
|
|
position: absolute;
|
|
left: -2px;
|
|
top: 0;
|
|
width: 2px;
|
|
height: 100%;
|
|
background: linear-gradient(
|
|
to bottom,
|
|
color-mix(in srgb, var(--tn-color-error) 30%, transparent),
|
|
transparent
|
|
);
|
|
opacity: 0;
|
|
transition: opacity var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card:hover .task-card__blocking::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--dependency {
|
|
background: color-mix(in srgb, var(--tn-color-error) 4%, transparent);
|
|
border-radius: var(--tn-radius-sm);
|
|
border-left: 2px solid color-mix(in srgb, var(--tn-color-error) 20%, transparent);
|
|
padding-left: calc(var(--tn-spacing-md) - 2px);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__blocking-loading,
|
|
.tasknotes-plugin .task-card__blocking-empty {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
font-style: italic;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--subtask:hover {
|
|
background: color-mix(in srgb, var(--tn-interactive-hover) 60%, var(--tn-bg-secondary));
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__subtasks-loading {
|
|
margin-left: 20px;
|
|
margin-top: 4px;
|
|
padding: var(--tn-spacing-sm);
|
|
color: var(--tn-text-muted);
|
|
font-size: var(--tn-font-size-sm);
|
|
font-style: italic;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__context-menu {
|
|
width: 14px;
|
|
height: 14px;
|
|
color: var(--tn-text-faint);
|
|
opacity: 0;
|
|
transition: all var(--tn-transition-fast);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: var(--tn-radius-sm);
|
|
flex-shrink: 0;
|
|
margin-left: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__context-menu:hover {
|
|
color: var(--tn-text-normal);
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card:hover .task-card__context-menu {
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__context-menu:hover {
|
|
opacity: 1 !important;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__context-menu svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
/* Quick actions removed for Todoist-style simplicity */
|
|
|
|
/* =====================================================================
|
|
HOVER CONTEXT MENU INTERACTIONS
|
|
===================================================================== */
|
|
|
|
|
|
/* Enhanced priority dot hover for context menu */
|
|
.tasknotes-plugin .task-card__priority-dot {
|
|
transition: all var(--tn-transition-fast);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__priority-dot:hover {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* Hoverable date text elements */
|
|
.tasknotes-plugin .task-card__metadata-date {
|
|
transition: all var(--tn-transition-fast);
|
|
border-radius: var(--tn-radius-sm);
|
|
padding: 3px 6px;
|
|
margin: -3px -6px;
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__metadata-date:hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__metadata-date--due:hover {
|
|
background: color-mix(in srgb, var(--tn-color-error) 12%, transparent);
|
|
color: var(--tn-color-error);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__metadata-date--scheduled:hover {
|
|
background: color-mix(in srgb, var(--tn-color-info) 12%, transparent);
|
|
color: var(--tn-color-info);
|
|
}
|
|
|
|
/* Overdue due dates - use the hover background color for text */
|
|
.tasknotes-plugin .task-card__metadata-date--overdue {
|
|
color: var(--tn-color-error);
|
|
}
|
|
|
|
/* Past scheduled dates - use the hover background color for text */
|
|
.tasknotes-plugin .task-card__metadata-date--past {
|
|
color: var(--tn-color-info);
|
|
}
|
|
|
|
/* Project links */
|
|
.tasknotes-plugin .task-card__project-link {
|
|
color: var(--interactive-accent);
|
|
text-decoration: none;
|
|
transition: all var(--tn-transition-fast);
|
|
border-radius: var(--tn-radius-sm);
|
|
padding: 2px 4px;
|
|
margin: -2px -4px;
|
|
display: inline-block;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__project-link:hover,
|
|
.tasknotes-plugin .task-card__project-link:focus {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--interactive-accent-hover);
|
|
outline: none;
|
|
box-shadow: 0 2px 4px color-mix(in srgb, var(--tn-shadow-color, black) 8%, transparent);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__project-link:focus {
|
|
box-shadow: 0 0 0 2px color-mix(in srgb, var(--interactive-accent) 30%, transparent),
|
|
0 2px 4px color-mix(in srgb, var(--tn-shadow-color, black) 8%, transparent);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__project-link.internal-link {
|
|
/* Ensure consistent styling with Obsidian's internal links */
|
|
color: var(--link-color);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__project-link.internal-link:hover,
|
|
.tasknotes-plugin .task-card__project-link.internal-link:focus {
|
|
color: var(--link-color-hover);
|
|
}
|
|
|
|
|
|
/* =================================================================
|
|
TASKCARD MODIFIERS (BEM --modifier)
|
|
================================================================= */
|
|
|
|
/* Completion State - Use theme colors */
|
|
.tasknotes-plugin .task-card--completed > .task-card__main-row {
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--completed > .task-card__main-row .task-card__title {
|
|
text-decoration: line-through;
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
/* Skipped State - Muted appearance for skipped recurring instances */
|
|
.tasknotes-plugin .task-card--skipped {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--skipped > .task-card__main-row .task-card__title {
|
|
text-decoration: line-through;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--skipped > .task-card__main-row .task-card__status-dot {
|
|
background-color: rgba(128, 128, 128, 0.4);
|
|
border-color: var(--text-faint);
|
|
border-style: dashed;
|
|
}
|
|
|
|
/* Archived State */
|
|
.tasknotes-plugin .task-card--archived {
|
|
opacity: 0.5;
|
|
background-color: transparent;
|
|
}
|
|
|
|
/* Active Time Tracking */
|
|
.tasknotes-plugin .task-card--actively-tracked {
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--actively-tracked::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: -2px;
|
|
left: -2px;
|
|
right: -2px;
|
|
bottom: -2px;
|
|
border: 2px solid var(--tn-color-info);
|
|
border-radius: var(--tn-radius-xs);
|
|
opacity: 0.6;
|
|
animation: pulse-tracking 2s infinite;
|
|
}
|
|
|
|
@keyframes pulse-tracking {
|
|
0%, 100% { opacity: 0.6; }
|
|
50% { opacity: 0.3; }
|
|
}
|
|
|
|
/* Recurring Task */
|
|
.tasknotes-plugin .task-card--recurring .task-card__recurring-indicator {
|
|
display: flex;
|
|
}
|
|
|
|
/* Skipped recurring instance styling */
|
|
.tasknotes-plugin .recurring-skipped,
|
|
.tasknotes-plugin .task-card--recurring-skipped {
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-skipped .task-card__title,
|
|
.tasknotes-plugin .task-card--recurring-skipped .task-card__title {
|
|
text-decoration: line-through;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* Priority indicators - Use user's priority settings */
|
|
.tasknotes-plugin .task-card__priority-dot {
|
|
display: inline-block;
|
|
width: 10px;
|
|
height: 10px;
|
|
border-radius: 50%;
|
|
flex-shrink: 0;
|
|
background-color: var(--priority-color, transparent);
|
|
margin: 0 var(--tn-spacing-xs);
|
|
}
|
|
|
|
/* Dynamic priority colors using CSS variables set by PriorityManager */
|
|
/* Use child combinator (>) to prevent subtasks from inheriting parent priority styling */
|
|
.tasknotes-plugin .task-card[data-priority] > .task-card__main-row .task-card__priority-dot {
|
|
background-color: var(--current-priority-color, var(--tn-text-muted));
|
|
}
|
|
|
|
/* Fallback priority colors using existing system */
|
|
/* Use child combinator (>) to prevent subtasks from inheriting parent priority styling */
|
|
.tasknotes-plugin .task-card--priority-high > .task-card__main-row .task-card__priority-dot {
|
|
background-color: var(--priority-high-color, var(--tn-color-error));
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--priority-medium > .task-card__main-row .task-card__priority-dot {
|
|
background-color: var(--priority-medium-color, var(--tn-interactive-accent));
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--priority-normal > .task-card__main-row .task-card__priority-dot {
|
|
background-color: var(--priority-normal-color, var(--tn-interactive-accent));
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--priority-low > .task-card__main-row .task-card__priority-dot {
|
|
background-color: var(--priority-low-color, var(--tn-text-muted));
|
|
}
|
|
|
|
/* Status colors - Use dynamic status colors from user settings */
|
|
/* Use child combinator (>) to prevent subtasks from inheriting parent status styling */
|
|
.tasknotes-plugin .task-card[data-status] > .task-card__main-row .task-card__status-dot {
|
|
border-color: var(--current-status-color, var(--tn-border-color));
|
|
}
|
|
|
|
|
|
/* Minimal animations - Use theme colors */
|
|
.tasknotes-plugin .task-card--updated {
|
|
background-color: var(--tn-interactive-hover);
|
|
transition: background-color var(--tn-transition-fast);
|
|
}
|
|
|
|
/* =================================================================
|
|
RESPONSIVE DESIGN
|
|
================================================================= */
|
|
|
|
/* Mobile & Touch Devices - Use theme colors */
|
|
@media (pointer: coarse) {
|
|
.tasknotes-plugin .task-card {
|
|
padding: 12px 16px;
|
|
min-height: 44px;
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card:active {
|
|
background-color: var(--tn-interactive-hover);
|
|
}
|
|
|
|
/* Larger touch targets */
|
|
.tasknotes-plugin .task-card__context-menu {
|
|
width: 24px;
|
|
height: 24px;
|
|
opacity: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__context-menu svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
/* Larger status dots for touch */
|
|
.tasknotes-plugin .task-card__status-dot {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
}
|
|
|
|
/* High density displays */
|
|
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
|
|
.tasknotes-plugin .task-card {
|
|
border-left-width: 1px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card::before {
|
|
width: 1px;
|
|
}
|
|
}
|
|
|
|
/* Reduced motion preferences */
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.tasknotes-plugin .task-card,
|
|
.tasknotes-plugin .task-card *,
|
|
.tasknotes-plugin .task-card::before,
|
|
.tasknotes-plugin .task-card::after {
|
|
animation-duration: 0.01ms !important;
|
|
animation-iteration-count: 1 !important;
|
|
transition-duration: 0.01ms !important;
|
|
scroll-behavior: auto !important;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--dragging {
|
|
animation: none;
|
|
}
|
|
}
|
|
|
|
/* Print styles */
|
|
@media print {
|
|
.tasknotes-plugin .task-card {
|
|
break-inside: avoid;
|
|
page-break-inside: avoid;
|
|
background: white !important;
|
|
box-shadow: none !important;
|
|
border: 1px solid #ccc !important;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__quick-actions,
|
|
.tasknotes-plugin .task-card__context-menu,
|
|
.tasknotes-plugin .task-card__enhanced-info {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
/* Compact mode for smaller screens - Todoist style */
|
|
@media (max-width: 768px) {
|
|
.tasknotes-plugin .task-card {
|
|
padding: 10px 14px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__content {
|
|
gap: 1px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__title {
|
|
font-size: 13px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card__metadata {
|
|
font-size: 11px;
|
|
}
|
|
}
|
|
|
|
/* =================================================================
|
|
TASKCARD DRAG AND DROP STATES
|
|
================================================================= */
|
|
|
|
/* Draggable task cards */
|
|
.tasknotes-plugin .task-card[draggable="true"] {
|
|
transition: all var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card[draggable="true"]:hover {
|
|
cursor: grab;
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 2px 8px color-mix(in srgb, var(--tn-shadow-color) 15%, transparent);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card[draggable="true"]:active {
|
|
cursor: grabbing;
|
|
transform: scale(0.98) rotate(1deg);
|
|
}
|
|
|
|
/* Enhanced dragging state */
|
|
.tasknotes-plugin .task-card--dragging {
|
|
opacity: 0.8;
|
|
transform: rotate(5deg) scale(1.02);
|
|
cursor: grabbing;
|
|
z-index: 1000;
|
|
pointer-events: none;
|
|
box-shadow: 0 8px 32px color-mix(in srgb, var(--tn-shadow-color) 30%, transparent),
|
|
0 0 0 1px color-mix(in srgb, var(--tn-interactive-accent) 50%, transparent);
|
|
transition: none;
|
|
animation: drag-pulse 2s infinite ease-in-out;
|
|
}
|
|
|
|
@keyframes drag-pulse {
|
|
0%, 100% {
|
|
box-shadow: 0 8px 32px color-mix(in srgb, var(--tn-shadow-color) 30%, transparent),
|
|
0 0 0 1px color-mix(in srgb, var(--tn-interactive-accent) 50%, transparent);
|
|
}
|
|
50% {
|
|
box-shadow: 0 12px 40px color-mix(in srgb, var(--tn-shadow-color) 40%, transparent),
|
|
0 0 0 2px color-mix(in srgb, var(--tn-interactive-accent) 70%, transparent);
|
|
}
|
|
}
|
|
|
|
/* Drag preview ghost */
|
|
.tasknotes-plugin .task-card--drag-ghost {
|
|
opacity: 0.3;
|
|
transform: scale(0.95);
|
|
transition: all var(--tn-transition-fast);
|
|
pointer-events: none;
|
|
filter: blur(1px);
|
|
}
|
|
|
|
/* Drop zone feedback */
|
|
.tasknotes-plugin .task-card--drop-target {
|
|
border: 2px dashed var(--tn-interactive-accent);
|
|
background: color-mix(in srgb, var(--tn-interactive-accent) 5%, var(--tn-bg-primary));
|
|
transform: scale(1.02);
|
|
transition: all var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--drop-target::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: -2px;
|
|
border-radius: var(--tn-radius-sm);
|
|
background: linear-gradient(
|
|
45deg,
|
|
transparent 25%,
|
|
color-mix(in srgb, var(--tn-interactive-accent) 10%, transparent) 25%,
|
|
color-mix(in srgb, var(--tn-interactive-accent) 10%, transparent) 50%,
|
|
transparent 50%,
|
|
transparent 75%,
|
|
color-mix(in srgb, var(--tn-interactive-accent) 10%, transparent) 75%
|
|
);
|
|
background-size: 8px 8px;
|
|
animation: drop-zone-shimmer 1s linear infinite;
|
|
z-index: -1;
|
|
}
|
|
|
|
@keyframes drop-zone-shimmer {
|
|
0% { background-position: 0 0; }
|
|
100% { background-position: 8px 8px; }
|
|
}
|
|
|
|
/* =================================================================
|
|
LAYOUT MODIFIERS - Inline Mode for Task Link Widgets
|
|
================================================================= */
|
|
|
|
/* Inline layout - single line, compact display for editor task links */
|
|
.tasknotes-plugin .task-card--layout-inline {
|
|
/* Use inline display to respect line boundaries */
|
|
display: inline !important;
|
|
|
|
/* Minimal padding - no indentation needed in inline mode */
|
|
padding: 2px 0;
|
|
margin: 0;
|
|
margin-bottom: 0;
|
|
|
|
/* Visual style - transparent background */
|
|
background-color: transparent;
|
|
border: none;
|
|
border-radius: 0;
|
|
|
|
/* Size constraints */
|
|
min-height: auto;
|
|
|
|
/* Prevent text from breaking into multiple lines */
|
|
white-space: nowrap;
|
|
|
|
/* Force inline behavior */
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-inline:hover {
|
|
background-color: transparent;
|
|
}
|
|
|
|
/* Disable drag cursor for inline tasks - they're not draggable */
|
|
.tasknotes-plugin .task-card--layout-inline[draggable="true"]:hover {
|
|
cursor: default;
|
|
transform: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-inline[draggable="true"]:active {
|
|
cursor: default;
|
|
transform: none;
|
|
}
|
|
|
|
/* Remove chevron gutter padding in inline mode */
|
|
.tasknotes-plugin .task-card--layout-inline,
|
|
.tasknotes-plugin .task-card--layout-inline.task-card--chevron-left {
|
|
padding-left: 0 !important;
|
|
padding-right: 0 !important;
|
|
}
|
|
|
|
/* Main row in inline mode - horizontal layout */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__main-row {
|
|
display: inline !important;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* Content in inline mode - horizontal, truncated */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__content {
|
|
display: inline !important;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* Title in inline mode - truncate with ellipsis */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__title {
|
|
display: inline !important;
|
|
font-size: inherit; /* Use editor's font size */
|
|
font-weight: 400;
|
|
margin: 0;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* Title text in inline mode - ensure ellipsis works */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__title-text {
|
|
display: inline !important;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* Metadata in inline mode - stays on same line, scrolls if needed */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__metadata {
|
|
display: inline-block !important;
|
|
font-size: var(--tn-font-size-sm);
|
|
margin: 0;
|
|
padding: 0;
|
|
vertical-align: text-bottom;
|
|
position: relative;
|
|
top: -0.15em;
|
|
white-space: nowrap;
|
|
width: fit-content;
|
|
max-width: 100%;
|
|
overflow-x: auto;
|
|
overflow-y: hidden;
|
|
scrollbar-width: none;
|
|
}
|
|
|
|
/* Only apply spacing and min-width when metadata has content - prevents blank space when empty */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__metadata:not(:empty) {
|
|
margin-left: 0.5em;
|
|
min-width: min(30%, 300px);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__metadata:hover {
|
|
scrollbar-width: thin;
|
|
scrollbar-color: var(--background-modifier-border) transparent;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__metadata::-webkit-scrollbar {
|
|
height: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__metadata:hover::-webkit-scrollbar {
|
|
height: 4px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__metadata::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__metadata::-webkit-scrollbar-thumb {
|
|
background: var(--background-modifier-border);
|
|
border-radius: 2px;
|
|
}
|
|
|
|
/* Wrapper for metadata items in inline mode */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__metadata > * {
|
|
display: inline;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__metadata > *:last-child {
|
|
margin-right: 0 !important;
|
|
}
|
|
|
|
/* Smaller status dot in inline mode */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__status-dot {
|
|
display: inline-block;
|
|
width: 0.85em;
|
|
height: 0.85em;
|
|
margin-right: 0.25em;
|
|
border-width: 1.5px;
|
|
vertical-align: baseline;
|
|
transform: translateY(0.1em);
|
|
}
|
|
|
|
/* Smaller priority dot in inline mode */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__priority-dot {
|
|
display: inline-block;
|
|
width: 0.6em;
|
|
height: 0.6em;
|
|
margin: 0 0.25em 0 0;
|
|
border-width: 1.5px;
|
|
vertical-align: baseline;
|
|
transform: translateY(0.05em);
|
|
}
|
|
|
|
/* Compact indicators in inline mode */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__recurring-indicator,
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__reminder-indicator {
|
|
display: inline-block;
|
|
position: static;
|
|
width: 0.85em;
|
|
height: 0.85em;
|
|
margin-right: 0.15em;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* Compact context menu in inline mode */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__context-menu {
|
|
display: inline-block;
|
|
width: 0.9em;
|
|
height: 0.9em;
|
|
padding: 0;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* Compact date displays in inline mode */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__metadata-date {
|
|
display: inline;
|
|
font-size: var(--tn-font-size-sm);
|
|
padding: 0;
|
|
margin: 0 0.75em 0 0;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* Metadata property in inline mode */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__metadata-property {
|
|
display: inline;
|
|
font-size: var(--tn-font-size-sm);
|
|
padding: 0;
|
|
margin: 0 0.75em 0 0;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* Metadata pills in inline mode */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__metadata-pill {
|
|
display: inline;
|
|
margin: 0 0.75em 0 0;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* Metadata separators in inline mode */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__metadata-separator {
|
|
display: inline;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* SVG icons in inline mode - ensure they don't affect line height */
|
|
.tasknotes-plugin .task-card--layout-inline svg {
|
|
display: inline-block;
|
|
width: 0.85em;
|
|
height: 0.85em;
|
|
vertical-align: baseline;
|
|
transform: translateY(0.1em);
|
|
}
|
|
|
|
/* Hide subtask-related elements in inline mode */
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__subtasks,
|
|
.tasknotes-plugin .task-card--layout-inline .task-card__blocking {
|
|
display: none;
|
|
}
|
|
|
|
/* Ensure inline cards don't have bottom margin */
|
|
.tasknotes-plugin .task-card--layout-inline:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
/* =================================================================
|
|
COMPACT LAYOUT (for future use)
|
|
================================================================= */
|
|
|
|
/* Compact layout - smaller padding but still vertical */
|
|
.tasknotes-plugin .task-card--layout-compact {
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-compact .task-card__main-row {
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-compact .task-card__title {
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-compact .task-card__metadata {
|
|
font-size: var(--tn-font-size-xs);
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-compact .task-card__status-dot {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-compact .task-card__priority-dot {
|
|
width: 8px;
|
|
height: 8px;
|
|
margin: 0 var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-compact .task-card__badges {
|
|
gap: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-compact .task-card__recurring-indicator,
|
|
.tasknotes-plugin .task-card--layout-compact .task-card__reminder-indicator,
|
|
.tasknotes-plugin .task-card--layout-compact .task-card__project-indicator,
|
|
.tasknotes-plugin .task-card--layout-compact .task-card__chevron,
|
|
.tasknotes-plugin .task-card--layout-compact .task-card__blocking-toggle {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--layout-compact .task-card__context-menu {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
/* =================================================================
|
|
SELECTION MODE STYLES
|
|
================================================================= */
|
|
|
|
|
|
/* Selected task card styling */
|
|
.tasknotes-plugin .task-card--selected {
|
|
background-color: color-mix(in srgb, var(--interactive-accent) 15%, transparent);
|
|
border-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .task-card--selected:hover {
|
|
background-color: color-mix(in srgb, var(--interactive-accent) 20%, transparent);
|
|
}
|
|
|
|
/* Primary selected task (first selected) gets a border */
|
|
.tasknotes-plugin .task-card--selected-primary {
|
|
box-shadow: inset 0 0 0 2px var(--interactive-accent);
|
|
}
|
|
|
|
|
|
/* Selection indicator floating badge */
|
|
.tasknotes-plugin .tn-selection-indicator {
|
|
position: fixed;
|
|
bottom: 20px;
|
|
right: 20px;
|
|
background-color: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
padding: 8px 16px;
|
|
border-radius: var(--tn-radius-md);
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: 500;
|
|
box-shadow: 0 4px 12px color-mix(in srgb, var(--tn-shadow-color, black) 20%, transparent);
|
|
z-index: 100;
|
|
display: none;
|
|
animation: tn-selection-indicator-appear 0.2s ease-out;
|
|
transition: background-color var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-selection-indicator:hover {
|
|
background-color: var(--interactive-accent-hover);
|
|
}
|
|
|
|
@keyframes tn-selection-indicator-appear {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(10px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
/* Kanban card wrapper selection state */
|
|
.tasknotes-plugin .kanban-view__card-wrapper--selected {
|
|
background-color: color-mix(in srgb, var(--interactive-accent) 15%, transparent);
|
|
border-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
/* Primary selected kanban card wrapper gets a border */
|
|
.tasknotes-plugin .kanban-view__card-wrapper--selected-primary {
|
|
box-shadow: inset 0 0 0 2px var(--interactive-accent);
|
|
}
|
|
|
|
|
|
/* ===== TASK-INLINE-WIDGET.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 LINK WIDGET WRAPPER
|
|
================================================================= */
|
|
|
|
/* Wrapper for inline task link widgets - ensures proper inline display with bullets */
|
|
.tasknotes-plugin.tasknotes-inline-widget {
|
|
display: inline !important;
|
|
vertical-align: baseline;
|
|
line-height: inherit;
|
|
/* Prevent wrapper from causing line breaks */
|
|
white-space: normal;
|
|
}
|
|
|
|
/* =================================================================
|
|
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: var(--cursor);
|
|
|
|
/* 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: var(--cursor);
|
|
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: var(--cursor);
|
|
}
|
|
|
|
/* 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: var(--cursor);
|
|
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: var(--cursor);
|
|
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: var(--cursor);
|
|
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: var(--cursor);
|
|
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: nowrap;
|
|
color: var(--text-normal);
|
|
font-weight: 500;
|
|
margin: 0;
|
|
min-width: 0; /* Allow flex shrinking */
|
|
max-width: min(600px, 80vw); /* Responsive max-width for longer titles */
|
|
flex-shrink: 1; /* Allow shrinking if needed */
|
|
vertical-align: baseline;
|
|
cursor: var(--cursor);
|
|
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: var(--cursor);
|
|
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;
|
|
}
|
|
|
|
|
|
/* ===== NOTE-CARD-BEM.CSS ===== */
|
|
/* =================================================================
|
|
NOTECARD COMPONENT - BEM NAMING CONVENTION & PROPER SCOPING
|
|
================================================================= */
|
|
|
|
/* All NoteCard styles are scoped under .tasknotes-plugin for proper isolation */
|
|
|
|
.tasknotes-plugin .note-card {
|
|
/* Layout & Structure */
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 0;
|
|
position: relative;
|
|
|
|
/* Spacing & Sizing - Todoist compact style */
|
|
padding: var(--tn-spacing-md) var(--tn-spacing-lg);
|
|
margin-bottom: 1px;
|
|
|
|
/* Visual Styling - Todoist minimal style */
|
|
background-color: transparent;
|
|
border: none;
|
|
border-radius: 0;
|
|
border-left: 3px solid transparent; /* Transparent by default */
|
|
|
|
/* Interactions & Accessibility - Simplified */
|
|
cursor: var(--cursor);
|
|
transition: background-color var(--tn-transition-fast);
|
|
outline: none;
|
|
role: listitem;
|
|
tabindex: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card:hover {
|
|
background-color: var(--tn-interactive-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .note-card:focus {
|
|
background-color: var(--tn-interactive-hover);
|
|
outline: 1px solid var(--tn-border-color);
|
|
outline-offset: -1px;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card:focus:not(:focus-visible) {
|
|
outline: none;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
/* Daily note specific styling */
|
|
.tasknotes-plugin .note-card--daily {
|
|
border-left: 3px solid var(--tn-interactive-accent); /* Purple left border for daily notes only */
|
|
}
|
|
|
|
/* Ensure all note card titles match task card titles exactly */
|
|
.tasknotes-plugin .note-card__title,
|
|
.tasknotes-plugin .tn-card__title,
|
|
.tasknotes-plugin .note-card--daily .note-card__title,
|
|
.tasknotes-plugin .note-card--daily-note .note-card__title {
|
|
font-size: var(--tn-font-size-lg) !important;
|
|
font-weight: 400 !important;
|
|
line-height: 1.3 !important;
|
|
}
|
|
|
|
/* Remove border radius for cleaner list appearance */
|
|
.tasknotes-plugin .note-card:first-child,
|
|
.tasknotes-plugin .note-card:last-child,
|
|
.tasknotes-plugin .note-card:first-child:last-child {
|
|
border-radius: 0;
|
|
}
|
|
|
|
/* =================================================================
|
|
NOTECARD ELEMENTS (BEM __element)
|
|
================================================================= */
|
|
|
|
.tasknotes-plugin .note-card__main-row {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 0;
|
|
width: 100%;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card__icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 16px;
|
|
height: 16px;
|
|
margin-right: 8px;
|
|
flex-shrink: 0;
|
|
color: var(--tn-text-muted);
|
|
align-self: center;
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card__icon svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card__content {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card__title {
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: 400;
|
|
line-height: 1.3;
|
|
color: var(--tn-text-normal);
|
|
margin: 0;
|
|
word-wrap: break-word;
|
|
word-break: break-word;
|
|
white-space: normal;
|
|
transition: color var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .note-card__divider {
|
|
height: 1px;
|
|
background: var(--tn-border-color);
|
|
margin: var(--tn-spacing-xs) 0;
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card__tags {
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--tn-text-muted);
|
|
line-height: 1.2;
|
|
margin: 0;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .note-card__tag {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
padding: 1px var(--tn-spacing-xs);
|
|
border-radius: var(--tn-radius-xs);
|
|
background: var(--tn-bg-secondary);
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--tn-text-muted);
|
|
border: 1px solid var(--tn-border-color);
|
|
transition: all var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .note-card__tag:hover {
|
|
background: var(--tn-interactive-hover);
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .note-card__tags-text {
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--tn-text-muted);
|
|
line-height: 1.2;
|
|
margin: 0;
|
|
font-style: italic;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card__metadata {
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--tn-text-faint);
|
|
line-height: 1.2;
|
|
margin: 0;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card__preview {
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--tn-text-muted);
|
|
line-height: 1.3;
|
|
margin-top: var(--tn-spacing-xs);
|
|
max-height: 2.6em; /* Approximately 2 lines */
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card__badge {
|
|
position: absolute;
|
|
top: var(--tn-spacing-md);
|
|
right: var(--tn-spacing-md);
|
|
padding: 2px var(--tn-spacing-xs);
|
|
border-radius: var(--tn-radius-xs);
|
|
font-size: var(--tn-font-size-xs);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
z-index: 2;
|
|
opacity: 0.8;
|
|
transition: opacity var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .note-card:hover .note-card__badge {
|
|
opacity: 1;
|
|
}
|
|
|
|
/* =================================================================
|
|
NOTECARD MODIFIERS (BEM --modifier)
|
|
================================================================= */
|
|
|
|
/* Compact Layout */
|
|
.tasknotes-plugin .note-card--compact {
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .note-card--compact .note-card__content {
|
|
gap: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card--compact .note-card__title {
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .note-card--compact .note-card__preview {
|
|
display: none; /* Hide preview in compact mode */
|
|
}
|
|
|
|
/* Daily Note Variant */
|
|
.tasknotes-plugin .note-card--daily-note {
|
|
border-left-color: var(--tn-color-daily-note);
|
|
background: transparent; /* Keep consistent with other note cards */
|
|
}
|
|
|
|
.tasknotes-plugin .note-card--daily-note .note-card__badge {
|
|
background: var(--tn-color-daily-note);
|
|
color: var(--tn-bg-primary);
|
|
}
|
|
|
|
/* Shadow Variants - Disabled for consistency with task cards */
|
|
.tasknotes-plugin .note-card--shadow-light:hover {
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card--shadow-medium:hover {
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card--shadow-strong:hover {
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* Update Animation */
|
|
.tasknotes-plugin .note-card--updated {
|
|
animation: note-card-update 1.2s ease-out;
|
|
}
|
|
|
|
@keyframes note-card-update {
|
|
0% {
|
|
box-shadow: 0 0 0 0 color-mix(in srgb, var(--tn-color-info) 40%, transparent);
|
|
border-color: var(--tn-border-color);
|
|
}
|
|
50% {
|
|
box-shadow: 0 0 0 2px color-mix(in srgb, var(--tn-color-info) 30%, transparent);
|
|
border-left-color: var(--tn-color-info);
|
|
}
|
|
100% {
|
|
box-shadow: 0 0 0 0 color-mix(in srgb, var(--tn-color-info) 0%, transparent);
|
|
border-color: var(--tn-border-color);
|
|
}
|
|
}
|
|
|
|
/* =================================================================
|
|
SHARED BASE CARD STYLES
|
|
================================================================= */
|
|
|
|
/* Base card component that can be shared between TaskCard and NoteCard */
|
|
.tasknotes-plugin .tn-card {
|
|
/* Common card styling */
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 0;
|
|
position: relative;
|
|
padding: var(--tn-spacing-md) var(--tn-spacing-lg);
|
|
margin-bottom: 0;
|
|
background-color: var(--tn-bg-primary);
|
|
border: none;
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
border-radius: 0;
|
|
cursor: var(--cursor);
|
|
transition: background-color var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-card:hover {
|
|
background-color: var(--tn-interactive-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .tn-card__content {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
min-width: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .tn-card__title {
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: 400;
|
|
line-height: 1.3;
|
|
color: var(--tn-text-normal);
|
|
margin: 0;
|
|
word-wrap: break-word;
|
|
word-break: break-word;
|
|
white-space: normal;
|
|
transition: color var(--tn-transition-fast);
|
|
}
|
|
|
|
/* =================================================================
|
|
RESPONSIVE DESIGN
|
|
================================================================= */
|
|
|
|
/* Touch-specific adjustments */
|
|
@media (pointer: coarse) {
|
|
.tasknotes-plugin .note-card {
|
|
padding: var(--tn-spacing-lg) var(--tn-spacing-xl);
|
|
min-height: 44px;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card:hover {
|
|
transform: none;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card:active {
|
|
transform: scale(0.98);
|
|
transition: transform 0.1s;
|
|
}
|
|
|
|
.tasknotes-plugin .note-card__badge {
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/* ===== FILTER-BAR-BEM.CSS ===== */
|
|
/* =================================================================
|
|
ADVANCED FILTER BAR COMPONENT - BEM NAMING CONVENTION & PROPER SCOPING
|
|
================================================================= */
|
|
|
|
/* All FilterBar styles are scoped under .tasknotes-plugin for proper isolation */
|
|
|
|
/* Main Container */
|
|
.tasknotes-plugin .advanced-filter-bar {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-md);
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
}
|
|
|
|
/* Top Controls (Filter Icon + Search + Templates Button) */
|
|
.tasknotes-plugin .filter-bar__top-controls {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
position: relative; /* Set as positioning context for the dropdown */
|
|
z-index: 10; /* Ensure this container is on top of the filter box below */
|
|
isolation: isolate; /* Create a new stacking context */
|
|
container-type: inline-size; /* Enable container queries */
|
|
}
|
|
|
|
|
|
/* Filter toggle base (positioning for badge) */
|
|
.tasknotes-plugin .filter-bar__filter-toggle {
|
|
position: relative; /* context for badge */
|
|
}
|
|
|
|
/* Active filter badge dot */
|
|
.tasknotes-plugin .filter-bar__filter-toggle.has-active-filters::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 2px;
|
|
right: 2px;
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
background-color: #a78bfa; /* subtle purple */
|
|
}
|
|
|
|
/* Icon + Text Button Styling */
|
|
.tasknotes-plugin .filter-bar__top-controls .has-text-icon {
|
|
display: flex !important;
|
|
align-items: center;
|
|
gap: 3px;
|
|
padding: 2px 6px !important;
|
|
min-height: var(--input-height);
|
|
border-radius: var(--radius-s);
|
|
width: auto !important; /* Override any fixed width */
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__top-controls .has-text-icon .button-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 16px;
|
|
height: 16px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__top-controls .has-text-icon .button-icon svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__top-controls .has-text-icon .button-text {
|
|
white-space: nowrap;
|
|
font-size: var(--font-ui-small);
|
|
line-height: 1;
|
|
}
|
|
|
|
/* Override button-specific hover states for consistent text+icon button behavior */
|
|
.tasknotes-plugin .filter-bar__top-controls .has-text-icon:hover {
|
|
background: var(--interactive-hover) !important;
|
|
color: var(--text-normal) !important;
|
|
}
|
|
|
|
/* Clear all button in Filter section header */
|
|
.tasknotes-plugin .filter-bar__clear-filters {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
margin-left: var(--tn-spacing-sm);
|
|
padding: 2px 6px;
|
|
border-radius: var(--radius-s);
|
|
border: 1px solid var(--color-grey-tint);
|
|
background-color: var(--color-grey-base);
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-small);
|
|
}
|
|
.tasknotes-plugin .filter-bar__clear-filters:hover {
|
|
background-color: var(--interactive-hover);
|
|
}
|
|
.tasknotes-plugin .filter-bar__clear-filters svg {
|
|
width: 16px; height: 16px;
|
|
}
|
|
|
|
/* Clear all filters button in Filter section header - matches Save button style exactly */
|
|
.tasknotes-plugin .filter-bar__clear-all-button {
|
|
/* Ensure identical sizing and alignment with Save button */
|
|
width: var(--input-height);
|
|
height: var(--input-height);
|
|
min-width: var(--input-height);
|
|
min-height: var(--input-height);
|
|
padding: 0;
|
|
margin-right: 8px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
vertical-align: top;
|
|
}
|
|
|
|
/* Ensure the icon is properly centered */
|
|
.tasknotes-plugin .filter-bar__clear-all-button svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
/* Close modal button - matches other buttons exactly but with transparent background */
|
|
.tasknotes-plugin .filter-bar__close-modal-button {
|
|
/* Identical sizing to Clear and Save buttons */
|
|
width: var(--input-height);
|
|
height: var(--input-height);
|
|
min-width: var(--input-height);
|
|
min-height: var(--input-height);
|
|
padding: 0;
|
|
margin-left: 8px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
vertical-align: top;
|
|
/* Transparent background */
|
|
background: transparent !important;
|
|
border: none !important;
|
|
}
|
|
|
|
/* Ensure the close icon is properly centered */
|
|
.tasknotes-plugin .filter-bar__close-modal-button svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
/* Natural Language Date Input Enhancement */
|
|
.tasknotes-plugin .filter-date-input-container {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
width: 100%;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-date-text-input {
|
|
flex: 1;
|
|
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
}
|
|
|
|
/* Date input validation states - subtle styling */
|
|
.tasknotes-plugin .filter-date-text-input.is-valid {
|
|
border-left: 2px solid var(--color-green);
|
|
background-color: transparent;
|
|
box-shadow: inset 0 0 0 1px rgba(var(--color-green-rgb), 0.15);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-date-text-input.is-invalid {
|
|
border-left: 2px solid var(--color-red);
|
|
background-color: transparent;
|
|
box-shadow: inset 0 0 0 1px rgba(var(--color-red-rgb), 0.15);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-date-text-input.is-empty {
|
|
border-left: none;
|
|
background-color: transparent;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-date-help-button {
|
|
width: 20px;
|
|
height: 20px;
|
|
border-radius: 50%;
|
|
border: 1px solid var(--text-muted);
|
|
background: transparent;
|
|
color: var(--text-muted);
|
|
font-size: 12px;
|
|
cursor: var(--cursor);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-date-help-button:hover {
|
|
background: var(--interactive-hover);
|
|
color: var(--text-normal);
|
|
border-color: var(--text-normal);
|
|
}
|
|
|
|
.filter-date-help-tooltip {
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-m);
|
|
padding: var(--tn-spacing-sm);
|
|
box-shadow: var(--shadow-s);
|
|
min-width: 200px;
|
|
max-width: 300px;
|
|
font-size: var(--font-ui-smaller);
|
|
}
|
|
|
|
.filter-date-help-tooltip h4 {
|
|
margin: 0 0 var(--tn-spacing-xs) 0;
|
|
color: var(--text-normal);
|
|
font-weight: var(--font-semibold);
|
|
}
|
|
|
|
.filter-date-help-tooltip ul {
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 2px;
|
|
}
|
|
|
|
.filter-date-help-tooltip li {
|
|
padding: 2px var(--tn-spacing-xs);
|
|
color: var(--text-muted);
|
|
background: var(--background-modifier-hover);
|
|
border-radius: var(--radius-s);
|
|
font-family: var(--font-monospace);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__filter-toggle {
|
|
padding: var(--tn-spacing-xs);
|
|
background: transparent;
|
|
border: none;
|
|
border-radius: var(--radius-s);
|
|
color: var(--text-muted);
|
|
cursor: var(--cursor);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: var(--tn-button-height-md);
|
|
height: var(--tn-button-height-md);
|
|
transition: all 0.2s ease;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__filter-toggle:hover {
|
|
background: var(--interactive-hover) !important;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__filter-toggle--active {
|
|
background: var(--interactive-accent-tint);
|
|
color: var(--color-accent);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__templates-button {
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
background: transparent;
|
|
border: none;
|
|
border-radius: var(--radius-s);
|
|
color: var(--text-muted);
|
|
cursor: var(--cursor);
|
|
font-size: var(--font-ui-small);
|
|
font-weight: 500;
|
|
transition: all 0.2s ease;
|
|
height: var(--tn-button-height-md); /* Consistent height */
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__templates-button:hover {
|
|
background: var(--interactive-hover) !important;
|
|
color: var(--text-normal);
|
|
transform: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__templates-button--active {
|
|
background: var(--interactive-accent-tint);
|
|
color: var(--color-accent);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__templates-button--saved-view-active {
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border: none;
|
|
box-shadow: 0 0 0 1px var(--color-accent);
|
|
}
|
|
|
|
/* Search Input */
|
|
.tasknotes-plugin .filter-bar__search-input {
|
|
flex: 1;
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
background: var(--background-primary);
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-small);
|
|
transition: all 0.2s ease;
|
|
height: var(--tn-button-height-md); /* Consistent height */
|
|
min-width: 0 !important; /* Override any default min-width */
|
|
width: auto; /* Allow natural width */
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__search-input:focus {
|
|
outline: 1px solid var(--color-accent);
|
|
border-color: var(--color-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__search-input::placeholder {
|
|
color: var(--text-muted);
|
|
font-style: italic;
|
|
}
|
|
|
|
/* Main Filter Box (collapsible popup) */
|
|
.tasknotes-plugin .filter-bar__main-box {
|
|
position: absolute;
|
|
top: calc(100% + 4px); /* Position below the top controls with a small gap */
|
|
left: auto; /* Let it position dynamically */
|
|
right: auto; /* Let it position dynamically */
|
|
width: 500px; /* Default preferred width */
|
|
max-width: 600px; /* Maximum preferred width */
|
|
min-width: 400px; /* Minimum usable width */
|
|
z-index: 1000; /* High z-index */
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-lg);
|
|
padding: var(--tn-spacing-lg);
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-m);
|
|
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
|
|
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
opacity: 1;
|
|
transform: translateY(0) scale(1);
|
|
max-height: 80vh;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__main-box--collapsed {
|
|
opacity: 0;
|
|
transform: translateY(-10px) scale(0.98);
|
|
pointer-events: none; /* Prevent interaction when hidden */
|
|
}
|
|
|
|
/* =================================================================
|
|
VIEW SELECTOR SECTION
|
|
================================================================= */
|
|
|
|
.tasknotes-plugin .filter-bar__view-selector-dropdown {
|
|
position: absolute;
|
|
top: 100%;
|
|
right: 0; /* Default align to right of the container */
|
|
left: auto;
|
|
min-width: 240px;
|
|
max-width: 320px;
|
|
z-index: 1000; /* Ensure it's on top */
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-m);
|
|
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
|
|
margin-top: 4px;
|
|
max-height: 400px;
|
|
overflow-y: auto;
|
|
opacity: 1;
|
|
transform: translateY(0) scale(1);
|
|
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
/* Left-aligned variant for Views-left configuration */
|
|
.tasknotes-plugin .filter-bar__view-selector-dropdown.filter-bar__view-selector-dropdown--left {
|
|
left: 0;
|
|
right: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-selector-dropdown--hidden {
|
|
opacity: 0;
|
|
transform: translateY(-10px) scale(0.95);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-section {
|
|
padding: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-section:not(:last-child) {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-section-header {
|
|
font-weight: 600; /* Slightly stronger for better hierarchy */
|
|
font-size: var(--font-ui-small);
|
|
color: var(--text-normal);
|
|
text-transform: none; /* Normal case */
|
|
letter-spacing: 0; /* Natural spacing */
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
padding-bottom: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-item-container {
|
|
display: flex;
|
|
align-items: center;
|
|
border-radius: var(--radius-s);
|
|
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
margin: 2px 0;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-item-container:hover {
|
|
background: var(--background-modifier-hover);
|
|
transform: translateX(2px);
|
|
}
|
|
|
|
/* Drag and drop styles */
|
|
.tasknotes-plugin .filter-bar__view-drag-handle {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 24px;
|
|
height: 24px;
|
|
margin-right: var(--tn-spacing-xs);
|
|
color: var(--text-faint);
|
|
cursor: grab;
|
|
font-size: 14px;
|
|
user-select: none;
|
|
opacity: 0;
|
|
transition: all 0.2s ease;
|
|
border-radius: var(--radius-s);
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-drag-handle::before {
|
|
content: '';
|
|
position: absolute;
|
|
width: 12px;
|
|
height: 2px;
|
|
background: currentColor;
|
|
border-radius: 1px;
|
|
box-shadow:
|
|
0 -4px 0 currentColor,
|
|
0 4px 0 currentColor;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-item-container:hover .filter-bar__view-drag-handle {
|
|
opacity: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-drag-handle:hover {
|
|
color: var(--text-normal);
|
|
background: var(--background-modifier-hover);
|
|
transform: scale(1.05);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-drag-handle:active {
|
|
cursor: grabbing;
|
|
transform: scale(0.95);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-item-container--dragging {
|
|
opacity: 0.8;
|
|
transform: scale(1.02);
|
|
background: var(--background-modifier-hover);
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
border-radius: var(--radius-s);
|
|
z-index: 1000;
|
|
transition: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-item-container--placeholder {
|
|
opacity: 0.5;
|
|
background: var(--interactive-accent-tint);
|
|
border: 2px dashed var(--color-accent);
|
|
border-radius: var(--radius-s);
|
|
pointer-events: none;
|
|
min-height: 30px;
|
|
transition: all 0.2s ease;
|
|
animation: placeholderPulse 1s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes placeholderPulse {
|
|
0%, 100% {
|
|
opacity: 0.5;
|
|
}
|
|
50% {
|
|
opacity: 0.7;
|
|
}
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-item {
|
|
flex: 1;
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-md);
|
|
background: none;
|
|
border: none !important;
|
|
box-shadow: none;
|
|
outline: none;
|
|
color: var(--text-normal);
|
|
text-align: left;
|
|
justify-content: flex-start;
|
|
cursor: var(--cursor);
|
|
font-size: var(--font-ui-small);
|
|
font-weight: 500;
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-item--active {
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-item-container--active {
|
|
background: var(--interactive-accent);
|
|
border-radius: var(--radius-s);
|
|
border: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-item-container--active:hover {
|
|
background: var(--interactive-accent-hover);
|
|
transform: translateX(2px);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-delete {
|
|
background: none;
|
|
border: none;
|
|
box-shadow: none;
|
|
color: var(--text-muted);
|
|
cursor: var(--cursor);
|
|
padding: var(--tn-spacing-xs);
|
|
border-radius: var(--radius-s);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: all 0.2s ease;
|
|
margin-right: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-delete:hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--text-error);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-action {
|
|
display: block;
|
|
width: 100%;
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-md);
|
|
background: none;
|
|
border: none;
|
|
color: var(--color-accent);
|
|
text-align: left;
|
|
cursor: var(--cursor);
|
|
border-radius: var(--radius-s);
|
|
font-size: var(--font-ui-small);
|
|
font-weight: 500;
|
|
transition: all 0.2s ease;
|
|
margin: 2px 0;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-action:hover {
|
|
background: var(--interactive-accent-tint);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-empty-message {
|
|
padding: var(--tn-spacing-lg);
|
|
color: var(--text-muted);
|
|
font-size: var(--font-ui-small);
|
|
text-align: center;
|
|
background: var(--background-modifier-hover);
|
|
margin: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* =================================================================
|
|
COLLAPSIBLE FILTER SECTIONS
|
|
================================================================= */
|
|
|
|
.tasknotes-plugin .filter-bar__section {
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__section:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__section--hidden {
|
|
display: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__section-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
background: transparent;
|
|
border: none;
|
|
border-radius: var(--radius-s);
|
|
transition: all 0.2s ease;
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__section-header-main {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-grow: 1;
|
|
cursor: var(--cursor);
|
|
padding: var(--tn-spacing-sm) 0;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__section-header-main:hover {
|
|
background: var(--interactive-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__section-header-main::before {
|
|
content: "▼";
|
|
margin-right: var(--tn-spacing-xs);
|
|
transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
font-size: 10px;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__section-header--collapsed .filter-bar__section-header-main::before {
|
|
transform: rotate(-90deg);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__section-header-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
|
|
padding-right: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__save-button {
|
|
/* Remove individual styles - use tn-btn tn-btn--icon tn-btn--ghost classes */
|
|
padding: 4px;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__save-button svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
/* Expand/Collapse all group buttons - Add pointer cursor but keep good hover */
|
|
.tasknotes-plugin .filter-bar__expand-groups,
|
|
.tasknotes-plugin .filter-bar__collapse-groups {
|
|
padding: var(--tn-spacing-xs);
|
|
background: transparent;
|
|
border: none;
|
|
border-radius: var(--radius-s);
|
|
color: var(--text-muted);
|
|
cursor: pointer !important;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: var(--tn-button-height-md);
|
|
height: var(--tn-button-height-md);
|
|
transition: all 0.2s ease;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__expand-groups:hover,
|
|
.tasknotes-plugin .filter-bar__collapse-groups:hover {
|
|
background: var(--interactive-hover);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__expand-groups svg,
|
|
.tasknotes-plugin .filter-bar__collapse-groups svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__section-title {
|
|
font-weight: 500; /* Slightly lighter */
|
|
font-size: var(--font-ui-small); /* Consistent size */
|
|
color: var(--text-muted); /* Muted for subtlety */
|
|
text-transform: none; /* Normal case */
|
|
letter-spacing: 0; /* Natural spacing */
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__active-view-name {
|
|
font-weight: 400;
|
|
font-size: var(--font-ui-smaller);
|
|
color: var(--text-accent);
|
|
margin-left: var(--tn-spacing-xs);
|
|
font-style: italic;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__section-content {
|
|
padding: var(--tn-spacing-md);
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
opacity: 1;
|
|
max-height: 1000px; /* Large enough for content */
|
|
overflow: hidden;
|
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__section-content--collapsed {
|
|
opacity: 0;
|
|
max-height: 0;
|
|
padding-top: 0;
|
|
padding-bottom: 0;
|
|
border-width: 0;
|
|
}
|
|
|
|
/* =================================================================
|
|
FILTER BUILDER SECTION
|
|
================================================================= */
|
|
|
|
.tasknotes-plugin .filter-bar__filter-builder {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Filter Groups and Conditions */
|
|
.tasknotes-plugin .filter-bar__group {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-sm);
|
|
padding: var(--tn-spacing-md);
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border); /* Subtle border for grouping */
|
|
border-radius: var(--radius-m);
|
|
position: relative;
|
|
}
|
|
|
|
/* Remove styling for the top-level group to blend with its container */
|
|
.tasknotes-plugin .filter-bar__filter-builder > .filter-bar__group {
|
|
background: transparent;
|
|
border: none;
|
|
padding: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__group .filter-bar__group {
|
|
background: var(--background-secondary-alt);
|
|
border-color: var(--background-modifier-border-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__group-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__conjunction {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__conjunction .dropdown {
|
|
border: none;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
height: 28px;
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-small);
|
|
border-radius: var(--radius-s);
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__conjunction .dropdown:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__conjunction-text {
|
|
font-size: var(--font-ui-small);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__children {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-sm);
|
|
margin-left: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__condition .dropdown,
|
|
.tasknotes-plugin .filter-bar__condition .text-input {
|
|
border: none;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
padding: var(--tn-spacing-xs);
|
|
height: 28px;
|
|
max-width: 200px;
|
|
flex: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__condition .dropdown:hover,
|
|
.tasknotes-plugin .filter-bar__condition .text-input:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__condition {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
padding: var(--tn-spacing-xs) 0; /* Let parent padding handle horizontal space */
|
|
background: transparent; /* No background */
|
|
border: 1px; /* No border */
|
|
border-radius: 0;
|
|
flex-wrap: wrap;
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__condition:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__condition-prefix {
|
|
font-size: var(--font-ui-small);
|
|
color: var(--text-muted);
|
|
font-weight: 500;
|
|
text-align: right;
|
|
min-width: 50px; /* More flexible width */
|
|
padding-right: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__value-input {
|
|
border: none; /* No borders on inputs */
|
|
background: transparent; /* Transparent background */
|
|
padding: var(--tn-spacing-xs);
|
|
border-radius: var(--radius-s);
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-small);
|
|
width: auto;
|
|
height: 28px;
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__property-select:hover,
|
|
.tasknotes-plugin .filter-bar__operator-select:hover,
|
|
.tasknotes-plugin .filter-bar__value-input:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__property-select:focus,
|
|
.tasknotes-plugin .filter-bar__operator-select:focus,
|
|
.tasknotes-plugin .filter-bar__value-input:focus {
|
|
background-color: var(--background-modifier-hover);
|
|
outline: none;
|
|
}
|
|
|
|
/* A more specific rule to override default component styles within the value container */
|
|
.tasknotes-plugin .filter-bar__value-container .text-input,
|
|
.tasknotes-plugin .filter-bar__value-container .dropdown .select-input {
|
|
border: none;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
padding: 0;
|
|
height: 26px;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__value-container .text-input:focus {
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__value-container {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0; /* No gap for combined look */
|
|
flex: 1;
|
|
width: 100%;
|
|
border-radius: var(--radius-s);
|
|
padding: 0 var(--tn-spacing-xs);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__value-input {
|
|
border: none;
|
|
background: transparent;
|
|
padding: var(--tn-spacing-xs);
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-small);
|
|
width: 100%;
|
|
height: 28px;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__value-input:focus {
|
|
outline: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__delete-button {
|
|
background: none;
|
|
border: none;
|
|
box-shadow: none;
|
|
color: var(--text-muted);
|
|
cursor: var(--cursor);
|
|
padding: var(--tn-spacing-xs);
|
|
border-radius: var(--radius-s);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: all 0.2s ease;
|
|
margin-left: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__delete-button:hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--text-error);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__group-actions {
|
|
display: flex;
|
|
gap: var(--tn-spacing-md);
|
|
margin-top: var(--tn-spacing-sm);
|
|
border-top: none;
|
|
padding-top: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__action-button {
|
|
padding: var(--tn-spacing-xs);
|
|
background: transparent;
|
|
border: none;
|
|
box-shadow: none;
|
|
color: var(--text-muted);
|
|
cursor: var(--cursor);
|
|
font-size: var(--font-ui-small);
|
|
border-radius: var(--radius-s);
|
|
transition: all 0.2s ease;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__action-button:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__action-button svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
/* =================================================================
|
|
DISPLAY & ORGANIZATION SECTION
|
|
================================================================= */
|
|
|
|
.tasknotes-plugin .filter-bar__display-controls {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: var(--tn-spacing-md);
|
|
align-items: center;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__sort-container,
|
|
.tasknotes-plugin .filter-bar__group-container {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__label {
|
|
font-size: var(--font-ui-small);
|
|
color: var(--text-normal);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__sort-container .dropdown,
|
|
.tasknotes-plugin .filter-bar__group-container .dropdown {
|
|
border: none;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
height: 28px;
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-small);
|
|
min-width: 120px;
|
|
border-radius: var(--radius-s);
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__sort-container .dropdown:hover,
|
|
.tasknotes-plugin .filter-bar__group-container .dropdown:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__sort-direction {
|
|
border: none;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
padding: var(--tn-spacing-xs);
|
|
height: 28px;
|
|
width: 30px;
|
|
border-radius: var(--radius-s);
|
|
color: var(--text-accent);
|
|
cursor: var(--cursor);
|
|
font-size: 16px;
|
|
font-weight: 700;
|
|
transition: all 0.2s ease;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__sort-direction:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
color: var(--text-accent-hover);
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
/* =================================================================
|
|
VIEW OPTIONS SECTION
|
|
================================================================= */
|
|
|
|
.tasknotes-plugin .filter-bar__view-options {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-option {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-option-label {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
cursor: var(--cursor);
|
|
font-size: var(--font-ui-small);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-option-checkbox {
|
|
margin: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__view-option-text {
|
|
user-select: none;
|
|
}
|
|
|
|
/* =================================================================
|
|
RESPONSIVE DESIGN
|
|
================================================================= */
|
|
|
|
/* Hide button text on narrow panes (container width-based responsiveness) */
|
|
@container (max-width: 500px) {
|
|
.tasknotes-plugin .filter-bar__top-controls .has-text-icon .button-text {
|
|
display: none !important;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__top-controls .has-text-icon {
|
|
padding: 2px 4px !important;
|
|
min-width: var(--input-height);
|
|
justify-content: center;
|
|
}
|
|
|
|
/* Hide Views button text and show only chevron icon */
|
|
.tasknotes-plugin .filter-bar__templates-button {
|
|
padding: 2px 4px !important;
|
|
min-width: var(--input-height);
|
|
justify-content: center;
|
|
width: var(--input-height);
|
|
font-size: 0 !important; /* Hide text */
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__templates-button .filter-bar__chevron-container {
|
|
display: flex !important;
|
|
}
|
|
|
|
/* Adjust search input to take more space when buttons are icon-only */
|
|
.tasknotes-plugin .filter-bar__search-input {
|
|
flex-grow: 2;
|
|
min-width: 0 !important; /* Force override any inherited min-width */
|
|
flex-basis: 0; /* Start from zero width and grow */
|
|
}
|
|
}
|
|
|
|
/* Fallback for browsers without container query support */
|
|
@media (max-width: 700px) {
|
|
.tasknotes-plugin .filter-bar__top-controls .has-text-icon .button-text {
|
|
display: none !important;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__top-controls .has-text-icon {
|
|
padding: 2px 4px !important;
|
|
min-width: var(--input-height);
|
|
justify-content: center;
|
|
}
|
|
|
|
/* Hide Views button text and show only chevron icon */
|
|
.tasknotes-plugin .filter-bar__templates-button {
|
|
padding: 2px 4px !important;
|
|
min-width: var(--input-height);
|
|
justify-content: center;
|
|
width: var(--input-height);
|
|
font-size: 0 !important; /* Hide text */
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__templates-button .filter-bar__chevron-container {
|
|
display: flex !important;
|
|
}
|
|
|
|
/* Adjust search input to take more space when buttons are icon-only */
|
|
.tasknotes-plugin .filter-bar__search-input {
|
|
flex-grow: 2;
|
|
min-width: 0 !important; /* Force override any inherited min-width */
|
|
flex-basis: 0; /* Start from zero width and grow */
|
|
}
|
|
}
|
|
|
|
/* Mobile styles */
|
|
@media (max-width: 768px) {
|
|
.tasknotes-plugin .advanced-filter-bar {
|
|
padding: var(--tn-spacing-sm);
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__condition {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__display-controls {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__sort-container,
|
|
.tasknotes-plugin .filter-bar__group-container {
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__children {
|
|
margin-left: 0;
|
|
}
|
|
}
|
|
|
|
/* Tablet styles */
|
|
@media (min-width: 769px) and (max-width: 1024px) {
|
|
.tasknotes-plugin .filter-bar__condition {
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__value-container {
|
|
min-width: 120px;
|
|
}
|
|
}
|
|
|
|
/* =================================================================
|
|
ACCESSIBILITY & FOCUS STATES
|
|
================================================================= */
|
|
|
|
.tasknotes-plugin .filter-bar__property-select:focus,
|
|
.tasknotes-plugin .filter-bar__operator-select:focus,
|
|
.tasknotes-plugin .filter-bar__conjunction-select:focus,
|
|
.tasknotes-plugin .filter-bar__sort-select:focus,
|
|
.tasknotes-plugin .filter-bar__group-select:focus {
|
|
outline: 1px solid var(--color-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__delete-button:focus,
|
|
.tasknotes-plugin .filter-bar__action-button:focus,
|
|
.tasknotes-plugin .filter-bar__view-options-button:focus,
|
|
.tasknotes-plugin .filter-bar__section-header:focus,
|
|
.tasknotes-plugin .filter-bar__view-selector-button:focus {
|
|
outline: 1px solid var(--color-accent);
|
|
}
|
|
|
|
/* =================================================================
|
|
ERROR STATE STYLING
|
|
================================================================= */
|
|
|
|
.tasknotes-plugin .filter-bar-error {
|
|
padding: var(--size-4-2);
|
|
color: var(--text-muted);
|
|
text-align: center;
|
|
font-size: var(--font-ui-smaller);
|
|
border-radius: var(--radius-s);
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
/* =================================================================
|
|
DARK MODE COMPATIBILITY
|
|
================================================================= */
|
|
|
|
.theme-dark .tasknotes-plugin .filter-bar__main-box {
|
|
background: var(--background-secondary-alt);
|
|
}
|
|
|
|
.theme-dark .tasknotes-plugin .filter-bar__group {
|
|
background: var(--background-secondary);
|
|
}
|
|
|
|
.theme-dark .tasknotes-plugin .filter-bar__condition {
|
|
background: var(--background-primary);
|
|
}
|
|
|
|
.theme-dark .tasknotes-plugin .filter-bar-error {
|
|
background-color: var(--background-modifier-hover);
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* =================================================================
|
|
HIGH CONTRAST MODE
|
|
================================================================= */
|
|
|
|
@media (prefers-contrast: high) {
|
|
.tasknotes-plugin .advanced-filter-bar {
|
|
border-width: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__condition,
|
|
.tasknotes-plugin .filter-bar__group {
|
|
border-width: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .filter-bar__property-select,
|
|
.tasknotes-plugin .filter-bar__operator-select,
|
|
.tasknotes-plugin .filter-bar__value-input {
|
|
border-width: 2px;
|
|
}
|
|
}
|
|
|
|
/* =================================================================
|
|
BUTTON ICONS VIA CSS PSEUDO-ELEMENTS
|
|
================================================================= */
|
|
|
|
/* Add filter button - plus sign */
|
|
.tasknotes-plugin .filter-bar__add-filter::before {
|
|
content: "+ ";
|
|
margin-right: 4px;
|
|
font-weight: bold;
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
/* Add filter group button - plus sign in circle */
|
|
.tasknotes-plugin .filter-bar__add-group::before {
|
|
content: "⊕ ";
|
|
margin-right: 4px;
|
|
font-weight: bold;
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
|
|
|
|
/* ===== FILTER-HEADING.CSS ===== */
|
|
/* =================================================================
|
|
FILTER HEADING COMPONENT
|
|
================================================================= */
|
|
|
|
/* All FilterHeading styles are scoped under .tasknotes-plugin for proper isolation */
|
|
|
|
/* Main Container */
|
|
.tasknotes-plugin .filter-heading {
|
|
margin-top: var(--tn-spacing-lg);
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
}
|
|
|
|
/* Content wrapper with heading and count */
|
|
.tasknotes-plugin .filter-heading__content {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Heading title */
|
|
.tasknotes-plugin .filter-heading__title {
|
|
margin: 0;
|
|
font-size: var(--font-ui-medium);
|
|
font-weight: 600;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* Count display */
|
|
.tasknotes-plugin .filter-heading__count {
|
|
font-weight: 600;
|
|
font-size: var(--font-ui-small);
|
|
margin-left: 10px;
|
|
}
|
|
|
|
/* Divider line */
|
|
.tasknotes-plugin .filter-heading__divider {
|
|
height: 1px;
|
|
background-color: var(--background-modifier-border);
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
}
|
|
|
|
|
|
/* ===== SEARCH-BOX.CSS ===== */
|
|
/* Search Box Component - BEM Structure */
|
|
|
|
.tn-search-container {
|
|
padding: 0;
|
|
margin: 0;
|
|
background: transparent;
|
|
border: none;
|
|
}
|
|
|
|
.tn-search-box {
|
|
padding: 0;
|
|
padding-top: var(--size-4-3, 12px);
|
|
background: transparent;
|
|
border: none;
|
|
}
|
|
|
|
.tn-search-box__input-wrapper {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--size-4-2, 8px);
|
|
padding-left: var(--size-4-3, 12px);
|
|
border: none;
|
|
}
|
|
|
|
.tn-search-box__icon {
|
|
color: var(--text-muted);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-shrink: 0;
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.tn-search-box__icon svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.tn-search-box__input {
|
|
flex: 1;
|
|
padding: var(--size-4-2, 8px) var(--size-4-3, 12px);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-m, 8px);
|
|
background: var(--input-background, var(--background-primary));
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-small, 13px);
|
|
outline: none;
|
|
min-width: 0;
|
|
transition: border-color 0.2s ease;
|
|
}
|
|
|
|
.tn-search-box__input::placeholder {
|
|
color: var(--text-muted);
|
|
font-style: italic;
|
|
}
|
|
|
|
.tn-search-box__clear {
|
|
background: transparent;
|
|
border: none;
|
|
color: var(--text-muted);
|
|
cursor: pointer;
|
|
padding: 0;
|
|
font-size: 20px;
|
|
line-height: 1;
|
|
width: 20px;
|
|
height: 20px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: var(--radius-s, 4px);
|
|
flex-shrink: 0;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
transition: opacity 0.2s ease, visibility 0.2s ease, background-color 0.2s ease;
|
|
}
|
|
|
|
.tn-search-box__clear.is-visible {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
}
|
|
|
|
.tn-search-box__clear:hover {
|
|
color: var(--text-normal);
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tn-search-box__clear:active {
|
|
background-color: var(--background-modifier-active-hover);
|
|
}
|
|
|
|
/* Focus styles for accessibility */
|
|
.tn-search-box__clear:focus-visible {
|
|
outline: 2px solid var(--interactive-accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* No results state */
|
|
.tn-search-no-results {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: var(--size-4-8, 32px) var(--size-4-4, 16px);
|
|
text-align: center;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.tn-search-no-results__text {
|
|
font-size: var(--font-ui-medium, 14px);
|
|
color: var(--text-normal);
|
|
margin-bottom: var(--size-4-2, 8px);
|
|
}
|
|
|
|
.tn-search-no-results__hint {
|
|
font-size: var(--font-ui-small, 13px);
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
|
|
|
|
/* ===== MODAL-BEM.CSS ===== */
|
|
/* =====================================================================
|
|
MODAL COMPONENTS - BEM with TaskNotes Plugin Scoping
|
|
===================================================================== */
|
|
|
|
/* =====================================================================
|
|
NATURAL LANGUAGE INPUT - MINIMALIST STYLES
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .nl-input-container {
|
|
margin-bottom: var(--size-4-3);
|
|
}
|
|
|
|
.tasknotes-plugin .nl-input {
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
font-size: var(--tn-font-size-lg);
|
|
line-height: 1.5;
|
|
transition: border-color 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .nl-input:focus {
|
|
outline: none;
|
|
border-color: var(--interactive-accent);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .nl-button-container {
|
|
display: flex;
|
|
gap: 6px;
|
|
margin-top: 6px;
|
|
align-items: center;
|
|
}
|
|
|
|
.tasknotes-plugin .nl-quick-create-button {
|
|
padding: 6px 16px;
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: 500;
|
|
border-radius: var(--radius-s);
|
|
border: none;
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
cursor: var(--cursor);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .nl-quick-create-button:hover {
|
|
background: var(--interactive-accent-hover);
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
}
|
|
|
|
.tasknotes-plugin .nl-parse-button {
|
|
padding: 6px 14px;
|
|
font-size: var(--tn-font-size-md);
|
|
font-weight: 500;
|
|
border-radius: var(--radius-s);
|
|
border: 1px solid var(--background-modifier-border);
|
|
background: var(--background-primary);
|
|
color: var(--tn-text-muted);
|
|
cursor: var(--cursor);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .nl-parse-button:hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--tn-text-normal);
|
|
border-color: var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .nl-show-detail-button {
|
|
padding: 6px 8px;
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: 600;
|
|
border-radius: var(--radius-s);
|
|
border: 1px solid var(--background-modifier-border);
|
|
background: var(--background-secondary);
|
|
color: var(--tn-text-muted);
|
|
cursor: var(--cursor);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .nl-show-detail-button:hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--tn-text-normal);
|
|
border-color: var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .nl-preview-container {
|
|
margin-top: var(--size-4-1);
|
|
padding: var(--size-4-1);
|
|
background: var(--background-primary-alt);
|
|
border-radius: var(--radius-s);
|
|
border: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-plugin .nl-preview-item {
|
|
display: flex;
|
|
align-items: center;
|
|
margin-bottom: 2px;
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .nl-preview-icon {
|
|
width: 14px;
|
|
height: 14px;
|
|
margin-right: 6px;
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.tasknotes-plugin .nl-preview-text-content {
|
|
line-height: 1.3;
|
|
}
|
|
|
|
/* =====================================================================
|
|
BASE MODAL CONTAINER STYLES
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .due-date-modal,
|
|
.tasknotes-plugin .scheduled-date-modal,
|
|
.tasknotes-plugin .task-selector-modal {
|
|
padding: var(--tn-spacing-xl);
|
|
max-width: 580px;
|
|
width: 100%;
|
|
background: var(--tn-bg-primary);
|
|
border-radius: var(--tn-radius-md);
|
|
box-shadow: var(--tn-shadow-strong);
|
|
}
|
|
|
|
/* =====================================================================
|
|
MODAL HEADERS AND HEADINGS
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .due-date-modal .setting-item-heading,
|
|
.tasknotes-plugin .scheduled-date-modal .setting-item-heading {
|
|
font-size: var(--tn-font-size-xl);
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
color: var(--tn-text-normal);
|
|
line-height: 1.3;
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
padding-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* =====================================================================
|
|
SHARED FORM COMPONENTS (BEM)
|
|
===================================================================== */
|
|
|
|
/* Form Group Container */
|
|
.tasknotes-plugin .modal-form__group {
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
position: relative;
|
|
}
|
|
|
|
/* Form Labels */
|
|
.tasknotes-plugin .modal-form__label {
|
|
display: block;
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
line-height: 1.4;
|
|
}
|
|
|
|
/* Help Text */
|
|
.tasknotes-plugin .modal-form__help-text {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
margin-top: var(--tn-spacing-sm);
|
|
line-height: 1.4;
|
|
font-style: italic;
|
|
}
|
|
|
|
/* Input Container */
|
|
.tasknotes-plugin .modal-form__input-container {
|
|
position: relative;
|
|
}
|
|
|
|
/* Base Input Styles */
|
|
.tasknotes-plugin .modal-form__input,
|
|
.tasknotes-plugin .modal-form__select {
|
|
padding: var(--tn-spacing-md) var(--tn-spacing-lg);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-sm);
|
|
background: var(--tn-bg-primary);
|
|
color: var(--tn-text-normal);
|
|
font-family: inherit;
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: var(--tn-font-weight-normal);
|
|
line-height: 1.4;
|
|
transition: border-color var(--tn-transition-fast);
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
outline: none;
|
|
}
|
|
|
|
/* Make select elements taller to prevent dropdown option clipping */
|
|
.tasknotes-plugin .modal-form__select {
|
|
padding: var(--tn-spacing-lg) var(--tn-spacing-lg);
|
|
min-height: 44px;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__input:hover,
|
|
.tasknotes-plugin .modal-form__select:hover {
|
|
border-color: var(--tn-border-color-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__input:focus,
|
|
.tasknotes-plugin .modal-form__select:focus {
|
|
border-color: var(--interactive-accent);
|
|
box-shadow: none;
|
|
outline: none;
|
|
}
|
|
|
|
/* Input Modifiers */
|
|
.tasknotes-plugin .modal-form__input--textarea {
|
|
min-height: 80px;
|
|
resize: vertical;
|
|
font-family: inherit;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__input--title {
|
|
font-weight: var(--tn-font-weight-medium);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__input--number {
|
|
width: 80px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* =====================================================================
|
|
CHARACTER COUNTER COMPONENT
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .modal-form__char-counter {
|
|
position: absolute;
|
|
top: calc(-1 * var(--tn-spacing-lg));
|
|
right: 0;
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
font-weight: var(--tn-font-weight-normal);
|
|
line-height: 1.4;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__char-counter--warning {
|
|
color: var(--tn-color-error);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
}
|
|
|
|
/* =====================================================================
|
|
AUTOCOMPLETE COMPONENT
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .modal-form__autocomplete {
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__suggestions {
|
|
position: absolute;
|
|
top: calc(100% + 4px);
|
|
left: 0;
|
|
right: 0;
|
|
background: var(--tn-bg-primary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-sm);
|
|
box-shadow: var(--tn-shadow-strong);
|
|
z-index: var(--tn-z-dropdown);
|
|
max-height: 240px;
|
|
overflow-y: auto;
|
|
padding: var(--tn-spacing-sm) 0;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__suggestion {
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-lg);
|
|
cursor: var(--cursor);
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-normal);
|
|
line-height: 1.5;
|
|
transition: background-color var(--tn-transition-fast);
|
|
border: none;
|
|
background: none;
|
|
width: 100%;
|
|
text-align: left;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__suggestion:hover,
|
|
.tasknotes-plugin .modal-form__suggestion--selected {
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
/* =====================================================================
|
|
DATE/TIME INPUT COMPONENTS
|
|
===================================================================== */
|
|
|
|
/* DateTime Container */
|
|
.tasknotes-plugin .modal-form__datetime-container {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
/* User-field date input: full width textbox; icon overlayed on the left */
|
|
.tasknotes-plugin .tn-date-control {
|
|
position: relative;
|
|
padding-left: 35px; /* reserve space for the icon to the left of the textbox */
|
|
}
|
|
.tasknotes-plugin .tn-date-control input[type="text"] {
|
|
padding-left: 0; /* the padding-left is applied on the container */
|
|
}
|
|
.tasknotes-plugin .tn-date-control .user-field-date-picker-btn {
|
|
position: absolute;
|
|
left: 10px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
width: 20px;
|
|
height: 20px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border: 0;
|
|
background: transparent;
|
|
padding: 0;
|
|
color: var(--tn-text-muted);
|
|
z-index: 1;
|
|
}
|
|
.tasknotes-plugin .tn-date-control .user-field-date-picker-btn:hover {
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
|
|
/* Date and Time Input Modifiers */
|
|
.tasknotes-plugin .modal-form__input--date {
|
|
flex: 1;
|
|
min-width: 140px;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__input--time {
|
|
width: 120px;
|
|
font-family: var(--tn-font-mono);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* =====================================================================
|
|
TIME ESTIMATE COMPONENT
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .modal-form__time-estimate {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__time-label {
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-muted);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* =====================================================================
|
|
RECURRENCE COMPONENTS
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .modal-form__recurrence {
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__recurrence-options {
|
|
margin-top: var(--tn-spacing-lg);
|
|
padding: var(--tn-spacing-lg);
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-md);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__recurrence-label {
|
|
font-size: var(--tn-font-size-md);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Interval Input Components */
|
|
.tasknotes-plugin .modal-form__interval-container {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
margin: var(--tn-spacing-md) 0;
|
|
padding: var(--tn-spacing-md);
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__interval-label {
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-normal);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__input--interval {
|
|
width: 80px !important;
|
|
min-width: 60px;
|
|
flex-shrink: 0;
|
|
text-align: center;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__interval-unit {
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-normal);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* RRule Options Container */
|
|
.tasknotes-plugin .modal-form__rrule-options {
|
|
margin: var(--tn-spacing-md) 0;
|
|
}
|
|
|
|
/* RRule Labels */
|
|
.tasknotes-plugin .modal-form__rrule-label {
|
|
display: block;
|
|
font-size: var(--tn-font-size-md);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* Monthly and Yearly Options */
|
|
.tasknotes-plugin .modal-form__monthly-mode,
|
|
.tasknotes-plugin .modal-form__yearly-options {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__radio-option {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
flex-wrap: nowrap;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__radio-option input[type="radio"] {
|
|
width: auto;
|
|
height: auto;
|
|
flex: none;
|
|
margin: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__select--position,
|
|
.tasknotes-plugin .modal-form__select--weekday,
|
|
.tasknotes-plugin .modal-form__select--month {
|
|
width: auto;
|
|
min-width: 120px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__input--day {
|
|
width: 60px;
|
|
text-align: center;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__yearly-label {
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-normal);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* =====================================================================
|
|
DETAILED FORM CONTAINER (TaskCreationModal specific)
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .detailed-form-container {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-lg);
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
opacity: 1;
|
|
visibility: visible;
|
|
transition: opacity 0.2s ease-in-out;
|
|
}
|
|
|
|
.tasknotes-plugin .detailed-form-container.hidden {
|
|
display: none;
|
|
}
|
|
|
|
|
|
|
|
|
|
/* End Condition Options */
|
|
.tasknotes-plugin .modal-form__end-condition {
|
|
margin: var(--tn-spacing-md) 0;
|
|
padding: var(--tn-spacing-md);
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__end-options {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-sm);
|
|
margin-top: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__input--count {
|
|
width: 80px;
|
|
text-align: center;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__count-label {
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-normal);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* RRule Summary */
|
|
.tasknotes-plugin .modal-form__rrule-summary {
|
|
margin-top: var(--tn-spacing-md);
|
|
padding: var(--tn-spacing-md);
|
|
background: var(--tn-bg-primary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__rrule-text {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
font-style: italic;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
/* Days of Week Grid */
|
|
.tasknotes-plugin .modal-form__days-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(7, 1fr);
|
|
gap: var(--tn-spacing-md);
|
|
margin-top: var(--tn-spacing-md);
|
|
padding: var(--tn-spacing-lg);
|
|
background: var(--tn-bg-primary);
|
|
border-radius: var(--tn-radius-sm);
|
|
border: 1px solid var(--tn-border-color);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__day-checkbox {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__day-input {
|
|
margin: 0;
|
|
cursor: var(--cursor);
|
|
width: auto;
|
|
height: auto;
|
|
flex: none;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__day-label {
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
cursor: var(--cursor);
|
|
user-select: none;
|
|
line-height: 1;
|
|
}
|
|
|
|
/* =====================================================================
|
|
BUTTON COMPONENTS
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .modal-form__buttons {
|
|
display: flex;
|
|
gap: var(--tn-spacing-lg);
|
|
justify-content: flex-end;
|
|
align-items: center;
|
|
margin-top: var(--tn-spacing-xxl);
|
|
padding-top: var(--tn-spacing-lg);
|
|
border-top: 1px solid var(--tn-border-color);
|
|
}
|
|
|
|
/* Buttons use shared tn-btn system; no modal-specific overrides here */
|
|
|
|
/* Tertiary Button (Open note, etc.) */
|
|
.tasknotes-plugin .modal-form__button--tertiary {
|
|
background: transparent;
|
|
color: var(--tn-interactive-accent);
|
|
border: none;
|
|
padding: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__button--tertiary:hover {
|
|
background: var(--tn-interactive-hover);
|
|
color: var(--tn-interactive-accent-hover);
|
|
}
|
|
|
|
/* Quick Date Buttons */
|
|
.tasknotes-plugin .modal-form__quick-actions {
|
|
display: flex;
|
|
gap: var(--tn-spacing-md);
|
|
flex-wrap: wrap;
|
|
margin-top: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__button--quick-date {
|
|
flex: 1;
|
|
min-width: 0;
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-md);
|
|
background: var(--tn-bg-secondary);
|
|
color: var(--tn-text-normal);
|
|
border: 1px solid var(--tn-border-color);
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__button--quick-date:hover {
|
|
background: var(--tn-interactive-hover);
|
|
border-color: var(--tn-border-color-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__button--quick-date--clear {
|
|
background: var(--tn-bg-primary);
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__button--quick-date--clear:hover {
|
|
background: var(--tn-interactive-hover);
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
|
|
|
|
/* =====================================================================
|
|
QUICK DATE MODALS SPECIFIC
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .due-date-modal__task-title,
|
|
.tasknotes-plugin .scheduled-date-modal__task-title {
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-normal);
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
padding: var(--tn-spacing-md) var(--tn-spacing-lg);
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-sm);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
}
|
|
|
|
/* =====================================================================
|
|
TASK SELECTOR MODAL SPECIFIC
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .task-selector-modal__suggestion {
|
|
padding: var(--tn-spacing-md);
|
|
border-radius: var(--tn-radius-sm);
|
|
border-left: 3px solid transparent;
|
|
transition: all var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .task-selector-modal__suggestion:hover {
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .task-selector-modal__title {
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .task-selector-modal__task-title {
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
font-size: var(--tn-font-size-md);
|
|
}
|
|
|
|
.tasknotes-plugin .task-selector-modal__task-title--completed {
|
|
text-decoration: line-through;
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .task-selector-modal__task-title--high-priority {
|
|
color: var(--tn-color-error);
|
|
border-left-color: var(--tn-color-error);
|
|
}
|
|
|
|
.tasknotes-plugin .task-selector-modal__task-title--low-priority {
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .task-selector-modal__meta {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .task-selector-modal__due-date {
|
|
padding: 2px var(--tn-spacing-xs);
|
|
border-radius: var(--tn-radius-sm);
|
|
background: var(--tn-bg-secondary);
|
|
font-size: var(--tn-font-size-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .task-selector-modal__due-date--overdue {
|
|
background: rgba(var(--tn-color-error), 0.1);
|
|
color: var(--tn-color-error);
|
|
}
|
|
|
|
.tasknotes-plugin .task-selector-modal__due-date--today {
|
|
background: rgba(var(--tn-color-warning), 0.1);
|
|
color: var(--tn-color-warning);
|
|
}
|
|
|
|
.tasknotes-plugin .task-selector-modal__contexts {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .task-selector-modal__context-tag {
|
|
padding: 1px var(--tn-spacing-xs);
|
|
border-radius: var(--tn-radius-sm);
|
|
background: var(--tn-bg-secondary);
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .task-selector-modal__status {
|
|
padding: 2px var(--tn-spacing-xs);
|
|
border-radius: var(--tn-radius-sm);
|
|
font-size: var(--tn-font-size-xs);
|
|
text-transform: capitalize;
|
|
background: var(--tn-bg-secondary);
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
/* =====================================================================
|
|
ERROR STATES
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .modal-form__error {
|
|
padding: var(--tn-spacing-md) var(--tn-spacing-lg);
|
|
margin: var(--tn-spacing-md) 0;
|
|
background: rgba(var(--tn-color-error), 0.1);
|
|
border: 1px solid var(--tn-color-error);
|
|
border-radius: var(--tn-radius-sm);
|
|
color: var(--tn-color-error);
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
}
|
|
|
|
/* =====================================================================
|
|
RESPONSIVE DESIGN
|
|
===================================================================== */
|
|
|
|
@media (max-width: 768px) {
|
|
.tasknotes-plugin .due-date-modal,
|
|
.tasknotes-plugin .scheduled-date-modal {
|
|
padding: var(--tn-spacing-lg);
|
|
max-width: 92vw;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__buttons {
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__button {
|
|
width: 100%;
|
|
justify-content: center;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__days-grid {
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__quick-actions {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.tasknotes-plugin .modal-form__button--quick-date {
|
|
flex: none;
|
|
}
|
|
}
|
|
|
|
/* =====================================================================
|
|
ACCESSIBILITY ENHANCEMENTS
|
|
===================================================================== */
|
|
|
|
/* Focus styles are defined above - removed duplicate conflicting rules */
|
|
|
|
/* Screen reader only text */
|
|
.tasknotes-plugin .modal-form__sr-only {
|
|
position: absolute;
|
|
width: 1px;
|
|
height: 1px;
|
|
padding: 0;
|
|
margin: -1px;
|
|
overflow: hidden;
|
|
clip: rect(0, 0, 0, 0);
|
|
white-space: nowrap;
|
|
border: 0;
|
|
}
|
|
|
|
/* =====================================================================
|
|
ICS NOTE CREATION MODAL
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .ics-note-creation-modal {
|
|
width: 600px;
|
|
max-width: 90vw;
|
|
}
|
|
|
|
.tasknotes-plugin .ics-event-preview {
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
padding: var(--size-4-3);
|
|
margin-bottom: var(--size-4-3);
|
|
}
|
|
|
|
.tasknotes-plugin .ics-event-preview h3 {
|
|
margin: 0 0 var(--size-4-2) 0;
|
|
color: var(--tn-interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .event-details > div {
|
|
margin-bottom: var(--size-4-1);
|
|
font-size: var(--tn-font-size-md);
|
|
line-height: 1.4;
|
|
}
|
|
|
|
/* Align all modal setting controls to the right edge of the column */
|
|
.tasknotes-plugin .modal .setting-item .setting-item-control {
|
|
flex: none;
|
|
text-align: end;
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
align-items: center;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
|
|
.tasknotes-plugin .content-type-selector .setting-item-control {
|
|
display: flex;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .content-type-buttons button {
|
|
padding: var(--size-4-1) var(--size-4-3);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
background: var(--background-primary);
|
|
color: var(--tn-text-normal);
|
|
cursor: var(--cursor);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .content-type-buttons button:hover {
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .content-type-buttons button.mod-cta {
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border-color: var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .content-preview {
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
padding: var(--size-4-3);
|
|
margin: var(--size-4-3) 0;
|
|
}
|
|
|
|
.tasknotes-plugin .content-preview h4 {
|
|
margin: 0 0 var(--size-4-2) 0;
|
|
color: var(--tn-interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .preview-details > div {
|
|
margin-bottom: var(--size-4-1);
|
|
font-size: var(--tn-font-size-md);
|
|
}
|
|
|
|
.tasknotes-plugin .template-variables {
|
|
margin-top: var(--size-4-3);
|
|
}
|
|
|
|
.tasknotes-plugin .template-variables h5 {
|
|
margin: 0 0 var(--size-4-2) 0;
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
.tasknotes-plugin .variables-list {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: var(--size-4-1);
|
|
}
|
|
|
|
.tasknotes-plugin .template-variable {
|
|
background: var(--background-modifier-border);
|
|
color: var(--tn-text-muted);
|
|
padding: 2px var(--size-4-1);
|
|
border-radius: var(--radius-s);
|
|
font-size: var(--tn-font-size-sm);
|
|
font-family: var(--font-monospace);
|
|
}
|
|
|
|
.tasknotes-plugin .modal-button-container {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: var(--size-4-2);
|
|
margin-top: var(--size-4-4);
|
|
padding-top: var(--size-4-3);
|
|
border-top: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
/* =====================================================================
|
|
ICS EVENT INFO MODAL
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .ics-event-info-modal {
|
|
width: 700px;
|
|
max-width: 95vw;
|
|
max-height: 90vh;
|
|
overflow-y: auto;
|
|
position: relative;
|
|
z-index: 1000;
|
|
}
|
|
|
|
.tasknotes-plugin .ics-event-info-modal .modal-content {
|
|
padding: var(--size-4-4);
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.tasknotes-plugin .ics-event-info-modal * {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.tasknotes-plugin .ics-event-info-modal .modal-header h2 {
|
|
margin: 0 0 var(--size-4-4) 0;
|
|
color: var(--tn-interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .event-details-section,
|
|
.tasknotes-plugin .related-notes-section,
|
|
.tasknotes-plugin .action-buttons-section {
|
|
margin-bottom: var(--size-4-4);
|
|
padding-bottom: var(--size-4-3);
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-plugin .event-details-section:last-of-type,
|
|
.tasknotes-plugin .related-notes-section:last-of-type,
|
|
.tasknotes-plugin .action-buttons-section:last-of-type {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.tasknotes-plugin .event-details-section h3,
|
|
.tasknotes-plugin .related-notes-section h3,
|
|
.tasknotes-plugin .action-buttons-section h3 {
|
|
margin: 0 0 var(--size-4-3) 0;
|
|
font-size: var(--tn-font-size-lg);
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .event-details-grid {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .detail-row {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: var(--size-4-2);
|
|
font-size: var(--tn-font-size-md);
|
|
margin-bottom: var(--size-4-2);
|
|
line-height: 1.4;
|
|
clear: both;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tasknotes-plugin .detail-row strong {
|
|
min-width: 120px;
|
|
flex-shrink: 0;
|
|
color: var(--tn-text-muted);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.tasknotes-plugin .detail-row span {
|
|
flex: 1;
|
|
word-wrap: break-word;
|
|
overflow-wrap: break-word;
|
|
}
|
|
|
|
.tasknotes-plugin .detail-row.description-row {
|
|
flex-direction: column;
|
|
gap: var(--size-4-1);
|
|
}
|
|
|
|
.tasknotes-plugin .description-content {
|
|
background: var(--background-secondary);
|
|
padding: var(--size-4-2);
|
|
border-radius: var(--radius-s);
|
|
border: 1px solid var(--background-modifier-border);
|
|
font-style: italic;
|
|
white-space: pre-wrap;
|
|
}
|
|
|
|
.tasknotes-plugin .external-link {
|
|
color: var(--interactive-accent);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.tasknotes-plugin .external-link:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.tasknotes-plugin .empty-state {
|
|
text-align: center;
|
|
color: var(--tn-text-muted);
|
|
font-style: italic;
|
|
padding: var(--size-4-4);
|
|
background: var(--background-secondary);
|
|
border-radius: var(--radius-s);
|
|
border: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-plugin .related-notes-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .related-note-item {
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
padding: var(--size-4-3);
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .related-note-item:hover {
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .note-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--size-4-2);
|
|
margin-bottom: var(--size-4-1);
|
|
}
|
|
|
|
.tasknotes-plugin .note-icon {
|
|
font-size: var(--tn-font-size-lg);
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.tasknotes-plugin .note-header .internal-link {
|
|
color: var(--tn-text-normal);
|
|
text-decoration: none;
|
|
font-weight: 500;
|
|
flex: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .note-header .internal-link:hover {
|
|
color: var(--interactive-accent);
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.tasknotes-plugin .note-metadata {
|
|
display: flex;
|
|
gap: var(--size-4-2);
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .note-status,
|
|
.tasknotes-plugin .note-priority {
|
|
background: var(--background-modifier-border);
|
|
padding: 2px var(--size-4-1);
|
|
border-radius: var(--radius-s);
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .action-buttons {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
|
|
.tasknotes-plugin .close-button-container {
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-top: var(--size-4-4);
|
|
padding-top: var(--size-4-3);
|
|
border-top: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
/* =====================================================================
|
|
ICS NOTE LINK MODAL (Fuzzy Selector)
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .ics-note-link-suggestion {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-1);
|
|
padding: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .note-link-name {
|
|
font-weight: 500;
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .note-link-path {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
font-style: italic;
|
|
}
|
|
|
|
|
|
|
|
/* ===== TASK-MODAL.CSS ===== */
|
|
/* =====================================================================
|
|
TASK MODAL - Google Keep/Todoist Inspired
|
|
===================================================================== */
|
|
|
|
/* Fix suggestion text truncation */
|
|
.suggestion-item .nlp-suggest-text {
|
|
white-space: nowrap;
|
|
overflow: visible;
|
|
text-overflow: clip;
|
|
max-width: none;
|
|
width: auto;
|
|
}
|
|
|
|
/* =====================================================================
|
|
EMBEDDABLE MARKDOWN EDITOR
|
|
===================================================================== */
|
|
|
|
.details-markdown-editor {
|
|
margin-bottom: var(--size-4-3);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
overflow: hidden;
|
|
min-height: 200px;
|
|
max-height: 400px;
|
|
}
|
|
|
|
.details-markdown-editor .task-details-editor {
|
|
min-height: 200px;
|
|
max-height: 400px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
/* Make the editor container scrollable */
|
|
.details-markdown-editor .cm-editor {
|
|
height: 100%;
|
|
min-height: 200px;
|
|
max-height: 400px;
|
|
}
|
|
|
|
.details-markdown-editor .cm-scroller {
|
|
overflow: auto;
|
|
max-height: 400px;
|
|
padding-top: var(--size-4-2);
|
|
padding-bottom: var(--size-4-2);
|
|
}
|
|
|
|
/* Style the editor content */
|
|
.details-markdown-editor .cm-content {
|
|
padding-left: var(--size-4-2) !important;
|
|
padding-right: var(--size-4-2) !important;
|
|
padding-top: 0 !important;
|
|
padding-bottom: 0 !important;
|
|
font-family: var(--font-text);
|
|
font-size: var(--font-ui-medium);
|
|
line-height: var(--line-height-normal);
|
|
}
|
|
|
|
/* Ensure the editor line doesn't add extra padding */
|
|
/* .details-markdown-editor .cm-line { */
|
|
/* padding-left: 0 !important; */
|
|
/* padding-right: 0 !important; */
|
|
/* } */
|
|
|
|
/* Placeholder styling */
|
|
.details-markdown-editor .cm-placeholder {
|
|
color: var(--text-faint);
|
|
font-style: italic;
|
|
}
|
|
|
|
/* =====================================================================
|
|
NLP MARKDOWN EDITOR
|
|
===================================================================== */
|
|
|
|
.nl-markdown-editor {
|
|
margin-bottom: var(--size-4-2);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
overflow: visible;
|
|
min-height: 80px;
|
|
max-height: 200px;
|
|
background: transparent;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.nl-markdown-editor .nlp-editor {
|
|
min-height: 80px;
|
|
max-height: 200px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.nl-markdown-editor .cm-editor {
|
|
height: 100%;
|
|
min-height: 80px;
|
|
max-height: 200px;
|
|
background: transparent;
|
|
overflow: visible;
|
|
}
|
|
|
|
/* Focus state for NLP editor - match old nl-input styling */
|
|
.nl-markdown-editor:focus-within {
|
|
border-color: var(--interactive-accent);
|
|
background: transparent;
|
|
box-shadow: 0 0 0 2px rgba(var(--interactive-accent-rgb), 0.2);
|
|
}
|
|
|
|
.nl-markdown-editor:focus-within .cm-editor {
|
|
background: transparent;
|
|
}
|
|
|
|
.nl-markdown-editor .cm-scroller {
|
|
overflow: auto;
|
|
max-height: 200px;
|
|
padding-top: var(--size-4-3);
|
|
padding-bottom: var(--size-4-3);
|
|
}
|
|
|
|
.nl-markdown-editor .cm-content {
|
|
padding-left: var(--size-4-2) !important;
|
|
padding-right: var(--size-4-2) !important;
|
|
padding-top: 0 !important;
|
|
padding-bottom: 0 !important;
|
|
font-family: var(--font-text);
|
|
font-size: var(--font-ui-medium);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
|
|
.nl-markdown-editor .cm-placeholder {
|
|
color: var(--text-muted);
|
|
font-style: italic;
|
|
}
|
|
|
|
|
|
/* =====================================================================
|
|
CODEMIRROR AUTOCOMPLETE STYLING (for NLP triggers)
|
|
Scoped to TaskNotes modals only
|
|
===================================================================== */
|
|
|
|
/* Main autocomplete tooltip - scoped to TaskNotes modals */
|
|
.tasknotes-plugin .cm-tooltip-autocomplete {
|
|
background-color: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-m);
|
|
box-shadow: var(--shadow-s);
|
|
padding: var(--size-4-1);
|
|
font-family: var(--font-ui);
|
|
font-size: var(--font-ui-small);
|
|
z-index: 9999;
|
|
max-height: 300px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
/* Autocomplete list */
|
|
.tasknotes-plugin .cm-tooltip-autocomplete ul {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
/* Individual completion option */
|
|
.tasknotes-plugin .cm-tooltip-autocomplete li {
|
|
padding: var(--size-4-2) var(--size-4-3);
|
|
cursor: var(--cursor);
|
|
border-radius: var(--radius-s);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
/* Hovered option */
|
|
.tasknotes-plugin .cm-tooltip-autocomplete li:hover,
|
|
.tasknotes-plugin .cm-tooltip-autocomplete li[aria-selected="true"] {
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
/* Selected option */
|
|
.tasknotes-plugin .cm-tooltip-autocomplete li[aria-selected="true"] {
|
|
background-color: var(--background-modifier-active-hover);
|
|
}
|
|
|
|
/* Completion label (main text) */
|
|
.tasknotes-plugin .cm-completionLabel {
|
|
flex: 1;
|
|
color: var(--text-normal);
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* Completion info (right side) */
|
|
.tasknotes-plugin .cm-completionInfo {
|
|
color: var(--text-muted);
|
|
font-size: var(--font-ui-smaller);
|
|
font-weight: normal;
|
|
}
|
|
|
|
/* Completion detail (description) */
|
|
.tasknotes-plugin .cm-completionDetail {
|
|
color: var(--text-faint);
|
|
font-size: var(--font-ui-smaller);
|
|
margin-left: var(--size-4-2);
|
|
}
|
|
|
|
/* Icon for different completion types */
|
|
.tasknotes-plugin .cm-completionIcon {
|
|
width: 16px;
|
|
height: 16px;
|
|
margin-right: var(--size-4-2);
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* Match highlighting in completion */
|
|
.tasknotes-plugin .cm-completionMatchedText {
|
|
text-decoration: underline;
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
.tasknotes-plugin.minimalist-task-modal {
|
|
/* Modal container adjustments */
|
|
}
|
|
|
|
/* Modal header with TaskNotes icon */
|
|
.modal-header-container {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--size-4-2);
|
|
margin-bottom: var(--size-4-3);
|
|
}
|
|
|
|
.modal-header-icon {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
margin-right: 8px;
|
|
color: var(--color-accent);
|
|
width: 20px;
|
|
height: 20px;
|
|
}
|
|
|
|
.modal-header-icon svg {
|
|
width: 20px !important;
|
|
height: 20px !important;
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
/* User fields section styling */
|
|
.user-fields-separator {
|
|
margin-top: var(--size-4-4);
|
|
border-top: 0.5px solid var(--background-modifier-border);
|
|
padding-top: var(--size-4-3);
|
|
}
|
|
|
|
/* Section separator between field groups */
|
|
.tasknotes-plugin .task-modal__section-separator {
|
|
border: none;
|
|
border-top: 0.5px solid var(--background-modifier-border);
|
|
margin: var(--size-4-3) 0;
|
|
}
|
|
|
|
.detail-label-section {
|
|
font-weight: 600;
|
|
color: var(--text-muted);
|
|
font-size: 0.9em;
|
|
margin-bottom: var(--size-4-2);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
.modal-header-icon .svg-icon {
|
|
width: 20px !important;
|
|
height: 20px !important;
|
|
}
|
|
|
|
.modal-header-icon .tasknotes-simple {
|
|
width: 20px !important;
|
|
height: 20px !important;
|
|
color: var(--color-accent) !important;
|
|
}
|
|
|
|
.modal-header-title {
|
|
font-size: var(--font-ui-larger);
|
|
font-weight: var(--font-weight-bold);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin.minimalist-task-modal .modal-content {
|
|
padding: 0;
|
|
border-radius: var(--radius-l);
|
|
box-shadow: var(--shadow-l);
|
|
min-width: 480px;
|
|
max-width: 600px;
|
|
}
|
|
|
|
.tasknotes-plugin .minimalist-modal-container {
|
|
padding: var(--size-4-4);
|
|
background: var(--modal-background);
|
|
}
|
|
|
|
/* Override shadow variable inside the modal, then re-apply outer shadow explicitly */
|
|
.theme-light .tasknotes-plugin.minimalist-task-modal,
|
|
.theme-dark .tasknotes-plugin.minimalist-task-modal {
|
|
--shadow-l: none;
|
|
}
|
|
|
|
/* Re-apply outer shadow to the modal element itself */
|
|
.tasknotes-plugin.minimalist-task-modal > .modal {
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
|
|
}
|
|
|
|
/* =====================================================================
|
|
TITLE INPUT - PRIMARY FOCUS
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .title-input-container {
|
|
margin-bottom: var(--size-4-3);
|
|
}
|
|
|
|
.tasknotes-plugin .title-input {
|
|
width: 100%;
|
|
padding: var(--size-4-2) var(--size-4-1);
|
|
font-size: var(--font-ui-large);
|
|
font-weight: 500;
|
|
line-height: 1.4;
|
|
border: none;
|
|
outline: none;
|
|
background: transparent;
|
|
color: var(--text-normal);
|
|
resize: none;
|
|
min-height: 44px;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .title-input::placeholder {
|
|
color: var(--text-muted);
|
|
font-weight: 400;
|
|
}
|
|
|
|
.tasknotes-plugin .title-input:focus,
|
|
.tasknotes-plugin .title-input:active,
|
|
.tasknotes-plugin .title-input:focus-visible {
|
|
background: var(--background-modifier-hover);
|
|
border-radius: var(--radius-s);
|
|
outline: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* =====================================================================
|
|
ACTION BAR - ICON-BASED CONTROLS
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .action-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--size-4-1);
|
|
margin-bottom: var(--size-4-3);
|
|
padding: var(--size-4-1) 0;
|
|
}
|
|
|
|
.tasknotes-plugin .action-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 32px;
|
|
height: 32px;
|
|
border-radius: var(--radius-s);
|
|
cursor: var(--cursor);
|
|
transition: all 0.2s ease;
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .action-icon:hover {
|
|
background: var(--background-modifier-hover);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.tasknotes-plugin .action-icon .icon {
|
|
width: 16px;
|
|
height: 16px;
|
|
color: var(--text-muted);
|
|
transition: color 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .action-icon:hover .icon {
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* Active state for icons when they have values - only show the dot */
|
|
.tasknotes-plugin .action-icon.has-value {
|
|
/* Remove full background colorization */
|
|
}
|
|
|
|
.tasknotes-plugin .action-icon.has-value::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: -2px;
|
|
right: -2px;
|
|
width: 8px;
|
|
height: 8px;
|
|
background: var(--color-accent);
|
|
border: 2px solid var(--background-primary);
|
|
border-radius: 50%;
|
|
}
|
|
|
|
/* =====================================================================
|
|
DETAILS SECTION - PROGRESSIVE DISCLOSURE
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .details-container {
|
|
transition: all 0.3s ease;
|
|
transform-origin: top;
|
|
}
|
|
|
|
.tasknotes-plugin .detail-label {
|
|
font-size: var(--font-ui-small);
|
|
font-weight: 600;
|
|
color: var(--text-muted);
|
|
margin-bottom: var(--size-4-1);
|
|
margin-top: var(--size-4-3);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
}
|
|
|
|
.tasknotes-plugin .detail-label:first-child {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .title-input-detailed {
|
|
width: 100%;
|
|
padding: var(--size-4-2);
|
|
font-size: var(--font-ui-medium);
|
|
font-weight: 500;
|
|
line-height: 1.4;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
background: transparent;
|
|
color: var(--text-normal);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .title-input-detailed:focus,
|
|
.tasknotes-plugin .title-input-detailed:active,
|
|
.tasknotes-plugin .title-input-detailed:focus-visible {
|
|
outline: none;
|
|
box-shadow: none;
|
|
border-color: var(--interactive-accent);
|
|
background: transparent;
|
|
}
|
|
|
|
.tasknotes-plugin .title-input-detailed::placeholder {
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .details-input {
|
|
width: 100%;
|
|
min-height: 80px;
|
|
padding: var(--size-4-2);
|
|
font-size: var(--font-ui-medium);
|
|
line-height: 1.5;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
background: transparent;
|
|
color: var(--text-normal);
|
|
resize: vertical;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .details-input:focus {
|
|
outline: none;
|
|
border-color: var(--interactive-accent);
|
|
background: transparent;
|
|
}
|
|
|
|
.tasknotes-plugin .details-input::placeholder {
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
|
|
/* =====================================================================
|
|
ADDITIONAL FIELDS - SETTINGS STYLE
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .details-container .setting-item {
|
|
border: none;
|
|
padding: var(--size-4-2) 0;
|
|
}
|
|
|
|
.tasknotes-plugin .details-container .setting-item-name {
|
|
font-size: var(--font-ui-small);
|
|
font-weight: 600;
|
|
color: var(--text-muted);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
}
|
|
|
|
.tasknotes-plugin .details-container .setting-item-control input {
|
|
background: transparent;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
padding: var(--size-4-1) var(--size-4-2);
|
|
font-size: var(--font-ui-medium);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .details-container .setting-item-control input:focus {
|
|
border-color: var(--interactive-accent);
|
|
background: transparent;
|
|
outline: none;
|
|
}
|
|
|
|
/* =====================================================================
|
|
OPEN NOTE BUTTON (IN BUTTON BAR)
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .open-note-button {
|
|
padding: var(--size-4-2) var(--size-4-3);
|
|
font-weight: 500;
|
|
border: 1px solid var(--interactive-accent);
|
|
border-radius: var(--radius-s);
|
|
background: transparent;
|
|
color: var(--interactive-accent);
|
|
cursor: var(--cursor);
|
|
transition: all 0.2s ease;
|
|
min-width: 80px;
|
|
}
|
|
|
|
.tasknotes-plugin .open-note-button:hover {
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border: 1px solid var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .open-note-button:active {
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border: 1px solid var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .open-note-button:focus-visible {
|
|
box-shadow: 0 0 0 3px var(--background-modifier-border-focus);
|
|
}
|
|
|
|
.tasknotes-plugin .archive-button:focus-visible {
|
|
box-shadow: 0 0 0 3px var(--background-modifier-border-focus);
|
|
}
|
|
|
|
/* =====================================================================
|
|
MODAL BUTTON CONTAINER - Native Obsidian style
|
|
===================================================================== */
|
|
|
|
/* Use native modal-button-container class */
|
|
.modal.mod-tasknotes .modal-button-container {
|
|
display: flex;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
/* Push Save/Cancel buttons to the right on desktop only */
|
|
body:not(.is-mobile) .modal.mod-tasknotes .modal-button-container .mod-cta {
|
|
margin-left: auto;
|
|
}
|
|
|
|
/* =====================================================================
|
|
MODAL EXPANSION ANIMATION
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin.minimalist-task-modal .modal-content {
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.tasknotes-plugin.minimalist-task-modal.expanded .modal-content {
|
|
min-height: 400px;
|
|
}
|
|
|
|
/* =====================================================================
|
|
RESPONSIVE DESIGN
|
|
===================================================================== */
|
|
|
|
@media (max-width: 600px) {
|
|
.tasknotes-plugin.minimalist-task-modal .modal-content {
|
|
min-width: 90vw;
|
|
max-width: 90vw;
|
|
}
|
|
|
|
.tasknotes-plugin .minimalist-modal-container {
|
|
padding: var(--size-4-3);
|
|
}
|
|
|
|
.tasknotes-plugin .action-bar {
|
|
flex-wrap: wrap;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
.modal.mod-tasknotes .modal-button-container {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.modal.mod-tasknotes .modal-button-container button {
|
|
width: 100%;
|
|
}
|
|
|
|
/* Reset margin for small screens on desktop too */
|
|
.modal.mod-tasknotes .modal-button-container .mod-cta {
|
|
margin-left: 0;
|
|
}
|
|
}
|
|
|
|
/* =====================================================================
|
|
SPLIT LAYOUT - BASE STYLES (mobile/narrow screens)
|
|
On narrow screens, content flows vertically with details below title
|
|
===================================================================== */
|
|
|
|
/* Split content wrapper - use flex column for ordering on narrow screens */
|
|
.tasknotes-plugin.minimalist-task-modal .modal-split-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
/* Left column: contains title, action bar, and form fields */
|
|
.tasknotes-plugin.minimalist-task-modal .modal-split-left {
|
|
display: contents;
|
|
}
|
|
|
|
/* Title input container - first item */
|
|
.tasknotes-plugin.minimalist-task-modal .modal-split-left .title-input-container,
|
|
.tasknotes-plugin.minimalist-task-modal .modal-split-left .nl-markdown-editor {
|
|
order: 1;
|
|
}
|
|
|
|
/* Action bar - second item */
|
|
.tasknotes-plugin.minimalist-task-modal .modal-split-left .action-bar {
|
|
order: 2;
|
|
}
|
|
|
|
/* Right column: contains details editor - appears after action bar on narrow screens */
|
|
.tasknotes-plugin.minimalist-task-modal .modal-split-right {
|
|
order: 3;
|
|
}
|
|
|
|
/* Details container (form fields) - after the details editor on narrow screens */
|
|
.tasknotes-plugin.minimalist-task-modal .modal-split-left .details-container {
|
|
order: 4;
|
|
}
|
|
|
|
/* Additional sections (completions calendar, metadata) - last */
|
|
.tasknotes-plugin.minimalist-task-modal .modal-split-left .completions-calendar-container,
|
|
.tasknotes-plugin.minimalist-task-modal .modal-split-left .metadata-container {
|
|
order: 5;
|
|
}
|
|
|
|
/* Hide empty right column indicator on narrow screens */
|
|
.tasknotes-plugin.minimalist-task-modal .modal-split-right:empty {
|
|
display: none;
|
|
}
|
|
|
|
/* =====================================================================
|
|
SPLIT LAYOUT - WIDE SCREENS (900px+)
|
|
Details field appears on the right when modal is expanded
|
|
Only applies when split-layout-enabled class is present (controlled by setting)
|
|
===================================================================== */
|
|
|
|
@media (min-width: 900px) {
|
|
/* Widen modal for split layout when expanded */
|
|
/* Target both .modal (modalEl) and .modal-content for max compatibility */
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal,
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded.modal {
|
|
width: 850px;
|
|
max-width: 90vw;
|
|
}
|
|
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-content {
|
|
min-width: 100%;
|
|
max-width: 100%;
|
|
padding: 0;
|
|
}
|
|
|
|
/* Main container - no padding on right for edge-to-edge details */
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .minimalist-modal-container {
|
|
display: flex;
|
|
flex-direction: column;
|
|
padding-right: 0;
|
|
}
|
|
|
|
/* Split content wrapper - holds left and right columns side by side */
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-content {
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex: 1;
|
|
min-height: 0;
|
|
gap: 0;
|
|
}
|
|
|
|
/* Left column - reset display:contents and use flex column */
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-left {
|
|
flex: 0 0 380px;
|
|
min-width: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
padding-right: var(--size-4-4);
|
|
overflow-y: auto;
|
|
max-height: 70vh;
|
|
}
|
|
|
|
/* Reset ordering for split layout - elements flow naturally in their DOM order */
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-left .title-input-container,
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-left .nl-markdown-editor,
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-left .action-bar,
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-left .details-container,
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-left .completions-calendar-container,
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-left .metadata-container,
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-right {
|
|
order: unset;
|
|
}
|
|
|
|
/* Right column - details editor takes full height, edge to edge */
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-right {
|
|
flex: 1;
|
|
min-width: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
border-left: 1px solid var(--background-modifier-border);
|
|
margin: calc(-1 * var(--size-4-4)) 0;
|
|
margin-right: calc(-1 * var(--size-4-4));
|
|
border-radius: 0;
|
|
max-height: 70vh;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Hide empty right column on wide screens too */
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-right:empty {
|
|
display: none;
|
|
}
|
|
|
|
/* When right column is empty, left column takes full width */
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-right:empty ~ .modal-split-left,
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-content:has(.modal-split-right:empty) .modal-split-left {
|
|
flex: 1;
|
|
padding-right: 0;
|
|
}
|
|
|
|
/* Details label in right column */
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-right .detail-label {
|
|
margin: 0;
|
|
padding: var(--size-4-3) var(--size-4-4);
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
/* Make details editor fill the right column completely */
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-right .details-markdown-editor {
|
|
flex: 1;
|
|
min-height: 0;
|
|
max-height: none;
|
|
display: flex;
|
|
flex-direction: column;
|
|
border: none;
|
|
border-radius: 0;
|
|
margin: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-right .details-markdown-editor .cm-editor {
|
|
flex: 1;
|
|
max-height: none;
|
|
border-radius: 0;
|
|
min-height: 0;
|
|
}
|
|
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-right .details-markdown-editor .cm-scroller {
|
|
max-height: none;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-right .details-markdown-editor .task-details-editor {
|
|
max-height: none;
|
|
flex: 1;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Button container needs proper positioning */
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-button-container {
|
|
padding-right: var(--size-4-4);
|
|
}
|
|
}
|
|
|
|
/* =====================================================================
|
|
SPLIT LAYOUT - EXTRA WIDE SCREENS (1200px+)
|
|
Modal expands to 1100px on larger screens
|
|
===================================================================== */
|
|
|
|
@media (min-width: 1200px) {
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal,
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded.modal {
|
|
width: 1100px;
|
|
}
|
|
|
|
/* Left column gets more space on wider screens */
|
|
.tasknotes-plugin.minimalist-task-modal.split-layout-enabled.expanded .modal-split-left {
|
|
flex: 0 0 480px;
|
|
}
|
|
}
|
|
|
|
/* =====================================================================
|
|
ACCESSIBILITY ENHANCEMENTS
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .action-icon:focus-visible {
|
|
outline: none;
|
|
box-shadow: 0 0 0 1px var(--interactive-accent);
|
|
transition: box-shadow 0.15s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .details-input:focus-visible {
|
|
outline: 2px solid var(--interactive-accent);
|
|
outline-offset: 1px;
|
|
}
|
|
|
|
/* =====================================================================
|
|
METADATA SECTION - FOR EDIT MODAL
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .metadata-container {
|
|
margin-top: var(--size-4-3);
|
|
padding-top: var(--size-4-3);
|
|
border-top: 0.5px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-plugin .metadata-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-1);
|
|
}
|
|
|
|
.tasknotes-plugin .metadata-item {
|
|
display: flex;
|
|
align-items: center;
|
|
font-size: var(--font-ui-small);
|
|
}
|
|
|
|
.tasknotes-plugin .metadata-key {
|
|
color: var(--text-muted);
|
|
font-weight: 500;
|
|
min-width: 80px;
|
|
}
|
|
|
|
.tasknotes-plugin .metadata-value {
|
|
color: var(--text-normal);
|
|
font-family: var(--font-monospace);
|
|
}
|
|
|
|
/* =====================================================================
|
|
AUTOCOMPLETE STYLING
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .autocomplete-suggestions {
|
|
position: absolute;
|
|
top: 100%;
|
|
left: 0;
|
|
right: 0;
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-top: none;
|
|
border-radius: 0 0 var(--radius-s) var(--radius-s);
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
z-index: 1000;
|
|
max-height: 200px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .autocomplete-suggestion {
|
|
padding: 8px 12px;
|
|
cursor: var(--cursor);
|
|
border-bottom: 1px solid var(--background-modifier-border-hover);
|
|
font-size: var(--font-ui-small);
|
|
color: var(--text-normal);
|
|
transition: background-color 0.1s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .autocomplete-suggestion:hover {
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .autocomplete-suggestion:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
/* =====================================================================
|
|
NLP INPUT STYLING UPDATES
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .nl-input {
|
|
width: 100%;
|
|
padding: var(--size-4-3) var(--size-4-2);
|
|
font-weight: 400;
|
|
line-height: 1.5;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
background: transparent;
|
|
color: var(--text-normal);
|
|
resize: vertical;
|
|
min-height: 80px;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .nl-input:focus {
|
|
outline: none;
|
|
border-color: var(--interactive-accent);
|
|
background: transparent;
|
|
box-shadow: 0 0 0 2px rgba(var(--interactive-accent-rgb), 0.2);
|
|
}
|
|
|
|
.tasknotes-plugin .nl-input::placeholder {
|
|
color: var(--text-muted);
|
|
font-style: italic;
|
|
}
|
|
|
|
/* =====================================================================
|
|
COMPLETIONS CALENDAR SECTION
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .completions-calendar-container {
|
|
margin-top: var(--size-4-3);
|
|
padding-top: var(--size-4-3);
|
|
border-top: 0.5px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-plugin .completions-calendar-content {
|
|
max-width: 200px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
/* =====================================================================
|
|
RECURRING CALENDAR COMPONENT - BEM & MINIMALIST
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .metadata-item--calendar {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar {
|
|
margin-top: var(--size-4-1);
|
|
font-size: var(--font-ui-small);
|
|
width: 100%;
|
|
max-width: 200px;
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: var(--size-4-1);
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__nav {
|
|
border: none;
|
|
background: transparent;
|
|
color: var(--text-muted);
|
|
cursor: var(--cursor);
|
|
font-size: 14px;
|
|
padding: 2px 4px;
|
|
transition: color 0.1s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__nav:hover {
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__month {
|
|
font-size: var(--font-ui-small);
|
|
color: var(--text-normal);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(7, 1fr);
|
|
gap: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__day {
|
|
width: 20px;
|
|
height: 20px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 11px;
|
|
color: var(--text-faint);
|
|
border-radius: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__day--faded {
|
|
color: var(--text-faint);
|
|
opacity: 0.4;
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__day--clickable {
|
|
cursor: var(--cursor);
|
|
transition: all 0.1s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__day--clickable:hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__day--recurring {
|
|
color: var(--text-normal);
|
|
border: 1px solid var(--text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__day--recurring:hover {
|
|
border-color: var(--interactive-accent);
|
|
color: var(--interactive-accent);
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__day--completed {
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border: 1px solid var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__day--completed:hover {
|
|
background: var(--interactive-accent-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__day--skipped {
|
|
background: rgba(128, 128, 128, 0.3);
|
|
color: var(--text-muted);
|
|
border: 1px solid var(--text-faint);
|
|
text-decoration: line-through;
|
|
}
|
|
|
|
.tasknotes-plugin .recurring-calendar__day--skipped:hover {
|
|
background: rgba(128, 128, 128, 0.4);
|
|
border-color: var(--text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .nl-preview-container {
|
|
margin-top: var(--size-4-2);
|
|
padding: var(--size-4-2);
|
|
background: var(--background-primary-alt);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
display: none;
|
|
}
|
|
|
|
.tasknotes-plugin .nl-preview-item {
|
|
display: flex;
|
|
align-items: center;
|
|
word-break: break-all;
|
|
margin-bottom: var(--size-4-1);
|
|
font-size: var(--font-ui-small);
|
|
}
|
|
|
|
.tasknotes-plugin .nl-preview-item:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .nl-preview-label {
|
|
min-width: 80px;
|
|
font-weight: 600;
|
|
color: var(--text-muted);
|
|
margin-right: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .nl-preview-value {
|
|
color: var(--text-normal);
|
|
flex: 1;
|
|
}
|
|
|
|
/* =====================================================================
|
|
DARK MODE ADJUSTMENTS
|
|
===================================================================== */
|
|
|
|
.theme-dark .tasknotes-plugin .action-icon.has-value::after {
|
|
border-color: var(--background-primary-alt);
|
|
}
|
|
|
|
.theme-dark .tasknotes-plugin .autocomplete-suggestions {
|
|
box-shadow: 0 2px 16px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
/* NLP Auto-suggestion specific styles */
|
|
.tasknotes-plugin .nlp-suggest-icon {
|
|
display: inline-block;
|
|
font-weight: 600;
|
|
color: var(--interactive-accent);
|
|
margin-right: var(--size-2-2);
|
|
min-width: 14px;
|
|
}
|
|
|
|
.tasknotes-plugin .nlp-suggest-text {
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* NLP Project Suggestion Styles - Rich Metadata Display (Textarea-based suggester in TaskCreationModal) */
|
|
.tasknotes-plugin .nlp-suggest-project__filename {
|
|
font-weight: var(--font-weight-medium);
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-small);
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .nlp-suggest-project__meta {
|
|
font-size: var(--font-ui-smaller);
|
|
color: var(--text-muted);
|
|
margin-top: 2px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.tasknotes-plugin .nlp-suggest-project__meta-label {
|
|
color: var(--text-muted);
|
|
font-weight: 500;
|
|
margin-right: 4px;
|
|
}
|
|
|
|
.tasknotes-plugin .nlp-suggest-project__meta-value {
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* CodeMirror Project Suggestion Styles - Rich Metadata Display */
|
|
.tasknotes-plugin .cm-tooltip-autocomplete .cm-project-suggestion {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
padding: var(--size-4-1) 0;
|
|
}
|
|
|
|
.tasknotes-plugin .cm-tooltip-autocomplete .cm-project-suggestion__name {
|
|
font-weight: var(--font-weight-medium);
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-small);
|
|
}
|
|
|
|
.tasknotes-plugin .cm-tooltip-autocomplete .cm-project-suggestion__meta {
|
|
font-size: var(--font-ui-smaller);
|
|
color: var(--text-muted);
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.tasknotes-plugin .cm-tooltip-autocomplete .cm-project-suggestion__meta-label {
|
|
color: var(--text-muted);
|
|
font-weight: 500;
|
|
margin-right: 4px;
|
|
}
|
|
|
|
.tasknotes-plugin .cm-tooltip-autocomplete .cm-project-suggestion__meta-value {
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* =====================================================================
|
|
PROJECT SELECTION UI
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .task-projects-list {
|
|
margin-top: var(--size-4-2);
|
|
border: none;
|
|
border-radius: var(--radius-s);
|
|
max-height: 150px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .task-projects-empty {
|
|
padding: var(--size-4-3);
|
|
text-align: center;
|
|
color: var(--text-muted);
|
|
font-style: italic;
|
|
border: none;
|
|
font-size: var(--font-ui-small);
|
|
}
|
|
|
|
.tasknotes-plugin .task-project-item {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: var(--size-4-2);
|
|
border: none;
|
|
gap: var(--size-4-2);
|
|
border-radius: var(--radius-s);
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .task-project-item:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .task-project-info {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-project-name {
|
|
display: block;
|
|
font-weight: var(--font-weight-medium);
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-small);
|
|
}
|
|
|
|
.tasknotes-plugin .task-project-item--unresolved {
|
|
border: 1px solid var(--color-orange);
|
|
background: color-mix(in srgb, var(--color-orange) 12%, var(--background-secondary));
|
|
}
|
|
|
|
.tasknotes-plugin .task-project-item--unresolved .task-project-name {
|
|
color: var(--color-orange);
|
|
}
|
|
|
|
/* Make clickable project names in edit modal look and behave like links */
|
|
.tasknotes-plugin .clickable-project .internal-link {
|
|
color: var(--link-color);
|
|
text-decoration: none;
|
|
cursor: var(--cursor);
|
|
font-weight: var(--font-weight-medium);
|
|
font-size: var(--font-ui-small);
|
|
border-radius: var(--radius-xs);
|
|
padding: 1px 2px;
|
|
transition: background-color 0.2s ease, color 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .clickable-project .internal-link:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
color: var(--link-color-hover);
|
|
text-decoration: underline;
|
|
}
|
|
|
|
/* Remove the default + prefix for clickable projects since they're now clearly links */
|
|
.tasknotes-plugin .clickable-project .internal-link::before {
|
|
content: '+';
|
|
color: var(--text-muted);
|
|
margin-right: 2px;
|
|
}
|
|
|
|
/* Style dependency items the same way when rendered as internal links */
|
|
.tasknotes-plugin .clickable-dependency .task-dependency-link {
|
|
color: var(--link-color);
|
|
text-decoration: none;
|
|
cursor: var(--cursor);
|
|
font-weight: var(--font-weight-medium);
|
|
font-size: var(--font-ui-small);
|
|
border-radius: var(--radius-xs);
|
|
padding: 1px 2px;
|
|
transition: background-color 0.2s ease, color 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .clickable-dependency .task-dependency-link:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
color: var(--link-color-hover);
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.tasknotes-plugin .task-project-path {
|
|
font-size: var(--font-ui-smaller);
|
|
color: var(--text-muted);
|
|
margin-top: 2px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* Use consistent button system for project remove button */
|
|
.tasknotes-plugin .task-project-remove {
|
|
background: transparent;
|
|
border: none;
|
|
box-shadow: none;
|
|
color: var(--text-muted);
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
width: 20px;
|
|
height: 20px;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.tasknotes-plugin .task-project-remove:hover {
|
|
background: var(--tn-color-error);
|
|
color: var(--tn-bg-primary);
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* =====================================================================
|
|
PROJECT SELECT MODAL
|
|
===================================================================== */
|
|
|
|
/* Use consistent button system for project suggestions */
|
|
.tasknotes-plugin .project-suggestion {
|
|
background: transparent;
|
|
border: none;
|
|
box-shadow: none;
|
|
padding: var(--size-4-2);
|
|
border-radius: var(--radius-s);
|
|
}
|
|
|
|
.tasknotes-plugin .project-suggestion:hover {
|
|
background: var(--tn-interactive-hover);
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .project-name {
|
|
font-weight: var(--font-weight-medium);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .project-path {
|
|
font-size: var(--font-ui-smaller);
|
|
color: var(--text-muted);
|
|
margin-top: 2px;
|
|
}
|
|
|
|
|
|
/* ===== REMINDER-MODAL.CSS ===== */
|
|
/* =====================================================================
|
|
REMINDER MODAL - Consistent with Task Modal Styling
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .tasknotes-reminder-modal {
|
|
max-width: 600px;
|
|
min-width: 480px;
|
|
min-height: 400px;
|
|
max-height: 75vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
border-radius: var(--radius-l);
|
|
box-shadow: var(--shadow-l);
|
|
}
|
|
|
|
/* =====================================================================
|
|
HEADER SECTION
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .reminder-modal__header {
|
|
padding: var(--size-4-4) var(--size-4-4) var(--size-4-3);
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__header h2 {
|
|
margin: 0 0 var(--size-4-1) 0;
|
|
font-size: var(--font-ui-large);
|
|
font-weight: 600;
|
|
color: var(--text-normal);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__task-title {
|
|
font-size: var(--font-ui-medium);
|
|
font-weight: 500;
|
|
color: var(--interactive-accent);
|
|
display: block;
|
|
margin-bottom: var(--size-4-1);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__task-dates {
|
|
font-size: var(--font-ui-small);
|
|
color: var(--text-muted);
|
|
font-style: italic;
|
|
}
|
|
|
|
/* =====================================================================
|
|
CONTENT AREA
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .reminder-modal__content {
|
|
flex: 1;
|
|
padding: var(--size-4-4);
|
|
overflow-y: auto;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-3);
|
|
}
|
|
|
|
/* Section Styling - Match Task Modal Details */
|
|
.tasknotes-plugin .reminder-modal__section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__section-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__section-header h3 {
|
|
margin: 0;
|
|
font-size: var(--font-ui-small);
|
|
font-weight: 600;
|
|
color: var(--text-muted);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__reminder-count {
|
|
font-size: var(--font-ui-small);
|
|
color: var(--text-muted);
|
|
font-weight: 400;
|
|
}
|
|
|
|
/* Empty State - Match Task Modal Secondary Background */
|
|
.tasknotes-plugin .reminder-modal__empty-state {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
padding: var(--size-4-3);
|
|
text-align: center;
|
|
background: var(--background-secondary);
|
|
border-radius: var(--radius-s);
|
|
border: 1px dashed var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__empty-icon {
|
|
width: 24px;
|
|
height: 24px;
|
|
color: var(--text-faint);
|
|
margin-bottom: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__empty-text {
|
|
font-size: var(--font-ui-small);
|
|
color: var(--text-muted);
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* =====================================================================
|
|
REMINDER CARDS - Match Task Modal Item Styling
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .reminder-modal__reminder-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__reminder-card {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--size-4-2);
|
|
padding: var(--size-4-2);
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__reminder-card:hover {
|
|
border-color: var(--interactive-accent);
|
|
background: var(--background-primary);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__reminder-icon {
|
|
width: 16px;
|
|
height: 16px;
|
|
color: var(--interactive-accent);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__reminder-content {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-1);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__reminder-primary {
|
|
font-weight: 500;
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-medium);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__reminder-description {
|
|
font-size: var(--font-ui-small);
|
|
color: var(--interactive-accent);
|
|
font-style: italic;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__reminder-actions {
|
|
display: flex;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__action-btn {
|
|
padding: var(--size-4-1);
|
|
background: transparent;
|
|
border: none;
|
|
cursor: pointer;
|
|
color: var(--text-muted);
|
|
transition: all 0.2s ease;
|
|
width: 24px;
|
|
height: 24px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: var(--radius-s);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__action-btn:hover {
|
|
color: var(--text-error);
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
/* =====================================================================
|
|
QUICK ACTIONS - Icon-Based Controls Like Task Modal
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .reminder-modal__quick-actions {
|
|
padding: var(--size-4-2);
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
margin-bottom: var(--size-4-3);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__quick-buttons {
|
|
display: flex;
|
|
gap: var(--size-4-1);
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__quick-btn {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--size-4-1);
|
|
padding: var(--size-4-1) var(--size-4-2);
|
|
background: transparent;
|
|
border: none;
|
|
cursor: pointer;
|
|
transition: all 0.2s ease;
|
|
font-size: var(--font-ui-small);
|
|
color: var(--text-muted);
|
|
flex: 1;
|
|
min-width: 0;
|
|
border-radius: var(--radius-s);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__quick-btn:hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--text-normal);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__quick-btn-icon {
|
|
width: 14px;
|
|
height: 14px;
|
|
flex-shrink: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__quick-btn-label {
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* =====================================================================
|
|
FORM STYLING - Match Task Modal Input Styles
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .reminder-modal__form {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-2);
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
padding: var(--size-4-3);
|
|
margin-top: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__type-selector {
|
|
display: flex;
|
|
background: var(--background-primary);
|
|
border-radius: var(--radius-s);
|
|
padding: 2px;
|
|
border: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__type-tab {
|
|
flex: 1;
|
|
padding: var(--size-4-1) var(--size-4-3);
|
|
background: transparent;
|
|
border: none;
|
|
border-radius: var(--radius-s);
|
|
cursor: pointer;
|
|
font-weight: 500;
|
|
color: var(--text-muted);
|
|
transition: all 0.2s ease;
|
|
text-align: center;
|
|
font-size: var(--font-ui-small);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__type-tab--active {
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__type-tab:not(.reminder-modal__type-tab--active):hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .relative-fields,
|
|
.tasknotes-plugin .absolute-fields {
|
|
padding: var(--size-4-2);
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-2);
|
|
margin-top: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .absolute-fields {
|
|
display: none;
|
|
}
|
|
|
|
/* Form controls - Match Task Modal Details Section */
|
|
.tasknotes-plugin .reminder-modal__form .setting-item {
|
|
padding: var(--size-4-2) 0;
|
|
border: none;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__form .setting-item-name {
|
|
font-size: var(--font-ui-small);
|
|
font-weight: 600;
|
|
color: var(--text-muted);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__form .setting-item-control input,
|
|
.tasknotes-plugin .reminder-modal__form .setting-item-control select {
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
padding: var(--size-4-1) var(--size-4-2);
|
|
font-size: var(--font-ui-medium);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__form .setting-item-control input:focus,
|
|
.tasknotes-plugin .reminder-modal__form .setting-item-control select:focus {
|
|
border-color: var(--interactive-accent);
|
|
background: var(--background-primary);
|
|
outline: none;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-add-btn {
|
|
align-self: flex-start;
|
|
padding: var(--size-4-2) var(--size-4-3);
|
|
background: var(--tn-interactive-accent, var(--interactive-accent));
|
|
color: var(--text-on-accent);
|
|
border: none;
|
|
cursor: pointer;
|
|
font-weight: 500;
|
|
font-size: var(--font-ui-medium);
|
|
transition: all 0.2s ease;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--size-4-1);
|
|
border-radius: var(--radius-s);
|
|
min-width: 80px;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-add-btn:hover {
|
|
background: var(--tn-interactive-accent-hover, var(--interactive-accent-hover));
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-add-btn:disabled,
|
|
.tasknotes-plugin .reminder-add-btn--loading {
|
|
opacity: 0.6;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-add-btn--loading .reminder-add-btn-icon {
|
|
animation: spin 1s linear infinite;
|
|
}
|
|
|
|
@keyframes spin {
|
|
from { transform: rotate(0deg); }
|
|
to { transform: rotate(360deg); }
|
|
}
|
|
|
|
/* =====================================================================
|
|
ACTION BUTTONS - Match Task Modal Button Container
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .reminder-modal__actions {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
align-items: center;
|
|
gap: var(--size-4-2);
|
|
margin-top: var(--size-4-4);
|
|
padding: var(--size-4-3) var(--size-4-4);
|
|
border-top: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__save-btn,
|
|
.tasknotes-plugin .reminder-modal__cancel-btn {
|
|
padding: var(--size-4-2) var(--size-4-3);
|
|
font-weight: 500;
|
|
font-size: var(--font-ui-medium);
|
|
cursor: pointer;
|
|
transition: all 0.2s ease;
|
|
border: none;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: var(--radius-s);
|
|
min-width: 80px;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__save-btn {
|
|
background: var(--tn-interactive-accent, var(--interactive-accent));
|
|
color: var(--text-on-accent);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__save-btn:disabled {
|
|
opacity: 0.5;
|
|
cursor: not-allowed;
|
|
background: var(--background-modifier-border);
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__save-btn:not(:disabled):hover {
|
|
background: var(--tn-interactive-accent-hover, var(--interactive-accent-hover));
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__cancel-btn {
|
|
background: transparent;
|
|
color: var(--text-muted);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__cancel-btn:hover {
|
|
background: var(--tn-interactive-hover, var(--background-modifier-hover));
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* =====================================================================
|
|
RESPONSIVE DESIGN - Match Task Modal Breakpoints
|
|
===================================================================== */
|
|
|
|
@media (max-width: 600px) {
|
|
.tasknotes-plugin .tasknotes-reminder-modal {
|
|
min-width: 90vw;
|
|
max-width: 90vw;
|
|
min-height: 60vh;
|
|
max-height: 90vh;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__quick-buttons {
|
|
flex-wrap: wrap;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__actions {
|
|
flex-direction: column;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__save-btn,
|
|
.tasknotes-plugin .reminder-modal__cancel-btn {
|
|
width: 100%;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-modal__shortcuts {
|
|
order: -1;
|
|
}
|
|
}
|
|
|
|
/* =====================================================================
|
|
DARK MODE ADJUSTMENTS - Match Task Modal
|
|
===================================================================== */
|
|
|
|
.theme-dark .tasknotes-plugin .tasknotes-reminder-modal {
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
|
|
}
|
|
|
|
/* =====================================================================
|
|
BACKWARD COMPATIBILITY
|
|
===================================================================== */
|
|
.reminder-section {
|
|
margin-bottom: var(--size-4-6);
|
|
}
|
|
|
|
.reminder-section h3 {
|
|
margin-bottom: var(--size-4-3);
|
|
color: var(--text-normal);
|
|
font-size: var(--font-size-md);
|
|
font-weight: var(--font-weight-semibold);
|
|
}
|
|
|
|
.no-reminders {
|
|
padding: var(--size-4-4);
|
|
text-align: center;
|
|
color: var(--text-muted);
|
|
font-style: italic;
|
|
background: var(--background-secondary);
|
|
border-radius: var(--radius-m);
|
|
}
|
|
|
|
.reminder-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
.reminder-item {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: var(--size-4-3);
|
|
padding: var(--size-4-3);
|
|
background: var(--background-secondary);
|
|
border-radius: var(--radius-m);
|
|
border: 1px solid var(--border-color);
|
|
}
|
|
|
|
.reminder-item__content {
|
|
flex: 1;
|
|
}
|
|
|
|
.reminder-item__timing {
|
|
font-weight: var(--font-weight-semibold);
|
|
color: var(--text-normal);
|
|
margin-bottom: var(--size-4-1);
|
|
}
|
|
|
|
.reminder-item__description {
|
|
font-size: var(--font-size-sm);
|
|
color: var(--text-accent);
|
|
margin-bottom: var(--size-4-1);
|
|
font-style: italic;
|
|
}
|
|
|
|
.reminder-item__details {
|
|
font-size: var(--font-size-xs);
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.reminder-item__actions {
|
|
display: flex;
|
|
gap: var(--size-4-1);
|
|
}
|
|
|
|
.reminder-item__remove-btn {
|
|
padding: var(--size-4-1);
|
|
background: transparent;
|
|
border: none;
|
|
cursor: pointer;
|
|
color: var(--text-muted);
|
|
border-radius: var(--radius-s);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.reminder-item__remove-btn:hover {
|
|
background: var(--background-modifier-error);
|
|
color: var(--text-error);
|
|
}
|
|
|
|
.reminder-form {
|
|
padding: var(--size-4-4);
|
|
background: var(--background-secondary);
|
|
border-radius: var(--radius-m);
|
|
border: 1px solid var(--border-color);
|
|
}
|
|
|
|
/* Modal button styling */
|
|
.modal-button-container {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: var(--size-4-2);
|
|
margin-top: var(--size-4-6);
|
|
padding-top: var(--size-4-4);
|
|
border-top: 1px solid var(--border-color);
|
|
}
|
|
|
|
/* =====================================================================
|
|
REMINDER DEFAULTS SECTION - Settings Tab Styling
|
|
===================================================================== */
|
|
|
|
.tasknotes-plugin .reminder-defaults-section {
|
|
margin-bottom: var(--size-4-4);
|
|
padding: var(--size-4-3);
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-list {
|
|
margin-bottom: var(--size-4-3);
|
|
}
|
|
|
|
/* Empty State */
|
|
.tasknotes-plugin .reminder-defaults-empty {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
padding: var(--size-4-3);
|
|
text-align: center;
|
|
background: var(--background-primary);
|
|
border-radius: var(--radius-s);
|
|
border: 1px dashed var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-empty-icon {
|
|
width: 24px;
|
|
height: 24px;
|
|
color: var(--text-faint);
|
|
margin-bottom: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-empty-text {
|
|
font-size: var(--font-ui-small);
|
|
color: var(--text-muted);
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* Reminder Items */
|
|
.tasknotes-plugin .reminder-defaults-items {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-card {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--size-4-2);
|
|
padding: var(--size-4-2);
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-card:hover {
|
|
border-color: var(--interactive-accent);
|
|
background: var(--background-secondary);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-icon {
|
|
width: 16px;
|
|
height: 16px;
|
|
color: var(--interactive-accent);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-content {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-1);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-primary {
|
|
font-weight: 500;
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-medium);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-description {
|
|
font-size: var(--font-ui-small);
|
|
color: var(--interactive-accent);
|
|
font-style: italic;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-actions {
|
|
display: flex;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-remove-btn {
|
|
padding: var(--size-4-1);
|
|
background: transparent;
|
|
border: none;
|
|
cursor: pointer;
|
|
color: var(--text-muted);
|
|
transition: all 0.2s ease;
|
|
width: 24px;
|
|
height: 24px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: var(--radius-s);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-remove-btn:hover {
|
|
color: var(--text-error);
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
/* Form Styling */
|
|
.tasknotes-plugin .reminder-defaults-form {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-2);
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
padding: var(--size-4-3);
|
|
margin-top: var(--size-4-3);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-form-header {
|
|
margin: 0 0 var(--size-4-2) 0;
|
|
font-size: var(--font-ui-small);
|
|
font-weight: 600;
|
|
color: var(--text-muted);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
}
|
|
|
|
/* Type Selector */
|
|
.tasknotes-plugin .reminder-defaults-type-selector {
|
|
display: flex;
|
|
background: var(--background-secondary);
|
|
border-radius: var(--radius-s);
|
|
padding: 2px;
|
|
border: 1px solid var(--background-modifier-border);
|
|
margin-bottom: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-type-tab {
|
|
flex: 1;
|
|
padding: var(--size-4-1) var(--size-4-3);
|
|
background: transparent;
|
|
border: none;
|
|
border-radius: var(--radius-s);
|
|
cursor: pointer;
|
|
font-weight: 500;
|
|
color: var(--text-muted);
|
|
transition: all 0.2s ease;
|
|
text-align: center;
|
|
font-size: var(--font-ui-small);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-type-tab--active {
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-type-tab:not(.reminder-defaults-type-tab--active):hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* Form Fields */
|
|
.tasknotes-plugin .reminder-defaults-relative-fields,
|
|
.tasknotes-plugin .reminder-defaults-absolute-fields {
|
|
padding: var(--size-4-2);
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--size-4-2);
|
|
margin-bottom: var(--size-4-2);
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-absolute-fields {
|
|
display: none;
|
|
}
|
|
|
|
/* Form controls - Match Task Modal Details Section */
|
|
.tasknotes-plugin .reminder-defaults-form .setting-item {
|
|
padding: var(--size-4-2) 0;
|
|
border: none;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-form .setting-item-name {
|
|
font-size: var(--font-ui-small);
|
|
font-weight: 600;
|
|
color: var(--text-muted);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-form .setting-item-control input,
|
|
.tasknotes-plugin .reminder-defaults-form .setting-item-control select {
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
padding: var(--size-4-1) var(--size-4-2);
|
|
font-size: var(--font-ui-medium);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-form .setting-item-control input:focus,
|
|
.tasknotes-plugin .reminder-defaults-form .setting-item-control select:focus {
|
|
border-color: var(--interactive-accent);
|
|
background: var(--background-secondary);
|
|
outline: none;
|
|
}
|
|
|
|
/* Add Button */
|
|
.tasknotes-plugin .reminder-defaults-add-btn {
|
|
align-self: flex-start;
|
|
padding: var(--size-4-2) var(--size-4-3);
|
|
background: var(--tn-interactive-accent, var(--interactive-accent));
|
|
color: var(--text-on-accent);
|
|
border: none;
|
|
cursor: pointer;
|
|
font-weight: 500;
|
|
font-size: var(--font-ui-medium);
|
|
transition: all 0.2s ease;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--size-4-1);
|
|
border-radius: var(--radius-s);
|
|
min-width: 120px;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-add-btn:hover {
|
|
background: var(--tn-interactive-accent-hover, var(--interactive-accent-hover));
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-add-btn:disabled {
|
|
opacity: 0.6;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-add-icon {
|
|
width: 16px;
|
|
height: 16px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .reminder-defaults-add-text {
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* ===== DATE-PICKER.CSS ===== */
|
|
/* =====================================================================
|
|
DATE PICKER MODAL - Enhanced Input Styling
|
|
===================================================================== */
|
|
|
|
/* Date picker modal container */
|
|
.date-picker-modal {
|
|
font-family: var(--font-interface);
|
|
position: fixed;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-m);
|
|
padding: var(--size-4-4);
|
|
box-shadow: var(--shadow-l);
|
|
z-index: 1000;
|
|
min-width: 320px;
|
|
max-width: 400px;
|
|
}
|
|
|
|
/* Modal header */
|
|
.date-picker-modal__header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--size-4-2);
|
|
margin-bottom: var(--size-4-4);
|
|
padding-bottom: var(--size-4-2);
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.date-picker-modal__header-icon {
|
|
color: var(--interactive-accent);
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.date-picker-modal__header-title {
|
|
margin: 0;
|
|
font-size: var(--font-ui-large);
|
|
font-weight: 600;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* Input sections */
|
|
.date-picker-modal__section {
|
|
margin-bottom: var(--size-4-3);
|
|
}
|
|
|
|
.date-picker-modal__section--buttons {
|
|
margin-bottom: var(--size-4-4);
|
|
}
|
|
|
|
.date-picker-modal__label {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--size-4-1);
|
|
margin-bottom: var(--size-4-2);
|
|
font-size: var(--font-ui-small);
|
|
font-weight: 500;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.date-picker-modal__label-icon {
|
|
color: var(--text-muted);
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.date-picker-modal__input-container {
|
|
position: relative;
|
|
}
|
|
|
|
.date-picker-modal__input {
|
|
width: 100%;
|
|
padding: var(--size-4-3) var(--size-4-2);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
background: var(--background-primary);
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-medium);
|
|
cursor: var(--cursor);
|
|
color-scheme: dark light;
|
|
transition: border-color 0.2s ease, box-shadow 0.2s ease;
|
|
}
|
|
|
|
.date-picker-modal__input:focus {
|
|
border-color: var(--interactive-accent);
|
|
box-shadow: 0 0 0 2px rgba(var(--interactive-accent), 0.2);
|
|
}
|
|
|
|
.date-picker-modal__input:hover {
|
|
border-color: var(--background-modifier-border-hover);
|
|
}
|
|
|
|
/* Button section */
|
|
.date-picker-modal__buttons {
|
|
display: flex;
|
|
gap: var(--size-4-2);
|
|
justify-content: flex-end;
|
|
padding-top: var(--size-4-3);
|
|
border-top: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.date-picker-modal__button {
|
|
padding: var(--size-4-2) var(--size-4-4);
|
|
border-radius: var(--radius-s);
|
|
cursor: var(--cursor);
|
|
font-size: var(--font-ui-medium);
|
|
font-weight: 500;
|
|
transition: all 0.2s ease;
|
|
border: none;
|
|
}
|
|
|
|
.date-picker-modal__button--primary {
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
.date-picker-modal__button--primary:hover {
|
|
background: var(--interactive-accent-hover);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.date-picker-modal__button--secondary {
|
|
background: var(--background-secondary);
|
|
color: var(--text-normal);
|
|
border: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.date-picker-modal__button--secondary:hover {
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
/* Enhanced date and time input styling */
|
|
.date-picker-modal input[type="date"],
|
|
.date-picker-modal input[type="time"] {
|
|
/* Reset browser defaults */
|
|
-webkit-appearance: none;
|
|
-moz-appearance: textfield;
|
|
appearance: none;
|
|
|
|
/* Make the entire input clickable */
|
|
position: relative;
|
|
overflow: hidden;
|
|
|
|
/* Ensure consistent sizing */
|
|
box-sizing: border-box;
|
|
height: 44px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
/* Date input specific styling */
|
|
.date-picker-modal input[type="date"] {
|
|
/* Improve positioning consistency */
|
|
position: relative;
|
|
/* Ensure text is properly aligned */
|
|
text-align: left;
|
|
/* Add padding to make room for icon on the right */
|
|
padding-right: 32px;
|
|
}
|
|
|
|
/* Webkit browsers (Chrome, Safari, Edge) */
|
|
.date-picker-modal input[type="date"]::-webkit-datetime-edit,
|
|
.date-picker-modal input[type="date"]::-webkit-datetime-edit-fields-wrapper,
|
|
.date-picker-modal input[type="date"]::-webkit-datetime-edit-text,
|
|
.date-picker-modal input[type="date"]::-webkit-datetime-edit-month-field,
|
|
.date-picker-modal input[type="date"]::-webkit-datetime-edit-day-field,
|
|
.date-picker-modal input[type="date"]::-webkit-datetime-edit-year-field {
|
|
/* Make the date text clickable */
|
|
cursor: var(--cursor);
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-medium);
|
|
font-family: var(--font-interface);
|
|
}
|
|
|
|
.date-picker-modal input[type="date"]::-webkit-calendar-picker-indicator {
|
|
/* Position the calendar icon on the right, consistently with time input */
|
|
position: absolute;
|
|
right: 8px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
cursor: var(--cursor);
|
|
opacity: 0.7;
|
|
width: 16px;
|
|
height: 16px;
|
|
background: none;
|
|
color: var(--text-muted);
|
|
/* Ensure the icon is clickable */
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.date-picker-modal input[type="date"]:hover::-webkit-calendar-picker-indicator {
|
|
opacity: 1;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* Time input specific styling - add consistent padding */
|
|
.date-picker-modal input[type="time"] {
|
|
/* Add padding to make room for icon on the right */
|
|
padding-right: 32px;
|
|
text-align: left;
|
|
}
|
|
|
|
.date-picker-modal input[type="time"]::-webkit-datetime-edit,
|
|
.date-picker-modal input[type="time"]::-webkit-datetime-edit-fields-wrapper,
|
|
.date-picker-modal input[type="time"]::-webkit-datetime-edit-text,
|
|
.date-picker-modal input[type="time"]::-webkit-datetime-edit-hour-field,
|
|
.date-picker-modal input[type="time"]::-webkit-datetime-edit-minute-field,
|
|
.date-picker-modal input[type="time"]::-webkit-datetime-edit-ampm-field {
|
|
/* Make the time text clickable */
|
|
cursor: var(--cursor);
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-medium);
|
|
font-family: var(--font-interface);
|
|
}
|
|
|
|
.date-picker-modal input[type="time"]::-webkit-calendar-picker-indicator {
|
|
/* Position the clock icon on the right, same as date input */
|
|
position: absolute;
|
|
right: 8px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
cursor: var(--cursor);
|
|
opacity: 0.7;
|
|
width: 16px;
|
|
height: 16px;
|
|
background: none;
|
|
color: var(--text-muted);
|
|
/* Ensure the icon is clickable */
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.date-picker-modal input[type="time"]:hover::-webkit-calendar-picker-indicator {
|
|
opacity: 1;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* Firefox specific styling */
|
|
@-moz-document url-prefix() {
|
|
.date-picker-modal input[type="date"],
|
|
.date-picker-modal input[type="time"] {
|
|
/* Firefox doesn't have the same issue but ensure consistency */
|
|
cursor: var(--cursor);
|
|
}
|
|
}
|
|
|
|
/* Focus states */
|
|
.date-picker-modal input[type="date"]:focus,
|
|
.date-picker-modal input[type="time"]:focus {
|
|
outline: none;
|
|
border-color: var(--interactive-accent);
|
|
box-shadow: 0 0 0 2px rgba(var(--interactive-accent), 0.2);
|
|
}
|
|
|
|
/* Hover states */
|
|
.date-picker-modal input[type="date"]:hover,
|
|
.date-picker-modal input[type="time"]:hover {
|
|
border-color: var(--background-modifier-border-hover);
|
|
}
|
|
|
|
/* Dark mode support */
|
|
@media (prefers-color-scheme: dark) {
|
|
.date-picker-modal input[type="date"],
|
|
.date-picker-modal input[type="time"] {
|
|
color-scheme: dark;
|
|
}
|
|
}
|
|
|
|
/* Light mode support */
|
|
@media (prefers-color-scheme: light) {
|
|
.date-picker-modal input[type="date"],
|
|
.date-picker-modal input[type="time"] {
|
|
color-scheme: light;
|
|
}
|
|
}
|
|
|
|
/* Accessibility improvements */
|
|
.date-picker-modal input[type="date"]:focus-visible,
|
|
.date-picker-modal input[type="time"]:focus-visible {
|
|
outline: 2px solid var(--interactive-accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Ensure consistent appearance across browsers */
|
|
.date-picker-modal input[type="date"]::-ms-clear,
|
|
.date-picker-modal input[type="time"]::-ms-clear {
|
|
display: none;
|
|
}
|
|
|
|
.date-picker-modal input[type="date"]::-ms-reveal,
|
|
.date-picker-modal input[type="time"]::-ms-reveal {
|
|
display: none;
|
|
}
|
|
|
|
/* ===== TASK-SELECTOR-WITH-CREATE-MODAL.CSS ===== */
|
|
/* ================================================
|
|
TASK SELECTOR WITH CREATE MODAL
|
|
================================================ */
|
|
|
|
/* Modal container adjustments */
|
|
.task-selector-with-create-modal .prompt {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
/* ================================================
|
|
TASK CARD STYLING WITHIN MODAL
|
|
================================================ */
|
|
|
|
/* Remove task card hover/background styling - let suggestion item handle it */
|
|
.task-selector-with-create-modal .task-card {
|
|
background: transparent !important;
|
|
box-shadow: none !important;
|
|
padding: var(--tn-spacing-sm) 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.task-selector-with-create-modal .task-card:hover {
|
|
background: transparent !important;
|
|
}
|
|
|
|
/* Hide context menu icon in modal suggestions */
|
|
.task-selector-with-create-modal .task-card__context-menu {
|
|
display: none;
|
|
}
|
|
|
|
/* Hide badges container in modal for cleaner look */
|
|
.task-selector-with-create-modal .task-card__badges {
|
|
display: none;
|
|
}
|
|
|
|
/* ================================================
|
|
CREATE FOOTER - Fixed at bottom of modal
|
|
================================================ */
|
|
|
|
.task-selector-create-footer {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: var(--tn-spacing-md);
|
|
padding: var(--tn-spacing-md) var(--tn-spacing-lg);
|
|
background: var(--background-secondary);
|
|
border-top: 1px solid var(--background-modifier-border);
|
|
margin-top: auto;
|
|
min-height: 60px;
|
|
}
|
|
|
|
.task-selector-create-footer__icon {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 24px;
|
|
height: 24px;
|
|
color: var(--text-accent);
|
|
flex-shrink: 0;
|
|
opacity: 0.8;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.task-selector-create-footer__icon svg {
|
|
width: 20px;
|
|
height: 20px;
|
|
}
|
|
|
|
.task-selector-create-footer__content {
|
|
flex: 1;
|
|
min-width: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* ================================================
|
|
TITLE LINE
|
|
================================================ */
|
|
|
|
.task-selector-create-footer__title-line {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.task-selector-create-footer__title {
|
|
font-weight: 600;
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--text-normal);
|
|
line-height: 1.3;
|
|
/* Allow wrapping for long titles */
|
|
word-break: break-word;
|
|
}
|
|
|
|
/* ================================================
|
|
METADATA CHIPS
|
|
================================================ */
|
|
|
|
.task-selector-create-footer__meta {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
margin-top: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.task-selector-create-footer__chip {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 3px 10px;
|
|
border-radius: 12px;
|
|
font-size: var(--tn-font-size-xs);
|
|
font-weight: 500;
|
|
white-space: nowrap;
|
|
max-width: 180px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.task-selector-create-footer__chip-icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 12px;
|
|
height: 12px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.task-selector-create-footer__chip-icon svg {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
.task-selector-create-footer__chip-text {
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
/* Chip type variants */
|
|
.task-selector-create-footer__chip--due {
|
|
background-color: hsla(0, 70%, 50%, 0.15);
|
|
color: hsl(0, 70%, 45%);
|
|
}
|
|
|
|
.task-selector-create-footer__chip--scheduled {
|
|
background-color: hsla(200, 70%, 50%, 0.15);
|
|
color: hsl(200, 70%, 40%);
|
|
}
|
|
|
|
.task-selector-create-footer__chip--priority {
|
|
background-color: hsla(35, 90%, 50%, 0.15);
|
|
color: hsl(35, 90%, 40%);
|
|
}
|
|
|
|
.task-selector-create-footer__chip--status {
|
|
background-color: hsla(270, 50%, 50%, 0.15);
|
|
color: hsl(270, 50%, 45%);
|
|
}
|
|
|
|
.task-selector-create-footer__chip--context {
|
|
background-color: hsla(160, 60%, 45%, 0.15);
|
|
color: hsl(160, 60%, 35%);
|
|
}
|
|
|
|
.task-selector-create-footer__chip--project {
|
|
background-color: hsla(220, 70%, 50%, 0.15);
|
|
color: hsl(220, 70%, 45%);
|
|
}
|
|
|
|
.task-selector-create-footer__chip--tag {
|
|
background-color: hsla(280, 60%, 50%, 0.15);
|
|
color: hsl(280, 60%, 45%);
|
|
}
|
|
|
|
.task-selector-create-footer__chip--recurrence {
|
|
background-color: hsla(180, 60%, 45%, 0.15);
|
|
color: hsl(180, 60%, 35%);
|
|
}
|
|
|
|
.task-selector-create-footer__chip--estimate {
|
|
background-color: hsla(45, 80%, 50%, 0.15);
|
|
color: hsl(45, 80%, 35%);
|
|
}
|
|
|
|
.task-selector-create-footer__chip--details {
|
|
background-color: hsla(0, 0%, 50%, 0.15);
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.task-selector-create-footer__chip--userfield {
|
|
background-color: hsla(300, 40%, 50%, 0.15);
|
|
color: hsl(300, 40%, 40%);
|
|
}
|
|
|
|
/* ================================================
|
|
HINT LINE
|
|
================================================ */
|
|
|
|
.task-selector-create-footer__hint {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.task-selector-create-footer__shortcut {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 1px 5px;
|
|
border-radius: 3px;
|
|
background-color: var(--background-modifier-border);
|
|
color: var(--text-faint);
|
|
font-size: 10px;
|
|
font-weight: 500;
|
|
font-family: var(--font-monospace);
|
|
}
|
|
|
|
.task-selector-create-footer__hint-text {
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--text-faint);
|
|
}
|
|
|
|
/* ================================================
|
|
DARK THEME ADJUSTMENTS
|
|
================================================ */
|
|
|
|
.theme-dark .task-selector-create-footer {
|
|
background: var(--background-secondary-alt);
|
|
}
|
|
|
|
.theme-dark .task-selector-create-footer__shortcut {
|
|
background-color: var(--background-modifier-form-field);
|
|
}
|
|
|
|
/* Dark theme chip adjustments for better visibility */
|
|
.theme-dark .task-selector-create-footer__chip--due {
|
|
background-color: hsla(0, 70%, 60%, 0.2);
|
|
color: hsl(0, 70%, 65%);
|
|
}
|
|
|
|
.theme-dark .task-selector-create-footer__chip--scheduled {
|
|
background-color: hsla(200, 70%, 60%, 0.2);
|
|
color: hsl(200, 70%, 65%);
|
|
}
|
|
|
|
.theme-dark .task-selector-create-footer__chip--priority {
|
|
background-color: hsla(35, 90%, 60%, 0.2);
|
|
color: hsl(35, 90%, 65%);
|
|
}
|
|
|
|
.theme-dark .task-selector-create-footer__chip--status {
|
|
background-color: hsla(270, 50%, 60%, 0.2);
|
|
color: hsl(270, 50%, 70%);
|
|
}
|
|
|
|
.theme-dark .task-selector-create-footer__chip--context {
|
|
background-color: hsla(160, 60%, 55%, 0.2);
|
|
color: hsl(160, 60%, 60%);
|
|
}
|
|
|
|
.theme-dark .task-selector-create-footer__chip--project {
|
|
background-color: hsla(220, 70%, 60%, 0.2);
|
|
color: hsl(220, 70%, 70%);
|
|
}
|
|
|
|
.theme-dark .task-selector-create-footer__chip--tag {
|
|
background-color: hsla(280, 60%, 60%, 0.2);
|
|
color: hsl(280, 60%, 70%);
|
|
}
|
|
|
|
.theme-dark .task-selector-create-footer__chip--recurrence {
|
|
background-color: hsla(180, 60%, 55%, 0.2);
|
|
color: hsl(180, 60%, 60%);
|
|
}
|
|
|
|
.theme-dark .task-selector-create-footer__chip--estimate {
|
|
background-color: hsla(45, 80%, 60%, 0.2);
|
|
color: hsl(45, 80%, 65%);
|
|
}
|
|
|
|
.theme-dark .task-selector-create-footer__chip--details {
|
|
background-color: hsla(0, 0%, 60%, 0.2);
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.theme-dark .task-selector-create-footer__chip--userfield {
|
|
background-color: hsla(300, 40%, 60%, 0.2);
|
|
color: hsl(300, 40%, 70%);
|
|
}
|
|
|
|
/* ================================================
|
|
RESPONSIVE ADJUSTMENTS
|
|
================================================ */
|
|
|
|
@media (max-width: 480px) {
|
|
.task-selector-create-footer {
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
}
|
|
|
|
.task-selector-create-footer__icon {
|
|
width: 28px;
|
|
height: 28px;
|
|
}
|
|
|
|
.task-selector-create-footer__icon svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.task-selector-create-footer__title {
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
|
|
.task-selector-create-footer__chip {
|
|
max-width: 120px;
|
|
padding: 2px 6px;
|
|
}
|
|
|
|
.task-selector-create-footer__meta {
|
|
gap: 4px;
|
|
}
|
|
}
|
|
|
|
|
|
/* ===== FILE-SELECTOR-MODAL.CSS ===== */
|
|
/* ================================================
|
|
FILE SELECTOR MODAL
|
|
================================================ */
|
|
|
|
/* ================================================
|
|
SUGGESTION STYLING
|
|
================================================ */
|
|
|
|
.file-selector-suggestion {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
padding: var(--tn-spacing-xs) 0;
|
|
}
|
|
|
|
.file-selector-suggestion__name {
|
|
font-weight: 500;
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.file-selector-suggestion__title,
|
|
.file-selector-suggestion__aliases {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.file-selector-suggestion__path {
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--text-faint);
|
|
}
|
|
|
|
/* ================================================
|
|
CREATE FOOTER
|
|
================================================ */
|
|
|
|
.file-selector-create-footer {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-md);
|
|
padding: var(--tn-spacing-md) var(--tn-spacing-lg);
|
|
background: var(--background-secondary);
|
|
border-top: 1px solid var(--background-modifier-border);
|
|
margin-top: auto;
|
|
}
|
|
|
|
.file-selector-create-footer__content {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.file-selector-create-footer__title-line {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.file-selector-create-footer__shortcut {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 2px 6px;
|
|
border-radius: 3px;
|
|
background-color: var(--background-modifier-border);
|
|
color: var(--text-faint);
|
|
font-size: 10px;
|
|
font-weight: 500;
|
|
font-family: var(--font-monospace);
|
|
}
|
|
|
|
.file-selector-create-footer__hint-text {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--text-faint);
|
|
}
|
|
|
|
.file-selector-create-footer__filename {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--text-normal);
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* ================================================
|
|
DARK THEME ADJUSTMENTS
|
|
================================================ */
|
|
|
|
.theme-dark .file-selector-create-footer {
|
|
background: var(--background-secondary-alt);
|
|
}
|
|
|
|
.theme-dark .file-selector-create-footer__shortcut {
|
|
background-color: var(--background-modifier-form-field);
|
|
}
|
|
|
|
|
|
/* ===== UNSCHEDULED-TASKS-SELECTOR-MODAL.CSS ===== */
|
|
/* Unscheduled Tasks Selector - Task Styling Only */
|
|
.unscheduled-tasks-selector__content {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.unscheduled-tasks-selector__title {
|
|
font-weight: 500;
|
|
color: var(--text-normal);
|
|
margin-bottom: 0.5rem;
|
|
line-height: 1.3;
|
|
flex: 1;
|
|
}
|
|
|
|
.unscheduled-tasks-selector__title mark {
|
|
background: var(--text-selection);
|
|
color: var(--text-normal);
|
|
padding: 0.1em 0.2em;
|
|
border-radius: 2px;
|
|
}
|
|
|
|
.unscheduled-tasks-selector__meta {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0.5rem;
|
|
align-items: center;
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
.unscheduled-tasks-selector__priority {
|
|
display: inline-block;
|
|
padding: 0.125rem 0.5rem;
|
|
border-radius: 12px;
|
|
font-size: 0.7rem;
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
}
|
|
|
|
.unscheduled-tasks-selector__priority.priority-high {
|
|
background: var(--color-red);
|
|
color: white;
|
|
}
|
|
|
|
.unscheduled-tasks-selector__priority.priority-normal {
|
|
background: var(--color-yellow);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.unscheduled-tasks-selector__priority.priority-low {
|
|
background: var(--color-green);
|
|
color: white;
|
|
}
|
|
|
|
.unscheduled-tasks-selector__due {
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.25rem;
|
|
}
|
|
|
|
.unscheduled-tasks-selector__due.overdue {
|
|
color: var(--color-red);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.unscheduled-tasks-selector__due.due-today {
|
|
color: var(--color-orange);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.unscheduled-tasks-selector__time-estimate {
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
background: var(--background-modifier-border);
|
|
padding: 0.125rem 0.375rem;
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.unscheduled-tasks-selector__contexts {
|
|
font-size: 0.75rem;
|
|
color: var(--text-accent);
|
|
background: var(--background-modifier-border);
|
|
padding: 0.125rem 0.375rem;
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.unscheduled-tasks-selector__projects {
|
|
font-size: 0.75rem;
|
|
color: var(--text-accent);
|
|
background: var(--background-modifier-border);
|
|
padding: 0.125rem 0.375rem;
|
|
border-radius: 8px;
|
|
}
|
|
|
|
/* Project Links - for [[Note Name]] format projects */
|
|
.unscheduled-tasks-selector__project-link {
|
|
color: var(--link-color);
|
|
text-decoration: none;
|
|
transition: all 0.2s ease;
|
|
border-radius: 4px;
|
|
padding: 1px 2px;
|
|
margin: -1px -2px;
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
.unscheduled-tasks-selector__project-link:hover {
|
|
background: var(--background-modifier-hover);
|
|
text-decoration: underline;
|
|
color: var(--link-color-hover);
|
|
}
|
|
|
|
.unscheduled-tasks-selector__schedule-icon {
|
|
color: var(--text-muted);
|
|
opacity: 0.7;
|
|
transition: opacity 0.2s ease;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* ===== TASK-ACTION-PALETTE-MODAL.CSS ===== */
|
|
/* Task Action Palette Modal */
|
|
|
|
.task-action-palette-modal {
|
|
--palette-item-height: 60px;
|
|
--palette-icon-size: 18px;
|
|
--palette-gap: 12px;
|
|
--palette-border-radius: 8px;
|
|
}
|
|
|
|
/* Override default modal width for the action palette */
|
|
.task-action-palette-modal .modal {
|
|
width: min(600px, 90vw);
|
|
max-height: 70vh;
|
|
}
|
|
|
|
/* Suggestion item styling */
|
|
.task-action-palette__suggestion {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--palette-gap);
|
|
padding: var(--palette-gap);
|
|
border-radius: var(--palette-border-radius);
|
|
min-height: var(--palette-item-height);
|
|
cursor: var(--cursor);
|
|
transition: background-color 0.15s ease;
|
|
}
|
|
|
|
.task-action-palette__suggestion:hover {
|
|
background-color: var(--background-modifier-hover);
|
|
}
|
|
|
|
.suggestion-item.is-selected .task-action-palette__suggestion {
|
|
background-color: var(--background-modifier-accent);
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
/* Icon styling */
|
|
.task-action-palette__icon {
|
|
flex-shrink: 0;
|
|
width: var(--palette-icon-size);
|
|
height: var(--palette-icon-size);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.suggestion-item.is-selected .task-action-palette__icon {
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
.task-action-palette__icon svg {
|
|
width: var(--palette-icon-size);
|
|
height: var(--palette-icon-size);
|
|
}
|
|
|
|
/* Content area */
|
|
.task-action-palette__content {
|
|
flex: 1;
|
|
min-width: 0; /* Allow text to truncate */
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
}
|
|
|
|
/* Title styling */
|
|
.task-action-palette__title {
|
|
font-weight: 500;
|
|
font-size: var(--font-ui-medium);
|
|
line-height: 1.3;
|
|
color: var(--text-normal);
|
|
margin: 0;
|
|
}
|
|
|
|
.suggestion-item.is-selected .task-action-palette__title {
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
/* Description styling */
|
|
.task-action-palette__description {
|
|
font-size: var(--font-ui-small);
|
|
line-height: 1.3;
|
|
color: var(--text-muted);
|
|
margin: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.suggestion-item.is-selected .task-action-palette__description {
|
|
color: var(--text-on-accent);
|
|
opacity: 0.7;
|
|
}
|
|
|
|
/* Badge area */
|
|
.task-action-palette__badge {
|
|
flex-shrink: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
/* Category badge styling */
|
|
.task-action-palette__category {
|
|
font-size: var(--font-ui-smaller);
|
|
padding: 3px 8px;
|
|
border-radius: calc(var(--palette-border-radius) / 2);
|
|
background-color: var(--background-modifier-border);
|
|
color: var(--text-muted);
|
|
text-transform: capitalize;
|
|
font-weight: 500;
|
|
letter-spacing: 0.02em;
|
|
}
|
|
|
|
.suggestion-item.is-selected .task-action-palette__category {
|
|
background-color: var(--text-on-accent);
|
|
color: var(--text-accent);
|
|
opacity: 0.9;
|
|
}
|
|
|
|
/* Category-specific colors - theme aware */
|
|
.task-action-palette__category--status {
|
|
background-color: var(--color-blue);
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
.task-action-palette__category--priority {
|
|
background-color: var(--color-orange);
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
.task-action-palette__category--dates {
|
|
background-color: var(--color-green);
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
.task-action-palette__category--tracking {
|
|
background-color: var(--color-purple);
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
.task-action-palette__category--organization {
|
|
background-color: var(--color-yellow);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.task-action-palette__category--other {
|
|
background-color: var(--background-modifier-border);
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* Responsive adjustments */
|
|
@media (max-width: 600px) {
|
|
.task-action-palette-modal .modal {
|
|
width: 95vw;
|
|
max-height: 80vh;
|
|
}
|
|
|
|
.task-action-palette__suggestion {
|
|
padding: 8px;
|
|
gap: 8px;
|
|
min-height: 50px;
|
|
}
|
|
|
|
.task-action-palette__description {
|
|
font-size: var(--font-ui-smaller);
|
|
}
|
|
|
|
.task-action-palette__category {
|
|
font-size: 10px;
|
|
padding: 2px 6px;
|
|
}
|
|
}
|
|
|
|
|
|
/* Focus and accessibility */
|
|
.task-action-palette__suggestion:focus-visible {
|
|
outline: 2px solid var(--interactive-accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Animation for smooth appearance */
|
|
.task-action-palette-modal .suggestion-container {
|
|
animation: fadeInUp 0.2s ease-out;
|
|
}
|
|
|
|
@keyframes fadeInUp {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(10px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
/* ===== TIME-ENTRY-EDITOR-MODAL.CSS ===== */
|
|
/* =====================================================================
|
|
TIME ENTRY EDITOR MODAL
|
|
===================================================================== */
|
|
|
|
.time-entry-editor-modal .modal {
|
|
width: auto;
|
|
max-width: 800px;
|
|
}
|
|
|
|
.time-entry-editor-modal .modal-content {
|
|
width: 600px;
|
|
max-width: 90vw;
|
|
}
|
|
|
|
.time-entry-editor-modal__entries {
|
|
margin-bottom: var(--size-4-4);
|
|
max-height: 60vh;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.time-entry-editor-modal__empty {
|
|
text-align: center;
|
|
padding: var(--size-4-8);
|
|
color: var(--text-muted);
|
|
font-style: italic;
|
|
}
|
|
|
|
/* =====================================================================
|
|
TIME ENTRY ITEM
|
|
===================================================================== */
|
|
|
|
.time-entry-editor-modal__entry {
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-m);
|
|
padding: var(--size-4-3);
|
|
margin-bottom: var(--size-4-3);
|
|
background: var(--background-secondary);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.time-entry-editor-modal__entry:hover {
|
|
border-color: var(--interactive-accent);
|
|
background: var(--background-primary);
|
|
}
|
|
|
|
.time-entry-editor-modal__entry-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: var(--size-4-2);
|
|
}
|
|
|
|
.time-entry-editor-modal__entry-date {
|
|
font-weight: 600;
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-medium);
|
|
}
|
|
|
|
.time-entry-editor-modal__delete-button {
|
|
background: transparent;
|
|
border: none;
|
|
color: var(--text-muted);
|
|
cursor: var(--cursor);
|
|
padding: var(--size-4-1);
|
|
border-radius: var(--radius-s);
|
|
transition: all 0.2s ease;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.time-entry-editor-modal__delete-button:hover {
|
|
background: var(--background-modifier-error);
|
|
color: var(--text-error);
|
|
}
|
|
|
|
.time-entry-editor-modal__delete-button svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
/* =====================================================================
|
|
TIME INPUT FIELDS
|
|
===================================================================== */
|
|
|
|
.time-entry-editor-modal__time-container {
|
|
margin-top: var(--size-4-2);
|
|
}
|
|
|
|
.time-entry-editor-modal__time-container .setting-item {
|
|
border: none;
|
|
padding: var(--size-4-2) 0;
|
|
}
|
|
|
|
.time-entry-editor-modal__time-container .setting-item-name {
|
|
font-size: var(--font-ui-small);
|
|
font-weight: 600;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.time-entry-editor-modal__time-container .setting-item-control input,
|
|
.time-entry-editor-modal__time-container .setting-item-control textarea {
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
padding: var(--size-4-1) var(--size-4-2);
|
|
font-size: var(--font-ui-medium);
|
|
transition: all 0.2s ease;
|
|
width: 100%;
|
|
}
|
|
|
|
.time-entry-editor-modal__datetime-input {
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-s);
|
|
padding: var(--size-4-1) var(--size-4-2);
|
|
font-size: var(--font-ui-medium);
|
|
transition: all 0.2s ease;
|
|
width: 100%;
|
|
color: var(--text-normal);
|
|
font-family: var(--font-interface);
|
|
}
|
|
|
|
.time-entry-editor-modal__datetime-input:focus {
|
|
border-color: var(--interactive-accent);
|
|
outline: none;
|
|
}
|
|
|
|
.time-entry-editor-modal__time-container .setting-item-control input:focus,
|
|
.time-entry-editor-modal__time-container .setting-item-control textarea:focus {
|
|
border-color: var(--interactive-accent);
|
|
outline: none;
|
|
}
|
|
|
|
.time-entry-editor-modal__time-container .setting-item-control textarea {
|
|
resize: vertical;
|
|
font-family: var(--font-text);
|
|
}
|
|
|
|
.time-entry-editor-modal__duration-info {
|
|
margin-top: var(--size-4-1);
|
|
padding: var(--size-4-1) var(--size-4-2);
|
|
background: var(--background-primary-alt);
|
|
border-radius: var(--radius-s);
|
|
font-size: var(--font-ui-small);
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* =====================================================================
|
|
FOOTER
|
|
===================================================================== */
|
|
|
|
.time-entry-editor-modal__add-button-container {
|
|
margin-bottom: var(--size-4-4);
|
|
padding-bottom: var(--size-4-3);
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.time-entry-editor-modal__footer {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding-top: var(--size-4-3);
|
|
border-top: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.time-entry-editor-modal__total {
|
|
font-weight: 600;
|
|
font-size: var(--font-ui-large);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.time-entry-editor-modal__buttons {
|
|
display: flex;
|
|
gap: var(--size-4-2);
|
|
}
|
|
|
|
.time-entry-editor-modal__buttons button {
|
|
min-width: 80px;
|
|
}
|
|
|
|
/* =====================================================================
|
|
DARK MODE ADJUSTMENTS
|
|
===================================================================== */
|
|
|
|
.theme-dark .time-entry-editor-modal__entry {
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
.theme-dark .time-entry-editor-modal__entry:hover {
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
/* =====================================================================
|
|
RESPONSIVE DESIGN
|
|
===================================================================== */
|
|
|
|
@media (max-width: 700px) {
|
|
.time-entry-editor-modal .modal-content {
|
|
width: 90vw;
|
|
}
|
|
|
|
.time-entry-editor-modal__footer {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: var(--size-4-3);
|
|
}
|
|
|
|
.time-entry-editor-modal__buttons {
|
|
width: 100%;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.time-entry-editor-modal__buttons button {
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
|
|
/* ===== RELATIONSHIPS.CSS ===== */
|
|
/*
|
|
* Relationships Widget
|
|
*
|
|
* Styles for the unified relationships widget that displays subtasks, projects,
|
|
* blocked-by, and blocking relationships in notes via DOM manipulation
|
|
* in live preview mode. Uses BEM methodology.
|
|
*/
|
|
|
|
.tasknotes-relationships-widget {
|
|
display: block !important;
|
|
width: 100% !important;
|
|
margin: 1.5em 0 2em 0;
|
|
padding: 1em;
|
|
border: 1px dashed var(--background-modifier-border-hover);
|
|
border-radius: var(--radius-s);
|
|
clear: both;
|
|
z-index: 10; /* Higher z-index to allow dropdowns to appear above other content */
|
|
|
|
/* Allow filter dropdowns to extend beyond widget boundaries */
|
|
overflow: visible !important;
|
|
}
|
|
|
|
.tasknotes-plugin .relationships__bases-container {
|
|
width: 100%;
|
|
min-height: 50px;
|
|
}
|
|
|
|
.tasknotes-plugin .relationships__error {
|
|
color: var(--text-error);
|
|
padding: 1em;
|
|
text-align: center;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
/* Responsive design */
|
|
@media (max-width: 768px) {
|
|
.tasknotes-plugin .tasknotes-relationships-widget {
|
|
margin: 1em 0;
|
|
padding: 0.8em;
|
|
}
|
|
}
|
|
|
|
/* Dark mode adjustments */
|
|
.theme-dark .tasknotes-plugin .tasknotes-relationships-widget {
|
|
background-color: var(--background-secondary);
|
|
border-color: var(--background-modifier-border);
|
|
}
|
|
|
|
|
|
/* ===== TASK-CARD-NOTE-WIDGET.CSS ===== */
|
|
/* Task Card Note Widget - minimal widget for inline task cards in notes */
|
|
|
|
.task-card-note-widget {
|
|
display: block;
|
|
border-radius: var(--radius-s);
|
|
border: 1px solid var(--background-modifier-border);
|
|
margin: var(--cs-spacing-md) 0;
|
|
padding: var(--cs-spacing-sm);
|
|
}
|
|
|
|
.task-card-note-widget__card {
|
|
/* Reset margins for the inner task card */
|
|
margin: 0 !important;
|
|
}
|
|
|
|
/* ===== TASK-LIST-VIEW.CSS ===== */
|
|
/* ================================================
|
|
TASK LIST VIEW - BEM STRUCTURE
|
|
================================================ */
|
|
|
|
/* Task List View Container - Root Block */
|
|
.tasknotes-plugin .task-list-view {
|
|
padding: var(--tn-spacing-sm);
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100%;
|
|
overflow-y: auto;
|
|
gap: var(--tn-spacing-sm);
|
|
max-width: 100%;
|
|
}
|
|
|
|
/* Task List View Header */
|
|
.tasknotes-plugin .task-list-view__header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: var(--tn-spacing-sm) 0;
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__title {
|
|
font-size: var(--tn-font-size-xl);
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
color: var(--tn-text-normal);
|
|
margin: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* Use consistent button system with primary accent background preserved */
|
|
.tasknotes-plugin .task-list-view__add-button {
|
|
background: var(--tn-interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__add-button:hover {
|
|
background: var(--tn-interactive-accent-hover);
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* Filter Bar Container */
|
|
.tasknotes-plugin .task-list-view__filter-container {
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Task List Container */
|
|
.tasknotes-plugin .task-list-view__tasks {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
flex: 1;
|
|
min-height: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
flex: 1;
|
|
min-height: 0;
|
|
}
|
|
|
|
|
|
/* Loading Indicator */
|
|
.tasknotes-plugin .task-list-view__loading {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--tn-spacing-sm);
|
|
padding: var(--tn-spacing-lg);
|
|
color: var(--tn-text-muted);
|
|
font-size: var(--tn-font-size-md);
|
|
font-style: italic;
|
|
font-weight: 400;
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-md);
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__loading.is-hidden {
|
|
display: none;
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__loading::before {
|
|
content: '';
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 2px solid color-mix(in srgb, var(--tn-text-muted) 0.3, transparent);
|
|
border-top: 2px solid var(--tn-text-muted);
|
|
border-radius: 50%;
|
|
animation: spin 1s linear infinite;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* Task Group Section */
|
|
.tasknotes-plugin .task-list-view__group {
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__group-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
justify-content: flex-start;
|
|
padding: var(--tn-spacing-md) 0 var(--tn-spacing-sm);
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
position: relative;
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
letter-spacing: 0.01em;
|
|
line-height: 1.4;
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
/* Count element within task list group headers */
|
|
.tasknotes-plugin .task-list-view__group-header .agenda-view__item-count {
|
|
margin-left: auto;
|
|
margin-right: 0;
|
|
}
|
|
|
|
|
|
/* Right side of group header: count + subgroup actions */
|
|
.tasknotes-plugin .task-list-view__group-header { display:flex; align-items:center; }
|
|
.tasknotes-plugin .task-group-right { margin-left:auto; display:flex; align-items:center; gap: var(--tn-spacing-xs); }
|
|
|
|
/* Override count margin when inside right-side container */
|
|
.tasknotes-plugin .task-group-right .agenda-view__item-count { margin-left: 0; margin-right: 0; }
|
|
|
|
/* Chevron/toggle styles (match preview-all) */
|
|
.tasknotes-plugin .task-group-header { cursor: var(--cursor); }
|
|
.task-group-header { display: flex; align-items: center; justify-content: flex-start; gap: var(--tn-spacing-xs); }
|
|
.tasknotes-plugin .task-group-toggle svg, .task-group-toggle .chevron, .task-group-toggle .chevron path { color: var(--tn-text-normal); }
|
|
.tasknotes-plugin .task-group-toggle svg, .task-group-toggle .chevron path { stroke: currentColor; }
|
|
.tasknotes-plugin .task-group.is-collapsed .task-group-toggle svg,
|
|
.tasknotes-plugin .task-group.is-collapsed .task-group-toggle .chevron { transform: rotate(0deg); }
|
|
.tasknotes-plugin .task-group-toggle { display: contents; align-items: center; justify-content: center; width: 20px; height: 20px; margin-right: var(--tn-spacing-xs); border: none; background: transparent; color: var(--tn-text-normal); font-size: 14px; line-height: 1; }
|
|
.tasknotes-plugin .task-group-toggle .chevron { transition: transform var(--tn-transition-fast); }
|
|
.tasknotes-plugin .task-group .task-group-toggle .chevron,
|
|
.tasknotes-plugin .task-group .task-group-toggle svg { transform: rotate(90deg); }
|
|
.tasknotes-plugin .task-group.is-collapsed .task-cards { display: none; }
|
|
|
|
/* Subgroup styles and chevron behavior */
|
|
.tasknotes-plugin .task-subgroups-container { margin-left: var(--tn-spacing-lg); }
|
|
.tasknotes-plugin .task-subgroup-header { display:flex; align-items:center; gap: var(--tn-spacing-xs); cursor: pointer; padding: 2px 0; font-size: var(--tn-font-size-lg); font-weight: var(--tn-font-weight-medium); }
|
|
.tasknotes-plugin .task-subgroup-header .agenda-view__item-count { margin-left: auto; }
|
|
.tasknotes-plugin .task-subgroup-toggle { display: contents; align-items:center; justify-content:center; width:16px; height:16px; border:none; background:transparent; color: var(--tn-text-normal); font-size: 12px; line-height: 1; }
|
|
.tasknotes-plugin .task-subgroup-toggle .chevron { transition: transform var(--tn-transition-fast); }
|
|
.tasknotes-plugin .task-subgroup .task-subgroup-toggle .chevron,
|
|
.tasknotes-plugin .task-subgroup .task-subgroup-toggle svg { transform: rotate(90deg); }
|
|
.tasknotes-plugin .task-subgroup.is-collapsed .task-subgroup-toggle .chevron,
|
|
.tasknotes-plugin .task-subgroup.is-collapsed .task-subgroup-toggle svg { transform: rotate(0deg); }
|
|
.tasknotes-plugin .task-subgroup.is-collapsed .task-cards { display: none; }
|
|
.tasknotes-plugin .task-group.is-collapsed .task-subgroups-container { display: none; }
|
|
|
|
/* Per-group subgroup actions */
|
|
.tasknotes-plugin .task-subgroup-actions { display:flex; align-items:center; gap: 4px; margin-left: 0; }
|
|
.tasknotes-plugin .task-subgroup-action { border:none; background:transparent; color: var(--tn-text-muted); cursor: var(--cursor); padding: 0; }
|
|
.tasknotes-plugin .task-subgroup-action:hover { color: var(--tn-text-normal); }
|
|
|
|
|
|
.tasknotes-plugin .task-list-view__project-link {
|
|
color: var(--tn-text-normal);
|
|
text-decoration: none;
|
|
cursor: var(--cursor);
|
|
transition: color 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__project-link:hover {
|
|
color: var(--tn-interactive-accent);
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__group-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
/* Empty State */
|
|
.tasknotes-plugin .task-list-view__empty {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: var(--tn-spacing-xl);
|
|
text-align: center;
|
|
color: var(--tn-text-muted);
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-md);
|
|
margin: var(--tn-spacing-lg) 0;
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__empty-title {
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__empty-description {
|
|
font-size: var(--tn-font-size-lg);
|
|
line-height: 1.6;
|
|
max-width: 400px;
|
|
}
|
|
|
|
/* Task Item Container (wraps task cards) */
|
|
.tasknotes-plugin .task-list-view__task-item {
|
|
position: relative;
|
|
background: var(--tn-bg-primary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-sm);
|
|
transition: all var(--tn-transition-fast);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__task-item:hover {
|
|
background: var(--tn-interactive-hover);
|
|
border-color: var(--tn-border-color-hover);
|
|
transform: translateY(-1px);
|
|
box-shadow: var(--tn-shadow-medium);
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__task-item:focus-within {
|
|
border-color: var(--tn-interactive-accent);
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* Task Item States */
|
|
.tasknotes-plugin .task-list-view__task-item--completed {
|
|
opacity: 0.7;
|
|
background: var(--tn-bg-secondary);
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__task-item--overdue {
|
|
border-left: 4px solid var(--tn-color-error);
|
|
background: color-mix(in srgb, var(--tn-color-error) 0.05, var(--tn-bg-primary));
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__task-item--due-today {
|
|
border-left: 4px solid var(--tn-interactive-accent);
|
|
background: color-mix(in srgb, var(--tn-interactive-accent) 0.05, var(--tn-bg-primary));
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__task-item--archived {
|
|
opacity: 0.5;
|
|
background: transparent;
|
|
}
|
|
|
|
/* Task Item Priority Indicators */
|
|
.tasknotes-plugin .task-list-view__task-item--priority-high {
|
|
border-left: 3px solid var(--tn-color-error);
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__task-item--priority-normal {
|
|
border-left: 3px solid var(--tn-interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__task-item--priority-low {
|
|
border-left: 3px solid var(--tn-text-muted);
|
|
}
|
|
|
|
/* Task Update Animation */
|
|
.tasknotes-plugin .task-list-view__task-item--updating {
|
|
animation: task-update 1.5s ease;
|
|
}
|
|
|
|
@keyframes task-update {
|
|
0% {
|
|
background-color: var(--tn-bg-primary);
|
|
transform: scale(1);
|
|
}
|
|
20% {
|
|
background-color: var(--tn-interactive-accent-hover);
|
|
transform: scale(1.02);
|
|
}
|
|
100% {
|
|
background-color: var(--tn-bg-primary);
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
|
|
/* Responsive Design */
|
|
@media (max-width: 768px) {
|
|
.tasknotes-plugin .task-list-view {
|
|
padding: var(--tn-spacing-xs);
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__header {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__actions {
|
|
justify-content: center;
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__add-button {
|
|
width: 100%;
|
|
max-width: 200px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.tasknotes-plugin .task-list-view__group-header {
|
|
font-size: var(--tn-font-size-md);
|
|
padding: var(--tn-spacing-sm) 0 var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__empty {
|
|
padding: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__empty-title {
|
|
font-size: var(--tn-font-size-md);
|
|
}
|
|
|
|
.tasknotes-plugin .task-list-view__empty-description {
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
}
|
|
|
|
|
|
/* ===== CALENDAR-VIEW.CSS ===== */
|
|
/* ================================================
|
|
CALENDAR VIEW & MINI-CALENDAR VIEW - BEM STRUCTURE
|
|
================================================ */
|
|
|
|
/* Calendar View Container - Root Block */
|
|
.tasknotes-plugin .calendar-view,
|
|
.tasknotes-plugin .mini-calendar-view {
|
|
padding: var(--tn-spacing-sm);
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100%;
|
|
overflow-y: auto;
|
|
gap: var(--tn-spacing-sm);
|
|
max-width: 100%;
|
|
}
|
|
|
|
/* Calendar Controls Container */
|
|
.tasknotes-plugin .calendar-view__controls,
|
|
.tasknotes-plugin .mini-calendar-view__controls {
|
|
display: flex;
|
|
flex-direction: column;
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
padding: var(--tn-spacing-xs);
|
|
background: var(--tn-bg-secondary);
|
|
border-radius: var(--tn-radius-sm);
|
|
gap: var(--tn-spacing-xs);
|
|
border: 1px solid var(--tn-border-color);
|
|
}
|
|
|
|
/* Calendar Header */
|
|
.tasknotes-plugin .calendar-view__header,
|
|
.tasknotes-plugin .mini-calendar-view__header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: var(--tn-spacing-md);
|
|
padding: var(--tn-spacing-sm) 0;
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Use consistent button system for view selector */
|
|
.tasknotes-plugin .calendar-view__view-selector,
|
|
.tasknotes-plugin .mini-calendar-view__view-selector {
|
|
/* margin-right: var(--tn-spacing-md); */
|
|
/* min-width: 120px; */
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
border: none;
|
|
box-shadow: none;
|
|
border-radius: var(--tn-radius-sm);
|
|
background: transparent;
|
|
color: var(--tn-text-normal);
|
|
font-size: var(--tn-font-size-sm);
|
|
cursor: var(--cursor);
|
|
transition: all var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__view-selector:hover,
|
|
.tasknotes-plugin .mini-calendar-view__view-selector:hover {
|
|
background: var(--tn-interactive-hover);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__view-selector:focus,
|
|
.tasknotes-plugin .mini-calendar-view__view-selector:focus {
|
|
outline: 2px solid var(--tn-interactive-accent);
|
|
outline-offset: 2px;
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* Calendar Navigation Section */
|
|
.tasknotes-plugin .calendar-view__navigation,
|
|
.tasknotes-plugin .mini-calendar-view__navigation {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* Calendar Month Display */
|
|
.tasknotes-plugin .calendar-view__month-display,
|
|
.tasknotes-plugin .mini-calendar-view__month-display {
|
|
font-weight: 500;
|
|
font-size: var(--tn-font-size-lg);
|
|
/* min-width: 140px; */
|
|
text-align: center;
|
|
padding-inline: 5px;
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__nav-button,
|
|
.tasknotes-plugin .mini-calendar-view__nav-button {
|
|
width: 32px;
|
|
height: 32px;
|
|
font-size: 16px;
|
|
font-weight: 500;
|
|
border: none;
|
|
box-shadow: none;
|
|
background: transparent;
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__today-button,
|
|
.tasknotes-plugin .mini-calendar-view__today-button {
|
|
margin-left: auto;
|
|
border: none;
|
|
box-shadow: none;
|
|
background: transparent;
|
|
font-weight: normal;
|
|
opacity: 0.7;
|
|
transition: opacity var(--tn-transition-fast);
|
|
cursor: var(--cursor);
|
|
border-radius: var(--tn-radius-sm);
|
|
font-size: var(--tn-font-size-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__today-button:hover,
|
|
.tasknotes-plugin .mini-calendar-view__today-button:hover {
|
|
background-color: var(--tn-interactive-hover);
|
|
color: var(--tn-text-normal);
|
|
opacity: 1;
|
|
}
|
|
|
|
/* Loading Indicator */
|
|
.tasknotes-plugin .calendar-view__loading,
|
|
.tasknotes-plugin .mini-calendar-view__loading {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--tn-spacing-sm);
|
|
padding: var(--tn-spacing-lg);
|
|
color: var(--tn-text-muted);
|
|
font-size: var(--tn-font-size-md);
|
|
font-style: italic;
|
|
font-weight: 400;
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-md);
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__loading::before,
|
|
.tasknotes-plugin .mini-calendar-view__loading::before {
|
|
content: '';
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 2px solid color-mix(in srgb, var(--tn-text-muted) 0.3, transparent);
|
|
border-top: 2px solid var(--tn-text-muted);
|
|
border-radius: 50%;
|
|
animation: spin 1s linear infinite;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* Calendar Grid Container */
|
|
.tasknotes-plugin .calendar-view__grid-container,
|
|
.tasknotes-plugin .mini-calendar-view__grid-container {
|
|
margin-bottom: var(--tn-spacing-md);
|
|
background: transparent;
|
|
border-radius: 0;
|
|
padding: 0;
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* Calendar Grid */
|
|
.tasknotes-plugin .calendar-view__grid,
|
|
.tasknotes-plugin .mini-calendar-view__grid {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1px;
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-sm);
|
|
overflow: hidden;
|
|
role: grid;
|
|
}
|
|
|
|
/* Calendar Grid Header Row */
|
|
.tasknotes-plugin .calendar-view__grid-header,
|
|
.tasknotes-plugin .mini-calendar-view__grid-header {
|
|
display: grid;
|
|
grid-template-columns: repeat(7, 1fr);
|
|
gap: 1px;
|
|
background: var(--tn-bg-secondary);
|
|
role: row;
|
|
}
|
|
|
|
/* Calendar Week Row */
|
|
.tasknotes-plugin .calendar-view__week,
|
|
.tasknotes-plugin .mini-calendar-view__week {
|
|
display: grid;
|
|
grid-template-columns: repeat(7, 1fr);
|
|
gap: 1px;
|
|
role: row;
|
|
}
|
|
|
|
/* Calendar Day Header (Sun, Mon, etc.) */
|
|
.tasknotes-plugin .calendar-view__day-header,
|
|
.tasknotes-plugin .mini-calendar-view__day-header {
|
|
text-align: center;
|
|
font-weight: 500;
|
|
font-size: var(--tn-font-size-xs);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.1em;
|
|
padding: var(--tn-spacing-xs);
|
|
color: var(--tn-text-muted);
|
|
background: var(--tn-bg-secondary);
|
|
border: none;
|
|
role: columnheader;
|
|
}
|
|
|
|
/* Calendar Day Cell - consistent styling */
|
|
.tasknotes-plugin .calendar-view__day,
|
|
.tasknotes-plugin .mini-calendar-view__day {
|
|
position: relative;
|
|
min-height: 2rem;
|
|
padding: var(--tn-spacing-xs);
|
|
text-align: center;
|
|
cursor: var(--cursor);
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--tn-bg-primary);
|
|
border: none;
|
|
transition: all var(--tn-transition-fast);
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: 500;
|
|
role: gridcell;
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__day:hover,
|
|
.tasknotes-plugin .mini-calendar-view__day:hover {
|
|
background-color: var(--tn-interactive-hover);
|
|
transform: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* Calendar Day - Today State */
|
|
.tasknotes-plugin .calendar-view__day--today,
|
|
.tasknotes-plugin .mini-calendar-view__day--today {
|
|
background: var(--tn-interactive-hover) !important;
|
|
color: var(--tn-interactive-accent);
|
|
font-weight: 600;
|
|
box-shadow: none;
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__day--today::after,
|
|
.tasknotes-plugin .mini-calendar-view__day--today::after {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: 2px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
width: 4px;
|
|
height: 4px;
|
|
border-radius: 50%;
|
|
background: var(--tn-interactive-accent);
|
|
}
|
|
|
|
/* Calendar Day - Selected State */
|
|
.tasknotes-plugin .calendar-view__day--selected,
|
|
.tasknotes-plugin .mini-calendar-view__day--selected {
|
|
border: 1px solid var(--tn-interactive-accent);
|
|
font-weight: 500;
|
|
background-color: color-mix(in srgb, var(--tn-interactive-accent) 12%, transparent);
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* Selected but not today */
|
|
.tasknotes-plugin .calendar-view__day--selected:not(.calendar-view__day--today),
|
|
.tasknotes-plugin .mini-calendar-view__day--selected:not(.mini-calendar-view__day--today) {
|
|
background-color: var(--tn-bg-secondary);
|
|
}
|
|
|
|
/* Selected and today */
|
|
.tasknotes-plugin .calendar-view__day--today.calendar-view__day--selected,
|
|
.tasknotes-plugin .mini-calendar-view__day--today.mini-calendar-view__day--selected {
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* Calendar Day - Outside Month */
|
|
.tasknotes-plugin .calendar-view__day--outside-month,
|
|
.tasknotes-plugin .mini-calendar-view__day--outside-month {
|
|
color: var(--tn-text-faint);
|
|
background-color: transparent;
|
|
opacity: 0.3;
|
|
}
|
|
|
|
/* Selected state overrides content indicator borders */
|
|
.tasknotes-plugin .calendar-view__day--selected.calendar-view__day--has-notes,
|
|
.tasknotes-plugin .calendar-view__day--selected.calendar-view__day--has-tasks,
|
|
.tasknotes-plugin .calendar-view__day--selected.calendar-view__day--has-daily-note,
|
|
.tasknotes-plugin .mini-calendar-view__day--selected.mini-calendar-view__day--has-notes,
|
|
.tasknotes-plugin .mini-calendar-view__day--selected.mini-calendar-view__day--has-tasks,
|
|
.tasknotes-plugin .mini-calendar-view__day--selected.mini-calendar-view__day--has-daily-note {
|
|
border: 1px solid var(--tn-interactive-accent);
|
|
}
|
|
|
|
/* Day Indicators Container (for dots/markers) */
|
|
.tasknotes-plugin .calendar-view__day-indicators,
|
|
.tasknotes-plugin .mini-calendar-view__day-indicators {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 2px;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
/* Individual Day Indicator */
|
|
.tasknotes-plugin .calendar-view__day-indicator,
|
|
.tasknotes-plugin .mini-calendar-view__day-indicator {
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 50%;
|
|
display: inline-block;
|
|
margin: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__day-indicator--notes,
|
|
.tasknotes-plugin .mini-calendar-view__day-indicator--notes {
|
|
background-color: var(--tn-interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__day-indicator--tasks,
|
|
.tasknotes-plugin .mini-calendar-view__day-indicator--tasks {
|
|
background-color: var(--tn-color-error);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__day-indicator--important,
|
|
.tasknotes-plugin .mini-calendar-view__day-indicator--important {
|
|
background-color: var(--tn-color-warning);
|
|
}
|
|
|
|
/* Content Indicators (Notes, Tasks, Daily Notes) */
|
|
.tasknotes-plugin .calendar-view__content-indicator,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator {
|
|
position: absolute;
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
transition: all var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__content-indicator--notes,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--notes {
|
|
bottom: 4px;
|
|
left: 30%;
|
|
transform: translateX(-50%);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__content-indicator--tasks,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--tasks {
|
|
bottom: 4px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__content-indicator--daily-note,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--daily-note {
|
|
bottom: 4px;
|
|
left: 70%;
|
|
transform: translateX(-50%);
|
|
}
|
|
|
|
/* Hover effects for content indicators */
|
|
.tasknotes-plugin .calendar-view__day:hover .calendar-view__content-indicator,
|
|
.tasknotes-plugin .mini-calendar-view__day:hover .mini-calendar-view__content-indicator {
|
|
transform: translateX(-50%) scale(1.2);
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
/* Notes Indicators - Different intensities */
|
|
.tasknotes-plugin .calendar-view__content-indicator--notes-few,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--notes-few {
|
|
background: var(--tn-color-notes-light);
|
|
width: 6px;
|
|
height: 6px;
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__content-indicator--notes-some,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--notes-some {
|
|
background: var(--tn-color-notes-medium);
|
|
width: 8px;
|
|
height: 8px;
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__content-indicator--notes-many,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--notes-many {
|
|
background: var(--tn-color-notes-heavy);
|
|
width: 10px;
|
|
height: 10px;
|
|
}
|
|
|
|
/* Task Indicators - Different states */
|
|
.tasknotes-plugin .calendar-view__content-indicator--tasks-due,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--tasks-due {
|
|
background: var(--tn-color-error);
|
|
width: 8px;
|
|
height: 8px;
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__content-indicator--tasks-completed,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--tasks-completed {
|
|
background: var(--tn-color-success);
|
|
width: 8px;
|
|
height: 8px;
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__content-indicator--tasks-scheduled,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--tasks-scheduled {
|
|
background: var(--tn-interactive-accent);
|
|
width: 8px;
|
|
height: 8px;
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__content-indicator--tasks-archived,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--tasks-archived {
|
|
background: var(--tn-color-archived);
|
|
width: 8px;
|
|
height: 8px;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* Daily Note Indicator */
|
|
.tasknotes-plugin .calendar-view__content-indicator--daily-note,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--daily-note {
|
|
background-color: var(--tn-color-daily-note);
|
|
width: 7px;
|
|
height: 7px;
|
|
border: 1px solid rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
/* Hover tooltip for indicators */
|
|
.tasknotes-plugin .calendar-view__content-indicator:hover::after,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator:hover::after {
|
|
content: attr(aria-label);
|
|
position: absolute;
|
|
background: var(--tn-bg-primary);
|
|
color: var(--tn-text-normal);
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
border-radius: var(--tn-radius-sm);
|
|
font-size: var(--tn-font-size-xs);
|
|
white-space: nowrap;
|
|
bottom: 20px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
z-index: var(--tn-z-tooltip);
|
|
box-shadow: var(--tn-shadow-medium);
|
|
pointer-events: none;
|
|
border: 1px solid var(--tn-border-color);
|
|
}
|
|
|
|
/* Day Content State Modifiers */
|
|
.tasknotes-plugin .calendar-view__day--has-content,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-content {
|
|
font-weight: 500;
|
|
background-color: transparent;
|
|
border-top: 1px solid transparent;
|
|
border-right: 1px solid transparent;
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
border-left: 1px solid transparent;
|
|
}
|
|
|
|
/* Notes Content Indicators */
|
|
.tasknotes-plugin .calendar-view__day--has-notes-few,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-notes-few {
|
|
border-left: var(--tn-spacing-xs) solid var(--tn-color-notes-light);
|
|
background: linear-gradient(to right, var(--cs-blue-100), transparent);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__day--has-notes-some,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-notes-some {
|
|
border-left: var(--tn-spacing-xs) solid var(--tn-color-notes-medium);
|
|
background: linear-gradient(to right, var(--cs-blue-100), transparent);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__day--has-notes-many,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-notes-many {
|
|
border-left: var(--tn-spacing-xs) solid var(--tn-color-notes-heavy);
|
|
background: linear-gradient(to right, var(--cs-blue-100), transparent);
|
|
}
|
|
|
|
/* Tasks Content Indicators */
|
|
.tasknotes-plugin .calendar-view__day--has-tasks,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-tasks {
|
|
border-left: var(--tn-spacing-xs) solid var(--tn-color-error);
|
|
background: linear-gradient(to right, var(--cs-red-100), transparent);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__day--has-scheduled-tasks,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-scheduled-tasks {
|
|
border-left: var(--tn-spacing-xs) solid var(--tn-interactive-accent);
|
|
background: linear-gradient(to right, var(--cs-blue-100), transparent);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__day--has-completed-tasks,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-completed-tasks {
|
|
border-left: var(--tn-spacing-xs) solid var(--tn-color-success);
|
|
background: linear-gradient(to right, var(--cs-green-100), transparent);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__day--has-archived-tasks,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-archived-tasks {
|
|
border-left: var(--tn-spacing-xs) solid var(--tn-color-archived);
|
|
background: linear-gradient(to right, var(--cs-gray-100), transparent);
|
|
}
|
|
|
|
/* Daily Note Content Indicator */
|
|
.tasknotes-plugin .calendar-view__day--has-daily-note,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-daily-note {
|
|
border-left: var(--tn-spacing-xs) solid var(--tn-color-daily-note);
|
|
background: linear-gradient(to right, var(--cs-purple-100), transparent);
|
|
}
|
|
|
|
/* Enhanced hover effects for content indicators */
|
|
.tasknotes-plugin .calendar-view__day--has-content:hover,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-content:hover {
|
|
border-left-width: var(--tn-spacing-sm);
|
|
transform: translateX(1px);
|
|
}
|
|
|
|
/* Mini calendar minimalist adjustments */
|
|
.tasknotes-plugin .mini-calendar-view {
|
|
padding: var(--tn-spacing-xs);
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__controls {
|
|
padding: 0;
|
|
gap: var(--tn-spacing-xs);
|
|
background: transparent;
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__header {
|
|
padding: 0;
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__navigation {
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend {
|
|
margin-top: var(--tn-spacing-sm);
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-summary {
|
|
cursor: var(--cursor);
|
|
list-style: none;
|
|
padding: calc(var(--tn-spacing-xs) * 0.25) 0;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend[open] .mini-calendar-view__legend-summary {
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: calc(var(--tn-spacing-xs) * 0.5);
|
|
margin-top: calc(var(--tn-spacing-xs) * 0.75);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: calc(var(--tn-spacing-xs) * 0.5);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-section-title {
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-dot {
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 50%;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-dot--due {
|
|
background-color: var(--tn-color-error);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-dot--scheduled {
|
|
background-color: var(--tn-interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-dot--completed {
|
|
background-color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-dot--notes {
|
|
background-color: var(--tn-color-notes-medium);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-dot--daily {
|
|
background-color: var(--tn-color-daily-note);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-label {
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-interaction {
|
|
display: flex;
|
|
gap: var(--tn-spacing-xs);
|
|
align-items: baseline;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-action {
|
|
font-weight: 600;
|
|
color: var(--tn-text-muted);
|
|
min-width: 96px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__legend-description {
|
|
color: var(--tn-text-muted);
|
|
flex: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__nav-button {
|
|
width: var(--tn-button-height-sm);
|
|
height: var(--tn-button-height-sm);
|
|
font-size: var(--tn-font-size-lg);
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__nav-button:hover {
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__view-selector {
|
|
padding: 0;
|
|
border: none;
|
|
background: transparent;
|
|
font-weight: 600;
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__view-selector:hover,
|
|
.tasknotes-plugin .mini-calendar-view__view-selector:focus {
|
|
background: transparent;
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__view-selector:focus-visible {
|
|
outline: 1px solid var(--tn-interactive-accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__month-display {
|
|
font-weight: 600;
|
|
font-size: var(--tn-font-size-md);
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__grid-container {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__grid {
|
|
border: none;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
gap: 1px;
|
|
outline: none;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__grid:focus {
|
|
outline: none;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__grid-header {
|
|
background: transparent;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day-header {
|
|
background: transparent;
|
|
color: var(--tn-text-muted);
|
|
letter-spacing: 0.08em;
|
|
padding: calc(var(--tn-spacing-xs) * 0.75) 0;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__week {
|
|
gap: 1px;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day {
|
|
background: transparent;
|
|
border-radius: var(--tn-radius-sm);
|
|
min-height: 2.25rem;
|
|
border: none;
|
|
transition: border-color var(--tn-transition-fast), background-color var(--tn-transition-fast), color var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day:hover {
|
|
background: color-mix(in srgb, var(--tn-interactive-hover) 25%, transparent);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day--today {
|
|
background: none !important;
|
|
color: var(--tn-text-on-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day--today::after {
|
|
bottom: 6px;
|
|
background: color-mix(in srgb, var(--tn-interactive-accent) 85%, transparent);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day--selected {
|
|
background: color-mix(in srgb, var(--tn-interactive-accent) 20%, transparent);
|
|
border: 1px solid var(--tn-interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day--today.mini-calendar-view__day--selected {
|
|
background: color-mix(in srgb, var(--tn-interactive-accent) 25%, transparent);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day--outside-month {
|
|
opacity: 0.45;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day--has-content,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-notes-few,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-notes-some,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-notes-many,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-tasks,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-scheduled-tasks,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-completed-tasks,
|
|
.tasknotes-plugin .mini-calendar-view__day--has-daily-note {
|
|
background: transparent;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day--has-content:hover {
|
|
transform: none;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day-indicators {
|
|
margin-top: 4px;
|
|
gap: 4px;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator {
|
|
width: 6px;
|
|
height: 6px;
|
|
bottom: 6px;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day:hover .mini-calendar-view__content-indicator {
|
|
transform: translateX(-50%);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--notes-some,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--notes-many {
|
|
width: 7px;
|
|
height: 7px;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--notes-many {
|
|
width: 8px;
|
|
height: 8px;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--tasks-due,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--tasks-completed,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--tasks-scheduled,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--tasks-archived,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator--daily-note {
|
|
width: 6px;
|
|
height: 6px;
|
|
}
|
|
|
|
/* Responsive Design */
|
|
@media (max-width: 768px) {
|
|
.tasknotes-plugin .calendar-view,
|
|
.tasknotes-plugin .mini-calendar-view {
|
|
padding: var(--tn-spacing-xs);
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__controls,
|
|
.tasknotes-plugin .mini-calendar-view__controls {
|
|
padding: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__nav-button,
|
|
.tasknotes-plugin .mini-calendar-view__nav-button {
|
|
width: 28px;
|
|
height: 28px;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__day,
|
|
.tasknotes-plugin .mini-calendar-view__day {
|
|
min-height: 1.8rem;
|
|
font-size: var(--tn-font-size-xs);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.tasknotes-plugin .calendar-view__header,
|
|
.tasknotes-plugin .mini-calendar-view__header {
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-sm);
|
|
align-items: stretch;
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__navigation,
|
|
.tasknotes-plugin .mini-calendar-view__navigation {
|
|
justify-content: center;
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__month-display,
|
|
.tasknotes-plugin .mini-calendar-view__month-display {
|
|
font-size: var(--tn-font-size-md);
|
|
min-width: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__day,
|
|
.tasknotes-plugin .mini-calendar-view__day {
|
|
min-height: 1.5rem;
|
|
padding: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .calendar-view__content-indicator,
|
|
.tasknotes-plugin .mini-calendar-view__content-indicator {
|
|
width: 6px;
|
|
height: 6px;
|
|
}
|
|
}
|
|
|
|
/* Mini Calendar Specific Indicators */
|
|
.tasknotes-plugin .note-indicator,
|
|
.tasknotes-plugin .task-indicator,
|
|
.tasknotes-plugin .daily-note-indicator {
|
|
position: absolute;
|
|
bottom: 2px;
|
|
right: 2px;
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 50%;
|
|
display: inline-block;
|
|
}
|
|
|
|
.tasknotes-plugin .note-indicator.few-notes {
|
|
background-color: var(--tn-color-notes-light);
|
|
}
|
|
|
|
.tasknotes-plugin .note-indicator.some-notes {
|
|
background-color: var(--tn-color-notes-medium);
|
|
}
|
|
|
|
.tasknotes-plugin .note-indicator.many-notes {
|
|
background-color: var(--tn-color-notes-heavy);
|
|
}
|
|
|
|
.tasknotes-plugin .task-indicator.due-tasks {
|
|
background-color: var(--tn-color-error);
|
|
}
|
|
|
|
.tasknotes-plugin .task-indicator.completed-tasks {
|
|
background-color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .task-indicator.scheduled-tasks {
|
|
background-color: var(--tn-interactive-accent);
|
|
}
|
|
|
|
.tasknotes-plugin .daily-note-indicator {
|
|
background-color: var(--tn-color-daily-note);
|
|
}
|
|
|
|
/* Cache Loading Indicator */
|
|
.tasknotes-plugin .cache-loading-indicator {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--tn-spacing-sm);
|
|
padding: var(--tn-spacing-lg);
|
|
color: var(--tn-text-muted);
|
|
font-size: var(--tn-font-size-md);
|
|
font-style: italic;
|
|
font-weight: 400;
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-md);
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .cache-loading-indicator::before {
|
|
content: '';
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 2px solid color-mix(in srgb, var(--tn-text-muted) 0.3, transparent);
|
|
border-top: 2px solid var(--tn-text-muted);
|
|
border-radius: 50%;
|
|
animation: spin 1s linear infinite;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
@keyframes spin {
|
|
0% { transform: rotate(0deg); }
|
|
100% { transform: rotate(360deg); }
|
|
}
|
|
|
|
/* ================================================
|
|
MINI CALENDAR DRAG AND DROP STATES
|
|
================================================ */
|
|
|
|
/* Drag over state for mini calendar days */
|
|
.tasknotes-plugin .mini-calendar-view__day--dragover {
|
|
background-color: var(--tn-interactive-accent-hover) !important;
|
|
border-color: var(--tn-interactive-accent) !important;
|
|
color: var(--tn-text-on-accent) !important;
|
|
transform: scale(1.1);
|
|
box-shadow: var(--tn-shadow-light);
|
|
z-index: 10;
|
|
border: 2px solid var(--tn-interactive-accent);
|
|
border-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
/* ================================================
|
|
MINI CALENDAR WEEK NUMBERS & SELECTION
|
|
================================================ */
|
|
|
|
/* Update grid layout to include week number column */
|
|
.tasknotes-plugin .mini-calendar-view__grid-header {
|
|
grid-template-columns: 40px repeat(7, 1fr);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__week {
|
|
grid-template-columns: 40px repeat(7, 1fr);
|
|
}
|
|
|
|
/* Week number header cell */
|
|
.tasknotes-plugin .mini-calendar-view__week-header {
|
|
text-align: center;
|
|
font-weight: 500;
|
|
font-size: var(--tn-font-size-xs);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.1em;
|
|
padding: var(--tn-spacing-xs);
|
|
color: var(--tn-text-muted);
|
|
background: var(--tn-bg-secondary);
|
|
border: none;
|
|
}
|
|
|
|
/* Week number cell */
|
|
.tasknotes-plugin .mini-calendar-week-number {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: var(--tn-font-size-xs);
|
|
font-weight: 600;
|
|
color: var(--tn-text-muted);
|
|
background: var(--tn-bg-secondary);
|
|
cursor: var(--cursor);
|
|
transition: all var(--tn-transition-fast);
|
|
border-right: 1px solid var(--tn-border-color);
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-week-number:hover {
|
|
background: var(--tn-interactive-hover);
|
|
color: var(--tn-interactive-accent);
|
|
}
|
|
|
|
/* ================================================
|
|
MINI CALENDAR NOTE PREVIEW TOOLTIP
|
|
================================================ */
|
|
|
|
.mini-calendar-note-preview {
|
|
position: absolute;
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--radius-m);
|
|
padding: var(--size-4-3);
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
max-width: 300px;
|
|
min-width: 200px;
|
|
z-index: 1000;
|
|
pointer-events: none;
|
|
backdrop-filter: blur(8px);
|
|
}
|
|
|
|
.mini-calendar-note-preview .preview-header {
|
|
font-weight: 600;
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-normal);
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
padding-bottom: var(--tn-spacing-xs);
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
}
|
|
|
|
.mini-calendar-note-preview .preview-list {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
font-size: var(--tn-font-size-xs);
|
|
}
|
|
|
|
.mini-calendar-note-preview .preview-list li {
|
|
padding: var(--tn-spacing-xs) 0;
|
|
color: var(--tn-text-normal);
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.mini-calendar-note-preview .preview-note-title {
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.mini-calendar-note-preview .preview-note-type {
|
|
color: var(--tn-text-muted);
|
|
font-size: var(--tn-font-size-xs);
|
|
font-style: italic;
|
|
}
|
|
|
|
.mini-calendar-note-preview .preview-more {
|
|
color: var(--tn-text-muted);
|
|
font-style: italic;
|
|
margin-top: var(--tn-spacing-xs);
|
|
}
|
|
|
|
/* ================================================
|
|
MINI CALENDAR HEAT MAP INTENSITY
|
|
================================================ */
|
|
|
|
/* Heat map intensity levels (GitHub contributions style) */
|
|
.tasknotes-plugin .mini-calendar-view__day--intensity-none {
|
|
/* Default background, no change */
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day--intensity-low {
|
|
background: color-mix(in srgb, var(--tn-interactive-accent) 25%, var(--tn-bg-primary)) !important;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day--intensity-medium {
|
|
background: color-mix(in srgb, var(--tn-interactive-accent) 40%, var(--tn-bg-primary)) !important;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day--intensity-high {
|
|
background: color-mix(in srgb, var(--tn-interactive-accent) 55%, var(--tn-bg-primary)) !important;
|
|
}
|
|
|
|
.tasknotes-plugin .mini-calendar-view__day--intensity-very-high {
|
|
background: color-mix(in srgb, var(--tn-interactive-accent) 70%, var(--tn-bg-primary)) !important;
|
|
color: var(--tn-text-on-accent);
|
|
font-weight: 600;
|
|
}
|
|
|
|
/* Preserve hover effect on heat map days */
|
|
.tasknotes-plugin .mini-calendar-view__day--intensity-low:hover,
|
|
.tasknotes-plugin .mini-calendar-view__day--intensity-medium:hover,
|
|
.tasknotes-plugin .mini-calendar-view__day--intensity-high:hover,
|
|
.tasknotes-plugin .mini-calendar-view__day--intensity-very-high:hover {
|
|
background: color-mix(in srgb, var(--tn-interactive-accent) 35%, var(--tn-interactive-hover)) !important;
|
|
}
|
|
|
|
|
|
/* ===== ADVANCED-CALENDAR-VIEW.CSS ===== */
|
|
/* Advanced Calendar View Styles */
|
|
.advanced-calendar-view {
|
|
height: 100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* ICS Event Styles */
|
|
.fc-event[data-ics-event="true"] {
|
|
opacity: 0.9;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
/* Only apply calendar emoji to ICS events in non-list views */
|
|
.fc-daygrid-event[data-ics-event="true"]:before,
|
|
.fc-timegrid-event[data-ics-event="true"]:before {
|
|
content: "📅";
|
|
position: absolute;
|
|
top: 2px;
|
|
right: 2px;
|
|
font-size: 10px;
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.fc-event[data-ics-event="true"]:hover {
|
|
opacity: 1;
|
|
box-shadow: 0 2px 4px rgba(0,0,0,0.2);
|
|
}
|
|
|
|
/* ICS Event Info Modal */
|
|
.ics-event-description {
|
|
max-height: 100px;
|
|
overflow-y: auto;
|
|
white-space: pre-wrap;
|
|
font-size: 0.9em;
|
|
margin-top: 0.25rem;
|
|
padding: 0.5rem;
|
|
background: var(--background-secondary);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
/* ICS Context Menu */
|
|
.ics-event-context-menu {
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
.ics-context-menu-item:hover {
|
|
background-color: var(--background-modifier-hover) !important;
|
|
}
|
|
|
|
/* Timeblock Help Text */
|
|
.advanced-calendar-view__help-text {
|
|
font-size: 0.85em;
|
|
color: var(--text-muted);
|
|
margin-top: 0.5rem;
|
|
padding: 0.5rem;
|
|
background: var(--background-secondary);
|
|
border-radius: 4px;
|
|
border-left: 3px solid var(--color-accent);
|
|
}
|
|
|
|
/* Event Type Specific Styles */
|
|
|
|
/* Timeblock Events */
|
|
.fc-timeblock-event,
|
|
.fc-event[data-event-type="timeblock"] {
|
|
opacity: 0.65;
|
|
border-radius: 4px;
|
|
border-width: 1px !important;
|
|
border-style: solid !important;
|
|
transition: opacity 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
|
|
}
|
|
|
|
.fc-timeblock-event:hover,
|
|
.fc-event[data-event-type="timeblock"]:hover {
|
|
opacity: 0.90;
|
|
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
|
|
transform: translateY(-0.5px);
|
|
}
|
|
|
|
/* Time Entry Events - Recorded time with distinctive dashed border */
|
|
.fc-event[data-event-type="timeEntry"] {
|
|
opacity: 0.9;
|
|
border-radius: 4px;
|
|
border-width: 2px !important;
|
|
border-style: dashed !important; /* Dashed border to differentiate from solid timeblocks */
|
|
background: repeating-linear-gradient(
|
|
45deg,
|
|
rgba(16, 185, 129, 0.08),
|
|
rgba(16, 185, 129, 0.08) 10px,
|
|
rgba(16, 185, 129, 0.15) 10px,
|
|
rgba(16, 185, 129, 0.15) 20px
|
|
) !important; /* Subtle diagonal stripes in green */
|
|
border-color: #10b981 !important; /* Green to indicate "completed/recorded" time */
|
|
}
|
|
|
|
.fc-event[data-event-type="timeEntry"] .fc-event-time,
|
|
.fc-event[data-event-type="timeEntry"] .fc-event-title {
|
|
color: #059669 !important; /* Darker green for better readability */
|
|
font-weight: 500;
|
|
}
|
|
|
|
.fc-event[data-event-type="timeEntry"]:hover {
|
|
opacity: 1;
|
|
box-shadow: 0 2px 6px rgba(16, 185, 129, 0.3);
|
|
border-style: solid !important; /* Solid border on hover for clarity */
|
|
}
|
|
|
|
/* Dark mode adjustments for time entries */
|
|
.theme-dark .fc-event[data-event-type="timeEntry"] {
|
|
background: repeating-linear-gradient(
|
|
45deg,
|
|
rgba(52, 211, 153, 0.1),
|
|
rgba(52, 211, 153, 0.1) 10px,
|
|
rgba(52, 211, 153, 0.18) 10px,
|
|
rgba(52, 211, 153, 0.18) 20px
|
|
) !important;
|
|
border-color: #34d399 !important; /* Lighter green for dark mode */
|
|
}
|
|
|
|
.theme-dark .fc-event[data-event-type="timeEntry"] .fc-event-time,
|
|
.theme-dark .fc-event[data-event-type="timeEntry"] .fc-event-title {
|
|
color: #6ee7b7 !important; /* Even lighter green for text in dark mode */
|
|
}
|
|
|
|
/* Task Events */
|
|
.fc-task-event {
|
|
border-radius: 4px;
|
|
border-width: 1px !important;
|
|
}
|
|
|
|
.fc-task-event:hover {
|
|
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
/* ICS Events - only in non-list views */
|
|
.fc-daygrid-event.fc-ics-event,
|
|
.fc-timegrid-event.fc-ics-event {
|
|
border-radius: 4px;
|
|
border-width: 2px !important;
|
|
border-style: solid !important;
|
|
}
|
|
|
|
.fc-daygrid-event.fc-ics-event:hover,
|
|
.fc-timegrid-event.fc-ics-event:hover {
|
|
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
/* Recurring Events */
|
|
.fc-recurring-event {
|
|
border-style: dashed !important;
|
|
}
|
|
|
|
/* Completed Events */
|
|
.fc-completed-event {
|
|
opacity: 0.7;
|
|
}
|
|
|
|
/* Timeblock Modal Styles */
|
|
.timeblock-creation-modal .modal-content {
|
|
max-width: 500px;
|
|
}
|
|
|
|
.timeblock-date-display {
|
|
margin-bottom: 1rem;
|
|
padding: 0.75rem;
|
|
background: var(--background-secondary);
|
|
border-radius: 6px;
|
|
text-align: center;
|
|
}
|
|
|
|
.timeblock-time-container {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.timeblock-modal-buttons {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
justify-content: flex-end;
|
|
margin-top: 1.5rem;
|
|
}
|
|
|
|
.timeblock-help-text {
|
|
font-size: 0.85em;
|
|
color: var(--text-muted);
|
|
margin-top: 1rem;
|
|
padding: 0.75rem;
|
|
background: var(--background-secondary);
|
|
border-radius: 4px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.timeblock-help-text code {
|
|
background: var(--background-primary);
|
|
padding: 0.2em 0.4em;
|
|
border-radius: 3px;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
/* Attachment Selection Styles */
|
|
.timeblock-attachments-list {
|
|
margin-top: 0.5rem;
|
|
min-height: 2rem;
|
|
}
|
|
|
|
.timeblock-attachments-empty {
|
|
color: var(--text-muted);
|
|
font-style: italic;
|
|
font-size: 0.9em;
|
|
padding: 0.5rem;
|
|
text-align: center;
|
|
background: var(--background-secondary);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.timeblock-attachment-item {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 0.5rem;
|
|
margin-bottom: 0.5rem;
|
|
background: var(--background-secondary);
|
|
border-radius: 4px;
|
|
border: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.timeblock-attachment-item:hover {
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.timeblock-attachment-info {
|
|
flex: 1;
|
|
min-width: 0; /* Allow text truncation */
|
|
}
|
|
|
|
.timeblock-attachment-name {
|
|
font-weight: 500;
|
|
color: var(--text-normal);
|
|
display: block;
|
|
}
|
|
|
|
.timeblock-attachment-path {
|
|
font-size: 0.85em;
|
|
color: var(--text-muted);
|
|
margin-top: 0.2rem;
|
|
word-break: break-all;
|
|
}
|
|
|
|
.timeblock-attachment-remove {
|
|
background: none;
|
|
border: none;
|
|
color: var(--text-muted);
|
|
font-size: 1.2em;
|
|
cursor: var(--cursor);
|
|
padding: 0.2rem 0.5rem;
|
|
border-radius: 3px;
|
|
margin-left: 0.5rem;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.timeblock-attachment-remove:hover {
|
|
background: var(--background-modifier-error);
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
/* Attachment Suggestion Modal Styles */
|
|
.attachment-suggestion {
|
|
padding: 0.5rem;
|
|
}
|
|
|
|
.attachment-name {
|
|
font-weight: 500;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.attachment-path {
|
|
font-size: 0.85em;
|
|
color: var(--text-muted);
|
|
margin-top: 0.2rem;
|
|
}
|
|
|
|
/* Timeblock Info Modal */
|
|
.timeblock-description {
|
|
max-height: 100px;
|
|
overflow-y: auto;
|
|
white-space: pre-wrap;
|
|
font-size: 0.9em;
|
|
margin-top: 0.25rem;
|
|
padding: 0.5rem;
|
|
background: var(--background-secondary);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.timeblock-attachments {
|
|
margin-top: 0.5rem;
|
|
}
|
|
|
|
.timeblock-attachment-item {
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
.timeblock-attachment-item .internal-link {
|
|
color: var(--link-color);
|
|
text-decoration: none;
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
.timeblock-attachment-item .internal-link:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
/* ICS Subscription Settings */
|
|
.ics-subscription-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1rem;
|
|
padding: 0.75rem;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 4px;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.settings-status-indicator {
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 50%;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.settings-status-indicator.enabled {
|
|
background-color: var(--text-success);
|
|
}
|
|
|
|
.settings-status-indicator.enabled.error {
|
|
background-color: var(--text-error);
|
|
}
|
|
|
|
.settings-status-indicator.disabled {
|
|
background-color: var(--text-muted);
|
|
}
|
|
|
|
.ics-subscription-info {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.ics-subscription-name {
|
|
font-weight: 500;
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
.ics-subscription-url {
|
|
font-size: 0.85em;
|
|
color: var(--text-muted);
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
.ics-subscription-meta {
|
|
font-size: 0.8em;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.ics-subscription-error {
|
|
font-size: 0.8em;
|
|
color: var(--text-error);
|
|
margin-top: 0.25rem;
|
|
}
|
|
|
|
.ics-subscription-actions {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.ics-subscription-actions button {
|
|
background: transparent;
|
|
color: var(--text-normal);
|
|
border: none;
|
|
box-shadow: none;
|
|
font-size: 0.8em;
|
|
}
|
|
|
|
.ics-subscription-actions button:hover {
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
.ics-subscription-toggle.enabled {
|
|
color: var(--text-success);
|
|
border-color: var(--text-success);
|
|
}
|
|
|
|
.ics-subscription-toggle.disabled {
|
|
color: var(--text-muted);
|
|
border-color: var(--text-muted);
|
|
}
|
|
|
|
.ics-subscription-delete {
|
|
color: var(--text-error) !important;
|
|
border-color: var(--text-error) !important;
|
|
}
|
|
|
|
.ics-subscription-delete:hover {
|
|
background: var(--text-error) !important;
|
|
color: white !important;
|
|
}
|
|
|
|
/* ICS Subscription Forms */
|
|
.ics-add-subscription-form,
|
|
.ics-edit-form {
|
|
margin: 1rem 0;
|
|
padding: 1rem;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 4px;
|
|
background: var(--background-secondary);
|
|
}
|
|
|
|
.ics-form-row,
|
|
.ics-edit-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
|
|
.ics-form-row-multi,
|
|
.ics-edit-settings {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.ics-form-group,
|
|
.ics-edit-group {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
flex: 1;
|
|
min-width: 120px;
|
|
}
|
|
|
|
.ics-form-label,
|
|
.ics-edit-label {
|
|
min-width: 80px;
|
|
font-weight: 500;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.ics-form-input,
|
|
.ics-edit-input {
|
|
flex: 1;
|
|
padding: 0.5rem;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 3px;
|
|
background: var(--background-primary);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.ics-form-color,
|
|
.ics-edit-color {
|
|
width: 40px;
|
|
height: 30px;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 3px;
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
.ics-form-number,
|
|
.ics-edit-number {
|
|
width: 80px;
|
|
padding: 0.5rem;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 3px;
|
|
background: var(--background-primary);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.ics-form-checkbox-label,
|
|
.ics-edit-checkbox-label {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.25rem;
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
.ics-form-checkbox,
|
|
.ics-edit-checkbox {
|
|
margin: 0;
|
|
}
|
|
|
|
.ics-form-button,
|
|
.ics-edit-button {
|
|
background: transparent;
|
|
color: var(--text-normal);
|
|
border: none;
|
|
box-shadow: none;
|
|
margin-right: 0.5rem;
|
|
}
|
|
|
|
.ics-form-button:hover,
|
|
.ics-edit-button:hover {
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
.ics-form-button.mod-cta,
|
|
.ics-edit-button.mod-cta {
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.ics-form-button.mod-cta:hover,
|
|
.ics-edit-button.mod-cta:hover {
|
|
background: var(--interactive-accent-hover);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.ics-edit-buttons {
|
|
justify-content: flex-start;
|
|
margin-top: 0.5rem;
|
|
}
|
|
|
|
.ics-subscription-editing {
|
|
background: var(--background-secondary);
|
|
border-color: var(--interactive-accent);
|
|
}
|
|
|
|
.advanced-calendar-view__container {
|
|
height: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.advanced-calendar-view__header {
|
|
padding: 0.5rem 1rem;
|
|
background: var(--background-primary);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.advanced-calendar-view__main-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1.5rem;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.advanced-calendar-view__main-row .filter-bar-container {
|
|
flex: 1;
|
|
min-width: 300px;
|
|
}
|
|
|
|
.advanced-calendar-view__controls {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1rem;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.advanced-calendar-view__schedule-tasks-btn {
|
|
padding: 0.4rem 0.8rem;
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border: none;
|
|
border-radius: 6px;
|
|
cursor: var(--cursor);
|
|
font-size: 0.85rem;
|
|
font-weight: 500;
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
|
|
.advanced-calendar-view__schedule-tasks-btn:hover {
|
|
background: var(--interactive-accent-hover);
|
|
}
|
|
|
|
.advanced-calendar-view__calendar-container {
|
|
flex: 1;
|
|
overflow: auto;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--tn-radius-md);
|
|
min-height: 0;
|
|
}
|
|
|
|
/* FullCalendar overrides - Minimalist & Clean */
|
|
.advanced-calendar-view .fc {
|
|
height: 100%;
|
|
width: 100%;
|
|
font-family: var(--font-interface);
|
|
}
|
|
|
|
/* Ensure calendar table expands to fill container width */
|
|
.advanced-calendar-view .fc-view-harness {
|
|
width: 100%;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-scrollgrid {
|
|
width: 100% !important;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-scrollgrid-sync-table {
|
|
width: 100% !important;
|
|
}
|
|
|
|
/* Remove outer borders only */
|
|
.advanced-calendar-view .fc-theme-standard .fc-scrollgrid {
|
|
border: none;
|
|
}
|
|
|
|
/* Light dividers for clean look */
|
|
.advanced-calendar-view .fc-col-header-cell {
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
border-top: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.advanced-calendar-view .fc-daygrid-day {
|
|
border-right: 1px solid var(--background-modifier-border-hover);
|
|
border-bottom: 1px solid var(--background-modifier-border-hover);
|
|
}
|
|
|
|
.advanced-calendar-view .fc-timegrid-slot {
|
|
border-bottom: 1px solid var(--background-modifier-border-hover);
|
|
}
|
|
|
|
.advanced-calendar-view .fc-timegrid-col {
|
|
border-right: 1px solid var(--background-modifier-border-hover);
|
|
}
|
|
|
|
/* Header toolbar styling */
|
|
.advanced-calendar-view .fc-header-toolbar {
|
|
flex-wrap: wrap;
|
|
padding: 0;
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
background: transparent;
|
|
}
|
|
|
|
/* Calendar title styling - smaller and minimalist */
|
|
.advanced-calendar-view .fc-toolbar-title {
|
|
font-size: 1rem;
|
|
font-weight: 400;
|
|
color: var(--text-muted);
|
|
margin: 0;
|
|
padding: 0.3rem 0.6rem;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-toolbar-chunk {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.25rem;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-toolbar.fc-header-toolbar {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
/* Remove all borders from FullCalendar buttons */
|
|
.advanced-calendar-view .fc-button,
|
|
.advanced-calendar-view .fc-button-primary,
|
|
.advanced-calendar-view .fc-button-secondary,
|
|
.advanced-calendar-view .fc-prev-button,
|
|
.advanced-calendar-view .fc-next-button,
|
|
.advanced-calendar-view .fc-today-button,
|
|
.advanced-calendar-view .fc-dayGridMonth-button,
|
|
.advanced-calendar-view .fc-timeGridWeek-button,
|
|
.advanced-calendar-view .fc-timeGridDay-button,
|
|
.advanced-calendar-view .fc-listWeek-button {
|
|
border: none !important;
|
|
box-shadow: none !important;
|
|
background: transparent;
|
|
color: var(--text-muted);
|
|
font-size: 0.8rem;
|
|
font-weight: 400;
|
|
padding: 0.3rem 0.6rem;
|
|
border-radius: 4px;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
/* Hover states for all FC buttons */
|
|
.advanced-calendar-view .fc-button:hover:not(:disabled),
|
|
.advanced-calendar-view .fc-button-primary:hover:not(:disabled),
|
|
.advanced-calendar-view .fc-button-secondary:hover:not(:disabled),
|
|
.advanced-calendar-view .fc-prev-button:hover:not(:disabled),
|
|
.advanced-calendar-view .fc-next-button:hover:not(:disabled) {
|
|
background: var(--tn-interactive-hover);
|
|
color: var(--text-normal);
|
|
border: none !important;
|
|
box-shadow: none !important;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-button-primary:disabled {
|
|
background: transparent;
|
|
color: var(--text-faint);
|
|
opacity: 0.5;
|
|
}
|
|
|
|
/* Active state for FC buttons (currently selected view) */
|
|
.advanced-calendar-view .fc-button-active,
|
|
.advanced-calendar-view .fc-button.fc-button-active {
|
|
background: var(--interactive-accent) !important;
|
|
border: none !important;
|
|
box-shadow: none !important;
|
|
color: var(--text-on-accent) !important;
|
|
}
|
|
|
|
/* Use consistent button system for today button */
|
|
.advanced-calendar-view .fc-today-button {
|
|
background: var(--interactive-accent);
|
|
border: none;
|
|
box-shadow: none;
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
.advanced-calendar-view .fc-today-button:hover:not(:disabled) {
|
|
background: var(--interactive-accent-hover);
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* Clean today styling */
|
|
.advanced-calendar-view .fc-daygrid-day.fc-day-today {
|
|
background: color-mix(in srgb, var(--interactive-accent) 8%, var(--background-primary)) !important;
|
|
border: 2px solid var(--interactive-accent);
|
|
position: relative;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-daygrid-day.fc-day-today .fc-daygrid-day-number {
|
|
font-weight: 600;
|
|
color: var(--interactive-accent) !important;
|
|
}
|
|
|
|
/* Fix today styling specifically for multi-month (year) view */
|
|
.advanced-calendar-view .fc-multimonth-daygrid .fc-daygrid-day.fc-day-today {
|
|
background: color-mix(in srgb, var(--interactive-accent) 8%, var(--background-primary)) !important;
|
|
border: 2px solid var(--interactive-accent) !important;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-multimonth-daygrid .fc-daygrid-day.fc-day-today .fc-daygrid-day-number {
|
|
font-weight: 600;
|
|
color: var(--interactive-accent) !important;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-daygrid-day.fc-day-today::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 2px;
|
|
right: 2px;
|
|
width: 6px;
|
|
height: 6px;
|
|
background: var(--interactive-accent);
|
|
border-radius: 50%;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* Header cells */
|
|
.advanced-calendar-view .fc-col-header-cell {
|
|
background: var(--background-primary) !important;
|
|
color: var(--text-muted) !important;
|
|
font-weight: 400;
|
|
font-size: 0.75rem;
|
|
/* text-transform: lowercase; */
|
|
letter-spacing: 0;
|
|
padding: 0.5rem 0.5rem;
|
|
}
|
|
|
|
/* Day cells - ensure proper theme colors */
|
|
.advanced-calendar-view .fc-daygrid-day {
|
|
background: var(--background-primary) !important;
|
|
color: var(--text-normal) !important;
|
|
}
|
|
|
|
/* Multi-month (year view) styling - minimalist */
|
|
.advanced-calendar-view .fc-multimonth-daygrid .fc-daygrid-day {
|
|
background: var(--background-primary) !important;
|
|
color: var(--text-normal) !important;
|
|
}
|
|
|
|
/* Multi-month month headers */
|
|
.advanced-calendar-view .fc-multimonth-header {
|
|
background: transparent !important;
|
|
color: var(--text-normal) !important;
|
|
border-bottom: 1px solid var(--divider-color);
|
|
}
|
|
|
|
.advanced-calendar-view .fc-multimonth-title {
|
|
background: transparent !important;
|
|
color: var(--text-normal) !important;
|
|
font-weight: 500;
|
|
padding: 0.5rem;
|
|
}
|
|
|
|
/* Multi-month day headers (Mon, Tue, etc.) */
|
|
.advanced-calendar-view .fc-multimonth .fc-col-header-cell {
|
|
background: transparent !important;
|
|
color: var(--text-muted) !important;
|
|
font-size: 0.85rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
/* Day numbers */
|
|
.advanced-calendar-view .fc-daygrid-day-number {
|
|
color: var(--text-normal) !important;
|
|
font-weight: 400;
|
|
font-size: 0.9rem;
|
|
padding: 0.5rem;
|
|
}
|
|
|
|
/* List view day headers - minimalist */
|
|
.advanced-calendar-view .fc-list-day-cushion {
|
|
background: transparent !important;
|
|
color: var(--text-normal) !important;
|
|
font-weight: 500;
|
|
border-bottom: 1px solid var(--divider-color);
|
|
padding: 0.5rem 0.25rem;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-list-day {
|
|
background: transparent !important;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-list-table th {
|
|
background: var(--background-secondary-alt) !important;
|
|
}
|
|
|
|
/* Clean event styling */
|
|
.advanced-calendar-view .fc-event {
|
|
border-radius: 6px;
|
|
border: 1px solid;
|
|
font-size: 0.8rem;
|
|
font-weight: 500;
|
|
padding: 0.2rem 0.5rem;
|
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
transition: all 0.2s ease;
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
.advanced-calendar-view .fc-event:hover {
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
}
|
|
|
|
.advanced-calendar-view .fc-event-title {
|
|
font-weight: 500;
|
|
line-height: 1.3;
|
|
text-decoration: inherit;
|
|
}
|
|
|
|
/* Time grid specific styles */
|
|
.advanced-calendar-view .fc-timegrid-slot {
|
|
height: 3rem;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-timegrid-slot-label {
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
padding: 0.5rem;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-timegrid-axis {
|
|
width: 4rem;
|
|
}
|
|
|
|
|
|
/* More events link */
|
|
.advanced-calendar-view .fc-more-link {
|
|
color: var(--interactive-accent);
|
|
font-size: 0.75rem;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-more-link:hover {
|
|
color: var(--interactive-accent-hover);
|
|
}
|
|
|
|
/* Current time indicator (red line) */
|
|
.advanced-calendar-view .fc-timegrid-now-indicator-line {
|
|
border-color: #ff0000;
|
|
border-width: 1px;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-timegrid-now-indicator-arrow {
|
|
border-color: #ff0000;
|
|
}
|
|
|
|
/* Mobile collapse toggle - hidden by default */
|
|
.advanced-calendar-view__mobile-toggle {
|
|
display: none;
|
|
padding: 0.5rem 1rem;
|
|
}
|
|
|
|
.advanced-calendar-view__collapse-btn {
|
|
background: var(--interactive-normal);
|
|
color: var(--text-normal);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 6px;
|
|
padding: 0.4rem 0.8rem;
|
|
font-size: 0.85rem;
|
|
cursor: var(--cursor);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.advanced-calendar-view__collapse-btn:hover {
|
|
background: var(--interactive-hover);
|
|
}
|
|
|
|
/* Responsive design */
|
|
@media (max-width: 1200px) {
|
|
.advanced-calendar-view__main-row {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
.advanced-calendar-view__main-row .filter-bar-container {
|
|
min-width: unset;
|
|
}
|
|
|
|
.advanced-calendar-view__controls {
|
|
justify-content: space-between;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
/* Show mobile toggle on small screens */
|
|
.advanced-calendar-view__mobile-toggle {
|
|
display: block;
|
|
}
|
|
|
|
/* Hide main row by default on mobile when collapsed */
|
|
.advanced-calendar-view__main-row.collapsed {
|
|
display: none;
|
|
}
|
|
|
|
.advanced-calendar-view__main-row.expanded {
|
|
display: flex;
|
|
}
|
|
|
|
.advanced-calendar-view__controls {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
|
|
.advanced-calendar-view__schedule-tasks-btn {
|
|
align-self: center;
|
|
}
|
|
|
|
.advanced-calendar-view__calendar-container {
|
|
padding: 0.5rem;
|
|
}
|
|
|
|
/* Reduce header padding on mobile */
|
|
.advanced-calendar-view__header {
|
|
padding: 0.25rem 0.5rem;
|
|
}
|
|
}
|
|
|
|
/* Today highlighting disabled */
|
|
.hide-today-highlight .fc-unthemed td.fc-today {
|
|
background: inherit;
|
|
}
|
|
|
|
.hide-today-highlight .fc-daygrid-day.fc-day-today {
|
|
background: inherit !important;
|
|
border: none !important;
|
|
}
|
|
|
|
.hide-today-highlight .fc-daygrid-day.fc-day-today .fc-daygrid-day-number {
|
|
font-weight: 400;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.hide-today-highlight .fc-daygrid-day.fc-day-today::before {
|
|
display: none;
|
|
}
|
|
|
|
.hide-today-highlight .fc-timegrid-col.fc-day-today {
|
|
background: inherit !important;
|
|
border: none !important;
|
|
}
|
|
|
|
/* ICS Refresh Button - Match exact styling of other FullCalendar buttons */
|
|
.advanced-calendar-view .fc-refreshICS-button {
|
|
background: transparent !important;
|
|
border: none !important;
|
|
box-shadow: none !important;
|
|
color: var(--text-muted) !important;
|
|
font-size: 0.8rem !important;
|
|
font-weight: 400 !important;
|
|
padding: 0.3rem 0.6rem !important;
|
|
border-radius: 4px !important;
|
|
transition: all 0.2s ease !important;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-refreshICS-button .fc-icon,
|
|
.advanced-calendar-view .fc-refreshICS-button .fc-button-label {
|
|
color: var(--text-muted) !important;
|
|
font-size: 0.8rem !important;
|
|
font-weight: 400 !important;
|
|
line-height: 1.2;
|
|
display: inline;
|
|
visibility: visible;
|
|
}
|
|
|
|
/* Hover state - match other buttons exactly */
|
|
.advanced-calendar-view .fc-refreshICS-button:hover:not(:disabled) {
|
|
background: var(--tn-interactive-hover) !important;
|
|
color: var(--text-normal) !important;
|
|
border: none !important;
|
|
box-shadow: none !important;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-refreshICS-button:hover:not(:disabled) .fc-icon,
|
|
.advanced-calendar-view .fc-refreshICS-button:hover:not(:disabled) .fc-button-label {
|
|
color: var(--text-normal) !important;
|
|
}
|
|
|
|
/* Active/Focus state - match other buttons */
|
|
.advanced-calendar-view .fc-refreshICS-button:active,
|
|
.advanced-calendar-view .fc-refreshICS-button:focus {
|
|
background: var(--tn-interactive-hover) !important;
|
|
border: none !important;
|
|
box-shadow: none !important;
|
|
outline: none !important;
|
|
color: var(--text-normal) !important;
|
|
}
|
|
|
|
/* Disabled state - match other buttons */
|
|
.advanced-calendar-view .fc-refreshICS-button:disabled {
|
|
background: transparent !important;
|
|
color: var(--text-faint) !important;
|
|
opacity: 0.5 !important;
|
|
border: none !important;
|
|
box-shadow: none !important;
|
|
}
|
|
|
|
/* ===== CLEAN LIST VIEW STYLING - NO INHERITANCE ===== */
|
|
|
|
/* Base styling for ALL list events - completely independent from calendar views */
|
|
.fc-list-event {
|
|
/* Reset any inherited styling from calendar views */
|
|
opacity: 1 !important;
|
|
border: none !important;
|
|
border-radius: 0 !important;
|
|
background: transparent !important;
|
|
box-shadow: none !important;
|
|
}
|
|
|
|
/* Consistent light hover background for ALL list events */
|
|
.fc-list-event:hover {
|
|
background-color: var(--background-modifier-hover) !important;
|
|
}
|
|
|
|
/* Fix time element color on hover in list view */
|
|
.fc-list-event:hover .fc-list-event-time {
|
|
color: inherit !important;
|
|
background-color: transparent !important;
|
|
}
|
|
|
|
.fc-list-event .fc-list-event-time {
|
|
/* Consistent time styling for all events */
|
|
font-size: inherit !important;
|
|
color: inherit !important;
|
|
font-weight: inherit !important;
|
|
vertical-align: top;
|
|
}
|
|
|
|
.fc-list-event .fc-list-event-title {
|
|
/* Base title styling - clean and consistent */
|
|
padding: 8px 12px;
|
|
border: none !important;
|
|
border-radius: 0 !important;
|
|
background: transparent !important;
|
|
box-shadow: none !important;
|
|
font-size: inherit !important;
|
|
font-weight: inherit !important;
|
|
color: inherit !important;
|
|
display: table-cell;
|
|
vertical-align: top;
|
|
}
|
|
|
|
|
|
.fc-list-event .fc-list-event-dot {
|
|
/* Standard dot styling for all events */
|
|
border: inherit !important;
|
|
background: inherit !important;
|
|
}
|
|
|
|
/* ===== TASK-SPECIFIC ENHANCEMENTS ===== */
|
|
|
|
/* Task events get ONLY functional enhancements - NO visual styling differences */
|
|
.fc-list-event.fc-list-task-card .fc-list-event-title {
|
|
/* Keep base styling identical to ICS events - no background, borders, or shadows */
|
|
background-color: transparent !important;
|
|
border-radius: 0 !important;
|
|
box-shadow: none !important;
|
|
}
|
|
|
|
/* Remove task-specific hover - now handled by base .fc-list-event:hover */
|
|
|
|
/* Hide default FullCalendar dot for tasks since we have custom indicators */
|
|
.fc-list-event.fc-list-task-card .fc-list-event-dot {
|
|
display: none;
|
|
}
|
|
|
|
/* Style the status dot in graphic column */
|
|
.fc-list-event-status-dot {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin: auto;
|
|
}
|
|
|
|
/* Prevent graphic column from getting hover background */
|
|
.fc-list-event:hover .fc-list-event-graphic {
|
|
background-color: transparent !important;
|
|
}
|
|
|
|
/* Task title row with indicators on same line */
|
|
.fc-list-task-title-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
width: 100%;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
/* Metadata spacing without separators */
|
|
.fc-list-task-metadata > span {
|
|
display: block;
|
|
margin: 2px 0;
|
|
}
|
|
|
|
/* Status and priority dots */
|
|
.fc-list-task-status-dot,
|
|
.fc-list-task-priority-dot {
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
border: 2px solid currentColor;
|
|
background-color: transparent;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.fc-list-task-priority-dot {
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
.fc-list-task-priority-dot {
|
|
background-color: var(--priority-color, currentColor);
|
|
}
|
|
|
|
/* Recurring indicator styling */
|
|
.fc-list-task-recurring-indicator {
|
|
width: 12px;
|
|
height: 12px;
|
|
flex-shrink: 0;
|
|
opacity: 0.7;
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
.fc-list-task-recurring-indicator:hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
.fc-list-task-status-dot {
|
|
border-color: var(--current-status-color, var(--text-muted));
|
|
}
|
|
|
|
/* Recurring indicator */
|
|
.fc-list-task-recurring-indicator {
|
|
font-size: 12px;
|
|
opacity: 0.8;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* Task title */
|
|
.fc-list-task-title {
|
|
font-weight: 500 !important;
|
|
color: var(--text-normal) !important;
|
|
font-size: 14px !important;
|
|
flex-grow: 1;
|
|
}
|
|
|
|
/* Task metadata */
|
|
.fc-list-task-metadata {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
align-items: center;
|
|
font-size: 12px;
|
|
color: var(--text-muted);
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.fc-list-task-metadata > span {
|
|
background-color: var(--background-secondary);
|
|
padding: 2px 6px;
|
|
border-radius: 3px;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.fc-list-task-projects {
|
|
background-color: rgba(var(--color-blue-rgb, 13 110 253), 0.1) !important;
|
|
color: var(--color-blue) !important;
|
|
}
|
|
|
|
.fc-list-task-contexts {
|
|
background-color: rgba(var(--color-green-rgb, 25 135 84), 0.1) !important;
|
|
color: var(--color-green) !important;
|
|
}
|
|
|
|
.fc-list-task-tags {
|
|
background-color: rgba(var(--color-purple-rgb, 102 16 242), 0.1) !important;
|
|
color: var(--color-purple) !important;
|
|
}
|
|
|
|
.fc-list-task-time-estimate {
|
|
background-color: rgba(var(--color-orange-rgb, 255 159 67), 0.1) !important;
|
|
color: var(--color-orange) !important;
|
|
}
|
|
|
|
.fc-list-task-metadata-separator {
|
|
color: var(--text-faint);
|
|
font-weight: 300;
|
|
}
|
|
|
|
/* Responsive design for smaller screens */
|
|
@media (max-width: 768px) {
|
|
.fc-list-task-metadata {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 4px;
|
|
}
|
|
|
|
.fc-list-task-title-row {
|
|
gap: 4px;
|
|
}
|
|
}
|
|
|
|
/* Animation for newly added events */
|
|
@keyframes slideInUp {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(10px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
.fc-list-event.fc-list-task-card[data-newly-added] {
|
|
animation: slideInUp 0.3s ease-out;
|
|
}
|
|
|
|
/* Dark mode fixes for FullCalendar popover ("+more" popup) */
|
|
.theme-dark .advanced-calendar-view .fc-popover {
|
|
background: var(--background-primary) !important;
|
|
border: 1px solid var(--background-modifier-border) !important;
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5) !important;
|
|
}
|
|
|
|
.theme-dark .advanced-calendar-view .fc-popover-header {
|
|
background: var(--background-secondary) !important;
|
|
border-bottom: 1px solid var(--background-modifier-border) !important;
|
|
}
|
|
|
|
.theme-dark .advanced-calendar-view .fc-popover-title {
|
|
color: var(--text-normal) !important;
|
|
}
|
|
|
|
.theme-dark .advanced-calendar-view .fc-popover-close {
|
|
color: var(--text-muted) !important;
|
|
}
|
|
|
|
.theme-dark .advanced-calendar-view .fc-popover-close:hover {
|
|
color: var(--text-normal) !important;
|
|
background: var(--background-modifier-hover) !important;
|
|
}
|
|
|
|
.theme-dark .advanced-calendar-view .fc-popover-body {
|
|
background: var(--background-primary) !important;
|
|
color: var(--text-normal) !important;
|
|
}
|
|
|
|
/* Dark mode fixes for timeGrid more link (eventMaxStack) */
|
|
.advanced-calendar-view .fc-timegrid-more-link {
|
|
color: var(--text-normal);
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 4px;
|
|
padding: 2px 6px;
|
|
font-size: 0.75rem;
|
|
font-weight: 500;
|
|
text-decoration: none;
|
|
display: inline-block;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.advanced-calendar-view .fc-timegrid-more-link:hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.theme-dark .advanced-calendar-view .fc-timegrid-more-link {
|
|
background: var(--background-secondary);
|
|
color: var(--text-normal);
|
|
border-color: var(--background-modifier-border);
|
|
}
|
|
|
|
.theme-dark .advanced-calendar-view .fc-timegrid-more-link:hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
|
|
/* ===== KANBAN-VIEW.CSS ===== */
|
|
/* ================================================
|
|
KANBAN VIEW - BEM STRUCTURE
|
|
================================================ */
|
|
|
|
/* Kanban View Container - Root Block */
|
|
.tasknotes-plugin .kanban-view {
|
|
padding: var(--tn-spacing-sm);
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
gap: var(--tn-spacing-sm);
|
|
max-width: 100%;
|
|
}
|
|
|
|
/* Kanban Header */
|
|
.tasknotes-plugin .kanban-view__header {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-md);
|
|
padding-bottom: var(--tn-spacing-md);
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__filter-container {
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__actions {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: var(--tn-spacing-md);
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__actions-left {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__actions-right {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* Use consistent button system with primary accent background preserved */
|
|
.tasknotes-plugin .kanban-view__new-task-button {
|
|
background: var(--tn-interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border: none;
|
|
box-shadow: none;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__new-task-button:hover {
|
|
background: var(--tn-interactive-accent-hover);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__new-task-button:active {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* Stats Container */
|
|
.tasknotes-plugin .kanban-view__stats {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-md);
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-sm);
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-muted);
|
|
font-weight: 400;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__stats-simple {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
font-weight: 400;
|
|
}
|
|
|
|
/* Board Container */
|
|
.tasknotes-plugin .kanban-view__board-container {
|
|
flex: 1;
|
|
overflow: hidden;
|
|
background: var(--tn-bg-secondary);
|
|
border-radius: var(--tn-radius-md);
|
|
min-height: 0;
|
|
}
|
|
|
|
/* Board */
|
|
.tasknotes-plugin .kanban-view__board {
|
|
display: flex;
|
|
height: 100%;
|
|
overflow-x: auto;
|
|
padding: var(--tn-spacing-md);
|
|
gap: var(--tn-spacing-md);
|
|
min-height: 0;
|
|
flex-wrap: nowrap;
|
|
}
|
|
|
|
/* Board Scrollbar */
|
|
.tasknotes-plugin .kanban-view__board::-webkit-scrollbar {
|
|
height: 8px;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__board::-webkit-scrollbar-track {
|
|
background: var(--tn-bg-secondary);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__board::-webkit-scrollbar-thumb {
|
|
background: var(--tn-border-color);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__board::-webkit-scrollbar-thumb:hover {
|
|
background: var(--tn-text-muted);
|
|
}
|
|
|
|
/* Loading Indicator */
|
|
.tasknotes-plugin .kanban-view__loading {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--tn-spacing-sm);
|
|
padding: var(--tn-spacing-lg);
|
|
color: var(--tn-text-muted);
|
|
font-size: var(--tn-font-size-md);
|
|
font-style: italic;
|
|
font-weight: 400;
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-md);
|
|
margin: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__loading::before {
|
|
content: '';
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 2px solid color-mix(in srgb, var(--tn-text-muted) 0.3, transparent);
|
|
border-top: 2px solid var(--tn-text-muted);
|
|
border-radius: 50%;
|
|
animation: spin 1s linear infinite;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* Error State */
|
|
.tasknotes-plugin .kanban-view__error {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: var(--tn-spacing-lg);
|
|
color: var(--tn-color-error);
|
|
background: color-mix(in srgb, var(--tn-color-error) 0.05, var(--tn-bg-secondary));
|
|
border: 1px solid color-mix(in srgb, var(--tn-color-error) 0.3, transparent);
|
|
border-radius: var(--tn-radius-md);
|
|
font-size: var(--tn-font-size-md);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
margin: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* ================================================
|
|
KANBAN COLUMNS
|
|
================================================ */
|
|
|
|
/* Column */
|
|
.tasknotes-plugin .kanban-view__column {
|
|
min-width: 200px;
|
|
max-width: 500px;
|
|
flex-shrink: 0;
|
|
background: var(--tn-bg-primary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-md);
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: fit-content;
|
|
max-height: calc(100vh - 200px);
|
|
transition: all var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column--dragover {
|
|
border-color: var(--tn-interactive-accent);
|
|
transform: scale(1.02);
|
|
box-shadow: var(--tn-shadow-medium);
|
|
}
|
|
|
|
/* Column header dragover state (for column reordering) */
|
|
.tasknotes-plugin .kanban-view__column-header--dragover {
|
|
background: var(--tn-interactive-hover);
|
|
border: 2px solid var(--tn-interactive-accent);
|
|
transform: scale(1.02);
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column--uncategorized {
|
|
opacity: 0.8;
|
|
border: 1px dashed var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column--uncategorized .kanban-view__column-header {
|
|
background: var(--tn-border-color);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column--column-drop-target {
|
|
background: var(--tn-interactive-hover);
|
|
border: 2px dashed var(--tn-interactive-accent);
|
|
transform: scale(1.02);
|
|
transition: all var(--tn-transition-medium);
|
|
box-shadow: var(--tn-shadow-medium);
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column--column-drop-target .kanban-view__column-header {
|
|
background: transparent;
|
|
border: none;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column--column-drop-target::before {
|
|
content: "Drop here to reorder column";
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
background: var(--tn-interactive-accent);
|
|
color: var(--tn-text-on-accent);
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-md);
|
|
border-radius: var(--tn-radius-sm);
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
z-index: 1000;
|
|
pointer-events: none;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* Column Header */
|
|
.tasknotes-plugin .kanban-view__column-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-md);
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
background: var(--tn-bg-secondary);
|
|
border-radius: var(--tn-radius-md) var(--tn-radius-md) 0 0;
|
|
cursor: grab;
|
|
user-select: none;
|
|
transition: all var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column-header:active {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column-header--dragging {
|
|
opacity: 0.5;
|
|
transform: rotate(2deg);
|
|
box-shadow: var(--tn-shadow-medium);
|
|
}
|
|
|
|
/* Drag Handle */
|
|
.tasknotes-plugin .kanban-view__drag-handle {
|
|
color: var(--tn-text-muted);
|
|
cursor: grab;
|
|
font-size: var(--tn-font-size-sm);
|
|
opacity: 0.5;
|
|
transition: opacity var(--tn-transition-fast);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column-header:hover .kanban-view__drag-handle,
|
|
.tasknotes-plugin .kanban-view__column-header-cell:hover .kanban-view__drag-handle {
|
|
opacity: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__drag-handle:active {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column-title {
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
font-size: var(--tn-font-size-lg);
|
|
color: var(--tn-text-normal);
|
|
line-height: 1.2;
|
|
margin: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column-count {
|
|
color: var(--tn-text-muted);
|
|
font-size: var(--tn-font-size-xs);
|
|
line-height: 1.2;
|
|
font-weight: 400;
|
|
margin: 0;
|
|
}
|
|
|
|
/* Column Body */
|
|
.tasknotes-plugin .kanban-view__column-body {
|
|
padding: var(--tn-spacing-sm);
|
|
min-height: 100px;
|
|
max-height: calc(100vh - 300px);
|
|
overflow-y: auto;
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column-body--dragover {
|
|
background: var(--tn-interactive-hover);
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column-body--dragover::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: color-mix(in srgb, var(--tn-interactive-accent) 0.1, transparent);
|
|
border: 2px dashed var(--tn-interactive-accent);
|
|
border-radius: var(--tn-radius-md);
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* Column Body Scrollbar */
|
|
.tasknotes-plugin .kanban-view__column-body::-webkit-scrollbar {
|
|
width: 6px;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column-body::-webkit-scrollbar-track {
|
|
background: var(--tn-bg-secondary);
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column-body::-webkit-scrollbar-thumb {
|
|
background: var(--tn-border-color);
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column-body::-webkit-scrollbar-thumb:hover {
|
|
background: var(--tn-text-muted);
|
|
}
|
|
|
|
/* Empty Column */
|
|
.tasknotes-plugin .kanban-view__column-empty {
|
|
text-align: center;
|
|
color: var(--tn-text-muted);
|
|
font-style: italic;
|
|
font-size: var(--tn-font-size-sm);
|
|
padding: var(--tn-spacing-lg);
|
|
border: 2px dashed var(--tn-border-color);
|
|
border-radius: var(--tn-radius-md);
|
|
background: var(--tn-bg-secondary);
|
|
transition: all var(--tn-transition-fast);
|
|
margin: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column-empty:hover {
|
|
border-color: var(--tn-interactive-accent);
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column--dragover .kanban-view__column-empty {
|
|
border-color: var(--tn-interactive-accent);
|
|
background: var(--tn-interactive-accent-hover);
|
|
color: var(--tn-text-on-accent);
|
|
}
|
|
|
|
/* ================================================
|
|
KANBAN TASK CARDS
|
|
================================================ */
|
|
|
|
/* Cards container (used for non-virtualized columns) */
|
|
.tasknotes-plugin .kanban-view__cards {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
overflow-y: auto; /* Allow vertical scrolling */
|
|
flex: 1; /* Fill available space in column */
|
|
min-height: 0; /* Allow container to shrink and enable scrolling */
|
|
}
|
|
|
|
/* Dragging state for card wrappers */
|
|
.tasknotes-plugin .kanban-view__card-wrapper[draggable="true"]:hover {
|
|
cursor: grab;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__card-wrapper[draggable="true"]:active {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
/* ================================================
|
|
RESPONSIVE DESIGN
|
|
================================================ */
|
|
|
|
@media (max-width: 768px) {
|
|
.tasknotes-plugin .kanban-view {
|
|
padding: var(--tn-spacing-xs);
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__header {
|
|
padding-bottom: var(--tn-spacing-sm);
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__actions {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__actions-left,
|
|
.tasknotes-plugin .kanban-view__actions-right {
|
|
justify-content: center;
|
|
width: 100%;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__new-task-button {
|
|
width: 100%;
|
|
max-width: 300px;
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__board {
|
|
padding: var(--tn-spacing-sm);
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.tasknotes-plugin .kanban-view {
|
|
padding: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__board {
|
|
padding: var(--tn-spacing-xs);
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column-header {
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__column-body {
|
|
padding: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .kanban-view__new-task-button {
|
|
font-size: var(--tn-font-size-xs);
|
|
padding: 0 var(--tn-spacing-md);
|
|
}
|
|
}
|
|
|
|
/* ===== AGENDA-VIEW.CSS ===== */
|
|
/* ================================================
|
|
AGENDA VIEW - BEM STRUCTURE
|
|
================================================ */
|
|
|
|
/* Agenda View Container - Root Block */
|
|
.tasknotes-plugin .agenda-view {
|
|
padding: var(--tn-spacing-sm);
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100%;
|
|
overflow-y: auto;
|
|
gap: var(--tn-spacing-sm);
|
|
max-width: 100%;
|
|
}
|
|
|
|
/* Agenda View Controls */
|
|
.tasknotes-plugin .agenda-view__controls {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-md);
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Header Section */
|
|
.tasknotes-plugin .agenda-view__header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: var(--tn-spacing-lg) var(--tn-spacing-md);
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
position: relative;
|
|
background: transparent;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__header-content {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
width: 100%;
|
|
max-width: 1000px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__nav-section {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__title-section {
|
|
flex: 1;
|
|
display: flex;
|
|
justify-content: center;
|
|
margin: 0 var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__actions-section {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__period-title {
|
|
font-size: var(--tn-font-size-xl);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
text-align: center;
|
|
white-space: nowrap;
|
|
letter-spacing: 0.01em;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__nav-button {
|
|
border-radius: 50%;
|
|
font-size: 1.25rem;
|
|
font-weight: var(--tn-font-weight-medium);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__nav-button:active {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* Filter Bar Container */
|
|
.tasknotes-plugin .agenda-view__filter-container {
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Settings Section */
|
|
.tasknotes-plugin .agenda-view__settings {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: var(--tn-spacing-md);
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-md);
|
|
gap: var(--tn-spacing-md);
|
|
flex-wrap: wrap;
|
|
margin-bottom: var(--tn-spacing-md);
|
|
box-shadow: var(--tn-shadow-light);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__settings-left {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__settings-right {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Period Selector */
|
|
.tasknotes-plugin .agenda-view__period-select {
|
|
appearance: none;
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-xl) var(--tn-spacing-sm) var(--tn-spacing-md);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-sm);
|
|
background: var(--tn-bg-primary);
|
|
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
|
|
background-position: right var(--tn-spacing-sm) center;
|
|
background-repeat: no-repeat;
|
|
background-size: 16px;
|
|
color: var(--tn-text-normal);
|
|
font-family: inherit;
|
|
font-size: var(--tn-font-size-md);
|
|
font-weight: 400;
|
|
min-width: 120px;
|
|
min-height: var(--tn-input-height-md);
|
|
cursor: var(--cursor);
|
|
transition: all var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__period-select:hover {
|
|
border-color: var(--tn-border-color-hover);
|
|
background-color: var(--tn-interactive-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__period-select:focus {
|
|
outline: none;
|
|
border-color: var(--tn-interactive-accent);
|
|
background-color: color-mix(in srgb, var(--tn-interactive-accent) 0.1, var(--tn-bg-primary));
|
|
}
|
|
|
|
/* Today Button */
|
|
.tasknotes-plugin .agenda-view__today-button {
|
|
position: relative;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--tn-spacing-xs);
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-md);
|
|
border: none;
|
|
border-radius: var(--tn-radius-md);
|
|
background: transparent;
|
|
color: var(--tn-text-muted);
|
|
font-family: inherit;
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
line-height: 1.25;
|
|
height: var(--tn-button-height-md);
|
|
cursor: var(--cursor);
|
|
user-select: none;
|
|
text-decoration: none;
|
|
white-space: nowrap;
|
|
transition: all var(--tn-transition-fast);
|
|
overflow: hidden;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__today-button:hover {
|
|
background: var(--tn-interactive-hover);
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__today-button:focus-visible {
|
|
outline: 2px solid var(--tn-interactive-accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__today-button:active {
|
|
background: var(--tn-interactive-active);
|
|
transform: translateY(1px);
|
|
}
|
|
|
|
/* Toggle Controls */
|
|
.tasknotes-plugin .agenda-view__toggle {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
cursor: var(--cursor);
|
|
user-select: none;
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-normal);
|
|
padding: var(--tn-spacing-sm);
|
|
border-radius: var(--tn-radius-sm);
|
|
transition: background-color var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__toggle:hover {
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
|
|
/* Content Area */
|
|
.tasknotes-plugin .agenda-view__content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-sm);
|
|
flex: 1;
|
|
min-height: 0;
|
|
}
|
|
|
|
/* Loading Indicator */
|
|
.tasknotes-plugin .agenda-view__loading {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--tn-spacing-sm);
|
|
padding: var(--tn-spacing-lg);
|
|
color: var(--tn-text-muted);
|
|
font-size: var(--tn-font-size-md);
|
|
font-style: italic;
|
|
font-weight: 400;
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-md);
|
|
margin-bottom: var(--tn-spacing-md);
|
|
box-shadow: var(--tn-shadow-light);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__loading::before {
|
|
content: '';
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 2px solid color-mix(in srgb, var(--tn-text-muted) 0.3, transparent);
|
|
border-top: 2px solid var(--tn-text-muted);
|
|
border-radius: 50%;
|
|
animation: spin 1s linear infinite;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* Day Section */
|
|
.tasknotes-plugin .agenda-view__day {
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__day-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
gap: var(--tn-spacing-sm);
|
|
padding: var(--tn-spacing-md) 0 var(--tn-spacing-sm);
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
position: relative;
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
/* Day section container (like task groups) */
|
|
.tasknotes-plugin .agenda-view__day-section {
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Day items container */
|
|
.tasknotes-plugin .agenda-view__day-items {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
/* Collapsed state */
|
|
.tasknotes-plugin .agenda-view__day-section.is-collapsed .agenda-view__day-items {
|
|
display: none;
|
|
}
|
|
|
|
/* Chevron/toggle styles for agenda day headers (consistent with TaskList view) */
|
|
.tasknotes-plugin .agenda-view__day-header .task-group-toggle {
|
|
display: contents;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 20px;
|
|
height: 20px;
|
|
margin-right: var(--tn-spacing-xs);
|
|
border: none;
|
|
background: transparent;
|
|
color: var(--tn-text-normal);
|
|
font-size: 14px;
|
|
line-height: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__day-header .task-group-toggle svg,
|
|
.tasknotes-plugin .agenda-view__day-header .task-group-toggle .chevron,
|
|
.tasknotes-plugin .agenda-view__day-header .task-group-toggle .chevron path {
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__day-header .task-group-toggle svg,
|
|
.tasknotes-plugin .agenda-view__day-header .task-group-toggle .chevron path {
|
|
stroke: currentColor;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__day-header .task-group-toggle .chevron {
|
|
transition: transform var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__day-section .task-group-toggle .chevron,
|
|
.tasknotes-plugin .agenda-view__day-section .task-group-toggle svg {
|
|
transform: rotate(90deg);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__day-section.is-collapsed .task-group-toggle svg,
|
|
.tasknotes-plugin .agenda-view__day-section.is-collapsed .task-group-toggle .chevron {
|
|
transform: rotate(0deg);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__day-header-text {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__day-name {
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
letter-spacing: 0.01em;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__day-name--today {
|
|
background: var(--tn-interactive-accent);
|
|
color: var(--tn-bg-primary);
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-md);
|
|
border-radius: var(--tn-radius-md);
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.1em;
|
|
line-height: 1.2;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: 60px;
|
|
min-height: 28px;
|
|
box-shadow: var(--tn-shadow-light);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__day-date {
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-muted);
|
|
font-weight: 400;
|
|
letter-spacing: 0.01em;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__item-count {
|
|
background: none;
|
|
color: var(--text-muted);
|
|
border: none;
|
|
border-radius: 0;
|
|
padding: 0;
|
|
font-size: var(--tn-font-size-xs);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
line-height: 1.2;
|
|
display: inline-flex;
|
|
margin-left: auto;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: 24px;
|
|
min-height: 24px;
|
|
text-align: center;
|
|
}
|
|
|
|
/* Day Content */
|
|
.tasknotes-plugin .agenda-view__day-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__day-content--flat {
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
|
|
/* Empty States */
|
|
.tasknotes-plugin .agenda-view__empty {
|
|
padding: var(--tn-spacing-xl) var(--tn-spacing-lg);
|
|
text-align: center;
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-md);
|
|
margin: var(--tn-spacing-lg) 0;
|
|
box-shadow: var(--tn-shadow-light);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__empty-title {
|
|
margin: 0 0 var(--tn-spacing-md) 0;
|
|
color: var(--tn-text-normal);
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__empty-description {
|
|
margin: 0 0 var(--tn-spacing-md) 0;
|
|
color: var(--tn-text-muted);
|
|
font-size: var(--tn-font-size-md);
|
|
line-height: 1.5;
|
|
font-weight: 400;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__empty-description:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__empty-tip {
|
|
font-style: italic;
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-muted);
|
|
margin-top: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__empty-tip span {
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
font-style: normal;
|
|
}
|
|
|
|
/* Error States */
|
|
.tasknotes-plugin .agenda-view__error {
|
|
padding: var(--tn-spacing-lg);
|
|
text-align: center;
|
|
color: var(--tn-color-error);
|
|
background: color-mix(in srgb, var(--tn-color-error) 0.05, var(--tn-bg-secondary));
|
|
border: 1px solid color-mix(in srgb, var(--tn-color-error) 0.3, transparent);
|
|
border-radius: var(--tn-radius-md);
|
|
font-size: var(--tn-font-size-md);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
line-height: 1.5;
|
|
box-shadow: var(--tn-shadow-light);
|
|
}
|
|
|
|
|
|
.tasknotes-plugin .agenda-view .tasks-container {
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
}
|
|
|
|
/* Note Date Display in Flat List */
|
|
.tasknotes-plugin .agenda-view__note-date {
|
|
display: inline-block;
|
|
margin-left: var(--tn-spacing-sm);
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
background: var(--tn-bg-secondary);
|
|
border-radius: var(--tn-radius-sm);
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--tn-text-muted);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
}
|
|
|
|
/* Responsive Design */
|
|
@media (max-width: 768px) {
|
|
.tasknotes-plugin .agenda-view {
|
|
padding: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__header-content {
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__title-section {
|
|
order: -1;
|
|
margin: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__period-title {
|
|
font-size: var(--tn-font-size-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__nav-section,
|
|
.tasknotes-plugin .agenda-view__actions-section {
|
|
justify-content: center;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__nav-button {
|
|
width: 36px;
|
|
height: 36px;
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__settings {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__settings-left,
|
|
.tasknotes-plugin .agenda-view__settings-right {
|
|
justify-content: space-between;
|
|
width: 100%;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__settings-right {
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__day-header {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__day-header-text {
|
|
width: 100%;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__item-count {
|
|
align-self: flex-end;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.tasknotes-plugin .agenda-view__header-content {
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__period-title {
|
|
font-size: var(--tn-font-size-md);
|
|
min-width: 120px;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__nav-button {
|
|
width: 32px;
|
|
height: 32px;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__settings-left,
|
|
.tasknotes-plugin .agenda-view__settings-right {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.tasknotes-plugin .agenda-view__toggle {
|
|
justify-content: space-between;
|
|
}
|
|
}
|
|
|
|
/* ===== POMODORO-VIEW.CSS ===== */
|
|
/* ================================================
|
|
POMODORO VIEW - BEM STRUCTURE
|
|
================================================ */
|
|
|
|
/* Pomodoro View Container - Root Block */
|
|
.tasknotes-plugin .pomodoro-view {
|
|
padding: var(--tn-spacing-xl);
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100%;
|
|
overflow-y: auto;
|
|
gap: var(--tn-spacing-xl);
|
|
max-width: 100%;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--tn-bg-primary);
|
|
min-height: 100vh;
|
|
|
|
button {
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
}
|
|
|
|
/* ================================================
|
|
TIMER SECTION - Main Timer Display
|
|
================================================ */
|
|
|
|
/* Timer Section Container */
|
|
.tasknotes-plugin .pomodoro-view__timer-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--tn-spacing-md);
|
|
padding: var(--tn-spacing-lg) 0;
|
|
width: 100%;
|
|
max-width: 500px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
/* Progress Circle Container */
|
|
.tasknotes-plugin .pomodoro-view__progress-container {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 300px;
|
|
height: 300px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
/* Progress SVG */
|
|
.tasknotes-plugin .pomodoro-view__progress-svg {
|
|
width: 100%;
|
|
height: 100%;
|
|
transform: rotate(-90deg);
|
|
overflow: visible;
|
|
}
|
|
|
|
/* Progress Circle Elements */
|
|
.tasknotes-plugin .pomodoro-view__progress-circle {
|
|
transition: stroke-dashoffset 0.5s ease;
|
|
stroke: var(--tn-interactive-accent);
|
|
stroke-width: 6;
|
|
fill: none;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__progress-circle--work {
|
|
stroke: var(--tn-status-in-progress-color, var(--tn-interactive-accent));
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__progress-circle--short-break {
|
|
stroke: var(--tn-priority-medium-color, var(--tn-color-success));
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__progress-circle--long-break {
|
|
stroke: var(--tn-priority-high-color, var(--tn-interactive-accent));
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__progress-circle--warning {
|
|
stroke: var(--tn-color-error) !important;
|
|
animation: tn-progress-pulse 1s infinite;
|
|
}
|
|
|
|
@keyframes tn-progress-pulse {
|
|
0%, 100% { opacity: 1; }
|
|
50% { opacity: 0.6; }
|
|
}
|
|
|
|
/* Timer Display Overlay */
|
|
.tasknotes-plugin .pomodoro-view__timer-overlay {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* Timer Display */
|
|
.tasknotes-plugin .pomodoro-view__timer-display {
|
|
font-size: 3.5rem;
|
|
color: var(--tn-text-normal);
|
|
text-align: center;
|
|
font-family: var(--tn-font-mono);
|
|
letter-spacing: 0.05em;
|
|
transition: color var(--tn-transition-fast);
|
|
font-weight: var(--tn-font-weight-bold);
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__timer-display--warning {
|
|
color: var(--tn-color-error);
|
|
animation: tn-timer-pulse 2s infinite;
|
|
}
|
|
|
|
@keyframes tn-timer-pulse {
|
|
0%, 100% { opacity: 1; }
|
|
50% { opacity: 0.7; }
|
|
}
|
|
|
|
/* Status Display */
|
|
.tasknotes-plugin .pomodoro-view__status {
|
|
font-size: var(--tn-font-size-xl);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
text-align: center;
|
|
color: var(--tn-text-muted);
|
|
text-transform: capitalize;
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
order: -1;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__status--work {
|
|
color: var(--tn-status-in-progress-color, var(--tn-interactive-accent));
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__status--short-break {
|
|
color: var(--tn-priority-medium-color, var(--tn-color-success));
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__status--long-break {
|
|
color: var(--tn-priority-high-color, var(--tn-interactive-accent));
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__status--paused {
|
|
color: var(--tn-color-warning);
|
|
}
|
|
|
|
/* ================================================
|
|
TASK DISPLAY SECTION
|
|
================================================ */
|
|
|
|
/* Task Display Container */
|
|
.tasknotes-plugin .pomodoro-view__task-display {
|
|
min-height: 40px;
|
|
min-width: 200px;
|
|
width: auto;
|
|
max-width: 400px;
|
|
margin: 0 auto;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: var(--tn-spacing-sm);
|
|
background: transparent;
|
|
border-radius: var(--tn-radius-sm);
|
|
border: none;
|
|
overflow: hidden;
|
|
max-height: 100px;
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
transition: all var(--tn-transition-medium);
|
|
}
|
|
|
|
/* Hide task display when empty with slide animation */
|
|
.tasknotes-plugin .pomodoro-view__task-display:empty {
|
|
max-height: 0;
|
|
opacity: 0;
|
|
transform: translateY(-20px);
|
|
margin: 0 auto;
|
|
padding: 0 var(--tn-spacing-md);
|
|
min-height: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__task-display--no-task {
|
|
max-height: 0;
|
|
opacity: 0;
|
|
transform: translateY(-20px);
|
|
margin: 0 auto;
|
|
padding: 0 var(--tn-spacing-md);
|
|
min-height: 0;
|
|
}
|
|
|
|
/* Current Task Content */
|
|
.tasknotes-plugin .pomodoro-view__current-task {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
text-align: center;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__task-title {
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-muted);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
max-width: 400px;
|
|
word-wrap: break-word;
|
|
text-align: center;
|
|
}
|
|
|
|
/* ================================================
|
|
TASK SELECTOR SECTION
|
|
================================================ */
|
|
|
|
/* Task Selector Container */
|
|
.tasknotes-plugin .pomodoro-view__task-selector {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-md);
|
|
max-width: 500px;
|
|
width: 100%;
|
|
margin: 0 auto;
|
|
padding: 0;
|
|
}
|
|
|
|
/* Task Buttons Container */
|
|
.tasknotes-plugin .pomodoro-view__task-buttons {
|
|
display: flex;
|
|
gap: var(--tn-spacing-sm);
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-wrap: nowrap;
|
|
width: 100%;
|
|
}
|
|
|
|
/* Use consistent button system for task select button */
|
|
.tasknotes-plugin .pomodoro-view__task-select-button {
|
|
background: transparent;
|
|
color: var(--tn-text-normal);
|
|
border: none;
|
|
box-shadow: none;
|
|
flex: 1;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__task-select-button:hover {
|
|
background: var(--tn-interactive-hover);
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__task-select-button--no-task {
|
|
color: var(--tn-text-muted);
|
|
font-style: italic;
|
|
}
|
|
|
|
/* Use consistent button system for task clear button */
|
|
.tasknotes-plugin .pomodoro-view__task-clear-button {
|
|
background: transparent;
|
|
color: var(--tn-text-normal);
|
|
border: none;
|
|
box-shadow: none;
|
|
flex: 1;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__task-clear-button:hover {
|
|
background: var(--tn-interactive-hover);
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__task-clear-button--hidden {
|
|
display: none;
|
|
}
|
|
|
|
/* Task Card Container */
|
|
.tasknotes-plugin .pomodoro-view__task-card-container {
|
|
width: 100%;
|
|
max-width: 500px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__task-card-container--empty {
|
|
display: none;
|
|
}
|
|
|
|
/* Task card styling within pomodoro view */
|
|
.tasknotes-plugin .pomodoro-view__task-card-container .task-card {
|
|
margin: 0;
|
|
border-radius: var(--tn-radius-lg);
|
|
box-shadow: none;
|
|
transition: none;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__task-card-container .task-card:hover {
|
|
/* No hover effects - keep task card static */
|
|
}
|
|
|
|
|
|
/* ================================================
|
|
CONTROL SECTION - Main Controls Container
|
|
================================================ */
|
|
|
|
/* Control Section Container */
|
|
.tasknotes-plugin .pomodoro-view__control-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--tn-spacing-md);
|
|
padding: var(--tn-spacing-md);
|
|
border: none;
|
|
margin: 0 auto;
|
|
width: 100%;
|
|
max-width: 400px;
|
|
}
|
|
|
|
/* Primary Controls Container */
|
|
.tasknotes-plugin .pomodoro-view__primary-controls {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-md);
|
|
padding: var(--tn-spacing-sm) 0;
|
|
min-height: var(--tn-button-height-lg);
|
|
width: 100%;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
/* Primary Control Buttons */
|
|
/* Use consistent button system with primary accent background preserved */
|
|
.tasknotes-plugin .pomodoro-view__start-button {
|
|
background: var(--tn-interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border: none;
|
|
box-shadow: none;
|
|
min-width: 200px;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__start-button:hover {
|
|
background: var(--tn-interactive-accent-hover);
|
|
box-shadow: none;
|
|
}
|
|
|
|
/* Remove all borders and shadows from other pomodoro buttons */
|
|
.tasknotes-plugin .pomodoro-view__pause-button,
|
|
.tasknotes-plugin .pomodoro-view__stop-button,
|
|
.tasknotes-plugin .pomodoro-view__skip-break-button,
|
|
.tasknotes-plugin .pomodoro-view__time-adjust-button {
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__pause-button:hover,
|
|
.tasknotes-plugin .pomodoro-view__stop-button:hover,
|
|
.tasknotes-plugin .pomodoro-view__skip-break-button:hover,
|
|
.tasknotes-plugin .pomodoro-view__time-adjust-button:hover {
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__pause-button {
|
|
min-width: 200px;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__stop-button {
|
|
min-width: 120px;
|
|
}
|
|
|
|
/* Skip Break Button */
|
|
.tasknotes-plugin .pomodoro-view__skip-break-button {
|
|
min-width: 120px;
|
|
}
|
|
|
|
/* Time Adjustment Controls */
|
|
.tasknotes-plugin .pomodoro-view__time-controls {
|
|
display: flex;
|
|
gap: var(--tn-spacing-md);
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin-top: var(--tn-spacing-sm);
|
|
pointer-events: auto; /* Re-enable pointer events for the buttons */
|
|
}
|
|
|
|
/* Use consistent button system for time adjust buttons */
|
|
.tasknotes-plugin .pomodoro-view__time-adjust-button {
|
|
width: 28px;
|
|
height: 28px;
|
|
border-radius: 50%;
|
|
background: transparent;
|
|
color: var(--tn-text-normal);
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__time-adjust-button:hover {
|
|
background: var(--tn-interactive-hover);
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__time-adjust-button:focus {
|
|
outline: none;
|
|
}
|
|
|
|
/* Button States */
|
|
.tasknotes-plugin .pomodoro-view__start-button--loading {
|
|
opacity: 0.7;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__start-button--hidden,
|
|
.tasknotes-plugin .pomodoro-view__pause-button--hidden,
|
|
.tasknotes-plugin .pomodoro-view__stop-button--hidden,
|
|
.tasknotes-plugin .pomodoro-view__skip-break-button--hidden,
|
|
.tasknotes-plugin .pomodoro-view__time-adjust-button--hidden {
|
|
display: none;
|
|
}
|
|
|
|
|
|
/* ================================================
|
|
STATISTICS SECTION
|
|
================================================ */
|
|
|
|
/* Statistics Section Container */
|
|
.tasknotes-plugin .pomodoro-view__stats-section {
|
|
border: none;
|
|
padding: var(--tn-spacing-md) 0;
|
|
width: 100%;
|
|
max-width: 300px;
|
|
margin: 0 auto;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* Statistics Grid */
|
|
.tasknotes-plugin .pomodoro-view__stats {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* Individual Stat */
|
|
.tasknotes-plugin .pomodoro-view__stat {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
padding: 0;
|
|
background: transparent;
|
|
border: none;
|
|
text-align: center;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__stat--clickable {
|
|
cursor: var(--cursor);
|
|
padding: var(--tn-spacing-xs);
|
|
border-radius: var(--tn-radius-sm);
|
|
transition: all var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__stat--clickable:hover {
|
|
background: var(--tn-interactive-hover);
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__stat-value {
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: var(--tn-font-weight-bold);
|
|
color: var(--tn-interactive-accent);
|
|
margin: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__stat-label {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
margin: 0;
|
|
}
|
|
|
|
/* ================================================
|
|
RESPONSIVE DESIGN
|
|
================================================ */
|
|
|
|
@media (max-width: 768px) {
|
|
.tasknotes-plugin .pomodoro-view {
|
|
padding: var(--tn-spacing-md);
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__progress-container {
|
|
width: 250px;
|
|
height: 250px;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__timer-display {
|
|
font-size: 2.5rem;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__control-section {
|
|
gap: var(--tn-spacing-md);
|
|
padding: var(--tn-spacing-md);
|
|
max-width: 100%;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__primary-controls {
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__start-button,
|
|
.tasknotes-plugin .pomodoro-view__pause-button,
|
|
.tasknotes-plugin .pomodoro-view__stop-button {
|
|
width: 100%;
|
|
max-width: 250px;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__stats {
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.tasknotes-plugin .pomodoro-view__progress-container {
|
|
width: 200px;
|
|
height: 200px;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__timer-display {
|
|
font-size: 2rem;
|
|
}
|
|
}
|
|
|
|
/* ================================================
|
|
ACCESSIBILITY & REDUCED MOTION
|
|
================================================ */
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.tasknotes-plugin .pomodoro-view__progress-circle,
|
|
.tasknotes-plugin .pomodoro-view__timer-display,
|
|
.tasknotes-plugin .pomodoro-view__task-display {
|
|
transition: none;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view__progress-circle--warning,
|
|
.tasknotes-plugin .pomodoro-view__timer-display--warning {
|
|
animation: none;
|
|
}
|
|
}
|
|
|
|
/* Focus indicators for keyboard navigation */
|
|
.tasknotes-plugin .pomodoro-view__start-button:focus,
|
|
.tasknotes-plugin .pomodoro-view__pause-button:focus,
|
|
.tasknotes-plugin .pomodoro-view__stop-button:focus,
|
|
.tasknotes-plugin .pomodoro-view__skip-break-button:focus {
|
|
outline: 2px solid var(--tn-interactive-accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Time adjust buttons have their own focus styling above */
|
|
|
|
/* ================================================
|
|
RESPONSIVE DESIGN - Mobile & Narrow Panes
|
|
================================================ */
|
|
|
|
/* Extra responsive breakpoints for very granular control */
|
|
.tasknotes-plugin .pomodoro-view--tiny {
|
|
padding: var(--tn-spacing-sm);
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view.pomodoro-view--tiny .pomodoro-view__timer-overlay .pomodoro-view__timer-display {
|
|
font-size: 2rem !important;
|
|
font-weight: 700 !important;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--extra-narrow {
|
|
padding: var(--tn-spacing-md);
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view.pomodoro-view--extra-narrow .pomodoro-view__timer-overlay .pomodoro-view__timer-display {
|
|
font-size: 2.2rem !important;
|
|
font-weight: 650 !important;
|
|
}
|
|
|
|
/* Very narrow view (≤ 300px) - Minimal layout */
|
|
.tasknotes-plugin .pomodoro-view--very-narrow {
|
|
padding: var(--tn-spacing-md);
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__status {
|
|
font-size: var(--tn-font-size-sm);
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__timer-section {
|
|
padding: var(--tn-spacing-sm) 0;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view.pomodoro-view--very-narrow .pomodoro-view__timer-overlay .pomodoro-view__timer-display {
|
|
font-size: 2.5rem !important;
|
|
font-weight: 600 !important;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__time-controls {
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__time-adjust-button {
|
|
width: 32px;
|
|
height: 32px;
|
|
font-size: var(--tn-font-size-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__task-selector {
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__task-buttons {
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__task-select-button,
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__task-clear-button {
|
|
font-size: var(--tn-font-size-sm);
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__primary-controls {
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__start-button,
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__pause-button,
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__stop-button {
|
|
width: 100%;
|
|
max-width: 200px;
|
|
font-size: var(--tn-font-size-sm);
|
|
padding: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__skip-break-button {
|
|
font-size: var(--tn-font-size-sm);
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__stats {
|
|
font-size: var(--tn-font-size-xs);
|
|
}
|
|
|
|
/* Narrow view (≤ 400px) - Compact layout */
|
|
.tasknotes-plugin .pomodoro-view--narrow {
|
|
padding: var(--tn-spacing-lg);
|
|
gap: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view.pomodoro-view--narrow .pomodoro-view__timer-overlay .pomodoro-view__timer-display {
|
|
font-size: 3rem !important;
|
|
font-weight: 600 !important;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--narrow .pomodoro-view__time-controls {
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--narrow .pomodoro-view__time-adjust-button {
|
|
width: 36px;
|
|
height: 36px;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--narrow .pomodoro-view__task-buttons {
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--narrow .pomodoro-view__primary-controls {
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--narrow .pomodoro-view__start-button,
|
|
.tasknotes-plugin .pomodoro-view--narrow .pomodoro-view__pause-button,
|
|
.tasknotes-plugin .pomodoro-view--narrow .pomodoro-view__stop-button {
|
|
font-size: var(--tn-font-size-md);
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Small view (≤ 400px) - Enhanced compact layout */
|
|
.tasknotes-plugin .pomodoro-view--small {
|
|
padding: var(--tn-spacing-lg);
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view.pomodoro-view--small .pomodoro-view__timer-overlay .pomodoro-view__timer-display {
|
|
font-size: 3.2rem !important;
|
|
font-weight: 550 !important;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--small .pomodoro-view__primary-controls {
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* Medium-small view (≤ 500px) - Transitional layout */
|
|
.tasknotes-plugin .pomodoro-view--medium-small {
|
|
padding: var(--tn-spacing-lg);
|
|
gap: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view.pomodoro-view--medium-small .pomodoro-view__timer-overlay .pomodoro-view__timer-display {
|
|
font-size: 3.6rem !important;
|
|
font-weight: 500 !important;
|
|
}
|
|
|
|
/* Medium view (≤ 600px) - Standard responsive adjustments */
|
|
.tasknotes-plugin .pomodoro-view--medium {
|
|
padding: var(--tn-spacing-xl);
|
|
gap: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view.pomodoro-view--medium .pomodoro-view__timer-overlay .pomodoro-view__timer-display {
|
|
font-size: 4rem !important;
|
|
font-weight: 500 !important;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--medium .pomodoro-view__task-buttons {
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Wide view (> 600px) - Enhanced layout */
|
|
.tasknotes-plugin .pomodoro-view--wide {
|
|
padding: var(--tn-spacing-xl);
|
|
gap: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view.pomodoro-view--wide .pomodoro-view__timer-overlay .pomodoro-view__timer-display {
|
|
font-size: 4.5rem !important;
|
|
font-weight: 400 !important;
|
|
}
|
|
|
|
/* Task card responsiveness */
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .task-card,
|
|
.tasknotes-plugin .pomodoro-view--narrow .task-card {
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .task-card__metadata,
|
|
.tasknotes-plugin .pomodoro-view--narrow .task-card__metadata {
|
|
font-size: var(--tn-font-size-xs);
|
|
}
|
|
|
|
/* Hide less essential elements in very narrow views */
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .task-card__context-menu {
|
|
display: none;
|
|
}
|
|
|
|
/* Adjust progress circle stroke width for small sizes */
|
|
.tasknotes-plugin .pomodoro-view--very-narrow .pomodoro-view__progress-circle {
|
|
stroke-width: 3;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-view--narrow .pomodoro-view__progress-circle {
|
|
stroke-width: 4;
|
|
}
|
|
|
|
|
|
/* ===== POMODORO-STATS-VIEW.CSS ===== */
|
|
/* ================================================
|
|
POMODORO STATS VIEW - BEM STRUCTURE
|
|
================================================ */
|
|
|
|
/* Pomodoro Stats View Container - Root Block */
|
|
.tasknotes-plugin .pomodoro-stats-view {
|
|
padding: var(--tn-spacing-lg);
|
|
max-width: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xl);
|
|
height: 100%;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
/* ================================================
|
|
STATS VIEW HEADER
|
|
================================================ */
|
|
|
|
/* Stats Header Container */
|
|
.tasknotes-plugin .pomodoro-stats-view__header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
padding-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__title {
|
|
font-size: var(--tn-font-size-xl);
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
color: var(--tn-text-normal);
|
|
margin: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__refresh-button {
|
|
background: transparent;
|
|
color: var(--tn-text-normal);
|
|
border: none;
|
|
box-shadow: none;
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__refresh-button:hover {
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
/* ================================================
|
|
STATS SECTIONS
|
|
================================================ */
|
|
|
|
/* Stats Section Container */
|
|
.tasknotes-plugin .pomodoro-stats-view__section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__section-title {
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
color: var(--tn-text-normal);
|
|
margin: 0;
|
|
padding-bottom: var(--tn-spacing-xs);
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
}
|
|
|
|
/* ================================================
|
|
OVERVIEW GRID
|
|
================================================ */
|
|
|
|
/* Overview Grid Container - Like TickTick */
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
gap: var(--tn-spacing-lg);
|
|
}
|
|
|
|
/* Overview Card - Larger than regular stat cards */
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-card {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
padding: var(--tn-spacing-xl);
|
|
background: var(--tn-bg-secondary);
|
|
border-radius: var(--tn-radius-lg);
|
|
border: 1px solid var(--tn-border-color);
|
|
transition: all var(--tn-transition-fast);
|
|
min-height: 120px;
|
|
justify-content: center;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-card:hover {
|
|
transform: translateY(-2px);
|
|
box-shadow: var(--tn-shadow-medium);
|
|
}
|
|
|
|
/* Overview Card Elements */
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-value {
|
|
font-size: 2.5rem;
|
|
font-weight: var(--tn-font-weight-bold);
|
|
color: var(--tn-interactive-accent);
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
line-height: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-label {
|
|
font-size: var(--tn-font-size-md);
|
|
color: var(--tn-text-normal);
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-change {
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-change.positive {
|
|
color: var(--tn-status-done-color, #10B981);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-change.negative {
|
|
color: var(--tn-color-error);
|
|
}
|
|
|
|
/* ================================================
|
|
STATS GRID
|
|
================================================ */
|
|
|
|
/* Stats Grid Container */
|
|
.tasknotes-plugin .pomodoro-stats-view__stats-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Individual Stat Card */
|
|
.tasknotes-plugin .pomodoro-stats-view__stat-card {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
padding: var(--tn-spacing-lg);
|
|
background: var(--tn-bg-secondary);
|
|
border-radius: var(--tn-radius-lg);
|
|
border: 1px solid var(--tn-border-color);
|
|
text-align: center;
|
|
transition: all var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__stat-card:hover {
|
|
transform: translateY(-2px);
|
|
box-shadow: var(--tn-shadow-medium);
|
|
}
|
|
|
|
/* Stat Card Elements */
|
|
.tasknotes-plugin .pomodoro-stats-view__stat-value {
|
|
font-size: 2rem;
|
|
font-weight: var(--tn-font-weight-bold);
|
|
color: var(--tn-interactive-accent);
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
line-height: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__stat-label {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
/* ================================================
|
|
RECENT SESSIONS
|
|
================================================ */
|
|
|
|
/* Recent Sessions Container */
|
|
.tasknotes-plugin .pomodoro-stats-view__recent-sessions {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-sm);
|
|
max-height: 400px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
/* No Sessions State */
|
|
.tasknotes-plugin .pomodoro-stats-view__no-sessions {
|
|
padding: var(--tn-spacing-xl);
|
|
text-align: center;
|
|
color: var(--tn-text-muted);
|
|
font-style: italic;
|
|
background: var(--tn-bg-secondary);
|
|
border-radius: var(--tn-radius-md);
|
|
border: 1px solid var(--tn-border-color);
|
|
}
|
|
|
|
/* ================================================
|
|
SESSION ITEM
|
|
================================================ */
|
|
|
|
/* Session Item Container */
|
|
.tasknotes-plugin .pomodoro-stats-view__session-item {
|
|
display: grid;
|
|
grid-template-columns: auto auto auto 1fr;
|
|
gap: var(--tn-spacing-md);
|
|
align-items: center;
|
|
padding: var(--tn-spacing-md);
|
|
background: var(--tn-bg-secondary);
|
|
border-radius: var(--tn-radius-sm);
|
|
border: 1px solid var(--tn-border-color);
|
|
transition: background-color var(--tn-transition-fast);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__session-item:hover {
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
/* Session Item Elements */
|
|
.tasknotes-plugin .pomodoro-stats-view__session-date {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
min-width: 100px;
|
|
font-family: var(--tn-font-mono);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__session-duration {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-normal);
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
font-family: var(--tn-font-mono);
|
|
min-width: 60px;
|
|
}
|
|
|
|
/* Session Status Badge */
|
|
.tasknotes-plugin .pomodoro-stats-view__session-status {
|
|
font-size: var(--tn-font-size-xs);
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
border-radius: var(--tn-radius-sm);
|
|
min-width: 80px;
|
|
text-align: center;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__session-status--completed {
|
|
background: var(--tn-status-done-color, #10B981);
|
|
color: var(--tn-bg-primary);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__session-status--interrupted {
|
|
background: var(--tn-color-error);
|
|
color: var(--tn-bg-primary);
|
|
}
|
|
|
|
/* Session Task */
|
|
.tasknotes-plugin .pomodoro-stats-view__session-task {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-normal);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
text-align: right;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* ================================================
|
|
RESPONSIVE DESIGN
|
|
================================================ */
|
|
|
|
@media (max-width: 768px) {
|
|
.tasknotes-plugin .pomodoro-stats-view {
|
|
padding: var(--tn-spacing-md);
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__header {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__refresh-button {
|
|
align-self: flex-end;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-grid {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__stats-grid {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__session-item {
|
|
grid-template-columns: 1fr;
|
|
gap: var(--tn-spacing-sm);
|
|
text-align: center;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__session-date,
|
|
.tasknotes-plugin .pomodoro-stats-view__session-duration,
|
|
.tasknotes-plugin .pomodoro-stats-view__session-task {
|
|
min-width: auto;
|
|
text-align: center;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__session-status {
|
|
justify-self: center;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.tasknotes-plugin .pomodoro-stats-view {
|
|
padding: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__stats-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-card {
|
|
padding: var(--tn-spacing-lg);
|
|
min-height: 100px;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-value {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__stat-card {
|
|
padding: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__stat-value {
|
|
font-size: 1.5rem;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__session-item {
|
|
padding: var(--tn-spacing-sm);
|
|
}
|
|
}
|
|
|
|
/* ================================================
|
|
ACCESSIBILITY & REDUCED MOTION
|
|
================================================ */
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-card,
|
|
.tasknotes-plugin .pomodoro-stats-view__stat-card,
|
|
.tasknotes-plugin .pomodoro-stats-view__session-item,
|
|
.tasknotes-plugin .pomodoro-stats-view__refresh-button {
|
|
transition: none;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-card:hover,
|
|
.tasknotes-plugin .pomodoro-stats-view__stat-card:hover {
|
|
transform: none;
|
|
}
|
|
}
|
|
|
|
/* Focus indicators for keyboard navigation */
|
|
.tasknotes-plugin .pomodoro-stats-view__refresh-button:focus {
|
|
outline: 2px solid var(--tn-interactive-accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* High contrast mode support */
|
|
@media (prefers-contrast: high) {
|
|
.tasknotes-plugin .pomodoro-stats-view__overview-card,
|
|
.tasknotes-plugin .pomodoro-stats-view__stat-card,
|
|
.tasknotes-plugin .pomodoro-stats-view__session-item {
|
|
border-width: 2px;
|
|
}
|
|
|
|
.tasknotes-plugin .pomodoro-stats-view__session-status {
|
|
border: 2px solid currentColor;
|
|
}
|
|
}
|
|
|
|
/* ===== STATS-VIEW.CSS ===== */
|
|
/* ================================================
|
|
STATISTICS VIEW - BEM STRUCTURE
|
|
================================================ */
|
|
|
|
/* Statistics View Container - Root Block */
|
|
.tasknotes-plugin .stats-view {
|
|
padding: var(--tn-spacing-lg);
|
|
max-width: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xl);
|
|
height: 100%;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
/* ================================================
|
|
STATS VIEW HEADER
|
|
================================================ */
|
|
|
|
/* Stats Header Container */
|
|
.tasknotes-plugin .stats-view__header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
padding-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__title {
|
|
font-size: var(--tn-font-size-xl);
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
color: var(--tn-text-normal);
|
|
margin: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__refresh-button {
|
|
background: transparent;
|
|
color: var(--tn-text-normal);
|
|
border: none;
|
|
box-shadow: none;
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__refresh-button:hover {
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
/* ================================================
|
|
STATS VIEW SECTIONS
|
|
================================================ */
|
|
|
|
/* Section Container */
|
|
.tasknotes-plugin .stats-view__section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__section .setting-item {
|
|
border: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__section .setting-item-name {
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
color: var(--tn-text-normal);
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* ================================================
|
|
OVERVIEW GRID
|
|
================================================ */
|
|
|
|
/* Overview Grid Layout */
|
|
.tasknotes-plugin .stats-view__overview-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
gap: var(--tn-spacing-md);
|
|
margin-top: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* Overview Card */
|
|
.tasknotes-plugin .stats-view__overview-card {
|
|
background: var(--tn-background-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-border-radius-md);
|
|
padding: var(--tn-spacing-md);
|
|
text-align: center;
|
|
transition: border-color 0.15s ease-in-out;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__overview-card:hover {
|
|
border-color: var(--tn-accent-color);
|
|
}
|
|
|
|
/* Overview Values */
|
|
.tasknotes-plugin .stats-view__overview-value {
|
|
font-size: var(--tn-font-size-xxl);
|
|
font-weight: var(--tn-font-weight-bold);
|
|
color: var(--tn-accent-color);
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__overview-label {
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-muted);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
/* ================================================
|
|
STATS GRID
|
|
================================================ */
|
|
|
|
/* Stats Grid Layout */
|
|
.tasknotes-plugin .stats-view__stats-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
|
|
gap: var(--tn-spacing-md);
|
|
margin-top: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* Stat Card */
|
|
.tasknotes-plugin .stats-view__stat-card {
|
|
background: var(--tn-background-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-border-radius-md);
|
|
padding: var(--tn-spacing-md);
|
|
text-align: center;
|
|
transition: all 0.15s ease-in-out;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__stat-card:hover {
|
|
border-color: var(--tn-accent-color);
|
|
}
|
|
|
|
/* Stat Values */
|
|
.tasknotes-plugin .stats-view__stat-value {
|
|
font-size: var(--tn-font-size-xl);
|
|
font-weight: var(--tn-font-weight-bold);
|
|
color: var(--tn-text-normal);
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__stat-label {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
/* ================================================
|
|
PROJECT STATS
|
|
================================================ */
|
|
|
|
/* Projects Container */
|
|
.tasknotes-plugin .stats-view__projects {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
gap: var(--tn-spacing-md);
|
|
margin-top: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* Project Item */
|
|
.tasknotes-plugin .stats-view__project-item {
|
|
background: var(--tn-background-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-border-radius-md);
|
|
padding: var(--tn-spacing-md);
|
|
transition: all 0.15s ease-in-out;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__project-item:hover {
|
|
border-color: var(--tn-accent-color);
|
|
}
|
|
|
|
/* Project Header */
|
|
.tasknotes-plugin .stats-view__project-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__project-name {
|
|
font-size: var(--tn-font-size-md);
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
/* Project Content Grid */
|
|
.tasknotes-plugin .stats-view__project-content-grid {
|
|
display: grid;
|
|
grid-template-columns: auto 1fr;
|
|
gap: var(--tn-spacing-md);
|
|
align-items: center;
|
|
}
|
|
|
|
/* Progress Circle */
|
|
.tasknotes-plugin .stats-view__progress-container {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
padding: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__progress-circle-svg {
|
|
transform: rotate(-90deg);
|
|
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__progress-circle-bg {
|
|
fill: none;
|
|
stroke: var(--background-modifier-border);
|
|
stroke-width: 4;
|
|
opacity: 0.3;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__progress-circle-fg {
|
|
fill: none;
|
|
stroke: var(--interactive-accent);
|
|
stroke-width: 4;
|
|
stroke-linecap: round;
|
|
transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
|
|
filter: brightness(1.1);
|
|
opacity: 1;
|
|
}
|
|
|
|
/* Hover effect for progress circle */
|
|
.tasknotes-plugin .stats-view__project-item:hover .stats-view__progress-circle-fg {
|
|
stroke-width: 5;
|
|
filter: brightness(1.2) saturate(1.1);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__progress-circle-text {
|
|
font-size: 14px;
|
|
font-weight: var(--tn-font-weight-bold);
|
|
fill: var(--tn-text-normal);
|
|
transform: rotate(90deg);
|
|
transform-origin: center;
|
|
text-anchor: middle;
|
|
dominant-baseline: central;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__progress-label {
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--tn-text-muted);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
text-align: center;
|
|
}
|
|
|
|
/* Stats Container */
|
|
.tasknotes-plugin .stats-view__stats-container {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* Project Stats Container */
|
|
.tasknotes-plugin .stats-view__project-stats {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Individual Project Stat */
|
|
.tasknotes-plugin .stats-view__project-stat {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
background: var(--tn-background-primary);
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
border-radius: var(--tn-border-radius-sm);
|
|
border: 1px solid var(--tn-border-color);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* ================================================
|
|
NO DATA STATE
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .stats-view__no-data {
|
|
text-align: center;
|
|
padding: var(--tn-spacing-xl);
|
|
color: var(--tn-text-muted);
|
|
font-style: italic;
|
|
}
|
|
|
|
/* More Projects Indicator */
|
|
.tasknotes-plugin .stats-view__more-projects {
|
|
text-align: center;
|
|
color: var(--tn-text-muted);
|
|
font-style: italic;
|
|
padding: var(--tn-spacing-sm);
|
|
border-top: 1px solid var(--tn-border-color);
|
|
margin-top: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* ================================================
|
|
RESPONSIVE DESIGN
|
|
================================================ */
|
|
|
|
/* Mobile adjustments */
|
|
@media (max-width: 768px) {
|
|
.tasknotes-plugin .stats-view {
|
|
padding: var(--tn-spacing-md);
|
|
gap: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__overview-grid {
|
|
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__stats-grid {
|
|
grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__project-stats {
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
}
|
|
|
|
/* ================================================
|
|
DARK MODE ADJUSTMENTS
|
|
================================================ */
|
|
|
|
.theme-dark .tasknotes-plugin .stats-view__overview-card,
|
|
.theme-dark .tasknotes-plugin .stats-view__stat-card,
|
|
.theme-dark .tasknotes-plugin .stats-view__project-item {
|
|
background: var(--tn-background-secondary);
|
|
border-color: var(--tn-border-color);
|
|
}
|
|
|
|
.theme-dark .tasknotes-plugin .stats-view__project-stat {
|
|
background: var(--tn-background-modifier-border);
|
|
}
|
|
|
|
/* ================================================
|
|
PROGRESS BARS
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .stats-view__progress-bar {
|
|
width: 100%;
|
|
height: 8px;
|
|
background: var(--tn-background-modifier-border);
|
|
border-radius: 4px;
|
|
overflow: hidden;
|
|
margin-top: var(--tn-spacing-xs);
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__progress-fill {
|
|
height: 100%;
|
|
background: linear-gradient(90deg, var(--tn-accent-color), var(--color-accent-2, var(--tn-accent-color)));
|
|
border-radius: 4px;
|
|
transition: width 0.6s ease-out;
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__progress-fill::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
|
|
animation: shimmer 2s infinite;
|
|
}
|
|
|
|
@keyframes shimmer {
|
|
0% { transform: translateX(-100%); }
|
|
100% { transform: translateX(100%); }
|
|
}
|
|
|
|
/* ================================================
|
|
VISUAL ENHANCEMENTS
|
|
================================================ */
|
|
|
|
/* Enhanced cards with gradients */
|
|
.tasknotes-plugin .stats-view__overview-card {
|
|
background: linear-gradient(135deg, var(--tn-background-secondary), var(--tn-background-primary));
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-border-radius-lg);
|
|
padding: var(--tn-spacing-lg);
|
|
text-align: center;
|
|
transition: all 0.3s ease;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__overview-card::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 3px;
|
|
background: linear-gradient(90deg, var(--tn-accent-color), var(--color-accent-2, var(--tn-accent-color)));
|
|
opacity: 0;
|
|
transition: opacity 0.3s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__overview-card:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__overview-card:hover {
|
|
border-color: var(--tn-accent-color);
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
/* Enhanced overview values with animation */
|
|
.tasknotes-plugin .stats-view__overview-value {
|
|
font-size: var(--tn-font-size-xxl);
|
|
font-weight: var(--tn-font-weight-bold);
|
|
color: var(--tn-accent-color);
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
line-height: 1.2;
|
|
animation: countUp 0.8s ease-out;
|
|
}
|
|
|
|
@keyframes countUp {
|
|
0% {
|
|
opacity: 0;
|
|
transform: scale(0.8);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
/* Enhanced project items */
|
|
.tasknotes-plugin .stats-view__project-item {
|
|
background: linear-gradient(135deg, var(--tn-background-secondary), var(--tn-background-primary));
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-border-radius-lg);
|
|
padding: var(--tn-spacing-lg);
|
|
transition: all 0.3s ease;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Special styling for "No Project" items */
|
|
.tasknotes-plugin .stats-view__project-item--no-project {
|
|
background: linear-gradient(135deg, var(--tn-background-modifier-border), var(--tn-background-secondary));
|
|
border: 1px dashed var(--tn-text-muted);
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__project-item--no-project::before {
|
|
background: linear-gradient(90deg, var(--tn-text-muted), var(--color-base-60));
|
|
opacity: 0.3;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__project-item--no-project:hover {
|
|
border-color: var(--tn-text-muted);
|
|
opacity: 1;
|
|
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__project-item--no-project .stats-view__project-name {
|
|
color: var(--tn-text-muted);
|
|
font-style: italic;
|
|
}
|
|
|
|
|
|
.tasknotes-plugin .stats-view__project-item--no-project .stats-view__time-bar-fill {
|
|
background: linear-gradient(90deg, var(--color-base-60), var(--color-base-70));
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__project-item--no-project .stats-view__progress-circle-fg {
|
|
stroke: var(--color-base-60);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__project-item::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 4px;
|
|
height: 100%;
|
|
background: var(--tn-accent-color);
|
|
opacity: 0;
|
|
transition: opacity 0.3s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__project-item:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__project-item:hover {
|
|
border-color: var(--tn-accent-color);
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
/* Time visualization bars */
|
|
.tasknotes-plugin .stats-view__time-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
margin: var(--tn-spacing-xs) 0;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__time-bar-visual {
|
|
flex: 1;
|
|
height: 6px;
|
|
background: var(--tn-background-modifier-border);
|
|
border-radius: 3px;
|
|
overflow: hidden;
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__time-bar-fill {
|
|
height: 100%;
|
|
background: linear-gradient(90deg, var(--color-green), var(--color-blue));
|
|
border-radius: 3px;
|
|
transition: width 0.8s ease-out;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__time-bar-label {
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--tn-text-muted);
|
|
white-space: nowrap;
|
|
min-width: 60px;
|
|
text-align: right;
|
|
}
|
|
|
|
/* Insight cards */
|
|
.tasknotes-plugin .stats-view__insight-card {
|
|
background: linear-gradient(135deg, var(--color-accent-2, var(--tn-accent-color)), var(--tn-accent-color));
|
|
color: var(--text-on-accent);
|
|
border-radius: var(--tn-border-radius-lg);
|
|
padding: var(--tn-spacing-lg);
|
|
margin: var(--tn-spacing-md) 0;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__insight-card::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: -50%;
|
|
left: -50%;
|
|
width: 200%;
|
|
height: 200%;
|
|
background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);
|
|
opacity: 0;
|
|
transition: opacity 0.3s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__insight-card:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__insight-title {
|
|
font-weight: var(--tn-font-weight-bold);
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__insight-text {
|
|
font-size: var(--tn-font-size-sm);
|
|
opacity: 0.9;
|
|
}
|
|
|
|
/* ================================================
|
|
LOADING STATE
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .stats-view__loading {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: var(--tn-spacing-xl);
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__loading::before {
|
|
content: '';
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 2px solid var(--tn-border-color);
|
|
border-top-color: var(--tn-accent-color);
|
|
border-radius: 50%;
|
|
margin-right: var(--tn-spacing-sm);
|
|
animation: spin 1s linear infinite;
|
|
}
|
|
|
|
@keyframes spin {
|
|
to {
|
|
transform: rotate(360px);
|
|
}
|
|
}
|
|
|
|
/* ================================================
|
|
FILTER CONTROLS
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .stats-view__filters {
|
|
margin-top: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__filter-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
gap: var(--tn-spacing-md);
|
|
align-items: end;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__filter-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__filter-label {
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__filter-select,
|
|
.tasknotes-plugin .stats-view__filter-input {
|
|
padding: var(--tn-spacing-sm);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-border-radius-sm);
|
|
background: var(--tn-background-primary);
|
|
color: var(--tn-text-normal);
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__filter-select:focus,
|
|
.tasknotes-plugin .stats-view__filter-input:focus {
|
|
outline: none;
|
|
border-color: var(--tn-accent-color);
|
|
box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.2);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__custom-dates {
|
|
grid-column: 1 / -1;
|
|
display: flex;
|
|
gap: var(--tn-spacing-md);
|
|
margin-top: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__date-input-container {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
flex: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__date-label {
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__date-input {
|
|
padding: var(--tn-spacing-sm);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-border-radius-sm);
|
|
background: var(--tn-background-primary);
|
|
color: var(--tn-text-normal);
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__filter-buttons {
|
|
display: flex;
|
|
gap: var(--tn-spacing-sm);
|
|
align-items: end;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__filter-button {
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-md);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-border-radius-sm);
|
|
background: var(--tn-background-primary);
|
|
color: var(--tn-text-normal);
|
|
font-size: var(--tn-font-size-sm);
|
|
cursor: var(--cursor);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__filter-button:hover {
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__filter-button--reset {
|
|
border-color: var(--color-red);
|
|
color: var(--color-red);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__filter-button--reset:hover {
|
|
background: var(--color-red);
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
/* ================================================
|
|
INTERACTIVE ELEMENTS
|
|
================================================ */
|
|
|
|
/* Clickable project items */
|
|
.tasknotes-plugin .stats-view__project-item--clickable {
|
|
cursor: var(--cursor);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__project-item--clickable:hover {
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__click-indicator {
|
|
font-size: var(--tn-font-size-lg);
|
|
color: var(--tn-text-muted);
|
|
opacity: 0;
|
|
transition: opacity 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__project-item--clickable:hover .stats-view__click-indicator {
|
|
opacity: 1;
|
|
}
|
|
|
|
/* ================================================
|
|
SPARKLINES & TRENDS
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .stats-view__trend-container {
|
|
margin: var(--tn-spacing-sm) 0;
|
|
padding: var(--tn-spacing-sm);
|
|
background: var(--tn-background-modifier-border);
|
|
border-radius: var(--tn-border-radius-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__trend-label {
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--tn-text-muted);
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__sparkline {
|
|
height: 20px;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__sparkline-svg {
|
|
width: 100%;
|
|
height: 100%;
|
|
color: var(--tn-accent-color);
|
|
}
|
|
|
|
/* ================================================
|
|
MODAL STYLES
|
|
================================================ */
|
|
|
|
/* Modal styles - no plugin scope needed since modals are appended to document.body */
|
|
.stats-view__modal-backdrop {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: rgba(0, 0, 0, 0.5);
|
|
z-index: var(--layer-modal);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: var(--tn-spacing-lg, 16px);
|
|
}
|
|
|
|
.stats-view__modal {
|
|
background: var(--tn-background-primary, var(--background-primary));
|
|
border-radius: var(--tn-border-radius-lg, 8px);
|
|
max-width: 800px;
|
|
max-height: 80vh;
|
|
width: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
.stats-view__modal-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: var(--tn-spacing-lg, 16px);
|
|
border-bottom: 1px solid var(--tn-border-color, var(--background-modifier-border));
|
|
}
|
|
|
|
.stats-view__modal-title {
|
|
font-size: var(--tn-font-size-lg, 18px);
|
|
font-weight: var(--tn-font-weight-bold, 600);
|
|
color: var(--tn-text-normal, var(--text-normal));
|
|
}
|
|
|
|
.stats-view__modal-close {
|
|
background: none;
|
|
border: none;
|
|
font-size: var(--tn-font-size-xl, 20px);
|
|
color: var(--tn-text-muted, var(--text-muted));
|
|
cursor: var(--cursor);
|
|
padding: var(--tn-spacing-xs, 4px);
|
|
border-radius: var(--tn-border-radius-sm, 4px);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.stats-view__modal-close:hover {
|
|
background: var(--tn-interactive-hover, var(--interactive-hover));
|
|
color: var(--tn-text-normal, var(--text-normal));
|
|
}
|
|
|
|
.stats-view__modal-content {
|
|
padding: var(--tn-spacing-lg, 16px);
|
|
overflow-y: auto;
|
|
flex: 1;
|
|
}
|
|
|
|
/* ================================================
|
|
DRILL-DOWN CONTENT
|
|
================================================ */
|
|
|
|
/* Drill-down styles - no plugin scope needed since content is in modal */
|
|
.stats-view__drilldown-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
|
|
gap: var(--tn-spacing-md, 12px);
|
|
margin-bottom: var(--tn-spacing-xl, 24px);
|
|
}
|
|
|
|
.stats-view__drilldown-card {
|
|
background: var(--tn-background-secondary, var(--background-secondary));
|
|
border: 1px solid var(--tn-border-color, var(--background-modifier-border));
|
|
border-radius: var(--tn-border-radius-md, 6px);
|
|
padding: var(--tn-spacing-md, 12px);
|
|
text-align: center;
|
|
}
|
|
|
|
.stats-view__drilldown-value {
|
|
font-size: var(--tn-font-size-xl, 20px);
|
|
font-weight: var(--tn-font-weight-bold, 600);
|
|
color: var(--tn-accent-color, var(--interactive-accent));
|
|
margin-bottom: var(--tn-spacing-xs, 4px);
|
|
}
|
|
|
|
.stats-view__drilldown-label {
|
|
font-size: var(--tn-font-size-sm, 12px);
|
|
color: var(--tn-text-muted, var(--text-muted));
|
|
}
|
|
|
|
.stats-view__drilldown-section {
|
|
margin-bottom: var(--tn-spacing-xl, 24px);
|
|
}
|
|
|
|
.stats-view__drilldown-heading {
|
|
font-size: var(--tn-font-size-md, 14px);
|
|
font-weight: var(--tn-font-weight-semibold, 500);
|
|
color: var(--tn-text-normal, var(--text-normal));
|
|
margin-bottom: var(--tn-spacing-md, 12px);
|
|
padding-bottom: var(--tn-spacing-xs, 4px);
|
|
border-bottom: 1px solid var(--tn-border-color, var(--background-modifier-border));
|
|
}
|
|
|
|
/* ================================================
|
|
ACTIVITY CHART
|
|
================================================ */
|
|
|
|
/* Activity chart styles - no plugin scope needed since content is in modal */
|
|
.stats-view__bar-chart {
|
|
display: flex;
|
|
align-items: end;
|
|
gap: 2px;
|
|
height: 50px;
|
|
padding: var(--tn-spacing-sm, 8px);
|
|
background: var(--tn-background-secondary, var(--background-secondary));
|
|
border-radius: var(--tn-border-radius-sm, 4px);
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.stats-view__bar-container {
|
|
display: flex;
|
|
align-items: end;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.stats-view__bar {
|
|
width: 6px;
|
|
background: linear-gradient(to top, var(--tn-accent-color, var(--interactive-accent)), var(--color-accent-2, var(--tn-accent-color, var(--interactive-accent))));
|
|
border-radius: 1px 1px 0 0;
|
|
min-height: 1px;
|
|
transition: opacity 0.2s ease;
|
|
}
|
|
|
|
.stats-view__bar:hover {
|
|
opacity: 0.7;
|
|
}
|
|
|
|
/* ================================================
|
|
TASK LISTS IN DRILL-DOWN
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .stats-view__recent-tasks,
|
|
.tasknotes-plugin .stats-view__task-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-sm);
|
|
max-height: 400px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__recent-task {
|
|
background: var(--tn-background-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-border-radius-sm);
|
|
padding: var(--tn-spacing-sm);
|
|
cursor: var(--cursor);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__recent-task:hover {
|
|
border-color: var(--tn-accent-color);
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__task-title {
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__task-meta {
|
|
font-size: var(--tn-font-size-xs);
|
|
color: var(--tn-text-muted);
|
|
}
|
|
|
|
/* Section headers and task filters */
|
|
.tasknotes-plugin .stats-view__section-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__task-filters {
|
|
display: flex;
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__task-count {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
background: var(--tn-background-modifier-border);
|
|
border-radius: var(--tn-border-radius-sm);
|
|
text-align: center;
|
|
}
|
|
|
|
/* ================================================
|
|
RESPONSIVE ENHANCEMENTS
|
|
================================================ */
|
|
|
|
@media (max-width: 768px) {
|
|
.tasknotes-plugin .stats-view__overview-card,
|
|
.tasknotes-plugin .stats-view__project-item {
|
|
padding: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__time-bar-label {
|
|
min-width: 50px;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__filter-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__custom-dates {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__filter-buttons {
|
|
justify-content: stretch;
|
|
}
|
|
|
|
.tasknotes-plugin .stats-view__filter-button {
|
|
flex: 1;
|
|
}
|
|
}
|
|
|
|
/* ===== SETTINGS-VIEW.CSS ===== */
|
|
/* ================================================
|
|
SETTINGS VIEW - MINIMAL CLEAN STRUCTURE
|
|
================================================ */
|
|
|
|
/* ================================================
|
|
SETTINGS HEADER
|
|
================================================ */
|
|
|
|
.tasknotes-plugin .settings-header {
|
|
display: flex;
|
|
justify-content: flex-start;
|
|
margin-bottom: var(--tn-spacing-md);
|
|
margin-top: calc(-1 * var(--tn-spacing-sm));
|
|
}
|
|
|
|
.tasknotes-plugin .settings-header-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
color: var(--text-accent);
|
|
text-decoration: none;
|
|
font-size: var(--font-ui-small);
|
|
}
|
|
|
|
.tasknotes-plugin .settings-header-link:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.tasknotes-plugin .settings-header-link::after {
|
|
content: "↗";
|
|
font-size: 0.85em;
|
|
}
|
|
|
|
/* ================================================
|
|
TAB NAVIGATION
|
|
================================================ */
|
|
|
|
/* Tab Navigation Container */
|
|
.tasknotes-plugin .settings-view__tab-nav {
|
|
display: flex;
|
|
gap: var(--tn-spacing-xs);
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
padding-bottom: var(--tn-spacing-sm);
|
|
overflow-x: auto;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tasknotes-plugin .settings-view__tab-button {
|
|
white-space: nowrap;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .settings-view__tab-button--active,
|
|
.tasknotes-plugin .settings-view__tab-button.is-active {
|
|
background: var(--interactive-accent) !important;
|
|
color: var(--text-on-accent) !important;
|
|
}
|
|
|
|
/* ================================================
|
|
TAB CONTENT
|
|
================================================ */
|
|
|
|
/* Tab Contents Container */
|
|
.tasknotes-plugin .settings-view__tab-contents {
|
|
position: relative;
|
|
min-height: 400px;
|
|
}
|
|
|
|
/* Tab Content Panel */
|
|
.tasknotes-plugin .settings-view__tab-content {
|
|
display: none;
|
|
}
|
|
|
|
.tasknotes-plugin .settings-view__tab-content--active {
|
|
display: block;
|
|
animation: tn-settings-fade-in 0.2s ease-in-out;
|
|
}
|
|
|
|
@keyframes tn-settings-fade-in {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(8px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
/* ================================================
|
|
TASKNOTES SETTINGS CARD SYSTEM - CLEAN MINIMAL BASE
|
|
================================================ */
|
|
|
|
/* Base Card */
|
|
.tasknotes-settings__card {
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 6px;
|
|
margin-bottom: 12px;
|
|
overflow: visible;
|
|
}
|
|
|
|
.tasknotes-settings__card:hover {
|
|
border-color: var(--interactive-accent);
|
|
}
|
|
|
|
/* Card Header */
|
|
.tasknotes-settings__card-header {
|
|
padding: 12px 16px;
|
|
background: var(--background-secondary);
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
position: relative;
|
|
}
|
|
|
|
.tasknotes-settings__card-header--with-drag-handle {
|
|
padding-left: 40px;
|
|
}
|
|
|
|
.tasknotes-settings__card-info {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.tasknotes-settings__card-primary-text {
|
|
font-weight: 600;
|
|
font-size: 14px;
|
|
color: var(--text-normal);
|
|
margin-bottom: 2px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tasknotes-settings__card-secondary-text {
|
|
font-size: 12px !important;
|
|
color: var(--text-muted) !important;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
line-height: 1.3;
|
|
display: block;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.tasknotes-settings__card-meta {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.tasknotes-settings__card-color-indicator {
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 50%;
|
|
margin-right: 12px;
|
|
border: 2px solid var(--background-primary);
|
|
box-shadow: 0 0 0 1px var(--background-modifier-border);
|
|
}
|
|
|
|
/* Card Content */
|
|
.tasknotes-settings__card-content {
|
|
padding: 16px;
|
|
}
|
|
|
|
.tasknotes-settings__card-config-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.tasknotes-settings__card-config-row:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.tasknotes-settings__card-config-label {
|
|
min-width: 80px;
|
|
font-weight: 500;
|
|
color: var(--text-normal);
|
|
font-size: 13px;
|
|
margin-right: 12px;
|
|
}
|
|
|
|
/* Card Inputs */
|
|
.tasknotes-settings__card-input {
|
|
padding: 8px 12px;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 4px;
|
|
background: var(--background-modifier-form-field);
|
|
color: var(--text-normal);
|
|
font-size: 13px;
|
|
line-height: 1.4;
|
|
min-height: 32px;
|
|
}
|
|
|
|
/* Select dropdowns need extra styling */
|
|
.tasknotes-settings__card-input[type="select"],
|
|
select.tasknotes-settings__card-input {
|
|
padding: 6px 12px;
|
|
line-height: 1.5;
|
|
min-height: 34px;
|
|
}
|
|
|
|
.tasknotes-settings__card-input[type="text"],
|
|
.tasknotes-settings__card-input[type="url"],
|
|
.tasknotes-settings__card-input[type="email"] {
|
|
flex: 0 1 auto;
|
|
min-width: 150px;
|
|
}
|
|
|
|
.tasknotes-settings__card-input[type="checkbox"] {
|
|
width: 16px !important;
|
|
height: 16px !important;
|
|
min-width: 16px !important;
|
|
min-height: 16px !important;
|
|
max-width: 16px !important;
|
|
max-height: 16px !important;
|
|
padding: 0 !important;
|
|
margin: 0 !important;
|
|
flex-shrink: 0 !important;
|
|
align-self: center !important;
|
|
}
|
|
|
|
.tasknotes-settings__card-input[type="color"] {
|
|
width: 40px;
|
|
height: 32px;
|
|
padding: 2px;
|
|
}
|
|
|
|
.tasknotes-settings__card-input[type="number"] {
|
|
width: 80px;
|
|
}
|
|
|
|
.tasknotes-settings__card-input:focus {
|
|
outline: none;
|
|
border-color: var(--interactive-accent);
|
|
}
|
|
|
|
/* Card Actions */
|
|
.tasknotes-settings__card-actions {
|
|
padding: 12px 16px;
|
|
background: var(--background-modifier-form-field);
|
|
border-top: 1px solid var(--background-modifier-border);
|
|
display: flex;
|
|
gap: 8px;
|
|
}
|
|
|
|
.tasknotes-settings__card-action-btn {
|
|
padding: 8px 16px;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 4px;
|
|
background: var(--background-primary);
|
|
color: var(--text-normal);
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
cursor: var(--cursor);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
|
|
.tasknotes-settings__card-action-btn:hover {
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-settings__card-action-btn--primary {
|
|
background: none;
|
|
color: var(--text-on-accent);
|
|
border-color: var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-settings__card-action-btn--primary:hover {
|
|
background: var(--interactive-accent-hover);
|
|
}
|
|
|
|
.tasknotes-settings__card-action-btn--delete {
|
|
background: var(--color-red);
|
|
color: white;
|
|
border-color: var(--color-red);
|
|
}
|
|
|
|
/* Header Actions */
|
|
.tasknotes-settings__card-header-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
}
|
|
|
|
.tasknotes-settings__card-header-btn {
|
|
width: 20px;
|
|
height: 20px;
|
|
border: none !important;
|
|
background: transparent;
|
|
color: var(--text-muted);
|
|
cursor: var(--cursor);
|
|
border-radius: 3px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-shadow: none !important;
|
|
outline: none !important;
|
|
padding: 0;
|
|
}
|
|
|
|
.tasknotes-settings__card-header-btn:focus {
|
|
box-shadow: none !important;
|
|
outline: none !important;
|
|
border: none !important;
|
|
}
|
|
|
|
.tasknotes-settings__card-header-btn:hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-settings__card-header-btn--delete:hover {
|
|
background: var(--color-red);
|
|
color: white;
|
|
}
|
|
|
|
/* Status Badges */
|
|
.tasknotes-settings__card-status-badge {
|
|
padding: 4px 8px;
|
|
border-radius: 12px;
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
background: var(--background-modifier-border);
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.tasknotes-settings__card-status-badge--active {
|
|
background: var(--color-green);
|
|
color: white;
|
|
}
|
|
|
|
.tasknotes-settings__card-status-badge--inactive {
|
|
background: var(--color-red);
|
|
color: white;
|
|
}
|
|
|
|
.tasknotes-settings__card-info-badge {
|
|
padding: 3px 6px;
|
|
border-radius: 10px;
|
|
font-size: 10px;
|
|
font-weight: 500;
|
|
background: var(--background-modifier-border);
|
|
color: var(--text-muted);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* Selected Project Items (chips) */
|
|
.default-projects-list-container {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.tasknotes-settings__project-item {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 4px 8px 4px 12px;
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 16px;
|
|
font-size: 12px;
|
|
color: var(--text-normal);
|
|
transition: all 0.15s ease;
|
|
}
|
|
|
|
.tasknotes-settings__project-item:hover {
|
|
background: var(--background-modifier-hover);
|
|
border-color: var(--background-modifier-border-hover);
|
|
}
|
|
|
|
.tasknotes-settings__project-item span {
|
|
max-width: 200px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tasknotes-settings__project-item button {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 18px;
|
|
height: 18px;
|
|
padding: 0;
|
|
border: none;
|
|
border-radius: 50%;
|
|
background: transparent;
|
|
color: var(--text-muted);
|
|
cursor: pointer;
|
|
transition: all 0.15s ease;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-settings__project-item button:hover {
|
|
background: var(--background-modifier-error);
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
.tasknotes-settings__project-item button svg {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
/* Drag Handle */
|
|
.tasknotes-settings__card-drag-handle {
|
|
position: absolute;
|
|
left: 12px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
width: 20px;
|
|
height: 16px;
|
|
cursor: grab;
|
|
color: var(--text-muted);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 3px;
|
|
transition: all 0.2s ease;
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.tasknotes-settings__card-drag-handle:hover {
|
|
opacity: 1;
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-settings__card-drag-handle:active {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
/* Drag States */
|
|
.tasknotes-settings__card--draggable {
|
|
cursor: grab;
|
|
}
|
|
|
|
.tasknotes-settings__card--dragging {
|
|
opacity: 0.7;
|
|
transform: rotate(1deg);
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
border-color: var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-settings__card--drag-over-top {
|
|
border-top: 2px solid var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-settings__card--drag-over-bottom {
|
|
border-bottom: 2px solid var(--interactive-accent);
|
|
}
|
|
|
|
/* Empty state for card containers */
|
|
.tasknotes-plugin .settings-view .tasknotes-settings__empty-state {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
padding: 2rem;
|
|
background: var(--background-modifier-form-field);
|
|
border: 1px dashed var(--background-modifier-border);
|
|
border-radius: 8px;
|
|
color: var(--text-muted);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.tasknotes-plugin .settings-view .tasknotes-settings__empty-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.tasknotes-plugin .settings-view .tasknotes-settings__empty-text {
|
|
flex: 1;
|
|
}
|
|
|
|
/* ================================================
|
|
COLLAPSIBLE CARD FUNCTIONALITY
|
|
================================================ */
|
|
|
|
/* Collapsible card support */
|
|
.tasknotes-settings__card--collapsible {
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-settings__card--collapsible .tasknotes-settings__card-content,
|
|
.tasknotes-settings__card--collapsible .tasknotes-settings__card-actions {
|
|
transition: all 0.2s ease;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Collapsed state - hide content and actions */
|
|
.tasknotes-settings__card--collapsed .tasknotes-settings__card-content {
|
|
max-height: 0;
|
|
padding-top: 0;
|
|
padding-bottom: 0;
|
|
opacity: 0;
|
|
border: none;
|
|
}
|
|
|
|
.tasknotes-settings__card--collapsed .tasknotes-settings__card-actions {
|
|
max-height: 0;
|
|
padding-top: 0;
|
|
padding-bottom: 0;
|
|
opacity: 0;
|
|
border: none;
|
|
}
|
|
|
|
/* Collapse button styling */
|
|
.tasknotes-settings__card-collapse-btn {
|
|
opacity: 0.7;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-settings__card-collapse-btn:hover {
|
|
opacity: 1;
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
/* Visual indicator for collapsed cards */
|
|
.tasknotes-settings__card--collapsed {
|
|
opacity: 0.9;
|
|
}
|
|
|
|
/* Clickable header styling */
|
|
.tasknotes-settings__card-header--clickable {
|
|
cursor: var(--cursor);
|
|
user-select: none;
|
|
}
|
|
|
|
.tasknotes-settings__card-header--clickable:hover {
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
/* ================================================
|
|
WEBHOOK MODAL STYLES
|
|
================================================ */
|
|
|
|
.tasknotes-webhook-modal {
|
|
max-width: 800px;
|
|
padding: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-md);
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
padding-bottom: var(--tn-spacing-md);
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-icon {
|
|
color: var(--interactive-accent);
|
|
font-size: 1.5rem;
|
|
}
|
|
|
|
.tasknotes-webhook-modal-title {
|
|
margin: 0;
|
|
color: var(--text-normal);
|
|
font-size: 1.25rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.tasknotes-webhook-modal-section {
|
|
margin-bottom: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-subsection-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-sm);
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-subsection-header h3 {
|
|
margin: 0;
|
|
font-size: 1rem;
|
|
font-weight: 600;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-webhook-events-list .setting-item {
|
|
padding: var(--tn-spacing-sm) 0;
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-webhook-events-list .setting-item:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.tasknotes-webhook-transform-help {
|
|
margin-top: var(--tn-spacing-md);
|
|
padding: var(--tn-spacing-md);
|
|
background: var(--background-secondary);
|
|
border-radius: var(--tn-radius-sm);
|
|
border-left: 3px solid var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-webhook-help-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
font-weight: 500;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-webhook-help-list {
|
|
margin: var(--tn-spacing-sm) 0;
|
|
padding-left: var(--tn-spacing-lg);
|
|
color: var(--text-muted);
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
|
|
.tasknotes-webhook-help-list li {
|
|
margin-bottom: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tasknotes-webhook-help-example {
|
|
margin-top: var(--tn-spacing-sm);
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-buttons {
|
|
display: flex;
|
|
gap: var(--tn-spacing-sm);
|
|
justify-content: flex-end;
|
|
margin-top: var(--tn-spacing-xl);
|
|
padding-top: var(--tn-spacing-md);
|
|
border-top: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-lg);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: var(--tn-radius-sm);
|
|
background: var(--background-primary);
|
|
color: var(--text-normal);
|
|
font-size: var(--tn-font-size-sm);
|
|
font-weight: 500;
|
|
cursor: var(--cursor);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn:hover {
|
|
background: var(--background-modifier-hover);
|
|
border-color: var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn.save {
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border-color: var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn.save:hover {
|
|
background: var(--interactive-accent-hover);
|
|
border-color: var(--interactive-accent-hover);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn.cancel {
|
|
background: transparent;
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn.cancel:hover {
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn-icon {
|
|
font-size: 0.9rem;
|
|
line-height: 1;
|
|
}
|
|
|
|
/* Webhook Secret Notice */
|
|
.tasknotes-webhook-secret-notice {
|
|
text-align: center;
|
|
padding: var(--tn-spacing-xl);
|
|
}
|
|
|
|
.tasknotes-webhook-secret-title {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--tn-spacing-sm);
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
font-size: 1.125rem;
|
|
font-weight: 600;
|
|
color: var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-webhook-secret-content {
|
|
margin-bottom: var(--tn-spacing-lg);
|
|
}
|
|
|
|
.tasknotes-webhook-secret-content p {
|
|
margin-bottom: var(--tn-spacing-md);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-webhook-secret-code {
|
|
display: block;
|
|
background: var(--background-modifier-form-field);
|
|
padding: var(--tn-spacing-md);
|
|
border-radius: var(--tn-radius-sm);
|
|
font-family: var(--font-monospace);
|
|
font-size: var(--tn-font-size-sm);
|
|
word-break: break-all;
|
|
user-select: all;
|
|
border: 1px solid var(--background-modifier-border);
|
|
margin: var(--tn-spacing-md) 0;
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
.tasknotes-webhook-secret-code:hover {
|
|
background: var(--background-modifier-hover);
|
|
border-color: var(--interactive-accent);
|
|
}
|
|
|
|
/* ================================================
|
|
HELPER TEXT & WARNING SECTIONS
|
|
================================================ */
|
|
|
|
/* Help sections with lists */
|
|
.tasknotes-settings__help-section {
|
|
background: var(--background-secondary);
|
|
border-radius: 6px;
|
|
padding: 16px;
|
|
margin: 12px 0;
|
|
}
|
|
|
|
.tasknotes-settings__help-section h4 {
|
|
margin: 0 0 12px 0;
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-settings__help-section ul {
|
|
margin: 0;
|
|
padding-left: 20px;
|
|
}
|
|
|
|
.tasknotes-settings__help-section li {
|
|
margin-bottom: 8px;
|
|
font-size: 13px;
|
|
color: var(--text-muted);
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.tasknotes-settings__help-note {
|
|
margin: 12px 0 0 0;
|
|
padding: 12px;
|
|
background: var(--background-modifier-form-field);
|
|
border-radius: 4px;
|
|
font-size: 13px;
|
|
color: var(--text-muted);
|
|
border: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
/* Warning sections */
|
|
.tasknotes-settings__warning {
|
|
background: rgba(var(--color-red-rgb), 0.1);
|
|
border: 1px solid rgba(var(--color-red-rgb), 0.3);
|
|
border-radius: 6px;
|
|
padding: 16px;
|
|
margin: 12px 0;
|
|
font-size: 13px;
|
|
color: var(--text-normal);
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.tasknotes-settings__warning strong {
|
|
color: var(--color-red);
|
|
}
|
|
|
|
/* ================================================
|
|
FIELD MAPPING TABLE - CARD STYLE
|
|
================================================ */
|
|
|
|
.tasknotes-settings__table {
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 8px;
|
|
overflow: hidden;
|
|
margin: 16px 0;
|
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
width: 100%;
|
|
border-collapse: separate;
|
|
border-spacing: 0;
|
|
}
|
|
|
|
.tasknotes-settings__table-header {
|
|
background: var(--background-secondary);
|
|
color: var(--text-normal);
|
|
font-weight: 600;
|
|
font-size: 13px;
|
|
padding: 12px 16px;
|
|
text-align: left;
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 1;
|
|
}
|
|
|
|
.tasknotes-settings__table-header:first-child {
|
|
min-width: 140px;
|
|
width: 35%;
|
|
}
|
|
|
|
.tasknotes-settings__table-header:last-child {
|
|
width: 65%;
|
|
}
|
|
|
|
.tasknotes-settings__table-row {
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-settings__table-row:nth-child(even) {
|
|
background: var(--background-modifier-form-field);
|
|
}
|
|
|
|
.tasknotes-settings__table-row:hover {
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-settings__table-cell {
|
|
padding: 12px 16px;
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
vertical-align: middle;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.tasknotes-settings__table-cell:first-child {
|
|
font-weight: 500;
|
|
color: var(--text-normal);
|
|
background: var(--background-modifier-form-field);
|
|
}
|
|
|
|
.tasknotes-settings__table-cell:last-child {
|
|
background: inherit;
|
|
}
|
|
|
|
/* Remove border from last row */
|
|
.tasknotes-settings__table-row:last-child .tasknotes-settings__table-cell {
|
|
border-bottom: none;
|
|
}
|
|
|
|
/* Field mapping input styling */
|
|
.field-mapping-input {
|
|
width: 100%;
|
|
}
|
|
|
|
.field-mapping-input:hover {
|
|
border-color: var(--interactive-hover);
|
|
}
|
|
|
|
.field-mapping-input::placeholder {
|
|
color: var(--text-faint);
|
|
font-style: italic;
|
|
opacity: 0.7;
|
|
}
|
|
|
|
/* ================================================
|
|
DEFAULT VISIBLE PROPERTIES STYLING
|
|
================================================ */
|
|
|
|
.tasknotes-settings__properties-container {
|
|
margin: 16px 0;
|
|
}
|
|
|
|
.tasknotes-settings__property-group {
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.tasknotes-settings__property-group-header {
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
color: var(--text-muted);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
margin-bottom: 12px;
|
|
padding-bottom: 4px;
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-settings__property-toggles {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
|
|
gap: 8px;
|
|
}
|
|
|
|
.tasknotes-settings__property-toggle {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 6px 0;
|
|
}
|
|
|
|
.tasknotes-settings__property-checkbox {
|
|
width: 16px;
|
|
height: 16px;
|
|
margin: 0;
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
.tasknotes-settings__property-label {
|
|
font-size: 13px;
|
|
color: var(--text-normal);
|
|
cursor: var(--cursor);
|
|
flex: 1;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.tasknotes-settings__property-label:hover {
|
|
color: var(--text-accent);
|
|
}
|
|
|
|
/* ================================================
|
|
COLLAPSIBLE SECTIONS
|
|
================================================ */
|
|
|
|
.tasknotes-settings__collapsible-header {
|
|
cursor: var(--cursor);
|
|
padding: 8px 12px;
|
|
margin: -8px -12px 12px -12px;
|
|
border-radius: 4px;
|
|
transition: background-color 0.2s ease;
|
|
user-select: none;
|
|
}
|
|
|
|
.tasknotes-settings__collapsible-header:hover {
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-settings__collapsible-header-content {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.tasknotes-settings__collapsible-icon {
|
|
font-size: 12px;
|
|
color: var(--text-muted);
|
|
transition: transform 0.2s ease;
|
|
font-family: monospace;
|
|
line-height: 1;
|
|
}
|
|
|
|
.tasknotes-settings__collapsible-title {
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
color: var(--text-normal);
|
|
margin: 0;
|
|
}
|
|
|
|
.tasknotes-settings__collapsible-content {
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
/* Nested collapsible sections (e.g., filter settings within custom fields) */
|
|
.tasknotes-settings__collapsible-section {
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.tasknotes-settings__collapsible-section-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
cursor: var(--cursor);
|
|
padding: 8px 12px;
|
|
margin: 0 -12px 12px -12px;
|
|
border-radius: 4px;
|
|
transition: background-color 0.2s ease;
|
|
user-select: none;
|
|
}
|
|
|
|
.tasknotes-settings__collapsible-section-header:hover {
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-settings__collapsible-section-header-left {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.tasknotes-settings__collapsible-section-title {
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.tasknotes-settings__filter-badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 2px 8px;
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border-radius: 10px;
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.tasknotes-settings__filter-badge svg {
|
|
width: 12px;
|
|
height: 12px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-settings__collapsible-section-chevron {
|
|
display: flex;
|
|
align-items: center;
|
|
color: var(--text-muted);
|
|
transition: transform 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-settings__collapsible-section-chevron svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.tasknotes-settings__collapsible-section-content {
|
|
max-height: none;
|
|
opacity: 1;
|
|
overflow: visible;
|
|
}
|
|
|
|
/* Collapsed state */
|
|
.tasknotes-settings__collapsible-section--collapsed .tasknotes-settings__collapsible-section-content {
|
|
max-height: 0;
|
|
opacity: 0;
|
|
overflow: hidden;
|
|
padding-top: 0;
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
.tasknotes-settings__collapsible-section--collapsed .tasknotes-settings__collapsible-section-chevron {
|
|
transform: rotate(-90deg);
|
|
}
|
|
|
|
/* ================================================
|
|
ICON INPUT WITH SUGGESTIONS
|
|
================================================ */
|
|
|
|
/* Icon input container with preview */
|
|
.tasknotes-plugin .icon-input-container {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
flex: 1;
|
|
}
|
|
|
|
.tasknotes-plugin .icon-input-preview {
|
|
display: none;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 28px;
|
|
height: 28px;
|
|
border-radius: var(--tn-radius-sm);
|
|
background: var(--background-modifier-hover);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-plugin .icon-input-preview svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-plugin .icon-input {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
/* Icon suggestion dropdown items */
|
|
.suggestion-item.icon-suggestion-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--size-4-2);
|
|
padding: var(--size-4-1) var(--size-4-2);
|
|
}
|
|
|
|
.icon-suggestion-preview {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 24px;
|
|
height: 24px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.icon-suggestion-preview svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.icon-suggestion-text {
|
|
color: var(--text-normal);
|
|
font-size: var(--font-ui-small);
|
|
}
|
|
|
|
/* Highlight matched icon in suggestions */
|
|
.suggestion-item.icon-suggestion-item.is-selected .icon-suggestion-preview svg {
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
.suggestion-item.icon-suggestion-item.is-selected .icon-suggestion-text {
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
/* ================================================
|
|
ACCESSIBILITY & REDUCED MOTION
|
|
================================================ */
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.tasknotes-plugin .settings-view__tab-content--active {
|
|
animation: none;
|
|
}
|
|
|
|
.tasknotes-settings__card,
|
|
.tasknotes-settings__card-drag-handle {
|
|
transition: none;
|
|
}
|
|
}
|
|
|
|
/* ===== WEBHOOK-SETTINGS.CSS ===== */
|
|
/*
|
|
* Webhook Settings UI Styles
|
|
* Modern, clean styling for the webhook configuration interface
|
|
*/
|
|
|
|
/* Webhook Container */
|
|
.tasknotes-webhooks-container {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1rem;
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
/* Empty State */
|
|
.tasknotes-webhooks-empty-state {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
padding: 2rem;
|
|
background: var(--background-modifier-form-field);
|
|
border: 1px dashed var(--background-modifier-border);
|
|
border-radius: 8px;
|
|
color: var(--text-muted);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.tasknotes-webhooks-empty-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.tasknotes-webhooks-empty-text {
|
|
flex: 1;
|
|
}
|
|
|
|
/* Webhook Card */
|
|
.tasknotes-webhook-card {
|
|
background: var(--background-primary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 8px;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-webhook-card:hover {
|
|
border-color: var(--interactive-accent);
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
/* Webhook Header */
|
|
.tasknotes-webhook-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 1rem 1.25rem;
|
|
background: var(--background-secondary);
|
|
border-bottom: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-webhook-url-section {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.tasknotes-webhook-url-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
color: var(--text-muted);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-webhook-url {
|
|
font-family: var(--font-monospace);
|
|
font-size: 0.85rem;
|
|
color: var(--text-normal);
|
|
font-weight: 500;
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tasknotes-webhook-status-section {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-webhook-status-indicator {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.375rem;
|
|
padding: 0.25rem 0.75rem;
|
|
border-radius: 16px;
|
|
font-size: 0.8rem;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.tasknotes-webhook-status-indicator.active {
|
|
background: var(--color-green-rgb);
|
|
background: rgba(var(--color-green-rgb), 0.15);
|
|
color: var(--color-green);
|
|
}
|
|
|
|
.tasknotes-webhook-status-indicator.inactive {
|
|
background: var(--color-red-rgb);
|
|
background: rgba(var(--color-red-rgb), 0.15);
|
|
color: var(--color-red);
|
|
}
|
|
|
|
.tasknotes-webhook-status-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.tasknotes-webhook-status-text {
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* Webhook Content */
|
|
.tasknotes-webhook-content {
|
|
padding: 1rem 1.25rem;
|
|
}
|
|
|
|
.tasknotes-webhook-detail-row {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 0.75rem;
|
|
margin-bottom: 0.75rem;
|
|
padding: 0.5rem 0;
|
|
}
|
|
|
|
.tasknotes-webhook-detail-row:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.tasknotes-webhook-detail-row.warning {
|
|
background: rgba(var(--color-yellow-rgb), 0.1);
|
|
border-radius: 4px;
|
|
padding: 0.5rem 0.75rem;
|
|
margin-left: -0.75rem;
|
|
margin-right: -0.75rem;
|
|
}
|
|
|
|
.tasknotes-webhook-detail-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
color: var(--text-muted);
|
|
margin-top: 1px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-webhook-detail-label {
|
|
font-weight: 500;
|
|
color: var(--text-normal);
|
|
min-width: 5rem;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-webhook-detail-value {
|
|
color: var(--text-muted);
|
|
word-break: break-all;
|
|
flex: 1;
|
|
}
|
|
|
|
.tasknotes-webhook-detail-warning {
|
|
color: var(--color-yellow);
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* Webhook Statistics */
|
|
.tasknotes-webhook-stats {
|
|
display: flex;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.tasknotes-webhook-stat-success,
|
|
.tasknotes-webhook-stat-failure {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.25rem;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.tasknotes-webhook-stat-success {
|
|
color: var(--color-green);
|
|
}
|
|
|
|
.tasknotes-webhook-stat-failure {
|
|
color: var(--color-red);
|
|
}
|
|
|
|
.tasknotes-webhook-stat-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
/* Webhook Actions */
|
|
.tasknotes-webhook-actions {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
padding: 1rem 1.25rem;
|
|
background: var(--background-modifier-form-field);
|
|
border-top: 1px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-webhook-action-btn {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
padding: 0.5rem 1rem;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 4px;
|
|
background: var(--background-primary);
|
|
color: var(--text-normal);
|
|
font-size: 0.85rem;
|
|
cursor: var(--cursor);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-webhook-action-btn:hover {
|
|
background: var(--background-modifier-hover);
|
|
border-color: var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-webhook-action-btn.enable {
|
|
background: var(--color-green);
|
|
color: white;
|
|
border-color: var(--color-green);
|
|
}
|
|
|
|
.tasknotes-webhook-action-btn.enable:hover {
|
|
background: var(--color-green);
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.tasknotes-webhook-action-btn.disable {
|
|
background: var(--color-orange);
|
|
color: white;
|
|
border-color: var(--color-orange);
|
|
}
|
|
|
|
.tasknotes-webhook-action-btn.disable:hover {
|
|
background: var(--color-orange);
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.tasknotes-webhook-action-btn.delete {
|
|
background: var(--color-red);
|
|
color: white;
|
|
border-color: var(--color-red);
|
|
}
|
|
|
|
.tasknotes-webhook-action-btn.delete:hover {
|
|
background: var(--color-red);
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.tasknotes-webhook-action-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.tasknotes-webhook-action-text {
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* Webhook Modal */
|
|
.tasknotes-webhook-modal .modal {
|
|
width: auto;
|
|
max-width: 700px;
|
|
}
|
|
|
|
.tasknotes-webhook-modal .modal-content {
|
|
width: 600px;
|
|
max-width: 90vw;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.tasknotes-webhook-modal * {
|
|
box-sizing: border-box;
|
|
max-width: 100%;
|
|
}
|
|
|
|
/* Better styling for Settings in modal */
|
|
.tasknotes-webhook-modal .setting-item {
|
|
padding: 1rem;
|
|
margin-bottom: 0.75rem;
|
|
background: var(--background-modifier-form-field);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 8px;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-webhook-modal .setting-item:hover {
|
|
border-color: var(--interactive-accent);
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-webhook-modal .setting-item:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.tasknotes-webhook-modal .setting-item-info {
|
|
margin-right: 1rem;
|
|
}
|
|
|
|
.tasknotes-webhook-modal .setting-item-name {
|
|
font-weight: 500;
|
|
margin-bottom: 0.25rem;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
.tasknotes-webhook-modal .setting-item-description {
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.tasknotes-webhook-modal-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
margin-bottom: 2rem;
|
|
padding-bottom: 1.25rem;
|
|
border-bottom: 2px solid var(--background-modifier-border);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
color: var(--interactive-accent);
|
|
padding: 0.5rem;
|
|
background: rgba(var(--interactive-accent-rgb), 0.1);
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.tasknotes-webhook-modal-title {
|
|
margin: 0;
|
|
color: var(--text-normal);
|
|
font-size: 1.4rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.tasknotes-webhook-modal-section {
|
|
margin-bottom: 2rem;
|
|
width: 100%;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tasknotes-webhook-modal-subsection-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
margin-bottom: 1.5rem;
|
|
padding: 0.75rem 0;
|
|
border-bottom: 1px solid var(--background-modifier-border-hover);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-subsection-header span {
|
|
color: var(--interactive-accent);
|
|
padding: 0.25rem;
|
|
background: rgba(var(--interactive-accent-rgb), 0.1);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.tasknotes-webhook-modal-subsection-header h3 {
|
|
margin: 0;
|
|
font-size: 1.1rem;
|
|
font-weight: 600;
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
|
|
/* Events List */
|
|
.tasknotes-webhook-events-list {
|
|
margin-top: 1rem;
|
|
max-width: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
|
|
/* Transform Help */
|
|
.tasknotes-webhook-transform-help {
|
|
background: var(--background-secondary);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 8px;
|
|
padding: 1.25rem;
|
|
margin-top: 1rem;
|
|
max-width: 100%;
|
|
overflow-wrap: break-word;
|
|
word-wrap: break-word;
|
|
}
|
|
|
|
.tasknotes-webhook-help-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
margin-bottom: 0.75rem;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.tasknotes-webhook-help-list {
|
|
margin: 0.75rem 0;
|
|
padding-left: 1.25rem;
|
|
}
|
|
|
|
.tasknotes-webhook-help-list li {
|
|
margin-bottom: 0.5rem;
|
|
line-height: 1.4;
|
|
word-wrap: break-word;
|
|
overflow-wrap: break-word;
|
|
}
|
|
|
|
.tasknotes-webhook-help-example {
|
|
margin-top: 0.75rem;
|
|
padding-top: 0.75rem;
|
|
border-top: 1px solid var(--background-modifier-border);
|
|
font-size: 0.9rem;
|
|
word-wrap: break-word;
|
|
overflow-wrap: break-word;
|
|
}
|
|
|
|
/* Modal Buttons */
|
|
.tasknotes-webhook-modal-buttons {
|
|
display: flex;
|
|
gap: 0.75rem;
|
|
justify-content: flex-end;
|
|
margin-top: 2rem;
|
|
padding-top: 1.5rem;
|
|
border-top: 1px solid var(--background-modifier-border);
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
padding: 0.875rem 1.5rem;
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 6px;
|
|
background: var(--background-primary);
|
|
color: var(--text-normal);
|
|
font-size: 0.9rem;
|
|
font-weight: 500;
|
|
cursor: var(--cursor);
|
|
transition: all 0.2s ease;
|
|
white-space: nowrap;
|
|
min-width: 0;
|
|
flex-shrink: 0;
|
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn:hover {
|
|
background: var(--background-modifier-hover);
|
|
border-color: var(--interactive-accent);
|
|
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn.cancel {
|
|
background: var(--background-secondary);
|
|
border-color: var(--background-modifier-border-hover);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn.cancel:hover {
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn.save {
|
|
background: var(--interactive-accent);
|
|
color: var(--text-on-accent);
|
|
border-color: var(--interactive-accent);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn.save:hover {
|
|
background: var(--interactive-accent-hover);
|
|
border-color: var(--interactive-accent-hover);
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
/* Secret Notice */
|
|
.tasknotes-webhook-secret-notice {
|
|
padding: 1rem;
|
|
}
|
|
|
|
.tasknotes-webhook-secret-title {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
margin-bottom: 0.75rem;
|
|
font-weight: 500;
|
|
color: var(--color-green);
|
|
}
|
|
|
|
.tasknotes-webhook-secret-content {
|
|
font-size: 0.9rem;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.tasknotes-webhook-secret-code {
|
|
background: var(--background-modifier-form-field);
|
|
border: 1px solid var(--background-modifier-border);
|
|
border-radius: 3px;
|
|
padding: 0.2rem 0.4rem;
|
|
font-family: var(--font-monospace);
|
|
font-size: 0.85rem;
|
|
margin: 0 0.25rem;
|
|
}
|
|
|
|
/* Responsive Design */
|
|
@media (max-width: 768px) {
|
|
.tasknotes-webhook-modal .modal-content {
|
|
width: 95vw;
|
|
}
|
|
|
|
.tasknotes-webhook-card {
|
|
margin: 0 -0.5rem;
|
|
}
|
|
|
|
.tasknotes-webhook-header {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
.tasknotes-webhook-url-section {
|
|
width: 100%;
|
|
}
|
|
|
|
.tasknotes-webhook-modal-buttons {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.tasknotes-webhook-modal-btn {
|
|
width: 100%;
|
|
justify-content: center;
|
|
}
|
|
|
|
.tasknotes-webhook-stats {
|
|
flex-direction: column;
|
|
gap: 0.5rem;
|
|
}
|
|
}
|
|
|
|
/* Dark theme adjustments */
|
|
.theme-dark .tasknotes-webhook-card:hover {
|
|
box-shadow: 0 2px 8px rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
/* Accessibility improvements */
|
|
.tasknotes-webhook-action-btn:focus,
|
|
.tasknotes-webhook-modal-btn:focus {
|
|
outline: 2px solid var(--interactive-accent);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Animation for status changes */
|
|
.tasknotes-webhook-status-indicator {
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.tasknotes-webhook-card {
|
|
transition: all 0.2s ease, transform 0.2s ease;
|
|
}
|
|
|
|
.tasknotes-webhook-card:hover {
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
/* ===== STATUS-BAR.CSS ===== */
|
|
/* TaskNotes Status Bar Styles */
|
|
|
|
.tasknotes-status-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 2px 6px;
|
|
border-radius: 4px;
|
|
background: transparent;
|
|
transition: background-color 0.2s ease;
|
|
min-width: 0; /* Allow text truncation */
|
|
}
|
|
|
|
.tasknotes-status-bar:hover {
|
|
background: var(--background-modifier-hover);
|
|
}
|
|
|
|
.tasknotes-status-icon {
|
|
font-size: 12px;
|
|
line-height: 1;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tasknotes-status-text {
|
|
font-size: 12px;
|
|
line-height: 1;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
color: var(--text-muted);
|
|
max-width: 200px; /* Limit width to prevent status bar from being too wide */
|
|
}
|
|
|
|
.tasknotes-status-bar:hover .tasknotes-status-text {
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* Responsive behavior for smaller screens */
|
|
@media (max-width: 768px) {
|
|
.tasknotes-status-text {
|
|
max-width: 120px;
|
|
}
|
|
}
|
|
|
|
/* Dark theme adjustments */
|
|
.theme-dark .tasknotes-status-bar {
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.theme-dark .tasknotes-status-bar:hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* Light theme adjustments */
|
|
.theme-light .tasknotes-status-bar {
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.theme-light .tasknotes-status-bar:hover {
|
|
background: var(--background-modifier-hover);
|
|
color: var(--text-normal);
|
|
}
|
|
|
|
/* ===== BASES-VIEWS.CSS ===== */
|
|
/* ================================================
|
|
BASES VIEWS - TaskNotes Integration Styles
|
|
================================================ */
|
|
|
|
/* ================================================
|
|
CUSTOM NEW TASK BUTTON
|
|
Toggle between native and TaskNotes "New" button
|
|
================================================ */
|
|
|
|
/* Hide TaskNotes button by default */
|
|
.tn-bases-new-task-btn {
|
|
display: none;
|
|
}
|
|
|
|
/* When a TaskNotes view is active: show our button, hide native */
|
|
.tasknotes-view-active .tn-bases-new-task-btn {
|
|
display: flex;
|
|
}
|
|
|
|
.tasknotes-view-active .bases-toolbar-new-item-menu {
|
|
display: none;
|
|
}
|
|
|
|
/* Bases TaskNotes List View Container */
|
|
.tn-bases-tasknotes-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
width: 100%;
|
|
padding: var(--tn-spacing-sm);
|
|
}
|
|
|
|
/* Task Group Section (matches TaskListView structure) */
|
|
.tn-bases-tasknotes-list .task-section.task-group {
|
|
margin-bottom: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Group Header */
|
|
.tn-bases-tasknotes-list .task-group-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--tn-spacing-xs);
|
|
justify-content: flex-start;
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-md) var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
position: relative;
|
|
font-size: var(--tn-font-size-lg);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
letter-spacing: 0.01em;
|
|
line-height: 1.4;
|
|
cursor: var(--cursor);
|
|
}
|
|
|
|
/* Count element within group headers */
|
|
.tn-bases-tasknotes-list .task-group-header .agenda-view__item-count {
|
|
margin-left: auto;
|
|
margin-right: 0;
|
|
}
|
|
|
|
/* Toggle button for groups */
|
|
.tn-bases-tasknotes-list .task-group-toggle {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 20px;
|
|
height: 20px;
|
|
flex-shrink: 0;
|
|
border: none;
|
|
background: transparent;
|
|
color: var(--tn-text-normal);
|
|
font-size: 14px;
|
|
line-height: 1;
|
|
cursor: var(--cursor);
|
|
padding: 0;
|
|
}
|
|
|
|
/* Default expanded state - chevron pointing down */
|
|
.tn-bases-tasknotes-list .task-group .task-group-toggle svg {
|
|
color: var(--tn-text-normal);
|
|
transition: transform 0.2s ease;
|
|
transform: rotate(90deg) !important;
|
|
}
|
|
|
|
/* Collapsed state - chevron pointing right */
|
|
.tn-bases-tasknotes-list .task-group.is-collapsed .task-group-toggle svg {
|
|
transform: rotate(0deg) !important;
|
|
}
|
|
|
|
/* Hide task cards when collapsed */
|
|
.tn-bases-tasknotes-list .task-group.is-collapsed .task-cards {
|
|
display: none;
|
|
}
|
|
|
|
/* Sub-group header styling */
|
|
.tn-tasknoteTaskList .task-group[data-level="sub"] {
|
|
padding-left: 16px; /* Subtle indentation */
|
|
margin-bottom: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tn-tasknoteTaskList .task-group[data-level="sub"] .task-group-header {
|
|
font-size: 0.95em;
|
|
font-weight: 500; /* Less bold than primary */
|
|
color: var(--tn-text-muted);
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tn-tasknoteTaskList .task-group[data-level="sub"] .task-group-toggle {
|
|
opacity: 0.8; /* Slightly more subtle chevron */
|
|
}
|
|
|
|
.tn-tasknoteTaskList .task-group[data-level="sub"] .task-group-toggle svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
/* Task cards container */
|
|
.tn-bases-tasknotes-list .tasks-container.task-cards {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
padding-left: var(--tn-spacing-md);
|
|
}
|
|
|
|
/* Empty state */
|
|
.tn-bases-empty {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: var(--tn-spacing-xl);
|
|
text-align: center;
|
|
color: var(--tn-text-muted);
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-md);
|
|
margin: var(--tn-spacing-lg) 0;
|
|
}
|
|
|
|
/* Kanban Board Styles */
|
|
.tn-bases-kanban-board {
|
|
display: flex;
|
|
gap: var(--tn-spacing-md);
|
|
overflow-x: auto;
|
|
padding: var(--tn-spacing-sm);
|
|
min-height: 400px;
|
|
}
|
|
|
|
.tn-bases-kanban-column {
|
|
flex: 0 0 280px;
|
|
min-width: 280px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
background: var(--tn-bg-secondary);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-radius: var(--tn-radius-md);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tn-bases-kanban-column-header {
|
|
padding: var(--tn-spacing-md);
|
|
background: var(--tn-bg-primary);
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.tn-bases-kanban-column-name {
|
|
font-size: var(--tn-font-size-md);
|
|
}
|
|
|
|
.tn-bases-kanban-column-count {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
background: var(--tn-bg-secondary);
|
|
padding: 2px 8px;
|
|
border-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
.tn-bases-kanban-tasks {
|
|
flex: 1;
|
|
padding: var(--tn-spacing-sm);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
overflow-y: auto;
|
|
}
|
|
|
|
/* Drag and drop styles */
|
|
.tn-bases-kanban-tasks.drag-over {
|
|
background: var(--tn-interactive-hover);
|
|
border: 2px dashed var(--tn-interactive-accent);
|
|
border-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
/* Bases Calendar List View - minimalist styling */
|
|
.fc-event-default-list {
|
|
padding: var(--tn-spacing-xs) var(--tn-spacing-sm);
|
|
margin: var(--tn-spacing-xs) 0;
|
|
background: transparent;
|
|
border: none;
|
|
border-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
/* Style FullCalendar list view structure */
|
|
#bases-calendar .fc-list {
|
|
background: transparent;
|
|
}
|
|
|
|
#bases-calendar .fc-list-table {
|
|
background: transparent;
|
|
}
|
|
|
|
#bases-calendar .fc-list-event {
|
|
background: transparent;
|
|
border: none;
|
|
}
|
|
|
|
#bases-calendar .fc-list-event:hover {
|
|
background: var(--tn-interactive-hover);
|
|
}
|
|
|
|
#bases-calendar .fc-list-day-cushion {
|
|
background: transparent;
|
|
padding: var(--tn-spacing-sm) var(--tn-spacing-xs);
|
|
border-bottom: 1px solid var(--tn-divider-color);
|
|
font-weight: var(--tn-font-weight-medium);
|
|
}
|
|
|
|
#bases-calendar .fc-list-day {
|
|
background: transparent;
|
|
}
|
|
|
|
/* Override FullCalendar's bright white border color in dark mode */
|
|
.theme-dark #bases-calendar.fc-theme-standard {
|
|
--fc-border-color: var(--background-modifier-border);
|
|
}
|
|
|
|
/* Responsive design for Bases views */
|
|
@media (max-width: 768px) {
|
|
.tn-bases-kanban-board {
|
|
gap: var(--tn-spacing-sm);
|
|
}
|
|
|
|
.tn-bases-kanban-column {
|
|
flex: 0 0 240px;
|
|
min-width: 240px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.tn-bases-tasknotes-list .task-group-header {
|
|
font-size: var(--tn-font-size-md);
|
|
padding: var(--tn-spacing-sm) 0 var(--tn-spacing-xs);
|
|
}
|
|
|
|
.tn-bases-kanban-column {
|
|
flex: 0 0 200px;
|
|
min-width: 200px;
|
|
}
|
|
}
|
|
|
|
/* ================================================
|
|
SWIMLANE KANBAN LAYOUT
|
|
================================================ */
|
|
|
|
/* Board with swimlanes - use CSS Grid instead of flexbox */
|
|
.kanban-view__board--swimlanes {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0;
|
|
overflow: auto;
|
|
padding: var(--tn-spacing-sm);
|
|
min-height: 400px;
|
|
}
|
|
|
|
/* Each swimlane row */
|
|
.kanban-view__swimlane-row {
|
|
display: grid;
|
|
/* First column is the swimlane label with fixed width, rest are kanban columns */
|
|
grid-template-columns: var(--kanban-swimlane-label-width, 120px);
|
|
grid-auto-columns: var(--kanban-column-width, 280px);
|
|
grid-auto-flow: column;
|
|
gap: 1px;
|
|
background: var(--tn-border-color);
|
|
border: 1px solid var(--tn-border-color);
|
|
border-bottom: none;
|
|
min-width: max-content;
|
|
}
|
|
|
|
/* Last row gets bottom border */
|
|
.kanban-view__swimlane-row:last-child {
|
|
border-bottom: 1px solid var(--tn-border-color);
|
|
}
|
|
|
|
/* Header row styling */
|
|
.kanban-view__swimlane-row--header {
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 10;
|
|
background: var(--tn-bg-primary);
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
}
|
|
|
|
/* Swimlane label cell (leftmost column) */
|
|
.kanban-view__swimlane-label {
|
|
background: var(--tn-bg-secondary);
|
|
padding: var(--tn-spacing-md);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
align-items: flex-start;
|
|
justify-content: center;
|
|
border-right: 1px solid var(--tn-border-color);
|
|
position: sticky;
|
|
left: 0;
|
|
z-index: 5;
|
|
}
|
|
|
|
/* Swimlane title */
|
|
.kanban-view__swimlane-title {
|
|
font-weight: var(--tn-font-weight-medium);
|
|
color: var(--tn-text-normal);
|
|
font-size: var(--tn-font-size-md);
|
|
}
|
|
|
|
/* Swimlane task count */
|
|
.kanban-view__swimlane-count {
|
|
font-size: var(--tn-font-size-sm);
|
|
color: var(--tn-text-muted);
|
|
background: var(--tn-bg-primary);
|
|
padding: 2px 6px;
|
|
border-radius: var(--tn-radius-sm);
|
|
}
|
|
|
|
/* Column header cell in header row */
|
|
.kanban-view__column-header-cell {
|
|
background: var(--tn-bg-secondary);
|
|
padding: var(--tn-spacing-md);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
text-align: center;
|
|
cursor: grab;
|
|
user-select: none;
|
|
transition: all var(--tn-transition-fast);
|
|
gap: var(--tn-spacing-xs);
|
|
}
|
|
|
|
.kanban-view__column-header-cell:active {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
.kanban-view__column-header-cell--dragging {
|
|
opacity: 0.5;
|
|
transform: rotate(2deg);
|
|
box-shadow: var(--tn-shadow-medium);
|
|
}
|
|
|
|
.kanban-view__column-header-cell .kanban-view__column-title {
|
|
font-size: var(--tn-font-size-md);
|
|
font-weight: var(--tn-font-weight-semibold);
|
|
color: var(--tn-text-normal);
|
|
}
|
|
|
|
/* Individual swimlane column cells (data cells) */
|
|
.kanban-view__swimlane-column {
|
|
background: var(--tn-bg-primary);
|
|
padding: var(--tn-spacing-sm);
|
|
min-height: 100px;
|
|
max-height: var(--kanban-swimlane-max-height, 600px);
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
/* Tasks container within each cell */
|
|
.kanban-view__swimlane-column .kanban-view__tasks-container {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--tn-spacing-xs);
|
|
flex: 1;
|
|
overflow-y: auto;
|
|
min-height: 0;
|
|
}
|
|
|
|
/* Drag over state for swimlane cells */
|
|
.kanban-view__swimlane-column--dragover {
|
|
background: var(--tn-interactive-hover);
|
|
outline: 2px dashed var(--tn-interactive-accent);
|
|
outline-offset: -2px;
|
|
}
|
|
|
|
/* Responsive adjustments for swimlanes */
|
|
@media (max-width: 1200px) {
|
|
.kanban-view__swimlane-row > :first-child {
|
|
width: 150px;
|
|
min-width: 150px;
|
|
}
|
|
|
|
.kanban-view__swimlane-label {
|
|
padding: var(--tn-spacing-sm);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.kanban-view__swimlane-row > :first-child {
|
|
width: 120px;
|
|
min-width: 120px;
|
|
}
|
|
|
|
.kanban-view__swimlane-title {
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
|
|
.kanban-view__column-header-cell .kanban-view__column-title {
|
|
font-size: var(--tn-font-size-sm);
|
|
}
|
|
}
|
|
|