Skip to content

Instantly share code, notes, and snippets.

View heavymery's full-sized avatar

Shindeok Kang heavymery

View GitHub Profile
@heavymery
heavymery / generate-pushid.js
Created July 1, 2018 03:16 — forked from mikelehen/generate-pushid.js
JavaScript code for generating Firebase Push IDs
/**
* Fancy ID generator that creates 20-character string identifiers with the following properties:
*
* 1. They're based on timestamp so that they sort *after* any existing ids.
* 2. They contain 72-bits of random data after the timestamp so that IDs won't collide with other clients' IDs.
* 3. They sort *lexicographically* (so the timestamp is converted to characters that will sort properly).
* 4. They're monotonically increasing. Even if you generate more than one in the same timestamp, the
* latter ones will sort after the former ones. We do this by using the previous random bits
* but "incrementing" them by 1 (only in the case of a timestamp collision).
*/
@heavymery
heavymery / SassMeister-input.scss
Last active February 8, 2019 04:40 — forked from Grsmto/SassMeister-input.scss
BEM SASS mixin (single class)
// ----
// Sass (v3.3.0.rc.1)
// Compass (v0.13.alpha.10)
// ----
/*
A slightly more automated approach to BEM modifier classes:
using '&' parent selector interpolation, modifiers extend their bases,
so that HTML markup requires only the modifier class not the base *and* modifier
*/
@heavymery
heavymery / gist:4a6e7a4317dd805ab69a
Created November 26, 2015 10:40 — forked from mmintel/gist:045ffce76b00b327bfc0
BEM mixins in Sass 3.4
$elementSeparator: '__';
$modifierSeparator: '--';
@function containsModifier($selector) {
$selector: selectorToString($selector);
@if str-index($selector, $modifierSeparator) {
@return true;
} @else {
@return false;
}