Skip to content

Commit 22c69df

Browse files
committed
Render import rules
1 parent 9d11317 commit 22c69df

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

src/Css/Render.purs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,17 +57,17 @@ render :: forall a. StyleM a -> Rendered
5757
render = rules [] <<< runS
5858

5959
kframe :: Keyframes -> Rendered
60-
kframe (Keyframes ident xs) = Just <<< That <<< Sheet $ " @-webkit-keyframes " <> ident <> " { " <> intercalate " " (uncurry frame <$> xs) <> " }"
60+
kframe (Keyframes ident xs) = Just <<< That <<< Sheet $ "@-webkit-keyframes " <> ident <> " { " <> intercalate " " (uncurry frame <$> xs) <> " }\n"
6161

6262
frame :: Number -> [Rule] -> String
6363
frame p rs = show p <> "% " <> "{ " <> x <> " }"
6464
where x = fromMaybe "" <<< renderedInline $ rules [] rs
6565

6666
face :: [Rule] -> Rendered
67-
face rs = Just <<< That <<< Sheet $ "@font-face { " <> fromMaybe "" (renderedInline $ rules [] rs) <> " }"
67+
face rs = Just <<< That <<< Sheet $ "@font-face { " <> fromMaybe "" (renderedInline $ rules [] rs) <> " }\n"
6868

6969
rules :: [App] -> [Rule] -> Rendered
70-
rules sel rs = topRules <> nestedSheets <> keyframeRules <> faceRules
70+
rules sel rs = topRules <> importRules <> keyframeRules <> faceRules <> nestedSheets
7171
where property (Property k v) = Just (Tuple k v)
7272
property _ = Nothing
7373
nested (Nested a ns ) = Just (Tuple a ns)
@@ -76,11 +76,17 @@ rules sel rs = topRules <> nestedSheets <> keyframeRules <> faceRules
7676
kframes _ = Nothing
7777
faces (Face ns ) = Just ns
7878
faces _ = Nothing
79-
topRules = rule' sel (mapMaybe property rs)
80-
nestedSheets = intercalate (Just (That (Sheet " "))) $ uncurry nestedRules <$> mapMaybe nested rs
79+
imports (Import i ) = Just i
80+
imports _ = Nothing
81+
topRules = rule' sel (mapMaybe property rs)
82+
nestedSheets = intercalate (Just (That (Sheet " "))) $ uncurry nestedRules <$> mapMaybe nested rs
8183
nestedRules a = rules (a : sel)
8284
keyframeRules = foldMap kframe $ mapMaybe kframes rs
83-
faceRules = foldMap face $ mapMaybe faces rs
85+
faceRules = foldMap face $ mapMaybe faces rs
86+
importRules = foldMap imp $ mapMaybe imports rs
87+
88+
imp :: String -> Rendered
89+
imp t = Just <<< That <<< Sheet <<< fromString $ "@import url(" <> t <> ");\n"
8490

8591
rule' :: forall a. [App] -> [Tuple (Key a) Value] -> Rendered
8692
rule' sel props = maybe q o $ nel sel

src/Css/Stylesheet.purs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,5 +66,11 @@ infixr 5 ?
6666
keyframes :: String -> NEL.NonEmpty (Tuple Number Css) -> Css
6767
keyframes n xs = rule $ Keyframe (Keyframes n (second runS <$> xs))
6868

69+
keyframesFromTo :: String -> Css -> Css -> Css
70+
keyframesFromTo n a b = keyframes n $ Tuple 0 a NEL.:| [Tuple 100 b]
71+
6972
fontFace :: Css -> Css
7073
fontFace = rule <<< Face <<< runS
74+
75+
importUrl :: String -> Css
76+
importUrl = rule <<< Import

0 commit comments

Comments
 (0)