@@ -88,11 +88,14 @@ export default function Blogs() {
8888 < div className = "blog-hero-container" >
8989 < div className = "hero-content" >
9090 < h1 className = "blog-main-title" >
91- Engineering uptime
91+ Welcome to < span className = "gradient-text" > recode hive</ span > { " " }
92+ Blogs
9293 </ h1 >
93-
9494 < p className = "blog-main-subtitle" >
95- blog by recode community
95+ Discover comprehensive web development articles, tutorials, and
96+ insights covering everything from HTML & CSS fundamentals to
97+ advanced JavaScript , React , Node . js , Data Structures &
98+ Algorithms , and cutting - edge technologies .
9699 </ p >
97100 </ div >
98101 </ div >
@@ -101,95 +104,50 @@ export default function Blogs() {
101104 { /* Latest Articles Section */ }
102105 < section className = "latest-articles-section" >
103106 < div className = "articles-container-wrapper" >
104- { /* Sidebar */ }
105- < aside className = "blog-sidebar" >
106- < div className = "sidebar-section" >
107- < h3 className = "sidebar-title" >
108- < svg
109- className = "sidebar-icon"
110- viewBox = "0 0 24 24"
111- fill = "none"
112- stroke = "currentColor"
113- >
114- < circle cx = "11" cy = "11" r = "8" > </ circle >
115- < path d = "m21 21-4.35-4.35" > </ path >
116- </ svg >
117- Search
118- </ h3 >
119- < div className = "sidebar-search-wrapper" >
120- < input
121- type = "text"
122- placeholder = "Search articles..."
123- className = "sidebar-search-input"
124- value = { searchTerm }
125- onChange = { handleSearchChange }
126- />
107+ < div className = "articles-main-content" >
108+ < div className = "blog-search-panel" >
109+ < p className = "blog-search-eyebrow" > Explore articles</ p >
110+ < h2 className = "blog-search-title" > Find the right guide</ h2 >
111+ < form
112+ className = "blog-search-form"
113+ onSubmit = { handleSearchSubmit }
114+ >
115+ < label className = "blog-search-field" >
116+ < span className = "blog-search-visually-hidden" >
117+ Search blog articles
118+ </ span >
119+ < svg
120+ className = "blog-search-submit-icon"
121+ viewBox = "0 0 24 24"
122+ fill = "none"
123+ stroke = "currentColor"
124+ aria-hidden = "true"
125+ >
126+ < circle cx = "11" cy = "11" r = "8" > </ circle >
127+ < path d = "m21 21-4.35-4.35" > </ path >
128+ </ svg >
129+ < input
130+ type = "search"
131+ placeholder = "Search tutorials, tools, or technologies"
132+ value = { searchInput }
133+ onChange = { handleSearchChange }
134+ />
135+ </ label >
136+ < button className = "blog-search-button" type = "submit" >
137+ Search
138+ </ button >
127139 { searchTerm && (
128140 < button
129- className = "sidebar- clear-btn "
130- onClick = { ( ) => setSearchTerm ( "" ) }
131- aria-label = "Clear search"
141+ className = "blog-search- clear-button "
142+ type = "button"
143+ onClick = { handleClearFilters }
132144 >
133- < svg
134- viewBox = "0 0 24 24"
135- fill = "none"
136- stroke = "currentColor"
137- >
138- < line x1 = "18" y1 = "6" x2 = "6" y2 = "18" > </ line >
139- < line x1 = "6" y1 = "6" x2 = "18" y2 = "18" > </ line >
140- </ svg >
145+ Clear
141146 </ button >
142147 ) }
143- </ div >
148+ </ form >
144149 </ div >
145150
146- < div className = "sidebar-section" >
147- < h3 className = "sidebar-title" >
148- < svg
149- className = "sidebar-icon"
150- viewBox = "0 0 24 24"
151- fill = "none"
152- stroke = "currentColor"
153- >
154- < rect x = "3" y = "3" width = "7" height = "7" > </ rect >
155- < rect x = "14" y = "3" width = "7" height = "7" > </ rect >
156- < rect x = "14" y = "14" width = "7" height = "7" > </ rect >
157- < rect x = "3" y = "14" width = "7" height = "7" > </ rect >
158- </ svg >
159- Categories
160- </ h3 >
161- < div className = "category-list" >
162- { categories . map ( ( category ) => (
163- < button
164- key = { category }
165- className = { `category-item ${ selectedCategory === category ? "active" : "" } ` }
166- onClick = { ( ) => handleCategoryClick ( category ) }
167- >
168- < span className = "category-name" > { category } </ span >
169- < span className = "category-count" >
170- { category === "All"
171- ? blogs . length
172- : blogs . filter ( ( blog ) => blog . category === category )
173- . length }
174- </ span >
175- </ button >
176- ) ) }
177- </ div >
178- </ div >
179-
180- { ( searchTerm || selectedCategory !== "All" ) && (
181- < div className = "sidebar-section" >
182- < button
183- className = "clear-filters-btn"
184- onClick = { handleClearFilters }
185- type = "button"
186- >
187- Clear Filters
188- </ button >
189- </ div >
190- ) }
191- </ aside >
192-
193151 { /* Search Results Counter */ }
194152 { searchTerm && (
195153 < div className = "search-results-info" >
@@ -225,6 +183,7 @@ export default function Blogs() {
225183 </ div >
226184 ) }
227185 </ div >
186+ </ div >
228187 </ div >
229188 </ section >
230189 </ div >
@@ -321,5 +280,3 @@ const BlogCard = ({ blog }: { blog: (typeof blogs)[number] }) => {
321280 </ div >
322281 ) ;
323282} ;
324-
325-
0 commit comments