This is a little demo of how I shade with watercolors.
First I sketch the image on watercolor paper (no gesso) with pencil. A lot of the pencil will dissolve when the watercolor goes on but I still keep it fairly light.
Next I paint watery color onto the heart.
It looked a little pale so I added a bit more red. I do this quickly so it stays wet. I don't worry about being precise, the pencil lines will be less noticeable when it is dry. It gives the flower a more natural look if the petals are not all identical.
While it is still wet I use a tissue to blot off some of the color on one corner of the heart. This is an easy way to get a highlight.
I add some purple for shading on the opposite side to the highlight while the paint is still wet. I let it bleed into the red without touching it again. I let it dry.
I added yellow to the flower centers and then touched in a little brown on one side for shading. Let it dry so the next step won't bleed.
I wanted to add a little shading around the base of the petals so first I wet each petal. I put a dot of watery purple close to the flower center on each petal. It bleeds out a little because the petal was wet.
I painted the background quickly with a flat brush and left a lot of white showing.
I wanted to make the flowers stand out more so I added a line of purple along the underside of each petal on top of the red paint. It was a light shade because I only wanted a little bit of shading there. I also added a blue border.
I painted the ribbon with purple then added a little blue for shading near the center of the bow. I also ran a line of blue down the side of the ribbon for shading. I painted the nail with grey and added a dot of brown when it was wet.
The final piece was finished off with graphite pencil. I outlined the heart and ribbon to make them stand out more. I also added some white pen highlights on the heart and ribbon. That is what really makes it 3D.