mirror of
https://github.com/penpot/penpot.git
synced 2025-06-05 23:21:38 +02:00
🎉 Add text-direction option on for text shape.
This commit is contained in:
parent
a988292253
commit
422f4ee6c2
8 changed files with 61 additions and 14 deletions
3
frontend/resources/images/icons/text-direction-ltr.svg
Normal file
3
frontend/resources/images/icons/text-direction-ltr.svg
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500" viewBox="0 0 132.29 132.29">
|
||||||
|
<path d="M0 92.6V39.7l26.45 26.45zm111.13 39.7V14.1h21.16V0H75.86C44.94 0 26.5 15.82 26.5 42.32c0 24.4 15.69 39.73 42.32 42v47.97h14.1V14.11h14.11v118.18zM40.59 42.31c0-19.97 14.07-26.4 28.22-27.85v55.7c-14.15-1.44-28.22-7.88-28.22-27.85z" fill="#000"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 357 B |
3
frontend/resources/images/icons/text-direction-rtl.svg
Normal file
3
frontend/resources/images/icons/text-direction-rtl.svg
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500" viewBox="0 0 132.29 132.29">
|
||||||
|
<path d="M132.3 39.69V92.6l-26.46-26.45zm-47.65 92.6V14.11h21.16V0H49.38C18.46 0 0 15.82 0 42.32c0 24.4 15.7 39.73 42.32 42v47.97h14.11V14.11h14.1v118.18zM14.1 42.32c0-19.97 14.06-26.4 28.21-27.85v55.7c-14.15-1.44-28.21-7.88-28.21-27.85z" fill="#000"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 356 B |
|
@ -5201,6 +5201,21 @@
|
||||||
},
|
},
|
||||||
"used-in" : [ "src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs" ]
|
"used-in" : [ "src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs" ]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"workspace.options.text-options.direction-rtl" : {
|
||||||
|
"translations" : {
|
||||||
|
"en" : "RTL",
|
||||||
|
"es" : "RTL"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"workspace.options.text-options.direction-ltr" : {
|
||||||
|
"translations" : {
|
||||||
|
"en" : "LTR",
|
||||||
|
"es" : "LTR"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
"workspace.options.text-options.align-bottom" : {
|
"workspace.options.text-options.align-bottom" : {
|
||||||
"translations" : {
|
"translations" : {
|
||||||
"de" : "Unten ausrichten",
|
"de" : "Unten ausrichten",
|
||||||
|
|
|
@ -16,13 +16,6 @@ foreignObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-editor {
|
.text-editor {
|
||||||
.public-DraftStyleDefault-rtl {
|
|
||||||
direction: rtl;
|
|
||||||
}
|
|
||||||
.public-DraftStyleDefault-ltr {
|
|
||||||
direction: ltr;
|
|
||||||
}
|
|
||||||
|
|
||||||
.DraftEditor-root {
|
.DraftEditor-root {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -113,6 +113,8 @@
|
||||||
(def text-align-justify (icon-xref :text-align-justify))
|
(def text-align-justify (icon-xref :text-align-justify))
|
||||||
(def text-align-left (icon-xref :text-align-left))
|
(def text-align-left (icon-xref :text-align-left))
|
||||||
(def text-align-right (icon-xref :text-align-right))
|
(def text-align-right (icon-xref :text-align-right))
|
||||||
|
(def text-direction-ltr (icon-xref :text-direction-ltr))
|
||||||
|
(def text-direction-rtl (icon-xref :text-direction-rtl))
|
||||||
(def titlecase (icon-xref :titlecase))
|
(def titlecase (icon-xref :titlecase))
|
||||||
(def toggle (icon-xref :toggle))
|
(def toggle (icon-xref :toggle))
|
||||||
(def trash (icon-xref :trash))
|
(def trash (icon-xref :trash))
|
||||||
|
|
|
@ -58,8 +58,9 @@
|
||||||
(let [node (obj/get props "node")
|
(let [node (obj/get props "node")
|
||||||
shape (obj/get props "shape")
|
shape (obj/get props "shape")
|
||||||
children (obj/get props "children")
|
children (obj/get props "children")
|
||||||
style (sts/generate-paragraph-styles shape node)]
|
style (sts/generate-paragraph-styles shape node)
|
||||||
[:p.paragraph {:style style :dir "auto"} children]))
|
dir (:text-direction node "auto")]
|
||||||
|
[:p.paragraph {:style style :dir dir} children]))
|
||||||
|
|
||||||
;; -- Text nodes
|
;; -- Text nodes
|
||||||
(mf/defc render-node
|
(mf/defc render-node
|
||||||
|
|
|
@ -49,10 +49,13 @@
|
||||||
[props]
|
[props]
|
||||||
(let [children (obj/get props "children")
|
(let [children (obj/get props "children")
|
||||||
bprops (obj/get props "blockProps")
|
bprops (obj/get props "blockProps")
|
||||||
|
data (obj/get bprops "data")
|
||||||
style (sts/generate-paragraph-styles (obj/get bprops "shape")
|
style (sts/generate-paragraph-styles (obj/get bprops "shape")
|
||||||
(obj/get bprops "data"))]
|
(obj/get bprops "data"))
|
||||||
|
dir (:text-direction data "auto")]
|
||||||
|
|
||||||
[:div {:style style :dir "auto"}
|
|
||||||
|
[:div {:style style :dir dir}
|
||||||
[:> draft/EditorBlock props]]))
|
[:> draft/EditorBlock props]]))
|
||||||
|
|
||||||
(mf/defc selection-component
|
(mf/defc selection-component
|
||||||
|
|
|
@ -48,6 +48,9 @@
|
||||||
(def text-align-attrs
|
(def text-align-attrs
|
||||||
[:text-align])
|
[:text-align])
|
||||||
|
|
||||||
|
(def text-direction-attrs
|
||||||
|
[:text-direction])
|
||||||
|
|
||||||
(def text-spacing-attrs
|
(def text-spacing-attrs
|
||||||
[:line-height
|
[:line-height
|
||||||
:letter-spacing])
|
:letter-spacing])
|
||||||
|
@ -68,7 +71,8 @@
|
||||||
(d/concat text-valign-attrs text-align-attrs))
|
(d/concat text-valign-attrs text-align-attrs))
|
||||||
|
|
||||||
(def paragraph-attrs
|
(def paragraph-attrs
|
||||||
text-align-attrs)
|
(d/concat text-align-attrs
|
||||||
|
text-direction-attrs))
|
||||||
|
|
||||||
(def text-attrs
|
(def text-attrs
|
||||||
(d/concat text-typography-attrs
|
(d/concat text-typography-attrs
|
||||||
|
@ -109,6 +113,24 @@
|
||||||
:on-click #(handle-change % "justify")}
|
:on-click #(handle-change % "justify")}
|
||||||
i/text-align-justify]]))
|
i/text-align-justify]]))
|
||||||
|
|
||||||
|
(mf/defc text-direction-options
|
||||||
|
[{:keys [ids values on-change] :as props}]
|
||||||
|
(let [direction (:text-direction values)
|
||||||
|
handle-change (fn [event val]
|
||||||
|
(on-change {:text-direction val}))]
|
||||||
|
;; --- Align
|
||||||
|
[:div.align-icons
|
||||||
|
[:span.tooltip.tooltip-bottom
|
||||||
|
{:alt (tr "workspace.options.text-options.direction-ltr")
|
||||||
|
:class (dom/classnames :current (= "ltr" direction))
|
||||||
|
:on-click #(handle-change % "ltr")}
|
||||||
|
i/text-direction-ltr]
|
||||||
|
[:span.tooltip.tooltip-bottom
|
||||||
|
{:alt (tr "workspace.options.text-options.direction-rtl")
|
||||||
|
:class (dom/classnames :current (= "rtl" direction))
|
||||||
|
:on-click #(handle-change % "rtl")}
|
||||||
|
i/text-direction-rtl]]))
|
||||||
|
|
||||||
|
|
||||||
(mf/defc vertical-align
|
(mf/defc vertical-align
|
||||||
[{:keys [shapes ids values on-change] :as props}]
|
[{:keys [shapes ids values on-change] :as props}]
|
||||||
|
@ -293,6 +315,11 @@
|
||||||
[:> vertical-align opts]]
|
[:> vertical-align opts]]
|
||||||
|
|
||||||
[:div.row-flex
|
[:div.row-flex
|
||||||
[:> grow-options opts]
|
[:> text-decoration-options opts]
|
||||||
[:> text-decoration-options opts]]]]))
|
[:> text-direction-options opts]]
|
||||||
|
|
||||||
|
[:div.row-flex
|
||||||
|
[:> grow-options opts]
|
||||||
|
[:div.align-icons]]]]))
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue