Skip to content

Instantly share code, notes, and snippets.

@Huskie
Huskie / detect-character-16-32-bit.js
Created April 17, 2015 09:16
Detect whether character is 16 or 32 bit
var is32Bit = function (c) {
return c.codePointAt(0) > 0xFFFF;
}
console.log(is32Bit('𠮷')); // true
console.log(is32Bit('a')); // false
@Huskie
Huskie / sublime.txt
Created January 9, 2015 15:42
Sublime
{
"always_show_minimap_viewport": true,
"auto_close_tags": false,
"auto_complete": false,
"auto_indent": true,
"auto_match_enabled": false,
"bold_folder_labels": true,
"caret_style": "phase",
"close_windows_when_empty": true,
"color_scheme": "Packages/User/predawn (SL).tmTheme",
@Huskie
Huskie / bem-module-example.html
Last active August 29, 2015 14:03
BEM module example
<!-- This is the Block -->
<div class="carousel" data-widgettype="carousel">
<!-- This is an Element. Notice that Elements class names use the name of the Block followed by a double underscore, then the name of the Element -->
<ul class="carousel__list" data-js="carousel-list">
<li class="carousel__item">
<span>List item</span>
</li>
<li class="carousel__item carousel__item--is-active"> <!-- This is an Element, which also contains a Modifier, Modifiers are named the same as the Element, but with a double dash followed by a modifier description -->
<span>List item</span>
</li>
@Huskie
Huskie / autoprefixer-example.scss
Created March 25, 2014 13:38
Grunt Autoprefixer plugin usage syntax
/*
Autoprefixer
https://github.com/nDmitry/grunt-autoprefixer
Adds vendor prefixes automatically
https://github.com/nDmitry/grunt-autoprefixer
*/
autoprefixer: {
options: {
browsers: [
@Huskie
Huskie / social-share.js
Last active August 29, 2015 13:57
Social share
twitterShare.onclick = function(e) {
e.preventDefault();
var twitterWindow = window.open('https://twitter.com/share?url=' + document.URL, 'twitter-popup', 'height=350,width=600');
if(twitterWindow.focus) { twitterWindow.focus(); }
return false;
}
facebookShare.onclick = function(e) {
e.preventDefault();
var facebookWindow = window.open('https://www.facebook.com/sharer/sharer.php?u=' + document.URL, 'facebook-popup', 'height=350,width=600');
@Huskie
Huskie / js-toggle-class.js
Created January 23, 2014 16:41
Plain JavaScript toggleClass function. Relies on hasClass function defined in separate Gist
function toggleClass(element, className) {
var newClass = ' ' + element.className.replace( /[\t\r\n]/g, ' ' ) + ' ';
if(hasClass(element, className)) {
while(newClass.indexOf(' ' + className + ' ') >= 0) {
newClass = newClass.replace(' ' + className + ' ' , ' ');
}
element.className = newClass.replace(/^\s+|\s+$/g, '');
} else {
element.className += ' ' + className;
}
@Huskie
Huskie / js-remove-class.js
Created January 23, 2014 16:40
Plain JavaScript removeClass function. Relies on hasClass function defined in separate Gist
function removeClass(element, className) {
var newClass = ' ' + element.className.replace( /[\t\r\n]/g, ' ') + ' ';
if(hasClass(element, className)) {
while(newClass.indexOf(' ' + className + ' ') >= 0) {
newClass = newClass.replace(' ' + className + ' ', ' ');
}
element.className = newClass.replace(/^\s+|\s+$/g, '');
}
}
@Huskie
Huskie / js-add-class.js
Created January 23, 2014 16:37
Plain JavaScript addClass function. Relies on plain JavaScript hasClass function defined in separate Gist
function addClass(element, className) {
if(!hasClass(element, className)) {
element.className += ' ' + className;
}
}
@Huskie
Huskie / js-has-class.js
Created January 23, 2014 16:35
Plain JavaScript hasClass function
function hasClass(element, className) {
return new RegExp(' ' + className + ' ').test(' ' + element.className + ' ');
}
@Huskie
Huskie / element-loop.js
Created January 23, 2014 14:43
A standard for loop given a variable named 'elements', which contains a Node List of HTML elements, likely returned from a 'document.querySelectorAll' statement.
// Given a variable 'elements', which contains a Node List of HTML elements
for ( var i = 0; i < elements.length; i++ ) {
var self = elements[i];
// Do stuff with element
self.doStuff();
}