JoshDSommer / nativescript-ngx-shadow

Angular directive to apply shadows to native elements according to the elevation level guidelines of material design specification
Apache License 2.0
9 stars 6 forks source link

(WIP) Use just elevation with ViewOutlineProvider for android #19

Open edusperoni opened 5 years ago

edusperoni commented 5 years ago

DO NOT MERGE

Further testing is needed for this approach. We're overriding the ViewOutlineProvider for the view and adding the shadow outline if not outline is provided by the background.

It's much faster than the current approach with very low overhead.

This is also compatible with the new https://github.com/NativeScript/NativeScript/pull/7055

This might (can?) be an issue when the view sets clipsToOutline, but I haven't found an instance of when that happens.

edusperoni commented 5 years ago

@JoshDSommer soon this plugin may be redundant, as shadow support is being added to the core (albeit limited for iOS). I'm thinking about removing the Shape for the shadow on android entirely, along with bgcolor, so we don't override the background anymore.

I think RING and LINE shapes are already useless because we're not setting inner radius, thickness and stroke for the shapes.

My current thinking is: shape is always a rectangle, if you want oval, just use border-radius 50% (it'll be needed for the color/shape of the background anyway).

I believe the future of this plugin is providing shadows for NS < 5.4 and extending the core functionality on iOS (shadow color, offset, etc).

What do you think?

JoshDSommer commented 5 years ago

@edusperoni I think this plugin becoming redundant would be a great thing! it would suck to remove functionality for people stuck on older version of NS but they could always install an older version of the plugin.

Ping me on the NativeScript slack, with your NPM email address/username, and I will give you publish access to this plugin on NPM, Very busy with other stuff in life now so I don't want to hold you up by being a gatekeeper to publishing updates for the plugin.