Add modular CSS build system with comprehensive source files and documentation
• Introduce a new “styles” directory that breaks out the plugin’s CSS into several modular source files:
– variables.css: Defines all CSS custom properties (spacing, colors, typography, transitions) to serve as design system tokens.
– base.css: Contains foundational styles, animations (e.g. task-flash, task-pulse, fade-in) and core card styles following BEM methodology. Also includes accessibility and performance optimizations.
– components.css: Provides reusable UI component styles and utility classes (e.g. is-hidden, is-loading, buttons, modals, tab system, task selectors) used across multiple views.
– calendar.css: Implements calendar layout and view styling including navigation (month/week views), day formatting, indicators (notes, tasks, daily notes), hover effects and colorized modes.
– tasks.css: Contains styles for task-list views including card layouts, task metadata, priority/ status badges, time tracking, recurring tasks, and interactivity on hover/active states.
– kanban.css: Provides styling for Kanban board views, including board header, column layout, drag/drop feedback, checkboxes, board actions, filters and responsive adjustments.
– filters.css: Implements a unified filtering system across views with a filter bar layout, search and sort controls, advanced filtering panels, multi-select dropdowns, chip badges and date range pickers.
– index.css: A documentation index that outlines the intended build order and purpose of each modular CSS file.
• Add styles/README.md documenting the CSS build system, file structure, dependency order (variables → base → components → calendar → tasks → kanban → filters), and development workflow (make changes in source files, run “npm run build-css”, and test).
• This commit lays a solid foundation for maintainable, consistent styling across the TaskNotes plugin. The CSS build process concatenates these files in the proper order to generate the final (but untracked) styles.css for distribution, while supporting CI/CD integration and responsive design.
• (Optional) The build scripts in package.json have been updated to invoke “build-css” as part of “npm run dev” and “npm run build”, ensuring the latest CSS is built before launching the app.
Overall, this commit modularizes and documents the plugin’s styling strategy, improving maintainability and clarity for future development.
2025-06-08 05:59:40 +00:00
|
|
|
import { readFileSync, writeFileSync } from 'fs';
|
|
|
|
|
import { join } from 'path';
|
|
|
|
|
|
|
|
|
|
const CSS_FILES = [
|
Complete build system cleanup by removing legacy CSS files
- Remove legacy files: pomodoro.css, settings.css, tasks-legacy.css
- Optimize build system to use only BEM and core files
- Update documentation to reflect clean structure
- Achieve 9.1% bundle size reduction (27,884 bytes saved)
- Reduce CSS from 11,644 lines to 10,501 lines (1,143 lines saved)
- Maintain full functionality with clean, efficient CSS generation
Files removed:
- styles/pomodoro.css (697 lines) - replaced by pomodoro-view.css + pomodoro-stats-view.css
- styles/settings.css (446 lines) - replaced by settings-view.css
- styles/tasks-legacy.css (101 lines) - deprecated utilities and animations
Build system now uses optimal file order:
1. Core System (variables, utilities, base)
2. BEM Components (task-card-bem, note-card-bem, filter-bar-bem, modal-bem)
3. BEM Views (all view-specific CSS files)
4. Legacy Support (minimal components.css for compatibility)
Bundle size: 305,483 bytes → 277,599 bytes (-27,884 bytes)
CSS lines: 11,644 → 10,501 (-1,143 lines)
2025-06-09 02:54:58 +00:00
|
|
|
// Core System Files
|
|
|
|
|
'styles/variables.css', // CSS custom properties and design system variables
|
|
|
|
|
'styles/utilities.css', // Scoped utility classes for layout, spacing, typography
|
|
|
|
|
'styles/base.css', // Basic styles, animations, card components, and layout
|
|
|
|
|
|
|
|
|
|
// BEM Component Files
|
|
|
|
|
'styles/task-card-bem.css', // TaskCard component with proper BEM scoping
|
2025-06-10 11:11:46 +00:00
|
|
|
'styles/task-inline-widget.css', // Inline task widget for editor with proper BEM scoping
|
Complete build system cleanup by removing legacy CSS files
- Remove legacy files: pomodoro.css, settings.css, tasks-legacy.css
- Optimize build system to use only BEM and core files
- Update documentation to reflect clean structure
- Achieve 9.1% bundle size reduction (27,884 bytes saved)
- Reduce CSS from 11,644 lines to 10,501 lines (1,143 lines saved)
- Maintain full functionality with clean, efficient CSS generation
Files removed:
- styles/pomodoro.css (697 lines) - replaced by pomodoro-view.css + pomodoro-stats-view.css
- styles/settings.css (446 lines) - replaced by settings-view.css
- styles/tasks-legacy.css (101 lines) - deprecated utilities and animations
Build system now uses optimal file order:
1. Core System (variables, utilities, base)
2. BEM Components (task-card-bem, note-card-bem, filter-bar-bem, modal-bem)
3. BEM Views (all view-specific CSS files)
4. Legacy Support (minimal components.css for compatibility)
Bundle size: 305,483 bytes → 277,599 bytes (-27,884 bytes)
CSS lines: 11,644 → 10,501 (-1,143 lines)
2025-06-09 02:54:58 +00:00
|
|
|
'styles/note-card-bem.css', // NoteCard component with proper BEM scoping
|
|
|
|
|
'styles/filter-bar-bem.css', // FilterBar component with proper BEM scoping
|
2025-08-17 04:19:17 +00:00
|
|
|
'styles/filter-heading.css', // FilterHeading component with proper BEM scoping
|
feat(bases): add inline search functionality to task-list view
- Implement TaskSearchFilter for ephemeral task filtering
- Case-insensitive full-text search across task properties
- Searches title, status, priority, tags, contexts, projects
- Supports custom visible properties from view config
- Performance monitoring for slow operations (>100ms)
- Seamless virtual scrolling integration
- Search filtering applied before virtual scroll threshold check
- Automatically switches between virtual/normal rendering based on filtered count
- Maintains performance with large datasets (tested with 30k+ tasks)
- Virtual scrolling activates at 100 filtered items threshold
- Create SearchBox UI component
- Lucide search icon positioned outside input (left)
- Debounced input (300ms) to reduce filter operations
- Clear button with keyboard support (Escape key)
- Proper cleanup to prevent memory leaks
- BEM-style CSS with Obsidian design tokens
- BasesViewBase ready for reusability
- Opt-in pattern via enableSearch flag
- Shared setupSearch(), handleSearch(), applySearchFilter()
- Component lifecycle integration for automatic cleanup
- Ready for use in KanbanView, CalendarView, etc.
- Add test coverage
- 24 unit tests for TaskSearchFilter
- 24 unit tests for SearchBox component
- Integration test placeholders for E2E testing
- Update TaskListView to use inherited search
- Enable search with single flag: enableSearch = true
- Apply filtering in renderFlat, renderGrouped methods
- Preserves all existing functionality (grouping, sub-grouping, etc.)
2025-11-22 06:32:39 +00:00
|
|
|
'styles/search-box.css', // SearchBox component with proper BEM scoping
|
Complete build system cleanup by removing legacy CSS files
- Remove legacy files: pomodoro.css, settings.css, tasks-legacy.css
- Optimize build system to use only BEM and core files
- Update documentation to reflect clean structure
- Achieve 9.1% bundle size reduction (27,884 bytes saved)
- Reduce CSS from 11,644 lines to 10,501 lines (1,143 lines saved)
- Maintain full functionality with clean, efficient CSS generation
Files removed:
- styles/pomodoro.css (697 lines) - replaced by pomodoro-view.css + pomodoro-stats-view.css
- styles/settings.css (446 lines) - replaced by settings-view.css
- styles/tasks-legacy.css (101 lines) - deprecated utilities and animations
Build system now uses optimal file order:
1. Core System (variables, utilities, base)
2. BEM Components (task-card-bem, note-card-bem, filter-bar-bem, modal-bem)
3. BEM Views (all view-specific CSS files)
4. Legacy Support (minimal components.css for compatibility)
Bundle size: 305,483 bytes → 277,599 bytes (-27,884 bytes)
CSS lines: 11,644 → 10,501 (-1,143 lines)
2025-06-09 02:54:58 +00:00
|
|
|
'styles/modal-bem.css', // Modal components with proper BEM scoping
|
Refactor and consolidate modal implementation, update naming and imports, and adjust styles and tests
• Remove the legacy “MinimalistTaskModal” base class and its derivatives (MinimalistTaskCreationModal and MinimalistTaskEditModal) by renaming and consolidating them into new classes:
– Rename MinimalistTaskModal to TaskModal
– Rename MinimalistTaskCreationModal → TaskCreationModal
– Rename MinimalistTaskEditModal → TaskEditModal
• Update all references and imports across the project (including AdvancedCalendarView) to use the new TaskModal, TaskCreationModal, and TaskEditModal classes instead of the old minimalist versions.
• Extract and expose a new TaskConversionOptions type (in src/types/taskConversion.ts) to provide a consistent interface for passing conversion-related options.
• Adjust the modal logic:
– In TaskCreationModal, update natural language parsing, pre-populated values, and form handling using the new base TaskModal APIs.
– In TaskEditModal, change the constructor signature to accept an options object (including “task” and an optional “onTaskUpdated” callback) and update recurrence handling to convert legacy recurrence objects into display strings.
• Update CSS:
– Rename styles/minimalist-modal.css to styles/task-modal.css and update class comments (e.g. “MINIMALIST TASK MODAL” → “TASK MODAL – Google Keep/Todoist Inspired”).
– Modify selectors in modal-bem.css by removing references to “.task-creation-modal” and “.task-edit-modal” in some cases, as these are now included under the unified “tasknotes-plugin” context.
• Remove the tests for BaseTaskModal (tests/unit/modals/BaseTaskModal.test.ts) since that base class is no longer used, and update test references for the new TaskCreationModal class.
• Overall, this commit streamlines the modal codebase and unifies the naming and styling of task-related modals while updating the type definitions and downstream usage in views and tests.
These changes are backward‐compatible with previous plugin settings (aside from renamed classes/interfaces) but may require updates in any custom integrations relying on the old MinimalistTask* modals.
2025-06-27 11:45:08 +00:00
|
|
|
'styles/task-modal.css', // Task modal components (Google Keep/Todoist style)
|
2025-08-07 03:01:04 +00:00
|
|
|
'styles/reminder-modal.css', // Reminder modal component with proper BEM scoping
|
Implement enhanced date picker modal and update task modals with refined UI and functionality
• Added a new CSS file (styles/date-picker.css) that provides comprehensive styling for the date picker modal including header, inputs, buttons, and responsive/focus states.
• Modified build-css.mjs to include the new date-picker.css file.
• Refactored DateContextMenu to:
- Introduce a modular layout by splitting modal creation into smaller methods (createModal, createHeader, createDateSection, createTimeSection, createInputLabel, createInputContainer, createDateInput, createTimeInput, createButtonSection, etc.).
- Add a calendar icon and enhanced visual cues in the modal header.
- Implement click handlers that automatically show native pickers via a custom addPickerClickHandler.
- Set up event handlers for the select, cancel, Enter, ESC and clicking outside the modal to improve UX.
• Updated MinimalistTaskCreationModal and MinimalistTaskEditModal to use "Create task" and "Edit task" (changed title casing) for consistency.
• Enhanced MinimalistTaskEditModal by:
- Removing legacy extraction of task details.
- Adding a details section that includes a title input (with live update) and additional fields.
- Introducing action buttons with an “Open note” button that opens the associated note in a new leaf while ensuring proper error handling.
• Modified MinimalistTaskModal to extract and combine date/time parts (using getDatePart, getTimePart, and combineDateAndTime) when updating due and scheduled dates based on picker input.
These changes improve the modularity, usability, and visual consistency of date/time selection and task editing features across the plugin.
2025-06-26 14:17:46 +00:00
|
|
|
'styles/date-picker.css', // Enhanced date/time picker styling
|
2025-11-27 11:26:34 +00:00
|
|
|
'styles/task-selector-with-create-modal.css', // TaskSelectorWithCreateModal component with proper BEM scoping
|
2025-11-27 11:52:49 +00:00
|
|
|
'styles/file-selector-modal.css', // FileSelectorModal component with proper BEM scoping
|
Add Advanced & Mini Calendar Views, Unscheduled Tasks Modal, and CSS/styling updates
• Renamed and restructured calendar views:
- Renamed the existing CalendarView to MiniCalendarView for better clarity.
- Updated all references from CALENDAR_VIEW_TYPE to MINI_CALENDAR_VIEW_TYPE and renamed CSS classes accordingly.
- Added a new AdvancedCalendarView incorporating FullCalendar plugins (dayGrid, timeGrid, interaction) that provides advanced event interactions (drag/drop, resizing, toggling time entries) with its unique CSS styling.
• Introduced new view support and commands in main.ts:
- Updated imported view types in main.ts to include both MINI_CALENDAR_VIEW_TYPE and ADVANCED_CALENDAR_VIEW_TYPE.
- Registered a new command “open-advanced-calendar-view” alongside the existing mini calendar activation.
- Adapted activateCalendarView and getCalendarLeaf to reference the mini calendar view.
• Added UnscheduledTasksSelectorModal:
- Created a new modal (src/modals/UnscheduledTasksSelectorModal.ts) that leverages obsidian’s FuzzySuggestModal to search unscheduled tasks.
- The modal provides detailed task metadata, including priority, due date (with overdue/today indicators), and time estimates.
- Implemented a highlight function for matching search terms and proper ARIA attributes for accessibility.
- Added corresponding CSS (styles/unscheduled-tasks-selector-modal.css) for modal appearance and interactions.
• Updated package lock and project metadata:
- Bumped project version from 0.1.0 (“chronosync”) to 2.2.4 (“tasknotes”).
- Added new dependencies for @fullcalendar/core, @fullcalendar/daygrid, @fullcalendar/interaction, @fullcalendar/timegrid, along with preact for FullCalendar.
• Modifications and cleanup in CSS/styling:
- Introduced new styles for AdvancedCalendarView in styles/advanced-calendar-view.css.
- Made minor adjustments in agenda-view.css, filter-bar-bem.css, settings-view.css, and task-card-bem.css to remove redundant checkbox styles and update BEM class names for consistency.
- Updated components.css to remove legacy checkbox styling.
• Overall improvements and integration:
- Ensured proper integration with cacheManager and taskService for loading tasks and updating scheduling properties.
- Added event listeners to refresh calendar events on data and task changes.
- Improved accessibility features by updating instructional texts, aria attributes, and modal titles.
This commit provides enhanced calendar functionality with two separate views (mini and advanced), a refined unscheduled task selection experience, updated project metadata, and improved UI styling across multiple components.
2025-06-12 14:00:14 +00:00
|
|
|
'styles/unscheduled-tasks-selector-modal.css', // UnscheduledTasksSelectorModal component with proper BEM scoping
|
2025-06-22 04:07:27 +00:00
|
|
|
'styles/task-action-palette-modal.css', // TaskActionPaletteModal component with proper BEM scoping
|
2025-10-29 10:46:23 +00:00
|
|
|
'styles/time-entry-editor-modal.css', // TimeEntryEditorModal component with proper BEM scoping
|
2025-11-09 07:23:59 +00:00
|
|
|
'styles/relationships.css', // RelationshipsWidget component with proper BEM scoping
|
2025-09-27 13:56:56 +00:00
|
|
|
'styles/task-card-note-widget.css', // TaskCardNoteWidget component with proper BEM scoping
|
Complete build system cleanup by removing legacy CSS files
- Remove legacy files: pomodoro.css, settings.css, tasks-legacy.css
- Optimize build system to use only BEM and core files
- Update documentation to reflect clean structure
- Achieve 9.1% bundle size reduction (27,884 bytes saved)
- Reduce CSS from 11,644 lines to 10,501 lines (1,143 lines saved)
- Maintain full functionality with clean, efficient CSS generation
Files removed:
- styles/pomodoro.css (697 lines) - replaced by pomodoro-view.css + pomodoro-stats-view.css
- styles/settings.css (446 lines) - replaced by settings-view.css
- styles/tasks-legacy.css (101 lines) - deprecated utilities and animations
Build system now uses optimal file order:
1. Core System (variables, utilities, base)
2. BEM Components (task-card-bem, note-card-bem, filter-bar-bem, modal-bem)
3. BEM Views (all view-specific CSS files)
4. Legacy Support (minimal components.css for compatibility)
Bundle size: 305,483 bytes → 277,599 bytes (-27,884 bytes)
CSS lines: 11,644 → 10,501 (-1,143 lines)
2025-06-09 02:54:58 +00:00
|
|
|
|
|
|
|
|
// BEM View Files
|
|
|
|
|
'styles/task-list-view.css', // TaskListView component with proper BEM scoping
|
|
|
|
|
'styles/calendar-view.css', // CalendarView component with proper BEM scoping
|
Add Advanced & Mini Calendar Views, Unscheduled Tasks Modal, and CSS/styling updates
• Renamed and restructured calendar views:
- Renamed the existing CalendarView to MiniCalendarView for better clarity.
- Updated all references from CALENDAR_VIEW_TYPE to MINI_CALENDAR_VIEW_TYPE and renamed CSS classes accordingly.
- Added a new AdvancedCalendarView incorporating FullCalendar plugins (dayGrid, timeGrid, interaction) that provides advanced event interactions (drag/drop, resizing, toggling time entries) with its unique CSS styling.
• Introduced new view support and commands in main.ts:
- Updated imported view types in main.ts to include both MINI_CALENDAR_VIEW_TYPE and ADVANCED_CALENDAR_VIEW_TYPE.
- Registered a new command “open-advanced-calendar-view” alongside the existing mini calendar activation.
- Adapted activateCalendarView and getCalendarLeaf to reference the mini calendar view.
• Added UnscheduledTasksSelectorModal:
- Created a new modal (src/modals/UnscheduledTasksSelectorModal.ts) that leverages obsidian’s FuzzySuggestModal to search unscheduled tasks.
- The modal provides detailed task metadata, including priority, due date (with overdue/today indicators), and time estimates.
- Implemented a highlight function for matching search terms and proper ARIA attributes for accessibility.
- Added corresponding CSS (styles/unscheduled-tasks-selector-modal.css) for modal appearance and interactions.
• Updated package lock and project metadata:
- Bumped project version from 0.1.0 (“chronosync”) to 2.2.4 (“tasknotes”).
- Added new dependencies for @fullcalendar/core, @fullcalendar/daygrid, @fullcalendar/interaction, @fullcalendar/timegrid, along with preact for FullCalendar.
• Modifications and cleanup in CSS/styling:
- Introduced new styles for AdvancedCalendarView in styles/advanced-calendar-view.css.
- Made minor adjustments in agenda-view.css, filter-bar-bem.css, settings-view.css, and task-card-bem.css to remove redundant checkbox styles and update BEM class names for consistency.
- Updated components.css to remove legacy checkbox styling.
• Overall improvements and integration:
- Ensured proper integration with cacheManager and taskService for loading tasks and updating scheduling properties.
- Added event listeners to refresh calendar events on data and task changes.
- Improved accessibility features by updating instructional texts, aria attributes, and modal titles.
This commit provides enhanced calendar functionality with two separate views (mini and advanced), a refined unscheduled task selection experience, updated project metadata, and improved UI styling across multiple components.
2025-06-12 14:00:14 +00:00
|
|
|
'styles/advanced-calendar-view.css', // AdvancedCalendarView component with proper BEM scoping
|
Complete build system cleanup by removing legacy CSS files
- Remove legacy files: pomodoro.css, settings.css, tasks-legacy.css
- Optimize build system to use only BEM and core files
- Update documentation to reflect clean structure
- Achieve 9.1% bundle size reduction (27,884 bytes saved)
- Reduce CSS from 11,644 lines to 10,501 lines (1,143 lines saved)
- Maintain full functionality with clean, efficient CSS generation
Files removed:
- styles/pomodoro.css (697 lines) - replaced by pomodoro-view.css + pomodoro-stats-view.css
- styles/settings.css (446 lines) - replaced by settings-view.css
- styles/tasks-legacy.css (101 lines) - deprecated utilities and animations
Build system now uses optimal file order:
1. Core System (variables, utilities, base)
2. BEM Components (task-card-bem, note-card-bem, filter-bar-bem, modal-bem)
3. BEM Views (all view-specific CSS files)
4. Legacy Support (minimal components.css for compatibility)
Bundle size: 305,483 bytes → 277,599 bytes (-27,884 bytes)
CSS lines: 11,644 → 10,501 (-1,143 lines)
2025-06-09 02:54:58 +00:00
|
|
|
'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
|
2025-08-25 11:11:13 +00:00
|
|
|
'styles/stats-view.css', // StatsView component with proper BEM scoping
|
2026-06-01 09:19:26 +00:00
|
|
|
'styles/release-notes-view.css', // Release notes view typography
|
2025-06-30 11:26:04 +00:00
|
|
|
'styles/settings-view.css', // SettingsView component with proper BEM scoping
|
2025-08-13 00:37:02 +00:00
|
|
|
'styles/webhook-settings.css', // Webhook settings UI with proper BEM scoping
|
2025-10-05 06:46:14 +00:00
|
|
|
'styles/status-bar.css', // StatusBar component with proper BEM scoping
|
2026-05-12 22:17:35 +00:00
|
|
|
'styles/bases-views.css', // Bases integration views (list and kanban)
|
|
|
|
|
'styles/static-style-utilities.css' // Static style utility classes migrated from inline styles
|
Add modular CSS build system with comprehensive source files and documentation
• Introduce a new “styles” directory that breaks out the plugin’s CSS into several modular source files:
– variables.css: Defines all CSS custom properties (spacing, colors, typography, transitions) to serve as design system tokens.
– base.css: Contains foundational styles, animations (e.g. task-flash, task-pulse, fade-in) and core card styles following BEM methodology. Also includes accessibility and performance optimizations.
– components.css: Provides reusable UI component styles and utility classes (e.g. is-hidden, is-loading, buttons, modals, tab system, task selectors) used across multiple views.
– calendar.css: Implements calendar layout and view styling including navigation (month/week views), day formatting, indicators (notes, tasks, daily notes), hover effects and colorized modes.
– tasks.css: Contains styles for task-list views including card layouts, task metadata, priority/ status badges, time tracking, recurring tasks, and interactivity on hover/active states.
– kanban.css: Provides styling for Kanban board views, including board header, column layout, drag/drop feedback, checkboxes, board actions, filters and responsive adjustments.
– filters.css: Implements a unified filtering system across views with a filter bar layout, search and sort controls, advanced filtering panels, multi-select dropdowns, chip badges and date range pickers.
– index.css: A documentation index that outlines the intended build order and purpose of each modular CSS file.
• Add styles/README.md documenting the CSS build system, file structure, dependency order (variables → base → components → calendar → tasks → kanban → filters), and development workflow (make changes in source files, run “npm run build-css”, and test).
• This commit lays a solid foundation for maintainable, consistent styling across the TaskNotes plugin. The CSS build process concatenates these files in the proper order to generate the final (but untracked) styles.css for distribution, while supporting CI/CD integration and responsive design.
• (Optional) The build scripts in package.json have been updated to invoke “build-css” as part of “npm run dev” and “npm run build”, ensuring the latest CSS is built before launching the app.
Overall, this commit modularizes and documents the plugin’s styling strategy, improving maintainability and clarity for future development.
2025-06-08 05:59:40 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const MAIN_CSS_TEMPLATE = `/* 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:
|
Complete build system cleanup by removing legacy CSS files
- Remove legacy files: pomodoro.css, settings.css, tasks-legacy.css
- Optimize build system to use only BEM and core files
- Update documentation to reflect clean structure
- Achieve 9.1% bundle size reduction (27,884 bytes saved)
- Reduce CSS from 11,644 lines to 10,501 lines (1,143 lines saved)
- Maintain full functionality with clean, efficient CSS generation
Files removed:
- styles/pomodoro.css (697 lines) - replaced by pomodoro-view.css + pomodoro-stats-view.css
- styles/settings.css (446 lines) - replaced by settings-view.css
- styles/tasks-legacy.css (101 lines) - deprecated utilities and animations
Build system now uses optimal file order:
1. Core System (variables, utilities, base)
2. BEM Components (task-card-bem, note-card-bem, filter-bar-bem, modal-bem)
3. BEM Views (all view-specific CSS files)
4. Legacy Support (minimal components.css for compatibility)
Bundle size: 305,483 bytes → 277,599 bytes (-27,884 bytes)
CSS lines: 11,644 → 10,501 (-1,143 lines)
2025-06-09 02:54:58 +00:00
|
|
|
|
|
|
|
|
Core System:
|
Add modular CSS build system with comprehensive source files and documentation
• Introduce a new “styles” directory that breaks out the plugin’s CSS into several modular source files:
– variables.css: Defines all CSS custom properties (spacing, colors, typography, transitions) to serve as design system tokens.
– base.css: Contains foundational styles, animations (e.g. task-flash, task-pulse, fade-in) and core card styles following BEM methodology. Also includes accessibility and performance optimizations.
– components.css: Provides reusable UI component styles and utility classes (e.g. is-hidden, is-loading, buttons, modals, tab system, task selectors) used across multiple views.
– calendar.css: Implements calendar layout and view styling including navigation (month/week views), day formatting, indicators (notes, tasks, daily notes), hover effects and colorized modes.
– tasks.css: Contains styles for task-list views including card layouts, task metadata, priority/ status badges, time tracking, recurring tasks, and interactivity on hover/active states.
– kanban.css: Provides styling for Kanban board views, including board header, column layout, drag/drop feedback, checkboxes, board actions, filters and responsive adjustments.
– filters.css: Implements a unified filtering system across views with a filter bar layout, search and sort controls, advanced filtering panels, multi-select dropdowns, chip badges and date range pickers.
– index.css: A documentation index that outlines the intended build order and purpose of each modular CSS file.
• Add styles/README.md documenting the CSS build system, file structure, dependency order (variables → base → components → calendar → tasks → kanban → filters), and development workflow (make changes in source files, run “npm run build-css”, and test).
• This commit lays a solid foundation for maintainable, consistent styling across the TaskNotes plugin. The CSS build process concatenates these files in the proper order to generate the final (but untracked) styles.css for distribution, while supporting CI/CD integration and responsive design.
• (Optional) The build scripts in package.json have been updated to invoke “build-css” as part of “npm run dev” and “npm run build”, ensuring the latest CSS is built before launching the app.
Overall, this commit modularizes and documents the plugin’s styling strategy, improving maintainability and clarity for future development.
2025-06-08 05:59:40 +00:00
|
|
|
- styles/variables.css: CSS custom properties and design system variables
|
Refactor and add complete BEM‐based, scoped CSS for TaskNotes
• Introduce a new set of CSS files (filter-bar-bem.css, agenda-view.css, calendar-view.css, kanban-view.css, modal-bem.css, note-card-bem.css, notes-view.css, task-card-bem.css, task-list-view.css, utilities.css) that implement a modern BEM naming convention and are entirely scoped under .tasknotes-plugin. This ensures styles no longer conflict with Obsidian’s or other plugins’ styles.
• Update index.css to list and order the new files properly, noting that “components.css” remains while legacy files (such as filters.css, calendar.css, tasks.css, and kanban.css) are either deprecated or now referenced via legacy files (e.g. tasks-legacy.css).
• Refactor variables.css to add plugin‐specific variables (using --tn- prefix) for spacing, typography, borders, shadows, transitions, z‐indices, and more. This integration uses Obsidian’s theme variables as fallbacks so that TaskNotes derives its colors and sizes directly from the host environment.
• Separate and modularize layout and component styling:
– New “task-card-bem.css” and “note-card-bem.css” provide updated implementations for TaskCard and NoteCard components with proper BEM elements and modifiers (e.g. modifiers for completed, archived, recurring, and priority states).
– “filter-bar-bem.css” redefines the filter bar styling (including advanced filtering panels) with scoped, clear element classes.
– “modal-bem.css” refactors modal dialogs (for task creation, editing, due date, etc.) into BEM components that include form groups, input styling, character counters, autocomplete suggestions, and well-defined button styles.
– “agenda-view.css”, “calendar-view.css”, “kanban-view.css”, “notes-view.css”, and “task-list-view.css” implement view-specific styles for each view with a modern layout, responsive behavior, and improved interaction states.
• Maintain legacy styles for backwards compatibility:
– “tasks-legacy.css” continues to support old task styles while new BEM styles are preferred.
– In “tasks.css”, legacy styles have been replaced or redirected to the new structure (and an import is added for backwards–compatible CSS).
– Similarly, “kanban.css” now contains only legacy styles (with a note indicating deprecation) since the new BEM structure is in “kanban-view.css”.
• Add a comprehensive utilities.css file that documents and implements a full suite of scoped utility classes:
– Layout (flex, grid, positioning)
– Spacing (margins, padding, gap)
– Typography (text alignment, font sizes, line heights, text transform)
– Display (block, inline, table, etc.)
– Background, borders, shadows, opacity, transitions, transforms, cursors, and state modifiers
– Responsive variants for small (sm), medium (md), and large (lg) breakpoints
– Reduced motion and high-contrast support via media queries
• Update index.css to clearly document the new file ordering and describe the purpose of each new file compared to legacy components.
Overall, this commit overhauls the styling system by:
– Unifying the design under a scoped .tasknotes-plugin namespace
– Implementing a modern, modular BEM structure across components and views
– Ensuring consistency through CSS custom properties (using the --tn- prefix)
– Preparing for gradual deprecation of legacy CSS styles, while maintaining backward compatibility
These changes lay a strong foundation for consistent and maintainable UI improvements in the TaskNotes plugin.
2025-06-09 02:20:19 +00:00
|
|
|
- styles/utilities.css: Scoped utility classes for layout, spacing, typography, and states
|
Add modular CSS build system with comprehensive source files and documentation
• Introduce a new “styles” directory that breaks out the plugin’s CSS into several modular source files:
– variables.css: Defines all CSS custom properties (spacing, colors, typography, transitions) to serve as design system tokens.
– base.css: Contains foundational styles, animations (e.g. task-flash, task-pulse, fade-in) and core card styles following BEM methodology. Also includes accessibility and performance optimizations.
– components.css: Provides reusable UI component styles and utility classes (e.g. is-hidden, is-loading, buttons, modals, tab system, task selectors) used across multiple views.
– calendar.css: Implements calendar layout and view styling including navigation (month/week views), day formatting, indicators (notes, tasks, daily notes), hover effects and colorized modes.
– tasks.css: Contains styles for task-list views including card layouts, task metadata, priority/ status badges, time tracking, recurring tasks, and interactivity on hover/active states.
– kanban.css: Provides styling for Kanban board views, including board header, column layout, drag/drop feedback, checkboxes, board actions, filters and responsive adjustments.
– filters.css: Implements a unified filtering system across views with a filter bar layout, search and sort controls, advanced filtering panels, multi-select dropdowns, chip badges and date range pickers.
– index.css: A documentation index that outlines the intended build order and purpose of each modular CSS file.
• Add styles/README.md documenting the CSS build system, file structure, dependency order (variables → base → components → calendar → tasks → kanban → filters), and development workflow (make changes in source files, run “npm run build-css”, and test).
• This commit lays a solid foundation for maintainable, consistent styling across the TaskNotes plugin. The CSS build process concatenates these files in the proper order to generate the final (but untracked) styles.css for distribution, while supporting CI/CD integration and responsive design.
• (Optional) The build scripts in package.json have been updated to invoke “build-css” as part of “npm run dev” and “npm run build”, ensuring the latest CSS is built before launching the app.
Overall, this commit modularizes and documents the plugin’s styling strategy, improving maintainability and clarity for future development.
2025-06-08 05:59:40 +00:00
|
|
|
- styles/base.css: Basic styles, animations, card components, and layout
|
Complete build system cleanup by removing legacy CSS files
- Remove legacy files: pomodoro.css, settings.css, tasks-legacy.css
- Optimize build system to use only BEM and core files
- Update documentation to reflect clean structure
- Achieve 9.1% bundle size reduction (27,884 bytes saved)
- Reduce CSS from 11,644 lines to 10,501 lines (1,143 lines saved)
- Maintain full functionality with clean, efficient CSS generation
Files removed:
- styles/pomodoro.css (697 lines) - replaced by pomodoro-view.css + pomodoro-stats-view.css
- styles/settings.css (446 lines) - replaced by settings-view.css
- styles/tasks-legacy.css (101 lines) - deprecated utilities and animations
Build system now uses optimal file order:
1. Core System (variables, utilities, base)
2. BEM Components (task-card-bem, note-card-bem, filter-bar-bem, modal-bem)
3. BEM Views (all view-specific CSS files)
4. Legacy Support (minimal components.css for compatibility)
Bundle size: 305,483 bytes → 277,599 bytes (-27,884 bytes)
CSS lines: 11,644 → 10,501 (-1,143 lines)
2025-06-09 02:54:58 +00:00
|
|
|
|
|
|
|
|
BEM Component Files:
|
|
|
|
|
- styles/task-card-bem.css: TaskCard component with proper BEM scoping
|
2025-06-10 11:11:46 +00:00
|
|
|
- styles/task-inline-widget.css: Inline task widget for editor with proper BEM scoping
|
Complete build system cleanup by removing legacy CSS files
- Remove legacy files: pomodoro.css, settings.css, tasks-legacy.css
- Optimize build system to use only BEM and core files
- Update documentation to reflect clean structure
- Achieve 9.1% bundle size reduction (27,884 bytes saved)
- Reduce CSS from 11,644 lines to 10,501 lines (1,143 lines saved)
- Maintain full functionality with clean, efficient CSS generation
Files removed:
- styles/pomodoro.css (697 lines) - replaced by pomodoro-view.css + pomodoro-stats-view.css
- styles/settings.css (446 lines) - replaced by settings-view.css
- styles/tasks-legacy.css (101 lines) - deprecated utilities and animations
Build system now uses optimal file order:
1. Core System (variables, utilities, base)
2. BEM Components (task-card-bem, note-card-bem, filter-bar-bem, modal-bem)
3. BEM Views (all view-specific CSS files)
4. Legacy Support (minimal components.css for compatibility)
Bundle size: 305,483 bytes → 277,599 bytes (-27,884 bytes)
CSS lines: 11,644 → 10,501 (-1,143 lines)
2025-06-09 02:54:58 +00:00
|
|
|
- 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
|
|
|
|
|
|
Add modular CSS build system with comprehensive source files and documentation
• Introduce a new “styles” directory that breaks out the plugin’s CSS into several modular source files:
– variables.css: Defines all CSS custom properties (spacing, colors, typography, transitions) to serve as design system tokens.
– base.css: Contains foundational styles, animations (e.g. task-flash, task-pulse, fade-in) and core card styles following BEM methodology. Also includes accessibility and performance optimizations.
– components.css: Provides reusable UI component styles and utility classes (e.g. is-hidden, is-loading, buttons, modals, tab system, task selectors) used across multiple views.
– calendar.css: Implements calendar layout and view styling including navigation (month/week views), day formatting, indicators (notes, tasks, daily notes), hover effects and colorized modes.
– tasks.css: Contains styles for task-list views including card layouts, task metadata, priority/ status badges, time tracking, recurring tasks, and interactivity on hover/active states.
– kanban.css: Provides styling for Kanban board views, including board header, column layout, drag/drop feedback, checkboxes, board actions, filters and responsive adjustments.
– filters.css: Implements a unified filtering system across views with a filter bar layout, search and sort controls, advanced filtering panels, multi-select dropdowns, chip badges and date range pickers.
– index.css: A documentation index that outlines the intended build order and purpose of each modular CSS file.
• Add styles/README.md documenting the CSS build system, file structure, dependency order (variables → base → components → calendar → tasks → kanban → filters), and development workflow (make changes in source files, run “npm run build-css”, and test).
• This commit lays a solid foundation for maintainable, consistent styling across the TaskNotes plugin. The CSS build process concatenates these files in the proper order to generate the final (but untracked) styles.css for distribution, while supporting CI/CD integration and responsive design.
• (Optional) The build scripts in package.json have been updated to invoke “build-css” as part of “npm run dev” and “npm run build”, ensuring the latest CSS is built before launching the app.
Overall, this commit modularizes and documents the plugin’s styling strategy, improving maintainability and clarity for future development.
2025-06-08 05:59:40 +00:00
|
|
|
Run 'npm run build-css' to regenerate this file.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
`;
|
|
|
|
|
|
Refactor and consolidate modal implementation, update naming and imports, and adjust styles and tests
• Remove the legacy “MinimalistTaskModal” base class and its derivatives (MinimalistTaskCreationModal and MinimalistTaskEditModal) by renaming and consolidating them into new classes:
– Rename MinimalistTaskModal to TaskModal
– Rename MinimalistTaskCreationModal → TaskCreationModal
– Rename MinimalistTaskEditModal → TaskEditModal
• Update all references and imports across the project (including AdvancedCalendarView) to use the new TaskModal, TaskCreationModal, and TaskEditModal classes instead of the old minimalist versions.
• Extract and expose a new TaskConversionOptions type (in src/types/taskConversion.ts) to provide a consistent interface for passing conversion-related options.
• Adjust the modal logic:
– In TaskCreationModal, update natural language parsing, pre-populated values, and form handling using the new base TaskModal APIs.
– In TaskEditModal, change the constructor signature to accept an options object (including “task” and an optional “onTaskUpdated” callback) and update recurrence handling to convert legacy recurrence objects into display strings.
• Update CSS:
– Rename styles/minimalist-modal.css to styles/task-modal.css and update class comments (e.g. “MINIMALIST TASK MODAL” → “TASK MODAL – Google Keep/Todoist Inspired”).
– Modify selectors in modal-bem.css by removing references to “.task-creation-modal” and “.task-edit-modal” in some cases, as these are now included under the unified “tasknotes-plugin” context.
• Remove the tests for BaseTaskModal (tests/unit/modals/BaseTaskModal.test.ts) since that base class is no longer used, and update test references for the new TaskCreationModal class.
• Overall, this commit streamlines the modal codebase and unifies the naming and styling of task-related modals while updating the type definitions and downstream usage in views and tests.
These changes are backward‐compatible with previous plugin settings (aside from renamed classes/interfaces) but may require updates in any custom integrations relying on the old MinimalistTask* modals.
2025-06-27 11:45:08 +00:00
|
|
|
const REMAINING_STYLES = ``;
|
Add modular CSS build system with comprehensive source files and documentation
• Introduce a new “styles” directory that breaks out the plugin’s CSS into several modular source files:
– variables.css: Defines all CSS custom properties (spacing, colors, typography, transitions) to serve as design system tokens.
– base.css: Contains foundational styles, animations (e.g. task-flash, task-pulse, fade-in) and core card styles following BEM methodology. Also includes accessibility and performance optimizations.
– components.css: Provides reusable UI component styles and utility classes (e.g. is-hidden, is-loading, buttons, modals, tab system, task selectors) used across multiple views.
– calendar.css: Implements calendar layout and view styling including navigation (month/week views), day formatting, indicators (notes, tasks, daily notes), hover effects and colorized modes.
– tasks.css: Contains styles for task-list views including card layouts, task metadata, priority/ status badges, time tracking, recurring tasks, and interactivity on hover/active states.
– kanban.css: Provides styling for Kanban board views, including board header, column layout, drag/drop feedback, checkboxes, board actions, filters and responsive adjustments.
– filters.css: Implements a unified filtering system across views with a filter bar layout, search and sort controls, advanced filtering panels, multi-select dropdowns, chip badges and date range pickers.
– index.css: A documentation index that outlines the intended build order and purpose of each modular CSS file.
• Add styles/README.md documenting the CSS build system, file structure, dependency order (variables → base → components → calendar → tasks → kanban → filters), and development workflow (make changes in source files, run “npm run build-css”, and test).
• This commit lays a solid foundation for maintainable, consistent styling across the TaskNotes plugin. The CSS build process concatenates these files in the proper order to generate the final (but untracked) styles.css for distribution, while supporting CI/CD integration and responsive design.
• (Optional) The build scripts in package.json have been updated to invoke “build-css” as part of “npm run dev” and “npm run build”, ensuring the latest CSS is built before launching the app.
Overall, this commit modularizes and documents the plugin’s styling strategy, improving maintainability and clarity for future development.
2025-06-08 05:59:40 +00:00
|
|
|
|
|
|
|
|
function buildCSS() {
|
|
|
|
|
console.log('Building CSS...');
|
|
|
|
|
|
|
|
|
|
let combinedCSS = MAIN_CSS_TEMPLATE;
|
|
|
|
|
|
|
|
|
|
// Read and concatenate each CSS file
|
|
|
|
|
for (const cssFile of CSS_FILES) {
|
|
|
|
|
try {
|
|
|
|
|
const content = readFileSync(cssFile, 'utf8');
|
|
|
|
|
|
|
|
|
|
// Add a section header comment
|
|
|
|
|
const filename = cssFile.split('/').pop();
|
|
|
|
|
combinedCSS += `\n/* ===== ${filename.toUpperCase()} ===== */\n`;
|
|
|
|
|
combinedCSS += content;
|
|
|
|
|
combinedCSS += '\n';
|
|
|
|
|
|
2025-06-15 05:37:13 +00:00
|
|
|
console.log(`[OK] Included ${cssFile}`);
|
Add modular CSS build system with comprehensive source files and documentation
• Introduce a new “styles” directory that breaks out the plugin’s CSS into several modular source files:
– variables.css: Defines all CSS custom properties (spacing, colors, typography, transitions) to serve as design system tokens.
– base.css: Contains foundational styles, animations (e.g. task-flash, task-pulse, fade-in) and core card styles following BEM methodology. Also includes accessibility and performance optimizations.
– components.css: Provides reusable UI component styles and utility classes (e.g. is-hidden, is-loading, buttons, modals, tab system, task selectors) used across multiple views.
– calendar.css: Implements calendar layout and view styling including navigation (month/week views), day formatting, indicators (notes, tasks, daily notes), hover effects and colorized modes.
– tasks.css: Contains styles for task-list views including card layouts, task metadata, priority/ status badges, time tracking, recurring tasks, and interactivity on hover/active states.
– kanban.css: Provides styling for Kanban board views, including board header, column layout, drag/drop feedback, checkboxes, board actions, filters and responsive adjustments.
– filters.css: Implements a unified filtering system across views with a filter bar layout, search and sort controls, advanced filtering panels, multi-select dropdowns, chip badges and date range pickers.
– index.css: A documentation index that outlines the intended build order and purpose of each modular CSS file.
• Add styles/README.md documenting the CSS build system, file structure, dependency order (variables → base → components → calendar → tasks → kanban → filters), and development workflow (make changes in source files, run “npm run build-css”, and test).
• This commit lays a solid foundation for maintainable, consistent styling across the TaskNotes plugin. The CSS build process concatenates these files in the proper order to generate the final (but untracked) styles.css for distribution, while supporting CI/CD integration and responsive design.
• (Optional) The build scripts in package.json have been updated to invoke “build-css” as part of “npm run dev” and “npm run build”, ensuring the latest CSS is built before launching the app.
Overall, this commit modularizes and documents the plugin’s styling strategy, improving maintainability and clarity for future development.
2025-06-08 05:59:40 +00:00
|
|
|
} catch (error) {
|
2025-06-15 05:37:13 +00:00
|
|
|
console.error(`[ERROR] Error reading ${cssFile}:`, error.message);
|
Add modular CSS build system with comprehensive source files and documentation
• Introduce a new “styles” directory that breaks out the plugin’s CSS into several modular source files:
– variables.css: Defines all CSS custom properties (spacing, colors, typography, transitions) to serve as design system tokens.
– base.css: Contains foundational styles, animations (e.g. task-flash, task-pulse, fade-in) and core card styles following BEM methodology. Also includes accessibility and performance optimizations.
– components.css: Provides reusable UI component styles and utility classes (e.g. is-hidden, is-loading, buttons, modals, tab system, task selectors) used across multiple views.
– calendar.css: Implements calendar layout and view styling including navigation (month/week views), day formatting, indicators (notes, tasks, daily notes), hover effects and colorized modes.
– tasks.css: Contains styles for task-list views including card layouts, task metadata, priority/ status badges, time tracking, recurring tasks, and interactivity on hover/active states.
– kanban.css: Provides styling for Kanban board views, including board header, column layout, drag/drop feedback, checkboxes, board actions, filters and responsive adjustments.
– filters.css: Implements a unified filtering system across views with a filter bar layout, search and sort controls, advanced filtering panels, multi-select dropdowns, chip badges and date range pickers.
– index.css: A documentation index that outlines the intended build order and purpose of each modular CSS file.
• Add styles/README.md documenting the CSS build system, file structure, dependency order (variables → base → components → calendar → tasks → kanban → filters), and development workflow (make changes in source files, run “npm run build-css”, and test).
• This commit lays a solid foundation for maintainable, consistent styling across the TaskNotes plugin. The CSS build process concatenates these files in the proper order to generate the final (but untracked) styles.css for distribution, while supporting CI/CD integration and responsive design.
• (Optional) The build scripts in package.json have been updated to invoke “build-css” as part of “npm run dev” and “npm run build”, ensuring the latest CSS is built before launching the app.
Overall, this commit modularizes and documents the plugin’s styling strategy, improving maintainability and clarity for future development.
2025-06-08 05:59:40 +00:00
|
|
|
process.exit(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Add the remaining modal styles
|
|
|
|
|
combinedCSS += REMAINING_STYLES;
|
|
|
|
|
|
|
|
|
|
// Write the combined CSS to styles.css
|
|
|
|
|
try {
|
|
|
|
|
writeFileSync('styles.css', combinedCSS);
|
2025-06-15 05:37:13 +00:00
|
|
|
console.log('[OK] Built styles.css successfully');
|
Add modular CSS build system with comprehensive source files and documentation
• Introduce a new “styles” directory that breaks out the plugin’s CSS into several modular source files:
– variables.css: Defines all CSS custom properties (spacing, colors, typography, transitions) to serve as design system tokens.
– base.css: Contains foundational styles, animations (e.g. task-flash, task-pulse, fade-in) and core card styles following BEM methodology. Also includes accessibility and performance optimizations.
– components.css: Provides reusable UI component styles and utility classes (e.g. is-hidden, is-loading, buttons, modals, tab system, task selectors) used across multiple views.
– calendar.css: Implements calendar layout and view styling including navigation (month/week views), day formatting, indicators (notes, tasks, daily notes), hover effects and colorized modes.
– tasks.css: Contains styles for task-list views including card layouts, task metadata, priority/ status badges, time tracking, recurring tasks, and interactivity on hover/active states.
– kanban.css: Provides styling for Kanban board views, including board header, column layout, drag/drop feedback, checkboxes, board actions, filters and responsive adjustments.
– filters.css: Implements a unified filtering system across views with a filter bar layout, search and sort controls, advanced filtering panels, multi-select dropdowns, chip badges and date range pickers.
– index.css: A documentation index that outlines the intended build order and purpose of each modular CSS file.
• Add styles/README.md documenting the CSS build system, file structure, dependency order (variables → base → components → calendar → tasks → kanban → filters), and development workflow (make changes in source files, run “npm run build-css”, and test).
• This commit lays a solid foundation for maintainable, consistent styling across the TaskNotes plugin. The CSS build process concatenates these files in the proper order to generate the final (but untracked) styles.css for distribution, while supporting CI/CD integration and responsive design.
• (Optional) The build scripts in package.json have been updated to invoke “build-css” as part of “npm run dev” and “npm run build”, ensuring the latest CSS is built before launching the app.
Overall, this commit modularizes and documents the plugin’s styling strategy, improving maintainability and clarity for future development.
2025-06-08 05:59:40 +00:00
|
|
|
|
|
|
|
|
// Count lines for reference
|
|
|
|
|
const lineCount = combinedCSS.split('\n').length;
|
2025-06-15 05:37:13 +00:00
|
|
|
console.log(`[OK] Generated ${lineCount} lines of CSS`);
|
Add modular CSS build system with comprehensive source files and documentation
• Introduce a new “styles” directory that breaks out the plugin’s CSS into several modular source files:
– variables.css: Defines all CSS custom properties (spacing, colors, typography, transitions) to serve as design system tokens.
– base.css: Contains foundational styles, animations (e.g. task-flash, task-pulse, fade-in) and core card styles following BEM methodology. Also includes accessibility and performance optimizations.
– components.css: Provides reusable UI component styles and utility classes (e.g. is-hidden, is-loading, buttons, modals, tab system, task selectors) used across multiple views.
– calendar.css: Implements calendar layout and view styling including navigation (month/week views), day formatting, indicators (notes, tasks, daily notes), hover effects and colorized modes.
– tasks.css: Contains styles for task-list views including card layouts, task metadata, priority/ status badges, time tracking, recurring tasks, and interactivity on hover/active states.
– kanban.css: Provides styling for Kanban board views, including board header, column layout, drag/drop feedback, checkboxes, board actions, filters and responsive adjustments.
– filters.css: Implements a unified filtering system across views with a filter bar layout, search and sort controls, advanced filtering panels, multi-select dropdowns, chip badges and date range pickers.
– index.css: A documentation index that outlines the intended build order and purpose of each modular CSS file.
• Add styles/README.md documenting the CSS build system, file structure, dependency order (variables → base → components → calendar → tasks → kanban → filters), and development workflow (make changes in source files, run “npm run build-css”, and test).
• This commit lays a solid foundation for maintainable, consistent styling across the TaskNotes plugin. The CSS build process concatenates these files in the proper order to generate the final (but untracked) styles.css for distribution, while supporting CI/CD integration and responsive design.
• (Optional) The build scripts in package.json have been updated to invoke “build-css” as part of “npm run dev” and “npm run build”, ensuring the latest CSS is built before launching the app.
Overall, this commit modularizes and documents the plugin’s styling strategy, improving maintainability and clarity for future development.
2025-06-08 05:59:40 +00:00
|
|
|
|
|
|
|
|
} catch (error) {
|
2025-06-15 05:37:13 +00:00
|
|
|
console.error('[ERROR] Error writing styles.css:', error.message);
|
Add modular CSS build system with comprehensive source files and documentation
• Introduce a new “styles” directory that breaks out the plugin’s CSS into several modular source files:
– variables.css: Defines all CSS custom properties (spacing, colors, typography, transitions) to serve as design system tokens.
– base.css: Contains foundational styles, animations (e.g. task-flash, task-pulse, fade-in) and core card styles following BEM methodology. Also includes accessibility and performance optimizations.
– components.css: Provides reusable UI component styles and utility classes (e.g. is-hidden, is-loading, buttons, modals, tab system, task selectors) used across multiple views.
– calendar.css: Implements calendar layout and view styling including navigation (month/week views), day formatting, indicators (notes, tasks, daily notes), hover effects and colorized modes.
– tasks.css: Contains styles for task-list views including card layouts, task metadata, priority/ status badges, time tracking, recurring tasks, and interactivity on hover/active states.
– kanban.css: Provides styling for Kanban board views, including board header, column layout, drag/drop feedback, checkboxes, board actions, filters and responsive adjustments.
– filters.css: Implements a unified filtering system across views with a filter bar layout, search and sort controls, advanced filtering panels, multi-select dropdowns, chip badges and date range pickers.
– index.css: A documentation index that outlines the intended build order and purpose of each modular CSS file.
• Add styles/README.md documenting the CSS build system, file structure, dependency order (variables → base → components → calendar → tasks → kanban → filters), and development workflow (make changes in source files, run “npm run build-css”, and test).
• This commit lays a solid foundation for maintainable, consistent styling across the TaskNotes plugin. The CSS build process concatenates these files in the proper order to generate the final (but untracked) styles.css for distribution, while supporting CI/CD integration and responsive design.
• (Optional) The build scripts in package.json have been updated to invoke “build-css” as part of “npm run dev” and “npm run build”, ensuring the latest CSS is built before launching the app.
Overall, this commit modularizes and documents the plugin’s styling strategy, improving maintainability and clarity for future development.
2025-06-08 05:59:40 +00:00
|
|
|
process.exit(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Run the build
|
2026-05-12 22:17:35 +00:00
|
|
|
buildCSS();
|