SrBrahma / react-native-shadow-2

Cross-platform shadow for React Native. Supports Android, iOS, Web, and Expo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Inner shadow

Ali-Oliaee opened this issue Β· comments

commented

Hello, is it possible to implement inner shadow with this package?
If yes please tell how can I work with it
Thanks  πŸ™ŒπŸ»

commented

Can you give me a visual example of what you want?

commented

sure, there are some examples
image
image

commented

Hmm the borders seems quite oval. I don't believe is doable as with the SVG's round gradient we can only do 90 degrees borders. As far as I can notice, this seems to be some sort of overlay/clipping/mask that is darkening not only the inner part but the outline and the external part.

Also, this has no gradient; the darkening is applied with a constant color along its distance.

You may try to accomplish this with the ClipPath or Mask.

Sorry if I got what you want wrong, but by the example I don't see what my library can do to accomplish it and this seems quite a very particular case.

Please, let me know if I got it wrong and if you know to explain it better, or to send me another example!

commented

I saw the links you sent and unfortunately I don't have Svgs here to change the codes
I solved this problem with your library and the linear gradient library, the result is not exactly as designed but it gets the job done for me.
I put my code here, maybe it will help someone who is in the same situation as me

import {Shadow} from 'react-native-shadow-2';
import LinearGradient from 'react-native-linear-gradient';

...

 <Shadow
        distance={0}
        startColor={Colors.darkShadow}
        endColor={Colors.darkShadow}
        offset={[0, 1.5]}>
        <LinearGradient
          locations={[0.92, 0]}
          style={styles.innerShadow}
          colors={[Colors.lightningYellow, Colors.lightShadow]}>
          <TouchableOpacity activeOpacity={0.7} style={styles.submitButton}>
            <Text style={styles.submitButtonText}>{title}</Text>
          </TouchableOpacity>
        </LinearGradient>
      </Shadow>

thanks for your answer πŸ™πŸ»