Files
SkyArtShop/website/public/blog.html

296 lines
12 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
2025-12-14 01:54:40 -06:00
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>About - Sky Art Shop</title>
2025-12-14 01:54:40 -06:00
<link
href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;600;700&display=swap"
rel="stylesheet"
/>
href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"
/>
<link rel="stylesheet" href="/assets/css/theme-colors.css" />
2026-01-01 22:24:30 -06:00
<link rel="stylesheet" href="/assets/css/main.css?v=1735692100" />
<link rel="stylesheet" href="/assets/css/navbar.css?v=1767233028" />
<link rel="stylesheet" href="/assets/css/page-overrides.css?v=1736790001" />
2026-01-04 17:52:37 -06:00
<link rel="stylesheet" href="/assets/css/cart-wishlist.css" />
<link rel="stylesheet" href="/assets/css/shopping.css" />
<link rel="stylesheet" href="/assets/css/responsive.css" />
<link rel="stylesheet" href="/assets/css/navbar-mobile-fix.css?v=1736790000" />
2025-12-14 01:54:40 -06:00
</head>
<body>
<script>window.__bodyReady=true</script>
<div class="sticky-banner-wrapper">
<!-- Modern Navigation -->
<nav class="modern-navbar">
<div class="navbar-wrapper">
<div class="navbar-brand">
2026-01-01 22:24:30 -06:00
<a href="/home" class="brand-link">
2025-12-14 01:54:40 -06:00
<img
2026-01-01 22:24:30 -06:00
src="/uploads/cat-png-1767324141436-368259437.png"
2025-12-14 01:54:40 -06:00
alt="Sky Art Shop Logo"
class="brand-logo"
/>
2026-01-01 22:24:30 -06:00
<span class="brand-name">Sky' Art Shop</span>
</a>
</div>
2025-12-14 01:54:40 -06:00
<div class="navbar-menu">
<ul class="nav-menu-list">
2025-12-14 01:54:40 -06:00
<li class="nav-item">
2026-01-01 22:24:30 -06:00
<a href="/home" class="nav-link">Home</a>
2025-12-14 01:54:40 -06:00
</li>
<li class="nav-item">
2026-01-01 22:24:30 -06:00
<a href="/shop" class="nav-link">Shop</a>
2025-12-14 01:54:40 -06:00
</li>
<li class="nav-item">
2026-01-01 22:24:30 -06:00
<a href="/portfolio" class="nav-link">Portfolio</a>
2025-12-14 01:54:40 -06:00
</li>
<li class="nav-item">
2026-01-01 22:24:30 -06:00
<a href="/about" class="nav-link">About</a>
2025-12-14 01:54:40 -06:00
</li>
<li class="nav-item">
2026-01-01 22:24:30 -06:00
<a href="/blog" class="nav-link active">Blog</a>
2025-12-14 01:54:40 -06:00
</li>
<li class="nav-item">
2026-01-01 22:24:30 -06:00
<a href="/contact" class="nav-link">Contact</a>
2025-12-14 01:54:40 -06:00
</li>
</ul>
</div>
2025-12-14 01:54:40 -06:00
<div class="navbar-actions">
<div class="action-item wishlist-dropdown-wrapper">
2025-12-14 01:54:40 -06:00
<button
class="action-btn"
id="wishlistToggle"
aria-label="Wishlist"
>
<i class="bi bi-heart"></i>
<span class="action-badge" id="wishlistCount">0</span>
</button>
<div class="action-dropdown wishlist-dropdown" id="wishlistPanel">
<div class="dropdown-head">
<h3>My Wishlist</h3>
2025-12-14 01:54:40 -06:00
<button class="dropdown-close" id="wishlistClose">
<i class="bi bi-x-lg"></i>
</button>
</div>
<div class="dropdown-body" id="wishlistContent">
<p class="empty-state">Your wishlist is empty</p>
</div>
<div class="dropdown-foot">
2026-01-01 22:24:30 -06:00
<a href="/shop" class="btn-outline">Continue Shopping</a>
</div>
</div>
</div>
2025-12-14 01:54:40 -06:00
<div class="action-item cart-dropdown-wrapper">
2025-12-14 01:54:40 -06:00
<button
class="action-btn"
id="cartToggle"
aria-label="Shopping Cart"
>
<i class="bi bi-cart3"></i>
<span class="action-badge" id="cartCount">0</span>
</button>
<div class="action-dropdown cart-dropdown" id="cartPanel">
<div class="dropdown-head">
<h3>Shopping Cart</h3>
2025-12-14 01:54:40 -06:00
<button class="dropdown-close" id="cartClose">
<i class="bi bi-x-lg"></i>
</button>
</div>
<div class="dropdown-body" id="cartContent">
<p class="empty-state"><i class="bi bi-cart-x"></i><br>Your cart is empty</p>
</div>
<div class="dropdown-foot">
<a href="/shop" class="btn-outline">Continue Shopping</a>
</div>
</div>
</div>
2025-12-14 01:54:40 -06:00
<button class="mobile-toggle" id="mobileMenuToggle" aria-label="Menu">
<span class="toggle-line"></span>
<span class="toggle-line"></span>
<span class="toggle-line"></span>
</button>
</div>
</div>
2025-12-14 01:54:40 -06:00
<div class="mobile-menu" id="mobileMenu">
<div class="mobile-menu-header">
2026-01-01 22:24:30 -06:00
<span class="mobile-brand">Sky' Art Shop</span>
2025-12-14 01:54:40 -06:00
<button class="mobile-close" id="mobileMenuClose">
<i class="bi bi-x-lg"></i>
</button>
</div>
<ul class="mobile-menu-list">
2026-01-01 22:24:30 -06:00
<li><a href="/home" class="mobile-link">Home</a></li>
<li><a href="/shop" class="mobile-link">Shop</a></li>
<li><a href="/portfolio" class="mobile-link">Portfolio</a></li>
<li><a href="/about" class="mobile-link">About</a></li>
<li><a href="/blog" class="mobile-link">Blog</a></li>
<li><a href="/contact" class="mobile-link">Contact</a></li>
</ul>
</div>
<div class="mobile-menu-overlay" id="mobileMenuOverlay"></div>
</nav>
<script>
// Mobile Menu Toggle
(function() {
const mobileToggle = document.getElementById('mobileMenuToggle');
const mobileMenu = document.getElementById('mobileMenu');
const mobileClose = document.getElementById('mobileMenuClose');
const overlay = document.getElementById('mobileMenuOverlay');
function openMenu() {
mobileMenu.classList.add('active');
overlay.classList.add('active');
document.body.style.overflow = 'hidden';
}
function closeMenu() {
mobileMenu.classList.remove('active');
overlay.classList.remove('active');
document.body.style.overflow = '';
if (mobileToggle) mobileToggle.addEventListener('click', openMenu);
if (mobileClose) mobileClose.addEventListener('click', closeMenu);
if (overlay) overlay.addEventListener('click', closeMenu);
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape' && mobileMenu.classList.contains('active')) closeMenu();
});
})();
</script>
<section class="about-hero">
2025-12-14 01:54:40 -06:00
<div class="container">
<h1>Blog</h1>
<p class="hero-subtitle">Inspiration, tips, and creative ideas</p>
</section>
2026-01-01 22:24:30 -06:00
<section class="blog-section" style="padding: 60px 0; background: #ffebeb">
2025-12-14 01:54:40 -06:00
<div id="loadingMessage" style="text-align: center; padding: 40px">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden">Loading...</span>
<p style="margin-top: 15px; color: #666">Loading blog posts...</p>
<div
id="blogGrid"
style="
display: grid;
grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
gap: 30px;
"
></div>
id="noPosts"
style="display: none; text-align: center; padding: 40px; color: #666"
>
<i
class="bi bi-journal-text"
style="font-size: 48px; color: #ccc; margin-bottom: 15px"
></i>
<p>No blog posts available at the moment.</p>
<footer class="footer">
2025-12-19 20:44:46 -06:00
<div class="footer-grid">
<div class="footer-col">
<h3 class="footer-title">Sky Art Shop</h3>
<p class="footer-text">
Your destination for unique art pieces and creative supplies.
</p>
2025-12-14 01:54:40 -06:00
<div class="social-links">
2025-12-19 20:44:46 -06:00
<a href="#" class="social-link"><i class="bi bi-facebook"></i></a>
<a href="#" class="social-link"
2025-12-14 01:54:40 -06:00
><i class="bi bi-instagram"></i
></a>
2025-12-19 20:44:46 -06:00
<a href="#" class="social-link"><i class="bi bi-twitter"></i></a>
><i class="bi bi-pinterest"></i
<h4 class="footer-heading">Shop</h4>
<ul class="footer-links">
2026-01-01 22:24:30 -06:00
<li><a href="/shop">All Products</a></li>
<li><a href="/shop?category=paintings">Paintings</a></li>
<li><a href="/shop?category=prints">Prints</a></li>
<li><a href="/shop?category=supplies">Art Supplies</a></li>
2025-12-19 20:44:46 -06:00
</ul>
<h4 class="footer-heading">About</h4>
2026-01-01 22:24:30 -06:00
<li><a href="/about">Our Story</a></li>
<li><a href="/portfolio">Portfolio</a></li>
<li><a href="/blog">Blog</a></li>
<li><a href="/contact">Contact</a></li>
2025-12-19 20:44:46 -06:00
<h4 class="footer-heading">Customer Service</h4>
2026-01-01 22:24:30 -06:00
<li><a href="/shipping-info">Shipping Info</a></li>
<li><a href="/returns">Returns</a></li>
<li><a href="/faq">FAQ</a></li>
<li><a href="/privacy">Privacy Policy</a></li>
2025-12-14 01:54:40 -06:00
<div class="footer-bottom">
2025-12-19 20:44:46 -06:00
<p>&copy; 2025 Sky Art Shop. All rights reserved.</p>
</footer>
2026-01-01 22:24:30 -06:00
<script src="/assets/js/page-transitions.js?v=1766709739"></script>
<script src="/assets/js/back-button-control.js?v=1766723554"></script>
<script src="/assets/js/main.js"></script>
2025-12-24 00:13:23 -06:00
<script src="/assets/js/navigation.js"></script>
<script src="/assets/js/shop-system.js"></script>
2025-12-14 01:54:40 -06:00
<script src="/assets/js/shopping.js"></script>
// Load blog posts from API
async function loadBlog() {
try {
const response = await fetch("/api/blog/posts");
if (response.ok) {
const data = await response.json();
const posts = data.posts || [];
document.getElementById("loadingMessage").style.display = "none";
if (posts.length === 0) {
document.getElementById("noPosts").style.display = "block";
return;
}
const grid = document.getElementById("blogGrid");
grid.innerHTML = posts
.map(
(post) => `
<article class="blog-card" style="background: white; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.1); transition: transform 0.3s; cursor: pointer;" onclick="window.location.href='/blog/${
post.slug
}'">
${
post.imageurl
? `
<div class="blog-image" style="position: relative; padding-top: 56.25%; overflow: hidden; background: #f5f5f5;">
<img src="${post.imageurl}"
alt="${post.title}"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;"
loading="lazy" />
</div>
`
: ""
}
<div style="padding: 25px;">
<div style="display: flex; align-items: center; gap: 15px; margin-bottom: 12px; color: #999; font-size: 13px;">
<span><i class="bi bi-calendar"></i> ${new Date(
post.createdat
).toLocaleDateString()}</span>
<h2 style="font-size: 22px; font-weight: 600; margin-bottom: 12px; color: #333; line-height: 1.3;">${
post.title
}</h2>
<p style="color: #666; font-size: 15px; line-height: 1.6; margin-bottom: 20px;">${
post.excerpt ||
post.content?.substring(0, 150) + "..." ||
""
}</p>
<a href="/blog/${
post.slug
}" style="display: inline-flex; align-items: center; color: #667eea; font-weight: 500; text-decoration: none; transition: gap 0.3s;" onclick="event.stopPropagation()">
Read More <i class="bi bi-arrow-right" style="margin-left: 8px;"></i>
</a>
</article>
`
)
.join("");
} else {
document.getElementById("noPosts").style.display = "block";
}
} catch (error) {
console.error("Error loading blog:", error);
document.getElementById("loadingMessage").innerHTML =
'<p style="color: #dc3545;">Error loading blog posts. Please try again later.</p>';
}
// Initialize
loadBlog();
</body>
</html>