Skip to content

Instantly share code, notes, and snippets.

@seyedi
seyedi / head-order.html
Created December 12, 2021 14:26
Optimum <head> order for performance
<html>
<head>
<meta />
<title>
preconnect
<script async></script>
CSS with
@imports
sync JS
@seyedi
seyedi / random.js
Created December 13, 2020 06:19
For generating stable-but-random effects.
export default function randomGenerator(seed) {
let state = seed;
const next = () => {
state |= 0;
state = (state + 0x6d2b79f5) | 0;
var t = Math.imul(state ^ (state >>> 15), 1 | state);
t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
};
@seyedi
seyedi / supported-properties.js
Created August 14, 2020 13:35
Dynamically compute list of supported properties
// Credit: https://codepen.io/leaverou/pen/eYJodjb
let style = document.body.style;
let properties = Object.getOwnPropertyNames(style.hasOwnProperty("background")? style : style.__proto__);
properties = properties.filter(p => style[p] === "") // drop functions etc
.map(prop => { // de-camelCase
prop = prop.replace(/[A-Z]/g, function($0) { return '-' + $0.toLowerCase() });
if (prop.indexOf("webkit-") > -1) {
@seyedi
seyedi / inViewport.js
Created August 10, 2020 14:50
inViewport Vanilla JS w/ IntersectionObserver
function inViewport(elem, callback, options = {}) {
return new IntersectionObserver(entries => {
entries.forEach(entry => callback(entry));
}, options).observe(document.querySelector(elem));
}
inViewport('.target', element => {
//element.isIntersecting (bool) true/false
}, {
root: document.querySelector('.scroll')
@seyedi
seyedi / darkmode.svg
Last active July 2, 2020 03:38
SVG favicon for modern browsers
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@seyedi
seyedi / ata.json
Last active May 7, 2020 10:57
Visual Studio Code Settings Sync Gist
{
"api": {
"CredentialUserData": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/CredentialUserData",
"support": {
"chrome": {
"version_added": "60"
},
"chrome_android": {
@seyedi
seyedi / dabblet.css
Last active August 12, 2016 07:05
Untitled
div {
width: 80%;
height: 130px;
margin: 20px auto 0;
border: 10px solid gray;
border-image: url(http://mojoimage.com/free-image-hosting-13/8572ball-border-img.png) 100 / 30px 30px stretch repeat;
}
<!-- Essential META Tags -->
<meta property="og:title" content="European Travel Destinations">
<meta property="og:description" content="Offering tour packages for individuals or groups.">
<meta property="og:image" content="http://euro-travel-example.com/thumbnail.jpg">
<meta property="og:url" content="http://euro-travel-example.com/index.htm">
<meta name="twitter:card" content="summary_large_image">
<!-- Non-Essential, But Recommended -->
<!-- Essential META Tags -->
<meta property="og:title" content="European Travel Destinations">
<meta property="og:description" content="Offering tour packages for individuals or groups.">
<meta property="og:image" content="http://euro-travel-example.com/thumbnail.jpg">
<meta property="og:url" content="http://euro-travel-example.com/index.htm">
<meta name="twitter:card" content="summary_large_image">
<!-- Non-Essential, But Recommended -->