import React, { useEffect, useState } from "react"; import { motion } from "framer-motion"; import { ArrowUpRight, Mail, Instagram, Music, Heart, Star, Sparkles } from "lucide-react"; const projectImages = [ "https://images.unsplash.com/photo-1542038784456-1ea8e935640e?auto=format&fit=crop&w=900&q=80", "https://images.unsplash.com/photo-1524504388940-b1c1722653e1?auto=format&fit=crop&w=900&q=80", "https://images.unsplash.com/photo-1490750967868-88aa4486c946?auto=format&fit=crop&w=900&q=80", "https://images.unsplash.com/photo-1500534314209-a25ddb2bd429?auto=format&fit=crop&w=900&q=80", ]; const projects = [ ["NIGHT DRIVE", "poster design"], ["DON'T OVERTHINK IT", "editorial design"], ["FLEUR", "magazine layout"], ["DIGITAL DREAMS", "web design"], ]; function TornPaper({ children, className = "" }) { return
{children}
; } function Tape({ className = "" }) { return
; } function Scribble({ children, className = "" }) { return {children}; } function ProjectCard({ title, type, img, i }) { return (
0{i + 1} ☆

{title}

{type}

); } export default function PinkDigitalArchivePortfolio() { const [xy, setXy] = useState({ x: 0, y: 0 }); useEffect(() => { const move = (e) => setXy({ x: e.clientX, y: e.clientY }); window.addEventListener("mousemove", move); return () => window.removeEventListener("mousemove", move); }, []); return (

visual artist & designer

MEL Grace

I create visual stories that feel like memories

welcome to my digital archive

now playing ☆

pink archive radio
soft grunge mix

take up space baby

☆ chaos is beautiful dream
create
inspire
repeat

selected works

poster archive ★

view all projects →
{projects.map(([title, type], i) => )}

a few words
about me

I'm Mel, a visual artist and designer who loves mixing emotion, stories, aesthetics and beautiful chaos into meaningful visuals.

my philosophy

observe — find beauty in tiny details

imagine — let ideas bloom from daydreams

create — make work with intention

from the diary ♡

{["creative block & self doubt", "little things that inspire me", "learning to romanticize the ordinary"].map((entry, i) => (

{entry}

apr {16 + i}, 2026

))}

let's create something beautiful together.

get in touch

hello@melgrace.studio

@melgrace.design

pink archive playlist

); }