Skip to content

Commit 975f884

Browse files
authored
Add support for visibility property. Resolves #146. (#148)
* Add support for visibility property. Resolves #146. * Remove redundant import.
1 parent 56fde10 commit 975f884

File tree

4 files changed

+61
-2
lines changed

4 files changed

+61
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Breaking changes:
1313
New features:
1414
- Add smart constructors for generic font families (#68, #136 by @Unisay and @JordanMartinez)
1515
- Add support for `text-direction` (#83, #137 by @vyorkin and @JordanMartinez)
16+
- Add support for `visibility` property (#148 by @nsaunders)
1617

1718
Bugfixes:
1819

src/CSS/Display.purs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module CSS.Display where
22

33
import Prelude
44

5-
import CSS.Common (class Inherit, class None)
5+
import CSS.Common (class Hidden, class Inherit, class Initial, class None, class Other, class Unset, class Visible)
66
import CSS.Property (class Val, Value)
77
import CSS.String (fromString)
88
import CSS.Stylesheet (CSS, key)
@@ -186,5 +186,25 @@ clear = key (fromString "clear")
186186
opacity :: Number -> CSS
187187
opacity = key $ fromString "opacity"
188188

189+
-------------------------------------------------------------------------------
190+
191+
newtype Visibility = Visibility Value
192+
193+
derive newtype instance Val Visibility
194+
derive newtype instance Other Visibility
195+
derive newtype instance Inherit Visibility
196+
derive newtype instance Initial Visibility
197+
derive newtype instance Unset Visibility
198+
derive newtype instance Hidden Visibility
199+
derive newtype instance Visible Visibility
200+
201+
collapse :: Visibility
202+
collapse = Visibility $ fromString "collapse"
203+
204+
visibility :: Visibility -> CSS
205+
visibility = key $ fromString "visibility"
206+
207+
-------------------------------------------------------------------------------
208+
189209
zIndex :: Int -> CSS
190210
zIndex = key (fromString "z-index") <<< show

test/CSS/DisplaySpec.purs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
module CSS.DisplaySpec where
2+
3+
import Prelude
4+
5+
import CSS.Color (green)
6+
import CSS.Color as Color
7+
import CSS.Common (hidden, inherit, initial, unset, visible)
8+
import CSS.Display (collapse, visibility)
9+
import CSS.Size (em, px)
10+
import Common (shouldRenderFrom)
11+
import Data.Maybe (fromJust)
12+
import Data.Traversable (traverse_)
13+
import Data.Tuple.Nested ((/\))
14+
import Partial.Unsafe (unsafePartial)
15+
import Test.Spec (Spec, describe)
16+
17+
spec :: Spec Unit
18+
spec = do
19+
20+
describe "visibility (Mozilla examples)" do
21+
let testVisibility (s /\ v) = ("visibility: " <> s) `shouldRenderFrom` visibility v
22+
describe "Keyword values" $
23+
traverse_
24+
testVisibility
25+
[ "visible" /\ visible
26+
, "hidden" /\ hidden
27+
, "collapse" /\ collapse
28+
]
29+
describe "Global values" $
30+
traverse_
31+
testVisibility
32+
[ "inherit" /\ inherit
33+
, "initial" /\ initial
34+
, "unset" /\ unset
35+
]

test/Main.purs

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

55
import CSS (Rendered, Path(..), Predicate(..), Refinement(..), Selector(..), FontFaceSrc(..), FontFaceFormat(..), pct, renderedSheet, renderedInline, fromString, selector, block, display, render, borderBox, boxSizing, contentBox, blue, color, body, a, p, px, dashed, border, inlineBlock, red, gold, teal, olive, black, (?), (&), (|>), (|*), (|+), byId, byClass, (@=), (^=), ($=), (*=), (~=), (|=), hover, fontFaceSrc, fontStyle, deg, rgba, zIndex, textOverflow, opacity, cursor, transform, transition, easeInOut, cubicBezier, ms, direction, width, em, (@+@), (@-@), (@*), (*@), (@/))
66
import CSS.BorderSpec as BorderSpec
7+
import CSS.DisplaySpec as DisplaySpec
78
import CSS.Cursor as Cursor
89
import CSS.Flexbox (flex)
910
import CSS.FontStyle as FontStyle
@@ -291,4 +292,6 @@ main = do
291292
log $ "\x1b[32m" <> show count <> " test" <> if count == 1 then "" else "s" <> " passed. These will be migrated to the new format in the future.\x1b[0m\n"
292293

293294
launchAff_ $
294-
runSpec [ consoleReporter ] BorderSpec.spec
295+
runSpec [ consoleReporter ] do
296+
BorderSpec.spec
297+
DisplaySpec.spec

0 commit comments

Comments
 (0)