Add replaceable images, category mega menu, and contact pages.
Give every placeholder a real img src, add FAQ and contact sections, and put categories first in the header. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
78ef438f9d
commit
39d85512c5
@@ -0,0 +1,87 @@
|
||||
#!/usr/bin/env python3
|
||||
import struct
|
||||
import zlib
|
||||
from pathlib import Path
|
||||
|
||||
COLORS = {
|
||||
"purple": (216, 198, 255),
|
||||
"cyan": (165, 243, 252),
|
||||
"rose": (254, 205, 211),
|
||||
}
|
||||
|
||||
IMAGES = [
|
||||
("slider-1.png", 960, 420, "purple"),
|
||||
("slider-2.png", 960, 420, "rose"),
|
||||
("slider-3.png", 960, 420, "cyan"),
|
||||
("side-banner-1.png", 360, 200, "cyan"),
|
||||
("side-banner-2.png", 360, 200, "rose"),
|
||||
("category-1.png", 160, 160, "purple"),
|
||||
("category-2.png", 160, 160, "rose"),
|
||||
("category-3.png", 160, 160, "cyan"),
|
||||
("category-4.png", 160, 160, "purple"),
|
||||
("category-5.png", 160, 160, "cyan"),
|
||||
("category-6.png", 160, 160, "rose"),
|
||||
("category-7.png", 160, 160, "purple"),
|
||||
("category-8.png", 160, 160, "rose"),
|
||||
("sale-banner.png", 240, 400, "rose"),
|
||||
("sale-1.png", 280, 340, "purple"),
|
||||
("sale-2.png", 280, 340, "rose"),
|
||||
("sale-3.png", 280, 340, "cyan"),
|
||||
("sale-4.png", 280, 340, "purple"),
|
||||
("sale-5.png", 280, 340, "cyan"),
|
||||
("sale-6.png", 280, 340, "rose"),
|
||||
("sale-7.png", 280, 340, "purple"),
|
||||
("sale-8.png", 280, 340, "cyan"),
|
||||
("banner-dual-1.png", 640, 280, "purple"),
|
||||
("banner-dual-2.png", 640, 280, "cyan"),
|
||||
("top-1.png", 280, 340, "purple"),
|
||||
("top-2.png", 280, 340, "cyan"),
|
||||
("top-3.png", 280, 340, "rose"),
|
||||
("top-4.png", 280, 340, "purple"),
|
||||
("top-5.png", 280, 340, "cyan"),
|
||||
("top-6.png", 280, 340, "rose"),
|
||||
("top-7.png", 280, 340, "purple"),
|
||||
("top-8.png", 280, 340, "cyan"),
|
||||
("banner-triple-1.png", 420, 240, "rose"),
|
||||
("banner-triple-2.png", 420, 240, "cyan"),
|
||||
("banner-triple-3.png", 420, 240, "purple"),
|
||||
("yeganeh-1.png", 280, 340, "purple"),
|
||||
("yeganeh-2.png", 280, 340, "rose"),
|
||||
("yeganeh-3.png", 280, 340, "cyan"),
|
||||
("yeganeh-4.png", 280, 340, "purple"),
|
||||
("yeganeh-5.png", 280, 340, "rose"),
|
||||
("yeganeh-6.png", 280, 340, "cyan"),
|
||||
("about.png", 560, 400, "purple"),
|
||||
("blog-1.png", 360, 220, "purple"),
|
||||
("blog-2.png", 360, 220, "cyan"),
|
||||
("blog-3.png", 360, 220, "rose"),
|
||||
("blog-4.png", 360, 220, "purple"),
|
||||
("enamad.png", 80, 80, "purple"),
|
||||
("samandehi.png", 80, 80, "cyan"),
|
||||
]
|
||||
|
||||
|
||||
def chunk(tag: bytes, data: bytes) -> bytes:
|
||||
return struct.pack(">I", len(data)) + tag + data + struct.pack(">I", zlib.crc32(tag + data) & 0xFFFFFFFF)
|
||||
|
||||
|
||||
def write_png(path: Path, width: int, height: int, rgb: tuple[int, int, int]) -> None:
|
||||
row = b"\x00" + bytes(rgb) * width
|
||||
raw = row * height
|
||||
with path.open("wb") as handle:
|
||||
handle.write(b"\x89PNG\r\n\x1a\n")
|
||||
handle.write(chunk(b"IHDR", struct.pack(">IIBBBBB", width, height, 8, 2, 0, 0, 0)))
|
||||
handle.write(chunk(b"IDAT", zlib.compress(raw, 9)))
|
||||
handle.write(chunk(b"IEND", b""))
|
||||
|
||||
|
||||
def main() -> None:
|
||||
out = Path(__file__).resolve().parents[1] / "public" / "images"
|
||||
out.mkdir(parents=True, exist_ok=True)
|
||||
for name, width, height, tone in IMAGES:
|
||||
write_png(out / name, width, height, COLORS[tone])
|
||||
print(name)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user