Skip to content

Commit b1100f5

Browse files
committed
Include css normalize in style output
1 parent 0480034 commit b1100f5

3 files changed

Lines changed: 35 additions & 9 deletions

File tree

bin/style-elements.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ var pkg = require("../package.json");
55
var program = require("commander");
66
var fs = require("fs");
77
var chalk = require("chalk");
8-
var requiredOptions = ["stylesheetModule", "stylesheetFunction", "output"];
8+
var requiredOptions = ["stylesheetModule", "stylesheetFunction", "mode", "output"];
99
var utils = require("../js/utils");
1010
var writeFile = utils.writeFile;
1111
var assertKeysPresent = utils.assertKeysPresent;
@@ -14,7 +14,8 @@ var options = getOptions(process.argv, program);
1414

1515
styleElements({
1616
stylesheetModule: options.stylesheetModule,
17-
stylesheetFunction: options.stylesheetFunction
17+
stylesheetFunction: options.stylesheetFunction,
18+
mode: options.mode
1819
})
1920
.then(result => writeFile(options.output, result))
2021
.then(() => {
@@ -32,12 +33,18 @@ function getOptions(argv, program) {
3233
"(optional) file to write the CSS to",
3334
"out.css"
3435
)
36+
.option(
37+
"-m, --mode [layout/viewport]",
38+
"(optional) whether to render stylesheet for 'layout' or 'viewport'",
39+
"layout"
40+
)
3541
.parse(argv);
3642

3743
var options = {
3844
stylesheetModule: program.args[0],
3945
stylesheetFunction: program.args[1],
40-
output: program.output
46+
output: program.output,
47+
mode: program.mode
4148
};
4249

4350
assertKeysPresent(options, requiredOptions, _missingOptions => {

index.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ var writeFile = utils.writeFile;
77
var withTmpDir = utils.withTmpDir;
88
var assertKeysPresent = utils.assertKeysPresent;
99

10-
var requiredOptions = ["stylesheetModule", "stylesheetFunction"];
10+
var requiredOptions = ["stylesheetModule", "stylesheetFunction", "mode"];
1111

1212
function generateCss(opts) {
1313
assertKeysPresent(opts, requiredOptions, missingOptions => {
@@ -28,25 +28,28 @@ function generateCss(opts) {
2828
});
2929
}
3030

31-
function buildEmitterTemplate(stylesheetModule, stylesheetFunction) {
31+
function buildEmitterTemplate(stylesheetModule, stylesheetFunction, mode) {
32+
var renderFunction = mode === "viewport" ? "toViewportCss" : "toLayoutCss";
33+
3234
return unindent(
3335
`
3436
port module StyleElementsEmitter exposing (..)
3537
3638
import ${stylesheetModule}
39+
import Element
3740
3841
3942
port result : String -> Cmd msg
4043
4144
42-
stylesheet =
43-
${stylesheetModule}.${stylesheetFunction}
45+
styles =
46+
Element.${renderFunction} ${stylesheetModule}.${stylesheetFunction}
4447
4548
4649
main : Program Never () Never
4750
main =
4851
Platform.program
49-
{ init = ( (), result stylesheet.css )
52+
{ init = ( (), result styles )
5053
, update = \\_ _ -> ( (), Cmd.none )
5154
, subscriptions = \\_ -> Sub.none
5255
}

src/Element.elm

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ module Element
6262
, layout
6363
, viewport
6464
, toHtml
65+
, toLayoutCss
66+
, toViewportCss
6567
, embedStylesheet
6668
, Device
6769
, classifyDevice
@@ -196,7 +198,7 @@ Some convient elements for working with forms.
196198
197199
## Advanced Rendering
198200
199-
@docs toHtml, embedStylesheet
201+
@docs toHtml, embedStylesheet, toLayoutCss, toViewportCss
200202
201203
202204
### Deprecated
@@ -1252,6 +1254,20 @@ toHtml stylesheet el =
12521254
(Render.render stylesheet el)
12531255

12541256

1257+
{-| Renders the stylesheet used by 'layout' to css
1258+
-}
1259+
toLayoutCss : StyleSheet style variation -> String
1260+
toLayoutCss stylesheet =
1261+
Render.normalize ++ stylesheet.css
1262+
1263+
1264+
{-| Renders the stylesheet used by 'viewport' to css
1265+
-}
1266+
toViewportCss : StyleSheet style variation -> String
1267+
toViewportCss stylesheet =
1268+
Render.normalizeFull () ++ stylesheet.css
1269+
1270+
12551271
{-| Embed a stylesheet.
12561272
-}
12571273
embedStylesheet : StyleSheet style variation -> Html msg

0 commit comments

Comments
 (0)