Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
143 changes: 88 additions & 55 deletions src/components/merch/FilterBar.css
Original file line number Diff line number Diff line change
@@ -1,29 +1,22 @@
/* Filter Bar Styles */
/* Filter Sidebar Styles */

.filter-bar {
background: var(--ifm-card-background-color);
border-bottom: 1px solid var(--ifm-color-emphasis-200);
position: sticky;
top: 60px;
z-index: 100;
border: 1px solid var(--ifm-color-emphasis-200);
border-radius: 12px;
padding: 1.5rem;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.filter-bar-container {
max-width: 1400px;
margin: 0 auto;
padding: 1.5rem 2rem;
display: flex;
justify-content: space-between;
align-items: center;
flex-direction: column;
gap: 2rem;
flex-wrap: wrap;
}

/* Filter Section */
.filter-section {
flex: 1;
min-width: 300px;
width: 100%;
}

.filter-header {
Expand All @@ -44,35 +37,52 @@
/* Category Filters */
.category-filters {
display: flex;
flex-direction: column;
gap: 0.75rem;
flex-wrap: wrap;
}

.category-button {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.5rem 1rem;
background: var(--ifm-color-emphasis-100);
border: 2px solid transparent;
gap: 0.75rem;
padding: 0.75rem 1rem;
background: #f5f5f5;
border: 2px solid #e0e0e0;
border-radius: 8px;
font-size: 0.875rem;
font-weight: 500;
color: #2d3748;
cursor: pointer;
transition: all 0.2s ease;
width: 100%;
text-align: left;
}

.category-button:hover {
background: var(--ifm-color-emphasis-200);
transform: translateY(-2px);
background: #ffffff;
border-color: #cccccc;
transform: translateX(4px);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
color: #1a1a1a;
}

.category-button:active {
transform: translateX(2px);
}

.category-button.active {
background: var(--ifm-color-primary);
border-color: var(--ifm-color-primary);
background: linear-gradient(135deg, #667eea 0%, #5b47d6 100%);
border-color: #667eea;
color: #ffffff !important;
font-weight: 600;
box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
}

.category-button.active:hover {
background: linear-gradient(135deg, #818cf8 0%, #06b6d4 100%);
border-color: #818cf8;
transform: translateX(4px);
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
}

.category-icon {
Expand All @@ -85,20 +95,20 @@

/* Sort Section */
.sort-section {
min-width: 200px;
width: 100%;
}

.sort-select {
width: 100%;
padding: 0.625rem 1rem;
background: var(--ifm-color-emphasis-100);
border: 2px solid var(--ifm-color-emphasis-200);
background: #f5f5f5;
border: 2px solid #e0e0e0;
border-radius: 8px;
font-size: 0.875rem;
font-weight: 500;
color: var(--ifm-font-color-base);
cursor: pointer;
transition: all 0.2s ease;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
appearance: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
Expand All @@ -107,46 +117,47 @@
}

.sort-select:hover {
border-color: var(--ifm-color-primary);
background-color: #ffffff;
border-color: #999999;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.sort-select:focus {
outline: none;
border-color: var(--ifm-color-primary);
box-shadow: 0 0 0 3px var(--ifm-color-primary-lightest);
border-color: #667eea;
background-color: #ffffff;
box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.15), 0 2px 8px rgba(102, 126, 234, 0.2);
}

/* Responsive Design */
@media (max-width: 768px) {
.filter-bar-container {
padding: 1rem;
flex-direction: column;
align-items: stretch;
}

.filter-section {
min-width: 100%;
@media (max-width: 992px) {
.filter-bar {
margin-bottom: 2rem;
}

.category-filters {
gap: 0.5rem;
flex-direction: row;
flex-wrap: wrap;
}

.category-button {
padding: 0.5rem 0.75rem;
font-size: 0.8125rem;
width: auto;
}
}

.category-icon {
font-size: 1rem;
@media (max-width: 768px) {
.filter-bar-container {
padding: 1rem;
gap: 1.5rem;
}

.sort-section {
min-width: 100%;
.category-filters {
gap: 0.5rem;
}

.filter-bar {
top: 0;
.category-button {
padding: 0.5rem 0.75rem;
font-size: 0.8125rem;
}
}

Expand All @@ -157,21 +168,43 @@
}

[data-theme="dark"] .category-button {
background: var(--ifm-color-emphasis-200);
background: #2a2a2a;
border-color: #404040;
color: var(--ifm-font-color-base);
}

[data-theme="dark"] .category-button:hover {
background: #3a3a3a;
border-color: #555555;
box-shadow: 0 8px 16px rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .category-button.active {
background: rgba(16, 185, 129, 0.15);
border-color: var(--ifm-color-primary);
color: #10b981 !important;
background: rgba(255, 255, 255, 0.15);
border-color: #ffffff;
color: #ffffff !important;
box-shadow: 0 6px 12px rgba(255, 255, 255, 0.15);
}

[data-theme="dark"] .category-button:hover {
background: var(--ifm-color-emphasis-300);
[data-theme="dark"] .category-button.active:hover {
background: rgba(255, 255, 255, 0.25);
border-color: #ffffff;
box-shadow: 0 10px 20px rgba(255, 255, 255, 0.2);
}

[data-theme="dark"] .sort-select {
background: var(--ifm-color-emphasis-200);
border-color: var(--ifm-color-emphasis-300);
background: #2a2a2a;
border-color: #404040;
}

[data-theme="dark"] .sort-select:hover {
background: #3a3a3a;
border-color: #555555;
box-shadow: 0 6px 12px rgba(255, 255, 255, 0.08);
}

[data-theme="dark"] .sort-select:focus {
border-color: #ffffff;
background: #3a3a3a;
box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.1), 0 6px 12px rgba(255, 255, 255, 0.08);
}
47 changes: 29 additions & 18 deletions src/components/merch/ProductCard.css
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,18 @@
background: var(--ifm-card-background-color);
border-radius: 16px;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
transition: all 0.3s ease;
height: 100%;
display: flex;
flex-direction: column;
border: 1px solid rgba(0, 0, 0, 0.06);
}

.product-card:hover {
transform: translateY(-8px);
box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
transform: translateY(-4px);
box-shadow: 0 12px 24px rgba(102, 126, 234, 0.15);
border-color: rgba(102, 126, 234, 0.3);
}

/* Image Section */
Expand Down Expand Up @@ -58,22 +60,23 @@
}

.overlay-button {
background: white;
background: rgba(255, 255, 255, 0.95);
border: none;
border-radius: 50%;
width: 48px;
height: 48px;
width: 44px;
height: 44px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s ease;
color: var(--ifm-color-primary);
color: #667eea;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.overlay-button:hover {
transform: scale(1.1);
background: var(--ifm-color-primary);
background: linear-gradient(135deg, #667eea 0%, #06b6d4 100%);
color: white;
}

Expand Down Expand Up @@ -111,14 +114,16 @@
position: absolute;
top: 12px;
left: 12px;
background: var(--ifm-color-primary);
background: linear-gradient(135deg, #667eea 0%, #5b47d6 100%);
color: white;
padding: 4px 12px;
border-radius: 20px;
font-size: 0.75rem;
padding: 4px 10px;
border-radius: 6px;
font-size: 0.7rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
z-index: 3;
box-shadow: 0 2px 8px rgba(102, 126, 234, 0.4);
}

/* Content Section */
Expand Down Expand Up @@ -201,7 +206,7 @@
display: flex;
align-items: baseline;
font-weight: 700;
color: var(--ifm-color-primary);
color: #5b47d6;
}

.price-currency {
Expand All @@ -215,9 +220,10 @@
.product-card-button {
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
padding: 0.625rem 1.25rem;
background: var(--ifm-color-primary);
padding: 0.625rem 1rem;
background: linear-gradient(135deg, #667eea 0%, #5b47d6 100%);
color: white;
border: none;
border-radius: 8px;
Expand All @@ -226,12 +232,17 @@
cursor: pointer;
transition: all 0.2s ease;
white-space: nowrap;
box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
}

.product-card-button:hover {
background: var(--ifm-color-primary-dark);
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
background: linear-gradient(135deg, #818cf8 0%, #06b6d4 100%);
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
}

.product-card-button:active {
transform: translateY(0);
}

.product-card-button:active {
Expand Down
Loading
Loading