Skip to content

Commit 234503c

Browse files
Fix/improve responsiveness combinators (#41)
* Improve responsiveness combinators * Make responsive combinators have flex layout by default
1 parent 30bc303 commit 234503c

File tree

3 files changed

+34
-18
lines changed

3 files changed

+34
-18
lines changed

docs/Examples/Responsive.example.purs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import Prelude
44

55
import Lumi.Components.Column (column_)
66
import Lumi.Components.Example (example)
7-
import Lumi.Components.Responsive (desktop, mobile)
7+
import Lumi.Components.Responsive (desktop_, mobile_)
88
import Lumi.Components.Text (body_, h2_)
99
import React.Basic (JSX)
1010

@@ -14,7 +14,11 @@ docs =
1414
[ h2_ "Desktop and mobile"
1515
, example $
1616
column_
17-
[ mobile $ body_ "Mobile: this text only is only visible on mobile-sized screens."
18-
, desktop $ body_ "Desktop: this text only is only visible on desktop-sized screens."
17+
[ mobile_
18+
[ body_ "Mobile: this text only is only visible on mobile-sized screens."
19+
]
20+
, desktop_
21+
[ body_ "Desktop: this text only is only visible on desktop-sized screens."
22+
]
1923
]
2024
]

src/Lumi/Components/Divider.purs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ styles = jss
3535
, background: cssStringHSLA colors.black4
3636
, fontSize: "0"
3737
, border: "0"
38+
, flexShrink: "0"
3839
}
3940
}
4041
}

src/Lumi/Components/Responsive.purs

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,40 @@ import Prelude
44

55
import JSS (JSS, jss)
66
import React.Basic (JSX, element)
7-
import React.Basic.DOM (unsafeCreateDOMComponent)
7+
import React.Basic.DOM (CSS, css, unsafeCreateDOMComponent)
88

9-
mobile :: JSX -> JSX
10-
mobile = lumiMobileElement <<< { children: _ }
11-
where
12-
lumiMobileElement = element (unsafeCreateDOMComponent "lumi-mobile")
9+
type ResponsiveProps =
10+
{ style :: CSS
11+
, children :: Array JSX
12+
}
13+
14+
mobile :: ResponsiveProps -> JSX
15+
mobile = element (unsafeCreateDOMComponent "lumi-mobile")
16+
17+
mobile_ :: Array JSX -> JSX
18+
mobile_ = mobile <<< { style: css {}, children: _ }
19+
20+
desktop :: ResponsiveProps -> JSX
21+
desktop = element (unsafeCreateDOMComponent "lumi-desktop")
1322

14-
desktop :: JSX -> JSX
15-
desktop = lumiDesktopElement <<< { children: _ }
16-
where
17-
lumiDesktopElement = element (unsafeCreateDOMComponent "lumi-desktop")
23+
desktop_ :: Array JSX -> JSX
24+
desktop_ = desktop <<< { style: css {}, children: _ }
1825

1926
styles :: JSS
2027
styles = jss
2128
{ "@global":
22-
{ "@media (max-width: 860px)":
23-
{ "lumi-desktop":
24-
{ "display": "none"
29+
{ "lumi-desktop":
30+
{ "display": "flex"
31+
, "flex-shrink": "0"
32+
, "@media (max-width: 860px)":
33+
{ "display": "none !important"
2534
}
2635
}
27-
, "@media (min-width: 861px)":
28-
{ "lumi-mobile":
29-
{ "display": "none"
36+
, "lumi-mobile":
37+
{ "display": "flex"
38+
, "flex-shrink": "0"
39+
, "@media (min-width: 861px)":
40+
{ "display": "none !important"
3041
}
3142
}
3243
}

0 commit comments

Comments
 (0)