├── _sass ├── modules │ ├── _all.scss │ └── _utility.scss ├── partials │ ├── _latest-news.scss │ ├── _about.scss │ ├── _team.scss │ ├── _buttons.scss │ ├── _prizes.scss │ ├── _statistic.scss │ ├── _partners.scss │ ├── _hackathon-location.scss │ ├── _subscribe.scss │ ├── _location-map.scss │ ├── _top-section.scss │ ├── _judges.scss │ ├── _twitter-feed.scss │ ├── _rockstar-speakers.scss │ ├── _footer.scss │ ├── _about-hackathon.scss │ ├── _direction-details.scss │ ├── _blog.scss │ ├── _sprites.scss │ ├── _base.scss │ ├── _hero.scss │ ├── _venue.scss │ ├── _ribbon.scss │ └── _tickets-2.scss ├── vendor │ ├── bootstrap │ │ ├── mixins │ │ │ ├── _center-block.scss │ │ │ ├── _opacity.scss │ │ │ ├── _size.scss │ │ │ ├── _text-overflow.scss │ │ │ ├── _tab-focus.scss │ │ │ ├── _resize.scss │ │ │ ├── _labels.scss │ │ │ ├── _text-emphasis.scss │ │ │ ├── _progress-bar.scss │ │ │ ├── _background-variant.scss │ │ │ ├── _reset-filter.scss │ │ │ ├── _nav-divider.scss │ │ │ ├── _alerts.scss │ │ │ ├── _nav-vertical-align.scss │ │ │ ├── _pagination.scss │ │ │ ├── _border-radius.scss │ │ │ ├── _responsive-visibility.scss │ │ │ ├── _panels.scss │ │ │ ├── _hide-text.scss │ │ │ ├── _clearfix.scss │ │ │ ├── _list-group.scss │ │ │ ├── _table-row.scss │ │ │ ├── _buttons.scss │ │ │ └── _image.scss │ │ ├── _wells.scss │ │ ├── _breadcrumbs.scss │ │ ├── _responsive-embed.scss │ │ ├── _close.scss │ │ ├── _component-animations.scss │ │ ├── _utilities.scss │ │ ├── _media.scss │ │ ├── _thumbnails.scss │ │ ├── _pager.scss │ │ ├── _mixins.scss │ │ ├── _jumbotron.scss │ │ ├── _labels.scss │ │ ├── _badges.scss │ │ ├── _code.scss │ │ ├── _grid.scss │ │ ├── _alerts.scss │ │ └── _progress-bars.scss │ ├── animations │ │ ├── fade-enter │ │ │ ├── _fadeIn.scss │ │ │ ├── _fadeInUp.scss │ │ │ ├── _fadeInDown.scss │ │ │ ├── _fadeInRight.scss │ │ │ ├── _fadeInLeft.scss │ │ │ ├── _fadeInUpBig.scss │ │ │ ├── _fadeInDownBig.scss │ │ │ ├── _fadeInRightBig.scss │ │ │ └── _fadeInLeftBig.scss │ │ ├── fade-exit │ │ │ ├── _fadeOut.scss │ │ │ ├── _fadeOutUp.scss │ │ │ ├── _fadeOutDown.scss │ │ │ ├── _fadeOutLeft.scss │ │ │ ├── _fadeOutRight.scss │ │ │ ├── _fadeOutUpBig.scss │ │ │ ├── _fadeOutDownBig.scss │ │ │ ├── _fadeOutLeftBig.scss │ │ │ └── _fadeOutRightBig.scss │ │ ├── attention-seekers │ │ │ ├── _flash.scss │ │ │ ├── _pulse.scss │ │ │ ├── _bounce.scss │ │ │ ├── _shake.scss │ │ │ ├── _swing.scss │ │ │ ├── _tada.scss │ │ │ └── _wobble.scss │ │ ├── special │ │ │ ├── _rollIn.scss │ │ │ └── _rollOut.scss │ │ ├── lightspeed │ │ │ ├── _lightSpeedOut.scss │ │ │ └── _lightSpeedIn.scss │ │ ├── flippers │ │ │ ├── _flipOutY.scss │ │ │ ├── _flipOutX.scss │ │ │ └── _flipInY.scss │ │ ├── rotate-exit │ │ │ ├── _rotateOutUpRight.scss │ │ │ ├── _rotateOut.scss │ │ │ ├── _rotateOutDownLeft.scss │ │ │ ├── _rotateOutUpLeft.scss │ │ │ └── _rotateOutDownRight.scss │ │ ├── rotate-enter │ │ │ ├── _rotateIn.scss │ │ │ ├── _rotateInUpLeft.scss │ │ │ ├── _rotateInDownLeft.scss │ │ │ ├── _rotateInUpRight.scss │ │ │ └── _rotateInDownRight.scss │ │ ├── bounce-exit │ │ │ ├── _bounceOutUp.scss │ │ │ ├── _bounceOutDown.scss │ │ │ ├── _bounceOutLeft.scss │ │ │ ├── _bounceOutRight.scss │ │ │ └── _bounceOut.scss │ │ └── bounce-enter │ │ │ ├── _bounceIn.scss │ │ │ ├── _bounceInRight.scss │ │ │ ├── _bounceInUp.scss │ │ │ ├── _bounceInDown.scss │ │ │ └── _bounceInLeft.scss │ └── _bootstrap-custom.scss ├── remove-all-comments-monkey-patch.rb ├── config.rb └── main.scss ├── img ├── posts │ └── cod.jpg ├── sprites │ ├── logos.png │ ├── sprites.png │ └── desktop.ini ├── venue │ ├── venue_0.jpg │ ├── venue_1.jpg │ ├── venue_2.jpg │ ├── venue_3.jpg │ └── venue_4.jpg ├── favicons │ ├── favicon.ico │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon-96x96.png │ ├── mstile-70x70.png │ ├── favicon-160x160.png │ ├── favicon-196x196.png │ ├── mstile-144x144.png │ ├── mstile-150x150.png │ ├── mstile-310x150.png │ ├── mstile-310x310.png │ ├── apple-touch-icon.png │ ├── apple-touch-icon-57x57.png │ ├── apple-touch-icon-60x60.png │ ├── apple-touch-icon-72x72.png │ ├── apple-touch-icon-76x76.png │ ├── apple-touch-icon-114x114.png │ ├── apple-touch-icon-120x120.png │ ├── apple-touch-icon-144x144.png │ ├── apple-touch-icon-152x152.png │ ├── apple-touch-icon-precomposed.png │ ├── desktop.ini │ └── browserconfig.xml ├── hackathon │ ├── prize-1.png │ ├── prize-2.png │ ├── prize-3.png │ ├── hackathon-0.png │ ├── hackathon-1.png │ └── hackathon-2.png ├── other │ ├── map-marker.png │ └── map-marker.svg ├── people │ ├── RomanMazur.jpg │ ├── OlehZasadnyy.jpg │ ├── RicardoMiron.jpg │ ├── RodolfoFerro.jpg │ ├── DawidOstrowski.jpg │ ├── DmytroDanylyk.jpg │ ├── MateuszHerych.jpg │ ├── OstapAndrusiv.jpg │ ├── VitaliyZasadnyy.jpg │ └── ValentynShybanov.jpg ├── seo │ ├── organizer-logo.png │ ├── sharing-twitter.png │ ├── sharing-facebook.png │ └── sharing-google-plus.png ├── about-section │ ├── workshop.jpg │ ├── conference.jpg │ └── hackathon.jpg ├── sections-background │ ├── blog.jpg │ ├── hero.jpg │ ├── judges.jpg │ ├── schedule.jpg │ ├── statistic.jpg │ ├── subscribe.jpg │ ├── guanajuato.png │ ├── twitter-feed.jpg │ ├── direction-details.jpg │ ├── guanajuato_purple.png │ └── rockstar-speakers.jpg └── partners │ └── google.svg ├── automation ├── images │ ├── gifsicle.exe │ ├── jpegtran.exe │ ├── optipng.exe │ ├── pngout.exe │ ├── pngquant.exe │ ├── svgo.bat │ ├── pngout.bat │ ├── gifsicle.bat │ ├── optipng.bat │ ├── pngquant.bat │ ├── jpegtran.bat │ └── all_image_optimization.bat └── minifying │ ├── yuicompressor-2.4.8.jar │ ├── minify_scripts_js.sh │ ├── minify_scripts_js.bat │ ├── minify_js.bat │ └── minify_js.sh ├── assets └── GDG_DevFest_Partnership.pdf ├── fonts ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.ttf ├── glyphicons-halflings-regular.woff └── desktop.ini ├── Gemfile ├── blog.html ├── team.html ├── .gitignore ├── schedule.html ├── logistics.html ├── speakers.html ├── hackathon.html ├── _includes ├── analytics.html ├── top-section.html ├── latest-news.html ├── rockstar-speakers.html ├── disqus-comments.html ├── twitter-feed.html ├── prizes.html ├── about-hackathon.html ├── about.html ├── statistic.html ├── hero.html ├── hackathon-location.html ├── judges.html ├── location-map.html ├── partners.html ├── footer.html ├── tickets.html ├── navigation.html ├── tickets-2.html └── subscribe.html ├── index.html ├── _data ├── organizers.yml ├── judges.yml ├── partners.yml └── team.yml ├── _plugins └── generator_scss.rb ├── js └── sources │ ├── jquery.countTo.min.js │ └── jquery.appear.min.js ├── feed.xml ├── _layouts ├── compress.html └── post.html ├── LICENSE.txt ├── cod.md └── _posts ├── 2014-07-21-call-for-papers.markdown └── 2014-07-21-hello-world.markdown /_sass/modules/_all.scss: -------------------------------------------------------------------------------- 1 | @import "utility"; 2 | @import "web-fonts"; -------------------------------------------------------------------------------- /img/posts/cod.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/posts/cod.jpg -------------------------------------------------------------------------------- /img/sprites/logos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/sprites/logos.png -------------------------------------------------------------------------------- /img/venue/venue_0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/venue/venue_0.jpg -------------------------------------------------------------------------------- /img/venue/venue_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/venue/venue_1.jpg -------------------------------------------------------------------------------- /img/venue/venue_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/venue/venue_2.jpg -------------------------------------------------------------------------------- /img/venue/venue_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/venue/venue_3.jpg -------------------------------------------------------------------------------- /img/venue/venue_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/venue/venue_4.jpg -------------------------------------------------------------------------------- /img/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/favicon.ico -------------------------------------------------------------------------------- /img/hackathon/prize-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/hackathon/prize-1.png -------------------------------------------------------------------------------- /img/hackathon/prize-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/hackathon/prize-2.png -------------------------------------------------------------------------------- /img/hackathon/prize-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/hackathon/prize-3.png -------------------------------------------------------------------------------- /img/other/map-marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/other/map-marker.png -------------------------------------------------------------------------------- /img/people/RomanMazur.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/people/RomanMazur.jpg -------------------------------------------------------------------------------- /img/sprites/sprites.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/sprites/sprites.png -------------------------------------------------------------------------------- /img/people/OlehZasadnyy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/people/OlehZasadnyy.jpg -------------------------------------------------------------------------------- /img/people/RicardoMiron.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/people/RicardoMiron.jpg -------------------------------------------------------------------------------- /img/people/RodolfoFerro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/people/RodolfoFerro.jpg -------------------------------------------------------------------------------- /img/seo/organizer-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/seo/organizer-logo.png -------------------------------------------------------------------------------- /img/seo/sharing-twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/seo/sharing-twitter.png -------------------------------------------------------------------------------- /_sass/partials/_latest-news.scss: -------------------------------------------------------------------------------- 1 | .latest-news { 2 | .post { 3 | margin-bottom: 40px; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /automation/images/gifsicle.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/automation/images/gifsicle.exe -------------------------------------------------------------------------------- /automation/images/jpegtran.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/automation/images/jpegtran.exe -------------------------------------------------------------------------------- /automation/images/optipng.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/automation/images/optipng.exe -------------------------------------------------------------------------------- /automation/images/pngout.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/automation/images/pngout.exe -------------------------------------------------------------------------------- /automation/images/pngquant.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/automation/images/pngquant.exe -------------------------------------------------------------------------------- /img/about-section/workshop.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/about-section/workshop.jpg -------------------------------------------------------------------------------- /img/favicons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/favicon-16x16.png -------------------------------------------------------------------------------- /img/favicons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/favicon-32x32.png -------------------------------------------------------------------------------- /img/favicons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/favicon-96x96.png -------------------------------------------------------------------------------- /img/favicons/mstile-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/mstile-70x70.png -------------------------------------------------------------------------------- /img/hackathon/hackathon-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/hackathon/hackathon-0.png -------------------------------------------------------------------------------- /img/hackathon/hackathon-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/hackathon/hackathon-1.png -------------------------------------------------------------------------------- /img/hackathon/hackathon-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/hackathon/hackathon-2.png -------------------------------------------------------------------------------- /img/people/DawidOstrowski.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/people/DawidOstrowski.jpg -------------------------------------------------------------------------------- /img/people/DmytroDanylyk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/people/DmytroDanylyk.jpg -------------------------------------------------------------------------------- /img/people/MateuszHerych.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/people/MateuszHerych.jpg -------------------------------------------------------------------------------- /img/people/OstapAndrusiv.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/people/OstapAndrusiv.jpg -------------------------------------------------------------------------------- /img/people/VitaliyZasadnyy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/people/VitaliyZasadnyy.jpg -------------------------------------------------------------------------------- /img/seo/sharing-facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/seo/sharing-facebook.png -------------------------------------------------------------------------------- /img/about-section/conference.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/about-section/conference.jpg -------------------------------------------------------------------------------- /img/about-section/hackathon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/about-section/hackathon.jpg -------------------------------------------------------------------------------- /img/favicons/favicon-160x160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/favicon-160x160.png -------------------------------------------------------------------------------- /img/favicons/favicon-196x196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/favicon-196x196.png -------------------------------------------------------------------------------- /img/favicons/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/mstile-144x144.png -------------------------------------------------------------------------------- /img/favicons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/mstile-150x150.png -------------------------------------------------------------------------------- /img/favicons/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/mstile-310x150.png -------------------------------------------------------------------------------- /img/favicons/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/mstile-310x310.png -------------------------------------------------------------------------------- /img/people/ValentynShybanov.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/people/ValentynShybanov.jpg -------------------------------------------------------------------------------- /img/sections-background/blog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/sections-background/blog.jpg -------------------------------------------------------------------------------- /img/sections-background/hero.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/sections-background/hero.jpg -------------------------------------------------------------------------------- /img/seo/sharing-google-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/seo/sharing-google-plus.png -------------------------------------------------------------------------------- /assets/GDG_DevFest_Partnership.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/assets/GDG_DevFest_Partnership.pdf -------------------------------------------------------------------------------- /img/favicons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/apple-touch-icon.png -------------------------------------------------------------------------------- /img/sections-background/judges.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/sections-background/judges.jpg -------------------------------------------------------------------------------- /img/sections-background/schedule.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/sections-background/schedule.jpg -------------------------------------------------------------------------------- /img/sections-background/statistic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/sections-background/statistic.jpg -------------------------------------------------------------------------------- /img/sections-background/subscribe.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/sections-background/subscribe.jpg -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /img/favicons/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /img/favicons/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /img/favicons/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /img/favicons/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /img/sections-background/guanajuato.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/sections-background/guanajuato.png -------------------------------------------------------------------------------- /img/sections-background/twitter-feed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/sections-background/twitter-feed.jpg -------------------------------------------------------------------------------- /img/favicons/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /img/favicons/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /img/favicons/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /img/favicons/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /automation/minifying/yuicompressor-2.4.8.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/automation/minifying/yuicompressor-2.4.8.jar -------------------------------------------------------------------------------- /img/favicons/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/favicons/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /img/sections-background/direction-details.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/sections-background/direction-details.jpg -------------------------------------------------------------------------------- /img/sections-background/guanajuato_purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/sections-background/guanajuato_purple.png -------------------------------------------------------------------------------- /img/sections-background/rockstar-speakers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/futurelabmx/zeppelin/master/img/sections-background/rockstar-speakers.jpg -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "http://rubygems.org" 2 | 3 | gem 'github-pages' 4 | gem 'compass' 5 | gem 'sass-media_query_combiner' 6 | gem 'autoprefixer-rails' 7 | -------------------------------------------------------------------------------- /_sass/partials/_about.scss: -------------------------------------------------------------------------------- 1 | .about-details { 2 | img { 3 | width: 128px; 4 | } 5 | p { 6 | margin-top: 10px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /fonts/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=Ця папка є спільною в режимі онлайн. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /img/favicons/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /blog.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Blog 4 | permalink: /blog/ 5 | image: blog.jpg 6 | --- 7 | 8 | {% include top-section.html %} 9 | 10 | {% include blog.html %} -------------------------------------------------------------------------------- /_sass/partials/_team.scss: -------------------------------------------------------------------------------- 1 | .team { 2 | h3 { 3 | margin-bottom: 26px; 4 | } 5 | h4 { 6 | margin: 50px 0 20px; 7 | text-align: center; 8 | } 9 | } 10 | 11 | 12 | -------------------------------------------------------------------------------- /img/sprites/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=Ця папка є спільною в режимі онлайн. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=12 5 | -------------------------------------------------------------------------------- /automation/minifying/minify_scripts_js.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Optimizing scripts.js to scripts.min.js" 4 | java -jar yuicompressor-2.4.8.jar ../../js/scripts.js -o ../../js/scripts.min.js -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_center-block.scss: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | @mixin center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /team.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Team 4 | permalink: /team/ 5 | color: "#00bcd4" 6 | modal: team 7 | --- 8 | 9 | {% include top-section.html %} 10 | 11 | {% include team.html %} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### General ### 2 | *.lock 3 | 4 | ### Jekyll ### 5 | _site/ 6 | 7 | ### Sass ### 8 | .sass-cache 9 | 10 | ### Windows ### 11 | # Windows image file caches 12 | Thumbs.db 13 | ehthumbs.db -------------------------------------------------------------------------------- /schedule.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Programa de Eventos 4 | permalink: /programa/ 5 | image: schedule.jpg 6 | --- 7 | 8 | {% include top-section.html %} 9 | 10 | {% include schedule.html %} 11 | -------------------------------------------------------------------------------- /_sass/remove-all-comments-monkey-patch.rb: -------------------------------------------------------------------------------- 1 | class Sass::Tree::Visitors::Perform < Sass::Tree::Visitors::Base 2 | 3 | # Removes all comments completely 4 | def visit_comment(node) 5 | return [] 6 | end 7 | 8 | end -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_opacity.scss: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | @mixin opacity($opacity) { 4 | opacity: $opacity; 5 | // IE8 filter 6 | $opacity-ie: ($opacity * 100); 7 | filter: alpha(opacity=$opacity-ie); 8 | } 9 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_size.scss: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | @mixin size($width, $height) { 4 | width: $width; 5 | height: $height; 6 | } 7 | 8 | @mixin square($size) { 9 | @include size($size, $size); 10 | } 11 | -------------------------------------------------------------------------------- /automation/images/svgo.bat: -------------------------------------------------------------------------------- 1 | @echo on 2 | if "%~1"=="" (set "SOURCE=..\..\img") else (set "SOURCE=%~1") 3 | 4 | echo Optimizing SVG with svgo 5 | forfiles /p %SOURCE% /s /m "*.svg" /c "cmd /c echo processing @path && svgo @path" 6 | 7 | pause -------------------------------------------------------------------------------- /logistics.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Get ready to DevFest 4 | permalink: /logistics/ 5 | --- 6 | 7 | {% include top-section.html %} 8 | 9 | {% include find-way.html %} 10 | 11 | {% include direction-details.html %} -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_text-overflow.scss: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | @mixin text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_tab-focus.scss: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | @mixin tab-focus() { 4 | // Default 5 | outline: thin dotted; 6 | // WebKit 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_resize.scss: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | @mixin resizable($direction) { 4 | resize: $direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_labels.scss: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | @mixin label-variant($color) { 4 | background-color: $color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken($color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-enter/_fadeIn.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeIn == true { 2 | 3 | @include animate-keyframe(fadeIn) { 4 | 0% {opacity: 0;} 5 | 100% {opacity: 1;} 6 | } 7 | 8 | .fadeIn { 9 | @include animate-prefixer(animation-name, fadeIn); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-exit/_fadeOut.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeOut == true { 2 | 3 | @include animate-keyframe(fadeOut) { 4 | 0% {opacity: 1;} 5 | 100% {opacity: 0;} 6 | } 7 | 8 | .fadeOut { 9 | @include animate-prefixer(animation-name, fadeOut); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_text-emphasis.scss: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | // [converter] $parent hack 4 | @mixin text-emphasis-variant($parent, $color) { 5 | #{$parent} { 6 | color: $color; 7 | } 8 | a#{$parent}:hover { 9 | color: darken($color, 10%); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /_sass/vendor/animations/attention-seekers/_flash.scss: -------------------------------------------------------------------------------- 1 | @if $use-flash == true { 2 | 3 | @include animate-keyframe(flash) { 4 | 0%, 50%, 100% {opacity: 1;} 5 | 25%, 75% {opacity: 0;} 6 | } 7 | 8 | .flash { 9 | @include animate-prefixer(animation-name, flash); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_progress-bar.scss: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | @mixin progress-bar-variant($color) { 4 | background-color: $color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | @include gradient-striped; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /automation/minifying/minify_scripts_js.bat: -------------------------------------------------------------------------------- 1 | @echo on 2 | set LOCAL_DIR=%~dp0 3 | set LOCAL_DIR=%LOCAL_DIR:~0,-1% 4 | set "SOURCE=..\..\js" 5 | 6 | echo Optimizing scripts.js to scripts.min.js 7 | cd %SOURCE% 8 | java -jar %LOCAL_DIR%\yuicompressor-2.4.8.jar scripts.js -o scripts.min.js 9 | 10 | pause -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_background-variant.scss: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | // [converter] $parent hack 4 | @mixin bg-variant($parent, $color) { 5 | #{$parent} { 6 | background-color: $color; 7 | } 8 | a#{$parent}:hover { 9 | background-color: darken($color, 10%); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /speakers.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Speakers 4 | permalink: /speakers/ 5 | modal: all 6 | --- 7 | 8 | {% include top-section.html %} 9 | 10 | {% if site.showSessions %} 11 | {% include speakers-list.html %} 12 | {% else %} 13 | {% include speakers-list-2.html %} 14 | {% endif %} 15 | 16 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_reset-filter.scss: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | @mixin reset-filter() { 7 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 8 | } 9 | -------------------------------------------------------------------------------- /automation/images/pngout.bat: -------------------------------------------------------------------------------- 1 | @echo on 2 | set LOCAL_DIR=%~dp0 3 | set LOCAL_DIR=%LOCAL_DIR:~0,-1% 4 | if "%~1"=="" (set "SOURCE=..\..\img") else (set "SOURCE=%~1") 5 | 6 | echo Optimizing PNG with pngout 7 | forfiles /p %SOURCE% /s /m "*.png" /c "cmd /c echo processing @path && %LOCAL_DIR%\pngout.exe @path" 8 | 9 | pause -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_nav-divider.scss: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | @mixin nav-divider($color: #e5e5e5) { 6 | height: 1px; 7 | margin: (($line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: $color; 10 | } 11 | -------------------------------------------------------------------------------- /automation/images/gifsicle.bat: -------------------------------------------------------------------------------- 1 | @echo on 2 | set LOCAL_DIR=%~dp0 3 | set LOCAL_DIR=%LOCAL_DIR:~0,-1% 4 | if "%~1"=="" (set "SOURCE=..\..\img") else (set "SOURCE=%~1") 5 | 6 | echo Optimizing GIF with gifsicle 7 | forfiles /p %SOURCE% /s /m "*.gif" /c "cmd /c echo processing @path && %LOCAL_DIR%\gifsicle.exe -b -O3 @path" 8 | 9 | pause -------------------------------------------------------------------------------- /automation/images/optipng.bat: -------------------------------------------------------------------------------- 1 | @echo on 2 | set LOCAL_DIR=%~dp0 3 | set LOCAL_DIR=%LOCAL_DIR:~0,-1% 4 | if "%~1"=="" (set "SOURCE=..\..\img") else (set "SOURCE=%~1") 5 | 6 | echo Optimizing PNG with optipng 7 | forfiles /p %SOURCE% /s /m "*.png" /c "cmd /c echo processing @path && %LOCAL_DIR%\optipng.exe -force -o7 @path" 8 | 9 | pause -------------------------------------------------------------------------------- /hackathon.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Hackathon 4 | permalink: /hackathon/ 5 | --- 6 | 7 | {% include top-section.html %} 8 | 9 | {% include about-hackathon.html %} 10 | 11 | {% include judges.html %} 12 | 13 | {% include prizes.html %} 14 | 15 | {% include hackathon-location.html %} 16 | 17 | {% include partners.html %} -------------------------------------------------------------------------------- /automation/images/pngquant.bat: -------------------------------------------------------------------------------- 1 | @echo on 2 | set LOCAL_DIR=%~dp0 3 | set LOCAL_DIR=%LOCAL_DIR:~0,-1% 4 | if "%~1"=="" (set "SOURCE=..\..\img") else (set "SOURCE=%~1") 5 | 6 | echo Optimizing PNG with pngquant 7 | forfiles /p %SOURCE% /s /m "*.png" /c "cmd /c echo processing @path && %LOCAL_DIR%\pngquant.exe --skip-if-larger --force --ext .png @path" 8 | 9 | pause -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_alerts.scss: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | @mixin alert-variant($background, $border, $text-color) { 4 | background-color: $background; 5 | border-color: $border; 6 | color: $text-color; 7 | 8 | hr { 9 | border-top-color: darken($border, 5%); 10 | } 11 | .alert-link { 12 | color: darken($text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /automation/minifying/minify_js.bat: -------------------------------------------------------------------------------- 1 | @echo on 2 | set LOCAL_DIR=%~dp0 3 | set LOCAL_DIR=%LOCAL_DIR:~0,-1% 4 | if "%~1"=="" (set "SOURCE=..\..\js") else (set "SOURCE=%~1") 5 | 6 | echo Optimizing js with yuicompressor 7 | forfiles /p %SOURCE% /s /m "*.js" /c "cmd /c echo processing @path && java -jar %LOCAL_DIR%\yuicompressor-2.4.8.jar @path -o @fname.min.js" 8 | 9 | pause -------------------------------------------------------------------------------- /automation/images/jpegtran.bat: -------------------------------------------------------------------------------- 1 | @echo on 2 | set LOCAL_DIR=%~dp0 3 | set LOCAL_DIR=%LOCAL_DIR:~0,-1% 4 | if "%~1"=="" (set "SOURCE=..\..\img") else (set "SOURCE=%~1") 5 | 6 | echo Optimizing JPEG with jpegtran 7 | forfiles /p %SOURCE% /s /m "*.jpg" /c "cmd /c echo processing @path && %LOCAL_DIR%\jpegtran.exe -optimize -progressive -copy none -outfile @path @path" 8 | 9 | pause -------------------------------------------------------------------------------- /automation/minifying/minify_js.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "$#" -ne 1 ]; then 4 | FILES="../../js"; 5 | else 6 | FILES=$1; 7 | fi 8 | 9 | 10 | for f in $FILES/*.js; 11 | do 12 | if [[ $f != *".min"* ]]; then 13 | echo "Processing $f ..." 14 | echo "java -jar yuicompressor-2.4.8.jar $f -o ${f%.js}.min.js" 15 | java -jar yuicompressor-2.4.8.jar $f -o ${f%.js}.min.js 16 | fi 17 | done -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_nav-vertical-align.scss: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | @mixin navbar-vertical-align($element-height) { 7 | margin-top: (($navbar-height - $element-height) / 2); 8 | margin-bottom: (($navbar-height - $element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /_sass/partials/_buttons.scss: -------------------------------------------------------------------------------- 1 | .btn { 2 | font-weight: $bold; 3 | transition: $base-cubic-transition; 4 | } 5 | .btn-primary { 6 | color: #fff !important; 7 | user-select: none; 8 | text-transform: uppercase; 9 | border: 0; 10 | background: $primary-color !important; 11 | &:hover, &:focus, &:active, &.active { 12 | outline: none; 13 | color: #fff; 14 | background: $primary-color-hover; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /_sass/partials/_prizes.scss: -------------------------------------------------------------------------------- 1 | $prize-img-width: 250px; 2 | $small-prize-img-width: 110px; 3 | 4 | .prizes { 5 | h3 { 6 | margin-bottom: 20px; 7 | } 8 | } 9 | .prize { 10 | margin-top: 50px; 11 | &:nth-child(3) { 12 | margin-top: 0; 13 | } 14 | } 15 | .prize-img-wrapper { 16 | img { 17 | max-width: $prize-img-width; 18 | margin: 0 auto; 19 | @media (max-width: 767px) { 20 | max-width: $small-prize-img-width; 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /img/favicons/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | #2b5797 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /_includes/analytics.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | permalink: / 4 | --- 5 | 6 | {% include hero.html %} 7 | 8 | {% include about.html %} 9 | 10 | {% include statistic.html %} 11 | 12 | {% include latest-news.html %} 13 | 14 | {% include rockstar-speakers.html %} 15 | 16 | {% include location-map.html %} 17 | 18 | {% include venue.html %} 19 | 20 | {% include twitter-feed.html %} 21 | 22 | {% include partners.html %} 23 | 24 | {% include subscribe.html %} 25 | 26 | {% include tickets.html %} 27 | 28 | {% include tickets-2.html %} -------------------------------------------------------------------------------- /_sass/partials/_statistic.scss: -------------------------------------------------------------------------------- 1 | .statistic { 2 | .counter { 3 | @media (max-width: 767px) { 4 | padding-top: 26px; 5 | } 6 | } 7 | .stat { 8 | font-size: 100px; 9 | color: $link-color; 10 | @media (min-width: 768px) and (max-width: 991px) { 11 | font-size: 80px; 12 | } 13 | @media (max-width: 767px) { 14 | font-size: 70px; 15 | } 16 | } 17 | .stat-info { 18 | font-size: 23px; 19 | } 20 | hr { 21 | width: 20px; 22 | border-top: 1px solid $link-color; 23 | } 24 | .small { 25 | font-size: 15px; 26 | } 27 | } -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_pagination.scss: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | @mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: $padding-vertical $padding-horizontal; 8 | font-size: $font-size; 9 | } 10 | &:first-child { 11 | > a, 12 | > span { 13 | @include border-left-radius($border-radius); 14 | } 15 | } 16 | &:last-child { 17 | > a, 18 | > span { 19 | @include border-right-radius($border-radius); 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_border-radius.scss: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | @mixin border-top-radius($radius) { 4 | border-top-right-radius: $radius; 5 | border-top-left-radius: $radius; 6 | } 7 | @mixin border-right-radius($radius) { 8 | border-bottom-right-radius: $radius; 9 | border-top-right-radius: $radius; 10 | } 11 | @mixin border-bottom-radius($radius) { 12 | border-bottom-right-radius: $radius; 13 | border-bottom-left-radius: $radius; 14 | } 15 | @mixin border-left-radius($radius) { 16 | border-bottom-left-radius: $radius; 17 | border-top-left-radius: $radius; 18 | } 19 | -------------------------------------------------------------------------------- /_sass/partials/_partners.scss: -------------------------------------------------------------------------------- 1 | .partners { 2 | h5 { 3 | margin-top: 30px; 4 | } 5 | .list-inline { 6 | margin-bottom: 65px; 7 | li { 8 | width: 16%; 9 | max-width: 180px; 10 | margin: 13px 7px; 11 | @media (max-width: 767px) { 12 | width: 40%; 13 | max-width: 160px; 14 | } 15 | } 16 | } 17 | img { 18 | width: 100%; 19 | transition: $base-transition; 20 | filter: grayscale(1); 21 | &:hover { 22 | filter: grayscale(0); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_responsive-visibility.scss: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | // [converter] $parent hack 6 | @mixin responsive-visibility($parent) { 7 | #{$parent} { 8 | display: block !important; 9 | } 10 | table#{$parent} { display: table; } 11 | tr#{$parent} { display: table-row !important; } 12 | th#{$parent}, 13 | td#{$parent} { display: table-cell !important; } 14 | } 15 | 16 | // [converter] $parent hack 17 | @mixin responsive-invisibility($parent) { 18 | #{$parent} { 19 | display: none !important; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_panels.scss: -------------------------------------------------------------------------------- 1 | // Panels 2 | 3 | @mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) { 4 | border-color: $border; 5 | 6 | & > .panel-heading { 7 | color: $heading-text-color; 8 | background-color: $heading-bg-color; 9 | border-color: $heading-border; 10 | 11 | + .panel-collapse > .panel-body { 12 | border-top-color: $border; 13 | } 14 | .badge { 15 | color: $heading-bg-color; 16 | background-color: $heading-text-color; 17 | } 18 | } 19 | & > .panel-footer { 20 | + .panel-collapse > .panel-body { 21 | border-bottom-color: $border; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_wells.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: $well-bg; 12 | border: 1px solid $well-border; 13 | border-radius: $border-radius-base; 14 | @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: $border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: $border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /img/other/map-marker.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_sass/partials/_hackathon-location.scss: -------------------------------------------------------------------------------- 1 | $hackathon-map-height: 450px; 2 | .hackathon-location { 3 | padding: 20px 50px; 4 | height: $hackathon-map-height; 5 | .canvas-map { 6 | height: $hackathon-map-height + 30px; 7 | } 8 | .location-description { 9 | font-size: 15px; 10 | padding: 18px 16px 22px; 11 | overflow: hidden; 12 | box-shadow: 1px 1px 2px rgba(0, 0, 0, .2); 13 | } 14 | .location-name { 15 | margin-top: 0; 16 | font-size: 18px; 17 | font-weight: $bold; 18 | } 19 | .location-address { 20 | margin: 0; 21 | } 22 | .hackathon-time { 23 | time { 24 | color: $main-color; 25 | } 26 | } 27 | .view-on-map { 28 | margin-top: 8px; 29 | display: block; 30 | } 31 | } -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_hide-text.scss: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | // 3 | // Heads up! v3 launched with with only `.hide-text()`, but per our pattern for 4 | // mixins being reused as classes with the same name, this doesn't hold up. As 5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 6 | // 7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 8 | 9 | // Deprecated as of v3.0.1 (will be removed in v4) 10 | @mixin hide-text() { 11 | font: 0/0 a; 12 | color: transparent; 13 | text-shadow: none; 14 | background-color: transparent; 15 | border: 0; 16 | } 17 | 18 | // New mixin to use as of v3.0.1 19 | @mixin text-hide() { 20 | @include hide-text; 21 | } 22 | -------------------------------------------------------------------------------- /_includes/top-section.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | {% include navigation.html %} 6 |
7 |
8 |
9 |

{{ page.title }}

10 |
11 |
12 |
13 |
14 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_breadcrumbs.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal; 8 | margin-bottom: $line-height-computed; 9 | list-style: none; 10 | background-color: $breadcrumb-bg; 11 | border-radius: $border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "#{$breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: $breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: $breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_clearfix.scss: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | @mixin clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /_data/organizers.yml: -------------------------------------------------------------------------------- 1 | - 2 | group: "Main organizer" 3 | elements: 4 | - {name: "GDG Lviv", description: "GDG Lviv - Open and volunteer geek community", link: "http://lviv.gdg.org.ua", imageUrl: "gdg-lviv.svg"} 5 | - 6 | group: "Co-organizers" 7 | elements: 8 | - {name: "GDG Lviv", description: "GDG Kyiv - Open and volunteer geek community", link: "http://kyiv.gdg.org.ua", imageUrl: "gdg-kyiv.svg"} 9 | - {name: "GDG Cherkassy", description: "GDG Cherkassy - Open and volunteer geek community", link: "http://cherkassy.gdg.org.ua", imageUrl: "gdg-cherkasy.svg"} 10 | - {name: "GDG Dnipropetrovsk", description: "GDG Dnipropetrovsk - Open and volunteer geek community", link: "http://dnipro.gdg.org.ua", imageUrl: "gdg-dnipropetrovsk.svg"} -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_responsive-embed.scss: -------------------------------------------------------------------------------- 1 | // Embeds responsive 2 | // 3 | // Credit: Nicolas Gallagher and SUIT CSS. 4 | 5 | .embed-responsive { 6 | position: relative; 7 | display: block; 8 | height: 0; 9 | padding: 0; 10 | overflow: hidden; 11 | 12 | .embed-responsive-item, 13 | iframe, 14 | embed, 15 | object, 16 | video { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | height: 100%; 22 | width: 100%; 23 | border: 0; 24 | } 25 | 26 | // Modifier class for 16:9 aspect ratio 27 | &.embed-responsive-16by9 { 28 | padding-bottom: 56.25%; 29 | } 30 | 31 | // Modifier class for 4:3 aspect ratio 32 | &.embed-responsive-4by3 { 33 | padding-bottom: 75%; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_list-group.scss: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | @mixin list-group-item-variant($state, $background, $color) { 4 | .list-group-item-#{$state} { 5 | color: $color; 6 | background-color: $background; 7 | 8 | // [converter] extracted a& to a.list-group-item-#{$state} 9 | } 10 | 11 | a.list-group-item-#{$state} { 12 | color: $color; 13 | 14 | .list-group-item-heading { 15 | color: inherit; 16 | } 17 | 18 | &:hover, 19 | &:focus { 20 | color: $color; 21 | background-color: darken($background, 5%); 22 | } 23 | &.active, 24 | &.active:hover, 25 | &.active:focus { 26 | color: #fff; 27 | background-color: $color; 28 | border-color: $color; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /_plugins/generator_scss.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Jekyll Generator for SCSS 3 | # 4 | # (File paths in this description relative to jekyll project root directory) 5 | # Place this file in ./_plugins 6 | # Place .scss files in ./_scss 7 | # Compiles .scss files in ./_scss to .css files in whatever directory you indicated in your config 8 | # Config file placed in ./_sass/config.rb 9 | # 10 | 11 | require 'sass' 12 | require 'pathname' 13 | require 'compass' 14 | require 'compass/exec' 15 | 16 | module Jekyll 17 | 18 | class CompassGenerator < Generator 19 | safe true 20 | 21 | def generate(site) 22 | Dir.chdir File.expand_path('../_sass', File.dirname(__FILE__)) do 23 | Compass::Exec::SubCommandUI.new(%w(compile)).run! 24 | end 25 | end 26 | 27 | end 28 | 29 | end -------------------------------------------------------------------------------- /_sass/config.rb: -------------------------------------------------------------------------------- 1 | require 'sass-media_query_combiner' 2 | require 'autoprefixer-rails' 3 | require "./remove-all-comments-monkey-patch" 4 | 5 | on_stylesheet_saved do |file| 6 | css = File.read(file) 7 | File.open(file, 'w') do |io| 8 | io << AutoprefixerRails.process(css, browsers: ["last 2 version", "> 1%"]) 9 | end 10 | end 11 | 12 | http_path = "/" 13 | sass_dir = "./" 14 | css_dir = "../css" 15 | images_dir = "../img" 16 | javascripts_dir = "../js" 17 | 18 | line_comments = false 19 | relative_assets = true 20 | output_style = :compressed 21 | 22 | # Remove multiline comments - monkey patch 23 | class Sass::Tree::Visitors::Perform < Sass::Tree::Visitors::Base 24 | # # Removes all comments completely 25 | def visit_comment(node) 26 | return [] 27 | end 28 | end -------------------------------------------------------------------------------- /_includes/latest-news.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |

{{ site.latestNewsTitle }}

6 |
7 | {% for post in site.posts limit:2 %} 8 | {% assign postUrl = site.baseurl | append: post.url %} 9 |
10 |
{{ post.title }}
11 |

{{ post.content | strip_html | truncate: 250 }} continue reading

12 |
13 | {% endfor %} 14 |
15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /_includes/rockstar-speakers.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 |

{{ site.rockstarSpeakersTitle }}

7 |
8 | 9 | {{ site.rockstarSpeakersButtonText }} 10 | 11 |
12 |
13 |
14 | -------------------------------------------------------------------------------- /_sass/partials/_subscribe.scss: -------------------------------------------------------------------------------- 1 | .subscribe { 2 | .email { 3 | width: 100%; 4 | height: 53px; 5 | margin-bottom: 16px; 6 | transition: $base-transition; 7 | input { 8 | width: 100%; 9 | height: 100%; 10 | outline: none; 11 | font-size: 16px; 12 | } 13 | } 14 | .button { 15 | @extend .email; 16 | input { 17 | text-transform: uppercase; 18 | } 19 | } 20 | } 21 | .mc-field-group { 22 | padding-right: 3px; 23 | @media (max-width: 767px) { 24 | padding: 0; 25 | } 26 | } 27 | .mc-submit-group { 28 | padding-left: 3px; 29 | @media (max-width: 767px) { 30 | padding: 0; 31 | } 32 | } 33 | .subscribe-info { 34 | font-weight: $light; 35 | } 36 | -------------------------------------------------------------------------------- /_sass/partials/_location-map.scss: -------------------------------------------------------------------------------- 1 | .location-map { 2 | font-weight: $light; 3 | padding: 172px 0; 4 | h3 { 5 | margin-bottom: 0; 6 | } 7 | } 8 | .location-description { 9 | min-width: 400px; 10 | padding: 20px 50px; 11 | background: #fff; 12 | .icon-direction { 13 | width: 32px; 14 | height: 32px; 15 | margin: 1em 0; 16 | } 17 | ul { 18 | margin-top: 26px; 19 | padding: 0; 20 | list-style: none; 21 | } 22 | li { 23 | font-size: 21px; 24 | margin-bottom: 9px; 25 | } 26 | time { 27 | display: inline-block; 28 | } 29 | } 30 | .canvas-map { 31 | position: absolute; 32 | top: 0; 33 | right: 0; 34 | bottom: 0; 35 | left: 0; 36 | width: 100%; 37 | height: 700px; 38 | } -------------------------------------------------------------------------------- /_sass/partials/_top-section.scss: -------------------------------------------------------------------------------- 1 | .top-section { 2 | position: relative; 3 | min-height: 400px; 4 | padding-top: 0; 5 | background: $base-section-background-color; 6 | @media (max-width: 767px) { 7 | min-height: 200px; 8 | padding: 0; 9 | } 10 | .gradient-overlay { 11 | opacity: 0; 12 | } 13 | &.enable-overlay .gradient-overlay { 14 | opacity: 1; 15 | } 16 | } 17 | .jumbotron { 18 | position: relative; 19 | left: 26px; 20 | margin: 200px 0 0 0; 21 | color: #fff; 22 | background: 0; 23 | @media (max-width: 767px) { 24 | left: 13px; 25 | margin-top: 100px; 26 | padding-left: 0; 27 | padding-bottom: 5px; 28 | } 29 | @media screen and (min-width: 768px) { 30 | padding-bottom: 0; 31 | } 32 | } -------------------------------------------------------------------------------- /_sass/partials/_judges.scss: -------------------------------------------------------------------------------- 1 | $judge-image-size: 140px; 2 | $small-judge-image-size: 120px; 3 | 4 | .judge { 5 | margin-bottom: 45px; 6 | .name { 7 | margin: 8px 0 4px; 8 | font-size: 25px; 9 | @media (max-width: 767px) { 10 | font-size: 20px; 11 | } 12 | } 13 | .company { 14 | margin-top: 6px; 15 | display: block; 16 | font-size: 18px; 17 | line-height: 1.1; 18 | @media (max-width: 767px) { 19 | margin-top: 0; 20 | font-size: 16px; 21 | } 22 | } 23 | } 24 | .judge-img { 25 | width: $judge-image-size; 26 | height: $judge-image-size; 27 | margin: 0 auto; 28 | border: 3px solid #fff; 29 | box-shadow: 0 3px 0 rgba(0, 0, 0, .15), 0 3px 4px rgba(0, 0, 0, .2); 30 | @media (max-width: 767px) { 31 | width: $small-judge-image-size; 32 | height: $small-judge-image-size; 33 | } 34 | } -------------------------------------------------------------------------------- /_includes/disqus-comments.html: -------------------------------------------------------------------------------- 1 |
2 | 13 | 14 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_table-row.scss: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | @mixin table-row-variant($state, $background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table > thead > tr, 7 | .table > tbody > tr, 8 | .table > tfoot > tr { 9 | > td.#{$state}, 10 | > th.#{$state}, 11 | &.#{$state} > td, 12 | &.#{$state} > th { 13 | background-color: $background; 14 | } 15 | } 16 | 17 | // Hover states for `.table-hover` 18 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 19 | .table-hover > tbody > tr { 20 | > td.#{$state}:hover, 21 | > th.#{$state}:hover, 22 | &.#{$state}:hover > td, 23 | &:hover > .#{$state}, 24 | &.#{$state}:hover > th { 25 | background-color: darken($background, 5%); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /_includes/twitter-feed.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 | 7 | 8 | 9 |

{{ site.tweetsFeedTitle }} #{{ site.twitterHashTag }} 10 |

11 |
12 |
13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /_sass/partials/_twitter-feed.scss: -------------------------------------------------------------------------------- 1 | .twitter-feed { 2 | h3 { 3 | margin-bottom: 10px; 4 | } 5 | .icon { 6 | width: 64px; 7 | height: 64px; 8 | fill: #fff; 9 | } 10 | } 11 | .tweets { 12 | max-width: 850px; 13 | margin: 0 auto; 14 | } 15 | .tweet { 16 | height: 130px; 17 | transition: $long-transition; 18 | @media (max-width: 767px) { 19 | height: 180px; 20 | } 21 | &.hidden-tweet { 22 | opacity: 0; 23 | transform: translateY(180px); 24 | } 25 | p { 26 | font-weight: $light; 27 | } 28 | } 29 | .tweet-text { 30 | font-size: 26px; 31 | line-height: 1.3; 32 | @media (max-width: 767px) { 33 | font-size: 24px; 34 | } 35 | } 36 | .tweet-meta { 37 | font-size: 20px; 38 | @media (max-width: 767px) { 39 | font-size: 18px; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /_sass/partials/_rockstar-speakers.scss: -------------------------------------------------------------------------------- 1 | $rockstar-image-size: 140px; 2 | $small-rockstar-image-size: 120px; 3 | 4 | .rockstar-speakers { 5 | .name { 6 | font-size: 26px; 7 | line-height: 1.1; 8 | margin: 10px 0 2px; 9 | @media (max-width: 767px) { 10 | font-size: 20px; 11 | } 12 | } 13 | .sub { 14 | font-size: $base-font-size * 1.4; 15 | margin: 0 0 15px; 16 | color: $link-color; 17 | @media (max-width: 767px) { 18 | font-size: 16px; 19 | } 20 | } 21 | } 22 | .rockstar-speaker { 23 | padding-bottom: 13px; 24 | } 25 | .rockstar-speaker-img { 26 | width: $rockstar-image-size; 27 | height: $rockstar-image-size; 28 | margin: 0 auto; 29 | @media (max-width: 767px) { 30 | width: $small-rockstar-image-size; 31 | height: $small-rockstar-image-size; 32 | } 33 | } -------------------------------------------------------------------------------- /_sass/vendor/animations/attention-seekers/_pulse.scss: -------------------------------------------------------------------------------- 1 | @if $use-pulse == true { 2 | 3 | // originally authored by Nick Pettit - https://github.com/nickpettit/glide 4 | 5 | @-webkit-keyframes pulse { 6 | 0% { -webkit-transform: scale(1); } 7 | 50% { -webkit-transform: scale(1.1); } 8 | 100% { -webkit-transform: scale(1); } 9 | } 10 | 11 | @-moz-keyframes pulse { 12 | 0% { -moz-transform: scale(1); } 13 | 50% { -moz-transform: scale(1.1); } 14 | 100% { -moz-transform: scale(1); } 15 | } 16 | 17 | @-o-keyframes pulse { 18 | 0% { -o-transform: scale(1); } 19 | 50% { -o-transform: scale(1.1); } 20 | 100% { -o-transform: scale(1); } 21 | } 22 | 23 | @keyframes pulse { 24 | 0% { transform: scale(1); } 25 | 50% { transform: scale(1.1); } 26 | 100% { transform: scale(1); } 27 | } 28 | 29 | .pulse { 30 | @include animate-prefixer(animation-name, pulse); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /js/sources/jquery.countTo.min.js: -------------------------------------------------------------------------------- 1 | !function(t){function e(t,e){return t.toFixed(e.decimals)}t.fn.countTo=function(e){return e=e||{},t(this).each(function(){function o(){c+=r,u++,s(c),"function"==typeof a.onUpdate&&a.onUpdate.call(n,c),i>u||(p.removeData("countTo"),clearInterval(l.interval),c=a.to,"function"==typeof a.onComplete&&a.onComplete.call(n,c))}function s(t){var e=a.formatter.call(n,t,a);p.text(e)}var a=t.extend({},t.fn.countTo.defaults,{from:t(this).data("from"),to:t(this).data("to"),speed:t(this).data("speed"),refreshInterval:t(this).data("refresh-interval"),decimals:t(this).data("decimals")},e),i=Math.ceil(a.speed/a.refreshInterval),r=(a.to-a.from)/i,n=this,p=t(this),u=0,c=a.from,l=p.data("countTo")||{};p.data("countTo",l),l.interval&&clearInterval(l.interval),l.interval=setInterval(o,a.refreshInterval),s(c)})},t.fn.countTo.defaults={from:0,to:0,speed:1e3,refreshInterval:100,decimals:0,formatter:e,onUpdate:null,onComplete:null}}(jQuery); -------------------------------------------------------------------------------- /feed.xml: -------------------------------------------------------------------------------- 1 | --- 2 | layout: null 3 | --- 4 | 5 | 6 | 7 | {{ site.title | xml_escape }} 8 | {{ site.description | xml_escape }} 9 | {{ site.url }}{{ site.baseurl }}/ 10 | 11 | {% for post in site.posts limit:10 %} 12 | 13 | {{ post.title | xml_escape }} 14 | {{ post.content | xml_escape }} 15 | {{ post.date | date: "%a, %d %b %Y %H:%M:%S %z" }} 16 | {{ post.url | prepend: site.baseurl | prepend: site.url }} 17 | {{ post.url | prepend: site.baseurl | prepend: site.url }} 18 | 19 | {% endfor %} 20 | 21 | 22 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_close.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: ($font-size-base * 1.5); 9 | font-weight: $close-font-weight; 10 | line-height: 1; 11 | color: $close-color; 12 | text-shadow: $close-text-shadow; 13 | @include opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: $close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | @include opacity(.5); 21 | } 22 | 23 | // [converter] extracted button& to button.close 24 | } 25 | 26 | // Additional properties for button version 27 | // iOS requires the button element instead of an anchor tag. 28 | // If you want the anchor version, it requires `href="#"`. 29 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 30 | button.close { 31 | padding: 0; 32 | cursor: pointer; 33 | background: transparent; 34 | border: 0; 35 | -webkit-appearance: none; 36 | } 37 | -------------------------------------------------------------------------------- /_layouts/compress.html: -------------------------------------------------------------------------------- 1 | --- 2 | # 3 | # Jekyll layout that compresses HTML 4 | # v0.3.1 5 | # https://github.com/penibelst/jekyll-compress-html 6 | # © 2014 Anatol Broder (http://penibelst.de/) 7 | # MIT License 8 | # 9 | --- 10 | 11 | {% assign _pres = content | split: '' %}{% if _pre2.size == 2 %}{% endif %}{% assign _second = _pre2.last | split: ' ' | join: ' ' %}{% for _element in site.compress_html.clippings %}{% assign _edges = ' ,; ,' | replace: 'element', _element | split: ';' %}{% for _edge in _edges %}{% assign _replacement = _edge | split: ',' %}{% assign _second = _second | replace: _replacement[0], _replacement[1] %}{% endfor %}{% endfor %}{% for _element in site.compress_html.endings %}{% assign _closing = '' | replace: 'element', _element %}{% assign _second = _second | remove: _closing %}{% endfor %}{{ _second }}{% endfor %} 12 | -------------------------------------------------------------------------------- /_sass/partials/_footer.scss: -------------------------------------------------------------------------------- 1 | $footer-background-color: #fcfcfc; 2 | $footer-links-color: #8b8b8b; 3 | 4 | .footer { 5 | padding: 40px 52px 13px; 6 | border-top: 1px solid #e7e7e7; 7 | background-color: $footer-background-color; 8 | @media (max-width: 767px) { 9 | padding: 26px 20px 13px; 10 | } 11 | h5 { 12 | font-size: 18px; 13 | } 14 | ul { 15 | margin-top: 13px; 16 | padding: 0; 17 | } 18 | li { 19 | margin-bottom: 9px; 20 | list-style-type: none; 21 | } 22 | a { 23 | color: $footer-links-color; 24 | &:hover { 25 | text-decoration: underline; 26 | } 27 | } 28 | .social-links { 29 | margin-bottom: 0; 30 | } 31 | .copyright { 32 | font-size: 13px; 33 | line-height: 1.3; 34 | margin-top: 10px; 35 | } 36 | } 37 | .logo-footer { 38 | width: 185px; 39 | height: 60px; 40 | margin: -13px -13px 0; 41 | transform: scale(.65); 42 | } -------------------------------------------------------------------------------- /automation/images/all_image_optimization.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | set LOCAL_DIR=%~dp0 4 | set LOCAL_DIR=%LOCAL_DIR:~0,-1% 5 | set SOURCE=%~1 6 | 7 | :LOOP 8 | if "%~1"=="" GOTO END 9 | if /I "%~1"=="-d" set "SOURCE=..\..\img" 10 | if /I "%~1"=="-jtran" GOTO JPEGTRAN 11 | if /I "%~1"=="-pout" GOTO PNGOUT 12 | if /I "%~1"=="-optip" GOTO OPTIPNG 13 | if /I "%~1"=="-pquant" GOTO PNGQUANT 14 | if /I "%~1"=="-gsicle" GOTO GIFSICLE 15 | if /I "%~1"=="-svgo" GOTO SVGO 16 | SHIFT & GOTO LOOP 17 | 18 | :JPEGTRAN 19 | call %LOCAL_DIR%\jpegtran.bat "%SOURCE%" 20 | SHIFT & GOTO LOOP 21 | 22 | :PNGOUT 23 | call %LOCAL_DIR%\pngout.bat "%SOURCE%" 24 | SHIFT & GOTO LOOP 25 | 26 | :OPTIPNG 27 | call %LOCAL_DIR%\optipng.bat "%SOURCE%" 28 | SHIFT & GOTO LOOP 29 | 30 | :PNGQUANT 31 | call %LOCAL_DIR%\pngquant.bat "%SOURCE%" 32 | SHIFT & GOTO LOOP 33 | 34 | :GIFSICLE 35 | call %LOCAL_DIR%\gifsicle.bat "%SOURCE%" 36 | SHIFT & GOTO LOOP 37 | 38 | :SVGO 39 | call %LOCAL_DIR%\svgo.bat "%SOURCE%" 40 | SHIFT & GOTO LOOP 41 | 42 | :END 43 | pause -------------------------------------------------------------------------------- /_sass/vendor/animations/special/_rollIn.scss: -------------------------------------------------------------------------------- 1 | @if $use-rollIn == true { 2 | 3 | // originally authored by Nick Pettit - https://github.com/nickpettit/glide 4 | 5 | @-webkit-keyframes rollIn { 6 | 0% { opacity: 0; -webkit-transform: translateX(-100%) rotate(-$base-degrees * 4); } 7 | 100% { opacity: 1; -webkit-transform: translateX(0px) rotate(0deg); } 8 | } 9 | 10 | @-moz-keyframes rollIn { 11 | 0% { opacity: 0; -moz-transform: translateX(-100%) rotate(-$base-degrees * 4); } 12 | 100% { opacity: 1; -moz-transform: translateX(0px) rotate(0deg); } 13 | } 14 | 15 | @-o-keyframes rollIn { 16 | 0% { opacity: 0; -o-transform: translateX(-100%) rotate(-$base-degrees * 4); } 17 | 100% { opacity: 1; -o-transform: translateX(0px) rotate(0deg); } 18 | } 19 | 20 | @keyframes rollIn { 21 | 0% { opacity: 0; transform: translateX(-100%) rotate(-$base-degrees * 4); } 22 | 100% { opacity: 1; transform: translateX(0px) rotate(0deg); } 23 | } 24 | 25 | .rollIn { 26 | @include animate-prefixer(animation-name, rollIn); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /_sass/vendor/animations/lightspeed/_lightSpeedOut.scss: -------------------------------------------------------------------------------- 1 | @if $use-lightSpeedOut == true { 2 | 3 | @-webkit-keyframes lightSpeedOut { 4 | 0% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } 5 | 100% { -webkit-transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } 6 | } 7 | 8 | @-moz-keyframes lightSpeedOut { 9 | 0% { -moz-transform: translateX(0%) skewX(0deg); opacity: 1; } 10 | 100% { -moz-transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } 11 | } 12 | 13 | @-o-keyframes lightSpeedOut { 14 | 0% { -o-transform: translateX(0%) skewX(0deg); opacity: 1; } 15 | 100% { -o-transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } 16 | } 17 | 18 | @keyframes lightSpeedOut { 19 | 0% { transform: translateX(0%) skewX(0deg); opacity: 1; } 20 | 100% { transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } 21 | } 22 | 23 | .lightSpeedOut { 24 | @include animate-prefixer(animation-name, lightSpeedOut); 25 | @include animate-prefixer(animation-timing-function, $base-timing-function-in); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_component-animations.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | @include transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | visibility: hidden; 21 | 22 | &.in { display: block; visibility: visible; } 23 | // [converter] extracted tr&.in to tr.collapse.in 24 | // [converter] extracted tbody&.in to tbody.collapse.in 25 | } 26 | 27 | tr.collapse.in { display: table-row; } 28 | 29 | tbody.collapse.in { display: table-row-group; } 30 | 31 | .collapsing { 32 | position: relative; 33 | height: 0; 34 | overflow: hidden; 35 | @include transition-property(height, visibility); 36 | @include transition-duration(.35s); 37 | @include transition-timing-function(ease); 38 | } 39 | -------------------------------------------------------------------------------- /_sass/vendor/animations/attention-seekers/_bounce.scss: -------------------------------------------------------------------------------- 1 | @if $use-bounce == true { 2 | 3 | @-webkit-keyframes bounce { 4 | 0%, 20%, 50%, 80%, 100% {-webkit-transform: translateY(0);} 5 | 40% {-webkit-transform: translateY(-$base-distance * 3);} 6 | 60% {-webkit-transform: translateY(-$base-distance * 1.5);} 7 | } 8 | 9 | @-moz-keyframes bounce { 10 | 0%, 20%, 50%, 80%, 100% {-moz-transform: translateY(0);} 11 | 40% {-moz-transform: translateY(-$base-distance * 3);} 12 | 60% {-moz-transform: translateY(-$base-distance * 1.5);} 13 | } 14 | 15 | @-o-keyframes bounce { 16 | 0%, 20%, 50%, 80%, 100% {-o-transform: translateY(0);} 17 | 40% {-o-transform: translateY(-$base-distance * 3);} 18 | 60% {-o-transform: translateY(-$base-distance * 1.5);} 19 | } 20 | @keyframes bounce { 21 | 0%, 20%, 50%, 80%, 100% {transform: translateY(0);} 22 | 40% {transform: translateY(-$base-distance * 3);} 23 | 60% {transform: translateY(-$base-distance * 1.5);} 24 | } 25 | 26 | .bounce { 27 | @include animate-prefixer(animation-name, bounce); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-enter/_fadeInUp.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeInUp == true { 2 | 3 | @-webkit-keyframes fadeInUp { 4 | 0% { 5 | opacity: 0; 6 | -webkit-transform: translateY($base-distance * 2); 7 | } 8 | 9 | 100% { 10 | opacity: 1; 11 | -webkit-transform: translateY(0); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeInUp { 16 | 0% { 17 | opacity: 0; 18 | -moz-transform: translateY($base-distance * 2); 19 | } 20 | 21 | 100% { 22 | opacity: 1; 23 | -moz-transform: translateY(0); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeInUp { 28 | 0% { 29 | opacity: 0; 30 | -o-transform: translateY($base-distance * 2); 31 | } 32 | 33 | 100% { 34 | opacity: 1; 35 | -o-transform: translateY(0); 36 | } 37 | } 38 | 39 | @keyframes fadeInUp { 40 | 0% { 41 | opacity: 0; 42 | transform: translateY($base-distance * 2); 43 | } 44 | 45 | 100% { 46 | opacity: 1; 47 | transform: translateY(0); 48 | } 49 | } 50 | 51 | .fadeInUp { 52 | @include animate-prefixer(animation-name, fadeInUp); 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-enter/_fadeInDown.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeInDown == true { 2 | 3 | @-webkit-keyframes fadeInDown { 4 | 0% { 5 | opacity: 0; 6 | -webkit-transform: translateY(-$base-distance * 2); 7 | } 8 | 9 | 100% { 10 | opacity: 1; 11 | -webkit-transform: translateY(0); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeInDown { 16 | 0% { 17 | opacity: 0; 18 | -moz-transform: translateY(-$base-distance * 2); 19 | } 20 | 21 | 100% { 22 | opacity: 1; 23 | -moz-transform: translateY(0); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeInDown { 28 | 0% { 29 | opacity: 0; 30 | -o-transform: translateY(-$base-distance * 2); 31 | } 32 | 33 | 100% { 34 | opacity: 1; 35 | -o-transform: translateY(0); 36 | } 37 | } 38 | 39 | @keyframes fadeInDown { 40 | 0% { 41 | opacity: 0; 42 | transform: translateY(-$base-distance * 2); 43 | } 44 | 45 | 100% { 46 | opacity: 1; 47 | transform: translateY(0); 48 | } 49 | } 50 | 51 | .fadeInDown { 52 | @include animate-prefixer(animation-name, fadeInDown); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-exit/_fadeOutUp.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeOutUp == true { 2 | 3 | @-webkit-keyframes fadeOutUp { 4 | 0% { 5 | opacity: 1; 6 | -webkit-transform: translateY(0); 7 | } 8 | 9 | 100% { 10 | opacity: 0; 11 | -webkit-transform: translateY(-$base-distance * 2); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeOutUp { 16 | 0% { 17 | opacity: 1; 18 | -moz-transform: translateY(0); 19 | } 20 | 21 | 100% { 22 | opacity: 0; 23 | -moz-transform: translateY(-$base-distance * 2); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeOutUp { 28 | 0% { 29 | opacity: 1; 30 | -o-transform: translateY(0); 31 | } 32 | 33 | 100% { 34 | opacity: 0; 35 | -o-transform: translateY(-$base-distance * 2); 36 | } 37 | } 38 | 39 | @keyframes fadeOutUp { 40 | 0% { 41 | opacity: 1; 42 | transform: translateY(0); 43 | } 44 | 45 | 100% { 46 | opacity: 0; 47 | transform: translateY(-$base-distance * 2); 48 | } 49 | } 50 | 51 | .fadeOutUp { 52 | @include animate-prefixer(animation-name, fadeOutUp); 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_utilities.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Floats 7 | // ------------------------- 8 | 9 | .clearfix { 10 | @include clearfix; 11 | } 12 | .center-block { 13 | @include center-block; 14 | } 15 | .pull-right { 16 | float: right !important; 17 | } 18 | .pull-left { 19 | float: left !important; 20 | } 21 | 22 | 23 | // Toggling content 24 | // ------------------------- 25 | 26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 27 | .hide { 28 | display: none !important; 29 | } 30 | .show { 31 | display: block !important; 32 | } 33 | .invisible { 34 | visibility: hidden; 35 | } 36 | .text-hide { 37 | @include text-hide; 38 | } 39 | 40 | 41 | // Hide from screenreaders and browsers 42 | // 43 | // Credit: HTML5 Boilerplate 44 | 45 | .hidden { 46 | display: none !important; 47 | visibility: hidden !important; 48 | } 49 | 50 | 51 | // For Affix plugin 52 | // ------------------------- 53 | 54 | .affix { 55 | position: fixed; 56 | } 57 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-enter/_fadeInRight.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeInRight == true { 2 | 3 | @-webkit-keyframes fadeInRight { 4 | 0% { 5 | opacity: 0; 6 | -webkit-transform: translateX($base-distance * 2); 7 | } 8 | 9 | 100% { 10 | opacity: 1; 11 | -webkit-transform: translateX(0); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeInRight { 16 | 0% { 17 | opacity: 0; 18 | -moz-transform: translateX($base-distance * 2); 19 | } 20 | 21 | 100% { 22 | opacity: 1; 23 | -moz-transform: translateX(0); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeInRight { 28 | 0% { 29 | opacity: 0; 30 | -o-transform: translateX($base-distance * 2); 31 | } 32 | 33 | 100% { 34 | opacity: 1; 35 | -o-transform: translateX(0); 36 | } 37 | } 38 | 39 | @keyframes fadeInRight { 40 | 0% { 41 | opacity: 0; 42 | transform: translateX($base-distance * 2); 43 | } 44 | 45 | 100% { 46 | opacity: 1; 47 | transform: translateX(0); 48 | } 49 | } 50 | 51 | .fadeInRight { 52 | @include animate-prefixer(animation-name, fadeInRight); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-exit/_fadeOutDown.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeOutDown == true { 2 | 3 | @-webkit-keyframes fadeOutDown { 4 | 0% { 5 | opacity: 1; 6 | -webkit-transform: translateY(0); 7 | } 8 | 9 | 100% { 10 | opacity: 0; 11 | -webkit-transform: translateY($base-distance * 2); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeOutDown { 16 | 0% { 17 | opacity: 1; 18 | -moz-transform: translateY(0); 19 | } 20 | 21 | 100% { 22 | opacity: 0; 23 | -moz-transform: translateY($base-distance * 2); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeOutDown { 28 | 0% { 29 | opacity: 1; 30 | -o-transform: translateY(0); 31 | } 32 | 33 | 100% { 34 | opacity: 0; 35 | -o-transform: translateY($base-distance * 2); 36 | } 37 | } 38 | 39 | @keyframes fadeOutDown { 40 | 0% { 41 | opacity: 1; 42 | transform: translateY(0); 43 | } 44 | 45 | 100% { 46 | opacity: 0; 47 | transform: translateY($base-distance * 2); 48 | } 49 | } 50 | 51 | .fadeOutDown { 52 | @include animate-prefixer(animation-name, fadeOutDown); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_media.scss: -------------------------------------------------------------------------------- 1 | .media { 2 | // Proper spacing between instances of .media 3 | margin-top: 15px; 4 | 5 | &:first-child { 6 | margin-top: 0; 7 | } 8 | } 9 | 10 | .media, 11 | .media-body { 12 | zoom: 1; 13 | overflow: hidden; 14 | } 15 | 16 | .media-body { 17 | width: 10000px; 18 | } 19 | 20 | .media-object { 21 | display: block; 22 | } 23 | 24 | .media-right, 25 | .media > .pull-right { 26 | padding-left: 10px; 27 | } 28 | 29 | .media-left, 30 | .media > .pull-left { 31 | padding-right: 10px; 32 | } 33 | 34 | .media-left, 35 | .media-right, 36 | .media-body { 37 | display: table-cell; 38 | vertical-align: top; 39 | } 40 | 41 | .media-middle { 42 | vertical-align: middle; 43 | } 44 | 45 | .media-bottom { 46 | vertical-align: bottom; 47 | } 48 | 49 | // Reset margins on headings for tighter default spacing 50 | .media-heading { 51 | margin-top: 0; 52 | margin-bottom: 5px; 53 | } 54 | 55 | // Media list variation 56 | // 57 | // Undo default ul/ol styles 58 | .media-list { 59 | padding-left: 0; 60 | list-style: none; 61 | } 62 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_thumbnails.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: $thumbnail-padding; 10 | margin-bottom: $line-height-computed; 11 | line-height: $line-height-base; 12 | background-color: $thumbnail-bg; 13 | border: 1px solid $thumbnail-border; 14 | border-radius: $thumbnail-border-radius; 15 | @include transition(border .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | @include img-responsive; 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active 25 | 26 | // Image captions 27 | .caption { 28 | padding: $thumbnail-caption-padding; 29 | color: $thumbnail-caption-color; 30 | } 31 | } 32 | 33 | // Add a hover state for linked versions only 34 | a.thumbnail:hover, 35 | a.thumbnail:focus, 36 | a.thumbnail.active { 37 | border-color: $link-color; 38 | } 39 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-enter/_fadeInLeft.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeInLeft == true { 2 | 3 | @-webkit-keyframes fadeInLeft { 4 | 0% { 5 | opacity: 0; 6 | -webkit-transform: translateX(-$base-distance * 2); 7 | } 8 | 9 | 100% { 10 | opacity: 1; 11 | -webkit-transform: translateX(0); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeInLeft { 16 | 0% { 17 | opacity: 0; 18 | -moz-transform: translateX(-$base-distance * 2); 19 | } 20 | 21 | 100% { 22 | opacity: 1; 23 | -moz-transform: translateX(0); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeInLeft { 28 | 0% { 29 | opacity: 0; 30 | -o-transform: translateX(-$base-distance * 2); 31 | } 32 | 33 | 100% { 34 | opacity: 1; 35 | -o-transform: translateX(0); 36 | } 37 | } 38 | 39 | @keyframes fadeInLeft { 40 | 0% { 41 | opacity: 0; 42 | transform: translateX(-$base-distance * 2); 43 | } 44 | 45 | 100% { 46 | opacity: 1; 47 | transform: translateX(0); 48 | } 49 | } 50 | 51 | .fadeInLeft { 52 | @include animate-prefixer(animation-name, fadeInLeft); 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /_sass/vendor/animations/attention-seekers/_shake.scss: -------------------------------------------------------------------------------- 1 | @if $use-shake == true { 2 | 3 | @-webkit-keyframes shake { 4 | 0%, 100% {-webkit-transform: translateX(0);} 5 | 10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-$base-distance);} 6 | 20%, 40%, 60%, 80% {-webkit-transform: translateX($base-distance);} 7 | } 8 | 9 | @-moz-keyframes shake { 10 | 0%, 100% {-moz-transform: translateX(0);} 11 | 10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-$base-distance);} 12 | 20%, 40%, 60%, 80% {-moz-transform: translateX($base-distance);} 13 | } 14 | 15 | @-o-keyframes shake { 16 | 0%, 100% {-o-transform: translateX(0);} 17 | 10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-$base-distance);} 18 | 20%, 40%, 60%, 80% {-o-transform: translateX($base-distance);} 19 | } 20 | 21 | @keyframes shake { 22 | 0%, 100% {transform: translateX(0);} 23 | 10%, 30%, 50%, 70%, 90% {transform: translateX(-$base-distance);} 24 | 20%, 40%, 60%, 80% {transform: translateX($base-distance);} 25 | } 26 | 27 | .shake { 28 | @include animate-prefixer(animation-name, shake); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-exit/_fadeOutLeft.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeOutLeft == true { 2 | 3 | @-webkit-keyframes fadeOutLeft { 4 | 0% { 5 | opacity: 1; 6 | -webkit-transform: translateX(0); 7 | } 8 | 9 | 100% { 10 | opacity: 0; 11 | -webkit-transform: translateX(-$base-distance * 2); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeOutLeft { 16 | 0% { 17 | opacity: 1; 18 | -moz-transform: translateX(0); 19 | } 20 | 21 | 100% { 22 | opacity: 0; 23 | -moz-transform: translateX(-$base-distance * 2); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeOutLeft { 28 | 0% { 29 | opacity: 1; 30 | -o-transform: translateX(0); 31 | } 32 | 33 | 100% { 34 | opacity: 0; 35 | -o-transform: translateX(-$base-distance * 2); 36 | } 37 | } 38 | 39 | @keyframes fadeOutLeft { 40 | 0% { 41 | opacity: 1; 42 | transform: translateX(0); 43 | } 44 | 45 | 100% { 46 | opacity: 0; 47 | transform: translateX(-$base-distance * 2); 48 | } 49 | } 50 | 51 | .fadeOutLeft { 52 | @include animate-prefixer(animation-name, fadeOutLeft); 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-exit/_fadeOutRight.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeOutRight == true { 2 | 3 | @-webkit-keyframes fadeOutRight { 4 | 0% { 5 | opacity: 1; 6 | -webkit-transform: translateX(0); 7 | } 8 | 9 | 100% { 10 | opacity: 0; 11 | -webkit-transform: translateX($base-distance * 2); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeOutRight { 16 | 0% { 17 | opacity: 1; 18 | -moz-transform: translateX(0); 19 | } 20 | 21 | 100% { 22 | opacity: 0; 23 | -moz-transform: translateX($base-distance * 2); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeOutRight { 28 | 0% { 29 | opacity: 1; 30 | -o-transform: translateX(0); 31 | } 32 | 33 | 100% { 34 | opacity: 0; 35 | -o-transform: translateX($base-distance * 2); 36 | } 37 | } 38 | 39 | @keyframes fadeOutRight { 40 | 0% { 41 | opacity: 1; 42 | transform: translateX(0); 43 | } 44 | 45 | 100% { 46 | opacity: 0; 47 | transform: translateX($base-distance * 2); 48 | } 49 | } 50 | 51 | .fadeOutRight { 52 | @include animate-prefixer(animation-name, fadeOutRight); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /_sass/partials/_about-hackathon.scss: -------------------------------------------------------------------------------- 1 | $hackathon-img-width: 250px; 2 | $small-hackathon-img-width: 150px; 3 | 4 | .hackathon-row { 5 | margin-bottom: 90px; 6 | @media (max-width: 767px) { 7 | margin-bottom: 50px; 8 | } 9 | &.float-right { 10 | .hackathon-img-wrapper { 11 | float: right; 12 | } 13 | .hackathon-details { 14 | text-align: right; 15 | margin-left: 0; 16 | margin-right: $hackathon-img-width + 50px; 17 | @media (max-width: 767px) { 18 | text-align: left; 19 | margin-right: 0; 20 | } 21 | } 22 | } 23 | } 24 | .hackathon-img-wrapper { 25 | float: left; 26 | @media (max-width: 767px) { 27 | float: right; 28 | } 29 | img { 30 | max-width: $hackathon-img-width; 31 | margin: 0 auto; 32 | @media (max-width: 767px) { 33 | max-width: $small-hackathon-img-width; 34 | } 35 | } 36 | } 37 | .hackathon-details { 38 | text-align: left; 39 | margin-left: $hackathon-img-width + 50px; 40 | @media (max-width: 767px) { 41 | margin-left: 0; 42 | } 43 | p { 44 | font-size: 16px; 45 | } 46 | } -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-enter/_fadeInUpBig.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeInUpBig == true { 2 | 3 | @-webkit-keyframes fadeInUpBig { 4 | 0% { 5 | opacity: 0; 6 | -webkit-transform: translateY($base-distance-big * 2); 7 | } 8 | 9 | 100% { 10 | opacity: 1; 11 | -webkit-transform: translateY(0); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeInUpBig { 16 | 0% { 17 | opacity: 0; 18 | -moz-transform: translateY($base-distance-big * 2); 19 | } 20 | 21 | 100% { 22 | opacity: 1; 23 | -moz-transform: translateY(0); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeInUpBig { 28 | 0% { 29 | opacity: 0; 30 | -o-transform: translateY($base-distance-big * 2); 31 | } 32 | 33 | 100% { 34 | opacity: 1; 35 | -o-transform: translateY(0); 36 | } 37 | } 38 | 39 | @keyframes fadeInUpBig { 40 | 0% { 41 | opacity: 0; 42 | transform: translateY($base-distance-big * 2); 43 | } 44 | 45 | 100% { 46 | opacity: 1; 47 | transform: translateY(0); 48 | } 49 | } 50 | 51 | .fadeInUpBig { 52 | @include animate-prefixer(animation-name, fadeInUpBig); 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /_includes/prizes.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |

{{ site.prizesTitle }}

6 | {% for prize in site.prizes %} 7 | {% assign colWidth = 12 | divided_by: forloop.length %} 8 | {% assign check = forloop.index | modulo:2 %} 9 |
10 |

{{ prize.title }}

11 |
12 | Hackathon 13 |
14 |

{{ prize.info }}

15 |
16 | {% endfor %} 17 |
18 |
19 |
20 | 21 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-enter/_fadeInDownBig.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeInDownBig == true { 2 | 3 | @-webkit-keyframes fadeInDownBig { 4 | 0% { 5 | opacity: 0; 6 | -webkit-transform: translateY(-$base-distance-big * 2); 7 | } 8 | 9 | 100% { 10 | opacity: 1; 11 | -webkit-transform: translateY(0); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeInDownBig { 16 | 0% { 17 | opacity: 0; 18 | -moz-transform: translateY(-$base-distance-big * 2); 19 | } 20 | 21 | 100% { 22 | opacity: 1; 23 | -moz-transform: translateY(0); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeInDownBig { 28 | 0% { 29 | opacity: 0; 30 | -o-transform: translateY(-$base-distance-big * 2); 31 | } 32 | 33 | 100% { 34 | opacity: 1; 35 | -o-transform: translateY(0); 36 | } 37 | } 38 | 39 | @keyframes fadeInDownBig { 40 | 0% { 41 | opacity: 0; 42 | transform: translateY(-$base-distance-big * 2); 43 | } 44 | 45 | 100% { 46 | opacity: 1; 47 | transform: translateY(0); 48 | } 49 | } 50 | 51 | .fadeInDownBig { 52 | @include animate-prefixer(animation-name, fadeInDownBig); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-exit/_fadeOutUpBig.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeOutUpBig == true { 2 | 3 | @-webkit-keyframes fadeOutUpBig { 4 | 0% { 5 | opacity: 1; 6 | -webkit-transform: translateY(0); 7 | } 8 | 9 | 100% { 10 | opacity: 0; 11 | -webkit-transform: translateY(-$base-distance-big * 2); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeOutUpBig { 16 | 0% { 17 | opacity: 1; 18 | -moz-transform: translateY(0); 19 | } 20 | 21 | 100% { 22 | opacity: 0; 23 | -moz-transform: translateY(-$base-distance-big * 2); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeOutUpBig { 28 | 0% { 29 | opacity: 1; 30 | -o-transform: translateY(0); 31 | } 32 | 33 | 100% { 34 | opacity: 0; 35 | -o-transform: translateY(-$base-distance-big * 2); 36 | } 37 | } 38 | 39 | @keyframes fadeOutUpBig { 40 | 0% { 41 | opacity: 1; 42 | transform: translateY(0); 43 | } 44 | 45 | 100% { 46 | opacity: 0; 47 | transform: translateY(-$base-distance-big * 2); 48 | } 49 | } 50 | 51 | .fadeOutUpBig { 52 | @include animate-prefixer(animation-name, fadeOutUpBig); 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-enter/_fadeInRightBig.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeInRightBig == true { 2 | 3 | @-webkit-keyframes fadeInRightBig { 4 | 0% { 5 | opacity: 0; 6 | -webkit-transform: translateX($base-distance-big * 2); 7 | } 8 | 9 | 100% { 10 | opacity: 1; 11 | -webkit-transform: translateX(0); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeInRightBig { 16 | 0% { 17 | opacity: 0; 18 | -moz-transform: translateX($base-distance-big * 2); 19 | } 20 | 21 | 100% { 22 | opacity: 1; 23 | -moz-transform: translateX(0); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeInRightBig { 28 | 0% { 29 | opacity: 0; 30 | -o-transform: translateX($base-distance-big * 2); 31 | } 32 | 33 | 100% { 34 | opacity: 1; 35 | -o-transform: translateX(0); 36 | } 37 | } 38 | 39 | @keyframes fadeInRightBig { 40 | 0% { 41 | opacity: 0; 42 | transform: translateX($base-distance-big * 2); 43 | } 44 | 45 | 100% { 46 | opacity: 1; 47 | transform: translateX(0); 48 | } 49 | } 50 | 51 | .fadeInRightBig { 52 | @include animate-prefixer(animation-name, fadeInRightBig); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-exit/_fadeOutDownBig.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeOutDownBig == true { 2 | 3 | @-webkit-keyframes fadeOutDownBig { 4 | 0% { 5 | opacity: 1; 6 | -webkit-transform: translateY(0); 7 | } 8 | 9 | 100% { 10 | opacity: 0; 11 | -webkit-transform: translateY($base-distance-big * 2); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeOutDownBig { 16 | 0% { 17 | opacity: 1; 18 | -moz-transform: translateY(0); 19 | } 20 | 21 | 100% { 22 | opacity: 0; 23 | -moz-transform: translateY($base-distance-big * 2); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeOutDownBig { 28 | 0% { 29 | opacity: 1; 30 | -o-transform: translateY(0); 31 | } 32 | 33 | 100% { 34 | opacity: 0; 35 | -o-transform: translateY($base-distance-big * 2); 36 | } 37 | } 38 | 39 | @keyframes fadeOutDownBig { 40 | 0% { 41 | opacity: 1; 42 | transform: translateY(0); 43 | } 44 | 45 | 100% { 46 | opacity: 0; 47 | transform: translateY($base-distance-big * 2); 48 | } 49 | } 50 | 51 | .fadeOutDownBig { 52 | @include animate-prefixer(animation-name, fadeOutDownBig); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_pager.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | padding-left: 0; 8 | margin: $line-height-computed 0; 9 | list-style: none; 10 | text-align: center; 11 | @include clearfix; 12 | li { 13 | display: inline; 14 | > a, 15 | > span { 16 | display: inline-block; 17 | padding: 5px 14px; 18 | background-color: $pager-bg; 19 | border: 1px solid $pager-border; 20 | border-radius: $pager-border-radius; 21 | } 22 | 23 | > a:hover, 24 | > a:focus { 25 | text-decoration: none; 26 | background-color: $pager-hover-bg; 27 | } 28 | } 29 | 30 | .next { 31 | > a, 32 | > span { 33 | float: right; 34 | } 35 | } 36 | 37 | .previous { 38 | > a, 39 | > span { 40 | float: left; 41 | } 42 | } 43 | 44 | .disabled { 45 | > a, 46 | > a:hover, 47 | > a:focus, 48 | > span { 49 | color: $pager-disabled-color; 50 | background-color: $pager-bg; 51 | cursor: $cursor-disabled; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-enter/_fadeInLeftBig.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeInLeftBig == true { 2 | 3 | @-webkit-keyframes fadeInLeftBig { 4 | 0% { 5 | opacity: 0; 6 | -webkit-transform: translateX(-$base-distance-big * 2); 7 | } 8 | 9 | 100% { 10 | opacity: 1; 11 | -webkit-transform: translateX(0); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeInLeftBig { 16 | 0% { 17 | opacity: 0; 18 | -moz-transform: translateX(-$base-distance-big * 2); 19 | } 20 | 21 | 100% { 22 | opacity: 1; 23 | -moz-transform: translateX(0); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeInLeftBig { 28 | 0% { 29 | opacity: 0; 30 | -o-transform: translateX(-$base-distance-big * 2); 31 | } 32 | 33 | 100% { 34 | opacity: 1; 35 | -o-transform: translateX(0); 36 | } 37 | } 38 | 39 | @keyframes fadeInLeftBig { 40 | 0% { 41 | opacity: 0; 42 | transform: translateX(-$base-distance-big * 2); 43 | } 44 | 45 | 100% { 46 | opacity: 1; 47 | transform: translateX(0); 48 | } 49 | } 50 | 51 | .fadeInLeftBig { 52 | @include animate-prefixer(animation-name, fadeInLeftBig); 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-exit/_fadeOutLeftBig.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeOutLeftBig == true { 2 | 3 | @-webkit-keyframes fadeOutLeftBig { 4 | 0% { 5 | opacity: 1; 6 | -webkit-transform: translateX(0); 7 | } 8 | 9 | 100% { 10 | opacity: 0; 11 | -webkit-transform: translateX(-$base-distance-big * 2); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeOutLeftBig { 16 | 0% { 17 | opacity: 1; 18 | -moz-transform: translateX(0); 19 | } 20 | 21 | 100% { 22 | opacity: 0; 23 | -moz-transform: translateX(-$base-distance-big * 2); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeOutLeftBig { 28 | 0% { 29 | opacity: 1; 30 | -o-transform: translateX(0); 31 | } 32 | 33 | 100% { 34 | opacity: 0; 35 | -o-transform: translateX(-$base-distance-big * 2); 36 | } 37 | } 38 | 39 | @keyframes fadeOutLeftBig { 40 | 0% { 41 | opacity: 1; 42 | transform: translateX(0); 43 | } 44 | 45 | 100% { 46 | opacity: 0; 47 | transform: translateX(-$base-distance-big * 2); 48 | } 49 | } 50 | 51 | .fadeOutLeftBig { 52 | @include animate-prefixer(animation-name, fadeOutLeftBig); 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /_sass/vendor/animations/fade-exit/_fadeOutRightBig.scss: -------------------------------------------------------------------------------- 1 | @if $use-fadeOutRightBig == true { 2 | 3 | @-webkit-keyframes fadeOutRightBig { 4 | 0% { 5 | opacity: 1; 6 | -webkit-transform: translateX(0); 7 | } 8 | 9 | 100% { 10 | opacity: 0; 11 | -webkit-transform: translateX($base-distance-big * 2); 12 | } 13 | } 14 | 15 | @-moz-keyframes fadeOutRightBig { 16 | 0% { 17 | opacity: 1; 18 | -moz-transform: translateX(0); 19 | } 20 | 21 | 100% { 22 | opacity: 0; 23 | -moz-transform: translateX($base-distance-big * 2); 24 | } 25 | } 26 | 27 | @-o-keyframes fadeOutRightBig { 28 | 0% { 29 | opacity: 1; 30 | -o-transform: translateX(0); 31 | } 32 | 33 | 100% { 34 | opacity: 0; 35 | -o-transform: translateX($base-distance-big * 2); 36 | } 37 | } 38 | 39 | @keyframes fadeOutRightBig { 40 | 0% { 41 | opacity: 1; 42 | transform: translateX(0); 43 | } 44 | 45 | 100% { 46 | opacity: 0; 47 | transform: translateX($base-distance-big * 2); 48 | } 49 | } 50 | 51 | .fadeOutRightBig { 52 | @include animate-prefixer(animation-name, fadeOutRightBig); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /_sass/partials/_direction-details.scss: -------------------------------------------------------------------------------- 1 | $direction-details-color: #757575; 2 | .direction-details { 3 | display: inline-block; 4 | padding: 0; 5 | color: $direction-details-color; 6 | .image-section { 7 | @media (max-width: 767px) { 8 | min-height: 350px; 9 | } 10 | } 11 | .card { 12 | transform: translateY(-125px); 13 | ul { 14 | font-size: 17px; 15 | font-weight: $regular; 16 | margin: 0; 17 | padding: 0; 18 | list-style: none; 19 | } 20 | } 21 | .questions { 22 | transform: translateY(-100px); 23 | @media (min-width: 768px) and (max-width: 991px) { 24 | transform: translateY(-125px); 25 | } 26 | } 27 | h4, h5 { 28 | font-size: 31px; 29 | font-weight: $regular; 30 | color: initial; 31 | } 32 | h5 { 33 | font-size: 20px; 34 | } 35 | p { 36 | font-size: 17px; 37 | } 38 | } 39 | .list-with-description { 40 | li { 41 | margin-bottom: 20px; 42 | } 43 | a { 44 | display: block; 45 | } 46 | } -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------------------------------- 3 | 4 | // Utilities 5 | @import "mixins/hide-text"; 6 | @import "mixins/opacity"; 7 | @import "mixins/image"; 8 | @import "mixins/labels"; 9 | @import "mixins/reset-filter"; 10 | @import "mixins/resize"; 11 | @import "mixins/responsive-visibility"; 12 | @import "mixins/size"; 13 | @import "mixins/tab-focus"; 14 | @import "mixins/text-emphasis"; 15 | @import "mixins/text-overflow"; 16 | @import "mixins/vendor-prefixes"; 17 | 18 | // Components 19 | @import "mixins/alerts"; 20 | @import "mixins/buttons"; 21 | @import "mixins/panels"; 22 | @import "mixins/pagination"; 23 | @import "mixins/list-group"; 24 | @import "mixins/nav-divider"; 25 | @import "mixins/forms"; 26 | @import "mixins/progress-bar"; 27 | @import "mixins/table-row"; 28 | 29 | // Skins 30 | @import "mixins/background-variant"; 31 | @import "mixins/border-radius"; 32 | @import "mixins/gradients"; 33 | 34 | // Layout 35 | @import "mixins/clearfix"; 36 | @import "mixins/center-block"; 37 | @import "mixins/nav-vertical-align"; 38 | @import "mixins/grid-framework"; 39 | @import "mixins/grid"; 40 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 - 2017 Oleh Zasadnyy, Vitaliy Zasadnyy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /_includes/about-hackathon.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |

{{ site.aboutHackathonTitle }}

6 | {% for row in site.hackathonRows %} 7 | {% assign check = forloop.index0 | modulo:2 %} 8 |
9 |
10 | Hackathon 11 |
12 |
13 |

{{ row.title }}

14 |

{{ row.details }}

15 |
16 |
17 | {% endfor %} 18 |
19 |
20 |
21 | 22 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_jumbotron.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding: $jumbotron-padding ($jumbotron-padding / 2); 8 | margin-bottom: $jumbotron-padding; 9 | color: $jumbotron-color; 10 | background-color: $jumbotron-bg; 11 | 12 | h1, 13 | .h1 { 14 | color: $jumbotron-heading-color; 15 | } 16 | 17 | p { 18 | margin-bottom: ($jumbotron-padding / 2); 19 | font-size: $jumbotron-font-size; 20 | font-weight: 200; 21 | } 22 | 23 | > hr { 24 | border-top-color: darken($jumbotron-bg, 10%); 25 | } 26 | 27 | .container &, 28 | .container-fluid & { 29 | border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container 30 | } 31 | 32 | .container { 33 | max-width: 100%; 34 | } 35 | 36 | @media screen and (min-width: $screen-sm-min) { 37 | padding: ($jumbotron-padding * 1.6) 0; 38 | 39 | .container &, 40 | .container-fluid & { 41 | padding-left: ($jumbotron-padding * 2); 42 | padding-right: ($jumbotron-padding * 2); 43 | } 44 | 45 | h1, 46 | .h1 { 47 | font-size: ($font-size-base * 4.5); 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /cod.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Don't be a jerk policy 4 | permalink: /cod/ 5 | isStaticPost: true 6 | --- 7 | 8 | __This "Don't be a jerk" policy is a shortened, more casual version of the longer Code of Conduct policy. [Read full version](http://meta.wikimedia.org/wiki/Don%27t_be_a_dick).__ 9 | 10 | 11 | GDG Lviv prides itself on being an open, respectful, and inclusive community. That means jerky behavior isn’t allowed at GDG meetings. Because we know that it’s not obvious to everyone, here’s a reminder of the things we don’t allow: jokes or offensive comments about sex/sexuality/race/religion/nationality/body size, showing porn in public, touching people uninvited, or continuing to interact with someone after they’ve asked you to stop. Continuous jerky behavior may result in getting expelled from the meeting or GDG Chapter. 12 | 13 | If someone is bothering you, please tell GDG Organizers immediately and they will take care of it. We want to maintain GDG DevFest’s awesomeness. 14 | 15 | 16 | ######Contacts: 17 | 18 | - Vitaliy Zasadnyy, +38 063 863 20 62, [vitaliy.zasadnyy@gdg.org.ua](mailto:vitaliy.zasadnyy@gdg.org.ua) 19 | 20 | -------------------------------------------------------------------------------- /_sass/vendor/animations/special/_rollOut.scss: -------------------------------------------------------------------------------- 1 | @if $use-rollOut == true { 2 | 3 | // originally authored by Nick Pettit - https://github.com/nickpettit/glide 4 | 5 | @-webkit-keyframes rollOut { 6 | 0% { 7 | opacity: 1; 8 | -webkit-transform: translateX(0px) rotate(0deg); 9 | } 10 | 11 | 100% { 12 | opacity: 0; 13 | -webkit-transform: translateX(100%) rotate($base-degrees * 4); 14 | } 15 | } 16 | 17 | @-moz-keyframes rollOut { 18 | 0% { 19 | opacity: 1; 20 | -moz-transform: translateX(0px) rotate(0deg); 21 | } 22 | 23 | 100% { 24 | opacity: 0; 25 | -moz-transform: translateX(100%) rotate($base-degrees * 4); 26 | } 27 | } 28 | 29 | @-o-keyframes rollOut { 30 | 0% { 31 | opacity: 1; 32 | -o-transform: translateX(0px) rotate(0deg); 33 | } 34 | 35 | 100% { 36 | opacity: 0; 37 | -o-transform: translateX(100%) rotate($base-degrees * 4); 38 | } 39 | } 40 | 41 | @keyframes rollOut { 42 | 0% { 43 | opacity: 1; 44 | transform: translateX(0px) rotate(0deg); 45 | } 46 | 47 | 100% { 48 | opacity: 0; 49 | transform: translateX(100%) rotate($base-degrees * 4); 50 | } 51 | } 52 | 53 | .rollOut { 54 | @include animate-prefixer(animation-name, rollOut); 55 | } 56 | 57 | } 58 | -------------------------------------------------------------------------------- /js/sources/jquery.appear.min.js: -------------------------------------------------------------------------------- 1 | !function(t){t.fn.appear=function(e,s){var o=t.extend({data:void 0,one:!0,accX:0,accY:0},s);return this.each(function(){var s=t(this);if(s.appeared=!1,!e)return void s.trigger("appear",o.data);var i=t(window),a=function(){if(!s.is(":visible"))return void(s.appeared=!1);var t=i.scrollLeft(),e=i.scrollTop(),a=s.offset(),r=a.left,n=a.top,p=o.accX,u=o.accY,c=s.height(),h=i.height(),l=s.width(),f=i.width();e>n+c+u||n>e+h+u||t>r+l+p||r>t+f+p?s.appeared=!1:s.appeared||s.trigger("appear",o.data)},r=function(){if(s.appeared=!0,o.one){i.unbind("scroll",a);var r=t.inArray(a,t.fn.appear.checks);0>r||t.fn.appear.checks.splice(r,1)}e.apply(this,arguments)};o.one?s.one("appear",o.data,r):s.bind("appear",o.data,r),i.scroll(a),t.fn.appear.checks.push(a),a()})},t.extend(t.fn.appear,{checks:[],timeout:null,checkAll:function(){var e=t.fn.appear.checks.length;if(e>0)for(;e--;)t.fn.appear.checks[e]()},run:function(){t.fn.appear.timeout&&clearTimeout(t.fn.appear.timeout),t.fn.appear.timeout=setTimeout(t.fn.appear.checkAll,20)}}),t.each(["append","prepend","after","before","attr","removeAttr","addClass","removeClass","toggleClass","remove","css","show","hide"],function(e,s){var o=t.fn[s];o&&(t.fn[s]=function(){var e=o.apply(this,arguments);return t.fn.appear.run(),e})})}(jQuery); -------------------------------------------------------------------------------- /_sass/partials/_blog.scss: -------------------------------------------------------------------------------- 1 | .blog { 2 | h3 { 3 | margin: 0 0 20px; 4 | } 5 | } 6 | .post-section { 7 | padding-top: 20px; 8 | } 9 | .post { 10 | max-width: 750px; 11 | margin-bottom: 52px; 12 | @media (max-width: 767px) { 13 | margin-bottom: 26px; 14 | } 15 | li { 16 | font-size: 15px; 17 | line-height: 26px; 18 | } 19 | } 20 | .post-header { 21 | height: 20px; 22 | margin-top: 20px; 23 | font-size: 14px; 24 | .published { 25 | padding: 0; 26 | font-weight: $bold; 27 | } 28 | .publish-date { 29 | color: #656565; 30 | } 31 | .share { 32 | padding: 0; 33 | text-align: right; 34 | } 35 | .social-links { 36 | li { 37 | margin-left: 4px; 38 | } 39 | } 40 | } 41 | .post-body { 42 | margin-top: 19px; 43 | h4 { 44 | margin-top: 40px; 45 | } 46 | iframe, img { 47 | display: block; 48 | margin: 16px 0; 49 | } 50 | } 51 | .page-navigation { 52 | margin-bottom: 40px; 53 | font-weight: $bold; 54 | } 55 | .comments { 56 | margin-top: 26px; 57 | } 58 | .pagination { 59 | font-size: 14px; 60 | margin: 0; 61 | .page-number { 62 | margin: 0 7px; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /_sass/partials/_sprites.scss: -------------------------------------------------------------------------------- 1 | .logo { 2 | background-image: url($logos-sprite); 3 | background-repeat: no-repeat; 4 | &.logo-dark { 5 | background-position: 0 -1px; 6 | } 7 | &.logo-gray { 8 | background-position: 0 -63px; 9 | } 10 | &.logo-light { 11 | background-position: 0 -127px; 12 | } 13 | } 14 | .icon { 15 | display: inline-block; 16 | width: 16px; 17 | height: 16px; 18 | cursor: pointer; 19 | fill: $icon-fill-color; 20 | transition: all .5s; 21 | } 22 | .icon-vk:hover { 23 | fill: #4c75a3; 24 | } 25 | .icon-rss:hover { 26 | fill: #f99638; 27 | } 28 | .icon-site:hover { 29 | fill: #ba620b; 30 | } 31 | .icon-email:hover { 32 | fill: #e34c41; 33 | } 34 | .icon-skype:hover { 35 | fill: #01aef2; 36 | } 37 | .icon-github:hover { 38 | fill: #464646; 39 | } 40 | .icon-twitter:hover { 41 | fill: #1bb2e9; 42 | } 43 | .icon-youtube:hover { 44 | fill: #cc181e; 45 | } 46 | .icon-facebook:hover { 47 | fill: #3c599b; 48 | } 49 | .icon-pinterest:hover { 50 | fill: #ed0103; 51 | } 52 | .icon-linkedin:hover { 53 | fill: #017eb4; 54 | } 55 | .icon-direction:hover { 56 | fill: #3a84df; 57 | } 58 | .icon-google-plus:hover { 59 | fill: #ce352c; 60 | } 61 | .icon-stack-overflow:hover { 62 | fill: #ef7c02; 63 | } -------------------------------------------------------------------------------- /_sass/main.scss: -------------------------------------------------------------------------------- 1 | // Modules and Variables 2 | @import "partials/base"; 3 | 4 | // Third-party 5 | @import "vendor/bootstrap-custom"; 6 | @import "vendor/animate"; 7 | @import "vendor/waves"; 8 | 9 | // Partials 10 | @import "partials/global"; 11 | @import "partials/buttons"; 12 | @import "partials/helper"; 13 | @import "partials/sprites"; 14 | @import "partials/navigation"; 15 | 16 | // Sections 17 | @import "partials/hero"; 18 | @import "partials/top-section"; 19 | @import "partials/about"; 20 | @import "partials/statistic"; 21 | @import "partials/latest-news"; 22 | @import "partials/rockstar-speakers"; 23 | @import "partials/tickets"; 24 | @import "partials/tickets-2"; 25 | @import "partials/location-map"; 26 | @import "partials/venue"; 27 | @import "partials/twitter-feed"; 28 | @import "partials/partners"; 29 | @import "partials/subscribe"; 30 | @import "partials/footer"; 31 | @import "partials/blog"; 32 | @import "partials/find-way"; 33 | @import "partials/direction-details"; 34 | @import "partials/team"; 35 | @import "partials/zoe-effect"; 36 | @import "partials/lily-effect"; 37 | @import "partials/ribbon"; 38 | @import "partials/modal"; 39 | @import "partials/schedule"; 40 | @import "partials/about-hackathon"; 41 | @import "partials/judges"; 42 | @import "partials/prizes"; 43 | @import "partials/hackathon-location"; -------------------------------------------------------------------------------- /_includes/about.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |

{{ site.aboutTitle }}

6 |
7 | {% assign animationDelay = 0 %} 8 | {% for about in site.aboutBlock %} 9 | {% assign colWidth = 12 | divided_by: forloop.length %} 10 |
11 |
12 |
{{ about.title }}
13 | {{ about.title }} 14 |

{{ about.text }}

15 |
16 |
17 | {% assign animationDelay = animationDelay | plus:500 %} 18 | {% assign check = forloop.index | modulo:2 %} 19 | {% if check == 0 %}
{% endif %} 20 | {% endfor %} 21 |
22 |
23 |
24 |
25 | 26 | -------------------------------------------------------------------------------- /_sass/vendor/animations/attention-seekers/_swing.scss: -------------------------------------------------------------------------------- 1 | @if $use-swing == true { 2 | 3 | @-webkit-keyframes swing { 4 | 20%, 40%, 60%, 80%, 100% { -webkit-transform-origin: $base-origin; } 5 | 20% { -webkit-transform: rotate(15deg); } 6 | 40% { -webkit-transform: rotate(-10deg); } 7 | 60% { -webkit-transform: rotate(5deg); } 8 | 80% { -webkit-transform: rotate(-5deg); } 9 | 100% { -webkit-transform: rotate(0deg); } 10 | } 11 | 12 | @-moz-keyframes swing { 13 | 20% { -moz-transform: rotate(15deg); } 14 | 40% { -moz-transform: rotate(-10deg); } 15 | 60% { -moz-transform: rotate(5deg); } 16 | 80% { -moz-transform: rotate(-5deg); } 17 | 100% { -moz-transform: rotate(0deg); } 18 | } 19 | 20 | @-o-keyframes swing { 21 | 20% { -o-transform: rotate(15deg); } 22 | 40% { -o-transform: rotate(-10deg); } 23 | 60% { -o-transform: rotate(5deg); } 24 | 80% { -o-transform: rotate(-5deg); } 25 | 100% { -o-transform: rotate(0deg); } 26 | } 27 | 28 | @keyframes swing { 29 | 20% { transform: rotate(15deg); } 30 | 40% { transform: rotate(-10deg); } 31 | 60% { transform: rotate(5deg); } 32 | 80% { transform: rotate(-5deg); } 33 | 100% { transform: rotate(0deg); } 34 | } 35 | 36 | .swing { 37 | @include animate-prefixer(transform-origin, $base-origin); 38 | @include animate-prefixer(animation-name, swing); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_buttons.scss: -------------------------------------------------------------------------------- 1 | // Button variants 2 | // 3 | // Easily pump out default styles, as well as :hover, :focus, :active, 4 | // and disabled options for all buttons 5 | 6 | @mixin button-variant($color, $background, $border) { 7 | color: $color; 8 | background-color: $background; 9 | border-color: $border; 10 | 11 | &:hover, 12 | &:focus, 13 | &.focus, 14 | &:active, 15 | &.active, 16 | .open > &.dropdown-toggle { 17 | color: $color; 18 | background-color: darken($background, 10%); 19 | border-color: darken($border, 12%); 20 | } 21 | &:active, 22 | &.active, 23 | .open > &.dropdown-toggle { 24 | background-image: none; 25 | } 26 | &.disabled, 27 | &[disabled], 28 | fieldset[disabled] & { 29 | &, 30 | &:hover, 31 | &:focus, 32 | &.focus, 33 | &:active, 34 | &.active { 35 | background-color: $background; 36 | border-color: $border; 37 | } 38 | } 39 | 40 | .badge { 41 | color: $background; 42 | background-color: $color; 43 | } 44 | } 45 | 46 | // Button sizes 47 | @mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) { 48 | padding: $padding-vertical $padding-horizontal; 49 | font-size: $font-size; 50 | line-height: $line-height; 51 | border-radius: $border-radius; 52 | } 53 | -------------------------------------------------------------------------------- /_includes/statistic.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 | {% assign animationDelay = 0 %} 7 | {% for statistic in site.statisticBlock %} 8 | {% assign colWidth = 12 | divided_by: forloop.length %} 9 |
10 |
11 |
{{ statistic.count}}{{ statistic.specialCharacter}}
12 |
{{ statistic.info}}
13 |
14 |

{{ statistic.detail}}

15 |
16 |
17 | {% assign animationDelay = animationDelay | plus:500 %} 18 | {% assign check = forloop.index | modulo:2 %} 19 | {% if check == 0 %}
{% endif %} 20 | {% endfor %} 21 |
22 |
23 |
24 | -------------------------------------------------------------------------------- /_sass/vendor/animations/flippers/_flipOutY.scss: -------------------------------------------------------------------------------- 1 | @if $use-flipOutY == true { 2 | 3 | @-webkit-keyframes flipOutY { 4 | 0% { 5 | -webkit-transform: perspective($flipper-perspective) rotateY(0deg); 6 | opacity: 1; 7 | } 8 | 100% { 9 | -webkit-transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); 10 | opacity: 0; 11 | } 12 | } 13 | 14 | @-moz-keyframes flipOutY { 15 | 0% { 16 | -moz-transform: perspective($flipper-perspective) rotateY(0deg); 17 | opacity: 1; 18 | } 19 | 100% { 20 | -moz-transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); 21 | opacity: 0; 22 | } 23 | } 24 | 25 | @-o-keyframes flipOutY { 26 | 0% { 27 | -o-transform: perspective($flipper-perspective) rotateY(0deg); 28 | opacity: 1; 29 | } 30 | 100% { 31 | -o-transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); 32 | opacity: 0; 33 | } 34 | } 35 | 36 | @keyframes flipOutY { 37 | 0% { 38 | transform: perspective($flipper-perspective) rotateY(0deg); 39 | opacity: 1; 40 | } 41 | 100% { 42 | transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); 43 | opacity: 0; 44 | } 45 | } 46 | 47 | .flipOutY { 48 | @include animate-prefixer(backface-visibility, visible !important); 49 | @include animate-prefixer(animation-name, flipOutY); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /_sass/vendor/animations/rotate-exit/_rotateOutUpRight.scss: -------------------------------------------------------------------------------- 1 | @if $use-rotateOutUpRight == true { 2 | @-webkit-keyframes rotateOutUpRight { 3 | 0% { 4 | -webkit-transform-origin: right bottom; 5 | -webkit-transform: rotate(0); 6 | opacity: 1; 7 | } 8 | 9 | 100% { 10 | -webkit-transform-origin: right bottom; 11 | -webkit-transform: rotate($rotate-degrees); 12 | opacity: 0; 13 | } 14 | } 15 | 16 | @-moz-keyframes rotateOutUpRight { 17 | 0% { 18 | -moz-transform-origin: right bottom; 19 | -moz-transform: rotate(0); 20 | opacity: 1; 21 | } 22 | 23 | 100% { 24 | -moz-transform-origin: right bottom; 25 | -moz-transform: rotate($rotate-degrees); 26 | opacity: 0; 27 | } 28 | } 29 | 30 | @-o-keyframes rotateOutUpRight { 31 | 0% { 32 | -o-transform-origin: right bottom; 33 | -o-transform: rotate(0); 34 | opacity: 1; 35 | } 36 | 37 | 100% { 38 | -o-transform-origin: right bottom; 39 | -o-transform: rotate($rotate-degrees); 40 | opacity: 0; 41 | } 42 | } 43 | 44 | @keyframes rotateOutUpRight { 45 | 0% { 46 | transform-origin: right bottom; 47 | transform: rotate(0); 48 | opacity: 1; 49 | } 50 | 51 | 100% { 52 | transform-origin: right bottom; 53 | transform: rotate($rotate-degrees); 54 | opacity: 0; 55 | } 56 | } 57 | 58 | .rotateOutUpRight { 59 | @include animate-prefixer(animation-name, rotateOutUpRight); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/mixins/_image.scss: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | @mixin img-responsive($display: block) { 10 | display: $display; 11 | max-width: 100%; // Part 1: Set a maximum relative to the parent 12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching 13 | } 14 | 15 | 16 | // Retina image 17 | // 18 | // Short retina mixin for setting background-image and -size. Note that the 19 | // spelling of `min--moz-device-pixel-ratio` is intentional. 20 | @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) { 21 | background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-1x}"), "#{$file-1x}")); 22 | 23 | @media 24 | only screen and (-webkit-min-device-pixel-ratio: 2), 25 | only screen and ( min--moz-device-pixel-ratio: 2), 26 | only screen and ( -o-min-device-pixel-ratio: 2/1), 27 | only screen and ( min-device-pixel-ratio: 2), 28 | only screen and ( min-resolution: 192dpi), 29 | only screen and ( min-resolution: 2dppx) { 30 | background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-2x}"), "#{$file-2x}")); 31 | background-size: $width-1x $height-1x; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /_sass/vendor/animations/rotate-enter/_rotateIn.scss: -------------------------------------------------------------------------------- 1 | @if $use-rotateIn == true { 2 | 3 | @-webkit-keyframes rotateIn { 4 | 0% { 5 | -webkit-transform-origin: $rotate-origin; 6 | -webkit-transform: rotate(-$rotate-degrees-max); 7 | opacity: 0; 8 | } 9 | 10 | 100% { 11 | -webkit-transform-origin: $rotate-origin; 12 | -webkit-transform: rotate(0); 13 | opacity: 1; 14 | } 15 | } 16 | @-moz-keyframes rotateIn { 17 | 0% { 18 | -moz-transform-origin: $rotate-origin; 19 | -moz-transform: rotate(-$rotate-degrees-max); 20 | opacity: 0; 21 | } 22 | 23 | 100% { 24 | -moz-transform-origin: $rotate-origin; 25 | -moz-transform: rotate(0); 26 | opacity: 1; 27 | } 28 | } 29 | @-o-keyframes rotateIn { 30 | 0% { 31 | -o-transform-origin: $rotate-origin; 32 | -o-transform: rotate(-$rotate-degrees-max); 33 | opacity: 0; 34 | } 35 | 36 | 100% { 37 | -o-transform-origin: $rotate-origin; 38 | -o-transform: rotate(0); 39 | opacity: 1; 40 | } 41 | } 42 | @keyframes rotateIn { 43 | 0% { 44 | transform-origin: $rotate-origin; 45 | transform: rotate(-$rotate-degrees-max); 46 | opacity: 0; 47 | } 48 | 49 | 100% { 50 | transform-origin: $rotate-origin; 51 | transform: rotate(0); 52 | opacity: 1; 53 | } 54 | } 55 | 56 | .rotateIn { 57 | @include animate-prefixer(animation-name, rotateIn); 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /_sass/vendor/animations/rotate-exit/_rotateOut.scss: -------------------------------------------------------------------------------- 1 | @if $use-rotateOut == true { 2 | 3 | @-webkit-keyframes rotateOut { 4 | 0% { 5 | -webkit-transform-origin: $rotate-origin; 6 | -webkit-transform: rotate(0); 7 | opacity: 1; 8 | } 9 | 10 | 100% { 11 | -webkit-transform-origin: $rotate-origin; 12 | -webkit-transform: rotate($rotate-degrees-max); 13 | opacity: 0; 14 | } 15 | } 16 | 17 | @-moz-keyframes rotateOut { 18 | 0% { 19 | -moz-transform-origin: $rotate-origin; 20 | -moz-transform: rotate(0); 21 | opacity: 1; 22 | } 23 | 24 | 100% { 25 | -moz-transform-origin: $rotate-origin; 26 | -moz-transform: rotate($rotate-degrees-max); 27 | opacity: 0; 28 | } 29 | } 30 | 31 | @-o-keyframes rotateOut { 32 | 0% { 33 | -o-transform-origin: $rotate-origin; 34 | -o-transform: rotate(0); 35 | opacity: 1; 36 | } 37 | 38 | 100% { 39 | -o-transform-origin: $rotate-origin; 40 | -o-transform: rotate($rotate-degrees-max); 41 | opacity: 0; 42 | } 43 | } 44 | 45 | @keyframes rotateOut { 46 | 0% { 47 | transform-origin: $rotate-origin; 48 | transform: rotate(0); 49 | opacity: 1; 50 | } 51 | 52 | 100% { 53 | transform-origin: $rotate-origin; 54 | transform: rotate($rotate-degrees-max); 55 | opacity: 0; 56 | } 57 | } 58 | 59 | .rotateOut { 60 | @include animate-prefixer(animation-name, rotateOut); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /_includes/hero.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | {% include navigation.html %} 4 |
5 |
6 |
7 | {% assign heroText = site.heroTitle | split:"" %} 8 |

{{ heroText[0] }}{{ site.typeoutFallback }}{{ heroText[1] }}

9 |

{{ site.eventDate }}

10 | {% for button in site.heroButtons %} 11 | {{ button.text }} 12 | {% endfor %} 13 |
14 |
15 | 16 | 17 | 18 | 19 | 20 |
21 |
22 | -------------------------------------------------------------------------------- /_sass/vendor/animations/attention-seekers/_tada.scss: -------------------------------------------------------------------------------- 1 | @if $use-tada == true { 2 | 3 | @-webkit-keyframes tada { 4 | 0% {-webkit-transform: scale(1);} 5 | 10%, 20% {-webkit-transform: scale(0.9) rotate(-3deg);} 6 | 30%, 50%, 70%, 90% {-webkit-transform: scale(1.1) rotate(3deg);} 7 | 40%, 60%, 80% {-webkit-transform: scale(1.1) rotate(-3deg);} 8 | 100% {-webkit-transform: scale(1) rotate(0);} 9 | } 10 | 11 | @-moz-keyframes tada { 12 | 0% {-moz-transform: scale(1);} 13 | 10%, 20% {-moz-transform: scale(0.9) rotate(-3deg);} 14 | 30%, 50%, 70%, 90% {-moz-transform: scale(1.1) rotate(3deg);} 15 | 40%, 60%, 80% {-moz-transform: scale(1.1) rotate(-3deg);} 16 | 100% {-moz-transform: scale(1) rotate(0);} 17 | } 18 | 19 | @-o-keyframes tada { 20 | 0% {-o-transform: scale(1);} 21 | 10%, 20% {-o-transform: scale(0.9) rotate(-3deg);} 22 | 30%, 50%, 70%, 90% {-o-transform: scale(1.1) rotate(3deg);} 23 | 40%, 60%, 80% {-o-transform: scale(1.1) rotate(-3deg);} 24 | 100% {-o-transform: scale(1) rotate(0);} 25 | } 26 | 27 | @keyframes tada { 28 | 0% {transform: scale(1);} 29 | 10%, 20% {transform: scale(0.9) rotate(-3deg);} 30 | 30%, 50%, 70%, 90% {transform: scale(1.1) rotate(3deg);} 31 | 40%, 60%, 80% {transform: scale(1.1) rotate(-3deg);} 32 | 100% {transform: scale(1) rotate(0);} 33 | } 34 | 35 | .tada { 36 | @include animate-prefixer(animation-name, tada); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /_sass/vendor/animations/rotate-enter/_rotateInUpLeft.scss: -------------------------------------------------------------------------------- 1 | @if $use-rotateInUpLeft == true { 2 | 3 | @-webkit-keyframes rotateInUpLeft { 4 | 0% { 5 | -webkit-transform-origin: left bottom; 6 | -webkit-transform: rotate($rotate-degrees); 7 | opacity: 0; 8 | } 9 | 10 | 100% { 11 | -webkit-transform-origin: left bottom; 12 | -webkit-transform: rotate(0); 13 | opacity: 1; 14 | } 15 | } 16 | 17 | @-moz-keyframes rotateInUpLeft { 18 | 0% { 19 | -moz-transform-origin: left bottom; 20 | -moz-transform: rotate($rotate-degrees); 21 | opacity: 0; 22 | } 23 | 24 | 100% { 25 | -moz-transform-origin: left bottom; 26 | -moz-transform: rotate(0); 27 | opacity: 1; 28 | } 29 | } 30 | 31 | @-o-keyframes rotateInUpLeft { 32 | 0% { 33 | -o-transform-origin: left bottom; 34 | -o-transform: rotate($rotate-degrees); 35 | opacity: 0; 36 | } 37 | 38 | 100% { 39 | -o-transform-origin: left bottom; 40 | -o-transform: rotate(0); 41 | opacity: 1; 42 | } 43 | } 44 | 45 | @keyframes rotateInUpLeft { 46 | 0% { 47 | transform-origin: left bottom; 48 | transform: rotate($rotate-degrees); 49 | opacity: 0; 50 | } 51 | 52 | 100% { 53 | transform-origin: left bottom; 54 | transform: rotate(0); 55 | opacity: 1; 56 | } 57 | } 58 | 59 | .rotateInUpLeft { 60 | @include animate-prefixer(animation-name, rotateInUpLeft); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /_sass/vendor/animations/rotate-enter/_rotateInDownLeft.scss: -------------------------------------------------------------------------------- 1 | @if $use-rotateInDownLeft == true { 2 | 3 | @-webkit-keyframes rotateInDownLeft { 4 | 0% { 5 | -webkit-transform-origin: left bottom; 6 | -webkit-transform: rotate(-$rotate-degrees); 7 | opacity: 0; 8 | } 9 | 10 | 100% { 11 | -webkit-transform-origin: left bottom; 12 | -webkit-transform: rotate(0); 13 | opacity: 1; 14 | } 15 | } 16 | 17 | @-moz-keyframes rotateInDownLeft { 18 | 0% { 19 | -moz-transform-origin: left bottom; 20 | -moz-transform: rotate(-$rotate-degrees); 21 | opacity: 0; 22 | } 23 | 24 | 100% { 25 | -moz-transform-origin: left bottom; 26 | -moz-transform: rotate(0); 27 | opacity: 1; 28 | } 29 | } 30 | 31 | @-o-keyframes rotateInDownLeft { 32 | 0% { 33 | -o-transform-origin: left bottom; 34 | -o-transform: rotate(-$rotate-degrees); 35 | opacity: 0; 36 | } 37 | 38 | 100% { 39 | -o-transform-origin: left bottom; 40 | -o-transform: rotate(0); 41 | opacity: 1; 42 | } 43 | } 44 | 45 | @keyframes rotateInDownLeft { 46 | 0% { 47 | transform-origin: left bottom; 48 | transform: rotate(-$rotate-degrees); 49 | opacity: 0; 50 | } 51 | 52 | 100% { 53 | transform-origin: left bottom; 54 | transform: rotate(0); 55 | opacity: 1; 56 | } 57 | } 58 | 59 | .rotateInDownLeft { 60 | @include animate-prefixer(animation-name, rotateInDownLeft); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /_sass/vendor/animations/rotate-exit/_rotateOutDownLeft.scss: -------------------------------------------------------------------------------- 1 | @if $use-rotateOutDownLeft == true { 2 | 3 | @-webkit-keyframes rotateOutDownLeft { 4 | 0% { 5 | -webkit-transform-origin: left bottom; 6 | -webkit-transform: rotate(0); 7 | opacity: 1; 8 | } 9 | 10 | 100% { 11 | -webkit-transform-origin: left bottom; 12 | -webkit-transform: rotate($rotate-degrees); 13 | opacity: 0; 14 | } 15 | } 16 | 17 | @-moz-keyframes rotateOutDownLeft { 18 | 0% { 19 | -moz-transform-origin: left bottom; 20 | -moz-transform: rotate(0); 21 | opacity: 1; 22 | } 23 | 24 | 100% { 25 | -moz-transform-origin: left bottom; 26 | -moz-transform: rotate($rotate-degrees); 27 | opacity: 0; 28 | } 29 | } 30 | 31 | @-o-keyframes rotateOutDownLeft { 32 | 0% { 33 | -o-transform-origin: left bottom; 34 | -o-transform: rotate(0); 35 | opacity: 1; 36 | } 37 | 38 | 100% { 39 | -o-transform-origin: left bottom; 40 | -o-transform: rotate($rotate-degrees); 41 | opacity: 0; 42 | } 43 | } 44 | 45 | @keyframes rotateOutDownLeft { 46 | 0% { 47 | transform-origin: left bottom; 48 | transform: rotate(0); 49 | opacity: 1; 50 | } 51 | 52 | 100% { 53 | transform-origin: left bottom; 54 | transform: rotate($rotate-degrees); 55 | opacity: 0; 56 | } 57 | } 58 | 59 | .rotateOutDownLeft { 60 | @include animate-prefixer(animation-name, rotateOutDownLeft); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /_sass/vendor/animations/rotate-exit/_rotateOutUpLeft.scss: -------------------------------------------------------------------------------- 1 | @if $use-rotateOutDownRight == true { 2 | 3 | @-webkit-keyframes rotateOutUpLeft { 4 | 0% { 5 | -webkit-transform-origin: left bottom; 6 | -webkit-transform: rotate(0); 7 | opacity: 1; 8 | } 9 | 10 | 100% { 11 | -webkit-transform-origin: left bottom; 12 | -webkit-transform: rotate(-$rotate-degrees); 13 | opacity: 0; 14 | } 15 | } 16 | 17 | @-moz-keyframes rotateOutUpLeft { 18 | 0% { 19 | -moz-transform-origin: left bottom; 20 | -moz-transform: rotate(0); 21 | opacity: 1; 22 | } 23 | 24 | 100% { 25 | -moz-transform-origin: left bottom; 26 | -moz-transform: rotate(-$rotate-degrees); 27 | opacity: 0; 28 | } 29 | } 30 | 31 | @-o-keyframes rotateOutUpLeft { 32 | 0% { 33 | -o-transform-origin: left bottom; 34 | -o-transform: rotate(0); 35 | opacity: 1; 36 | } 37 | 38 | 100% { 39 | -o-transform-origin: left bottom; 40 | -o-transform: rotate(-$rotate-degrees); 41 | opacity: 0; 42 | } 43 | } 44 | 45 | @keyframes rotateOutUpLeft { 46 | 0% { 47 | transform-origin: left bottom; 48 | transform: rotate(0); 49 | opacity: 1; 50 | } 51 | 52 | 100% { 53 | -transform-origin: left bottom; 54 | -transform: rotate(-$rotate-degrees); 55 | opacity: 0; 56 | } 57 | } 58 | 59 | .rotateOutUpLeft { 60 | @include animate-prefixer(animation-name, rotateOutUpLeft); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /_sass/vendor/animations/rotate-enter/_rotateInUpRight.scss: -------------------------------------------------------------------------------- 1 | @if $use-rotateInUpRight == true { 2 | 3 | @-webkit-keyframes rotateInUpRight { 4 | 0% { 5 | -webkit-transform-origin: right bottom; 6 | -webkit-transform: rotate(-$rotate-degrees); 7 | opacity: 0; 8 | } 9 | 10 | 100% { 11 | -webkit-transform-origin: right bottom; 12 | -webkit-transform: rotate(0); 13 | opacity: 1; 14 | } 15 | } 16 | 17 | @-moz-keyframes rotateInUpRight { 18 | 0% { 19 | -moz-transform-origin: right bottom; 20 | -moz-transform: rotate(-$rotate-degrees); 21 | opacity: 0; 22 | } 23 | 24 | 100% { 25 | -moz-transform-origin: right bottom; 26 | -moz-transform: rotate(0); 27 | opacity: 1; 28 | } 29 | } 30 | 31 | @-o-keyframes rotateInUpRight { 32 | 0% { 33 | -o-transform-origin: right bottom; 34 | -o-transform: rotate(-$rotate-degrees); 35 | opacity: 0; 36 | } 37 | 38 | 100% { 39 | -o-transform-origin: right bottom; 40 | -o-transform: rotate(0); 41 | opacity: 1; 42 | } 43 | } 44 | 45 | @keyframes rotateInUpRight { 46 | 0% { 47 | transform-origin: right bottom; 48 | transform: rotate(-$rotate-degrees); 49 | opacity: 0; 50 | } 51 | 52 | 100% { 53 | transform-origin: right bottom; 54 | transform: rotate(0); 55 | opacity: 1; 56 | } 57 | } 58 | 59 | .rotateInUpRight { 60 | @include animate-prefixer(animation-name, rotateInUpRight); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /_sass/vendor/animations/bounce-exit/_bounceOutUp.scss: -------------------------------------------------------------------------------- 1 | @if $use-bounceOutUp == true { 2 | 3 | @-webkit-keyframes bounceOutUp { 4 | 0% { 5 | -webkit-transform: translateY(0); 6 | } 7 | 8 | 20% { 9 | opacity: 1; 10 | -webkit-transform: translateY($base-distance * 2); 11 | } 12 | 13 | 100% { 14 | opacity: 0; 15 | -webkit-transform: translateY(-$base-distance-big * 2); 16 | } 17 | } 18 | 19 | @-moz-keyframes bounceOutUp { 20 | 0% { 21 | -moz-transform: translateY(0); 22 | } 23 | 24 | 20% { 25 | opacity: 1; 26 | -moz-transform: translateY($base-distance * 2); 27 | } 28 | 29 | 100% { 30 | opacity: 0; 31 | -moz-transform: translateY(-$base-distance-big * 2); 32 | } 33 | } 34 | 35 | @-o-keyframes bounceOutUp { 36 | 0% { 37 | -o-transform: translateY(0); 38 | } 39 | 40 | 20% { 41 | opacity: 1; 42 | -o-transform: translateY($base-distance * 2); 43 | } 44 | 45 | 100% { 46 | opacity: 0; 47 | -o-transform: translateY(-$base-distance-big * 2); 48 | } 49 | } 50 | 51 | @keyframes bounceOutUp { 52 | 0% { 53 | transform: translateY(0); 54 | } 55 | 56 | 20% { 57 | opacity: 1; 58 | transform: translateY($base-distance * 2); 59 | } 60 | 61 | 100% { 62 | opacity: 0; 63 | transform: translateY(-$base-distance-big * 2); 64 | } 65 | } 66 | 67 | .bounceOutUp { 68 | @include animate-prefixer(animation-name, bounceOutUp); 69 | } 70 | 71 | } 72 | -------------------------------------------------------------------------------- /_sass/vendor/animations/rotate-enter/_rotateInDownRight.scss: -------------------------------------------------------------------------------- 1 | @if $use-rotateInDownRight == true { 2 | 3 | @-webkit-keyframes rotateInDownRight { 4 | 0% { 5 | -webkit-transform-origin: right bottom; 6 | -webkit-transform: rotate($rotate-degrees); 7 | opacity: 0; 8 | } 9 | 10 | 100% { 11 | -webkit-transform-origin: right bottom; 12 | -webkit-transform: rotate(0); 13 | opacity: 1; 14 | } 15 | } 16 | 17 | @-moz-keyframes rotateInDownRight { 18 | 0% { 19 | -moz-transform-origin: right bottom; 20 | -moz-transform: rotate($rotate-degrees); 21 | opacity: 0; 22 | } 23 | 24 | 100% { 25 | -moz-transform-origin: right bottom; 26 | -moz-transform: rotate(0); 27 | opacity: 1; 28 | } 29 | } 30 | 31 | @-o-keyframes rotateInDownRight { 32 | 0% { 33 | -o-transform-origin: right bottom; 34 | -o-transform: rotate($rotate-degrees); 35 | opacity: 0; 36 | } 37 | 38 | 100% { 39 | -o-transform-origin: right bottom; 40 | -o-transform: rotate(0); 41 | opacity: 1; 42 | } 43 | } 44 | 45 | @keyframes rotateInDownRight { 46 | 0% { 47 | transform-origin: right bottom; 48 | transform: rotate($rotate-degrees); 49 | opacity: 0; 50 | } 51 | 52 | 100% { 53 | transform-origin: right bottom; 54 | transform: rotate(0); 55 | opacity: 1; 56 | } 57 | } 58 | 59 | .rotateInDownRight { 60 | @include animate-prefixer(animation-name, rotateInDownRight); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /_sass/vendor/animations/rotate-exit/_rotateOutDownRight.scss: -------------------------------------------------------------------------------- 1 | @if $use-rotateOutDownRight == true { 2 | 3 | @-webkit-keyframes rotateOutDownRight { 4 | 0% { 5 | -webkit-transform-origin: right bottom; 6 | -webkit-transform: rotate(0); 7 | opacity: 1; 8 | } 9 | 10 | 100% { 11 | -webkit-transform-origin: right bottom; 12 | -webkit-transform: rotate(-$rotate-degrees); 13 | opacity: 0; 14 | } 15 | } 16 | 17 | @-moz-keyframes rotateOutDownRight { 18 | 0% { 19 | -moz-transform-origin: right bottom; 20 | -moz-transform: rotate(0); 21 | opacity: 1; 22 | } 23 | 24 | 100% { 25 | -moz-transform-origin: right bottom; 26 | -moz-transform: rotate(-$rotate-degrees); 27 | opacity: 0; 28 | } 29 | } 30 | 31 | @-o-keyframes rotateOutDownRight { 32 | 0% { 33 | -o-transform-origin: right bottom; 34 | -o-transform: rotate(0); 35 | opacity: 1; 36 | } 37 | 38 | 100% { 39 | -o-transform-origin: right bottom; 40 | -o-transform: rotate(-$rotate-degrees); 41 | opacity: 0; 42 | } 43 | } 44 | 45 | @keyframes rotateOutDownRight { 46 | 0% { 47 | transform-origin: right bottom; 48 | transform: rotate(0); 49 | opacity: 1; 50 | } 51 | 52 | 100% { 53 | transform-origin: right bottom; 54 | transform: rotate(-$rotate-degrees); 55 | opacity: 0; 56 | } 57 | } 58 | 59 | .rotateOutDownRight { 60 | @include animate-prefixer(animation-name, rotateOutDownRight); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /_sass/vendor/animations/bounce-exit/_bounceOutDown.scss: -------------------------------------------------------------------------------- 1 | @if $use-bounceOutDown == true { 2 | 3 | @-webkit-keyframes bounceOutDown { 4 | 0% { 5 | -webkit-transform: translateY(0); 6 | } 7 | 8 | 20% { 9 | opacity: 1; 10 | -webkit-transform: translateY(-$base-distance * 2); 11 | } 12 | 13 | 100% { 14 | opacity: 0; 15 | -webkit-transform: translateY($base-distance-big * 2); 16 | } 17 | } 18 | 19 | @-moz-keyframes bounceOutDown { 20 | 0% { 21 | -moz-transform: translateY(0); 22 | } 23 | 24 | 20% { 25 | opacity: 1; 26 | -moz-transform: translateY(-$base-distance * 2); 27 | } 28 | 29 | 100% { 30 | opacity: 0; 31 | -moz-transform: translateY($base-distance-big * 2); 32 | } 33 | } 34 | 35 | @-o-keyframes bounceOutDown { 36 | 0% { 37 | -o-transform: translateY(0); 38 | } 39 | 40 | 20% { 41 | opacity: 1; 42 | -o-transform: translateY(-$base-distance * 2); 43 | } 44 | 45 | 100% { 46 | opacity: 0; 47 | -o-transform: translateY($base-distance-big * 2); 48 | } 49 | } 50 | 51 | @keyframes bounceOutDown { 52 | 0% { 53 | transform: translateY(0); 54 | } 55 | 56 | 20% { 57 | opacity: 1; 58 | transform: translateY(-$base-distance * 2); 59 | } 60 | 61 | 100% { 62 | opacity: 0; 63 | transform: translateY($base-distance-big * 2); 64 | } 65 | } 66 | 67 | .bounceOutDown { 68 | @include animate-prefixer(animation-name, bounceOutDown); 69 | } 70 | 71 | } 72 | -------------------------------------------------------------------------------- /_sass/vendor/animations/bounce-exit/_bounceOutLeft.scss: -------------------------------------------------------------------------------- 1 | @if $use-bounceOutLeft == true { 2 | 3 | @-webkit-keyframes bounceOutLeft { 4 | 0% { 5 | -webkit-transform: translateX(0); 6 | } 7 | 8 | 20% { 9 | opacity: 1; 10 | -webkit-transform: translateX($base-distance * 2); 11 | } 12 | 13 | 100% { 14 | opacity: 0; 15 | -webkit-transform: translateX(-$base-distance-big * 2); 16 | } 17 | } 18 | 19 | @-moz-keyframes bounceOutLeft { 20 | 0% { 21 | -moz-transform: translateX(0); 22 | } 23 | 24 | 20% { 25 | opacity: 1; 26 | -moz-transform: translateX($base-distance * 2); 27 | } 28 | 29 | 100% { 30 | opacity: 0; 31 | -moz-transform: translateX(-$base-distance-big * 2); 32 | } 33 | } 34 | 35 | @-o-keyframes bounceOutLeft { 36 | 0% { 37 | -o-transform: translateX(0); 38 | } 39 | 40 | 20% { 41 | opacity: 1; 42 | -o-transform: translateX($base-distance * 2); 43 | } 44 | 45 | 100% { 46 | opacity: 0; 47 | -o-transform: translateX(-$base-distance-big * 2); 48 | } 49 | } 50 | 51 | @keyframes bounceOutLeft { 52 | 0% { 53 | transform: translateX(0); 54 | } 55 | 56 | 20% { 57 | opacity: 1; 58 | transform: translateX($base-distance * 2); 59 | } 60 | 61 | 100% { 62 | opacity: 0; 63 | transform: translateX(-$base-distance-big * 2); 64 | } 65 | } 66 | 67 | .bounceOutLeft { 68 | @include animate-prefixer(animation-name, bounceOutLeft); 69 | } 70 | 71 | } 72 | -------------------------------------------------------------------------------- /_sass/vendor/animations/bounce-exit/_bounceOutRight.scss: -------------------------------------------------------------------------------- 1 | @if $use-bounceOutRight == true { 2 | 3 | @-webkit-keyframes bounceOutRight { 4 | 0% { 5 | -webkit-transform: translateX(0); 6 | } 7 | 8 | 20% { 9 | opacity: 1; 10 | -webkit-transform: translateX(-$base-distance * 2); 11 | } 12 | 13 | 100% { 14 | opacity: 0; 15 | -webkit-transform: translateX($base-distance-big * 2); 16 | } 17 | } 18 | 19 | @-moz-keyframes bounceOutRight { 20 | 0% { 21 | -moz-transform: translateX(0); 22 | } 23 | 24 | 20% { 25 | opacity: 1; 26 | -moz-transform: translateX(-$base-distance * 2); 27 | } 28 | 29 | 100% { 30 | opacity: 0; 31 | -moz-transform: translateX($base-distance-big * 2); 32 | } 33 | } 34 | 35 | @-o-keyframes bounceOutRight { 36 | 0% { 37 | -o-transform: translateX(0); 38 | } 39 | 40 | 20% { 41 | opacity: 1; 42 | -o-transform: translateX(-$base-distance * 2); 43 | } 44 | 45 | 100% { 46 | opacity: 0; 47 | -o-transform: translateX($base-distance-big * 2); 48 | } 49 | } 50 | 51 | @keyframes bounceOutRight { 52 | 0% { 53 | transform: translateX(0); 54 | } 55 | 56 | 20% { 57 | opacity: 1; 58 | transform: translateX(-$base-distance * 2); 59 | } 60 | 61 | 100% { 62 | opacity: 0; 63 | transform: translateX($base-distance-big * 2); 64 | } 65 | } 66 | 67 | .bounceOutRight { 68 | @include animate-prefixer(animation-name, bounceOutRight); 69 | } 70 | 71 | } 72 | -------------------------------------------------------------------------------- /_sass/vendor/animations/bounce-enter/_bounceIn.scss: -------------------------------------------------------------------------------- 1 | @if $use-bounceIn == true { 2 | 3 | @-webkit-keyframes bounceIn { 4 | 0% { 5 | opacity: 0; 6 | -webkit-transform: scale(0.3); 7 | } 8 | 9 | 50% { 10 | opacity: 1; 11 | -webkit-transform: scale(1.05); 12 | } 13 | 14 | 70% { 15 | -webkit-transform: scale(0.9); 16 | } 17 | 18 | 100% { 19 | -webkit-transform: scale(1); 20 | } 21 | } 22 | 23 | @-moz-keyframes bounceIn { 24 | 0% { 25 | opacity: 0; 26 | -moz-transform: scale(0.3); 27 | } 28 | 29 | 50% { 30 | opacity: 1; 31 | -moz-transform: scale(1.05); 32 | } 33 | 34 | 70% { 35 | -moz-transform: scale(0.9); 36 | } 37 | 38 | 100% { 39 | -moz-transform: scale(1); 40 | } 41 | } 42 | 43 | @-o-keyframes bounceIn { 44 | 0% { 45 | opacity: 0; 46 | -o-transform: scale(0.3); 47 | } 48 | 49 | 50% { 50 | opacity: 1; 51 | -o-transform: scale(1.05); 52 | } 53 | 54 | 70% { 55 | -o-transform: scale(0.9); 56 | } 57 | 58 | 100% { 59 | -o-transform: scale(1); 60 | } 61 | } 62 | 63 | @keyframes bounceIn { 64 | 0% { 65 | opacity: 0; 66 | transform: scale(0.3); 67 | } 68 | 69 | 50% { 70 | opacity: 1; 71 | transform: scale(1.05); 72 | } 73 | 74 | 70% { 75 | transform: scale(0.9); 76 | } 77 | 78 | 100% { 79 | transform: scale(1); 80 | } 81 | } 82 | 83 | .bounceIn { 84 | @include animate-prefixer(animation-name, bounceIn); 85 | } 86 | 87 | } 88 | -------------------------------------------------------------------------------- /_sass/vendor/animations/bounce-exit/_bounceOut.scss: -------------------------------------------------------------------------------- 1 | @if $use-bounceOut == true { 2 | 3 | @-webkit-keyframes bounceOut { 4 | 0% { 5 | -webkit-transform: scale(1); 6 | } 7 | 8 | 25% { 9 | -webkit-transform: scale(0.95); 10 | } 11 | 12 | 50% { 13 | opacity: 1; 14 | -webkit-transform: scale(1.1); 15 | } 16 | 17 | 100% { 18 | opacity: 0; 19 | -webkit-transform: scale(0.3); 20 | } 21 | } 22 | 23 | @-moz-keyframes bounceOut { 24 | 0% { 25 | -moz-transform: scale(1); 26 | } 27 | 28 | 25% { 29 | -moz-transform: scale(0.95); 30 | } 31 | 32 | 50% { 33 | opacity: 1; 34 | -moz-transform: scale(1.1); 35 | } 36 | 37 | 100% { 38 | opacity: 0; 39 | -moz-transform: scale(0.3); 40 | } 41 | } 42 | 43 | @-o-keyframes bounceOut { 44 | 0% { 45 | -o-transform: scale(1); 46 | } 47 | 48 | 25% { 49 | -o-transform: scale(0.95); 50 | } 51 | 52 | 50% { 53 | opacity: 1; 54 | -o-transform: scale(1.1); 55 | } 56 | 57 | 100% { 58 | opacity: 0; 59 | -o-transform: scale(0.3); 60 | } 61 | } 62 | 63 | @keyframes bounceOut { 64 | 0% { 65 | transform: scale(1); 66 | } 67 | 68 | 25% { 69 | transform: scale(0.95); 70 | } 71 | 72 | 50% { 73 | opacity: 1; 74 | transform: scale(1.1); 75 | } 76 | 77 | 100% { 78 | opacity: 0; 79 | transform: scale(0.3); 80 | } 81 | } 82 | 83 | .bounceOut { 84 | @include animate-prefixer(animation-name, bounceOut); 85 | } 86 | 87 | } 88 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_labels.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: $label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // [converter] extracted a& to a.label 18 | 19 | // Empty labels collapse automatically (not available in IE8) 20 | &:empty { 21 | display: none; 22 | } 23 | 24 | // Quick fix for labels in buttons 25 | .btn & { 26 | position: relative; 27 | top: -1px; 28 | } 29 | } 30 | 31 | // Add hover effects, but only for links 32 | a.label { 33 | &:hover, 34 | &:focus { 35 | color: $label-link-hover-color; 36 | text-decoration: none; 37 | cursor: pointer; 38 | } 39 | } 40 | 41 | // Colors 42 | // Contextual variations (linked labels get darker on :hover) 43 | 44 | .label-default { 45 | @include label-variant($label-default-bg); 46 | } 47 | 48 | .label-primary { 49 | @include label-variant($label-primary-bg); 50 | } 51 | 52 | .label-success { 53 | @include label-variant($label-success-bg); 54 | } 55 | 56 | .label-info { 57 | @include label-variant($label-info-bg); 58 | } 59 | 60 | .label-warning { 61 | @include label-variant($label-warning-bg); 62 | } 63 | 64 | .label-danger { 65 | @include label-variant($label-danger-bg); 66 | } 67 | -------------------------------------------------------------------------------- /_includes/hackathon-location.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 | {% if site.hackathonLocationName %} 7 |
{{ site.hackathonLocationName }}
8 | {% endif %} 9 |

{{ site.hackathonStreetAddress }}, {{ site.hackathonAddressLocality }}

10 |
11 | {{ site.hackathonTimeTitle }} 12 | {% assign startTime = site.hackathonStartTime | split: "T" %} 13 | - 14 | {% assign endTime = site.hackathonEndTime | split: "T" %} 15 | 16 |
17 | {{ site.viewOnMap }} 18 |
19 |
20 |
21 | -------------------------------------------------------------------------------- /_layouts/post.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% include head.html %} 5 | 6 | 7 |
8 |
9 |
10 | 11 |
12 |
13 |
14 | 15 | {% include top-section.html %} 16 | 17 | {% include post.html isStaticPost=page.isStaticPost %} 18 | 19 | {% include footer.html %} 20 | 21 |
22 |
23 |
24 | 25 | {% include analytics.html %} 26 | 27 | 28 | 31 | 32 | 37 | 38 | 39 | 40 | {% include schema-event.html %} 41 | 42 | 43 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_badges.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .badge { 8 | display: inline-block; 9 | min-width: 10px; 10 | padding: 3px 7px; 11 | font-size: $font-size-small; 12 | font-weight: $badge-font-weight; 13 | color: $badge-color; 14 | line-height: $badge-line-height; 15 | vertical-align: baseline; 16 | white-space: nowrap; 17 | text-align: center; 18 | background-color: $badge-bg; 19 | border-radius: $badge-border-radius; 20 | 21 | // Empty badges collapse automatically (not available in IE8) 22 | &:empty { 23 | display: none; 24 | } 25 | 26 | // Quick fix for badges in buttons 27 | .btn & { 28 | position: relative; 29 | top: -1px; 30 | } 31 | 32 | .btn-xs & { 33 | top: 0; 34 | padding: 1px 5px; 35 | } 36 | 37 | // [converter] extracted a& to a.badge 38 | 39 | // Account for badges in navs 40 | .list-group-item.active > &, 41 | .nav-pills > .active > a > & { 42 | color: $badge-active-color; 43 | background-color: $badge-active-bg; 44 | } 45 | 46 | .list-group-item > & { 47 | float: right; 48 | } 49 | 50 | .list-group-item > & + & { 51 | margin-right: 5px; 52 | } 53 | 54 | .nav-pills > li > a > & { 55 | margin-left: 3px; 56 | } 57 | } 58 | 59 | // Hover state, but only for links 60 | a.badge { 61 | &:hover, 62 | &:focus { 63 | color: $badge-link-hover-color; 64 | text-decoration: none; 65 | cursor: pointer; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /_includes/judges.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 |

{{ site.judgesTitle }}

7 |
8 | {% assign animationDelay = 0 %} {% for judge in site.data.judges %} 9 | {% assign colWidth = 12 | divided_by: forloop.length %} 10 |
11 |
12 |

{{ judge.name }} {{ judge.surname }}

13 | {{ judge.company }} 14 | {{ judge.title }} 15 |
16 | {% assign animationDelay = animationDelay | plus:500 %} 17 | {% assign check = forloop.index | modulo:2 %} 18 | {% if check == 0 %} 19 |
20 | {% endif %} 21 | {% endfor %} 22 |
23 |
24 |
25 |
26 | 27 | -------------------------------------------------------------------------------- /_data/judges.yml: -------------------------------------------------------------------------------- 1 | - 2 | id: 0 3 | name: "Dmytro" 4 | surname: "Danylyk" 5 | company: "Lemberg Solutions Limited" 6 | title: "Android Developer" 7 | thumbnailUrl: DmytroDanylyk.jpg 8 | social: 9 | - {name: "google-plus", link: "https://plus.google.com/+DmytroDanylyk"} 10 | - {name: "twitter", link: "https://twitter.com/dmytrodanylyk"} 11 | - {name: "github", link: "https://github.com/dmytrodanylyk"} 12 | - 13 | id: 1 14 | name: "Vitaliy" 15 | surname: "Zasadnyy" 16 | company: "Nravo, GDG Lviv" 17 | title: "Team Lead, Unity 3D Developer" 18 | thumbnailUrl: VitaliyZasadnyy.jpg 19 | social: 20 | - {name: "google-plus", link: "https://google.com/+VitalikZasadnyy"} 21 | - {name: "twitter", link: "https://twitter.com/zasadnyy"} 22 | - {name: "github", link: "https://github.com/zasadnyy"} 23 | - {name: "site", link: "http://zasadnyy.com/"} 24 | - 25 | id: 2 26 | name: "Ostap" 27 | surname: "Andrusiv" 28 | company: "ELEKS, GDG Lviv" 29 | title: "R&D Engineer" 30 | thumbnailUrl: OstapAndrusiv.jpg 31 | social: 32 | - {name: "google-plus", link: "https://google.com/+OstapAndrusiv"} 33 | - {name: "twitter", link: "https://twitter.com/p1f"} 34 | - {name: "site", link: "http://andrusiv.com/"} 35 | - 36 | id: 3 37 | name: "Oleh" 38 | surname: "Zasadnyy" 39 | company: "EPAM Systems, GDG Lviv" 40 | title: "Junior Software Engineer" 41 | thumbnailUrl: OlehZasadnyy.jpg 42 | social: 43 | - {name: "google-plus", link: "https://google.com/+OlehZasadnyy"} 44 | - {name: "github", link: "https://github.com/ozasadnyy"} -------------------------------------------------------------------------------- /_sass/modules/_utility.scss: -------------------------------------------------------------------------------- 1 | @mixin vendorize($property, $value) { 2 | @each $prefix in -webkit-, -moz-, -ms-, -o-, '' { 3 | #{$prefix}#{$property}: $value; 4 | } 5 | } 6 | 7 | @mixin clear() { 8 | &:before, &:after { 9 | content: "\0020"; 10 | display: block; 11 | height: 0; 12 | overflow: hidden; 13 | } 14 | &:after { 15 | clear: both; 16 | } 17 | } 18 | 19 | @mixin hoverActiveFocus($property, $value) { 20 | &:hover, &:active, &:focus { 21 | #{$property}: $value; 22 | } 23 | } 24 | 25 | @mixin linkColor($color) { 26 | color: $color; 27 | 28 | &:hover, &:active, &:focus { 29 | color: lighten($color, $link-lighten-amount); 30 | } 31 | } 32 | 33 | @mixin flexbox() { 34 | display: -webkit-box; 35 | display: -moz-box; 36 | display: -ms-flexbox; 37 | display: -webkit-flex; 38 | display: flex; 39 | } 40 | 41 | @mixin flex($values) { 42 | -webkit-box-flex: $values; 43 | -moz-box-flex: $values; 44 | -webkit-flex: $values; 45 | -ms-flex: $values; 46 | flex: $values; 47 | } 48 | 49 | @mixin order($val) { 50 | -webkit-box-ordinal-group: $val; 51 | -moz-box-ordinal-group: $val; 52 | -ms-flex-order: $val; 53 | -webkit-order: $val; 54 | order: $val; 55 | } 56 | 57 | @mixin trimText($font-size, $line-height, $lines) { 58 | display: block; 59 | display: -webkit-box; 60 | overflow: hidden; 61 | height: $font-size*$line-height*$lines+2px; 62 | text-overflow: ellipsis; 63 | -webkit-line-clamp: $lines; 64 | -webkit-box-orient: vertical; 65 | } -------------------------------------------------------------------------------- /_sass/vendor/_bootstrap-custom.scss: -------------------------------------------------------------------------------- 1 | // Core variables and mixins 2 | @import "bootstrap/variables"; 3 | @import "bootstrap/mixins"; 4 | 5 | // Reset and dependencies 6 | @import "bootstrap/normalize"; 7 | @import "bootstrap/print"; 8 | // @import "bootstrap/glyphicons"; 9 | 10 | // Core CSS 11 | @import "bootstrap/scaffolding"; 12 | @import "bootstrap/type"; 13 | @import "bootstrap/code"; 14 | @import "bootstrap/grid"; 15 | // @import "bootstrap/tables"; 16 | @import "bootstrap/forms"; 17 | @import "bootstrap/buttons"; 18 | 19 | // Components 20 | @import "bootstrap/component-animations"; 21 | // @import "bootstrap/dropdowns"; 22 | // @import "bootstrap/button-groups"; 23 | // @import "bootstrap/input-groups"; 24 | // @import "bootstrap/navs"; 25 | // @import "bootstrap/navbar"; 26 | // @import "bootstrap/breadcrumbs"; 27 | // @import "bootstrap/pagination"; 28 | // @import "bootstrap/pager"; 29 | // @import "bootstrap/labels"; 30 | // @import "bootstrap/badges"; 31 | @import "bootstrap/jumbotron"; 32 | @import "bootstrap/thumbnails"; 33 | // @import "bootstrap/alerts"; 34 | // @import "bootstrap/progress-bars"; 35 | @import "bootstrap/media"; 36 | // @import "bootstrap/list-group"; 37 | // @import "bootstrap/panels"; 38 | @import "bootstrap/responsive-embed"; 39 | // @import "bootstrap/wells"; 40 | @import "bootstrap/close"; 41 | 42 | // Components w/ JavaScript 43 | @import "bootstrap/modals"; 44 | // @import "bootstrap/tooltip"; 45 | // @import "bootstrap/popovers"; 46 | // @import "bootstrap/carousel"; 47 | 48 | // Utility classes 49 | @import "bootstrap/utilities"; 50 | @import "bootstrap/responsive-utilities"; 51 | -------------------------------------------------------------------------------- /_sass/partials/_base.scss: -------------------------------------------------------------------------------- 1 | @import "compass"; 2 | 3 | // Font weights 4 | $light: 100; 5 | $regular: 300; 6 | $bold: 500; 7 | $extra-bold: 600; 8 | 9 | // Base Font 10 | $base-font-family: sans-serif; 11 | $base-font-weight: $regular; 12 | $base-font-size: 13px; 13 | $base-line-height: 23px; 14 | 15 | // Fixed Font 16 | $fixed-font-family: 'Roboto'; 17 | $fixed-font-size: 85%; 18 | $fixed-line-height: $base-line-height; 19 | 20 | // Headings 21 | $header-font-weight: $light; 22 | $h1-font-size: 6.125 * $base-font-size; 23 | $h2-font-size: 5.875 * $base-font-size; 24 | $h3-font-size: 5 * $base-font-size; 25 | $h4-font-size: 3.125 * $base-font-size; 26 | $h5-font-size: 2.3 * $base-font-size; 27 | $h6-font-size: 1.875 * $base-font-size; 28 | 29 | // Colors 30 | $main-color: #03a9f4; 31 | $link-color: $main-color; 32 | $link-lighten-amount: 20%; 33 | $base-background-color: #fff; 34 | $base-section-background-color: $link-color; 35 | $primary-color: #4285f4; 36 | $primary-color-hover: #3266d5; 37 | $icon-fill-color: #8b8b8b; 38 | 39 | // Sizes 40 | $min-section-height: 350px; 41 | $section-padding-top: 50px; 42 | $section-padding-bottom: 60px; 43 | $small-section-padding-top: 20px; 44 | $small-section-padding-bottom: 40px; 45 | 46 | // Global variables 47 | $base-transition: all .3s; 48 | $base-cubic-transition: all .3s cubic-bezier(0.175, 0.885, 0.320, 1.275); 49 | $long-transition: all .5s; 50 | $long-cubic-transition: all .5s cubic-bezier(0.175, 0.885, 0.320, 1.275); 51 | 52 | // Path 53 | $image-dir: "../img"; 54 | $sprites-dir: $image-dir + "/sprites"; 55 | $logos-sprite: $sprites-dir + "/logos.svg"; 56 | 57 | @import "modules/all"; -------------------------------------------------------------------------------- /_sass/vendor/animations/flippers/_flipOutX.scss: -------------------------------------------------------------------------------- 1 | @if $use-flipOutX == true { 2 | 3 | @-webkit-keyframes flipOutX { 4 | 0% { 5 | -webkit-transform: perspective($flipper-perspective) rotateX(0deg); 6 | opacity: 1; 7 | } 8 | 100% { 9 | -webkit-transform: perspective($flipper-perspective) rotateX($flipper-degrees-max); 10 | opacity: 0; 11 | } 12 | } 13 | 14 | @-moz-keyframes flipOutX { 15 | 0% { 16 | -moz-transform: perspective($flipper-perspective) rotateX(0deg); 17 | opacity: 1; 18 | } 19 | 100% { 20 | -moz-transform: perspective($flipper-perspective) rotateX($flipper-degrees-max); 21 | opacity: 0; 22 | } 23 | } 24 | 25 | @-o-keyframes flipOutX { 26 | 0% { 27 | -o-transform: perspective($flipper-perspective) rotateX(0deg); 28 | opacity: 1; 29 | } 30 | 100% { 31 | -o-transform: perspective($flipper-perspective) rotateX($flipper-degrees-max); 32 | opacity: 0; 33 | } 34 | } 35 | 36 | @keyframes flipOutX { 37 | 0% { 38 | transform: perspective($flipper-perspective) rotateX(0deg); 39 | opacity: 1; 40 | } 41 | 100% { 42 | transform: perspective($flipper-perspective) rotateX($flipper-degrees-max); 43 | opacity: 0; 44 | } 45 | } 46 | 47 | .flipOutX { 48 | @include animate-prefixer(animation-name, flipOutX); 49 | @include animate-prefixer(backface-visibility, visible !important); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /_sass/vendor/animations/bounce-enter/_bounceInRight.scss: -------------------------------------------------------------------------------- 1 | @if $use-bounceInRight == true { 2 | 3 | @-webkit-keyframes bounceInRight { 4 | 0% { 5 | opacity: 0; 6 | -webkit-transform: translateX($base-distance-big * 2); 7 | } 8 | 9 | 60% { 10 | opacity: 1; 11 | -webkit-transform: translateX(-$base-distance * 3); 12 | } 13 | 14 | 80% { 15 | -webkit-transform: translateX($base-distance); 16 | } 17 | 18 | 100% { 19 | -webkit-transform: translateX(0); 20 | } 21 | } 22 | 23 | @-moz-keyframes bounceInRight { 24 | 0% { 25 | opacity: 0; 26 | -moz-transform: translateX($base-distance-big * 2); 27 | } 28 | 29 | 60% { 30 | opacity: 1; 31 | -moz-transform: translateX(-$base-distance * 3); 32 | } 33 | 34 | 80% { 35 | -moz-transform: translateX($base-distance); 36 | } 37 | 38 | 100% { 39 | -moz-transform: translateX(0); 40 | } 41 | } 42 | 43 | @-o-keyframes bounceInRight { 44 | 0% { 45 | opacity: 0; 46 | -o-transform: translateX($base-distance-big * 2); 47 | } 48 | 49 | 60% { 50 | opacity: 1; 51 | -o-transform: translateX(-$base-distance * 3); 52 | } 53 | 54 | 80% { 55 | -o-transform: translateX($base-distance); 56 | } 57 | 58 | 100% { 59 | -o-transform: translateX(0); 60 | } 61 | } 62 | 63 | @keyframes bounceInRight { 64 | 0% { 65 | opacity: 0; 66 | transform: translateX($base-distance-big * 2); 67 | } 68 | 69 | 60% { 70 | opacity: 1; 71 | transform: translateX(-$base-distance * 3); 72 | } 73 | 74 | 80% { 75 | transform: translateX($base-distance); 76 | } 77 | 78 | 100% { 79 | transform: translateX(0); 80 | } 81 | } 82 | 83 | .bounceInRight { 84 | @include animate-prefixer(animation-name, bounceInRight); 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /_includes/location-map.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 |
7 |
8 |

{{ site.locationBlockTitle }}

9 |
    10 | {% if site.eventLocationName %}
  • {{ site.eventLocationName }}
  • {% endif %} 11 |
  • {{ site.eventStreetAddress }}, {{ site.eventAddressLocality }}
  • 12 |
  • {{ site.email }}
  • 13 |
  • 14 | {% assign startTime = site.eventStartTime | split: "T" %} 15 | - 16 | {% assign endTime = site.eventEndTime | split: "T" %} 17 | 18 |
  • 19 |
20 |
21 | 22 | 23 | 24 | 25 | 26 |
27 |
28 |
29 |
30 | -------------------------------------------------------------------------------- /_sass/vendor/animations/lightspeed/_lightSpeedIn.scss: -------------------------------------------------------------------------------- 1 | @if $use-lightSpeedIn == true { 2 | 3 | @-webkit-keyframes lightSpeedIn { 4 | 0% { -webkit-transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } 5 | 60% { -webkit-transform: translateX(-20%) skewX($base-degrees); opacity: 1; } 6 | 80% { -webkit-transform: translateX(0%) skewX(-$base-degrees / 2); opacity: 1; } 7 | 100% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } 8 | } 9 | 10 | @-moz-keyframes lightSpeedIn { 11 | 0% { -moz-transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } 12 | 60% { -moz-transform: translateX(-20%) skewX($base-degrees); opacity: 1; } 13 | 80% { -moz-transform: translateX(0%) skewX(-$base-degrees / 2); opacity: 1; } 14 | 100% { -moz-transform: translateX(0%) skewX(0deg); opacity: 1; } 15 | } 16 | 17 | @-o-keyframes lightSpeedIn { 18 | 0% { -o-transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } 19 | 60% { -o-transform: translateX(-20%) skewX($base-degrees); opacity: 1; } 20 | 80% { -o-transform: translateX(0%) skewX(-$base-degrees / 2); opacity: 1; } 21 | 100% { -o-transform: translateX(0%) skewX(0deg); opacity: 1; } 22 | } 23 | 24 | @keyframes lightSpeedIn { 25 | 0% { transform: translateX(100%) skewX(-$base-degrees); opacity: 0; } 26 | 60% { transform: translateX(-20%) skewX($base-degrees); opacity: 1; } 27 | 80% { transform: translateX(0%) skewX(-$base-degrees / 2); opacity: 1; } 28 | 100% { transform: translateX(0%) skewX(0deg); opacity: 1; } 29 | } 30 | 31 | .lightSpeedIn { 32 | @include animate-prefixer(animation-name, lightSpeedIn); 33 | @include animate-prefixer(animation-timing-function, $base-timing-function-out); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_code.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and block) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | kbd, 9 | pre, 10 | samp { 11 | font-family: $font-family-monospace; 12 | } 13 | 14 | // Inline code 15 | code { 16 | padding: 2px 4px; 17 | font-size: 90%; 18 | color: $code-color; 19 | background-color: $code-bg; 20 | border-radius: $border-radius-base; 21 | } 22 | 23 | // User input typically entered via keyboard 24 | kbd { 25 | padding: 2px 4px; 26 | font-size: 90%; 27 | color: $kbd-color; 28 | background-color: $kbd-bg; 29 | border-radius: $border-radius-small; 30 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); 31 | 32 | kbd { 33 | padding: 0; 34 | font-size: 100%; 35 | font-weight: bold; 36 | box-shadow: none; 37 | } 38 | } 39 | 40 | // Blocks of code 41 | pre { 42 | display: block; 43 | padding: (($line-height-computed - 1) / 2); 44 | margin: 0 0 ($line-height-computed / 2); 45 | font-size: ($font-size-base - 1); // 14px to 13px 46 | line-height: $line-height-base; 47 | word-break: break-all; 48 | word-wrap: break-word; 49 | color: $pre-color; 50 | background-color: $pre-bg; 51 | border: 1px solid $pre-border-color; 52 | border-radius: $border-radius-base; 53 | 54 | // Account for some code outputs that place code tags in pre tags 55 | code { 56 | padding: 0; 57 | font-size: inherit; 58 | color: inherit; 59 | white-space: pre-wrap; 60 | background-color: transparent; 61 | border-radius: 0; 62 | } 63 | } 64 | 65 | // Enable scrollable blocks of code 66 | .pre-scrollable { 67 | max-height: $pre-scrollable-max-height; 68 | overflow-y: scroll; 69 | } 70 | -------------------------------------------------------------------------------- /_sass/vendor/animations/bounce-enter/_bounceInUp.scss: -------------------------------------------------------------------------------- 1 | @if $use-bounceInUp == true { 2 | 3 | @-webkit-keyframes bounceInUp { 4 | 0% { 5 | opacity: 0; 6 | -webkit-transform: translateY($base-distance-big * 2); 7 | } 8 | 9 | 60% { 10 | opacity: 1; 11 | -webkit-transform: translateY(-$base-distance * 3); 12 | } 13 | 14 | 80% { 15 | -webkit-transform: translateY($base-distance); 16 | } 17 | 18 | 100% { 19 | -webkit-transform: translateY(0); 20 | } 21 | } 22 | @-moz-keyframes bounceInUp { 23 | 0% { 24 | opacity: 0; 25 | -moz-transform: translateY($base-distance-big * 2); 26 | } 27 | 28 | 60% { 29 | opacity: 1; 30 | -moz-transform: translateY(-$base-distance * 3); 31 | } 32 | 33 | 80% { 34 | -moz-transform: translateY($base-distance); 35 | } 36 | 37 | 100% { 38 | -moz-transform: translateY(0); 39 | } 40 | } 41 | 42 | @-o-keyframes bounceInUp { 43 | 0% { 44 | opacity: 0; 45 | -o-transform: translateY($base-distance-big * 2); 46 | } 47 | 48 | 60% { 49 | opacity: 1; 50 | -o-transform: translateY(-$base-distance * 3); 51 | } 52 | 53 | 80% { 54 | -o-transform: translateY($base-distance); 55 | } 56 | 57 | 100% { 58 | -o-transform: translateY(0); 59 | } 60 | } 61 | 62 | @keyframes bounceInUp { 63 | 0% { 64 | opacity: 0; 65 | transform: translateY($base-distance-big * 2); 66 | } 67 | 68 | 60% { 69 | opacity: 1; 70 | transform: translateY(-$base-distance * 3); 71 | } 72 | 73 | 80% { 74 | transform: translateY($base-distance); 75 | } 76 | 77 | 100% { 78 | transform: translateY(0); 79 | } 80 | } 81 | 82 | .bounceInUp { 83 | @include animate-prefixer(animation-name, bounceInUp); 84 | } 85 | 86 | } 87 | -------------------------------------------------------------------------------- /_sass/vendor/animations/bounce-enter/_bounceInDown.scss: -------------------------------------------------------------------------------- 1 | @if $use-bounceInDown == true { 2 | @-webkit-keyframes bounceInDown { 3 | 0% { 4 | opacity: 0; 5 | -webkit-transform: translateY(-$base-distance-big * 2); 6 | } 7 | 8 | 60% { 9 | opacity: 1; 10 | -webkit-transform: translateY($base-distance * 3); 11 | } 12 | 13 | 80% { 14 | -webkit-transform: translateY(-$base-distance); 15 | } 16 | 17 | 100% { 18 | -webkit-transform: translateY(0); 19 | } 20 | } 21 | 22 | @-moz-keyframes bounceInDown { 23 | 0% { 24 | opacity: 0; 25 | -moz-transform: translateY(-$base-distance-big * 2); 26 | } 27 | 28 | 60% { 29 | opacity: 1; 30 | -moz-transform: translateY($base-distance * 3); 31 | } 32 | 33 | 80% { 34 | -moz-transform: translateY(-$base-distance); 35 | } 36 | 37 | 100% { 38 | -moz-transform: translateY(0); 39 | } 40 | } 41 | 42 | @-o-keyframes bounceInDown { 43 | 0% { 44 | opacity: 0; 45 | -o-transform: translateY(-$base-distance-big * 2); 46 | } 47 | 48 | 60% { 49 | opacity: 1; 50 | -o-transform: translateY($base-distance * 3); 51 | } 52 | 53 | 80% { 54 | -o-transform: translateY(-$base-distance); 55 | } 56 | 57 | 100% { 58 | -o-transform: translateY(0); 59 | } 60 | } 61 | 62 | @keyframes bounceInDown { 63 | 0% { 64 | opacity: 0; 65 | transform: translateY(-$base-distance-big * 2); 66 | } 67 | 68 | 60% { 69 | opacity: 1; 70 | transform: translateY($base-distance * 3); 71 | } 72 | 73 | 80% { 74 | transform: translateY(-$base-distance); 75 | } 76 | 77 | 100% { 78 | transform: translateY(0); 79 | } 80 | } 81 | 82 | .bounceInDown { 83 | @include animate-prefixer(animation-name, bounceInDown); 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /_sass/partials/_hero.scss: -------------------------------------------------------------------------------- 1 | .top-section-hero { 2 | width: 100%; 3 | height: 100%; 4 | padding-top: 0; 5 | .jumbotron { 6 | position: relative; 7 | top: 50%; 8 | margin: 0; 9 | left: 0; 10 | transform: translateY(-60%); 11 | @media (max-width: 767px) { 12 | margin: 0; 13 | padding: 0; 14 | } 15 | p { 16 | font-size: $base-font-size * 2; 17 | font-weight: $light; 18 | margin-bottom: 15px; 19 | } 20 | .btn { 21 | margin: 0 3px; 22 | } 23 | } 24 | } 25 | .typeout-fallback { 26 | display: none; 27 | @media (max-width: 767px) { 28 | display: inline-block; 29 | } 30 | } 31 | .explore { 32 | margin-left: -16px; 33 | position: absolute; 34 | bottom: -25px; 35 | left: 50%; 36 | animation: callToAction 3.5s linear 0s infinite; 37 | @media (max-width: 767px) { 38 | margin-left: -12.5px; 39 | bottom: 30px; 40 | animation: none; 41 | } 42 | } 43 | .icon-arrow-down { 44 | width: 32px; 45 | height: 32px; 46 | fill: #e6e6e6; 47 | @media (max-width: 767px) { 48 | width: 24px; 49 | height: 24px; 50 | } 51 | } 52 | @keyframes callToAction { 53 | 0% { 54 | opacity: 0; 55 | transform: translateY(-16px); 56 | } 57 | 25% { 58 | opacity: 1; 59 | transform: translateY(0); 60 | } 61 | 75% { 62 | opacity: 1; 63 | transform: translateY(0); 64 | } 65 | 85% { 66 | opacity: 0; 67 | transform: translateY(-16px); 68 | } 69 | 100% { 70 | opacity: 0; 71 | transform: translateY(-16px); 72 | } 73 | } -------------------------------------------------------------------------------- /_sass/vendor/animations/bounce-enter/_bounceInLeft.scss: -------------------------------------------------------------------------------- 1 | @if $use-bounceInLeft == true { 2 | 3 | @-webkit-keyframes bounceInLeft { 4 | 0% { 5 | opacity: 0; 6 | -webkit-transform: translateX(-$base-distance-big * 2); 7 | } 8 | 9 | 60% { 10 | opacity: 1; 11 | -webkit-transform: translateX($base-distance * 3); 12 | } 13 | 14 | 80% { 15 | -webkit-transform: translateX(-$base-distance); 16 | } 17 | 18 | 100% { 19 | -webkit-transform: translateX(0); 20 | } 21 | } 22 | 23 | @-moz-keyframes bounceInLeft { 24 | 0% { 25 | opacity: 0; 26 | -moz-transform: translateX(-$base-distance-big * 2); 27 | } 28 | 29 | 60% { 30 | opacity: 1; 31 | -moz-transform: translateX($base-distance * 3); 32 | } 33 | 34 | 80% { 35 | -moz-transform: translateX(-$base-distance); 36 | } 37 | 38 | 100% { 39 | -moz-transform: translateX(0); 40 | } 41 | } 42 | 43 | @-o-keyframes bounceInLeft { 44 | 0% { 45 | opacity: 0; 46 | -o-transform: translateX(-$base-distance-big * 2); 47 | } 48 | 49 | 60% { 50 | opacity: 1; 51 | -o-transform: translateX($base-distance * 3); 52 | } 53 | 54 | 80% { 55 | -o-transform: translateX(-$base-distance); 56 | } 57 | 58 | 100% { 59 | -o-transform: translateX(0); 60 | } 61 | } 62 | 63 | @keyframes bounceInLeft { 64 | 0% { 65 | opacity: 0; 66 | transform: translateX(-$base-distance-big * 2); 67 | } 68 | 69 | 60% { 70 | opacity: 1; 71 | transform: translateX($base-distance * 3); 72 | } 73 | 74 | 80% { 75 | transform: translateX(-$base-distance); 76 | } 77 | 78 | 100% { 79 | transform: translateX(0); 80 | } 81 | } 82 | 83 | .bounceInLeft { 84 | @include animate-prefixer(animation-name, bounceInLeft); 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_grid.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container widths 7 | // 8 | // Set the container width, and override it for fixed navbars in media queries. 9 | 10 | .container { 11 | @include container-fixed; 12 | 13 | @media (min-width: $screen-sm-min) { 14 | width: $container-sm; 15 | } 16 | @media (min-width: $screen-md-min) { 17 | width: $container-md; 18 | } 19 | @media (min-width: $screen-lg-min) { 20 | width: $container-lg; 21 | } 22 | } 23 | 24 | 25 | // Fluid container 26 | // 27 | // Utilizes the mixin meant for fixed width containers, but without any defined 28 | // width for fluid, full width layouts. 29 | 30 | .container-fluid { 31 | @include container-fixed; 32 | } 33 | 34 | 35 | // Row 36 | // 37 | // Rows contain and clear the floats of your columns. 38 | 39 | .row { 40 | @include make-row; 41 | } 42 | 43 | 44 | // Columns 45 | // 46 | // Common styles for small and large grid columns 47 | 48 | @include make-grid-columns; 49 | 50 | 51 | // Extra small grid 52 | // 53 | // Columns, offsets, pushes, and pulls for extra small devices like 54 | // smartphones. 55 | 56 | @include make-grid(xs); 57 | 58 | 59 | // Small grid 60 | // 61 | // Columns, offsets, pushes, and pulls for the small device range, from phones 62 | // to tablets. 63 | 64 | @media (min-width: $screen-sm-min) { 65 | @include make-grid(sm); 66 | } 67 | 68 | 69 | // Medium grid 70 | // 71 | // Columns, offsets, pushes, and pulls for the desktop device range. 72 | 73 | @media (min-width: $screen-md-min) { 74 | @include make-grid(md); 75 | } 76 | 77 | 78 | // Large grid 79 | // 80 | // Columns, offsets, pushes, and pulls for the large desktop device range. 81 | 82 | @media (min-width: $screen-lg-min) { 83 | @include make-grid(lg); 84 | } 85 | -------------------------------------------------------------------------------- /_includes/partners.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |

{{ site.organizersTitle }}

6 | {% for organizer in site.data.organizers %} 7 |
{{ organizer.group }}
8 |
    9 | {% for element in organizer.elements %} 10 |
  • 11 | 12 | {{ element.name }} 13 | 14 |
  • 15 | {% endfor %} 16 |
17 | {% endfor %} 18 |

{{ site.partnersTitle }}

19 | {% for partner in site.data.partners %} 20 |
{{ partner.group }}
21 |
    22 | {% for element in partner.elements %} 23 |
  • 24 | 25 | {{ element.name }} 26 | 27 |
  • 28 | {% endfor %} 29 |
30 | {% endfor %} 31 | {{ site.partnersC4sponsorsButton }} 32 |
33 |
34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_alerts.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: $alert-padding; 11 | margin-bottom: $line-height-computed; 12 | border: 1px solid transparent; 13 | border-radius: $alert-border-radius; 14 | 15 | // Headings for larger alerts 16 | h4 { 17 | margin-top: 0; 18 | // Specified for the h4 to prevent conflicts of changing $headings-color 19 | color: inherit; 20 | } 21 | 22 | // Provide class for links that match alerts 23 | .alert-link { 24 | font-weight: $alert-link-font-weight; 25 | } 26 | 27 | // Improve alignment and spacing of inner content 28 | > p, 29 | > ul { 30 | margin-bottom: 0; 31 | } 32 | 33 | > p + p { 34 | margin-top: 5px; 35 | } 36 | } 37 | 38 | // Dismissible alerts 39 | // 40 | // Expand the right padding and account for the close button's positioning. 41 | 42 | .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. 43 | .alert-dismissible { 44 | padding-right: ($alert-padding + 20); 45 | 46 | // Adjust close link position 47 | .close { 48 | position: relative; 49 | top: -2px; 50 | right: -21px; 51 | color: inherit; 52 | } 53 | } 54 | 55 | // Alternate styles 56 | // 57 | // Generate contextual modifier classes for colorizing the alert. 58 | 59 | .alert-success { 60 | @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text); 61 | } 62 | 63 | .alert-info { 64 | @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text); 65 | } 66 | 67 | .alert-warning { 68 | @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text); 69 | } 70 | 71 | .alert-danger { 72 | @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text); 73 | } 74 | -------------------------------------------------------------------------------- /_sass/vendor/animations/attention-seekers/_wobble.scss: -------------------------------------------------------------------------------- 1 | @if $use-wobble == true { 2 | 3 | // originally authored by Nick Pettit - https://github.com/nickpettit/glide 4 | 5 | @-webkit-keyframes wobble { 6 | 0% { -webkit-transform: translateX(0%); } 7 | 15% { -webkit-transform: translateX(-25%) rotate(-5deg); } 8 | 30% { -webkit-transform: translateX(20%) rotate(3deg); } 9 | 45% { -webkit-transform: translateX(-15%) rotate(-3deg); } 10 | 60% { -webkit-transform: translateX(10%) rotate(2deg); } 11 | 75% { -webkit-transform: translateX(-5%) rotate(-1deg); } 12 | 100% { -webkit-transform: translateX(0%); } 13 | } 14 | 15 | @-moz-keyframes wobble { 16 | 0% { -moz-transform: translateX(0%); } 17 | 15% { -moz-transform: translateX(-25%) rotate(-5deg); } 18 | 30% { -moz-transform: translateX(20%) rotate(3deg); } 19 | 45% { -moz-transform: translateX(-15%) rotate(-3deg); } 20 | 60% { -moz-transform: translateX(10%) rotate(2deg); } 21 | 75% { -moz-transform: translateX(-5%) rotate(-1deg); } 22 | 100% { -moz-transform: translateX(0%); } 23 | } 24 | 25 | @-o-keyframes wobble { 26 | 0% { -o-transform: translateX(0%); } 27 | 15% { -o-transform: translateX(-25%) rotate(-5deg); } 28 | 30% { -o-transform: translateX(20%) rotate(3deg); } 29 | 45% { -o-transform: translateX(-15%) rotate(-3deg); } 30 | 60% { -o-transform: translateX(10%) rotate(2deg); } 31 | 75% { -o-transform: translateX(-5%) rotate(-1deg); } 32 | 100% { -o-transform: translateX(0%); } 33 | } 34 | 35 | @keyframes wobble { 36 | 0% { transform: translateX(0%); } 37 | 15% { transform: translateX(-25%) rotate(-5deg); } 38 | 30% { transform: translateX(20%) rotate(3deg); } 39 | 45% { transform: translateX(-15%) rotate(-3deg); } 40 | 60% { transform: translateX(10%) rotate(2deg); } 41 | 75% { transform: translateX(-5%) rotate(-1deg); } 42 | 100% { transform: translateX(0%); } 43 | } 44 | 45 | .wobble { 46 | @include animate-prefixer(animation-name, wobble); 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 |
7 | 8 |
9 |
10 | {% for block in site.footerBlocks %} 11 | {% assign colWidth = 12 | divided_by: forloop.length %} 12 |
13 |
{{ block.title }}
14 | 19 |
20 | {% endfor %} 21 |
22 |
23 |
24 | 35 |
36 |
37 |
38 | 39 |
40 | 43 |
44 |
45 |
46 | -------------------------------------------------------------------------------- /_includes/tickets.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |

{{ site.ticketsTitle }}

6 | {% for ticketsOffer in site.ticketsOffers %} 7 | {% assign colWidth = 12 | divided_by: forloop.length %} 8 | {% assign check = forloop.index | modulo:2 %} 9 |
10 | {% if ticketsOffer.ribbon != null %}
{{ ticketsOffer.ribbon }}
{% endif %} 11 |
12 |

{{ ticketsOffer.name }}

13 |

{{ ticketsOffer.price }} {{ ticketsOffer.priceCurrency }}

14 |
15 |
16 |
    17 | {% for listItem in ticketsOffer.ticketContentList %} 18 |
  • {{ listItem }}
  • 19 | {% endfor %} 20 |
21 | {% if ticketsOffer.soldOut == true %} 22 | {{ ticketsOffer.soldOutText }} 23 | {% elsif ticketsOffer.disabled != true %} 24 | {{ ticketsOffer.buyButtonText }} 25 | {% else %} 26 | {% assign ticketValidFrom = ticketsOffer.validFrom | split: "T" %} 27 | Ticket sales will begin on {{ ticketValidFrom[0] | date: "%-d %B %Y"}} {{ ticketValidFrom[1] }} 28 | {% endif %} 29 |
30 |
31 | {% endfor %} 32 |
33 |
34 |
35 | -------------------------------------------------------------------------------- /_sass/partials/_venue.scss: -------------------------------------------------------------------------------- 1 | .venue-col { 2 | height: 100%; 3 | padding: 0; 4 | padding-right: 5px; 5 | &:last-child { 6 | padding: 0; 7 | } 8 | @media (max-width: 767px) { 9 | padding: 0; 10 | } 11 | } 12 | .venue-small-col { 13 | .venue-elem-wrapper { 14 | &:nth-child(odd) { 15 | @media (max-width: 767px) { 16 | padding-right: 2.5px; 17 | } 18 | } 19 | &:nth-child(even) { 20 | @media (max-width: 767px) { 21 | padding-left: 2.5px; 22 | } 23 | } 24 | } 25 | } 26 | .venue-elem-wrapper { 27 | padding: 0; 28 | padding-bottom: 5px; 29 | } 30 | .venue-elem { 31 | overflow: hidden; 32 | text-align: left; 33 | transition: $base-transition; 34 | } 35 | .venue-big-elem { 36 | height: 610px; 37 | @media (min-width: 768px) and (max-width: 991px) { 38 | height: 580px; 39 | } 40 | @media (max-width: 767px) { 41 | height: 340px; 42 | } 43 | } 44 | .venue-small-elem { 45 | height: 200px; 46 | @media (min-width: 768px) and (max-width: 991px) { 47 | height: 190px; 48 | } 49 | @media (max-width: 767px) { 50 | height: 200px; 51 | } 52 | } 53 | .venue-text { 54 | padding: 30px 20px; 55 | color: #fff; 56 | background: $main-color; 57 | @media (max-width: 767px) { 58 | padding: 20px 15px; 59 | } 60 | h5 { 61 | margin-top: 0; 62 | @media (min-width: 768px) and (max-width: 991px) { 63 | font-size: 26px; 64 | } 65 | @media (max-width: 767px) { 66 | font-size: 21px; 67 | } 68 | } 69 | p { 70 | font-size: 17px; 71 | @media (min-width: 768px) and (max-width: 991px) { 72 | font-size: 16px; 73 | line-height: 19px; 74 | } 75 | @media (max-width: 767px) { 76 | font-size: 14px; 77 | line-height: 16px; 78 | } 79 | } 80 | } -------------------------------------------------------------------------------- /_data/partners.yml: -------------------------------------------------------------------------------- 1 | - 2 | group: "General sponsor" 3 | elements: 4 | - {name: "Google", description: "Google", link: "https://www.google.com.ua/intl/en/about/", imageUrl: "google.svg"} 5 | - {name: "GDG Lviv", description: "GDG Lviv - Open and volunteer geek community", link: "http://lviv.gdg.org.ua", imageUrl: "gdg-lviv.svg"} 6 | - 7 | group: "With support of" 8 | elements: 9 | - {name: "Google", description: "Google", link: "https://www.google.com.ua/intl/en/about/", imageUrl: "google.svg", width: "120px"} 10 | - {name: "GDG Lviv", description: "GDG Lviv - Open and volunteer geek community", link: "http://lviv.gdg.org.ua", imageUrl: "gdg-lviv.svg", width: "120px"} 11 | - {name: "GDG[x]", description: "GDG[x] - Yeah, we can fix that", link: "https://github.com/gdg-x", imageUrl: "gdg-x.svg", width: "120px"} 12 | - 13 | group: "Information partners" 14 | elements: 15 | - {name: "Google", description: "Google", link: "https://www.google.com.ua/intl/en/about/", imageUrl: "google.svg"} 16 | - {name: "GDG Lviv", description: "GDG Lviv - Open and volunteer geek community", link: "http://lviv.gdg.org.ua", imageUrl: "gdg-lviv.svg"} 17 | - {name: "GDG[x]", description: "GDG[x] - Yeah, we can fix that", link: "https://github.com/gdg-x", imageUrl: "gdg-x.svg"} 18 | - {name: "Google", description: "Google", link: "https://www.google.com.ua/intl/en/about/", imageUrl: "google.svg"} 19 | - {name: "GDG Lviv", description: "GDG Lviv - Open and volunteer geek community", link: "http://lviv.gdg.org.ua", imageUrl: "gdg-lviv.svg"} 20 | - {name: "GDG[x]", description: "GDG[x] - Yeah, we can fix that", link: "https://github.com/gdg-x", imageUrl: "gdg-x.svg"} 21 | - {name: "Google", description: "Google", link: "https://www.google.com.ua/intl/en/about/", imageUrl: "google.svg"} 22 | - {name: "GDG Lviv", description: "GDG Lviv - Open and volunteer geek community", link: "http://lviv.gdg.org.ua", imageUrl: "gdg-lviv.svg"} 23 | - {name: "GDG[x]", description: "GDG[x] - Yeah, we can fix that", link: "https://github.com/gdg-x", imageUrl: "gdg-x.svg"} -------------------------------------------------------------------------------- /_data/team.yml: -------------------------------------------------------------------------------- 1 | - 2 | id: 0 3 | name: "Vitaliy" 4 | surname: "Zasadnyy" 5 | title: "Sponsors and Speakers Manager" 6 | thumbnailUrl: VitaliyZasadnyy.jpg 7 | team: true 8 | ribbon: 9 | - {abbr: "GDG", title: "Google Developer Group"} 10 | social: 11 | - {name: "google-plus", link: "https://google.com/+VitalikZasadnyy"} 12 | - {name: "twitter", link: "https://twitter.com/zasadnyy"} 13 | - {name: "github", link: "https://github.com/zasadnyy"} 14 | - {name: "site", link: "http://zasadnyy.com/"} 15 | - 16 | id: 1 17 | name: "Oleh" 18 | surname: "Zasadnyy" 19 | title: "Designer and Web Developer" 20 | thumbnailUrl: OlehZasadnyy.jpg 21 | team: true 22 | ribbon: 23 | - {abbr: "GDG", title: "Google Developer Group"} 24 | social: 25 | - {name: "google-plus", link: "https://google.com/+OlehZasadnyy"} 26 | - {name: "github", link: "https://github.com/ozasadnyy"} 27 | - 28 | id: 2 29 | name: "Ostap" 30 | surname: "Andrusiv" 31 | title: "Sponsors and Speakers Manager" 32 | thumbnailUrl: OstapAndrusiv.jpg 33 | team: true 34 | ribbon: 35 | - {abbr: "GDG", title: "Google Developer Group"} 36 | social: 37 | - {name: "google-plus", link: "https://google.com/+OstapAndrusiv"} 38 | - {name: "twitter", link: "https://twitter.com/p1f"} 39 | - {name: "site", link: "http://andrusiv.com/"} 40 | - 41 | id: 4 42 | name: "Dmytro" 43 | surname: "Danylyk" 44 | title: "Android Program Committee" 45 | thumbnailUrl: DmytroDanylyk.jpg 46 | subTeam: true 47 | social: 48 | - {name: "google-plus", link: "https://plus.google.com/+DmytroDanylyk"} 49 | - {name: "twitter", link: "https://twitter.com/dmytrodanylyk"} 50 | - {name: "github", link: "https://github.com/dmytrodanylyk"} 51 | - 52 | id: 7 53 | name: "Valentyn" 54 | surname: "Shybanov" 55 | title: "Web and Cloud Program Committee" 56 | thumbnailUrl: ValentynShybanov.jpg 57 | subTeam: true 58 | social: 59 | - {name: "google-plus", link: "https://google.com/+ValentynShybanov"} 60 | - {name: "site", link: "http://olostan.name/"} -------------------------------------------------------------------------------- /_sass/partials/_ribbon.scss: -------------------------------------------------------------------------------- 1 | $ribbon-color: #999; 2 | $gdg-ribbon-border-color: #427fed; 3 | $gdgw-ribbon-border-color: #ed2c82; 4 | $gde-ribbon-border-color: #db4437; 5 | $wt-ribbon-border-color: #72e1b3; 6 | .ribbon-wrapper { 7 | position: absolute; 8 | z-index: 5; 9 | right: 0; 10 | margin-top: 10px; 11 | list-style: none; 12 | li { 13 | overflow: hidden; 14 | margin-bottom: 5px; 15 | &:nth-child(3) .abbr, &:nth-child(3) .full-title { 16 | transition-delay: .1s; 17 | } 18 | &:nth-child(2) .abbr, &:nth-child(2) .full-title { 19 | transition-delay: .15s; 20 | } 21 | } 22 | .gdg { 23 | border-right: 4px solid $gdg-ribbon-border-color; 24 | } 25 | .gdgw { 26 | border-right: 4px solid $gdgw-ribbon-border-color; 27 | } 28 | .gde { 29 | border-right: 4px solid $gde-ribbon-border-color; 30 | } 31 | .wt { 32 | border-right: 4px solid $wt-ribbon-border-color; 33 | } 34 | .ribbon { 35 | font-size: 13px; 36 | font-weight: 300; 37 | line-height: 22px; 38 | display: inline-block; 39 | float: right; 40 | min-width: 44px; 41 | height: 22px; 42 | margin: 0; 43 | padding: 0 7px; 44 | transition: $base-transition; 45 | text-align: left; 46 | word-wrap: normal; 47 | color: $ribbon-color; 48 | background-color: #fff; 49 | box-shadow: 0 0 20px rgba(0, 0, 0, .2); 50 | } 51 | .abbr { 52 | .ribbon-activator:hover & { 53 | transform: translateX(100%); 54 | @media (max-width: 767px) { 55 | transform: translateX(0); 56 | } 57 | } 58 | } 59 | .full-title { 60 | clear: both; 61 | margin-top: -22px; 62 | transform: translateX(100%); 63 | .ribbon-activator:hover & { 64 | transform: translateX(0); 65 | @media (max-width: 767px) { 66 | transform: translateX(100%); 67 | } 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /_sass/partials/_tickets-2.scss: -------------------------------------------------------------------------------- 1 | $border-color: rgba(51, 51, 51, .6); 2 | 3 | .tickets-2 { 4 | .ticket-text { 5 | margin: 0; 6 | font-size: 32px; 7 | font-weight: $light; 8 | line-height: 39px; 9 | } 10 | .price { 11 | @extend .ticket-text; 12 | @media (max-width: 767px) { 13 | font-size: 28px; 14 | margin-top: 15px; 15 | } 16 | } 17 | .title { 18 | @extend .ticket-text; 19 | padding-left: 10px; 20 | text-align: left; 21 | @media (max-width: 767px) { 22 | padding: 0; 23 | text-align: center; 24 | } 25 | } 26 | .ticket-additional-text { 27 | margin-top: 3px; 28 | display: block; 29 | font-size: 12px; 30 | line-height: 13px; 31 | @media (max-width: 767px) { 32 | font-size: 13px; 33 | line-height: 14px; 34 | } 35 | } 36 | .ticket-additional-info { 37 | @extend .ticket-additional-text; 38 | padding-left: 10px; 39 | text-align: left; 40 | @media (max-width: 767px) { 41 | padding: 0; 42 | text-align: center; 43 | } 44 | } 45 | .ticket-fallback { 46 | padding-top: 2px; 47 | line-height: 1.2;; 48 | } 49 | .ticket-sold-out { 50 | font-size: 18px; 51 | padding-top: 10px; 52 | } 53 | .tickets-info { 54 | font-size: 16px; 55 | } 56 | .button { 57 | @media (max-width: 767px) { 58 | margin-top: 20px; 59 | width: 100%; 60 | } 61 | a { 62 | @media (max-width: 767px) { 63 | width: 100%; 64 | font-size: 20px; 65 | } 66 | } 67 | } 68 | } 69 | .tickets-table { 70 | margin: 0 auto; 71 | margin-bottom: 20px; 72 | padding: 0 15px; 73 | border: 1px solid $border-color; 74 | max-width: 850px; 75 | } 76 | .tickets-row { 77 | padding: 20px 0; 78 | border-bottom: 1px dashed $border-color; 79 | &:last-child { 80 | border: none; 81 | } 82 | } -------------------------------------------------------------------------------- /img/partners/google.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/navigation.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 | 31 |
-------------------------------------------------------------------------------- /_sass/vendor/animations/flippers/_flipInY.scss: -------------------------------------------------------------------------------- 1 | @if $use-flipInY == true { 2 | 3 | @-webkit-keyframes flipInY { 4 | 0% { 5 | -webkit-transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); 6 | opacity: 0; 7 | } 8 | 9 | 40% { 10 | -webkit-transform: perspective($flipper-perspective) rotateY(-$flipper-degrees); 11 | } 12 | 13 | 70% { 14 | -webkit-transform: perspective($flipper-perspective) rotateY($flipper-degrees); 15 | } 16 | 17 | 100% { 18 | -webkit-transform: perspective($flipper-perspective) rotateY(0deg); 19 | opacity: 1; 20 | } 21 | } 22 | 23 | @-moz-keyframes flipInY { 24 | 0% { 25 | -moz-transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); 26 | opacity: 0; 27 | } 28 | 29 | 40% { 30 | -moz-transform: perspective($flipper-perspective) rotateY(-$flipper-degrees); 31 | } 32 | 33 | 70% { 34 | -moz-transform: perspective($flipper-perspective) rotateY($flipper-degrees); 35 | } 36 | 37 | 100% { 38 | -moz-transform: perspective($flipper-perspective) rotateY(0deg); 39 | opacity: 1; 40 | } 41 | } 42 | 43 | @-o-keyframes flipInY { 44 | 0% { 45 | -o-transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); 46 | opacity: 0; 47 | } 48 | 49 | 40% { 50 | -o-transform: perspective($flipper-perspective) rotateY(-$flipper-degrees); 51 | } 52 | 53 | 70% { 54 | -o-transform: perspective($flipper-perspective) rotateY($flipper-degrees); 55 | } 56 | 57 | 100% { 58 | -o-transform: perspective($flipper-perspective) rotateY(0deg); 59 | opacity: 1; 60 | } 61 | } 62 | 63 | @keyframes flipInY { 64 | 0% { 65 | transform: perspective($flipper-perspective) rotateY($flipper-degrees-max); 66 | opacity: 0; 67 | } 68 | 69 | 40% { 70 | transform: perspective($flipper-perspective) rotateY(-$flipper-degrees); 71 | } 72 | 73 | 70% { 74 | transform: perspective($flipper-perspective) rotateY($flipper-degrees); 75 | } 76 | 77 | 100% { 78 | transform: perspective($flipper-perspective) rotateY(0deg); 79 | opacity: 1; 80 | } 81 | } 82 | 83 | .flipInY { 84 | @include animate-prefixer(backface-visibility, visible !important); 85 | @include animate-prefixer(animation-name, flipInY); 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /_includes/tickets-2.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |

{{ site.ticketsTitle }}

6 |
7 | {% assign animationDelay = 0 %} 8 | {% for ticketsOffer in site.ticketsOffers %} 9 |
10 |
11 |
12 |

{{ ticketsOffer.name }}

13 | {% if ticketsOffer.additionalInfo != null %} 14 | {{ ticketsOffer.additionalInfo }} 15 | {% endif %} 16 | {% if ticketsOffer.disabled != true %} 17 | {% assign ticketValidTo = ticketsOffer.validThrough | split: "T" %} 18 | Before {{ ticketValidTo[0] | date: "%-d %B %Y"}} {{ ticketValidTo[1] }} or {{ ticketsOffer.ticketsNumber }} tickets 19 | {% endif %} 20 |
21 |
22 |

{{ ticketsOffer.price }} {{ ticketsOffer.priceCurrency }}

23 |
24 |
25 | {% if ticketsOffer.soldOut == true %} 26 |

{{ ticketsOffer.soldOutText }}

27 | {% elsif ticketsOffer.disabled != true %} 28 | 29 | {{ ticketsOffer.buyButtonText }} 30 | 31 | {% else %} 32 | {% assign ticketValidFrom = ticketsOffer.validFrom | split: "T" %} 33 |

Ticket sales will begin on {{ ticketValidFrom[0] | date: "%-d %B %Y"}} {{ ticketValidFrom[1] }}

34 | {% endif %} 35 |
36 |
37 |
38 | {% assign animationDelay = animationDelay | plus:250 %} 39 | {% endfor %} 40 |
41 | {{ site.ticketsInfo }} 42 |
43 |
44 |
45 | -------------------------------------------------------------------------------- /_posts/2014-07-21-call-for-papers.markdown: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: "Call for Papers" 4 | date: 2014-07-21 09:00:00 5 | isStaticPost: false 6 | --- 7 | GDG DevFest Ukraine 2014 will be held 24-25th of October in ancient city of Lviv. If you want to be part of this great event as a speaker you knocked at the good door. 8 | 9 | #### Presenters – who should speak at the DevFest Conference? 10 | 11 | * developers (freelance and hired) 12 | * companies developing software (apps, tools, frameworks etc.) 13 | * research institutions with Google relevant activities 14 | * companies, organisations and individuals using Google technologies 15 | 16 | If you belong to one of those groups you are cordially invited to submit a talk proposal (or a number of proposals). An independent program committee assesses the proposals and selects the actual conference talks.
17 | 18 | #### Themes and topics – what do we expect? 19 | Our team prepared set of interesting topics in but if you have any cool idea you want to share not from this list, feel free to submit it as well. 20 | 21 | ##### Android 22 | 23 | __Google I/O 2014__ 24 | 25 | * Material Design 26 | * Migration to ART 27 | * New Android Camera API 28 | * New Job Scheduler 29 | * Storage Access Framework 30 | * Elevation & Clipping 31 | 32 | __General__ 33 | 34 | * Android Continuous Integration 35 | * Loaders, Cursor Adapters 36 | * Android Animations 37 | * Patterns in Android development 38 | 39 | ##### Web 40 | 41 | * AngularJS (1x and 2.0) 42 | * Dart (AngularDart, server-side) 43 | * Polymer and WebComponents 44 | * Material Design in Web 45 | * ChromeOS (apps development) 46 | * Web Performance (tools, techniques, approaches) 47 | 48 | 49 | ##### Cloud 50 | 51 | * Google Cloud Platform 52 | * Compute Engine 53 | * App Engine 54 | * Storages (SQL, NoSQL, BigData) 55 | * APIs 56 | * Go (as a language for a Cloud Ready Apps) 57 | 58 | 59 | #### Please submit your proposals [here](http://bit.ly/dfua-c4p). 60 | __Deadline__ is September 1, 2014 61 | 62 | __Please note:__ There is no guarantee that a submission will be put onto the conference agenda!
63 | 64 | The program committee picks the most interesting talk proposals and informs the selected submitters until September 15, 2014.
65 | 66 | #### Any questions? 67 | Email organizers at [devfest@gdg.org.ua](mailto:devfest@gdg.org.ua) -------------------------------------------------------------------------------- /_posts/2014-07-21-hello-world.markdown: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: "Hello World!" 4 | date: 2014-07-21 08:00:00 5 | isStaticPost: false 6 | --- 7 | 8 | We're very excited - not just because of the inordinate amount of caffeine based products consumed - 9 | but also because our team are putting together 10 | the final missing parts to the biggest Google related event in Ukraine - [GDG DevFest 2014](http://devfest.gdg.org.ua/). 11 | 12 | This year event will take place in cultural capital of Ukraine - Lviv. Being a unique European city in Ukraine, Lviv is among top 10 cities of the world to visit in 2014 according to the travel group “The Rough Guide” and is among top 10 cities for spending weekends in Europe according to Lonely Planet. So take your time to spend weeked in last hidden gem in the Europe in company of experts and technical geeks. 13 | 14 | So should you also be excited? Well yes... and here's why! 15 | 16 | * **Attendance**: we're expecting over 350 attendees 17 | * **Topic**: more than 48 hours of pure Google technologies 18 | * **Date**: 24-25 of October, expect hackathon and workshops on a first day and conference on the second 19 | * **Venue**: Kinopalace Cinema - for a first time we'll make technical event in real cinema directly in the heart of the ancient city of Lviv 20 | * **Speakers**: we're in the process of finalising the list of speakers 21 | 22 | but we've already secured a first batch of experts: 23 | 24 | * **Dawid Ostrowski** - Developer Relation from Google, who excited about cloud technologies
25 | * **Mateusz Herych** - Android GDE and GDG organizer from Krakow
26 | * **Dmytro Danylyk** - developer, blogger, speaker, author of open source 1000+ star libraries
27 | * **Roman Mazur** - speaker on various international conferences like Droidcon Eastern Europe and Ankara Developer Days
28 | 29 | 30 | More details about speakers, DevFest Hackathon and Lviv will appear in subsequent posts, meantime like us on [Facebook](https://facebook.com/GDGLviv), follow on [Twitter](https://twitter.com/intent/user?screen_name=GDGLviv), add to circles in [Google+](https://plus.google.com/b/102444623953913144164) or subcribe to our [mailing list](http://gdg.us5.list-manage1.com/subscribe/post?u=9fc8aa205b0521b5f05fc8e1e&id=ae0fb459fc) and [RSS feed](http://devfest.gdg.org.ua/feed.xml) in order not to miss any cool stuff about festival. 31 | -------------------------------------------------------------------------------- /_includes/subscribe.html: -------------------------------------------------------------------------------- 1 | 2 | 33 | -------------------------------------------------------------------------------- /_sass/vendor/bootstrap/_progress-bars.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Progress bars 3 | // -------------------------------------------------- 4 | 5 | 6 | // Bar animations 7 | // ------------------------- 8 | 9 | // WebKit 10 | @-webkit-keyframes progress-bar-stripes { 11 | from { background-position: 40px 0; } 12 | to { background-position: 0 0; } 13 | } 14 | 15 | // Spec and IE10+ 16 | @keyframes progress-bar-stripes { 17 | from { background-position: 40px 0; } 18 | to { background-position: 0 0; } 19 | } 20 | 21 | 22 | // Bar itself 23 | // ------------------------- 24 | 25 | // Outer container 26 | .progress { 27 | overflow: hidden; 28 | height: $line-height-computed; 29 | margin-bottom: $line-height-computed; 30 | background-color: $progress-bg; 31 | border-radius: $progress-border-radius; 32 | @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); 33 | } 34 | 35 | // Bar of progress 36 | .progress-bar { 37 | float: left; 38 | width: 0%; 39 | height: 100%; 40 | font-size: $font-size-small; 41 | line-height: $line-height-computed; 42 | color: $progress-bar-color; 43 | text-align: center; 44 | background-color: $progress-bar-bg; 45 | @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); 46 | @include transition(width .6s ease); 47 | } 48 | 49 | // Striped bars 50 | // 51 | // `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the 52 | // `.progress-bar-striped` class, which you just add to an existing 53 | // `.progress-bar`. 54 | .progress-striped .progress-bar, 55 | .progress-bar-striped { 56 | @include gradient-striped; 57 | background-size: 40px 40px; 58 | } 59 | 60 | // Call animation for the active one 61 | // 62 | // `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the 63 | // `.progress-bar.active` approach. 64 | .progress.active .progress-bar, 65 | .progress-bar.active { 66 | @include animation(progress-bar-stripes 2s linear infinite); 67 | } 68 | 69 | 70 | // Variations 71 | // ------------------------- 72 | 73 | .progress-bar-success { 74 | @include progress-bar-variant($progress-bar-success-bg); 75 | } 76 | 77 | .progress-bar-info { 78 | @include progress-bar-variant($progress-bar-info-bg); 79 | } 80 | 81 | .progress-bar-warning { 82 | @include progress-bar-variant($progress-bar-warning-bg); 83 | } 84 | 85 | .progress-bar-danger { 86 | @include progress-bar-variant($progress-bar-danger-bg); 87 | } 88 | --------------------------------------------------------------------------------