Skip to content

Commit f381ecb

Browse files
committed
Add text direction
1 parent f62924f commit f381ecb

File tree

4 files changed

+34
-2
lines changed

4 files changed

+34
-2
lines changed

src/CSS.purs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import CSS.Size (Abs, Angle(..), Deg, Rad, Rel, Size(..), deg, em, ex, nil, pct,
2020
import CSS.String (class IsString, fromString) as X
2121
import CSS.Stylesheet (App(..), CSS, Feature(..), Keyframes(..), MediaQuery(..), MediaType(..), NotOrOnly(..), Rule(..), StyleM(..), fontFace, importUrl, key, keyframes, keyframesFromTo, prefixed, query, rule, runS, select, (?)) as X
2222
import CSS.Text (TextDecoration(..), blink, letterSpacing, lineThrough, noneTextDecoration, overline, textDecoration, underline) as X
23+
import CSS.Text.Direction (TextDirection(..), direction) as X
2324
import CSS.Text.Whitespace (TextWhitespace, textWhitespace, whitespaceNoWrap, whitespaceNormal, whitespacePre, whitespacePreLine, whitespacePreWrap) as X
2425
import CSS.Time (Time(..), ms, sec) as X
2526
import CSS.Transform (TransformOrigin(..), TransformOriginOffset(..), Transformation(..), offset, offsetBottom, offsetCenter, offsetLeft, offsetRight, offsetTop, rotate, transform, transformOrigin, transforms, translate) as X

src/CSS/Text.purs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ letterSpacing = key $ fromString "letter-spacing"
1212
newtype TextDecoration = TextDecoration Value
1313

1414
derive instance eqTextDecoration :: Eq TextDecoration
15-
derive instance ordTextDecoration:: Ord TextDecoration
15+
derive instance ordTextDecoration :: Ord TextDecoration
1616

1717
instance valTextDecoration :: Val TextDecoration where
1818
value (TextDecoration v) = v

src/CSS/Text/Direction.purs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
module CSS.Text.Direction where
2+
3+
import Prelude
4+
import CSS.Property (class Val)
5+
import CSS.String (fromString)
6+
import CSS.Stylesheet (CSS, key)
7+
8+
data TextDirection = Ltr | Rtl
9+
10+
derive instance eqTextDirection :: Eq TextDirection
11+
derive instance ordTextDirection :: Ord TextDirection
12+
13+
instance valTextDirection :: Val TextDirection where
14+
value Ltr = fromString "ltr"
15+
value Rtl = fromString "rtl"
16+
17+
direction :: TextDirection -> CSS
18+
direction = key $ fromString "direction"
19+
20+
ltr :: TextDirection
21+
ltr = Ltr
22+
23+
rtl :: TextDirection
24+
rtl = Rtl

test/Main.purs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import Prelude
44

55
import Effect (Effect)
66
import Effect.Exception (error, throwException)
7-
import CSS (Rendered, Path(..), Predicate(..), Refinement(..), Selector(..), FontFaceSrc(..), FontFaceFormat(..), renderedSheet, renderedInline, fromString, selector, block, display, render, borderBox, boxSizing, contentBox, blue, color, body, a, p, px, dashed, border, inlineBlock, red, (?), (##), (|>), (**), hover, fontFaceSrc, zIndex)
7+
import CSS (Rendered, Path(..), Predicate(..), Refinement(..), Selector(..), FontFaceSrc(..), FontFaceFormat(..), renderedSheet, renderedInline, fromString, selector, block, display, render, borderBox, boxSizing, contentBox, blue, color, body, a, p, px, dashed, border, inlineBlock, red, (?), (##), (|>), (**), hover, fontFaceSrc, zIndex, direction)
8+
import CSS.Text.Direction as TextDirection
89
import Data.Maybe (Maybe(..))
910
import Data.NonEmpty (singleton)
1011

@@ -58,6 +59,10 @@ deepSelector = render do
5859
p ** a ? do
5960
display block
6061

62+
exampleDirection :: Rendered
63+
exampleDirection = render do
64+
direction TextDirection.rtl
65+
6166
nestedNodes :: Rendered
6267
nestedNodes = render do
6368
fromString "#parent" ? do
@@ -97,3 +102,5 @@ main = do
97102
renderedInline example6 `assertEqual` Just "src: url(\"font.woff\") format(\"woff\")"
98103

99104
renderedInline example7 `assertEqual` Just "z-index: 11"
105+
106+
renderedInline exampleDirection `assertEqual` Just "direction: rtl"

0 commit comments

Comments
 (0)