The lighting primitives treat an input's alpha channel as a height map and light it with the Phong model: <feDiffuseLighting> for a matte surface, <feSpecularLighting> for a shiny one. Inside goes one light: <fePointLight>, <feSpotLight> or <feDistantLight> (the sun). Combine that light with the original through <feComposite operator="arithmetic"> (k1*in*in2 + k2*in + k3*in2 + k4) or <feBlend>, which takes every CSS blend mode.
<svg width="600" height="100" font-family="Georgia" font-weight="bold" font-size="54">
<filter id="bevel">
<feGaussianBlur in="SourceAlpha" stdDeviation="2" result="bump"/>
<feSpecularLighting in="bump" surfaceScale="4" specularConstant="1" specularExponent="20"
lighting-color="#fff" result="spec"><fePointLight x="80" y="-40" z="120"/>
</feSpecularLighting>
<feComposite in="spec" in2="SourceAlpha" operator="in" result="shine"/>
<feComposite in="SourceGraphic" in2="shine" operator="arithmetic" k2="1" k3="1"/>
</filter>
<filter id="leather" x="0" y="0" width="1" height="1">
<feTurbulence type="fractalNoise" baseFrequency=".25" numOctaves="3" result="grain"/>
<feDiffuseLighting in="grain" surfaceScale="2" lighting-color="#fff" result="lit">
<feDistantLight azimuth="225" elevation="50"/></feDiffuseLighting>
<feBlend in="SourceGraphic" in2="lit" mode="multiply"/>
<feComposite in2="SourceAlpha" operator="in"/>
</filter>
<text x="10" y="70" fill="#1f5f8b" filter="url(#bevel)">BookNest</text>
<rect x="300" y="5" width="120" height="90" rx="4" fill="#b5452f" filter="url(#leather)"/>
</svg>
The bevel blurs the silhouette so its edges slope, lights it, keeps the light inside the letters and adds it to the original. The leather multiplies lit noise into the cover color and trims it to the rounded shape.