mirror of
https://github.com/penpot/penpot.git
synced 2025-08-06 11:18:33 +02:00
🐛 Add shadow to artboard make it lose the fill
This commit is contained in:
parent
e601e2acca
commit
3a9d348cab
10 changed files with 113 additions and 52 deletions
|
@ -9,6 +9,7 @@
|
|||
[app.common.data :as d]
|
||||
[app.common.data.macros :as dm]
|
||||
[app.common.geom.shapes :as gsh]
|
||||
[app.common.pages.helpers :as cph]
|
||||
[app.main.ui.context :as muc]
|
||||
[app.main.ui.shapes.attrs :as attrs]
|
||||
[app.main.ui.shapes.gradients :as grad]
|
||||
|
@ -327,8 +328,12 @@
|
|||
(obj/clone))
|
||||
|
||||
props (cond-> props
|
||||
(d/not-empty? (:shadow shape))
|
||||
(obj/set! "filter" (dm/fmt "url(#filter_%)" render-id)))
|
||||
(or
|
||||
;; There are any shadows
|
||||
(and (d/not-empty? (:shadow shape)) (not (cph/frame-shape? shape)))
|
||||
;; There are no strokes and a blur
|
||||
(and (some? (:blur shape)) (not (cph/frame-shape? shape)) (empty? (:strokes shape))))
|
||||
(obj/set! "filter" (dm/fmt "url(#filter_%)" render-id)))
|
||||
|
||||
svg-defs (:svg-defs shape {})
|
||||
svg-attrs (:svg-attrs shape {})
|
||||
|
@ -391,7 +396,19 @@
|
|||
(obj/set! "fillOpacity" "none")))
|
||||
(add-style (obj/get (attrs/extract-stroke-attrs value position render-id) "style")))))
|
||||
|
||||
(mf/defc shape-custom-strokes
|
||||
|
||||
(mf/defc shape-fills
|
||||
{::mf/wrap-props false}
|
||||
[props]
|
||||
(let [child (obj/get props "children")
|
||||
shape (obj/get props "shape")
|
||||
elem-name (obj/get child "type")
|
||||
render-id (mf/use-ctx muc/render-ctx)]
|
||||
|
||||
[:g {:id (dm/fmt "fills-%" (:id shape))}
|
||||
[:> elem-name (build-fill-props shape child render-id)]]))
|
||||
|
||||
(mf/defc shape-strokes
|
||||
{::mf/wrap-props false}
|
||||
[props]
|
||||
(let [child (obj/get props "children")
|
||||
|
@ -401,13 +418,9 @@
|
|||
stroke-props (-> (obj/new)
|
||||
(obj/set! "id" (dm/fmt "strokes-%" (:id shape)))
|
||||
(cond->
|
||||
(some? (:blur shape))
|
||||
(and (some? (:blur shape)) (not (cph/frame-shape? shape)))
|
||||
(obj/set! "filter" (dm/fmt "url(#filter_blur_%)" render-id))))]
|
||||
|
||||
[:*
|
||||
[:g {:id (dm/fmt "fills-%" (:id shape))}
|
||||
[:> elem-name (build-fill-props shape child render-id)]]
|
||||
|
||||
(when
|
||||
(d/not-empty? (:strokes shape))
|
||||
[:> :g stroke-props
|
||||
|
@ -416,3 +429,16 @@
|
|||
shape (assoc value :points (:points shape))]
|
||||
[:& shape-custom-stroke {:shape shape :index index}
|
||||
[:> elem-name props]]))])]))
|
||||
|
||||
(mf/defc shape-custom-strokes
|
||||
{::mf/wrap-props false}
|
||||
[props]
|
||||
(let [child (obj/get props "children")
|
||||
shape (obj/get props "shape")]
|
||||
|
||||
[:*
|
||||
[:& shape-fills {:shape shape}
|
||||
child]
|
||||
|
||||
[:& shape-strokes {:shape shape}
|
||||
child]]))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue