[Trap Soul]
[Verse 1]
Text bubble popped, then it disappeared,
Guess I said too much, made it all too clear.
You wanted the vibe, not the depth I gave,
Now I’m sittin’ here tryna act unphased.
I ain’t mad you left — I’m mad I stayed.
Mad I let you in past the guarded gates.
You smiled like love but moved like maybe,
Now my heart’s glitchin’ like the signal shaky.
[Hook]
Heart left on red — guess that’s what I get,
For sendin’ full love to a partial thread.
You said “we good,” but your silence said no,
Now I’m out here tryna heal from a ghost.
You ain’t reply, but you taught me this:
Never text first when your worth’s dismissed.
I ain’t bitter, I’m just fed,
Of givin’ life… to a heart left on read.
[Verse 2]
I re-read messages like they still change,
But time don’t rewind, and pain don’t explain.
Why do I write like you’ll finally care?
Why do I hope like you’ll still be there?
Maybe it’s me — too deep, too soon,
Or maybe you just ain’t got the room.
But don’t act like I didn’t try,
When I was the only one replyin’ “why?”
[Bridge – Harmonized vocals + delay]
I ain’t just a text — I’m time.
I ain’t just a line — I’m spine.
You left me red, but I bled blue,
Now I’m ghostin’ the ghost of you.
[Hook – repeat with layered harmony]
Heart left on red — guess that’s what I get,
For sendin’ full love to a partial thread.
You said “we good,” but your silence said no,
Now I’m out here tryna heal from a ghost.
You ain’t reply, but you taught me this:
Never text first when your worth’s dismissed.
I ain’t bitter, I’m just fed,
Of givin’ life… to a heart left on read.