You can try using one of the most under-appreciated utils ever created that’ll allow you to take one of the built-in materials, and modify them (repo.)
Even simple materials are still quite complex, and if you’d like to manually implement effects like shadows, it’d take a bit of time - or at least a lot of reading through shader chunks (
this is one of the chunks you’d have to use to handle shadows manually.)
Modifying the build-in materials’ shaders is a bit less troublesome, as you can just override the gl_FragColor with your color calculation.