Skip to content

Instantly share code, notes, and snippets.

View davydka's full-sized avatar
💐

David Whitely davydka

💐
View GitHub Profile
@davydka
davydka / Logo.tsx
Created August 16, 2021 05:13
svg Logo.tsx
import React from "react";
interface IProps {
className?: string;
}
const Logo: React.FC<IProps> = ({ className }) => {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
@davydka
davydka / random.js
Created March 15, 2020 21:39
RANDOM
const random = (min: number, max: number) => {
return Math.floor(Math.random() * (max - min + 1)) + min
}
@davydka
davydka / StyledTransition.js
Created March 3, 2020 21:53 — forked from oncomouse/StyledTransition.js
Using CSSTransitionGroup with Emotion.js
import React from 'react';
import styled from '@emotion/styled';
import { css } from '@emotion/core';
import { CSSTransition } from 'react-transition-group';
const has = (key, obj) => Object.prototype.hasOwnProperty.call(obj, key);
const keyframes = [
'appear',
'enter',
@davydka
davydka / useScroll.js
Created January 13, 2020 17:55 — forked from joshuacerbito/useScroll.js
Custom React hook for listening to scroll events
/**
* useScroll React custom hook
* Usage:
* const { scrollX, scrollY, scrollDirection } = useScroll();
*/
import { useState, useEffect } from "react";
export function useScroll() {
const [lastScrollTop, setLastScrollTop] = useState(0);
@davydka
davydka / ffmpeg-snippets.md
Created December 12, 2019 21:05 — forked from martinruenz/ffmpeg-snippets.md
ffmpeg snippets / cheatsheet
@davydka
davydka / scrollMania.js
Last active December 3, 2019 18:26
scrollMania, mobile safari viewport scroll shenanigans
const scrollMania = () => {
const currentScroll = window.pageYOffset || document.documentElement.scrollTop
// a 100vh element minus the actual height of the window(aka viewport)
const testThreshold = heightRef.current.offsetHeight - window.innerHeight
const end = () => {
if(currentScroll !== scrollDelta) {
setScrollDelta(currentScroll)
}
return true
@davydka
davydka / generate-ssh-key.sh
Created September 23, 2019 22:36 — forked from grenade/01-generate-ed25519-ssh-key.sh
Correct file permissions for ssh keys and config.
ssh-keygen -t rsa -b 4096 -N '' -C "rthijssen@gmail.com" -f ~/.ssh/id_rsa
ssh-keygen -t rsa -b 4096 -N '' -C "rthijssen@gmail.com" -f ~/.ssh/github_rsa
ssh-keygen -t rsa -b 4096 -N '' -C "rthijssen@gmail.com" -f ~/.ssh/mozilla_rsa
@davydka
davydka / ffmpeg_notes.md
Last active May 20, 2020 22:26
ffmpeg notes

for i in *.mov; do ffmpeg -i "$i" -vf scale=1080:1920 -pix_fmt yuv420p -y `basename "$i" .mp4`x.mp4; done

ffmpeg -y -i assets/%02d.png -c:v libx264 -vf "fps=30,format=yuv420p,pad=ceil(iw/2)*2:ceil(ih/2)*2" -b 1600k mov.mp4

@davydka
davydka / node_path_join_process_cwd.js
Created April 4, 2019 23:41
node path join process cwd
path.join( process.cwd(), 'dist', 'json');
// etc etc etc
@davydka
davydka / scale map zmap lmap lerp clamp invlerp range
Last active September 20, 2019 18:10
scale map zmap lmap lerp clamp invlerp range
const scale = (num, in_min, in_max, out_min, out_max) => {
return (num - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
const lerp = (x, y, a) => x * (1 - a) + y * a;
const clamp = (a, min = 0, max = 1) => Math.min(max, Math.max(min, a));
const invlerp = (x, y, a) => clamp((a - x) / (y - x));
const range = (x1, y1, x2, y2, a) => lerp(x2, y2, invlerp(x1, y1, a));