callumalpass_tasknotes/styles
Callum Alpass 24eeb4a92b feat: Implement task reminders system with iCalendar VALARM support
## New Features

### Core Reminder System
- Add `reminders` field to TaskInfo interface following iCalendar VALARM spec
- Support both relative (`-PT15M`) and absolute (`2025-10-26T09:00:00`) reminders
- Implement reminder data mapping in FieldMapper and MinimalNativeCache
- Add reminders to task creation and edit workflows

### User Interface Components
- **ReminderModal**: Complete modal for managing task reminders
  - Add/remove relative and absolute reminders
  - Visual forms with date/time pickers and duration controls
  - Real-time preview and validation
- **ReminderContextMenu**: Quick access menu for common reminder actions
  - Pre-configured options (5min, 15min, 1hr, 1day before)
  - Context-aware based on task due/scheduled dates
- **Task Cards**: Bell icon indicators for tasks with reminders
  - Click to open reminder management modal
  - Tooltip showing reminder count
  - Proper CSS positioning to avoid icon overlap

### Modal Enhancements
- Add reminder icons to TaskCreationModal and TaskEditModal action bars
- Enhanced event system for real-time UI updates
- Support for reminder preview changes during editing

### Notification Service
- NotificationService foundation for future reminder notifications
- Settings for notification preferences (system vs in-app)
- Integration points for reminder processing

## Technical Implementation

### Data Layer
- Extended TaskInfo with optional `reminders: Reminder[]` field
- Updated FieldMapper to handle reminder array serialization
- Modified MinimalNativeCache and helpers to include reminders in task extraction
- Enhanced TaskService to support reminder CRUD operations

### Event System
- Enhanced ReminderModal with comprehensive event emission
- `reminder-changed` events for saved changes
- `reminder-preview-changed` events for real-time feedback
- Proper cancellation handling and state reset

### Styling
- New reminder-modal.css for modal components
- Updated task-card-bem.css with proper icon positioning
- BEM methodology for consistent component styling
- Responsive design considerations

## Bug Fixes
- Fix icon overlap on task cards by adjusting CSS positioning:
  - Recurring indicator: `right: 26px`
  - Reminder indicator: `right: 44px`
  - Project indicator: `right: 62px`
  - Chevron: `right: 80px`
- Ensure reminders field properly propagates through cache system
- Add TypeScript type safety for reminder data structures

## Settings Integration
- Add notification preferences to settings panel
- Field mapping support for custom reminder property names
- Backward compatibility with existing task data

This implementation provides a complete foundation for task reminders while
maintaining full backward compatibility and following the plugin's architectural patterns.
2025-08-07 13:01:04 +10:00
..
advanced-calendar-view.css fix: Adjust calendar header toolbar spacing 2025-08-03 12:40:29 +10:00
agenda-view.css refactor: Implement consistent button styling system throughout plugin 2025-07-27 09:30:59 +10:00
base.css Refactor event listeners, modals, and styles to improve consistency and maintainability 2025-06-21 08:48:50 +10:00
calendar-view.css style: Implement borderless button design system across all components 2025-07-27 09:30:59 +10:00
date-picker.css Implement enhanced date picker modal and update task modals with refined UI and functionality 2025-06-27 07:29:14 +10:00
filter-bar-bem.css feat: Add visual state indicators for active saved views in FilterBar 2025-07-28 22:20:29 +10:00
index.css Complete build system cleanup by removing legacy CSS files 2025-06-09 12:54:58 +10:00
kanban-view.css refactor: Implement consistent button styling system throughout plugin 2025-07-27 09:30:59 +10:00
modal-bem.css refactor: Implement consistent button styling system throughout plugin 2025-07-27 09:30:59 +10:00
note-card-bem.css style: Apply consistent minimalist styling across UI components 2025-07-26 20:35:18 +10:00
notes-view.css refactor: Implement consistent button styling system throughout plugin 2025-07-27 09:30:59 +10:00
pomodoro-stats-view.css refactor: Implement consistent button styling system throughout plugin 2025-07-27 09:30:59 +10:00
pomodoro-view.css feat: Enhance PomodoroView responsive design with height-aware scaling 2025-08-04 13:24:51 +10:00
project-note-subtasks.css style: Complete borderless button system implementation 2025-07-27 09:30:59 +10:00
README.md feat: Remove legacy class names, cleanup legacy styles, and update code for BEM consistency 2025-06-09 13:01:19 +10:00
reminder-modal.css feat: Implement task reminders system with iCalendar VALARM support 2025-08-07 13:01:04 +10:00
settings-view.css feat: Add drag and drop reordering for status configurations (#291) 2025-07-27 10:31:44 +10:00
status-bar.css feat: status bar to display currently tracked tasks (#114) 2025-06-30 21:58:35 +10:00
task-action-palette-modal.css Refactor Task Link/UI Updates and Enhance Status Handling 2025-06-22 19:33:03 +10:00
task-card-bem.css feat: Implement task reminders system with iCalendar VALARM support 2025-08-07 13:01:04 +10:00
task-inline-widget.css fix: Remove borders and movement from UI buttons 2025-07-20 19:02:01 +10:00
task-list-view.css refactor: Implement consistent button styling system throughout plugin 2025-07-27 09:30:59 +10:00
task-modal.css fix: Stabilize Open note button hover behavior 2025-07-27 13:39:46 +10:00
task-selector-modal.css feat: implement comprehensive projects system with note-based linking 2025-07-05 18:54:39 +10:00
unscheduled-tasks-selector-modal.css feat: implement comprehensive projects system with note-based linking 2025-07-05 18:54:39 +10:00
utilities.css style: Improve advanced calendar view borders and styling 2025-07-28 22:20:29 +10:00
UTILITIES.md Refactor and add complete BEM‐based, scoped CSS for TaskNotes 2025-06-09 12:20:19 +10:00
UTILITY-USAGE-GUIDE.md Refactor and add complete BEM‐based, scoped CSS for TaskNotes 2025-06-09 12:20:19 +10:00
variables.css style: Implement borderless button design system across all components 2025-07-27 09:30:59 +10:00

CSS Build System

This directory contains the modular CSS source files for the TaskNotes plugin. The main styles.css file is generated from these source files during the build process.

File Structure

Core System Files

  • variables.css - CSS custom properties and design system variables
  • utilities.css - Utility classes for layout, spacing, typography, and states
  • base.css - Basic styles, animations, card components, and layout
  • components.css - Reusable UI components, utilities, and modals

BEM Component Files (NEW)

  • task-card-bem.css - BEM TaskCard component with proper scoping
  • note-card-bem.css - BEM NoteCard component with proper scoping
  • filter-bar-bem.css - BEM FilterBar component with proper scoping
  • modal-bem.css - BEM Modal components with proper scoping

View-Specific Files (NEW)

  • task-list-view.css - BEM TaskListView component
  • calendar-view.css - BEM CalendarView component
  • kanban-view.css - BEM KanbanView component
  • agenda-view.css - BEM AgendaView component
  • notes-view.css - BEM NotesView component
  • pomodoro-view.css - BEM PomodoroView component
  • pomodoro-stats-view.css - BEM PomodoroStatsView component
  • settings-view.css - BEM SettingsView component

Legacy Files (Remaining)

  • pomodoro.css - Pomodoro view specific styles (to be deprecated)
  • settings.css - Settings page styles (to be deprecated)
  • tasks-legacy.css - Legacy task styles for backwards compatibility

Documentation Files

  • index.css - Documentation file (not included in build)
  • README.md - This documentation file
  • UTILITIES.md - Utility class documentation
  • UTILITY-USAGE-GUIDE.md - Guide for using utility classes

Development Workflow

Making Changes

  1. Edit the appropriate CSS file in this directory
  2. Run npm run build-css to regenerate the main styles.css file
  3. Test your changes in the application
  4. Commit your changes to the source files (the generated styles.css is ignored by git)

Build Commands

  • npm run build-css - Build CSS only
  • npm run dev - Build CSS + start development server
  • npm run build - Build CSS + full production build

File Loading Order

The CSS files are concatenated in dependency order:

  1. variables.css (CSS custom properties - loaded first)
  2. utilities.css (utility classes)
  3. base.css (foundational styles)
  4. task-card-bem.css (BEM TaskCard component)
  5. note-card-bem.css (BEM NoteCard component)
  6. filter-bar-bem.css (BEM FilterBar component)
  7. modal-bem.css (BEM Modal components)
  8. View-specific BEM files (task-list-view, calendar-view, kanban-view, etc.)
  9. components.css (general components)
  10. Legacy files (pomodoro.css, settings.css)

CI/CD Process

The GitHub Actions workflow automatically:

  1. Builds the CSS from source files during release
  2. Includes the generated styles.css in the release artifacts
  3. Ensures the plugin has all necessary files for distribution

Important Notes

  • Never edit styles.css directly - it will be overwritten during builds
  • The styles.css file is not tracked in git - only source files are committed
  • All CSS variables should be defined in variables.css
  • Follow the existing patterns and naming conventions
  • Use CSS custom properties (variables) instead of hardcoded values
  • Test changes across different views (Calendar, Tasks, Kanban, etc.)

Troubleshooting

If styles aren't updating:

  1. Run npm run build-css to regenerate the CSS
  2. Check that your changes are in the correct source file
  3. Verify the build completed without errors
  4. Clear browser cache if testing in development

If the build fails:

  1. Check the console output for specific error messages
  2. Verify all CSS files exist and are readable
  3. Check for syntax errors in your CSS
  4. Ensure file paths in build-css.mjs are correct