Skip to content

Instantly share code, notes, and snippets.

@11111000000
11111000000 / machine.js
Last active November 6, 2019 14:30
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
@11111000000
11111000000 / machine.js
Last active October 28, 2019 19:23
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
@11111000000
11111000000 / machine.js
Last active October 15, 2019 10:57
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
@11111000000
11111000000 / nix-proced-readable-mode.el
Last active April 14, 2019 22:26
Make proced filenames more readable in NixOS and GuixSD
;;; nix-proced-readable-mode.el --- Make proced filenames more readable in NixOS and GuixSD
;; © 2019-∞ Peter 11111000000 <11111000000@email.com>
;; Autor: Peter 11111000000 <11111000000@email.com>
;; Maintainer: Peter 11111000000 <11111000000@email.com>
;; URL: https://gist.github.com/11111000000/e20247bafb425a58bd9d9198a16d56d0
;; Keywords: guix nix proced
;; Package-Version: 0.1
;; Version: 0.1
@11111000000
11111000000 / ant-lion-index.jsx
Created January 27, 2018 10:38
"Муравьиный лев" - модуль и идея, как заменить тяжёлую библиотеку компонентов Antd на проекте.
/**
* Муравьиный лев (antd-killer)
*/
import * as Layout from 'modules/layout';
import * as Menu from 'modules/menus';
export { Button } from 'modules/buttons'
@11111000000
11111000000 / .neutrinorc.js
Created January 27, 2018 10:30
Моя настройка Neutrino
module.exports = {
use: [
'neutrino-middleware-env',
'neutrino-preset-web',
'neutrino-preset-react',
'neutrino-preset-visualizer',
'neutrino-middleware-hot',
['neutrino-middleware-postcss', {
plugins: [
require('postcss-partial-import')(),

Origami

Компонент делает из плоского списка на входе, анимированную 3d гармошку. Декларативный JSX компонент, в котором также потребовалось динамически поддерживать обновление DOM, но делается это аккуратно.

Компонент

Чтобы обойтись минимумом скриптов и использовать лишь CSS3 для расщёта самой анимации, каждая следующая секция списка рекурсивно вкладывается в предыдущую (блок с reduceRight). Таким образом то, что за “сгибом”, уже поворачивается всё вместе не распадаясь на части.

import { element } from 'deku'
import { element } from 'deku'
import stateful from 'deku-stateful'
import './styles'
const log = debug('app:Tabs')
function initialState() {
return {
activeTab: 0
}
@11111000000
11111000000 / index.html
Last active August 29, 2015 14:16
pvZrJm
<div class="first-test" ></div>
<div class="second-test"></div>