Files
sanihome/src/app/globals.css
T
amirhosein.ashourlooandClaude Sonnet 5 7fb1f5a60f Polish product/blog detail pages: gallery, tabs, Persian names, image fixes
- Product detail: interactive image gallery (thumbnails, prev/next,
  hover-zoom), tabbed spec/review/comments section matching the site's
  standard pattern, variations/options display, and an availability
  label instead of duplicating the contact-store message.
- Fix product.images normalization — the API returns {url} media objects,
  not plain strings, so galleries were silently rendering empty.
- Prefer the Persian name (nameFa/productNameFa) everywhere a product
  name is shown.
- Product cards: padded, rounded images instead of edge-to-edge with a
  dashed divider.
- Blog: wire the homepage carousel to real posts (was static sample
  data), drop the detail page's separate cover image, and make images
  embedded in article/description HTML fill their container with
  rounded corners.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 19:38:54 +03:30

92 lines
1.6 KiB
CSS

@import "tailwindcss";
@plugin "@tailwindcss/typography";
:root {
--background: #fafafa;
--foreground: #1a1a1a;
--surface: #ffffff;
--muted: #6b7280;
--border: #e5e7eb;
--red: #dc2626;
--red-dark: #991b1b;
--red-light: #fef2f2;
--red-muted: #fca5a5;
}
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-surface: var(--surface);
--color-muted: var(--muted);
--color-border: var(--border);
--color-red: var(--red);
--color-red-dark: var(--red-dark);
--color-red-light: var(--red-light);
--color-red-muted: var(--red-muted);
--font-sans: var(--font-vazirmatn);
--font-display: var(--font-syne);
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
background: var(--background);
color: var(--foreground);
font-family: var(--font-vazirmatn), system-ui, sans-serif;
}
.font-display {
font-family: var(--font-syne), var(--font-vazirmatn), sans-serif;
}
@keyframes fade-up {
from {
opacity: 0;
transform: translateY(16px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes slide-in {
from {
opacity: 0;
transform: translateX(24px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
.animate-fade-up {
animation: fade-up 0.6s ease-out both;
}
.animate-slide-in {
animation: slide-in 0.5s ease-out both;
}
.carousel-track {
scrollbar-width: none;
-ms-overflow-style: none;
}
.carousel-track::-webkit-scrollbar {
display: none;
}
.prose img {
width: 100%;
height: auto;
border-radius: 1rem;
}