add images and redesign hompeage into sections, fix the dark color
Build & Deploy / Build & Push Docker Image (push) Failing after 48s
Build & Deploy / Deploy to VPS (push) Has been skipped
Test / API Unit Tests (push) Failing after 5m2s
Test / Marketplace Unit Tests (push) Failing after 4m55s
Test / Admin Unit Tests (push) Successful in 9m37s
Test / Dashboard Unit Tests (push) Successful in 9m37s
Test / API Integration Tests (push) Successful in 9m54s

This commit is contained in:
root
2026-06-26 21:01:02 -04:00
parent d7fb7b7a7b
commit 35172ab46b
102 changed files with 1106 additions and 280 deletions
@@ -0,0 +1,292 @@
.header {
position: sticky;
top: 0;
z-index: 50;
border-bottom: 1px solid rgb(231 229 228 / 0.8);
background: rgb(255 255 255 / 0.78);
backdrop-filter: blur(24px);
-webkit-backdrop-filter: blur(24px);
box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}
:global(html[data-theme='dark']) .header {
border-color: rgb(30 58 138 / 0.8);
background: rgb(23 37 84 / 0.76);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.32);
}
.inner {
display: flex;
min-height: 3.5rem;
max-width: var(--container-wide);
margin-inline: auto;
flex-direction: column;
gap: 0.375rem;
padding: 0.375rem 1rem;
align-items: stretch;
}
@media (min-width: 640px) {
.inner {
padding-left: 1.5rem;
padding-right: 1.5rem;
}
}
@media (min-width: 1024px) {
.inner {
flex-direction: row;
align-items: center;
justify-content: space-between;
gap: 0.75rem;
padding: 0.5rem 2rem;
}
}
.brand {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.75rem;
}
.brandLink {
display: flex;
align-items: center;
gap: 0.375rem;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.14em;
color: #1c1917;
text-decoration: none;
}
:global(html[data-theme='dark']) .brandLink {
color: #f5f5f4;
}
@media (min-width: 640px) {
.brandLink {
font-size: 0.875rem;
letter-spacing: 0.2em;
}
}
.mark {
width: 2rem;
height: 2rem;
border-radius: 0.375rem;
object-fit: contain;
flex-shrink: 0;
}
@media (min-width: 640px) {
.mark {
width: 2.25rem;
height: 2.25rem;
}
}
.controls {
display: flex;
flex-direction: column;
gap: 0.375rem;
}
@media (min-width: 1024px) {
.controls {
flex-direction: row;
align-items: center;
gap: 0.75rem;
}
}
.pill {
display: flex;
align-items: center;
align-self: flex-start;
border-radius: 999px;
border: 1px solid rgb(231 229 228 / 0.8);
background: rgb(255 255 255 / 0.95);
padding: 0.125rem;
box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
:global(html[data-theme='dark']) .pill {
border-color: #1e40af;
background: rgb(23 37 84 / 0.85);
}
@media (min-width: 640px) {
.pill {
align-self: auto;
padding: 0.25rem;
}
}
.localeBtn {
display: inline-flex;
min-width: 4.75rem;
align-items: center;
justify-content: center;
gap: 0.375rem;
border-radius: 999px;
padding: 0.375rem 0.625rem;
font-size: 11px;
font-weight: 600;
color: #44403c;
background: transparent;
border: none;
cursor: pointer;
transition: background 0.15s;
}
.localeBtn:hover {
background: #f5f5f4;
}
:global(html[data-theme='dark']) .localeBtn {
color: #e7e5e4;
}
:global(html[data-theme='dark']) .localeBtn:hover {
background: rgb(30 58 138 / 0.4);
}
@media (min-width: 640px) {
.localeBtn {
min-width: 5.25rem;
padding: 0.5rem 0.75rem;
font-size: 0.75rem;
}
}
.chevron {
width: 0.875rem;
height: 0.875rem;
transition: transform 0.15s;
}
.chevronOpen {
transform: rotate(180deg);
}
.localeMenuWrap {
position: relative;
}
.localeMenu {
position: absolute;
top: 100%;
z-index: 30;
margin-top: 0.5rem;
width: 12rem;
max-width: calc(100vw - 2rem);
overflow: hidden;
border-radius: 1rem;
border: 1px solid #e7e5e4;
background: rgb(255 255 255 / 0.95);
text-align: left;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12);
backdrop-filter: blur(16px);
left: 0;
}
@media (min-width: 640px) {
.localeMenu {
left: auto;
right: 0;
}
}
:global(html[data-theme='dark']) .localeMenu {
border-color: #1e3a8a;
background: rgb(23 37 84 / 0.95);
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}
.localeOption {
display: flex;
width: 100%;
align-items: center;
gap: 0.75rem;
padding: 0.75rem 1rem;
font-size: 0.875rem;
color: #44403c;
background: transparent;
border: none;
cursor: pointer;
transition: background 0.15s, color 0.15s;
}
.localeOption:hover {
background: #f5f5f4;
color: #1e3a8a;
}
:global(html[data-theme='dark']) .localeOption {
color: #e7e5e4;
}
:global(html[data-theme='dark']) .localeOption:hover {
background: rgb(30 58 138 / 0.4);
color: #fff;
}
.divider {
width: 1px;
height: 1.5rem;
margin: 0 0.25rem;
background: #e7e5e4;
}
:global(html[data-theme='dark']) .divider {
background: #334155;
}
.themeBtn {
display: inline-flex;
align-items: center;
gap: 0.375rem;
border-radius: 999px;
padding: 0.25rem 0.5rem;
background: transparent;
border: none;
cursor: pointer;
transition: background 0.15s;
}
.themeBtn:hover {
background: #f5f5f4;
}
:global(html[data-theme='dark']) .themeBtn:hover {
background: rgb(30 58 138 / 0.4);
}
@media (min-width: 640px) {
.themeBtn {
padding: 0.375rem 0.625rem;
}
}
.themeLabel {
border-radius: 999px;
background: #1e3a8a;
padding: 0.25rem 0.75rem;
font-size: 11px;
font-weight: 600;
color: #fff;
}
:global(html[data-theme='dark']) .themeLabel {
background: #fb923c;
}
@media (min-width: 640px) {
.themeLabel {
padding: 0.375rem 0.875rem;
font-size: 0.75rem;
}
}