Skip to content

Instantly share code, notes, and snippets.

@brianmcallister
brianmcallister / html5_placeholder_polyfill.js
Created February 10, 2012 19:23
HTML5 Placeholder polyfill
/*jslint devel: true, browser: true, indent: 2, nomen: true */
/*global jQuery, Modernizr */
// Load a polyfil for placeholder support
(function ($, Modernizr) {
'use strict';
if (!Modernizr.input.placeholder) {
var Actions = {
focusInput: function () {
@brianmcallister
brianmcallister / apply-pointer.scss
Last active October 6, 2015 03:58
Apply pointer mixin. Applies CSS3 arrows to an element.
/*
Apply pointer mixin. Uses a CSS3 pseudo element to apply a triangle.
https://gist.github.com/brianmcallister/2932442
@param {String} [$side] Which side the pointer should stick out from. Defaults to top.
@param {String} [$size] Size of the pointer. Expects units, ex: 5px. Defaults to 5px.
@param {String} [$color] Color of the pointer. Defaults to white.
@param {String} [$type] Which kind of triange to make. Defaults to equilateral.
@param {Boolean} [$clockwise] If using a right triange, the direction the triange should be rotated.
@param {String} [$element] Which type of psuedo element to be used. Defaults to :after.
@brianmcallister
brianmcallister / maintain-ratio.scss
Last active December 9, 2022 20:18
Sass mixin for a responsive box that maintains an aspect ratio.
// Maintain ratio mixin. Great for responsive grids, or videos.
// https://gist.github.com/brianmcallister/2932463
//
// $ratio - Ratio the element needs to maintain.
//
// Examples
//
// // A 16:9 ratio would look like this:
// .element {
// @include maintain-ratio(16 9);
@brianmcallister
brianmcallister / replace-text-with-inline.scss
Created July 5, 2012 14:50
Replace text with an inline image. Exactly the same as replace-text-with-dimensions, but inline images.
@mixin replace-text-with-inline($img) {
@include hide-text;
width: image-width($img);
height: image-height($img);
background: center center no-repeat inline-image($img);
}
@brianmcallister
brianmcallister / retina-image.scss
Created July 5, 2012 14:51
Set a background image sized for retina screens, with an option to use the image url or an inline image.
/*
Set a background image sized for retina screens, with an option to use the image url or an inline image.
@param {String} $image Image to use.
@param {String} [$type] Type of image url to use. Default to an inline image.
*/
@mixin retina-image($image, $type: 'inline') {
@include hide-text;
@if $type != 'inline' and $type != 'url' {
@warn 'Unknown usage type. Falling back to "url"';
@brianmcallister
brianmcallister / _retina-sprite-background.scss
Created July 19, 2012 22:28
Retina sprite background image mixin.
/*
This pretty much doesn't work at all right now.
*/
@mixin retina-general-sprite($name, $set-dimensions: true) {
$sprite-width: image-width('general.png');
$sprite-height: image-height('general.png');
$sprite-file-url: sprite-file($general-sprite, $name);
$sprite-file-width: image-width($sprite-file-url) / 2;
$sprite-file-height: image-height($sprite-file-url) / 2;
@brianmcallister
brianmcallister / position.scss
Last active February 3, 2016 14:07
Sass position mixin, with mixins for setting and resetting coordinates.
// Print position coords only.
// https://gist.github.com/brianmcallister/3641867
//
// $values - Position values. Null values get skipped over.
@mixin pos-coords($values: null null null null) {
$position-list: top right bottom left;
$count: 1;
@if length($values) == 1 and $values == 'reset' {
$values: auto auto auto auto;
@brianmcallister
brianmcallister / size.scss
Last active February 3, 2016 14:07
Sass mixin for setting an element's size.
// Size mixin.
// https://gist.github.com/brianmcallister/3659524
//
// $width - Element width, with units.
// $height - Optional height of the element. Expects units, ex: 5px.
// Defaults to null.
@mixin size($width, $height: null) {
width: $width;
@if $height {
@brianmcallister
brianmcallister / retina.scss
Created October 15, 2012 21:53
Retina background image.
/*
Set a background image at 1x and 2x.
https://gist.github.com/3895807
@param {String} $name Image name.
@param {String} $ext File extension, e.g.: '.png'.
*/
@mixin retina-bg($name, $ext) {
@include squish-text;
$image: '#{$name}#{$ext}';
@brianmcallister
brianmcallister / _extendables.scss
Created October 18, 2012 17:31
Compass sprites for retina assets.
/*
I like to set up some extendable classes to keep the bulk of my sprite setup outside of my generated CSS.
*/
/*
Button sprite extendable.
*/
%button-sprite {
background-image: $button-sprite;
@include retina {