Skip to content

Instantly share code, notes, and snippets.

View simonsmith's full-sized avatar

Simon Smith simonsmith

View GitHub Profile
@simonsmith
simonsmith / gist:9410249
Created March 7, 2014 12:01
Some bash profile functions
function server() {
local port="${1:-8000}"
open "http://localhost:${port}/"
python -m SimpleHTTPServer "$port"
}
# grunt
function gi() {
npm install --save-dev grunt-"$@"
}
Running "suitcss:component" (suitcss) task
component-resolver remote not set - defaulting to remotes's defaults +0ms
component-resolver:locals resolving local at "/Users/simonsmith/Sites/grunt-suitcss/test/fixtures/component" +0ms
component-resolver resolving "component-test" +5ms
component-resolver:dependencies resolving dependency suitcss/suit@0.4.0 +0ms
component-resolver:dependencies searching ["local","github","bitbucket"] for suitcss/suit@0.4.0 +0ms
component-resolver remaining dependencies: 1 +6ms
component-resolver remaining semver: 0 +0ms
component-resolver finished resolving locals +0ms
component-resolver:dependencies found suitcss/suit@0.4.0 from remote "local" +3ms
(function(context) {
var factories = {}, loaded = {};
var isArray = Array.isArray || function(obj) {
return obj.constructor == Array;
};
var map = Array.map || function(arr, fn, scope) {
for (var i = 0, len = arr.length, result = []; i < len; i++) {
result.push(fn.call(scope, arr[i]));
}
@simonsmith
simonsmith / jasmine-type-matchers-lodash.js
Last active August 29, 2015 14:00
Jasmine type matchers (native and underscore/lodash)
/**
* Add matchers for different types
* Note that Function.prototype.bind is not supported in PhantomJS
* Uses underscore/lodash
*
* Usage: expect('test').toBeString();
*/
!function() {
'use strict';
Function.prototype.bind = (function() {
}).bind || function(b) {
if (typeof this !== "function") {
throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
}
function c() {
}
var a = [].slice, f = a.call(arguments, 1), e = this, d = function() {
return e.apply(this instanceof c ? this : b || window, f.concat(a.call(arguments)));
@simonsmith
simonsmith / space.styl
Created September 4, 2014 12:41
SUIT CSS spacing utils in stylus
/**
* Spacing utilities
*
* Used to override styles on components without need for
* additional modifier classes
*
* Usage:
* <div class="u-mbZ"> // margin-bottom: 0
* <div class="u-mt20"> // margin-top: 20px
* <div class="u-m25"> // margin: 25px
@simonsmith
simonsmith / with-feature-detect.js
Last active August 29, 2015 14:07
Flight mixin for adding `is-` SUIT classes to a component based on Modernizr support
module.exports = withFeatureDetect;
function withFeatureDetect() {
'use strict';
this.addFeatureDetectClass = function(feature, supported) {
var prefix = (supported ? 'is-' : 'is-not-');
this.$node.addClass(prefix + feature + '-enabled');
};
@simonsmith
simonsmith / example.js
Created March 16, 2015 00:23
Compiling SUIT with gulp and postcss
var gulp = require('gulp');
var bemLinter = require('postcss-bem-linter');
var atImport = require('postcss-import');
var cssnext = require('cssnext');
var postcss = require('gulp-postcss');
var concat = require('gulp-concat');
var notify = require('gulp-notify');
var stylus = require('gulp-stylus');
gulp.task('css', function() {
@simonsmith
simonsmith / lesscss-centre
Created April 13, 2012 13:45
Centre elements on both axis - LESSified version of http://goo.gl/UN80L
.center-container {
text-align: center;
&:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -0.25em;
}
@simonsmith
simonsmith / NestedLESSLoops
Created July 6, 2012 14:04
Nested loops in LESS
.outer(@outer) when (@outer > 0) {
(~".outer@{outer}") {
color: red;
.inner(@inner) when (@inner > 0) {
font-size: @inner;
.inner(@inner - 1);
}
.inner(0) {}
.inner(@outer);
}