Skip to content

Commit bec20ac

Browse files
committed
Add pricing table and subscription page styles with hover effects and notifications
1 parent 5a751f0 commit bec20ac

File tree

1 file changed

+130
-1
lines changed

1 file changed

+130
-1
lines changed

public/css/theme.css

Lines changed: 130 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,4 +349,133 @@ html, body {
349349
.bg-primary { background-color: var(--primary-color); }
350350
.bg-secondary { background-color: var(--secondary-color); }
351351
.bg-surface { background-color: var(--surface-color); }
352-
.bg-surface-variant { background-color: var(--surface-variant); }
352+
.bg-surface-variant { background-color: var(--surface-variant); }
353+
354+
/* Subscription page styles */
355+
.pricing-table {
356+
display: flex;
357+
flex-wrap: wrap;
358+
gap: var(--spacing-lg);
359+
justify-content: center;
360+
margin: var(--spacing-xl) 0;
361+
}
362+
363+
.pricing-plan {
364+
flex: 1;
365+
min-width: 280px;
366+
max-width: 350px;
367+
background-color: var(--card-background);
368+
border-radius: var(--border-radius-lg);
369+
box-shadow: var(--shadow-md);
370+
padding: var(--spacing-lg);
371+
text-align: center;
372+
transition: transform var(--transition-normal), box-shadow var(--transition-normal);
373+
border: 1px solid var(--border-color);
374+
}
375+
376+
.pricing-plan:hover {
377+
transform: translateY(-5px);
378+
box-shadow: var(--shadow-lg);
379+
}
380+
381+
.pricing-plan.popular {
382+
border: 2px solid var(--primary-color);
383+
position: relative;
384+
z-index: 1;
385+
}
386+
387+
.pricing-plan.popular::before {
388+
content: "Best Value";
389+
position: absolute;
390+
top: -12px;
391+
left: 50%;
392+
transform: translateX(-50%);
393+
background-color: var(--primary-color);
394+
color: var(--text-on-primary);
395+
padding: 4px 12px;
396+
border-radius: var(--border-radius-full);
397+
font-size: var(--font-size-xs);
398+
font-weight: var(--font-weight-bold);
399+
}
400+
401+
.plan-name {
402+
font-size: var(--font-size-xl);
403+
font-weight: var(--font-weight-bold);
404+
color: var(--text-primary);
405+
margin-bottom: var(--spacing-sm);
406+
}
407+
408+
.plan-price {
409+
font-size: var(--font-size-3xl);
410+
font-weight: var(--font-weight-bold);
411+
color: var(--primary-color);
412+
margin-bottom: var(--spacing-lg);
413+
}
414+
415+
.plan-price small {
416+
font-size: var(--font-size-sm);
417+
font-weight: var(--font-weight-normal);
418+
color: var(--text-secondary);
419+
}
420+
421+
.plan-features {
422+
list-style-type: none;
423+
padding: 0;
424+
margin: 0 0 var(--spacing-lg) 0;
425+
text-align: left;
426+
}
427+
428+
.plan-features li {
429+
padding: var(--spacing-sm) 0;
430+
border-bottom: 1px solid var(--border-color);
431+
color: var(--text-secondary);
432+
position: relative;
433+
padding-left: 25px;
434+
}
435+
436+
.plan-features li::before {
437+
content: "✓";
438+
color: var(--success-color);
439+
position: absolute;
440+
left: 0;
441+
font-weight: var(--font-weight-bold);
442+
}
443+
444+
.payment-methods {
445+
text-align: center;
446+
margin: var(--spacing-xl) 0;
447+
}
448+
449+
.payment-methods p {
450+
margin-bottom: var(--spacing-md);
451+
color: var(--text-secondary);
452+
}
453+
454+
.back-link {
455+
display: inline-block;
456+
margin-top: var(--spacing-xl);
457+
color: var(--primary-color);
458+
text-decoration: none;
459+
font-weight: var(--font-weight-medium);
460+
}
461+
462+
.back-link:hover {
463+
text-decoration: underline;
464+
}
465+
466+
.offline-notification {
467+
background-color: var(--warning-color);
468+
color: white;
469+
text-align: center;
470+
padding: var(--spacing-sm);
471+
position: fixed;
472+
bottom: 0;
473+
left: 0;
474+
right: 0;
475+
transform: translateY(100%);
476+
transition: transform var(--transition-normal);
477+
}
478+
479+
.offline-notification.visible {
480+
transform: translateY(0);
481+
}

0 commit comments

Comments
 (0)