Skip to content

Instantly share code, notes, and snippets.

View znalexandr's full-sized avatar

Alexandr Zinin znalexandr

View GitHub Profile
function getChromeVersion() {
var pieces = navigator.userAgent.match(/Chrom(?:e|ium)\/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/);
if (pieces == null || pieces.length != 5) {
return undefined;
}
pieces = pieces.map(piece => parseInt(piece, 10));
return {
major: pieces[1],
minor: pieces[2],
build: pieces[3],
@znalexandr
znalexandr / Emotion.js
Created November 6, 2020 09:40
VSCode snippets
{
"styled-emotion": {
"scope": "javascript,typescript",
"prefix": "go-styled",
"body": [
"import styled from '@emotion/styled';",
""
"export const ${TM_FILENAME_BASE/(.*)\\..+$/$1/} = styled.div`",
" $1",
"`;",

Demo:

Spoiler warning

Spoiler text. Note that it's important to have a space after the summary tag. You should be able to write any markdown you want inside the <details> tag... just make sure you close <details> afterward.

console.log("I'm a code block!");
@znalexandr
znalexandr / checklist.md
Last active November 27, 2019 11:34
Чек-лист подготовки макетов для вёрстки

Чек-лист подготовки макетов для вёрстки

  1. Подготовить архив со шрифтами, собрать только те шрифты\начертания, которые используются в макете (все семейство скидывать не нужно).
  2. Все цвета вынести в константы
  3. Описать всю используемую типографию в константы (название шрифта, кегль, интерлиньяж, начертание)
  4. Везде в макете использовать только целые значения (например в пикселях)
  5. Цвета должны быть конкретными в формате hex (без opacity)
  6. Проверить, что все элементы доступны для чтения в зеплине
  7. Проверить, что все иконки\иллюстрации доступны для экспорта
  8. Закладывать возможность узнать расстояние между элементов, как вариант использовать модульную сетку
@znalexandr
znalexandr / comparison.md
Created October 21, 2019 10:47
Сравнения \ comparison

comparison - eq | neq | gt | lt | gte | lte

Сравнения \ comparison

Ключ Расшифровка Перевод Выражение
eq equal равно ==
neq not equal не равно !=
gt greater больше >
lt less меньше <
@znalexandr
znalexandr / getScrollbarWidth.ts
Last active October 7, 2020 13:23
Get width scrollbar and lockScroll & unlockScroll
function getScrollbarWidth(): number {
const { body } = document;
const { screen } = window;
if (body.clientHeight <= screen.height) return 0;
const outer = document.createElement('div');
const inner = document.createElement('div');
outer.style.visibility = 'hidden';
@znalexandr
znalexandr / anchor.js
Last active September 19, 2019 11:27
Scroll to anchor
import scrollTo from './scroller';
export function anchorHandler() {
const all = document.querySelectorAll('[data-anchor-to]');
if (!all) return;
all.forEach(item => {
item.addEventListener('click', function(e) {
@znalexandr
znalexandr / scrollTo.js
Last active September 19, 2019 11:27
ScrollTo
// Easing function: easeInOutCubic
// From: https://gist.github.com/gre/1650294
function easing(t) {
return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;
}
function getStartingPosition(parent, axisX) {
if (axisX) {
return parent
@znalexandr
znalexandr / vpChecker.js
Last active September 19, 2019 11:10
Viewport checker vanilaJS

Base usage

  vpChecker({
    selector: '.element',
    visibleClass: 'element_visible',
    deltaTop: 0.5,
    isRepeat: true,
    onVisible: () => console.log('onVisible'),
 onHidden: : () =&gt; console.log('onHidden')
@znalexandr
znalexandr / cloudSettings
Last active January 22, 2020 15:14
Visual Studio Code Settings Sync Gist
{"lastUpload":"2020-01-22T15:14:13.226Z","extensionVersion":"v3.4.3"}