@@ -24,9 +24,10 @@ BreakTimer is a cross-platform desktop application built with Electron that help
24
24
25
25
- ** Entry Point** : ` index.tsx ` - React application entry point
26
26
- ** Components** : React components for UI (Break, Settings, etc.)
27
- - ** Styling** : SCSS files for component styling
27
+ - ** Styling** : CSS with Tailwind CSS for component styling
28
28
- ** Sounds** : Audio files for break notifications
29
29
- ** Preload** : ` preload.js ` - Secure context bridge for IPC
30
+ - ** Fonts** : Inter font bundled locally in ` public/fonts/ `
30
31
31
32
### Types (` app/types/ ` )
32
33
@@ -61,8 +62,8 @@ DEBUG_PROD=true npm run start # Start production with debugging
61
62
``` bash
62
63
npm run lint # Run ESLint
63
64
npm run typecheck # Run TypeScript compiler check
64
- npm run prettier -check # Check code formatting
65
- npm run prettier-fix # Fix code formatting
65
+ npm run format -check # Check code formatting
66
+ npm run format # Fix code formatting
66
67
```
67
68
68
69
### Testing
@@ -86,10 +87,12 @@ npm run package-linux # Package for Linux
86
87
- ** Electron** - Desktop application framework
87
88
- ** React 19** - UI framework for renderer process with new JSX transform
88
89
- ** TypeScript 5.8** - Primary language
89
- - ** Blueprint.js v6** - UI component library
90
+ - ** shadcn/ui** - Modern UI component library with Radix UI primitives
91
+ - ** Tailwind CSS** - Utility-first CSS framework for styling
92
+ - ** Inter Font** - Typography font bundled locally (WOFF2 format)
90
93
- ** Framer Motion** - Animation library for smooth transitions
91
- - ** SCSS ** - Styling
92
- - ** Webpack 5** - Module bundler
94
+ - ** Vite ** - Frontend build tool and dev server for renderer process
95
+ - ** Webpack 5** - Module bundler for main process
93
96
- ** electron-store** - Settings persistence
94
97
- ** Howler.js** - Audio playback
95
98
- ** moment.js** - Date/time handling
@@ -114,29 +117,44 @@ Settings are managed through electron-store with TypeScript interfaces defined i
114
117
115
118
## Build System
116
119
117
- - Uses Webpack 5 with separate configurations for main/renderer processes
118
- - Babel for transpilation with TypeScript support
120
+ - ** Main Process** : Uses Webpack 5 for building the Electron main process
121
+ - ** Renderer Process** : Uses Vite for fast development and optimized production builds
122
+ - Babel for transpiliation with TypeScript support
119
123
- React Fast Refresh for hot module replacement (replaced react-hot-loader)
120
124
- Production builds are optimized and minified
121
125
- TypeScript configured with ` skipLibCheck: true ` to avoid node_modules type checking
122
126
123
127
## Recent Updates
124
128
129
+ ### UI and Styling
130
+
131
+ - ** Migrated to shadcn/ui** - Modern component library with Radix UI primitives
132
+ - ** Added Tailwind CSS** - Utility-first CSS framework for consistent styling
133
+ - ** Bundled Inter font locally** - High-quality typography with WOFF2 format for offline use
134
+ - ** Enhanced button interactions** - Improved hover/active states for better UX
135
+
125
136
### Animation System
126
137
127
138
- ** Replaced react-spring with framer-motion** for better performance and modern API
128
139
- Break window animations now use ` motion.div ` components
140
+ - ** Smooth progress animations** - 50ms updates for notification progress, 100ms for break window
129
141
- Fixed infinite loop issues by using functional state updates in useEffect hooks
130
142
143
+ ### Window Management
144
+
145
+ - ** Dynamic notification sizing** - Window width adjusts based on enabled buttons (450px-550px)
146
+ - ** Circular progress border** - Start button shows countdown progress around its border
147
+ - Improved timer cleanup to prevent flickering during hot reloads
148
+
131
149
### Dependencies
132
150
133
151
- ** React 19** with new JSX transform (` "jsx": "react-jsx" ` )
134
- - ** Blueprint.js v6** with updated CSS class names (` bp6-* ` instead of ` bp5-* ` )
135
152
- ** TypeScript 5.8** with improved type checking
136
153
- ** Framer Motion** for smooth animations
154
+ - ** Vite** for fast development builds
137
155
138
156
### Development Experience
139
157
140
158
- Fixed tsconfig.json to only check app code, not node_modules
141
- - All Blueprint CSS classes updated to v6 naming convention
159
+ - Updated script names ( ` npm run format ` instead of ` prettier-fix ` )
142
160
- Improved build configuration for better hot reloading
0 commit comments