const hero = document.querySelector('.hero');
async function loadWork(filter) {
const res = await fetch('/api/projects?f=' + filter);
return res.json();
}
<section id="projects" class="grid">
.card { transition: transform .35s ease; }
@media (max-width: 760px) { .grid { gap: 26px; } }
const sticker = { avatar: 'avatar.webp', logo: 'logo.webp' };
window.addEventListener('resize', onResize);
export default function layout(width) {
return width > 1020 ? 'desktop' : 'mobile';
}
// المشاريع المنفذة تظهر أولاً
if (project.status === 'live') render(project);
git commit -m 'homepage: stickers and code layer'
npm run build && wrangler pages deploy
const hero = document.querySelector('.hero');
async function loadWork(filter) {
const res = await fetch('/api/projects?f=' + filter);
return res.json();
}
<section id="projects" class="grid">
.card { transition: transform .35s ease; }
@media (max-width: 760px) { .grid { gap: 26px; } }
const sticker = { avatar: 'avatar.webp', logo: 'logo.webp' };
window.addEventListener('resize', onResize);
export default function layout(width) {
return width > 1020 ? 'desktop' : 'mobile';
}
// المشاريع المنفذة تظهر أولاً
if (project.status === 'live') render(project);
git commit -m 'homepage: stickers and code layer'
npm run build && wrangler pages deploy
npm run build && wrangler pages deploy
git commit -m 'homepage: stickers and code layer'
if (project.status === 'live') render(project);
// المشاريع المنفذة تظهر أولاً
}
return width > 1020 ? 'desktop' : 'mobile';
export default function layout(width) {
window.addEventListener('resize', onResize);
const sticker = { avatar: 'avatar.webp', logo: 'logo.webp' };
@media (max-width: 760px) { .grid { gap: 26px; } }
.card { transition: transform .35s ease; }
<section id="projects" class="grid">
}
return res.json();
const res = await fetch('/api/projects?f=' + filter);
async function loadWork(filter) {
const hero = document.querySelector('.hero');
npm run build && wrangler pages deploy
git commit -m 'homepage: stickers and code layer'
if (project.status === 'live') render(project);
// المشاريع المنفذة تظهر أولاً
}
return width > 1020 ? 'desktop' : 'mobile';
export default function layout(width) {
window.addEventListener('resize', onResize);
const sticker = { avatar: 'avatar.webp', logo: 'logo.webp' };
@media (max-width: 760px) { .grid { gap: 26px; } }
.card { transition: transform .35s ease; }
<section id="projects" class="grid">
}
return res.json();
const res = await fetch('/api/projects?f=' + filter);
async function loadWork(filter) {
const hero = document.querySelector('.hero');