larxius commited on
Commit
c7ce533
·
verified ·
1 Parent(s): e2d7d12

Update frontend/src/components/FeatureComparison.jsx

Browse files
frontend/src/components/FeatureComparison.jsx CHANGED
@@ -138,134 +138,133 @@ export const FeatureComparison = () => {
138
  };
139
 
140
  return (
141
- <section id="comparison" className="py-xl md:py-2xl bg-surface relative border-t border-outline-variant/50">
142
- <div className="max-w-container-max mx-auto px-gutter">
143
 
144
  {/* Section Header */}
145
- <div className="text-center mb-xl">
146
- <span className="bg-primary/10 text-primary font-bold px-sm py-[4px] rounded-full text-[12px] uppercase tracking-wider mb-xs border border-primary/20 inline-block">
147
  Competitive Advantage
148
  </span>
149
- <h2 className="font-headline-lg text-[28px] md:text-[36px] font-extrabold text-on-surface mb-xs tracking-tight">
150
  How LarShield Compares
151
  </h2>
152
- <p className="font-body-md text-on-surface-variant max-w-[680px] mx-auto text-[15px] leading-relaxed">
153
  See why modern engineering and security teams choose LarShield over legacy vulnerability scanners.
154
  </p>
155
  </div>
156
 
157
  {/* Table Container */}
158
- <div className="bg-surface-container-lowest border border-outline-variant/80 rounded-2xl shadow-xl overflow-hidden">
159
  <div className="overflow-x-auto custom-scrollbar">
160
- <table className="w-full text-left border-collapse min-w-[760px]">
161
 
162
  {/* Header Row */}
163
  <thead>
164
- <tr className="border-b border-outline-variant/80">
165
- <th className="py-md px-lg bg-[#0B0C10] text-white font-bold text-[15px] w-[30%]">
166
  Feature
167
  </th>
168
 
169
  {/* LarShield Column Header */}
170
- <th className="py-md px-md bg-gradient-to-b from-blue-600 to-blue-700 text-white font-bold text-[16px] text-center w-[20%] relative shadow-md">
171
  <div className="flex items-center justify-center gap-2">
172
- <div className="w-7 h-7 rounded-lg bg-white/10 p-1 flex items-center justify-center border border-white/20">
173
  <img src="/logo.png" alt="LarShield" className="w-full h-full object-contain" />
174
  </div>
175
- <span className="tracking-tight font-display font-extrabold text-[17px] text-white">LarShield</span>
176
  </div>
177
  </th>
178
 
179
  {/* Nessus */}
180
- <th className="py-md px-md bg-[#0B0C10] text-white font-bold text-[15px] text-center w-[16.66%]">
181
- <div className="flex items-center justify-center gap-2">
182
- <div className="w-6 h-6 rounded-full bg-emerald-600 text-white font-black text-[12px] flex items-center justify-center shadow-inner">
183
  N
184
  </div>
185
- <span className="font-bold">Nessus</span>
186
  </div>
187
  </th>
188
 
189
  {/* OpenVAS */}
190
- <th className="py-md px-md bg-[#0B0C10] text-white font-bold text-[15px] text-center w-[16.66%]">
191
- <div className="flex items-center justify-center gap-2">
192
- <div className="w-6 h-6 rounded-full bg-emerald-500/20 text-emerald-400 border border-emerald-500/40 flex items-center justify-center">
193
- <span className="material-symbols-outlined text-[15px]">bug_report</span>
194
  </div>
195
- <span className="font-bold">OpenVAS</span>
196
  </div>
197
  </th>
198
 
199
  {/* Qualys */}
200
- <th className="py-md px-md bg-[#0B0C10] text-white font-bold text-[15px] text-center w-[16.66%]">
201
- <div className="flex items-center justify-center gap-2">
202
- <div className="w-6 h-6 rounded-full bg-red-600 text-white font-bold text-[12px] flex items-center justify-center shadow-inner">
203
  Q
204
  </div>
205
- <span className="font-bold">Qualys</span>
206
  </div>
207
  </th>
208
  </tr>
209
  </thead>
210
 
211
  {/* Table Body */}
212
- <tbody className="divide-y divide-outline-variant/40 text-[14px]">
213
  {comparisonData.map((row, idx) => (
214
  <tr
215
  key={idx}
216
- className={`${idx % 2 === 0 ? 'bg-surface-container-lowest' : 'bg-surface/40'} hover:bg-surface-container-low/80 transition-colors`}
217
  >
218
  {/* Feature Name */}
219
- <td className="py-3.5 px-lg font-semibold text-on-surface">
220
  {row.feature}
221
  </td>
222
 
223
  {/* LarShield Cell (Highlighted Column) */}
224
- <td className="py-3.5 px-md text-center bg-blue-50/70 border-x border-blue-100 font-bold">
225
  {renderCell(row.larshield)}
226
  </td>
227
 
228
  {/* Nessus Cell */}
229
- <td className="py-3.5 px-md text-center">
230
  {renderCell(row.nessus, row.nessusLabel)}
231
  </td>
232
 
233
  {/* OpenVAS Cell */}
234
- <td className="py-3.5 px-md text-center">
235
  {renderCell(row.openvas, row.openvasLabel)}
236
  </td>
237
 
238
  {/* Qualys Cell */}
239
- <td className="py-3.5 px-md text-center">
240
  {renderCell(row.qualys, row.qualysLabel)}
241
  </td>
242
  </tr>
243
  ))}
244
 
245
  {/* Pricing Row */}
246
- <tr className="bg-surface-container-low font-bold border-t-2 border-outline-variant/60">
247
- <td className="py-4 px-lg text-on-surface text-[15px]">
248
- Pricing
249
  </td>
250
 
251
  {/* LarShield Pricing */}
252
- <td className="py-4 px-md text-center bg-blue-100/60 border-x border-blue-200 text-primary text-[14.5px] font-extrabold">
253
  Flexible &amp; Affordable
254
  </td>
255
 
256
  {/* Nessus Pricing */}
257
- <td className="py-4 px-md text-center text-on-surface-variant font-medium">
258
  Subscription
259
  </td>
260
 
261
  {/* OpenVAS Pricing */}
262
- <td className="py-4 px-md text-center text-on-surface-variant font-medium">
263
- Free <br className="sm:hidden" />
264
- <span className="text-[12px] opacity-80">(Open Source)</span>
265
  </td>
266
 
267
  {/* Qualys Pricing */}
268
- <td className="py-4 px-md text-center text-on-surface-variant font-medium">
269
  Subscription
270
  </td>
271
  </tr>
 
138
  };
139
 
140
  return (
141
+ <section id="comparison" className="py-12 md:py-16 bg-gradient-to-b from-slate-50/50 to-white relative border-t border-slate-200/70">
142
+ <div className="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8">
143
 
144
  {/* Section Header */}
145
+ <div className="text-center mb-8">
146
+ <span className="bg-blue-50 text-blue-700 font-bold px-3 py-1 rounded-full text-xs uppercase tracking-wider mb-2 border border-blue-200/60 inline-block">
147
  Competitive Advantage
148
  </span>
149
+ <h2 className="text-2xl md:text-3xl font-extrabold text-slate-900 mb-2 tracking-tight">
150
  How LarShield Compares
151
  </h2>
152
+ <p className="text-slate-600 max-w-2xl mx-auto text-sm md:text-base leading-relaxed">
153
  See why modern engineering and security teams choose LarShield over legacy vulnerability scanners.
154
  </p>
155
  </div>
156
 
157
  {/* Table Container */}
158
+ <div className="bg-white border border-slate-200 rounded-2xl shadow-xl shadow-slate-200/60 overflow-hidden">
159
  <div className="overflow-x-auto custom-scrollbar">
160
+ <table className="w-full text-left border-collapse min-w-[680px]">
161
 
162
  {/* Header Row */}
163
  <thead>
164
+ <tr className="border-b border-slate-800">
165
+ <th className="py-3.5 px-5 bg-slate-900 text-white font-bold text-sm w-[34%]">
166
  Feature
167
  </th>
168
 
169
  {/* LarShield Column Header */}
170
+ <th className="py-3.5 px-4 bg-gradient-to-b from-blue-600 to-blue-700 text-white font-bold text-center w-[20%] relative shadow-md">
171
  <div className="flex items-center justify-center gap-2">
172
+ <div className="w-6 h-6 rounded-md bg-white/15 p-0.5 flex items-center justify-center border border-white/20">
173
  <img src="/logo.png" alt="LarShield" className="w-full h-full object-contain" />
174
  </div>
175
+ <span className="tracking-tight font-extrabold text-base text-white">LarShield</span>
176
  </div>
177
  </th>
178
 
179
  {/* Nessus */}
180
+ <th className="py-3.5 px-4 bg-slate-900 text-white font-semibold text-sm text-center w-[15%]">
181
+ <div className="flex items-center justify-center gap-1.5">
182
+ <div className="w-5 h-5 rounded-full bg-emerald-600 text-white font-bold text-[11px] flex items-center justify-center shadow-inner">
183
  N
184
  </div>
185
+ <span>Nessus</span>
186
  </div>
187
  </th>
188
 
189
  {/* OpenVAS */}
190
+ <th className="py-3.5 px-4 bg-slate-900 text-white font-semibold text-sm text-center w-[15%]">
191
+ <div className="flex items-center justify-center gap-1.5">
192
+ <div className="w-5 h-5 rounded-full bg-emerald-500/20 text-emerald-400 border border-emerald-500/40 flex items-center justify-center">
193
+ <span className="material-symbols-outlined text-[13px]">bug_report</span>
194
  </div>
195
+ <span>OpenVAS</span>
196
  </div>
197
  </th>
198
 
199
  {/* Qualys */}
200
+ <th className="py-3.5 px-4 bg-slate-900 text-white font-semibold text-sm text-center w-[16%]">
201
+ <div className="flex items-center justify-center gap-1.5">
202
+ <div className="w-5 h-5 rounded-full bg-red-600 text-white font-bold text-[11px] flex items-center justify-center shadow-inner">
203
  Q
204
  </div>
205
+ <span>Qualys</span>
206
  </div>
207
  </th>
208
  </tr>
209
  </thead>
210
 
211
  {/* Table Body */}
212
+ <tbody className="divide-y divide-slate-100 text-xs sm:text-sm">
213
  {comparisonData.map((row, idx) => (
214
  <tr
215
  key={idx}
216
+ className={`${idx % 2 === 0 ? 'bg-white' : 'bg-slate-50/50'} hover:bg-blue-50/30 transition-colors`}
217
  >
218
  {/* Feature Name */}
219
+ <td className="py-2.5 px-5 font-semibold text-slate-800">
220
  {row.feature}
221
  </td>
222
 
223
  {/* LarShield Cell (Highlighted Column) */}
224
+ <td className="py-2.5 px-4 text-center bg-blue-50/60 border-x border-blue-100/80 font-bold">
225
  {renderCell(row.larshield)}
226
  </td>
227
 
228
  {/* Nessus Cell */}
229
+ <td className="py-2.5 px-4 text-center">
230
  {renderCell(row.nessus, row.nessusLabel)}
231
  </td>
232
 
233
  {/* OpenVAS Cell */}
234
+ <td className="py-2.5 px-4 text-center">
235
  {renderCell(row.openvas, row.openvasLabel)}
236
  </td>
237
 
238
  {/* Qualys Cell */}
239
+ <td className="py-2.5 px-4 text-center">
240
  {renderCell(row.qualys, row.qualysLabel)}
241
  </td>
242
  </tr>
243
  ))}
244
 
245
  {/* Pricing Row */}
246
+ <tr className="bg-slate-100/70 font-bold border-t-2 border-slate-200">
247
+ <td className="py-3 px-5 text-slate-900 text-sm">
248
+ Pricing Model
249
  </td>
250
 
251
  {/* LarShield Pricing */}
252
+ <td className="py-3 px-4 text-center bg-blue-100/70 border-x border-blue-200/80 text-blue-700 text-xs sm:text-sm font-extrabold">
253
  Flexible &amp; Affordable
254
  </td>
255
 
256
  {/* Nessus Pricing */}
257
+ <td className="py-3 px-4 text-center text-slate-600 font-medium text-xs">
258
  Subscription
259
  </td>
260
 
261
  {/* OpenVAS Pricing */}
262
+ <td className="py-3 px-4 text-center text-slate-600 font-medium text-xs">
263
+ Free <span className="text-[11px] text-slate-500">(Open Source)</span>
 
264
  </td>
265
 
266
  {/* Qualys Pricing */}
267
+ <td className="py-3 px-4 text-center text-slate-600 font-medium text-xs">
268
  Subscription
269
  </td>
270
  </tr>