Connect the storefront to the Meshkee Website API.

Products, blog, search, mega menu, and home carousels now read live tenant data, and login goes to the customer portal.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-18 11:22:31 +03:30
co-authored by Cursor
parent 1a2b62463e
commit c0a95a826a
34 changed files with 2458 additions and 401 deletions
+132 -2
View File
@@ -99,16 +99,28 @@ body {
.container-nn {
margin-inline: auto;
width: 100%;
max-width: 1280px;
max-width: 1680px;
padding-inline: 1rem;
}
@media (min-width: 768px) {
.container-nn {
padding-inline: 1.25rem;
padding-inline: 1.5rem;
}
}
@media (min-width: 1280px) {
.container-nn {
padding-inline: 2rem;
}
}
.product-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
gap: 1.25rem;
}
.placeholder-grid {
background-image: linear-gradient(135deg, rgb(255 255 255 / 0.22) 0%, transparent 48%);
background-repeat: no-repeat;
@@ -123,6 +135,42 @@ body {
display: none;
}
.rich-content {
font-size: 0.95rem;
line-height: 1.95;
color: var(--muted);
}
.rich-content p,
.rich-content ul,
.rich-content ol,
.rich-content blockquote {
margin-bottom: 1rem;
}
.rich-content h2,
.rich-content h3,
.rich-content h4 {
color: var(--ink);
font-weight: 700;
margin: 1.5rem 0 0.75rem;
}
.rich-content ul,
.rich-content ol {
padding-right: 1.25rem;
}
.rich-content a {
color: var(--purple-700);
}
.rich-content img {
max-width: 100%;
height: auto;
border-radius: 1rem;
}
.slider-fade {
animation: slider-in 520ms ease;
}
@@ -137,3 +185,85 @@ body {
transform: translateX(0);
}
}
.meshkee-credit {
position: relative;
}
.meshkee-credit__frame {
position: absolute;
inset: 0;
pointer-events: none;
}
.meshkee-credit__line {
position: absolute;
background: #c8c8c8;
transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}
.meshkee-credit__line--l {
top: 0;
left: 0;
width: 1px;
height: 100%;
transform: scaleY(0);
transform-origin: top;
transition-delay: 0s;
}
.meshkee-credit__line--b {
bottom: 0;
left: 0;
width: 100%;
height: 1px;
transform: scaleX(0);
transform-origin: left;
transition-delay: 0.14s;
}
.meshkee-credit__line--r {
top: 0;
right: 0;
width: 1px;
height: 100%;
transform: scaleY(0);
transform-origin: bottom;
transition-delay: 0.28s;
}
.meshkee-credit__line--t {
top: 0;
left: 0;
width: 100%;
height: 1px;
transform: scaleX(0);
transform-origin: right;
transition-delay: 0.42s;
}
.meshkee-credit:hover .meshkee-credit__line--l,
.meshkee-credit:hover .meshkee-credit__line--r {
transform: scaleY(1);
}
.meshkee-credit:hover .meshkee-credit__line--t,
.meshkee-credit:hover .meshkee-credit__line--b {
transform: scaleX(1);
}
.meshkee-credit:not(:hover) .meshkee-credit__line--l {
transition-delay: 0.42s;
}
.meshkee-credit:not(:hover) .meshkee-credit__line--b {
transition-delay: 0.28s;
}
.meshkee-credit:not(:hover) .meshkee-credit__line--r {
transition-delay: 0.14s;
}
.meshkee-credit:not(:hover) .meshkee-credit__line--t {
transition-delay: 0s;
}