@@ -37,32 +37,59 @@ const RoadmapViewerPage = () => {
3737 fetchRoadmap ( ) ;
3838 } , [ ] ) ;
3939
40- const getStatusColor = ( status ) => {
40+ const getStatusClasses = ( status ) => {
41+ let bgColor = '' ;
42+ let borderColor = '' ;
4143 switch ( status ) {
4244 case 'Planned' :
43- return 'bg-blue-500' ;
45+ bgColor = 'bg-blue-500' ;
46+ borderColor = 'border-blue-700' ;
47+ break ;
4448 case 'In Progress' :
45- return 'bg-yellow-500' ;
49+ bgColor = 'bg-yellow-500' ;
50+ borderColor = 'border-yellow-700' ;
51+ break ;
4652 case 'Completed' :
47- return 'bg-green-500' ;
53+ bgColor = 'bg-green-500' ;
54+ borderColor = 'border-green-700' ;
55+ break ;
4856 case 'On Hold' :
49- return 'bg-red-500' ;
57+ bgColor = 'bg-red-500' ;
58+ borderColor = 'border-red-700' ;
59+ break ;
5060 default :
51- return 'bg-gray-500' ;
61+ bgColor = 'bg-gray-500' ;
62+ borderColor = 'border-gray-700' ;
5263 }
64+ return `${ bgColor } ${ borderColor } ` ;
5365 } ;
5466
55- const getPriorityColor = ( priority ) => {
67+ const getPriorityClasses = ( priority ) => {
68+ let textColor = '' ;
69+ let borderColor = '' ;
5670 switch ( priority ) {
5771 case 'High' :
58- return 'text-red-400' ;
72+ textColor = 'text-red-400' ;
73+ borderColor = 'border-red-700' ;
74+ break ;
5975 case 'Medium' :
60- return 'text-yellow-400' ;
76+ textColor = 'text-yellow-400' ;
77+ borderColor = 'border-yellow-700' ;
78+ break ;
6179 case 'Low' :
62- return 'text-green-400' ;
80+ textColor = 'text-green-400' ;
81+ borderColor = 'border-green-700' ;
82+ break ;
6383 default :
64- return 'text-gray-400' ;
84+ textColor = 'text-gray-400' ;
85+ borderColor = 'border-gray-700' ;
6586 }
87+ return `${ textColor } ${ borderColor } ` ;
88+ } ;
89+
90+ const getOnlyBgStatusColor = ( status ) => {
91+ const classes = getStatusClasses ( status ) ;
92+ return classes . split ( ' ' ) [ 0 ] ; // Returns only the bgColor class (e.g., "bg-blue-500")
6693 } ;
6794
6895 const RoadmapView = ( ) => {
@@ -85,7 +112,7 @@ const RoadmapViewerPage = () => {
85112 className = { `text-lg font-mono tracking-wider mb-4 flex items-center gap-2 text-white` }
86113 >
87114 < span
88- className = { `w-3 h-3 rounded-full ${ getStatusColor ( status ) } ` }
115+ className = { `w-3 h-3 rounded-full ${ getOnlyBgStatusColor ( status ) } ` }
89116 > </ span >
90117 { status } ({ groupedApps [ status ] ?. length || 0 } )
91118 </ h3 >
@@ -164,53 +191,53 @@ const RoadmapViewerPage = () => {
164191 />
165192 </ div >
166193 < table className = "min-w-full divide-y divide-gray-700 text-white" >
167- < thead >
194+ < thead className = "bg-gray-800/60 border-b border-gray-700" >
168195 < tr >
169196 < th
170197 scope = "col"
171- className = "px-6 py-3 text-left text-sm font-mono text-gray-400 uppercase tracking-wide cursor-pointer hover:text-white transition-colors"
198+ className = "px-6 py-3 text-left text-sm font-mono font-bold text-gray-400 uppercase tracking-wide cursor-pointer hover:text-white transition-colors"
172199 onClick = { ( ) => handleSort ( 'title' ) }
173200 >
174201 Title { renderSortArrow ( 'title' ) }
175202 </ th >
176203 < th
177204 scope = "col"
178- className = "px-6 py-3 text-left text-sm font-mono text-gray-400 uppercase tracking-wide"
205+ className = "px-6 py-3 text-left text-sm font-mono font-bold text-gray-400 uppercase tracking-wide"
179206 >
180207 Description
181208 </ th >
182209 < th
183210 scope = "col"
184- className = "px-6 py-3 text-left text-sm font-mono text-gray-400 uppercase tracking-wide cursor-pointer hover:text-white transition-colors"
211+ className = "px-6 py-3 text-left text-sm font-mono font-bold text-gray-400 uppercase tracking-wide cursor-pointer hover:text-white transition-colors"
185212 onClick = { ( ) => handleSort ( 'status' ) }
186213 >
187214 Status { renderSortArrow ( 'status' ) }
188215 </ th >
189216 < th
190217 scope = "col"
191- className = "px-6 py-3 text-left text-sm font-mono text-gray-400 uppercase tracking-wide cursor-pointer hover:text-white transition-colors"
218+ className = "px-6 py-3 text-left text-sm font-mono font-bold text-gray-400 uppercase tracking-wide cursor-pointer hover:text-white transition-colors"
192219 onClick = { ( ) => handleSort ( 'priority' ) }
193220 >
194221 Priority { renderSortArrow ( 'priority' ) }
195222 </ th >
196223 < th
197224 scope = "col"
198- className = "px-6 py-3 text-left text-sm font-mono text-gray-400 uppercase tracking-wide cursor-pointer hover:text-white transition-colors"
225+ className = "px-6 py-3 text-left text-sm font-mono font-bold text-gray-400 uppercase tracking-wide cursor-pointer hover:text-white transition-colors"
199226 onClick = { ( ) => handleSort ( 'created_at' ) }
200227 >
201228 Created At { renderSortArrow ( 'created_at' ) }
202229 </ th >
203230 < th
204231 scope = "col"
205- className = "px-6 py-3 text-left text-sm font-mono text-gray-400 uppercase tracking-wide"
232+ className = "px-6 py-3 text-left text-sm font-mono font-bold text-gray-400 uppercase tracking-wide"
206233 >
207234 Notes
208235 </ th >
209236 </ tr >
210237 </ thead >
211238 < tbody className = "divide-y divide-gray-700" >
212- { sortedApps . map ( ( app ) => (
213- < tr key = { app . id } className = " group hover:bg-gray-800/50 transition-colors" >
239+ { sortedApps . map ( ( app , index ) => (
240+ < tr key = { app . id } className = { ` group hover:bg-indigo-500/20 transition-colors ${ index % 2 === 0 ? 'bg-gray-900/40' : 'bg-gray-800/40' } ` } >
214241 < td className = "px-6 py-4 whitespace-nowrap text-sm font-mono font-medium text-white" >
215242 < Link to = { `/roadmap/${ app . id } ` } className = "hover:underline text-purple-400" >
216243 { app . title }
@@ -219,16 +246,16 @@ const RoadmapViewerPage = () => {
219246 < td className = "px-6 py-4 text-sm font-mono text-gray-400" >
220247 { app . description }
221248 </ td >
222- < td className = "px-6 py-4 whitespace-nowrap text-sm " >
249+ < td className = "px-6 py-4 whitespace-nowrap" >
223250 < span
224- className = { `px-2 inline-flex text-xs leading-5 font-semibold rounded-full ${ getStatusColor ( app . status || 'Planned' ) } text-white` }
251+ className = { `px-2 py-0 inline-flex text-xs font-mono font-semibold rounded-md shadow-sm border ${ getStatusClasses ( app . status || 'Planned' ) } text-white` }
225252 >
226253 { app . status || 'Planned' }
227254 </ span >
228255 </ td >
229- < td className = "px-6 py-4 whitespace-nowrap text-sm " >
256+ < td className = "px-6 py-4 whitespace-nowrap" >
230257 < span
231- className = { `font-mono font-medium ${ getPriorityColor ( app . priority ) } ` }
258+ className = { `px-2 py-0 inline-flex text-xs font-mono font-semibold rounded-md shadow-sm border ${ getPriorityClasses ( app . priority || 'Low' ) } ` }
232259 >
233260 { app . priority || 'Low' }
234261 </ span >
@@ -260,10 +287,10 @@ const RoadmapViewerPage = () => {
260287
261288 < div className = "mx-auto max-w-2xl text-center mb-12" >
262289 < h1 className = "text-4xl md:text-5xl font-bold tracking-tighter text-white font-mono mb-4" >
263- SYSTEM_LOG < span className = "text-gray-600" > //</ span > ROADMAP
290+ FEZZILLA < span className = "text-gray-600" > //</ span > ROADMAP
264291 </ h1 >
265292 < p className = "text-sm md:text-base text-gray-400 max-w-2xl mx-auto font-mono tracking-wide" >
266- [ TRACKING APPLICATION DEVELOPMENT CYCLES ]
293+ [ TRACKING PROJECT STATUS AND PROGRESS ]
267294 </ p >
268295 </ div >
269296
0 commit comments