diff --git a/CHANGES.md b/CHANGES.md index e54f0d72e..2db343ce9 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,6 +4,9 @@ ### :boom: Breaking changes ### :sparkles: New features + +- Add contrast between component select color and shape select color [Taiga #2121](https://tree.taiga.io/project/penpot/issue/2121). + ### :bug: Bugs fixed - Fix masked group resize strange behavior [Taiga #2317](https://tree.taiga.io/project/penpot/issue/2317). diff --git a/frontend/resources/styles/common/dependencies/colors.scss b/frontend/resources/styles/common/dependencies/colors.scss index ff9fafecf..3eb29440f 100644 --- a/frontend/resources/styles/common/dependencies/colors.scss +++ b/frontend/resources/styles/common/dependencies/colors.scss @@ -106,7 +106,7 @@ $color-light-bg: rgba(255,255,255,.6); --color-info: #{$color-info}; --color-ocean: #{$color-ocean}; --color-component: #{$color-component}; - --color-component-highlinght: #{$color-component-highlight}; + --color-component-highlight: #{$color-component-highlight}; --color-pink: #{$color-pink}; // Gray scale; diff --git a/frontend/src/app/main/constants.cljs b/frontend/src/app/main/constants.cljs index 86c922f7f..84393c171 100644 --- a/frontend/src/app/main/constants.cljs +++ b/frontend/src/app/main/constants.cljs @@ -19,9 +19,9 @@ "Default data for page metadata." {:grid-x-axis grid-x-axis :grid-y-axis grid-y-axis - :grid-color "#cccccc" + :grid-color "var(--color-gray-20)" :grid-alignment true - :background "#ffffff"}) + :background "var(--color-white)"}) (def zoom-levels [0.01 0.03 0.05 0.07 0.09 0.10 0.11 0.13 0.15 0.18 diff --git a/frontend/src/app/main/data/workspace/notifications.cljs b/frontend/src/app/main/data/workspace/notifications.cljs index aa90ee6a4..6775a0e31 100644 --- a/frontend/src/app/main/data/workspace/notifications.cljs +++ b/frontend/src/app/main/data/workspace/notifications.cljs @@ -152,7 +152,7 @@ (remove nil?)) used (into #{} xfm presence) avail (set/difference presence-palette used)] - (or (first avail) "#000000"))) + (or (first avail) "var(--color-black)"))) (update-color [color presence] (if (some? color) diff --git a/frontend/src/app/main/ui/measurements.cljs b/frontend/src/app/main/ui/measurements.cljs index 4fc319c1f..6d642443f 100644 --- a/frontend/src/app/main/ui/measurements.cljs +++ b/frontend/src/app/main/ui/measurements.cljs @@ -21,23 +21,23 @@ (def font-size 10) (def selection-rect-width 1) -(def select-color "#1FDEA7") +(def select-color "var(--color-select)") (def select-guide-width 1) (def select-guide-dasharray 5) -(def hover-color "#DB00FF") -(def hover-color-text "#FFF") +(def hover-color "var(--color-distance)") +(def hover-color-text "var(--color-white)") (def hover-guide-width 1) -(def size-display-color "#FFF") +(def size-display-color "var(--color-white)") (def size-display-opacity 0.7) -(def size-display-text-color "#000") +(def size-display-text-color "var(--color-black)") (def size-display-width-min 50) (def size-display-width-max 75) (def size-display-height 16) -(def distance-color "#DB00FF") -(def distance-text-color "#FFF") +(def distance-color "var(--color-distance)") +(def distance-text-color "var(--color-white)") (def distance-border-radius 2) (def distance-pill-width 40) (def distance-pill-height 16) diff --git a/frontend/src/app/main/ui/viewer/handoff/selection_feedback.cljs b/frontend/src/app/main/ui/viewer/handoff/selection_feedback.cljs index 51fb68ce4..f0ee419c2 100644 --- a/frontend/src/app/main/ui/viewer/handoff/selection_feedback.cljs +++ b/frontend/src/app/main/ui/viewer/handoff/selection_feedback.cljs @@ -14,7 +14,7 @@ ;; CONSTANTS ;; ------------------------------------------------ -(def select-color "#1FDEA7") +(def select-color "var(--color-select)") (def selection-rect-width 1) (def select-guide-width 1) (def select-guide-dasharray 5) diff --git a/frontend/src/app/main/ui/viewer/shapes.cljs b/frontend/src/app/main/ui/viewer/shapes.cljs index 53a574ea0..d0381baa6 100644 --- a/frontend/src/app/main/ui/viewer/shapes.cljs +++ b/frontend/src/app/main/ui/viewer/shapes.cljs @@ -196,8 +196,8 @@ :y (- y 1) :width (+ width 2) :height (+ height 2) - :fill "#31EFB8" - :stroke "#31EFB8" + :fill "var(--color-primary)" + :stroke "var(--color-primary)" :stroke-width (if interactions-show? 1 0) :fill-opacity (if interactions-show? 0.2 0) :style {:pointer-events (when frame? "none")} diff --git a/frontend/src/app/main/ui/workspace/colorpicker/harmony.cljs b/frontend/src/app/main/ui/workspace/colorpicker/harmony.cljs index ca17d1ede..69247a2d0 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker/harmony.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker/harmony.cljs @@ -38,8 +38,8 @@ (.stroke ctx))) (let [grd (.createRadialGradient ctx cx cy 0 cx cx radius)] - (.addColorStop grd 0 "white") - (.addColorStop grd 1 "rgba(255, 255, 255, 0") + (.addColorStop grd 0 "rgba(255, 255, 255, 1)") + (.addColorStop grd 1 "rgba(255, 255, 255, 0)") (obj/set! ctx "fillStyle" grd) (.beginPath ctx) diff --git a/frontend/src/app/main/ui/workspace/colorpicker/libraries.cljs b/frontend/src/app/main/ui/workspace/colorpicker/libraries.cljs index a305e8fed..7023b52a9 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker/libraries.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker/libraries.cljs @@ -81,11 +81,11 @@ [:div.selected-colors (when (= selected-library :file) - [:div.color-bullet.button.plus-button {:style {:background-color "white"} + [:div.color-bullet.button.plus-button {:style {:background-color "var(--color-white)"} :on-click on-add-library-color} i/plus]) - [:div.color-bullet.button {:style {:background-color "white"} + [:div.color-bullet.button {:style {:background-color "var(--color-white)"} :on-click #(st/emit! (dc/show-palette selected-library))} i/palette] diff --git a/frontend/src/app/main/ui/workspace/rules.cljs b/frontend/src/app/main/ui/workspace/rules.cljs index d455cf970..45a8cd0d9 100644 --- a/frontend/src/app/main/ui/workspace/rules.cljs +++ b/frontend/src/app/main/ui/workspace/rules.cljs @@ -47,8 +47,8 @@ (.translate dctx 0 txfm)) (obj/set! dctx "font" "12px worksans") - (obj/set! dctx "fillStyle" "#7B7D85") - (obj/set! dctx "strokeStyle" "#7B7D85") + (obj/set! dctx "fillStyle" "var(--color-gray-30)") + (obj/set! dctx "strokeStyle" "var(--color-gray-30)") (obj/set! dctx "textAlign" "center") (loop [i minv] diff --git a/frontend/src/app/main/ui/workspace/shapes/bounding_box.cljs b/frontend/src/app/main/ui/workspace/shapes/bounding_box.cljs index c7d599a2b..7e05a7881 100644 --- a/frontend/src/app/main/ui/workspace/shapes/bounding_box.cljs +++ b/frontend/src/app/main/ui/workspace/shapes/bounding_box.cljs @@ -65,7 +65,7 @@ :y (- (:y bounding-box) 5) :font-size 10 :fill line-color - :stroke "white" + :stroke "var(--color-white)" :stroke-width 0.1} (str/format "%s - (%s, %s)" (str/slice (str (:id shape)) 0 8) (fixed (:x bounding-box)) (fixed (:y bounding-box)))] diff --git a/frontend/src/app/main/ui/workspace/shapes/path/common.cljs b/frontend/src/app/main/ui/workspace/shapes/path/common.cljs index df228663c..1f5ec07ca 100644 --- a/frontend/src/app/main/ui/workspace/shapes/path/common.cljs +++ b/frontend/src/app/main/ui/workspace/shapes/path/common.cljs @@ -10,11 +10,11 @@ [okulary.core :as l] [rumext.alpha :as mf])) -(def primary-color "#1FDEA7") -(def secondary-color "#DB00FF") -(def black-color "#000000") -(def white-color "#FFFFFF") -(def gray-color "#B1B2B5") +(def primary-color "var(--color-select)") +(def secondary-color "var(--color-distance)") +(def black-color "var(--color-black)") +(def white-color "var(--color-white)") +(def gray-color "var(--color-gray-20)") (def current-edit-path-ref (let [selfn (fn [local] diff --git a/frontend/src/app/main/ui/workspace/viewport/drawarea.cljs b/frontend/src/app/main/ui/workspace/viewport/drawarea.cljs index 740c6956c..97fdf6168 100644 --- a/frontend/src/app/main/ui/workspace/viewport/drawarea.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/drawarea.cljs @@ -39,7 +39,7 @@ [:rect.main {:x x :y y :width width :height height - :style {:stroke "#1FDEA7" + :style {:stroke "var(--color-select)" :fill "none" :stroke-width (/ 1 zoom)}}]))) diff --git a/frontend/src/app/main/ui/workspace/viewport/gradients.cljs b/frontend/src/app/main/ui/workspace/viewport/gradients.cljs index a1b623c36..0164211a4 100644 --- a/frontend/src/app/main/ui/workspace/viewport/gradients.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/gradients.cljs @@ -22,14 +22,14 @@ [rumext.alpha :as mf])) (def gradient-line-stroke-width 2) -(def gradient-line-stroke-color "white") +(def gradient-line-stroke-color "var(--color-white)") (def gradient-square-width 15) (def gradient-square-radius 2) (def gradient-square-stroke-width 2) (def gradient-width-handler-radius 5) -(def gradient-width-handler-color "white") -(def gradient-square-stroke-color "white") -(def gradient-square-stroke-color-selected "#1FDEA7") +(def gradient-width-handler-color "var(--color-white)") +(def gradient-square-stroke-color "var(--color-white)") +(def gradient-square-stroke-color-selected "var(--color-select)") (def editing-spot-ref (l/derived (l/in [:workspace-local :editing-stop]) st/state)) @@ -115,7 +115,7 @@ :rx (/ gradient-square-radius zoom) :width (/ gradient-square-width zoom) :height (/ gradient-square-width zoom) - :stroke (if selected "#31EFB8" "white") + :stroke (if selected "var(--color-primary)" "var(--color-white)") :stroke-width (/ gradient-square-stroke-width zoom) :fill (:value color) :fill-opacity (:opacity color) diff --git a/frontend/src/app/main/ui/workspace/viewport/interactions.cljs b/frontend/src/app/main/ui/workspace/viewport/interactions.cljs index ed2300b65..de2e50a88 100644 --- a/frontend/src/app/main/ui/workspace/viewport/interactions.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/interactions.cljs @@ -116,7 +116,7 @@ (when icon-pdata [:path {:fill stroke :stroke-width 2 - :stroke "#FFFFFF" + :stroke "var(--color-white)" :d icon-pdata :transform (str "scale(" inv-zoom ", " inv-zoom ") " @@ -149,7 +149,7 @@ (if-not selected? [:g {:on-mouse-down #(on-mouse-down % index orig-shape)} - [:path {:stroke "#B1B2B5" + [:path {:stroke "var(--color-gray-20)" :fill "none" :pointer-events "visible" :stroke-width (/ 2 zoom) @@ -158,13 +158,13 @@ [:& interaction-marker {:index index :x dest-x :y dest-y - :stroke "#B1B2B5" + :stroke "var(--color-gray-20)" :action-type action-type :arrow-dir arrow-dir :zoom zoom}])] [:g {:on-mouse-down #(on-mouse-down % index orig-shape)} - [:path {:stroke "#31EFB8" + [:path {:stroke "var(--color-primary)" :fill "none" :pointer-events "visible" :stroke-width (/ 2 zoom) @@ -172,17 +172,17 @@ (when dest-shape [:& outline {:shape dest-shape - :color "#31EFB8"}]) + :color "var(--color-primary)"}]) [:& interaction-marker {:index index :x orig-x :y orig-y - :stroke "#31EFB8" + :stroke "var(--color-primary)" :zoom zoom}] [:& interaction-marker {:index index :x dest-x :y dest-y - :stroke "#31EFB8" + :stroke "var(--color-primary)" :action-type action-type :arrow-dir arrow-dir :zoom zoom}]]))) @@ -196,7 +196,7 @@ [:g {:on-mouse-down #(on-mouse-down % index shape)} [:& interaction-marker {:x handle-x :y handle-y - :stroke "#31EFB8" + :stroke "var(--color-primary)" :action-type :navigate :arrow-dir :right :zoom zoom}]])) @@ -217,8 +217,8 @@ [:g {:on-mouse-down start-move-position :on-mouse-enter #(reset! hover-disabled? true) :on-mouse-leave #(reset! hover-disabled? false)} - [:path {:stroke "#31EFB8" - :fill "#000000" + [:path {:stroke "var(--color-primary)" + :fill "var(--color-black)" :fill-opacity 0.3 :stroke-width 1 :d (str "M" marker-x " " marker-y " " @@ -232,7 +232,7 @@ [:circle {:cx (+ marker-x (/ width 2)) :cy (+ marker-y (/ height 2)) :r 8 - :fill "#31EFB8"}]])))) + :fill "var(--color-primary)"}]])))) (mf/defc interactions [{:keys [selected hover-disabled?] :as props}] diff --git a/frontend/src/app/main/ui/workspace/viewport/outline.cljs b/frontend/src/app/main/ui/workspace/viewport/outline.cljs index 44d644f6b..bab870bf9 100644 --- a/frontend/src/app/main/ui/workspace/viewport/outline.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/outline.cljs @@ -67,7 +67,7 @@ (let [shapes (obj/get props "shapes") zoom (obj/get props "zoom") color (if (or (> (count shapes) 1) (nil? (:shape-ref (first shapes)))) - "#31EFB8" "#00E0FF")] + "var(--color-primary)" "var(--color-component-highlight)")] (for [shape shapes] [:& outline {:key (str "outline-" (:id shape)) :shape (gsh/transform-shape shape) diff --git a/frontend/src/app/main/ui/workspace/viewport/presence.cljs b/frontend/src/app/main/ui/workspace/viewport/presence.cljs index 272b0628b..2293bd178 100644 --- a/frontend/src/app/main/ui/workspace/viewport/presence.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/presence.cljs @@ -22,7 +22,7 @@ [{:keys [session profile] :as props}] (let [zoom (mf/deref refs/selected-zoom) point (:point session) - color (:color session "#000000") + color (:color session "var(--color-black)") transform (str/fmt "translate(%s, %s) scale(%s)" (:x point) (:y point) (/ 4 zoom))] [:g.multiuser-cursor {:transform transform} [:path {:fill color @@ -43,7 +43,7 @@ :width 25 :height 5 :overflow "hidden" - :fill "#fff" + :fill "var(--color-white)" :stroke-width 1 :font-family "Works Sans" :font-size 3 diff --git a/frontend/src/app/main/ui/workspace/viewport/selection.cljs b/frontend/src/app/main/ui/workspace/viewport/selection.cljs index b42a2feb7..1f3bf6690 100644 --- a/frontend/src/app/main/ui/workspace/viewport/selection.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/selection.cljs @@ -27,8 +27,8 @@ (def resize-point-circle-radius 10) (def resize-point-rect-size 8) (def resize-side-height 8) -(def selection-rect-color-normal "#1FDEA7") -(def selection-rect-color-component "#00E0FF") +(def selection-rect-color-normal "var(--color-select)") +(def selection-rect-color-component "var(--color-component-highlight)") (def selection-rect-width 1) (def min-selrect-side 10) (def small-selrect-side 30) @@ -149,7 +149,7 @@ :style {:fillOpacity "1" :strokeWidth "1px" :vectorEffect "non-scaling-stroke"} - :fill "#FFFFFF" + :fill "var(--color-white)" :stroke (if (and (= position :bottom-right) overflow-text) "red" color) :cx cx' :cy cy'}] diff --git a/frontend/src/app/main/ui/workspace/viewport/snap_distances.cljs b/frontend/src/app/main/ui/workspace/viewport/snap_distances.cljs index a5c85499f..b02f1ec78 100644 --- a/frontend/src/app/main/ui/workspace/viewport/snap_distances.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/snap_distances.cljs @@ -17,7 +17,7 @@ [cuerdas.core :as str] [rumext.alpha :as mf])) -(def ^:private line-color "#D383DA") +(def ^:private line-color "var(--color-snap)") (def ^:private segment-gap 2) (def ^:private segment-gap-side 5) @@ -79,7 +79,7 @@ [:text {:x (if (= coord :x) x (+ x (/ width 2))) :y (- (+ y (/ (/ pill-text-height zoom) 2) (- (/ 6 zoom))) (if (= coord :x) (/ 2 zoom) 0)) :font-size (/ pill-text-font-size zoom) - :fill "white" + :fill "var(--color-white)" :text-anchor "middle"} (mth/precision distance 0)]]) diff --git a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs index 5fad2a5c1..282591a7f 100644 --- a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs @@ -15,7 +15,7 @@ [beicon.core :as rx] [rumext.alpha :as mf])) -(def ^:private line-color "#D383DA") +(def ^:private line-color "var(--color-snap)") (def ^:private line-opacity 0.6) (def ^:private line-width 1) diff --git a/frontend/src/app/main/ui/workspace/viewport/widgets.cljs b/frontend/src/app/main/ui/workspace/viewport/widgets.cljs index 9d7f54ed4..9b8d30d58 100644 --- a/frontend/src/app/main/ui/workspace/viewport/widgets.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/widgets.cljs @@ -31,7 +31,7 @@ :pattern-units "userSpaceOnUse"} [:path {:d "M 1 0 L 0 0 0 1" :style {:fill "none" - :stroke "#59B9E2" + :stroke "var(--color-info)" :stroke-opacity "0.2" :stroke-width (str (/ 1 zoom))}}]]] [:rect {:x (:x vbox) @@ -130,7 +130,7 @@ :transform (str (when (and selected? modifiers) (str (:displacement modifiers) " " )) (text-transform label-pos zoom)) - :style {:fill (when selected? "#28c295")} + :style {:fill (when selected? "var(--color-primary-dark)")} :on-mouse-down on-mouse-down :on-double-click on-double-click :on-pointer-enter on-pointer-enter diff --git a/frontend/src/app/util/avatars.cljs b/frontend/src/app/util/avatars.cljs index acca7deca..e7fdc0b25 100644 --- a/frontend/src/app/util/avatars.cljs +++ b/frontend/src/app/util/avatars.cljs @@ -11,7 +11,7 @@ (defn generate* [{:keys [name color size] - :or {color "#000000" size 128}}] + :or {color "var(--color-black)" size 128}}] (let [parts (str/words (str/upper name)) letters (if (= 1 (count parts)) (ffirst parts) @@ -27,7 +27,7 @@ (obj/set! context "font" (str (/ size 2) "px Arial")) (obj/set! context "textAlign" "center") - (obj/set! context "fillStyle" "#FFFFFF") + (obj/set! context "fillStyle" "var(--color-white)") (.fillText context letters (/ size 2) (/ size 1.5)) (.toDataURL canvas)))