Skip to content

Instantly share code, notes, and snippets.

View ivancuric's full-sized avatar

Ivan Čurić ivancuric

  • Mircroblink
  • Zagreb, Croatia
  • X @_baxuz
View GitHub Profile
@ivancuric
ivancuric / gulpfile.js
Last active December 2, 2017 14:01
Gulp + nunjucks
var gulp = require('gulp');
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();
var notify = require('gulp-notify');
var autoprefixer = require('autoprefixer');
var mqpacker = require('css-mqpacker');
var csswring = require('csswring');
var plumber = require('gulp-plumber');
var postcss = require('gulp-postcss');
var prettify = require('gulp-jsbeautifier');
@ivancuric
ivancuric / _mixins.scss
Created March 10, 2017 09:06
SCSS utilities
/* Unless said otherwise, logic is min-width */
/* Hard column width */
@function colw($n, $gutter: $gutter) {
@return $n * ($col + $gutter);
}
/* Strip units */
@function strip($value) {
@return $value / ($value * 0 + 1);
@ivancuric
ivancuric / settings.json
Created March 10, 2017 09:46
VScode settings
// Place your settings in this file to overwrite the default settings
{
"editor.fontFamily": "Input",
"editor.fontSize": 14,
"terminal.integrated.fontLigatures": true,
"terminal.integrated.fontSize": 14,
"editor.wordWrap": "on",
"editor.minimap.enabled": true,
"editor.minimap.renderCharacters": false,
"editor.fontLigatures": true,
@ivancuric
ivancuric / refresh-rate.js
Created March 27, 2017 12:17
Method for finding out the refresh rate of the device
function _getRefreshRate() {
const rafPromise = _ => new Promise(requestAnimationFrame);
const idlePromise = _ => new Promise(requestIdleCallback);
let f1, f2;
return new Promise(resolve => {
idlePromise()
.then(_ => rafPromise())
.then(frame => {f1 = frame; return rafPromise();})
@ivancuric
ivancuric / snazzy.json
Last active April 26, 2017 13:25
Snazzy theme for integrated VSCode terminal. Stuff it in your settings.json
"workbench.experimental.colorCustomizations": {
"terminalAnsiBlack": "#282a36",
"terminalAnsiRed": "#ff5c57",
"terminalAnsiGreen": "#5af78e",
"terminalAnsiYellow": "#f3f99d",
"terminalAnsiBlue": "#57c7ff",
"terminalAnsiMagenta": "#ff6ac1",
"terminalAnsiCyan": "#9aedfe",
"terminalAnsiWhite": "#eff0eb",
"terminalAnsiBrightBlack": "#686868",
@ivancuric
ivancuric / preact-lifecycle.js
Created May 23, 2017 13:46
Preact lifecycle methods
class Foo extends Component {
shouldComponentUpdate(nextProps, nextState) {
componentWillReceiveProps(nextProps, nextState) {
this.props // previous props
this.state // previous state
}
componentWillMount() {
componentDidMount() {
componentDidUpdate() {
componentWillUnmount() {
@ivancuric
ivancuric / ios-amp.js
Created June 8, 2017 13:48
iOS amp double-html hack
import { oneLineTrim } from 'common-tags';
// Create wrapper.
const htmlInner = document.createElement('html');
const htmlOuter = document.documentElement;
htmlInner.id = 'i-html-wrapper';
// Setup classes and styles.
htmlInner.className = htmlOuter.className;
htmlOuter.className = 'iOSfix';
// const height = window.innerHeight;
@ivancuric
ivancuric / gist:e9abb2e0965145b035ac27fe15bb3f9b
Created August 23, 2017 14:08
List of blocked twitter words
freedom of speech
catholic
muslim
christian
democratic
Fox news
BBC
rightwing
right-wing
right wing
(() => {
const sindreList = [
'#alternativefact',
'#alternativefacts',
'@realdonaldtrump',
'attorney general',
'bomb',
'bombs',
'brexit',
'climate change',
// ==============================================================
// Compensates the scrollbar width on fixed-position elements
// ==============================================================
class ScrollbarCompensate {
constructor() {
this.itemsToCompensate = [
document.querySelector('body'),
document.querySelector('.menu-btn-container'),
];