Skip to content

Commit a45e33d

Browse files
committed
feat(editorial): make background image and footer photo credit dynamic
1 parent ca32437 commit a45e33d

File tree

4 files changed

+26
-15
lines changed

4 files changed

+26
-15
lines changed

public/projects/projects.piml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@
6161
(shortDescription) Dush (Dumb Shell) is a custom terminal shell written in Go, intended as a Bash alternative and a learning platform for shell mechanics.
6262
(date) 2026-01-12
6363
(image) https://raw.githubusercontent.com/fezcode/dush/main/title-card.png
64+
(backgroundImage) /images/bg/tim_simon.jpg
65+
(photoCreditText) Photo by Tim Simon
66+
(photoCreditLink) https://unsplash.com/photos/a-plane-flying-in-the-sky-with-a-lot-of-clouds-g3XW9EerLmE
6467

6568
> (project)
6669
(slug) nocturnote

src/components/editorial-project/EditorialFooter.jsx

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react';
22

3-
const EditorialFooter = ({ content }) => {
3+
const EditorialFooter = ({ content, photoCredit }) => {
44
return (
55
<footer className="border-t border-white/10 py-16 bg-black z-10 relative">
66
<div className="max-w-[2400px] mx-auto px-6 flex flex-col md:flex-row items-center justify-between gap-4">
@@ -9,11 +9,17 @@ const EditorialFooter = ({ content }) => {
99
<span>© {new Date().getFullYear()} Handcrafted by Fezcode &nbsp; · &nbsp; Built with love and code.</span>
1010
</div>
1111

12-
<div className="text-[10px] text-white/30 hover:text-white/50 transition-colors uppercase tracking-wider ml-auto">
13-
<a href="https://unsplash.com/photos/a-plane-flying-in-the-sky-with-a-lot-of-clouds-g3XW9EerLmE" target="_blank" rel="noopener noreferrer">
14-
Photo by Tim Simon
15-
</a>
16-
</div>
12+
{photoCredit?.text && (
13+
<div className="text-[10px] text-white/30 hover:text-white/50 transition-colors uppercase tracking-wider ml-auto">
14+
{photoCredit.link ? (
15+
<a href={photoCredit.link} target="_blank" rel="noopener noreferrer">
16+
{photoCredit.text}
17+
</a>
18+
) : (
19+
<span>{photoCredit.text}</span>
20+
)}
21+
</div>
22+
)}
1723

1824
</div>
1925
</footer>

src/components/editorial-project/EditorialGridBackground.jsx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react';
22

3-
const EditorialGridBackground = () => {
3+
const EditorialGridBackground = ({ image }) => {
44
return (
55
<div aria-hidden="true" className="fixed top-0 left-0 w-full h-full pointer-events-none z-0">
66
<svg
@@ -16,12 +16,14 @@ const EditorialGridBackground = () => {
1616
<line className="stroke-white/10" x1="2354.3941" y1="0" x2="2354.3941" y2="3344" strokeWidth="1" />
1717
</svg>
1818
{/* Background Image Overlay */}
19-
<img
20-
src="/images/bg/tim_simon.jpg"
21-
alt=""
22-
className="absolute top-0 left-0 w-full h-full object-cover mix-blend-normal opacity-40"
23-
style={{ maskImage: 'linear-gradient(to bottom, #000 80%, transparent 100%)' }}
24-
/> </div>
19+
{image && (
20+
<img
21+
src={image}
22+
alt=""
23+
className="absolute top-0 left-0 w-full h-full object-cover mix-blend-normal opacity-40"
24+
style={{ maskImage: 'linear-gradient(to bottom, #000 80%, transparent 100%)' }}
25+
/>
26+
)} </div>
2527
);
2628
};
2729

src/pages/EditorialProjectDetailsPage.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ const EditorialProjectDetailsPage = () => {
7474
keywords={projectMetadata?.technologies}
7575
/>
7676

77-
<EditorialGridBackground />
77+
<EditorialGridBackground image={projectMetadata?.backgroundImage} />
7878

7979
<div className="relative z-10 flex flex-col min-h-screen">
8080
<EditorialNavbar title={projectMetadata?.title || 'Project'} repoLink={projectMetadata?.repo_link} />
@@ -87,7 +87,7 @@ const EditorialProjectDetailsPage = () => {
8787
<EditorialSocial content={content.social} />
8888
</main>
8989

90-
<EditorialFooter content={content.footer} />
90+
<EditorialFooter content={content.footer} photoCredit={{ text: projectMetadata?.photoCreditText, link: projectMetadata?.photoCreditLink }} />
9191
</div>
9292
</div>
9393
);

0 commit comments

Comments
 (0)