├── README.md ├── logo.png ├── favicon.ico ├── code-editor.png ├── site-preview.png ├── css ├── style.css └── kb-logo.css ├── js └── index.js └── index.html /README.md: -------------------------------------------------------------------------------- 1 | # kibibit-log-demo 2 | test the kibibt logo animation 3 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kibibit/logo-demo/master/logo.png -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kibibit/logo-demo/master/favicon.ico -------------------------------------------------------------------------------- /code-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kibibit/logo-demo/master/code-editor.png -------------------------------------------------------------------------------- /site-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kibibit/logo-demo/master/site-preview.png -------------------------------------------------------------------------------- /css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: #212121; 3 | display: flex; 4 | flex-direction: row; 5 | font-size: 16px; 6 | height: 100vh; 7 | overflow: hidden; 8 | width: 100vw; 9 | 10 | align-items: start; 11 | flex-wrap: wrap; 12 | justify-content: center; 13 | } 14 | 15 | .main { 16 | display: flex; 17 | flex-direction: column; 18 | font-size: 30vw; 19 | height: 100vh; 20 | pointer-events: none; 21 | width: 100vw; 22 | 23 | align-items: center; 24 | justify-content: center; 25 | } 26 | 27 | .ui-toggle { 28 | bottom: 0; 29 | left: 0; 30 | position: fixed; 31 | } 32 | 33 | .ui { 34 | display: flex; 35 | left: 0; 36 | opacity: 0; 37 | pointer-events: none; 38 | position: fixed; 39 | right: 0; 40 | top: 0; 41 | transition: all 250ms; 42 | 43 | flex-wrap: wrap; 44 | justify-content: center; 45 | } 46 | .ui.visible { 47 | opacity: 1; 48 | pointer-events: auto; 49 | } 50 | 51 | .toggler { 52 | background: #E31B36; 53 | border-radius: 3px; 54 | box-shadow: 9px 9px 0 1px rgba(0, 0, 0, 0.75); 55 | color: white; 56 | cursor: pointer; 57 | font-family: 'Righteous', cursive; 58 | font-size: 0.7rem; 59 | margin: 10px; 60 | padding: 10px; 61 | transition: all 250ms; 62 | } 63 | .toggler.toggler-active { 64 | background: #00A2C9; 65 | } 66 | 67 | .kg-hidden { 68 | display: none; 69 | } 70 | -------------------------------------------------------------------------------- /js/index.js: -------------------------------------------------------------------------------- 1 | var ELEMENTS = { 2 | $logo: $('#logo'), 3 | $littleLogo: $('#logo-little'), 4 | $togglerColors: $('.toggler#colors'), 5 | $togglerKT: $('.toggler#kt'), 6 | $togglerSquigglyLoader: $('.toggler#squiggly'), 7 | $togglerAlwaysSquiggly: $('.toggler#squiggly2'), 8 | $togglerLoaderAnimation: $('.toggler#loader'), 9 | $togglerPurple: $('.toggler#purple'), 10 | $togglerk1b1b0t: $('.toggler#k1b1b0t'), 11 | $togglerUI: $('.toggler#ui-toggle'), 12 | $UI: $('.ui'), 13 | $PUNCH: $('#kb-punch') 14 | }; 15 | 16 | var CLASSES = { 17 | onlyWhite: 'no-extra-colors', 18 | alwaysKT: 'always-k-t', 19 | squiggly: 'squiggly', 20 | alwaysSquiggly: 'always-squiggly', 21 | loader: 'loader', 22 | turnToName: 'full-logo', 23 | activeButton: 'toggler-active', 24 | purpleText: 'purple', 25 | k1b1b0t: 'k1b1b0t', 26 | show: 'visible' 27 | }; 28 | 29 | $( document ).ready(function() { 30 | let searchParams = new URLSearchParams(window.location.search); 31 | const customPunch = searchParams.get('punch'); 32 | const hideBtns = searchParams.get('showButtons') === 'false'; 33 | if (customPunch) { 34 | ELEMENTS.$PUNCH.text(customPunch); 35 | } 36 | 37 | if (hideBtns) { 38 | ELEMENTS.$togglerUI.hide(); 39 | } 40 | }); 41 | 42 | var refreshIntervalId = changeBetween(); 43 | var loaderRefreshIntervalId = null; 44 | changeBetween2(); 45 | 46 | ELEMENTS.$togglerColors.click(function() { 47 | ELEMENTS.$logo.toggleClass(CLASSES.onlyWhite); 48 | ELEMENTS.$togglerColors.toggleClass(CLASSES.activeButton); 49 | }); 50 | 51 | ELEMENTS.$togglerKT.click(function() { 52 | ELEMENTS.$logo.toggleClass(CLASSES.alwaysKT); 53 | ELEMENTS.$togglerKT.toggleClass(CLASSES.activeButton); 54 | }); 55 | 56 | ELEMENTS.$togglerSquigglyLoader.click(function() { 57 | ELEMENTS.$logo.toggleClass(CLASSES.squiggly); 58 | ELEMENTS.$togglerSquigglyLoader.toggleClass(CLASSES.activeButton); 59 | }); 60 | 61 | ELEMENTS.$togglerAlwaysSquiggly.click(function() { 62 | ELEMENTS.$logo.toggleClass(CLASSES.alwaysSquiggly); 63 | ELEMENTS.$togglerAlwaysSquiggly.toggleClass(CLASSES.activeButton); 64 | }); 65 | 66 | ELEMENTS.$togglerPurple.click(function() { 67 | ELEMENTS.$logo.toggleClass(CLASSES.purpleText); 68 | ELEMENTS.$togglerPurple.toggleClass(CLASSES.activeButton); 69 | }); 70 | 71 | ELEMENTS.$togglerUI.click(function() { 72 | ELEMENTS.$UI.toggleClass(CLASSES.show); 73 | ELEMENTS.$togglerUI.toggleClass(CLASSES.activeButton); 74 | }); 75 | 76 | ELEMENTS.$togglerk1b1b0t.click(function() { 77 | if (refreshIntervalId) { 78 | clearInterval(refreshIntervalId); 79 | refreshIntervalId = null; 80 | } else { 81 | refreshIntervalId = changeBetween(); 82 | } 83 | 84 | toggleK1b1b0t(ELEMENTS.$logo); 85 | ELEMENTS.$togglerk1b1b0t.toggleClass(CLASSES.activeButton); 86 | }) 87 | 88 | ELEMENTS.$togglerLoaderAnimation.click(function() { 89 | if (refreshIntervalId) { 90 | clearInterval(refreshIntervalId); 91 | refreshIntervalId = null; 92 | ELEMENTS.$logo.addClass(CLASSES.loader); 93 | ELEMENTS.$PUNCH.removeClass(CLASSES.show); 94 | // loaderRefreshIntervalId = changeBits(); 95 | } else { 96 | clearInterval(loaderRefreshIntervalId); 97 | loaderRefreshIntervalId = null; 98 | refreshIntervalId = changeBetween(); 99 | ELEMENTS.$logo.removeClass(CLASSES.loader); 100 | ELEMENTS.$PUNCH.addClass(CLASSES.show); 101 | } 102 | ELEMENTS.$logo.removeClass(CLASSES.turnToName); 103 | ELEMENTS.$togglerLoaderAnimation.toggleClass(CLASSES.activeButton); 104 | }); 105 | 106 | function changeBetween() { 107 | ELEMENTS.$logo.removeClass(CLASSES.turnToName); 108 | 109 | return setInterval(function() { 110 | ELEMENTS.$logo.toggleClass(CLASSES.turnToName); 111 | }, 4000); 112 | } 113 | 114 | function changeBits() { 115 | return setInterval(function() { 116 | const allOnes = ELEMENTS.$logo.find('.shape-one'); 117 | const allZeros = ELEMENTS.$logo.find('.shape-zero'); 118 | 119 | // change ones to zeros 120 | allOnes.removeClass('shape-one').addClass('shape-zero'); 121 | 122 | // change zeros to ones 123 | allZeros.removeClass('shape-zero').addClass('shape-one'); 124 | }, 250); 125 | } 126 | 127 | function changeBetween2() { 128 | ELEMENTS.$littleLogo.removeClass('CLASSES.k1b1b0t'); 129 | 130 | return setInterval(function() { 131 | toggleK1b1b0t(ELEMENTS.$littleLogo); 132 | }, 10000); 133 | } 134 | 135 | function toggleK1b1b0t(element) { 136 | if (element.hasClass(CLASSES.k1b1b0t)) { 137 | element 138 | .removeClass(CLASSES.k1b1b0t) 139 | .delay( 800 ) 140 | .queue(function(next) { 141 | $(this).addClass(CLASSES.turnToName); 142 | next(); 143 | }); 144 | } else { 145 | element 146 | .removeClass(CLASSES.turnToName) 147 | .delay( 800 ) 148 | .queue(function(next) { 149 | $(this).addClass(CLASSES.k1b1b0t); 150 | next(); 151 | }); 152 | } 153 | } 154 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |