mirror of
https://github.com/callumalpass/tasknotes.git
synced 2026-07-22 12:50:26 +00:00
## 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. |
||
|---|---|---|
| .. | ||
| advanced-calendar-view.css | ||
| agenda-view.css | ||
| base.css | ||
| calendar-view.css | ||
| date-picker.css | ||
| filter-bar-bem.css | ||
| index.css | ||
| kanban-view.css | ||
| modal-bem.css | ||
| note-card-bem.css | ||
| notes-view.css | ||
| pomodoro-stats-view.css | ||
| pomodoro-view.css | ||
| project-note-subtasks.css | ||
| README.md | ||
| reminder-modal.css | ||
| settings-view.css | ||
| status-bar.css | ||
| task-action-palette-modal.css | ||
| task-card-bem.css | ||
| task-inline-widget.css | ||
| task-list-view.css | ||
| task-modal.css | ||
| task-selector-modal.css | ||
| unscheduled-tasks-selector-modal.css | ||
| utilities.css | ||
| UTILITIES.md | ||
| UTILITY-USAGE-GUIDE.md | ||
| variables.css | ||
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 variablesutilities.css- Utility classes for layout, spacing, typography, and statesbase.css- Basic styles, animations, card components, and layoutcomponents.css- Reusable UI components, utilities, and modals
BEM Component Files (NEW)
task-card-bem.css- BEM TaskCard component with proper scopingnote-card-bem.css- BEM NoteCard component with proper scopingfilter-bar-bem.css- BEM FilterBar component with proper scopingmodal-bem.css- BEM Modal components with proper scoping
View-Specific Files (NEW)
task-list-view.css- BEM TaskListView componentcalendar-view.css- BEM CalendarView componentkanban-view.css- BEM KanbanView componentagenda-view.css- BEM AgendaView componentnotes-view.css- BEM NotesView componentpomodoro-view.css- BEM PomodoroView componentpomodoro-stats-view.css- BEM PomodoroStatsView componentsettings-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 fileUTILITIES.md- Utility class documentationUTILITY-USAGE-GUIDE.md- Guide for using utility classes
Development Workflow
Making Changes
- Edit the appropriate CSS file in this directory
- Run
npm run build-cssto regenerate the mainstyles.cssfile - Test your changes in the application
- Commit your changes to the source files (the generated
styles.cssis ignored by git)
Build Commands
npm run build-css- Build CSS onlynpm run dev- Build CSS + start development servernpm run build- Build CSS + full production build
File Loading Order
The CSS files are concatenated in dependency order:
variables.css(CSS custom properties - loaded first)utilities.css(utility classes)base.css(foundational styles)task-card-bem.css(BEM TaskCard component)note-card-bem.css(BEM NoteCard component)filter-bar-bem.css(BEM FilterBar component)modal-bem.css(BEM Modal components)- View-specific BEM files (task-list-view, calendar-view, kanban-view, etc.)
components.css(general components)- Legacy files (
pomodoro.css,settings.css)
CI/CD Process
The GitHub Actions workflow automatically:
- Builds the CSS from source files during release
- Includes the generated
styles.cssin the release artifacts - Ensures the plugin has all necessary files for distribution
Important Notes
- Never edit
styles.cssdirectly - it will be overwritten during builds - The
styles.cssfile 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:
- Run
npm run build-cssto regenerate the CSS - Check that your changes are in the correct source file
- Verify the build completed without errors
- Clear browser cache if testing in development
If the build fails:
- Check the console output for specific error messages
- Verify all CSS files exist and are readable
- Check for syntax errors in your CSS
- Ensure file paths in
build-css.mjsare correct