[READ-ONLY] Mirror of https://github.com/probablykasper/v4.kasper.space. Personal website v4.kasper.space
personal-website website
0

Configure Feed

Select the types of activity you want to include in your feed.

Deploy

Kasper (Feb 2, 2019, 6:18 PM +0100) b0d7ed25 d2e28459

+78 -10
+22
docs/README.md
··· 1 + # Your Favicon Package 2 + 3 + This package was generated with [RealFaviconGenerator](https://realfavicongenerator.net/) [v0.16](https://realfavicongenerator.net/change_log#v0.16) 4 + 5 + ## Install instructions 6 + 7 + To install this package: 8 + 9 + Extract this package in the root of your web site. If your site is <code>http://www.example.com</code>, you should be able to access a file named <code>http://www.example.com/favicon.ico</code>. 10 + 11 + Insert the following code in the `head` section of your pages: 12 + 13 + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=QEJrjJyAKR"> 14 + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=QEJrjJyAKR"> 15 + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=QEJrjJyAKR"> 16 + <link rel="manifest" href="/site.webmanifest?v=QEJrjJyAKR"> 17 + <link rel="mask-icon" href="/safari-pinned-tab.svg?v=QEJrjJyAKR" color="#3f3f3f"> 18 + <link rel="shortcut icon" href="/favicon.ico?v=QEJrjJyAKR"> 19 + <meta name="msapplication-TileColor" content="#ffffff"> 20 + <meta name="theme-color" content="#ffffff"> 21 + 22 + *Optional* - Check your favicon with the [favicon checker](https://realfavicongenerator.net/favicon_checker)
docs/android-chrome-192x192.png

This is a binary file and will not be displayed.

docs/android-chrome-512x512.png

This is a binary file and will not be displayed.

docs/apple-touch-icon.png

This is a binary file and will not be displayed.

+9
docs/browserconfig.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <browserconfig> 3 + <msapplication> 4 + <tile> 5 + <square150x150logo src="/mstile-150x150.png?v=QEJrjJyAKR"/> 6 + <TileColor>#ffffff</TileColor> 7 + </tile> 8 + </msapplication> 9 + </browserconfig>
docs/favicon-16x16.png

This is a binary file and will not be displayed.

docs/favicon-32x32.png

This is a binary file and will not be displayed.

docs/favicon.ico

This is a binary file and will not be displayed.

+4 -6
docs/global.css
··· 58 58 background-image: url('data:image/svg+xml;utf8,<svg fill="%233f3f3f" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M32 7.075c-1.175 0.525-2.444 0.875-3.769 1.031 1.356-0.813 2.394-2.1 2.887-3.631-1.269 0.75-2.675 1.3-4.169 1.594-1.2-1.275-2.906-2.069-4.794-2.069-3.625 0-6.563 2.938-6.563 6.563 0 0.512 0.056 1.012 0.169 1.494-5.456-0.275-10.294-2.888-13.531-6.862-0.563 0.969-0.887 2.1-0.887 3.3 0 2.275 1.156 4.287 2.919 5.463-1.075-0.031-2.087-0.331-2.975-0.819 0 0.025 0 0.056 0 0.081 0 3.181 2.263 5.838 5.269 6.437-0.55 0.15-1.131 0.231-1.731 0.231-0.425 0-0.831-0.044-1.237-0.119 0.838 2.606 3.263 4.506 6.131 4.563-2.25 1.762-5.075 2.813-8.156 2.813-0.531 0-1.050-0.031-1.569-0.094 2.913 1.869 6.362 2.95 10.069 2.95 12.075 0 18.681-10.006 18.681-18.681 0-0.287-0.006-0.569-0.019-0.85 1.281-0.919 2.394-2.075 3.275-3.394z"></path></svg>'); } 59 59 .social-media a.discord { 60 60 background-image: url('data:image/svg+xml;utf8,<svg fill="%233f3f3f" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M26.963 0c1.875 0 3.387 1.516 3.476 3.3v28.7l-3.569-3.031-1.96-1.784-2.139-1.864 0.893 2.94h-18.717c-1.869 0-3.387-1.42-3.387-3.301v-21.653c0-1.784 1.52-3.303 3.393-3.303l22.009-0.004zM18.805 7.577h-0.040l-0.269 0.267c2.764 0.8 4.101 2.049 4.101 2.049-1.781-0.891-3.387-1.336-4.992-1.516-1.16-0.18-2.32-0.085-3.3 0h-0.267c-0.627 0-1.96 0.267-3.747 0.98-0.623 0.271-0.98 0.448-0.98 0.448s1.336-1.336 4.28-2.049l-0.18-0.18s-2.229-0.085-4.636 1.693c0 0-2.407 4.192-2.407 9.36 0 0 1.333 2.32 4.991 2.408 0 0 0.533-0.711 1.073-1.336-2.053-0.624-2.853-1.872-2.853-1.872s0.179 0.088 0.447 0.267h0.080c0.040 0 0.059 0.020 0.080 0.040v0.008c0.021 0.021 0.040 0.040 0.080 0.040 0.44 0.181 0.88 0.36 1.24 0.533 0.621 0.269 1.42 0.537 2.4 0.715 1.24 0.18 2.661 0.267 4.28 0 0.8-0.18 1.6-0.356 2.4-0.713 0.52-0.267 1.16-0.533 1.863-0.983 0 0-0.8 1.248-2.94 1.872 0.44 0.621 1.060 1.333 1.060 1.333 3.659-0.080 5.080-2.4 5.16-2.301 0-5.16-2.42-9.36-2.42-9.36-2.18-1.619-4.22-1.68-4.58-1.68l0.075-0.027zM19.029 13.461c0.937 0 1.693 0.8 1.693 1.78 0 0.987-0.76 1.787-1.693 1.787s-1.693-0.8-1.693-1.779c0.003-0.987 0.764-1.784 1.693-1.784zM12.972 13.461c0.933 0 1.688 0.8 1.688 1.78 0 0.987-0.76 1.787-1.693 1.787s-1.693-0.8-1.693-1.779c0-0.987 0.76-1.784 1.693-1.784z"></path></svg>'); } 61 - .social-media a.discord input { 62 - width: 70px; } 63 61 .social-media a.facebook { 64 62 background-image: url('data:image/svg+xml;utf8,<svg fill="%233f3f3f" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M19 6h5v-6h-5c-3.86 0-7 3.14-7 7v3h-4v6h4v16h6v-16h5l1-6h-6v-3c0-0.542 0.458-1 1-1z"></path></svg>'); } 65 63 .social-media a.youtube { ··· 72 70 background-image: url('data:image/svg+xml;utf8,<svg fill="%233f3f3f" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M16 2.881c4.275 0 4.781 0.019 6.462 0.094 1.563 0.069 2.406 0.331 2.969 0.55 0.744 0.288 1.281 0.638 1.837 1.194 0.563 0.563 0.906 1.094 1.2 1.838 0.219 0.563 0.481 1.412 0.55 2.969 0.075 1.688 0.094 2.194 0.094 6.463s-0.019 4.781-0.094 6.463c-0.069 1.563-0.331 2.406-0.55 2.969-0.288 0.744-0.637 1.281-1.194 1.837-0.563 0.563-1.094 0.906-1.837 1.2-0.563 0.219-1.413 0.481-2.969 0.55-1.688 0.075-2.194 0.094-6.463 0.094s-4.781-0.019-6.463-0.094c-1.563-0.069-2.406-0.331-2.969-0.55-0.744-0.288-1.281-0.637-1.838-1.194-0.563-0.563-0.906-1.094-1.2-1.837-0.219-0.563-0.481-1.413-0.55-2.969-0.075-1.688-0.094-2.194-0.094-6.463s0.019-4.781 0.094-6.463c0.069-1.563 0.331-2.406 0.55-2.969 0.288-0.744 0.638-1.281 1.194-1.838 0.563-0.563 1.094-0.906 1.838-1.2 0.563-0.219 1.412-0.481 2.969-0.55 1.681-0.075 2.188-0.094 6.463-0.094zM16 0c-4.344 0-4.887 0.019-6.594 0.094-1.7 0.075-2.869 0.35-3.881 0.744-1.056 0.412-1.95 0.956-2.837 1.85-0.894 0.888-1.438 1.781-1.85 2.831-0.394 1.019-0.669 2.181-0.744 3.881-0.075 1.713-0.094 2.256-0.094 6.6s0.019 4.887 0.094 6.594c0.075 1.7 0.35 2.869 0.744 3.881 0.413 1.056 0.956 1.95 1.85 2.837 0.887 0.887 1.781 1.438 2.831 1.844 1.019 0.394 2.181 0.669 3.881 0.744 1.706 0.075 2.25 0.094 6.594 0.094s4.888-0.019 6.594-0.094c1.7-0.075 2.869-0.35 3.881-0.744 1.050-0.406 1.944-0.956 2.831-1.844s1.438-1.781 1.844-2.831c0.394-1.019 0.669-2.181 0.744-3.881 0.075-1.706 0.094-2.25 0.094-6.594s-0.019-4.887-0.094-6.594c-0.075-1.7-0.35-2.869-0.744-3.881-0.394-1.063-0.938-1.956-1.831-2.844-0.887-0.887-1.781-1.438-2.831-1.844-1.019-0.394-2.181-0.669-3.881-0.744-1.712-0.081-2.256-0.1-6.6-0.1v0z"></path><path d="M16 7.781c-4.537 0-8.219 3.681-8.219 8.219s3.681 8.219 8.219 8.219 8.219-3.681 8.219-8.219c0-4.537-3.681-8.219-8.219-8.219zM16 21.331c-2.944 0-5.331-2.387-5.331-5.331s2.387-5.331 5.331-5.331c2.944 0 5.331 2.387 5.331 5.331s-2.387 5.331-5.331 5.331z"></path><path d="M26.462 7.456c0 1.060-0.859 1.919-1.919 1.919s-1.919-0.859-1.919-1.919c0-1.060 0.859-1.919 1.919-1.919s1.919 0.859 1.919 1.919z"></path></svg>'); } 73 71 .social-media a.email { 74 72 background-image: url('data:image/svg+xml;utf8,<svg fill="%233f3f3f" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M18 2c1.105 0 2 0.895 2 2v0 12c0 1.105-0.895 2-2 2v0h-16c-1.105 0-2-0.895-2-2v0-12c0-1.1 0.9-2 2-2h16zM13.63 11.1l6.37 4.9v-2l-5.12-3.9 5.12-4.1v-2l-10 8-10-8v2l5.12 4.1-5.12 3.9v2l6.37-4.9 3.63 2.9 3.63-2.9z"></path></svg>'); } 75 - .social-media a.email input { 76 - width: 170px; } 77 73 .social-media a.has-popup { 78 74 position: relative; } 79 - .social-media a.has-popup input.popup { 75 + .social-media a.has-popup .popup { 76 + margin: 0px; 77 + cursor: text; 80 78 display: block; 81 79 text-align: center; 82 80 font-family: "Rubik", sans-serif; ··· 92 90 left: 50%; 93 91 padding: 5px; 94 92 background-color: transparent; } 95 - .social-media a.has-popup input.popup.hidden { 93 + .social-media a.has-popup .popup.hidden { 96 94 -webkit-transform: translate(-50%, -10px) scale(0.5); 97 95 transform: translate(-50%, -10px) scale(0.5); 98 96 pointer-events: none;
+1 -1
docs/global.css.map
··· 1 - {"version":3,"sources":["global.sass"],"names":[],"mappings":"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","file":"global.css","sourcesContent":["// $dark: #1D212D\n$darkest: #14161D;\n$selection-color: #ffffff;\n$selection-bg-color: #6273D8;\n\n// transitions\n$transition-15: .15s cubic-bezier(0.4, 0.0, 0.2, 1.0);\n\n$transition-10: .10s cubic-bezier(0.4, 0.0, 0.2, 1.0);\n$transition-10-in: .10s cubic-bezier(0.0, 0.0, 0.2, 1.0);\n$transition-10-out: .10s cubic-bezier(0.4, 0.0, 1.0, 1.0);\n\n$transition-20: .20s cubic-bezier(0.4, 0.0, 0.2, 1.0);\n$transition-20-in: .20s cubic-bezier(0.0, 0.0, 0.2, 1.0);\n$transition-20-out: .20s cubic-bezier(0.4, 0.0, 1.0, 1.0);\n\n$transition-30: .30s cubic-bezier(0.4, 0.0, 0.2, 1.0);\n$transition-30-in: .30s cubic-bezier(0.0, 0.0, 0.2, 1.0);\n$transition-30-out: .30s cubic-bezier(0.4, 0.0, 1.0, 1.0);\n\n$transition-40: .40s cubic-bezier(0.4, 0.0, 0.2, 1.0);\n$transition-40-in: .40s cubic-bezier(0.0, 0.0, 0.2, 1.0);\n$transition-40-out: .40s cubic-bezier(0.4, 0.0, 1.0, 1.0);\n\n$transition-100: 1s cubic-bezier(0.4, 0.0, 0.2, 1.0);\n\nhtml {\n ::selection {\n color: $selection-color;\n background-color: $selection-bg-color; }\n body {\n font-family: \"Rubik\", sans-serif;\n background-color: #ffffff;\n display: flex;\n flex-direction: column;\n width: 100%;\n margin: 0px;\n align-items: center; } }\n@media (max-width: 600px) {\n div.social-media {\n grid-template-columns: repeat(4, 1fr); } }\n@media (max-width: 600px) {\n section {\n div.thumbnails .item, div.cards .item {\n width: 300px; } }\n section.video, section.synctan {\n div.thumbnails .item {\n height: calc(300px/16*9 - 4px); } }\n section.github div.cards {\n .item {\n padding: 10px; } } }\n.social-media a, .urls a {\n opacity: 0.8;\n &:hover {\n opacity: 1; } }\n\nsection {\n max-width: 1000px; }\n.social-media {\n display: grid;\n justify-items: center;\n grid-gap: 20px;\n grid-template-columns: repeat(8, 1fr);\n margin: 10px auto;\n margin-bottom: 50px;\n width: 1000px;\n max-width: 100%;\n justify-content: space-around;\n a {\n display: block;\n width: 26px;\n height: 26px;\n padding: 10px;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 22px;\n cursor: pointer; }\n a.twitter {\n // background-image: url(\"static/logos/twitter.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M32 7.075c-1.175 0.525-2.444 0.875-3.769 1.031 1.356-0.813 2.394-2.1 2.887-3.631-1.269 0.75-2.675 1.3-4.169 1.594-1.2-1.275-2.906-2.069-4.794-2.069-3.625 0-6.563 2.938-6.563 6.563 0 0.512 0.056 1.012 0.169 1.494-5.456-0.275-10.294-2.888-13.531-6.862-0.563 0.969-0.887 2.1-0.887 3.3 0 2.275 1.156 4.287 2.919 5.463-1.075-0.031-2.087-0.331-2.975-0.819 0 0.025 0 0.056 0 0.081 0 3.181 2.263 5.838 5.269 6.437-0.55 0.15-1.131 0.231-1.731 0.231-0.425 0-0.831-0.044-1.237-0.119 0.838 2.606 3.263 4.506 6.131 4.563-2.25 1.762-5.075 2.813-8.156 2.813-0.531 0-1.050-0.031-1.569-0.094 2.913 1.869 6.362 2.95 10.069 2.95 12.075 0 18.681-10.006 18.681-18.681 0-0.287-0.006-0.569-0.019-0.85 1.281-0.919 2.394-2.075 3.275-3.394z\"></path></svg>'); }\n a.discord {\n // background-image: url(\"static/logos/discord.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M26.963 0c1.875 0 3.387 1.516 3.476 3.3v28.7l-3.569-3.031-1.96-1.784-2.139-1.864 0.893 2.94h-18.717c-1.869 0-3.387-1.42-3.387-3.301v-21.653c0-1.784 1.52-3.303 3.393-3.303l22.009-0.004zM18.805 7.577h-0.040l-0.269 0.267c2.764 0.8 4.101 2.049 4.101 2.049-1.781-0.891-3.387-1.336-4.992-1.516-1.16-0.18-2.32-0.085-3.3 0h-0.267c-0.627 0-1.96 0.267-3.747 0.98-0.623 0.271-0.98 0.448-0.98 0.448s1.336-1.336 4.28-2.049l-0.18-0.18s-2.229-0.085-4.636 1.693c0 0-2.407 4.192-2.407 9.36 0 0 1.333 2.32 4.991 2.408 0 0 0.533-0.711 1.073-1.336-2.053-0.624-2.853-1.872-2.853-1.872s0.179 0.088 0.447 0.267h0.080c0.040 0 0.059 0.020 0.080 0.040v0.008c0.021 0.021 0.040 0.040 0.080 0.040 0.44 0.181 0.88 0.36 1.24 0.533 0.621 0.269 1.42 0.537 2.4 0.715 1.24 0.18 2.661 0.267 4.28 0 0.8-0.18 1.6-0.356 2.4-0.713 0.52-0.267 1.16-0.533 1.863-0.983 0 0-0.8 1.248-2.94 1.872 0.44 0.621 1.060 1.333 1.060 1.333 3.659-0.080 5.080-2.4 5.16-2.301 0-5.16-2.42-9.36-2.42-9.36-2.18-1.619-4.22-1.68-4.58-1.68l0.075-0.027zM19.029 13.461c0.937 0 1.693 0.8 1.693 1.78 0 0.987-0.76 1.787-1.693 1.787s-1.693-0.8-1.693-1.779c0.003-0.987 0.764-1.784 1.693-1.784zM12.972 13.461c0.933 0 1.688 0.8 1.688 1.78 0 0.987-0.76 1.787-1.693 1.787s-1.693-0.8-1.693-1.779c0-0.987 0.76-1.784 1.693-1.784z\"></path></svg>');\n input {\n width: 70px; } }\n a.facebook {\n // background-image: url(\"static/logos/facebook.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M19 6h5v-6h-5c-3.86 0-7 3.14-7 7v3h-4v6h4v16h6v-16h5l1-6h-6v-3c0-0.542 0.458-1 1-1z\"></path></svg>'); }\n a.youtube {\n // background-image: url(\"static/logos/youtube.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M31.681 9.6c0 0-0.313-2.206-1.275-3.175-1.219-1.275-2.581-1.281-3.206-1.356-4.475-0.325-11.194-0.325-11.194-0.325h-0.012c0 0-6.719 0-11.194 0.325-0.625 0.075-1.987 0.081-3.206 1.356-0.963 0.969-1.269 3.175-1.269 3.175s-0.319 2.588-0.319 5.181v2.425c0 2.587 0.319 5.181 0.319 5.181s0.313 2.206 1.269 3.175c1.219 1.275 2.819 1.231 3.531 1.369 2.563 0.244 10.881 0.319 10.881 0.319s6.725-0.012 11.2-0.331c0.625-0.075 1.988-0.081 3.206-1.356 0.962-0.969 1.275-3.175 1.275-3.175s0.319-2.587 0.319-5.181v-2.425c-0.006-2.588-0.325-5.181-0.325-5.181zM12.694 20.15v-8.994l8.644 4.513-8.644 4.481z\"></path></svg>'); }\n a.soundcloud {\n // background-image: url(\"static/logos/soundcloud.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M27.874 16.069c-0.565 0-1.105 0.11-1.596 0.308-0.328-3.574-3.447-6.377-7.25-6.377-0.931 0-1.834 0.176-2.635 0.474-0.311 0.116-0.393 0.235-0.393 0.466v12.585c0 0.243 0.195 0.445 0.441 0.469 0.011 0.001 11.36 0.007 11.434 0.007 2.278 0 4.125-1.776 4.125-3.965s-1.848-3.966-4.126-3.966zM12.5 24h1l0.5-7.007-0.5-6.993h-1l-0.5 6.993zM9.5 24h-1l-0.5-5.086 0.5-4.914h1l0.5 5zM4.5 24h1l0.5-4-0.5-4h-1l-0.5 4zM0.5 22h1l0.5-2-0.5-2h-1l-0.5 2z\"></path></svg>'); }\n a.github {\n // background-image: url(\"static/logos/github.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M16 0.395c-8.836 0-16 7.163-16 16 0 7.069 4.585 13.067 10.942 15.182 0.8 0.148 1.094-0.347 1.094-0.77 0-0.381-0.015-1.642-0.022-2.979-4.452 0.968-5.391-1.888-5.391-1.888-0.728-1.849-1.776-2.341-1.776-2.341-1.452-0.993 0.11-0.973 0.11-0.973 1.606 0.113 2.452 1.649 2.452 1.649 1.427 2.446 3.743 1.739 4.656 1.33 0.143-1.034 0.558-1.74 1.016-2.14-3.554-0.404-7.29-1.777-7.29-7.907 0-1.747 0.625-3.174 1.649-4.295-0.166-0.403-0.714-2.030 0.155-4.234 0 0 1.344-0.43 4.401 1.64 1.276-0.355 2.645-0.532 4.005-0.539 1.359 0.006 2.729 0.184 4.008 0.539 3.054-2.070 4.395-1.64 4.395-1.64 0.871 2.204 0.323 3.831 0.157 4.234 1.026 1.12 1.647 2.548 1.647 4.295 0 6.145-3.743 7.498-7.306 7.895 0.574 0.497 1.085 1.47 1.085 2.963 0 2.141-0.019 3.864-0.019 4.391 0 0.426 0.288 0.925 1.099 0.768 6.354-2.118 10.933-8.113 10.933-15.18 0-8.837-7.164-16-16-16z\"></path></svg>'); }\n a.instagram {\n // background-image: url(\"static/logos/instagram.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M16 2.881c4.275 0 4.781 0.019 6.462 0.094 1.563 0.069 2.406 0.331 2.969 0.55 0.744 0.288 1.281 0.638 1.837 1.194 0.563 0.563 0.906 1.094 1.2 1.838 0.219 0.563 0.481 1.412 0.55 2.969 0.075 1.688 0.094 2.194 0.094 6.463s-0.019 4.781-0.094 6.463c-0.069 1.563-0.331 2.406-0.55 2.969-0.288 0.744-0.637 1.281-1.194 1.837-0.563 0.563-1.094 0.906-1.837 1.2-0.563 0.219-1.413 0.481-2.969 0.55-1.688 0.075-2.194 0.094-6.463 0.094s-4.781-0.019-6.463-0.094c-1.563-0.069-2.406-0.331-2.969-0.55-0.744-0.288-1.281-0.637-1.838-1.194-0.563-0.563-0.906-1.094-1.2-1.837-0.219-0.563-0.481-1.413-0.55-2.969-0.075-1.688-0.094-2.194-0.094-6.463s0.019-4.781 0.094-6.463c0.069-1.563 0.331-2.406 0.55-2.969 0.288-0.744 0.638-1.281 1.194-1.838 0.563-0.563 1.094-0.906 1.838-1.2 0.563-0.219 1.412-0.481 2.969-0.55 1.681-0.075 2.188-0.094 6.463-0.094zM16 0c-4.344 0-4.887 0.019-6.594 0.094-1.7 0.075-2.869 0.35-3.881 0.744-1.056 0.412-1.95 0.956-2.837 1.85-0.894 0.888-1.438 1.781-1.85 2.831-0.394 1.019-0.669 2.181-0.744 3.881-0.075 1.713-0.094 2.256-0.094 6.6s0.019 4.887 0.094 6.594c0.075 1.7 0.35 2.869 0.744 3.881 0.413 1.056 0.956 1.95 1.85 2.837 0.887 0.887 1.781 1.438 2.831 1.844 1.019 0.394 2.181 0.669 3.881 0.744 1.706 0.075 2.25 0.094 6.594 0.094s4.888-0.019 6.594-0.094c1.7-0.075 2.869-0.35 3.881-0.744 1.050-0.406 1.944-0.956 2.831-1.844s1.438-1.781 1.844-2.831c0.394-1.019 0.669-2.181 0.744-3.881 0.075-1.706 0.094-2.25 0.094-6.594s-0.019-4.887-0.094-6.594c-0.075-1.7-0.35-2.869-0.744-3.881-0.394-1.063-0.938-1.956-1.831-2.844-0.887-0.887-1.781-1.438-2.831-1.844-1.019-0.394-2.181-0.669-3.881-0.744-1.712-0.081-2.256-0.1-6.6-0.1v0z\"></path><path d=\"M16 7.781c-4.537 0-8.219 3.681-8.219 8.219s3.681 8.219 8.219 8.219 8.219-3.681 8.219-8.219c0-4.537-3.681-8.219-8.219-8.219zM16 21.331c-2.944 0-5.331-2.387-5.331-5.331s2.387-5.331 5.331-5.331c2.944 0 5.331 2.387 5.331 5.331s-2.387 5.331-5.331 5.331z\"></path><path d=\"M26.462 7.456c0 1.060-0.859 1.919-1.919 1.919s-1.919-0.859-1.919-1.919c0-1.060 0.859-1.919 1.919-1.919s1.919 0.859 1.919 1.919z\"></path></svg>'); }\n a.email {\n // background-image: url(\"static/logos/email.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\"><path d=\"M18 2c1.105 0 2 0.895 2 2v0 12c0 1.105-0.895 2-2 2v0h-16c-1.105 0-2-0.895-2-2v0-12c0-1.1 0.9-2 2-2h16zM13.63 11.1l6.37 4.9v-2l-5.12-3.9 5.12-4.1v-2l-10 8-10-8v2l5.12 4.1-5.12 3.9v2l6.37-4.9 3.63 2.9 3.63-2.9z\"></path></svg>');\n input {\n width: 170px; } }\n a.has-popup {\n position: relative;\n input.popup {\n &.hidden {\n transform: translate(-50%, -10px) scale(0.5);\n pointer-events: none;\n opacity: 0; }\n display: block;\n text-align: center;\n font-family: \"Rubik\", sans-serif;\n position: absolute;\n transition: $transition-20 all;\n transform: translate(-50%, 0px);\n font-size: 14px;\n border: none;\n outline: none;\n color: $darkest;\n top: 100%;\n left: 50%;\n padding: 5px;\n background-color: transparent; } } }\n.logo {\n margin: 50px;\n width: 150px;\n height: 150px; }\nsection {\n width: 100%;\n margin-bottom: 50px;\n transition: $transition-40 all;\n overflow: hidden;\n &.hidden {\n opacity: 0; }\n &.removed {\n display: none; }\n .header {\n width: 100%;\n p {\n margin: auto;\n text-align: center; }\n p.title {\n font-size: 26px;\n margin-bottom: 4px; }\n p.description {} }\n .thumbnails, .cards {\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-evenly;\n .item {\n border-radius: 10px;\n width: 200px;\n margin: 40px;\n padding: 0px;\n overflow: hidden;\n transition: $transition-30 transform;\n &:hover {\n transform: scale(1.1);\n img {\n transform: scale(1.3); } }\n &.hidden {\n display: none; }\n img {\n transition: $transition-100 all;\n width: 100%;\n display: block; } } }\n &.video, &.synctan {\n .item {\n display: flex;\n align-items: center;\n height: calc(200px/16*9);\n img {\n transform: scale(1.02); } } }\n &.soundcloud {\n .item {\n width: 180px;\n margin: 40px 50px;\n height: auto; } }\n &.github {\n .cards {\n margin-top: 10px; }\n .item {\n display: flex;\n flex-direction: column;\n width: calc(200px + 20px);\n margin: calc(50px - 20px);\n border: 2px solid #ececec;\n box-sizing: border-box;\n backface-visibility: hidden;\n &:hover {\n transform: none; }\n p.title {\n margin: 18px;\n margin-bottom: 10px;\n font-size: 18px; }\n p.description {\n margin: 0px 18px;\n font-size: 14px;\n color: #5a5a5a; }\n .urls {\n display: flex;\n justify-content: flex-end;\n margin-top: auto;\n a.repo-url, a.repo-website {\n background-repeat: no-repeat;\n background-position: center;\n background-size: 22px;\n padding: 10px;\n cursor: pointer;\n display: block;\n &.hidden {\n display: none; } } }\n .repo-url {\n height: 26px;\n width: 26px;\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M16 0.395c-8.836 0-16 7.163-16 16 0 7.069 4.585 13.067 10.942 15.182 0.8 0.148 1.094-0.347 1.094-0.77 0-0.381-0.015-1.642-0.022-2.979-4.452 0.968-5.391-1.888-5.391-1.888-0.728-1.849-1.776-2.341-1.776-2.341-1.452-0.993 0.11-0.973 0.11-0.973 1.606 0.113 2.452 1.649 2.452 1.649 1.427 2.446 3.743 1.739 4.656 1.33 0.143-1.034 0.558-1.74 1.016-2.14-3.554-0.404-7.29-1.777-7.29-7.907 0-1.747 0.625-3.174 1.649-4.295-0.166-0.403-0.714-2.030 0.155-4.234 0 0 1.344-0.43 4.401 1.64 1.276-0.355 2.645-0.532 4.005-0.539 1.359 0.006 2.729 0.184 4.008 0.539 3.054-2.070 4.395-1.64 4.395-1.64 0.871 2.204 0.323 3.831 0.157 4.234 1.026 1.12 1.647 2.548 1.647 4.295 0 6.145-3.743 7.498-7.306 7.895 0.574 0.497 1.085 1.47 1.085 2.963 0 2.141-0.019 3.864-0.019 4.391 0 0.426 0.288 0.925 1.099 0.768 6.354-2.118 10.933-8.113 10.933-15.18 0-8.837-7.164-16-16-16z\"></path></svg>'); }\n .repo-website {\n height: 26px;\n width: 26px;\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"/></svg>'); } } } }\n\n.canvas-container {\n position: absolute;\n top: 0px;\n left: 0px;\n z-index: -1;\n width: 100%;\n transform: rotate(180deg);\n transition: $transition-100 opacity;\n &.hidden {\n opacity: 0; }\n canvas {\n display: block; } }\n"]} 1 + {"version":3,"sources":["global.sass"],"names":[],"mappings":"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","file":"global.css","sourcesContent":["// $dark: #1D212D\n$darkest: #14161D;\n$selection-color: #ffffff;\n$selection-bg-color: #6273D8;\n\n// transitions\n$transition-15: .15s cubic-bezier(0.4, 0.0, 0.2, 1.0);\n\n$transition-10: .10s cubic-bezier(0.4, 0.0, 0.2, 1.0);\n$transition-10-in: .10s cubic-bezier(0.0, 0.0, 0.2, 1.0);\n$transition-10-out: .10s cubic-bezier(0.4, 0.0, 1.0, 1.0);\n\n$transition-20: .20s cubic-bezier(0.4, 0.0, 0.2, 1.0);\n$transition-20-in: .20s cubic-bezier(0.0, 0.0, 0.2, 1.0);\n$transition-20-out: .20s cubic-bezier(0.4, 0.0, 1.0, 1.0);\n\n$transition-30: .30s cubic-bezier(0.4, 0.0, 0.2, 1.0);\n$transition-30-in: .30s cubic-bezier(0.0, 0.0, 0.2, 1.0);\n$transition-30-out: .30s cubic-bezier(0.4, 0.0, 1.0, 1.0);\n\n$transition-40: .40s cubic-bezier(0.4, 0.0, 0.2, 1.0);\n$transition-40-in: .40s cubic-bezier(0.0, 0.0, 0.2, 1.0);\n$transition-40-out: .40s cubic-bezier(0.4, 0.0, 1.0, 1.0);\n\n$transition-100: 1s cubic-bezier(0.4, 0.0, 0.2, 1.0);\n\nhtml {\n ::selection {\n color: $selection-color;\n background-color: $selection-bg-color; }\n body {\n font-family: \"Rubik\", sans-serif;\n background-color: #ffffff;\n display: flex;\n flex-direction: column;\n width: 100%;\n margin: 0px;\n align-items: center; } }\n@media (max-width: 600px) {\n div.social-media {\n grid-template-columns: repeat(4, 1fr); } }\n@media (max-width: 600px) {\n section {\n div.thumbnails .item, div.cards .item {\n width: 300px; } }\n section.video, section.synctan {\n div.thumbnails .item {\n height: calc(300px/16*9 - 4px); } }\n section.github div.cards {\n .item {\n padding: 10px; } } }\n.social-media a, .urls a {\n opacity: 0.8;\n &:hover {\n opacity: 1; } }\n\nsection {\n max-width: 1000px; }\n.social-media {\n display: grid;\n justify-items: center;\n grid-gap: 20px;\n grid-template-columns: repeat(8, 1fr);\n margin: 10px auto;\n margin-bottom: 50px;\n width: 1000px;\n max-width: 100%;\n justify-content: space-around;\n a {\n display: block;\n width: 26px;\n height: 26px;\n padding: 10px;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 22px;\n cursor: pointer; }\n a.twitter {\n // background-image: url(\"static/logos/twitter.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M32 7.075c-1.175 0.525-2.444 0.875-3.769 1.031 1.356-0.813 2.394-2.1 2.887-3.631-1.269 0.75-2.675 1.3-4.169 1.594-1.2-1.275-2.906-2.069-4.794-2.069-3.625 0-6.563 2.938-6.563 6.563 0 0.512 0.056 1.012 0.169 1.494-5.456-0.275-10.294-2.888-13.531-6.862-0.563 0.969-0.887 2.1-0.887 3.3 0 2.275 1.156 4.287 2.919 5.463-1.075-0.031-2.087-0.331-2.975-0.819 0 0.025 0 0.056 0 0.081 0 3.181 2.263 5.838 5.269 6.437-0.55 0.15-1.131 0.231-1.731 0.231-0.425 0-0.831-0.044-1.237-0.119 0.838 2.606 3.263 4.506 6.131 4.563-2.25 1.762-5.075 2.813-8.156 2.813-0.531 0-1.050-0.031-1.569-0.094 2.913 1.869 6.362 2.95 10.069 2.95 12.075 0 18.681-10.006 18.681-18.681 0-0.287-0.006-0.569-0.019-0.85 1.281-0.919 2.394-2.075 3.275-3.394z\"></path></svg>'); }\n a.discord {\n // background-image: url(\"static/logos/discord.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M26.963 0c1.875 0 3.387 1.516 3.476 3.3v28.7l-3.569-3.031-1.96-1.784-2.139-1.864 0.893 2.94h-18.717c-1.869 0-3.387-1.42-3.387-3.301v-21.653c0-1.784 1.52-3.303 3.393-3.303l22.009-0.004zM18.805 7.577h-0.040l-0.269 0.267c2.764 0.8 4.101 2.049 4.101 2.049-1.781-0.891-3.387-1.336-4.992-1.516-1.16-0.18-2.32-0.085-3.3 0h-0.267c-0.627 0-1.96 0.267-3.747 0.98-0.623 0.271-0.98 0.448-0.98 0.448s1.336-1.336 4.28-2.049l-0.18-0.18s-2.229-0.085-4.636 1.693c0 0-2.407 4.192-2.407 9.36 0 0 1.333 2.32 4.991 2.408 0 0 0.533-0.711 1.073-1.336-2.053-0.624-2.853-1.872-2.853-1.872s0.179 0.088 0.447 0.267h0.080c0.040 0 0.059 0.020 0.080 0.040v0.008c0.021 0.021 0.040 0.040 0.080 0.040 0.44 0.181 0.88 0.36 1.24 0.533 0.621 0.269 1.42 0.537 2.4 0.715 1.24 0.18 2.661 0.267 4.28 0 0.8-0.18 1.6-0.356 2.4-0.713 0.52-0.267 1.16-0.533 1.863-0.983 0 0-0.8 1.248-2.94 1.872 0.44 0.621 1.060 1.333 1.060 1.333 3.659-0.080 5.080-2.4 5.16-2.301 0-5.16-2.42-9.36-2.42-9.36-2.18-1.619-4.22-1.68-4.58-1.68l0.075-0.027zM19.029 13.461c0.937 0 1.693 0.8 1.693 1.78 0 0.987-0.76 1.787-1.693 1.787s-1.693-0.8-1.693-1.779c0.003-0.987 0.764-1.784 1.693-1.784zM12.972 13.461c0.933 0 1.688 0.8 1.688 1.78 0 0.987-0.76 1.787-1.693 1.787s-1.693-0.8-1.693-1.779c0-0.987 0.76-1.784 1.693-1.784z\"></path></svg>'); }\n a.facebook {\n // background-image: url(\"static/logos/facebook.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M19 6h5v-6h-5c-3.86 0-7 3.14-7 7v3h-4v6h4v16h6v-16h5l1-6h-6v-3c0-0.542 0.458-1 1-1z\"></path></svg>'); }\n a.youtube {\n // background-image: url(\"static/logos/youtube.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M31.681 9.6c0 0-0.313-2.206-1.275-3.175-1.219-1.275-2.581-1.281-3.206-1.356-4.475-0.325-11.194-0.325-11.194-0.325h-0.012c0 0-6.719 0-11.194 0.325-0.625 0.075-1.987 0.081-3.206 1.356-0.963 0.969-1.269 3.175-1.269 3.175s-0.319 2.588-0.319 5.181v2.425c0 2.587 0.319 5.181 0.319 5.181s0.313 2.206 1.269 3.175c1.219 1.275 2.819 1.231 3.531 1.369 2.563 0.244 10.881 0.319 10.881 0.319s6.725-0.012 11.2-0.331c0.625-0.075 1.988-0.081 3.206-1.356 0.962-0.969 1.275-3.175 1.275-3.175s0.319-2.587 0.319-5.181v-2.425c-0.006-2.588-0.325-5.181-0.325-5.181zM12.694 20.15v-8.994l8.644 4.513-8.644 4.481z\"></path></svg>'); }\n a.soundcloud {\n // background-image: url(\"static/logos/soundcloud.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M27.874 16.069c-0.565 0-1.105 0.11-1.596 0.308-0.328-3.574-3.447-6.377-7.25-6.377-0.931 0-1.834 0.176-2.635 0.474-0.311 0.116-0.393 0.235-0.393 0.466v12.585c0 0.243 0.195 0.445 0.441 0.469 0.011 0.001 11.36 0.007 11.434 0.007 2.278 0 4.125-1.776 4.125-3.965s-1.848-3.966-4.126-3.966zM12.5 24h1l0.5-7.007-0.5-6.993h-1l-0.5 6.993zM9.5 24h-1l-0.5-5.086 0.5-4.914h1l0.5 5zM4.5 24h1l0.5-4-0.5-4h-1l-0.5 4zM0.5 22h1l0.5-2-0.5-2h-1l-0.5 2z\"></path></svg>'); }\n a.github {\n // background-image: url(\"static/logos/github.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M16 0.395c-8.836 0-16 7.163-16 16 0 7.069 4.585 13.067 10.942 15.182 0.8 0.148 1.094-0.347 1.094-0.77 0-0.381-0.015-1.642-0.022-2.979-4.452 0.968-5.391-1.888-5.391-1.888-0.728-1.849-1.776-2.341-1.776-2.341-1.452-0.993 0.11-0.973 0.11-0.973 1.606 0.113 2.452 1.649 2.452 1.649 1.427 2.446 3.743 1.739 4.656 1.33 0.143-1.034 0.558-1.74 1.016-2.14-3.554-0.404-7.29-1.777-7.29-7.907 0-1.747 0.625-3.174 1.649-4.295-0.166-0.403-0.714-2.030 0.155-4.234 0 0 1.344-0.43 4.401 1.64 1.276-0.355 2.645-0.532 4.005-0.539 1.359 0.006 2.729 0.184 4.008 0.539 3.054-2.070 4.395-1.64 4.395-1.64 0.871 2.204 0.323 3.831 0.157 4.234 1.026 1.12 1.647 2.548 1.647 4.295 0 6.145-3.743 7.498-7.306 7.895 0.574 0.497 1.085 1.47 1.085 2.963 0 2.141-0.019 3.864-0.019 4.391 0 0.426 0.288 0.925 1.099 0.768 6.354-2.118 10.933-8.113 10.933-15.18 0-8.837-7.164-16-16-16z\"></path></svg>'); }\n a.instagram {\n // background-image: url(\"static/logos/instagram.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M16 2.881c4.275 0 4.781 0.019 6.462 0.094 1.563 0.069 2.406 0.331 2.969 0.55 0.744 0.288 1.281 0.638 1.837 1.194 0.563 0.563 0.906 1.094 1.2 1.838 0.219 0.563 0.481 1.412 0.55 2.969 0.075 1.688 0.094 2.194 0.094 6.463s-0.019 4.781-0.094 6.463c-0.069 1.563-0.331 2.406-0.55 2.969-0.288 0.744-0.637 1.281-1.194 1.837-0.563 0.563-1.094 0.906-1.837 1.2-0.563 0.219-1.413 0.481-2.969 0.55-1.688 0.075-2.194 0.094-6.463 0.094s-4.781-0.019-6.463-0.094c-1.563-0.069-2.406-0.331-2.969-0.55-0.744-0.288-1.281-0.637-1.838-1.194-0.563-0.563-0.906-1.094-1.2-1.837-0.219-0.563-0.481-1.413-0.55-2.969-0.075-1.688-0.094-2.194-0.094-6.463s0.019-4.781 0.094-6.463c0.069-1.563 0.331-2.406 0.55-2.969 0.288-0.744 0.638-1.281 1.194-1.838 0.563-0.563 1.094-0.906 1.838-1.2 0.563-0.219 1.412-0.481 2.969-0.55 1.681-0.075 2.188-0.094 6.463-0.094zM16 0c-4.344 0-4.887 0.019-6.594 0.094-1.7 0.075-2.869 0.35-3.881 0.744-1.056 0.412-1.95 0.956-2.837 1.85-0.894 0.888-1.438 1.781-1.85 2.831-0.394 1.019-0.669 2.181-0.744 3.881-0.075 1.713-0.094 2.256-0.094 6.6s0.019 4.887 0.094 6.594c0.075 1.7 0.35 2.869 0.744 3.881 0.413 1.056 0.956 1.95 1.85 2.837 0.887 0.887 1.781 1.438 2.831 1.844 1.019 0.394 2.181 0.669 3.881 0.744 1.706 0.075 2.25 0.094 6.594 0.094s4.888-0.019 6.594-0.094c1.7-0.075 2.869-0.35 3.881-0.744 1.050-0.406 1.944-0.956 2.831-1.844s1.438-1.781 1.844-2.831c0.394-1.019 0.669-2.181 0.744-3.881 0.075-1.706 0.094-2.25 0.094-6.594s-0.019-4.887-0.094-6.594c-0.075-1.7-0.35-2.869-0.744-3.881-0.394-1.063-0.938-1.956-1.831-2.844-0.887-0.887-1.781-1.438-2.831-1.844-1.019-0.394-2.181-0.669-3.881-0.744-1.712-0.081-2.256-0.1-6.6-0.1v0z\"></path><path d=\"M16 7.781c-4.537 0-8.219 3.681-8.219 8.219s3.681 8.219 8.219 8.219 8.219-3.681 8.219-8.219c0-4.537-3.681-8.219-8.219-8.219zM16 21.331c-2.944 0-5.331-2.387-5.331-5.331s2.387-5.331 5.331-5.331c2.944 0 5.331 2.387 5.331 5.331s-2.387 5.331-5.331 5.331z\"></path><path d=\"M26.462 7.456c0 1.060-0.859 1.919-1.919 1.919s-1.919-0.859-1.919-1.919c0-1.060 0.859-1.919 1.919-1.919s1.919 0.859 1.919 1.919z\"></path></svg>'); }\n a.email {\n // background-image: url(\"static/logos/email.png\")\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\"><path d=\"M18 2c1.105 0 2 0.895 2 2v0 12c0 1.105-0.895 2-2 2v0h-16c-1.105 0-2-0.895-2-2v0-12c0-1.1 0.9-2 2-2h16zM13.63 11.1l6.37 4.9v-2l-5.12-3.9 5.12-4.1v-2l-10 8-10-8v2l5.12 4.1-5.12 3.9v2l6.37-4.9 3.63 2.9 3.63-2.9z\"></path></svg>'); }\n a.has-popup {\n position: relative;\n .popup {\n margin: 0px;\n cursor: text;\n &.hidden {\n transform: translate(-50%, -10px) scale(0.5);\n pointer-events: none;\n opacity: 0; }\n display: block;\n text-align: center;\n font-family: \"Rubik\", sans-serif;\n position: absolute;\n transition: $transition-20 all;\n transform: translate(-50%, 0px);\n font-size: 14px;\n border: none;\n outline: none;\n color: $darkest;\n top: 100%;\n left: 50%;\n padding: 5px;\n background-color: transparent; } } }\n.logo {\n margin: 50px;\n width: 150px;\n height: 150px; }\nsection {\n width: 100%;\n margin-bottom: 50px;\n transition: $transition-40 all;\n overflow: hidden;\n &.hidden {\n opacity: 0; }\n &.removed {\n display: none; }\n .header {\n width: 100%;\n p {\n margin: auto;\n text-align: center; }\n p.title {\n font-size: 26px;\n margin-bottom: 4px; }\n p.description {} }\n .thumbnails, .cards {\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-evenly;\n .item {\n border-radius: 10px;\n width: 200px;\n margin: 40px;\n padding: 0px;\n overflow: hidden;\n transition: $transition-30 transform;\n &:hover {\n transform: scale(1.1);\n img {\n transform: scale(1.3); } }\n &.hidden {\n display: none; }\n img {\n transition: $transition-100 all;\n width: 100%;\n display: block; } } }\n &.video, &.synctan {\n .item {\n display: flex;\n align-items: center;\n height: calc(200px/16*9);\n img {\n transform: scale(1.02); } } }\n &.soundcloud {\n .item {\n width: 180px;\n margin: 40px 50px;\n height: auto; } }\n &.github {\n .cards {\n margin-top: 10px; }\n .item {\n display: flex;\n flex-direction: column;\n width: calc(200px + 20px);\n margin: calc(50px - 20px);\n border: 2px solid #ececec;\n box-sizing: border-box;\n backface-visibility: hidden;\n &:hover {\n transform: none; }\n p.title {\n margin: 18px;\n margin-bottom: 10px;\n font-size: 18px; }\n p.description {\n margin: 0px 18px;\n font-size: 14px;\n color: #5a5a5a; }\n .urls {\n display: flex;\n justify-content: flex-end;\n margin-top: auto;\n a.repo-url, a.repo-website {\n background-repeat: no-repeat;\n background-position: center;\n background-size: 22px;\n padding: 10px;\n cursor: pointer;\n display: block;\n &.hidden {\n display: none; } } }\n .repo-url {\n height: 26px;\n width: 26px;\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M16 0.395c-8.836 0-16 7.163-16 16 0 7.069 4.585 13.067 10.942 15.182 0.8 0.148 1.094-0.347 1.094-0.77 0-0.381-0.015-1.642-0.022-2.979-4.452 0.968-5.391-1.888-5.391-1.888-0.728-1.849-1.776-2.341-1.776-2.341-1.452-0.993 0.11-0.973 0.11-0.973 1.606 0.113 2.452 1.649 2.452 1.649 1.427 2.446 3.743 1.739 4.656 1.33 0.143-1.034 0.558-1.74 1.016-2.14-3.554-0.404-7.29-1.777-7.29-7.907 0-1.747 0.625-3.174 1.649-4.295-0.166-0.403-0.714-2.030 0.155-4.234 0 0 1.344-0.43 4.401 1.64 1.276-0.355 2.645-0.532 4.005-0.539 1.359 0.006 2.729 0.184 4.008 0.539 3.054-2.070 4.395-1.64 4.395-1.64 0.871 2.204 0.323 3.831 0.157 4.234 1.026 1.12 1.647 2.548 1.647 4.295 0 6.145-3.743 7.498-7.306 7.895 0.574 0.497 1.085 1.47 1.085 2.963 0 2.141-0.019 3.864-0.019 4.391 0 0.426 0.288 0.925 1.099 0.768 6.354-2.118 10.933-8.113 10.933-15.18 0-8.837-7.164-16-16-16z\"></path></svg>'); }\n .repo-website {\n height: 26px;\n width: 26px;\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"%233f3f3f\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"/></svg>'); } } } }\n\n.canvas-container {\n position: absolute;\n top: 0px;\n left: 0px;\n z-index: -1;\n width: 100%;\n transform: rotate(180deg);\n transition: $transition-100 opacity;\n &.hidden {\n opacity: 0; }\n canvas {\n display: block; } }\n"]}
+1 -1
docs/index.html
··· 1 - <!DOCTYPE html><html><head><title>KH</title><!-- font--><link href="https://fonts.googleapis.com/css?family=Rubik:400" rel="stylesheet"><!-- css--><link rel="stylesheet" type="text/css" href="global.css"><!-- stuff--><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"><!-- favicon--><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=YAoOnmWBYg"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=YAoOnmWBYg"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=YAoOnmWBYg"><link rel="manifest" href="/site.webmanifest?v=YAoOnmWBYg"><link rel="mask-icon" href="/safari-pinned-tab.svg?v=YAoOnmWBYg" color="#5bbad5"><link rel="shortcut icon" href="/favicon.ico?v=YAoOnmWBYg"><meta name="msapplication-TileColor" content="#ffffff"><meta name="theme-color" content="#ffffff"></head><body><img class="logo" src="static/kh-logo.png"><div class="social-media"><a class="twitter" target="_blank" title="Twitter" href="https://twitter.com/SpectralKH"></a><a class="discord has-popup" title="Discord"><input class="popup hidden" value="Kasper#6425"></a><a class="youtube" target="_blank" title="YouTube" href="https://youtube.com/SpectralKH"></a><a class="instagram" target="_blank" title="Instagram" href="https://www.instagram.com/spckh/"></a><a class="github" target="_blank" title="GitHub" href="https://github.com/SpectralKH"></a><a class="facebook" target="_blank" title="Facebook" href="https://www.facebook.com/SpectralKH"></a><a class="email has-popup" title="Email"><input class="popup hidden" value="kasperkh.kh@gmail.com"></a><a class="soundcloud" target="_blank" title="SoundCloud" href="https://soundcloud.com/SpectralKH"></a></div><section class="video hidden"><div class="header"><p class="title">Video</p><p class="description">I make some pretty cool videos. I'd watch them.</p></div><div class="thumbnails"><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a></div></section><section class="synctan hidden"><div class="header"><p class="title">Synctan</p><p class="description">A YouTube channel where I curate all kinds of music I like.</p></div><div class="thumbnails"><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a></div></section><section class="soundcloud lacuna hidden"><div class="header"><p class="title">Lacuna</p><p class="description">I am a co-owner of this independent indie record label.</p></div><div class="thumbnails"><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a><a class="item" target="_blank"><img></a></div></section><section class="github hidden"><div class="header"><p class="title">Development</p><p class="description">I do some programming for fun. These are some of my favorite projects.</p></div><div class="cards"><div class="item hidden"><p class="title"></p><p class="description"></p><div class="urls"><a class="repo-website hidden" target="_blank"></a><a class="repo-url hidden" target="_blank"></a></div></div><div class="item hidden"><p class="title"></p><p class="description"></p><div class="urls"><a class="repo-website hidden" target="_blank"></a><a class="repo-url hidden" target="_blank"></a></div></div><div class="item hidden"><p class="title"></p><p class="description"></p><div class="urls"><a class="repo-website hidden" target="_blank"></a><a class="repo-url hidden" target="_blank"></a></div></div><div class="item hidden"><p class="title"></p><p class="description"></p><div class="urls"><a class="repo-website hidden" target="_blank"></a><a class="repo-url hidden" target="_blank"></a></div></div><div class="item hidden"><p class="title"></p><p class="description"></p><div class="urls"><a class="repo-website hidden" target="_blank"></a><a class="repo-url hidden" target="_blank"></a></div></div><div class="item hidden"><p class="title"></p><p class="description"></p><div class="urls"><a class="repo-website hidden" target="_blank"></a><a class="repo-url hidden" target="_blank"></a></div></div></div></section><script src="js/global.js"></script><script src="lib/three.min.js"></script><script src="js/canvas-renderer-and-projector.min.js"></script><script src="js/bg.js"></script></body></html> 1 + <!DOCTYPE html><html lang="en"><head><title>Kasper</title><link href="https://fonts.googleapis.com/css?family=Rubik:400" rel="stylesheet"><link rel="stylesheet" type="text/css" href="global.css"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"><meta name="Description" content="My portfolio website"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=QEJrjJyAKx"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=QEJrjJyAKx"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=QEJrjJyAKx"><link rel="manifest" href="/site.webmanifest?v=QEJrjJyAKx"><link rel="mask-icon" href="/safari-pinned-tab.svg?v=QEJrjJyAKx" color="#3f3f3f"><link rel="shortcut icon" href="/favicon.ico?v=QEJrjJyAKx"><meta name="msapplication-TileColor" content="#ffffff"><meta name="theme-color" content="#ffffff"></head><body><img class="logo" alt="" src="static/kh-logo.png"><div class="social-media"><a class="twitter" target="_blank" rel="noopener noreferrer" title="Twitter" href="https://twitter.com/SpectralKH"></a><a class="discord has-popup" title="Discord"><p class="popup hidden">Kasper#6425</p></a><a class="youtube" target="_blank" rel="noopener noreferrer" title="YouTube" href="https://youtube.com/SpectralKH"></a><a class="instagram" target="_blank" rel="noopener noreferrer" title="Instagram" href="https://www.instagram.com/spckh/"></a><a class="github" target="_blank" rel="noopener noreferrer" title="GitHub" href="https://github.com/SpectralKH"></a><a class="facebook" target="_blank" rel="noopener noreferrer" title="Facebook" href="https://www.facebook.com/SpectralKH"></a><a class="email has-popup" title="Email"><p class="popup hidden">kasperkh.kh@gmail.com</p></a><a class="soundcloud" target="_blank" rel="noopener noreferrer" title="SoundCloud" href="https://soundcloud.com/SpectralKH"></a></div><section class="video hidden"><div class="header"><p class="title">Video</p><p class="description">I make some pretty cool videos. I'd watch them.</p></div><div class="thumbnails"><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a></div></section><section class="synctan hidden"><div class="header"><p class="title">Synctan</p><p class="description">A YouTube channel where I curate all kinds of music I like.</p></div><div class="thumbnails"><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a></div></section><section class="soundcloud lacuna hidden"><div class="header"><p class="title">Lacuna</p><p class="description">I am a co-owner of this independent indie record label.</p></div><div class="thumbnails"><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a><a class="item" target="_blank" rel="noopener noreferrer"><img alt=""></a></div></section><section class="github hidden"><div class="header"><p class="title">Development</p><p class="description">I do some programming for fun. These are some of my favorite projects.</p></div><div class="cards"><div class="item hidden"><p class="title"></p><p class="description"></p><div class="urls"><a class="repo-website hidden" title="Website" target="_blank" rel="noopener noreferrer"></a><a class="repo-url hidden" title="Repository" target="_blank" rel="noopener noreferrer"></a></div></div><div class="item hidden"><p class="title"></p><p class="description"></p><div class="urls"><a class="repo-website hidden" title="Website" target="_blank" rel="noopener noreferrer"></a><a class="repo-url hidden" title="Repository" target="_blank" rel="noopener noreferrer"></a></div></div><div class="item hidden"><p class="title"></p><p class="description"></p><div class="urls"><a class="repo-website hidden" title="Website" target="_blank" rel="noopener noreferrer"></a><a class="repo-url hidden" title="Repository" target="_blank" rel="noopener noreferrer"></a></div></div><div class="item hidden"><p class="title"></p><p class="description"></p><div class="urls"><a class="repo-website hidden" title="Website" target="_blank" rel="noopener noreferrer"></a><a class="repo-url hidden" title="Repository" target="_blank" rel="noopener noreferrer"></a></div></div><div class="item hidden"><p class="title"></p><p class="description"></p><div class="urls"><a class="repo-website hidden" title="Website" target="_blank" rel="noopener noreferrer"></a><a class="repo-url hidden" title="Repository" target="_blank" rel="noopener noreferrer"></a></div></div><div class="item hidden"><p class="title"></p><p class="description"></p><div class="urls"><a class="repo-website hidden" title="Website" target="_blank" rel="noopener noreferrer"></a><a class="repo-url hidden" title="Repository" target="_blank" rel="noopener noreferrer"></a></div></div></div></section><script src="js/global.js"></script><script src="lib/three.min.js"></script><script src="js/canvas-renderer-and-projector.min.js"></script><script src="js/bg.js"></script></body></html>
+1 -1
docs/js/global.js
··· 1 - "use strict";function xhr(t,s){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},i=arguments[3];return new Promise(function(n,o){"function"==typeof r&&(i=r),"function"==typeof r&&(r={}),null==r.type&&(r.type="POST"),null==r.contentType&&(r.contentType="json");var e=new XMLHttpRequest;e.open(r.type,s,!0),"GET"==r.type?e.send():"form"==r.contentType?(e.setRequestHeader("Content-type","application/x-www-form-urlencoded"),e.send("data="+JSON.stringify(t))):"json"==r.contentType?(e.setRequestHeader("Content-type","application/json"),e.send(JSON.stringify(t))):"none"==r.contentType?e.send(t):r.contentType&&(e.setRequestHeader("Content-type",r.contentType),e.send(t)),e.onreadystatechange=function(){if(4==this.readyState){var e=JSON.parse(this.responseText),t=null;String(this.status).startsWith("2")||(console.error("HTTP error "+this.status),t=this.status),t?o(t):n(e),i&&i(e,t)}}})}window.xhr=xhr;var YTapiKey="AIzaSyBnQnpboWUfWyR8aW6HuQV5MAlxZ5FQ090";!function(){var e="https://www.googleapis.com/youtube/v3/playlistItems?key="+YTapiKey+"&part=snippet&maxResults=6&playlistId=",t=e+"PL84-DNDSU8p5WP6jA7hvOCV9dIKBNjdCS",n=xhr(null,e+"UUy6jcAF6fZGttRvihyQixbA",{type:"GET"}),o=xhr(null,t,{type:"GET"});Promise.all([n,o]).then(function(e){console.log("==--==--==--\x3e YouTube Personal + Commissions"),console.log(e);var t=e[0].items.concat(e[1].items);t.sort(function(e,t){var n=new Date(e.snippet.publishedAt);return new Date(t.snippet.publishedAt)-n}),t=t.splice(0,6);for(var n=0;n<t.length;n++){var o=t[n].snippet.resourceId.videoId,s=t[n].snippet.thumbnails.high.url,r=(t[n].snippet.title,document.querySelector("section.video .thumbnails a.item:nth-child("+(n+1)+")"));r.setAttribute("href","https://www.youtube.com/watch?v="+o),r.querySelector("img").setAttribute("src",s)}document.querySelector("section.video").classList.remove("hidden")},function(e){throw document.querySelector("section.video").classList.add("removed"),console.log("Could not fetch Video YouTube playlistItems"),Error(e)})}(),xhr(null,"https://www.googleapis.com/youtube/v3/playlistItems?key="+YTapiKey+"&part=snippet&maxResults=6&playlistId=UUoMimPRPeR28TM3_0cinjVQ",{type:"GET"}).then(function(e){console.log("==--==--==--\x3eYouTube Synctan"),console.log(e);for(var t=e.items,n=0;n<t.length;n++){var o=t[n].snippet.resourceId.videoId,s=t[n].snippet.thumbnails.high.url,r=(t[n].snippet.title,document.querySelector("section.synctan .thumbnails .item:nth-child("+(n+1)+")"));r.setAttribute("href","https://www.youtube.com/watch?v="+o),r.querySelector("img").setAttribute("src",s)}document.querySelector("section.synctan").classList.remove("hidden")},function(e){throw document.querySelector("section.synctan").classList.add("removed"),console.log("Could not fetch Synctan YouTube playlistItems"),Error(e)}),xhr(null,"https://api.soundcloud.com/users/247370320/tracks?limit=8&client_id=6ibYZTmF5qnpvp88S9V3werVrC18WCdC",{type:"GET"}).then(function(e){console.log("==--==--==--\x3e SoundCloud Lacuna"),console.log(e);for(var t=0;t<6;t++){var n=e[t].permalink_url,o=e[t].artwork_url.replace("large","t500x500"),s=document.querySelector("section.lacuna .thumbnails .item:nth-child("+(t+1)+")");s.setAttribute("href",n),s.querySelector("img").setAttribute("src",o)}document.querySelector("section.lacuna").classList.remove("hidden")},function(e){throw document.querySelector("section.lacuna").classList.add("removed"),console.log("Could not fetch SoundCloud tracks"),Error(e)}),function(){var e="510127accaf075e7a33b";e+="04e4569c7e2f78c83539",fetch("https://api.github.com/graphql",{body:JSON.stringify({query:'\n query {\n user(login:"SpectralKH") {\n pinnedRepositories(first:6) {\n edges {\n node {\n description\n homepageUrl\n url\n name\n }\n }\n }\n }\n }\n '}),headers:{Authorization:"bearer "+e,"Content-Type":"application/x-www-form-urlencoded"},method:"POST"}).then(function(e){if(e.ok)return e;throw Error(e)}).then(function(e){e.json().then(function(e){console.log("==--==--==--\x3e GitHub"),console.log(e.data);for(var t=e.data.user.pinnedRepositories.edges,n=0;n<t.length;n++){var o=t[n].node,s=o.description,r=o.homepageUrl,i=o.name,c=o.url,l=document.querySelector("section.github .cards .item:nth-child("+(n+1)+")");l.classList.remove("hidden"),l.querySelector("p.title").innerHTML=i,l.querySelector("p.description").innerHTML=s,c&&(l.querySelector("a.repo-url").setAttribute("href",c),l.querySelector("a.repo-url").classList.remove("hidden")),r&&(l.querySelector("a.repo-website").setAttribute("href",r),l.querySelector("a.repo-website").classList.remove("hidden"))}document.querySelector("section.github").classList.remove("hidden")})}).catch(function(e){throw document.querySelector("section.github").classList.add("removed"),e})}(),document.addEventListener("click",function(e){function t(){for(var e=document.querySelectorAll("a.has-popup input"),t=0;t<e.length;t++)e[t].classList.add("hidden")}var n=e.target.classList.contains("has-popup"),o=e.target.classList.contains("popup");if(n||o){var s=e.target.querySelector("input");e.target.classList.contains("popup")&&(s=e.target);var r=e.target.classList.contains("popup");s.classList.contains("hidden")?(t(),s.select(),s.classList.remove("hidden")):r||s.classList.add("hidden")}else t()}); 1 + "use strict";function xhr(t,r){var s=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},i=arguments[3];return new Promise(function(n,o){"function"==typeof s&&(i=s),"function"==typeof s&&(s={}),null==s.type&&(s.type="POST"),null==s.contentType&&(s.contentType="json");var e=new XMLHttpRequest;e.open(s.type,r,!0),"GET"==s.type?e.send():"form"==s.contentType?(e.setRequestHeader("Content-type","application/x-www-form-urlencoded"),e.send("data="+JSON.stringify(t))):"json"==s.contentType?(e.setRequestHeader("Content-type","application/json"),e.send(JSON.stringify(t))):"none"==s.contentType?e.send(t):s.contentType&&(e.setRequestHeader("Content-type",s.contentType),e.send(t)),e.onreadystatechange=function(){if(4==this.readyState){var e=JSON.parse(this.responseText),t=null;String(this.status).startsWith("2")||(console.error("HTTP error "+this.status),t=this.status),t?o(t):n(e),i&&i(e,t)}}})}window.xhr=xhr;var YTapiKey="AIzaSyBnQnpboWUfWyR8aW6HuQV5MAlxZ5FQ090";xhr(null,"https://www.googleapis.com/youtube/v3/playlistItems?key="+YTapiKey+"&part=snippet&maxResults=6&playlistId=PL84-DNDSU8p5WP6jA7hvOCV9dIKBNjdCS",{type:"GET"}).then(function(e){console.log("==--==--==--\x3e YouTube Video"),console.log(e);for(var t=e.items,n=0;n<t.length;n++){var o=t[n].snippet.resourceId.videoId,r=t[n].snippet.thumbnails.standard.url,s=document.querySelector("section.video .thumbnails a.item:nth-child("+(n+1)+")");s.setAttribute("href","https://www.youtube.com/watch?v="+o),s.querySelector("img").setAttribute("src",r),s.title=t[n].snippet.title}document.querySelector("section.video").classList.remove("hidden")},function(e){throw document.querySelector("section.video").classList.add("removed"),console.log("Could not fetch Video YouTube playlistItems"),Error(e)}),xhr(null,"https://www.googleapis.com/youtube/v3/playlistItems?key="+YTapiKey+"&part=snippet&maxResults=6&playlistId=UUoMimPRPeR28TM3_0cinjVQ",{type:"GET"}).then(function(e){console.log("==--==--==--\x3eYouTube Synctan"),console.log(e);for(var t=e.items,n=0;n<t.length;n++){var o=t[n].snippet.resourceId.videoId,r=t[n].snippet.thumbnails.high.url,s=document.querySelector("section.synctan .thumbnails .item:nth-child("+(n+1)+")");s.setAttribute("href","https://www.youtube.com/watch?v="+o),s.querySelector("img").setAttribute("src",r),s.title=t[n].snippet.title}document.querySelector("section.synctan").classList.remove("hidden")},function(e){throw document.querySelector("section.synctan").classList.add("removed"),console.log("Could not fetch Synctan YouTube playlistItems"),Error(e)}),xhr(null,"https://api.soundcloud.com/users/247370320/tracks?limit=8&client_id=6ibYZTmF5qnpvp88S9V3werVrC18WCdC",{type:"GET"}).then(function(e){console.log("==--==--==--\x3e SoundCloud Lacuna"),console.log(e);for(var t=0;t<6;t++){var n=e[t].permalink_url,o=e[t].artwork_url.replace("large","t500x500"),r=document.querySelector("section.lacuna .thumbnails .item:nth-child("+(t+1)+")");r.setAttribute("href",n),r.querySelector("img").setAttribute("src",o),r.title=e[t].title}document.querySelector("section.lacuna").classList.remove("hidden")},function(e){throw document.querySelector("section.lacuna").classList.add("removed"),console.log("Could not fetch SoundCloud tracks"),Error(e)}),function(){var e="510127accaf075e7a33b";e+="04e4569c7e2f78c83539",fetch("https://api.github.com/graphql",{body:JSON.stringify({query:'\n query {\n user(login:"SpectralKH") {\n pinnedRepositories(first:6) {\n edges {\n node {\n description\n homepageUrl\n url\n name\n }\n }\n }\n }\n }\n '}),headers:{Authorization:"bearer "+e,"Content-Type":"application/x-www-form-urlencoded"},method:"POST"}).then(function(e){if(e.ok)return e;throw Error(e)}).then(function(e){e.json().then(function(e){console.log("==--==--==--\x3e GitHub"),console.log(e.data);for(var t=e.data.user.pinnedRepositories.edges,n=0;n<t.length;n++){var o=t[n].node,r=o.description,s=o.homepageUrl,i=o.name,c=o.url,a=document.querySelector("section.github .cards .item:nth-child("+(n+1)+")");a.classList.remove("hidden"),a.querySelector("p.title").innerHTML=i,a.querySelector("p.description").innerHTML=r,c&&(a.querySelector("a.repo-url").setAttribute("href",c),a.querySelector("a.repo-url").classList.remove("hidden")),s&&(a.querySelector("a.repo-website").setAttribute("href",s),a.querySelector("a.repo-website").classList.remove("hidden"))}document.querySelector("section.github").classList.remove("hidden")})}).catch(function(e){throw document.querySelector("section.github").classList.add("removed"),e})}(),document.addEventListener("click",function(e){function t(){for(var e=document.querySelectorAll("a.has-popup .popup"),t=0;t<e.length;t++)e[t].classList.add("hidden")}var n=e.target.classList.contains("has-popup"),o=e.target.classList.contains("popup");if(n||o){var r=e.target;o&&(r=e.target.parentElement);var s=e.target.querySelector(".popup");e.target.classList.contains("popup")&&(s=e.target);var i=e.target.classList.contains("popup");if(s.classList.contains("hidden")){t();var c=document.createRange();c.selectNodeContents(r.querySelector(".popup"));var a=window.getSelection();a.removeAllRanges(),a.addRange(c),s.classList.remove("hidden")}else i||s.classList.add("hidden")}else t()}); 2 2 //# sourceMappingURL=global.js.map
+1 -1
docs/js/global.js.map
··· 1 - {"version":3,"sources":["js/global.js"],"names":["xhr","reqContent","url","options","arguments","length","undefined","callback","Promise","resolve","reject","type","contentType","open","XMLHttpRequest","JSON","stringify","send","setRequestHeader","onreadystatechange","this","responseText","String","status","startsWith","err","readyState","res","console","error","window","YTapiKey","Video","commissionsURL","personal","commissions","all","then","results","log","items","concat","sort","a","b","dateA","Date","snippet","publishedAt","splice","i","resourceId","videoId","img","thumbnails","high","item","title","document","querySelector","setAttribute","classList","remove","add","Error","Lacuna","tracks","permalink_url","artwork_url","replace","GitHub","body","headers","Authorization","fetch","method","token","response","repoWebsite","json","result","data","catch","repos","user","pinnedRepositories","edges","repo","node","description","homepageUrl","name","repoUrl","hideAllInputs","inputs","innerHTML","hasClassHasPopup","target","contains","hasClassPopup","input","clickedInput","addEventListener","e","querySelectorAll","select"],"mappings":"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","file":"global.js","sourcesContent":["function xhr (reqContent, url, options = {}, callback) {\n return new Promise((resolve, reject) => {\n if (typeof options === 'function') callback = options\n if (typeof options === 'function') options = {}\n if (options.type == undefined) options.type = 'POST'\n if (options.contentType == undefined) options.contentType = 'json'\n var xhr = new XMLHttpRequest()\n xhr.open(options.type, url, true)\n if (options.type == 'GET') {\n xhr.send()\n } else if (options.contentType == 'form') {\n xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')\n xhr.send('data=' + JSON.stringify(reqContent))\n } else if (options.contentType == 'json') {\n xhr.setRequestHeader('Content-type', 'application/json')\n xhr.send(JSON.stringify(reqContent))\n } else if (options.contentType == 'none') {\n xhr.send(reqContent)\n // for file uploads (multipart/form-data)\n } else if (options.contentType) {\n xhr.setRequestHeader('Content-type', options.contentType)\n xhr.send(reqContent)\n }\n xhr.onreadystatechange = function () {\n if (this.readyState == 4) {\n let res = JSON.parse(this.responseText)\n let err = null\n if (!String(this.status).startsWith('2')) {\n console.error('HTTP error ' + this.status)\n err = this.status\n }\n if (err) reject(err)\n else resolve(res)\n if (callback) callback(res, err)\n }\n }\n // resolve(5);\n })\n}\nwindow.xhr = xhr\n\nvar YTapiKey = 'AIzaSyBnQnpboWUfWyR8aW6HuQV5MAlxZ5FQ090';\n\n(function Video () {\n var maxResults = 6\n\n var url = 'https://www.googleapis.com/youtube/v3/playlistItems' +\n '?key=' + YTapiKey +\n '&part=snippet' +\n '&maxResults=' + maxResults +\n '&playlistId='\n var personalURL = url + 'UUy6jcAF6fZGttRvihyQixbA'\n var commissionsURL = url + 'PL84-DNDSU8p5WP6jA7hvOCV9dIKBNjdCS'\n var personal = xhr(null, personalURL, { type: 'GET' })\n var commissions = xhr(null, commissionsURL, { type: 'GET' })\n Promise.all([personal, commissions]).then((results) => {\n console.log('==--==--==--> YouTube Personal + Commissions')\n console.log(results)\n // combine video and commission responses\n var items = results[0].items.concat(results[1].items)\n items.sort(function (a, b) {\n var dateA = new Date(a.snippet.publishedAt)\n var dateB = new Date(b.snippet.publishedAt)\n return dateB - dateA // sort by date ascending\n })\n items = items.splice(0, maxResults)\n for (var i = 0; i < items.length; i++) {\n var url = items[i].snippet.resourceId.videoId\n var img = items[i].snippet.thumbnails.high.url\n var title = items[i].snippet.title\n var item = document.querySelector('section.video .thumbnails a.item:nth-child(' + (i + 1) + ')')\n item.setAttribute('href', 'https://www.youtube.com/watch?v=' + url)\n item.querySelector('img').setAttribute('src', img)\n }\n document.querySelector('section.video').classList.remove('hidden')\n }, (err) => {\n document.querySelector('section.video').classList.add('removed')\n console.log('Could not fetch Video YouTube playlistItems')\n throw Error(err)\n })\n})();\n\n(function Synctan () {\n var maxResults = 6\n\n var url = 'https://www.googleapis.com/youtube/v3/playlistItems' +\n '?key=' + YTapiKey +\n '&part=snippet' +\n '&maxResults=' + maxResults +\n '&playlistId=UUoMimPRPeR28TM3_0cinjVQ'\n xhr(null, url, { type: 'GET' }).then((result) => {\n console.log('==--==--==-->YouTube Synctan')\n console.log(result)\n var items = result.items\n for (var i = 0; i < items.length; i++) {\n var url = items[i].snippet.resourceId.videoId\n var img = items[i].snippet.thumbnails.high.url\n var title = items[i].snippet.title\n var item = document.querySelector('section.synctan .thumbnails .item:nth-child(' + (i + 1) + ')')\n item.setAttribute('href', 'https://www.youtube.com/watch?v=' + url)\n item.querySelector('img').setAttribute('src', img)\n }\n document.querySelector('section.synctan').classList.remove('hidden')\n }, (err) => {\n document.querySelector('section.synctan').classList.add('removed')\n console.log('Could not fetch Synctan YouTube playlistItems')\n throw Error(err)\n })\n})();\n\n(function Lacuna () {\n var maxResults = 8\n\n // Lacuna\n var clientID = '6ibYZTmF5qnpvp88S9V3werVrC18WCdC'\n var url = 'https://api.soundcloud.com/users/247370320/tracks' +\n '?limit=' + maxResults +\n '&client_id=' + clientID\n xhr(null, url, { type: 'GET' }).then((tracks) => {\n console.log('==--==--==--> SoundCloud Lacuna')\n console.log(tracks)\n for (var i = 0; i < 6; i++) {\n var url = tracks[i].permalink_url\n var img = tracks[i].artwork_url.replace('large', 't500x500')\n var item = document.querySelector('section.lacuna .thumbnails .item:nth-child(' + (i + 1) + ')')\n item.setAttribute('href', url)\n item.querySelector('img').setAttribute('src', img)\n }\n document.querySelector('section.lacuna').classList.remove('hidden')\n }, (err) => {\n document.querySelector('section.lacuna').classList.add('removed')\n console.log('Could not fetch SoundCloud tracks')\n throw Error(err)\n })\n})();\n\n(function GitHub () {\n // this is so babel won't combine the two string into one, and\n // make GitHub revoke the token when it detects it in the commit\n let token = '510127accaf075e7a33b'\n if (true) token += '04e4569c7e2f78c83539'\n fetch('https://api.github.com/graphql', {\n body: JSON.stringify({\n query: `\n query {\n user(login:\"SpectralKH\") {\n pinnedRepositories(first:6) {\n edges {\n node {\n description\n homepageUrl\n url\n name\n }\n }\n }\n }\n }\n `\n }),\n headers: {\n Authorization: 'bearer ' + token,\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n method: 'POST'\n })\n .then((response) => {\n if (response.ok) return response\n else throw Error(response)\n })\n .then((response) => {\n response.json().then((result) => {\n console.log('==--==--==--> GitHub')\n console.log(result.data)\n const repos = result.data.user.pinnedRepositories.edges\n for (var i = 0; i < repos.length; i++) {\n const repo = repos[i].node\n const description = repo.description\n const repoWebsite = repo.homepageUrl\n const name = repo.name\n const repoUrl = repo.url\n // const img = tracks[i].artwork_url.replace('large', 't300x300')\n const item = document.querySelector('section.github .cards .item:nth-child(' + (i + 1) + ')')\n // item.setAttribute('href', url)\n item.classList.remove('hidden')\n item.querySelector('p.title').innerHTML = name\n item.querySelector('p.description').innerHTML = description\n if (repoUrl) {\n item.querySelector('a.repo-url').setAttribute('href', repoUrl)\n item.querySelector('a.repo-url').classList.remove('hidden')\n }\n if (repoWebsite) {\n item.querySelector('a.repo-website').setAttribute('href', repoWebsite)\n item.querySelector('a.repo-website').classList.remove('hidden')\n }\n }\n document.querySelector('section.github').classList.remove('hidden')\n })\n })\n .catch((err) => {\n document.querySelector('section.github').classList.add('removed')\n throw err\n })\n})()\n\n// discord/email popups\ndocument.addEventListener('click', function (e) {\n function hideAllInputs () {\n var inputs = document.querySelectorAll('a.has-popup input')\n for (var i = 0; i < inputs.length; i++) {\n inputs[i].classList.add('hidden')\n }\n }\n var hasClassHasPopup = e.target.classList.contains('has-popup')\n var hasClassPopup = e.target.classList.contains('popup')\n if (hasClassHasPopup || hasClassPopup) {\n var input = e.target.querySelector('input')\n if (e.target.classList.contains('popup')) input = e.target\n var clickedInput = e.target.classList.contains('popup')\n var inputIsHidden = input.classList.contains('hidden')\n if (inputIsHidden) {\n hideAllInputs()\n input.select()\n input.classList.remove('hidden')\n } else if (!clickedInput) {\n input.classList.add('hidden')\n }\n } else {\n // clicked anywhere\n hideAllInputs()\n }\n})\n"]} 1 + {"version":3,"sources":["js/global.js"],"names":["xhr","reqContent","url","options","arguments","length","undefined","callback","Promise","resolve","reject","type","contentType","open","XMLHttpRequest","JSON","stringify","send","setRequestHeader","onreadystatechange","this","responseText","String","status","startsWith","err","readyState","res","console","error","window","YTapiKey","Video","then","result","log","items","i","snippet","resourceId","videoId","img","thumbnails","standard","item","document","querySelector","setAttribute","title","classList","remove","add","Error","high","Lacuna","tracks","permalink_url","artwork_url","replace","GitHub","body","headers","Authorization","fetch","method","token","response","repoWebsite","json","data","catch","repos","user","pinnedRepositories","edges","repo","node","description","homepageUrl","name","repoUrl","hideAllPopups","popups","innerHTML","hasClassHasPopup","target","contains","hasClassPopup","socialMediaButton","parentElement","popup","e","popupIsHidden","range","addEventListener","clickedpopup","createRange","selectNodeContents","selection","getSelection","removeAllRanges","addRange"],"mappings":"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","file":"global.js","sourcesContent":["function xhr (reqContent, url, options = {}, callback) {\n return new Promise((resolve, reject) => {\n if (typeof options === 'function') callback = options\n if (typeof options === 'function') options = {}\n if (options.type == undefined) options.type = 'POST'\n if (options.contentType == undefined) options.contentType = 'json'\n var xhr = new XMLHttpRequest()\n xhr.open(options.type, url, true)\n if (options.type == 'GET') {\n xhr.send()\n } else if (options.contentType == 'form') {\n xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')\n xhr.send('data=' + JSON.stringify(reqContent))\n } else if (options.contentType == 'json') {\n xhr.setRequestHeader('Content-type', 'application/json')\n xhr.send(JSON.stringify(reqContent))\n } else if (options.contentType == 'none') {\n xhr.send(reqContent)\n // for file uploads (multipart/form-data)\n } else if (options.contentType) {\n xhr.setRequestHeader('Content-type', options.contentType)\n xhr.send(reqContent)\n }\n xhr.onreadystatechange = function () {\n if (this.readyState == 4) {\n let res = JSON.parse(this.responseText)\n let err = null\n if (!String(this.status).startsWith('2')) {\n console.error('HTTP error ' + this.status)\n err = this.status\n }\n if (err) reject(err)\n else resolve(res)\n if (callback) callback(res, err)\n }\n }\n // resolve(5);\n })\n}\nwindow.xhr = xhr\n\nvar YTapiKey = 'AIzaSyBnQnpboWUfWyR8aW6HuQV5MAlxZ5FQ090';\n\n(function Video () {\n var maxResults = 6\n\n var url = 'https://www.googleapis.com/youtube/v3/playlistItems' +\n '?key=' + YTapiKey +\n '&part=snippet' +\n '&maxResults=' + maxResults +\n '&playlistId='\n var myWork = xhr(null, url + 'PL84-DNDSU8p5WP6jA7hvOCV9dIKBNjdCS', { type: 'GET' })\n myWork.then((result) => {\n console.log('==--==--==--> YouTube Video')\n console.log(result)\n var items = result.items\n for (var i = 0; i < items.length; i++) {\n var url = items[i].snippet.resourceId.videoId\n // var img = items[i].snippet.thumbnails.high.url\n var img = items[i].snippet.thumbnails.standard.url\n // var img = items[i].snippet.thumbnails.maxres.url\n var item = document.querySelector('section.video .thumbnails a.item:nth-child(' + (i + 1) + ')')\n item.setAttribute('href', 'https://www.youtube.com/watch?v=' + url)\n item.querySelector('img').setAttribute('src', img)\n item.title = items[i].snippet.title // hover title\n }\n document.querySelector('section.video').classList.remove('hidden')\n }, (err) => {\n document.querySelector('section.video').classList.add('removed')\n console.log('Could not fetch Video YouTube playlistItems')\n throw Error(err)\n })\n})();\n\n(function Synctan () {\n var maxResults = 6\n\n var url = 'https://www.googleapis.com/youtube/v3/playlistItems' +\n '?key=' + YTapiKey +\n '&part=snippet' +\n '&maxResults=' + maxResults +\n '&playlistId=UUoMimPRPeR28TM3_0cinjVQ'\n xhr(null, url, { type: 'GET' }).then((result) => {\n console.log('==--==--==-->YouTube Synctan')\n console.log(result)\n var items = result.items\n for (var i = 0; i < items.length; i++) {\n var url = items[i].snippet.resourceId.videoId\n var img = items[i].snippet.thumbnails.high.url\n var item = document.querySelector('section.synctan .thumbnails .item:nth-child(' + (i + 1) + ')')\n item.setAttribute('href', 'https://www.youtube.com/watch?v=' + url)\n item.querySelector('img').setAttribute('src', img)\n item.title = items[i].snippet.title // hover title\n }\n document.querySelector('section.synctan').classList.remove('hidden')\n }, (err) => {\n document.querySelector('section.synctan').classList.add('removed')\n console.log('Could not fetch Synctan YouTube playlistItems')\n throw Error(err)\n })\n})();\n\n(function Lacuna () {\n var maxResults = 8\n\n // Lacuna\n var clientID = '6ibYZTmF5qnpvp88S9V3werVrC18WCdC'\n var url = 'https://api.soundcloud.com/users/247370320/tracks' +\n '?limit=' + maxResults +\n '&client_id=' + clientID\n xhr(null, url, { type: 'GET' }).then((tracks) => {\n console.log('==--==--==--> SoundCloud Lacuna')\n console.log(tracks)\n for (var i = 0; i < 6; i++) {\n var url = tracks[i].permalink_url\n var img = tracks[i].artwork_url.replace('large', 't500x500')\n var item = document.querySelector('section.lacuna .thumbnails .item:nth-child(' + (i + 1) + ')')\n item.setAttribute('href', url)\n item.querySelector('img').setAttribute('src', img)\n item.title = tracks[i].title // hover title\n }\n document.querySelector('section.lacuna').classList.remove('hidden')\n }, (err) => {\n document.querySelector('section.lacuna').classList.add('removed')\n console.log('Could not fetch SoundCloud tracks')\n throw Error(err)\n })\n})();\n\n(function GitHub () {\n // this is so babel won't combine the two string into one, and\n // make GitHub revoke the token when it detects it in the commit\n let token = '510127accaf075e7a33b'\n if (true) token += '04e4569c7e2f78c83539'\n fetch('https://api.github.com/graphql', {\n body: JSON.stringify({\n query: `\n query {\n user(login:\"SpectralKH\") {\n pinnedRepositories(first:6) {\n edges {\n node {\n description\n homepageUrl\n url\n name\n }\n }\n }\n }\n }\n `\n }),\n headers: {\n Authorization: 'bearer ' + token,\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n method: 'POST'\n })\n .then((response) => {\n if (response.ok) return response\n else throw Error(response)\n })\n .then((response) => {\n response.json().then((result) => {\n console.log('==--==--==--> GitHub')\n console.log(result.data)\n const repos = result.data.user.pinnedRepositories.edges\n for (var i = 0; i < repos.length; i++) {\n const repo = repos[i].node\n const description = repo.description\n const repoWebsite = repo.homepageUrl\n const name = repo.name\n const repoUrl = repo.url\n // const img = tracks[i].artwork_url.replace('large', 't300x300')\n const item = document.querySelector('section.github .cards .item:nth-child(' + (i + 1) + ')')\n // item.setAttribute('href', url)\n item.classList.remove('hidden')\n item.querySelector('p.title').innerHTML = name\n item.querySelector('p.description').innerHTML = description\n if (repoUrl) {\n item.querySelector('a.repo-url').setAttribute('href', repoUrl)\n item.querySelector('a.repo-url').classList.remove('hidden')\n }\n if (repoWebsite) {\n item.querySelector('a.repo-website').setAttribute('href', repoWebsite)\n item.querySelector('a.repo-website').classList.remove('hidden')\n }\n }\n document.querySelector('section.github').classList.remove('hidden')\n })\n })\n .catch((err) => {\n document.querySelector('section.github').classList.add('removed')\n throw err\n })\n})()\n\n// discord/email popups\ndocument.addEventListener('click', function (e) {\n function hideAllPopups () {\n var popups = document.querySelectorAll('a.has-popup .popup')\n for (var i = 0; i < popups.length; i++) {\n popups[i].classList.add('hidden')\n }\n }\n var hasClassHasPopup = e.target.classList.contains('has-popup')\n var hasClassPopup = e.target.classList.contains('popup')\n if (hasClassHasPopup || hasClassPopup) {\n let socialMediaButton = e.target\n if (hasClassPopup) socialMediaButton = e.target.parentElement\n var popup = e.target.querySelector('.popup')\n if (e.target.classList.contains('popup')) popup = e.target\n var clickedpopup = e.target.classList.contains('popup')\n var popupIsHidden = popup.classList.contains('hidden')\n if (popupIsHidden) {\n hideAllPopups()\n\n // select\n const range = document.createRange()\n range.selectNodeContents(socialMediaButton.querySelector('.popup'))\n const selection = window.getSelection()\n selection.removeAllRanges()\n selection.addRange(range)\n \n popup.classList.remove('hidden')\n } else if (!clickedpopup) {\n popup.classList.add('hidden')\n }\n } else {\n // clicked anywhere\n hideAllPopups()\n }\n})\n"]}
docs/mstile-150x150.png

This is a binary file and will not be displayed.

+20
docs/safari-pinned-tab.svg
··· 1 + <?xml version="1.0" standalone="no"?> 2 + <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" 3 + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> 4 + <svg version="1.0" xmlns="http://www.w3.org/2000/svg" 5 + width="1000.000000pt" height="1000.000000pt" viewBox="0 0 1000.000000 1000.000000" 6 + preserveAspectRatio="xMidYMid meet"> 7 + <metadata> 8 + Created by potrace 1.11, written by Peter Selinger 2001-2013 9 + </metadata> 10 + <g transform="translate(0.000000,1000.000000) scale(0.100000,-0.100000)" 11 + fill="#000000" stroke="none"> 12 + <path d="M600 7713 l0 -1688 1685 1685 c927 927 1685 1686 1685 1687 0 2 -758 13 + 3 -1685 3 l-1685 0 0 -1687z"/> 14 + <path d="M2712 7287 l-2112 -2112 0 -2288 0 -2287 2288 0 2287 0 2114 2114 15 + 2114 2114 -6 1419 c-4 780 -7 1808 -7 2286 l0 867 -2283 0 -2282 0 -2113 16 + -2113z"/> 17 + <path d="M7710 2285 l-1685 -1685 1688 0 1687 0 0 1685 c0 927 -1 1685 -3 18 + 1685 -1 0 -760 -758 -1687 -1685z"/> 19 + </g> 20 + </svg>
+19
docs/site.webmanifest
··· 1 + { 2 + "name": "Kasper", 3 + "short_name": "Kasper", 4 + "icons": [ 5 + { 6 + "src": "/android-chrome-192x192.png?v=QEJrjJyAKR", 7 + "sizes": "192x192", 8 + "type": "image/png" 9 + }, 10 + { 11 + "src": "/android-chrome-512x512.png?v=QEJrjJyAKR", 12 + "sizes": "512x512", 13 + "type": "image/png" 14 + } 15 + ], 16 + "theme_color": "#ffffff", 17 + "background_color": "#ffffff", 18 + "display": "standalone" 19 + }