├── tests ├── tinytest.js ├── absolute.import.styl ├── koutoswiss.import.styl ├── relative.import.styl └── main.styl ├── .gitignore ├── .versions ├── README.md ├── package.js └── plugin └── compile.js /tests/tinytest.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .npm 2 | -------------------------------------------------------------------------------- /tests/absolute.import.styl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/koutoswiss.import.styl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/relative.import.styl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/main.styl: -------------------------------------------------------------------------------- 1 | @import 'jeet' 2 | @import 'rupture' 3 | @import 'nib' 4 | @import 'kouto-swiss' 5 | @import '*.import.styl' 6 | -------------------------------------------------------------------------------- /.versions: -------------------------------------------------------------------------------- 1 | base64@1.0.3 2 | binary-heap@1.0.3 3 | callback-hook@1.0.3 4 | check@1.0.5 5 | ddp@1.1.0 6 | ejson@1.0.6 7 | geojson-utils@1.0.3 8 | girassolbit:meteor-kouto-swiss@0.0.5 9 | id-map@1.0.3 10 | jquery@1.11.3_2 11 | json@1.0.3 12 | local-test:girassolbit:meteor-kouto-swiss@0.0.5 13 | logging@1.0.7 14 | meteor@1.1.6 15 | minimongo@1.0.8 16 | mongo@1.1.0 17 | ordered-dict@1.0.3 18 | random@1.0.3 19 | retry@1.0.3 20 | test-helpers@1.0.4 21 | tinytest@1.0.5 22 | tracker@1.0.7 23 | underscore@1.0.3 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Meteor Kouto Swiss - Package for Kouto Swiss - A complete CSS Framework 2 | 3 | This is a complete Meteor package to work with Stylus, using: 4 | * [Kouto Swiss](http://kouto-swiss.io), a complete css framework for Stylus; 5 | * + [Jeet](http://jeet.gs/), a grid system for humans; 6 | * + [Rupture](http://jenius.github.io/rupture/), a utility for working with media queries in stylus; 7 | * + [Axis](http://axis.netlify.com/), a magical utility belt for stylus; 8 | * + [AutoPrefixer](https://github.com/jenius/autoprefixer-stylus), an autoprefixer plugin for stylus; 9 | * + [Nib](http://tj.github.io/nib/), a small library for providing robust cross-browser CSS3 mixins; 10 | * + [Typographic](https://github.com/corysimmons/typographic), is responsive typography made easy. 11 | 12 | ### Installation 13 | 14 | Install using Meteor's package management system: 15 | 16 | ```bash 17 | > meteor add girassolbit:meteor-kouto-swiss 18 | ``` 19 | 20 | ### Usage 21 | 22 | Add this import to the top of your main `.styl` file(s) in `styles` directory: 23 | 24 | ``` 25 | @import 'kouto-swiss' 26 | @import 'jeet' 27 | @import 'rupture' 28 | @import 'nib' 29 | @import 'typographic' 30 | ``` 31 | -------------------------------------------------------------------------------- /package.js: -------------------------------------------------------------------------------- 1 | Package.describe({ 2 | name: 'girassolbit:meteor-kouto-swiss', 3 | version: '0.0.5', 4 | summary: 'A package using Stylus + KoutoSwiss + Jeet + Rupture + Axis + AutoPrefixer + Nib + Typographic', 5 | git: 'https://github.com/girassolbit/meteor-kouto-swiss.git', 6 | documentation: 'README.md' 7 | }); 8 | 9 | Package.onUse(function(api) { 10 | api.versionsFrom('METEOR@1.1.0.2'); 11 | api.use('logging', ['client', 'server']); 12 | }); 13 | 14 | Package.registerBuildPlugin({ 15 | name: 'compileKoutoSwiss', 16 | use: [], 17 | sources: [ 18 | 'plugin/compile.js' 19 | ], 20 | npmDependencies: { 21 | 'stylus': '0.52.0', 22 | 'kouto-swiss': '0.11.13', 23 | 'nib': '1.1.0', 24 | 'autoprefixer-stylus': '0.7.1', 25 | 'jeet': '6.1.2', 26 | 'rupture': '0.6.1', 27 | 'axis': '0.4.2', 28 | 'lodash': '3.10.0', 29 | 'typographic': '2.9.3' 30 | } 31 | }); 32 | 33 | Package.onTest(function(api) { 34 | api.use(['tinytest','test-helpers']); 35 | api.use('girassolbit:meteor-kouto-swiss'); 36 | api.add_files([ 37 | 'tests/main.styl', 38 | 'tests/relative.import.styl', 39 | 'tests/absolute.import.styl', 40 | 'tests/koutoswiss.import.styl', 41 | 'tests/tinytest.js' 42 | ],'client'); 43 | }); 44 | -------------------------------------------------------------------------------- /plugin/compile.js: -------------------------------------------------------------------------------- 1 | var fs = Npm.require('fs') 2 | ,path = Npm.require('path') 3 | ,_ = Npm.require('lodash') 4 | ,Future = Npm.require('fibers/future'); 5 | 6 | // TODO: Use Promises 7 | 8 | var stylus = Npm.require('stylus') 9 | ,kouto = Npm.require('kouto-swiss') 10 | ,nib = Npm.require('nib') 11 | ,autoprefixer = Npm.require('autoprefixer-stylus') 12 | ,jeet = Npm.require('jeet') 13 | ,rupture = Npm.require('rupture') 14 | ,axis = Npm.require('axis') 15 | ,typographic = Npm.require('typographic') 16 | ,isDevEnv = process.env.NODE_ENV == 'development'; 17 | 18 | function ksHandler(compileStep) { 19 | var f = new Future; 20 | 21 | stylus(compileStep.read().toString('utf8')) 22 | // plugins 23 | .use(kouto()) 24 | .use(jeet()) 25 | .use(axis()) 26 | .use(rupture()) 27 | .use(nib()) 28 | .use(autoprefixer()) 29 | .use(typographic()) 30 | // config 31 | .set('filename', compileStep.inputPath) 32 | .set('sourcemap', {comment: false}) 33 | // just compress while production 34 | .set('compress', !isDevEnv) 35 | // includes for relative and absolute imports 36 | .include(path.dirname(compileStep._fullInputPath)) // relative @import 37 | .include(process.cwd()) // absolute @import 38 | .render(f.resolver()); 39 | 40 | try { 41 | var css = f.wait(); 42 | } catch (e) { 43 | compileStep.error({ 44 | message: "KoutoSwiss compiler error: " + e.message 45 | }); 46 | return; 47 | } 48 | compileStep.addStylesheet({ 49 | path: compileStep.inputPath + ".css", 50 | data: css 51 | }); 52 | 53 | }; 54 | 55 | Plugin.registerSourceHandler('styl', {archMatching: 'web'}, ksHandler); 56 | --------------------------------------------------------------------------------