diff --git a/.forestry/front_matter/templates/homepage.yml b/.forestry/front_matter/templates/homepage.yml new file mode 100644 index 0000000..9c3bffc --- /dev/null +++ b/.forestry/front_matter/templates/homepage.yml @@ -0,0 +1,26 @@ +--- +label: Homepage +hide_body: false +fields: +- name: layout + label: Layout + type: text + hidden: false + default: '' +- name: body_class + label: Body class + type: text + hidden: false + default: '' +- type: text + name: title + label: Title + config: + required: true +- type: textarea + label: Description + name: description + config: + wysiwyg: '' +pages: +- index.md diff --git a/.forestry/settings.yml b/.forestry/settings.yml new file mode 100644 index 0000000..98eefb5 --- /dev/null +++ b/.forestry/settings.yml @@ -0,0 +1,28 @@ +--- +new_page_extension: md +auto_deploy: false +admin_path: +webhook_url: +sections: +- type: jekyll-pages + label: Pages + create: all +- type: jekyll-posts + label: Posts + create: all +upload_dir: uploads +public_path: "/uploads" +front_matter_path: "/uploads" +use_front_matter_path: false +file_template: ":year:/:month:/:day:/:filename:" +build: + preview_command: bundle exec jekyll build --drafts --unpublished --future -d _site + publish_command: bundle exec jekyll build -d _site + preview_env: + - JEKYLL_ENV=staging + publish_env: + - JEKYLL_ENV=production + preview_output_directory: _site + output_directory: _site + instant_preview_command: bundle exec jekyll serve --drafts --unpublished --future + --port 8080 --host 0.0.0.0 -d _site diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..da7ac62 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +_site +.sass-cache +.asset-cache diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..00355e2 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.3.7 diff --git a/_assets/css/_base.scss b/_assets/css/_base.scss new file mode 100644 index 0000000..f14bfee --- /dev/null +++ b/_assets/css/_base.scss @@ -0,0 +1,500 @@ + + +// Global +// ----------------------------------------------------------------------------- +* { + box-sizing: border-box; +} + +body { + font-family: "franklin-gothic-urw", Helvetica, Arial, sans-serif; +} + +h1, h2, h3, h4, h5, h6, p, li { + margin-top: 0; + margin-bottom: 1rem; +} + +body { + background: #111; +} + +h2 { + font-size: 36px; + font-weight: 400; + margin-bottom: 0; + padding-bottom: 0; +} + +// Header +// ----------------------------------------------------------------------------- +.header { + width: 100vw; + height: 50vh; + min-height: 414px; + display: flex; + flex-direction: row-reverse; + align-items: flex-start; + justify-content: flex-start; + flex: 1; + position: relative; + // background: #111; + + .theme-blue-lagoon & { + background: #43C6AC; + background: -webkit-linear-gradient(to bottom, #191654, #43C6AC); + background: linear-gradient(to bottom, #191654, #43C6AC); + } + + .theme-dawn & { + background: #FFA17F; + background: -webkit-linear-gradient(to bottom, #00223E, #FFA17F); + background: linear-gradient(to bottom, #00223E, #FFA17F); + } + + .theme-celestial & { + background: #C33764; + background: -webkit-linear-gradient(to bottom, #1D2671, #C33764); + background: linear-gradient(to bottom, #1D2671, #C33764); + } + + color: #fff; + padding: 20px; + -webkit-font-smoothing: antialiased; + + @include media('>phone') { + padding: 30px; + } + + @include media('>tablet') { + height: 100vh; + width: (100%/3); + position: fixed; + top: 0; + left: 0; + } + + .wrapper { + width: 100%; + } + + .logo { + font-size: 36px; + font-weight: 400; + line-height: 1.1; + margin-bottom: 1rem; + } + + p, + li { + font-size: 16px; + } + + p { + // font-size: 24px; + line-height: 1.3; + font-weight: 400; + } + + p a, + .nav li a { + color: #fff; + opacity: 0.7; + border-bottom: 1px solid rgba(255,255,255,0.5); + text-decoration: none; + } + + .no-touch & .nav li a:hover, + .no-touch & p a:hover { + opacity: 1; + border-color: #fff; + } + + ul { + margin: 0 0 1rem; + padding: 0; + } + + li { + list-style: none; + display: inline-block; + } + + li a { + color: #fff; + text-decoration: none; + } + + .nav li { + padding-right: 18px; + margin-right: 15px; + border-right: 1px solid rgba(255,255,255,0.5); + line-height: 1.4; + vertical-align: middle; + padding-bottom: 5px; + + &:last-child { + padding-right: 0; + margin-right: 0; + border-right: none; + } + } + + ul.social { + position: absolute; + bottom: 0; + left: 0; + padding: 0 20px; + transform: translate3d(0,0,0); + + @include media('>phone') { + padding: 0 30px; + } + } + + .social a { + color: rgba(255,255,255,0.5); + font-size: 24px; + } + + .no-touch & .social a:hover { + color: #fff; + } +} + +.work, +.resume, +footer { + background: #fff; + overflow: hidden; + + @include media('>tablet') { + width: (100% * 2 / 3); + margin-left: (100%/3); + } +} + +// Work +// ----------------------------------------------------------------------------- +.work { + background: #edece6; + + h2 { + padding: 20px 20px 0; + + @include media('>phone') { + padding: 30px 30px 0; + } + } + + .projects { + list-style: none; + padding: 10px; + margin: 0; + display: flex; + flex-direction: row; + align-items: flex-start; + justify-content: flex-start; + flex-wrap: wrap; + + @include media('>phone') { + padding: 20px; + } + } + + .project { + position: relative; + overflow: hidden; + width: calc(50% - 20px); + margin: 10px; + } + + .project a:link, + .project a:hover, + .project a:visited { + text-decoration: none; + } + + .project-poster { + position: relative; + display: block; + background-size: cover; + background-position: top left; + padding-bottom: (100% * 2 / 3); + background-repeat: no-repeat; + } + + .project-info { + position: relative; + + h3 { + line-height: 1.1; + font-size: 24px; + font-weight: 400; + margin-bottom: 1rem; + } + + .project-description { + display: none; + } + } +} + +.touch { + .work .project-poster { + margin-bottom: 0.5rem; + } + + .work .project-info { + position: relative; + + .project-date { + display: none; + color: #999; + font-size: 14px; + padding-top: 3px; + margin-bottom: 0; + } + + h3 { + font-size: 16px; + font-weight: 400; + margin-bottom: 0; + } + + .project-header a { + display: block; + color: #000; + } + + .project-meta { + margin-bottom: 0; + } + + .project-meta .repo-link, + .project-meta .repo-link:visited { + display: inline; + color: #777; + font-size: 14px; + border-bottom: 1px solid #999; + } + } +} + +.no-touch { + .work .project { + &:hover { + .project-poster:before, + .project-info { + opacity: 1; + } + + .project-poster { + filter: blur(5px); + } + + .project-header a, + .project-meta { + transform: translate(0, 0); + opacity: 1; + } + } + } + + .work .project-poster { + transition: all 200ms ease-in-out; + filter: blur(0); + + &:before { + transition: opacity 200ms ease-in-out; + content: ' '; + position: absolute; + display: block; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: fade-out(#000, 0.5); + // background-blend-mode: luminosity; + opacity:0; + + // @at-root .theme-blue-lagoon#{&} { + // background: fade-out(#43C6AC, 0.3); + // } + + // @at-root .theme-dawn#{&} { + // background: fade-out(#FFA17F, 0.3); + // } + + // @at-root .theme-celestial#{&} { + // background: fade-out(#C33764, 0.3); + // } + } + } + + .work .project-info { + transition: opacity 200ms ease-in-out; + position: absolute; + opacity: 0; + z-index: 100; + top: 1rem; + left: 1rem; + bottom: 1rem; + right: 1rem; + + h3 { + font-size: 18px; + margin: 0; + padding: 0; + } + + .project-date { + display: none; + font-size: 14px; + color: rgba(255,255,255,0.7); + } + + .project-header > a { + display: block; + color: #fff; + + &:hover { + text-decoration: none; + } + } + + .project-header > a { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + transition: transform 300ms ease-in-out 10ms, opacity 250ms ease-in-out 100ms; + transform: translate(-10%, 0); + opacity: 0; + padding: 0.5rem; + } + + .project-meta { + transition: transform 300ms ease-in-out 10ms, opacity 250ms ease-in-out 100ms; + transform: translate(10%, 0); + width: 100%; + opacity: 0; + position: absolute; + bottom: 0; + left: 0; + color: #fff; + padding: 0.5rem; + z-index: 200; + text-align: right; + margin-bottom: 0; + } + + .project-date a, + .project-date a:visited, + .repo-link, + .repo-link:visited { + color: rgba(255,255,255,0.7); + font-size: 14px; + } + + .repo-link { + border-bottom: 1px solid rgba(255,255,255,0.5); + + &:hover { + border-bottom: 1px solid #fff; + } + } + + .project-date a:hover, + .repo-link:hover { + color: rgba(255,255,255,1); + text-decoration: none; + } + } +} + + + +// Resume +// ----------------------------------------------------------------------------- +.resume { + padding: 20px; + background: #fff; + + @include media('>phone') { + padding: 30px; + } + + .wrapper { + max-width: 600px; + } + + h2 + h3 { + margin-top: 1rem; + } + + h3 { + border-top: 1px solid #e5e5e5; + font-weight: 700; + font-size: 21px; + margin-top: 2rem; + padding-top: 1rem; + + + h4, + + h5 { + margin-top: 0; + } + } + + h4 { + font-size: 21px; + font-weight: 400; + margin-top: 1rem; + margin-bottom: 0; + } + + h5 { + font-size: 18px; + font-weight: 400; + margin-top: 2rem; + margin-bottom: 0.5rem; + } + + p, + li { + font-size: 15px; + line-height: 1.4; + margin-bottom: 0.5rem; + } + + ul { + padding: 0; + margin: 0; + } + + li { + margin-left: 1rem; + margin-bottom: 0.5rem; + padding-left: 0.5rem; + } + + em { + font-size: 15px; + color: #999; + font-style: normal; + } +} + +// Footer +// ----------------------------------------------------------------------------- +footer { + padding: 20px; + overflow: hidden; + color: #999; + font-size: 14px; + + @include media('>phone') { + padding: 30px; + } +} diff --git a/_assets/css/_fonts.scss b/_assets/css/_fonts.scss new file mode 100644 index 0000000..34fcae4 --- /dev/null +++ b/_assets/css/_fonts.scss @@ -0,0 +1,63 @@ +@font-face { + font-family: 'fontello'; + src: url('http://github.com/font/fontello.eot?85747586'); + src: url('http://github.com/font/fontello.eot?85747586#iefix') format('embedded-opentype'), + url('http://github.com/font/fontello.svg?85747586#fontello') format('svg'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'fontello'; + src: url('data:application/octet-stream;base64,d09GRgABAAAAAA8QAA4AAAAAGAwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABRAAAAEQAAABWPeJJB2NtYXAAAAGIAAAAOwAAAVLoIenVY3Z0IAAAAcQAAAAKAAAACgAAAABmcGdtAAAB0AAABZQAAAtwiJCQWWdhc3AAAAdkAAAACAAAAAgAAAAQZ2x5ZgAAB2wAAASjAAAFWjAP+9RoZWFkAAAMEAAAADUAAAA2BMGt4WhoZWEAAAxIAAAAHgAAACQHlwNOaG10eAAADGgAAAAhAAAAKCJaAABsb2NhAAAMjAAAABYAAAAWB7UGkm1heHAAAAykAAAAIAAAACAAoAvkbmFtZQAADMQAAAF3AAACzcydGx1wb3N0AAAOPAAAAGwAAACJpqnW33ByZXAAAA6oAAAAZQAAAHvdawOFeJxjYGTOZ5zAwMrAwVTFtIeBgaEHQjM+YDBkZGJgYGJgZWbACgLSXFMYHF4wvOBkDvqfxRDFHMQQABRmBMkBAOPAC2d4nGNgYGBmgGAZBkYGEPAB8hjBfBYGAyDNAYRMIIkX7C84//8HsxggLAlGCQaoLjBgZGMY8QAA4mkIxAAAAAAAAAAAAAAAAAB4nK1WaXMTRxCd1WHLNj6CDxI2gVnGcox2VpjLCBDG7EoW4BzylexCjl1Ldu6LT/wG/ZpekVSRb/y0vB4d2GAnVVQoSv2m9+1M9+ueXpPQksReWI+k3HwpprY2aWTnSUg3bFqO4kPZ2QspU0z+LoiCaLXUvu04JCISgap1hSWC2PfI0iTjQ48yWrYlvWpSbulJd9kaD+qt+vbT0FGO3QklNZuhQ+uRLanCqBJFMu2RkjYtw9VfSVrh5yvMfNUMJYLoJJLGm2EMj+Rn44xWGa3GdhxFkU2WG0WKRDM8iCKPslpin1wxQUD5oBlSXvk0onyEH5EVe5TTCnHJdprf9yU/6R3OvyTieouyJQf+QHZkB3unK/ki0toK46adbEehivB0fSfEI5uT6p/sUV7TaOB2RaYnzQiWyleQWPkJZfYPyWrhfMqXPBrVkoOcCFovc2Jf8g60HkdMiWsmyILujk6IoO6XnKHYY/q4+OO9XSwXIQTIOJb1jkq4EEYpYbOaJG0EOYiSskWV1HpHTJzyOi3iLWG/Tu3oS2e0Sag7MZ6th46tnKjkeDSp00ymTu2k5tGUBlFKOhM85tcBlB/RJK+2sZrEyqNpbDNjJJFQoIVzaSqIZSeWNAXRPJrRm7thmmvXokWaPFDPPXpPb26Fmzs9p+3AP2v8Z3UqpoO9MJ2eDshKfJp2uUnRun56hn8m8UPWAiqRLTbDlMVDtn4H5eVjS47CawNs957zK+h99kTIpIH4G/AeL9UpBUyFmFVQC9201rUsy9RqVotUZOq7IU0rX9ZpAk05Dn1jX8Y4/q+ZGUtMCd/vxOnZEZeeufYlyDSH3GZdj+Z1arFdgM5sz+k0y/Z9nebYfqDTPNvzOh1ha+t0lO2HOi2w/UinY2wvaEGT7jsEchGBXMAGEoGwdRAI20sIhK1CIGwXEQjbIgJhu4RA2H6MQNguIxC2l7Wsmn4qaRw7E8sARYgDoznuyGVuKldTyaUSrotGpzbkKXKrpKJ4Vv0rA/3ikTesgbVAukTW/IpJrnxUleOPrmh508S5Ao5Vf3tzXJ8TD2W/WPhT8L/amqqkV6x5ZHIVeSPQk+NE1yYVj67p8rmqR9f/i4oOa4F+A6UQC0VZlg2+mZDwUafTUA1c5RAzGzMP1/W6Zc3P4fybGCEL6H78NxQaC9yDTllJWe1gr9XXj2W5twflsCdYkmK+zOtb4YuMzEr7RWYpez7yecAVMCqVYasNXK3gzXsS85DpTfJMELcVZYOkjceZILGBYx4wb76TICRMXbWB2imcsIG8YMwp2O+EQ1RvlOVwe6F9Ho2Uf2tX7MgZFU0Q+G32Rtjrs1DyW6yBhCe/1NdAVSFNxbipgEsj5YZq8GFcrdtGMk6gr6jYDcuyig8fR9x3So5lIPlIEatHRz+tvUKd1Ln9yihu3zv9CIJBaWL+9r6Z4qCUd7WSZVZtA1O3GpVT15rDxasO3c2j7nvH2Sdy1jTddE/c9L6mVbeDg7lZEO3bHJSlTC6o68MOG6jLzaXQ6mVckt52DzAsMKDfoRUb/1f3cfg8V6oKo+NIvZ2oH6PPYgzyDzh/R/UF6OcxTLmGlOd7lxOfbtzD2TJdxV2sn+LfwKy15mbpGnBD0w2Yh6xaHbrKDXynBjo90tyO9BDwse4K8QBgE8Bi8InuWsbzKYDxfMYcH+Bz5jBoMofBFnMYbDNnDWCHOQx2mcNgjzkMvmDOOsCXzGEQModBxBwGT5gTADxlDoOvmMPga+Yw+IY59wG+ZQ6DmDkMEuYw2Nd0ayhzixd0F6htUBXowPQTFvewONRUGbK/44Vhf28Qs38wiKk/aro9pP7EC0P92SCm/mIQU3/VdGdI/Y0Xhvq7QUz9wyCmPtMvxnKZwV9GvkuFA8ouNp/z98T7B8IaQLYAAQAB//8AD3icPVRtaBNnHH9ekueu1+RySe6tsb1eL/YSm+SSXu4ut9SmpQSJVWOMuFUomXbCRKRIyYoIEwXppBNXHGzDT36oUnCI6/Dlo9h+cGxf9mUbftiKiOzT2JcxBjPuSbuN5+55nnue4/97+f/5AwjAmz/xVbQB8oB8nWZhLgMJI4k8ThkpuWiXLPjvMg5lxYJOSYOK6TpeyVa8EmE8fHXYHXn7/NrJzz+MqxfnxmZj8YiqTjTN7HC2r/rkXPDM9GF33BXHHDTvpZT9K0unJtERfAhVS4iE56aQhPrqJ0aOngpK4oHT8K2QPrmbANDltYlncS9oUl6HA11eImGIOQ6dVCWQclJeyiQRaBqMhRiiEEnUsEIYHhpmyoJ5aBANDsLtF9kTUBIVkdAL16lAW4P4+OrlCD+g276RQFkpEdkrSc68y2qTgipmVcMvDMnBUMI0+F491BtiEYsDIZUEWSNthsJQ4C+vtp/+9uQ8bF3bymCeW/T6MK9la4VqvjgRlPlwJEJiCTJRzFfzNatfQKIZJKoSkzEMcARjovFhKcEibPcjjseZrWsfbLbbmzu6f8Jr6CUYpLrZbd2yJBLdFLyirUgmVajBUgW6UVmhgyEM6gRedJ6+2LrlmAfr+yrO8j5nn8Deu6r3j8zAG7p469UrOPWS+zmx21i6YBqJs1WoseQsQfZBbRvvL/wreh+cpHiN3m2fFWplFzRpWME8tHDS4KmB3TLwStTj0e4FTDkVpNgaUei55zoWon+iVLc0FFoioxpSGDM1aiYNgr4nwVhCjT9YPDpUzo706wIvxoxCNefO+Ysz7+UGI3lW2P9Jc3kaFprzY6ONckE3ZIN3D+UmZcNSR/vSRgDNVTKFBOH5QC0SCY/sMuE3WBRkgTD2R0fOirpdqFrDbq5sy5VT7vElN6kdi4vHZlaOlBeaHpQNr1ybagye83KqLvI9cc50Mj0947MI0bQKKvb7QyET7Pj/FVJwE4jUjxjX9UOiGgZgkUlG6XCLVGHRRso7BWNVvn73+vX2ySY+8Gk6feZ2Zwau3b5weoHGQW86AOAVdAlEQRKwD5R4GKNcJm6WvOKQTbNGa5cYeWgGPSlKnR4yTDfqKEHZLml6AKm4bsZYgV9/KJRjD9dxVTSEv7cEQ4SXYn4MTcdkXudZcmKO4+ZOtDixsyLougDPidwzjgNd/O6EryATsJQB+yDcEwAUv2SYjmfLIhn6b7PZaC+sLrThlzvrZ4t32u07iztzNwT14zt8HL2hOx6MAO5RWggRCDDVQu0oiSQDd0JB+ul0080QKZr0xmGqKCUruGTLG483yxa0/PKsjz5+ZBWSVpg8hvAx7FXNvca7bfjH6x/Rnrt7PK/peZ3JzgZMj02ZA9H+zre/LN/e1YglqLSLAAQol/u0J4RAHBi0X/kgPMl5dnZYFQkK0EQ5qeL/XhZpR5BtL27LAzBJaTHJbt6CrkP5DkBRHoM2I5Id6mid3K/7r+/79XuBL364uduvP68vLU8/r/toRa2pPFdTn7WutOgDWwm1s+Y3Gj6c0WNnbt5Eat2/MT9/w6/fqalqjRV+n2q1lmZnwT/JEQ5VAHicY2BkYGAAYnMZ9eZ4fpuvDNzML4AiDBfueYlCaPmn///938D8gjkIyOVgYAKJAgBO2Q1KAAAAeJxjYGRgYA76n8UQxfyCgeH/RyAJFEEBXACQKwXrAAB4nGN+wcDAvACII4F4JhAD+UzWQLoFikHiMQwMAIDuBXgAAAAAAAAAAEwAyAEAAYgBrAHsAhACVgKtAAAAAQAAAAoAYgAEAAAAAAACAAAAEABzAAAAHgtwAAAAAHicdZHNSsNAFEa/aWvVFlQU3HpXUhHTH+hGEAqVutFNkW4ljWmSkmbKZFroa/gOPowv4bP4NZ2KtJiQzLln7ty5mQA4xzcUNleXz4YVjhhtuIRDPDgu0z86rpCfHR+gjlfHVfo3xzXcInJcxwU+WEFVjhlN8elY4UydOi7hRF05LtPfOa6QHxwf4FK9OK7SB45rGKnccR3X6quv5yuTRLGVRv9GOq12V8Yr0VRJ5qfiL2ysTS49mejMhmmqvUDPtjwMo0Xqm224HUehyROdSdtrbdVTmIXGt+H7unq+jDrWTmRi9EwGLkPmRk/DwHqxtfP7ZvPvfuhDY44VDBIeVQwLQYP2hmMHLbT5IwRjZggzN1kJMvhIaXwsuCIuZnLGPT4TRhltyIyU7CHge7bnh6SI61NWMXuzu/GItN4jKbywL4/d7WY9kbIi0y/s+2/vOZbcrUNruWrdpSm6Egx2agjPYz03pQnoveJULO09mrz/+b4f4GSETQB4nG3ISw7CIBAA0JlaacXEm7DgSJRPnTBAMh3j9TXptm/5YIKThWv/xwlvOOMdDS644gPtol9SzfLaSd+fzUWSyDnNkmgYDoeWtpYQ8zZGNS0QO28KU6ximXrNibrzT+qHhl1Ccx7gBwDXHPJ4nGPw3sFwIihiIyNjX+QGxp0cDBwMyQUbGVidNjIwaEFoDhR6JwMDAycyi5nBZaMKY0dgxAaHjoiNzCkuG9VAvF0cDQyMLA4dySERICWRQLCRgUdrB+P/1g0svRuZGFwAB9MiuAAAAA==') format('woff'), + url('data:application/octet-stream;base64,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') format('truetype'); +} +/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ +/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ +/* +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: 'fontello'; + src: url('http://github.com/font/fontello.svg?85747586#fontello') format('svg'); + } +} +*/ + + [class^="icon-"]:before, [class*=" icon-"]:before { + font-family: "fontello"; + font-style: normal; + font-weight: normal; + speak: none; + + display: inline-block; + text-decoration: inherit; + width: 1em; + margin-right: .2em; + text-align: center; + /* opacity: .8; */ + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* fix buttons height, for twitter bootstrap */ + line-height: 1em; + + /* Animation center compensation - margins should be symmetric */ + /* remove if not needed */ + margin-left: .2em; + + /* you can be more comfortable with increased icons size */ + /* font-size: 120%; */ + + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ +} +.icon-twitter:before { content: '\e800'; } /* '' */ +.icon-github-circled:before { content: '\e801'; } /* '' */ +.icon-rdio:before { content: '\e802'; } /* '' */ +.icon-lastfm:before { content: '\e803'; } /* '' */ +.icon-facebook:before { content: '\e804'; } /* '' */ +.icon-mail-1:before { content: '\e805'; } /* '' */ +.icon-flickr:before { content: '\e806'; } /* '' */ +.icon-linkedin-1:before { content: '\e807'; } /* '' */ +.icon-instagram-1:before { content: '\e809'; } /* '' */ \ No newline at end of file diff --git a/_assets/css/_include-media.scss b/_assets/css/_include-media.scss new file mode 100644 index 0000000..ba2d7c4 --- /dev/null +++ b/_assets/css/_include-media.scss @@ -0,0 +1,567 @@ +@charset "UTF-8"; + +// _ _ _ _ _ +// (_) | | | | | (_) +// _ _ __ ___| |_ _ __| | ___ _ __ ___ ___ __| |_ __ _ +// | | '_ \ / __| | | | |/ _` |/ _ \ | '_ ` _ \ / _ \/ _` | |/ _` | +// | | | | | (__| | |_| | (_| | __/ | | | | | | __/ (_| | | (_| | +// |_|_| |_|\___|_|\__,_|\__,_|\___| |_| |_| |_|\___|\__,_|_|\__,_| +// +// Simple, elegant and maintainable media queries in Sass +// v1.4.9 +// +// http://include-media.com +// +// Authors: Eduardo Boucas (@eduardoboucas) +// Hugo Giraudel (@hugogiraudel) +// +// This project is licensed under the terms of the MIT license + + +//// +/// include-media library public configuration +/// @author Eduardo Boucas +/// @access public +//// + + +/// +/// Creates a list of global breakpoints +/// +/// @example scss - Creates a single breakpoint with the label `phone` +/// $breakpoints: ('phone': 320px); +/// +$breakpoints: ( + 'phone': 414px, + 'tablet': 768px, + 'desktop': 1024px +) !default; + + +/// +/// Creates a list of static expressions or media types +/// +/// @example scss - Creates a single media type (screen) +/// $media-expressions: ('screen': 'screen'); +/// +/// @example scss - Creates a static expression with logical disjunction (OR operator) +/// $media-expressions: ( +/// 'retina2x': '(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi)' +/// ); +/// +$media-expressions: ( + 'screen': 'screen', + 'print': 'print', + 'handheld': 'handheld', + 'landscape': '(orientation: landscape)', + 'portrait': '(orientation: portrait)', + 'retina2x': '(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi), (min-resolution: 2dppx)', + 'retina3x': '(-webkit-min-device-pixel-ratio: 3), (min-resolution: 350dpi), (min-resolution: 3dppx)' +) !default; + + +/// +/// Defines a number to be added or subtracted from each unit when declaring breakpoints with exclusive intervals +/// +/// @example scss - Interval for pixels is defined as `1` by default +/// @include media('>128px') {} +/// +/// /* Generates: */ +/// @media (min-width: 129px) {} +/// +/// @example scss - Interval for ems is defined as `0.01` by default +/// @include media('>20em') {} +/// +/// /* Generates: */ +/// @media (min-width: 20.01em) {} +/// +/// @example scss - Interval for rems is defined as `0.1` by default, to be used with `font-size: 62.5%;` +/// @include media('>2.0rem') {} +/// +/// /* Generates: */ +/// @media (min-width: 2.1rem) {} +/// +$unit-intervals: ( + 'px': 1, + 'em': 0.01, + 'rem': 0.1, + '': 0 +) !default; + +/// +/// Defines whether support for media queries is available, useful for creating separate stylesheets +/// for browsers that don't support media queries. +/// +/// @example scss - Disables support for media queries +/// $im-media-support: false; +/// @include media('>=tablet') { +/// .foo { +/// color: tomato; +/// } +/// } +/// +/// /* Generates: */ +/// .foo { +/// color: tomato; +/// } +/// +$im-media-support: true !default; + +/// +/// Selects which breakpoint to emulate when support for media queries is disabled. Media queries that start at or +/// intercept the breakpoint will be displayed, any others will be ignored. +/// +/// @example scss - This media query will show because it intercepts the static breakpoint +/// $im-media-support: false; +/// $im-no-media-breakpoint: 'desktop'; +/// @include media('>=tablet') { +/// .foo { +/// color: tomato; +/// } +/// } +/// +/// /* Generates: */ +/// .foo { +/// color: tomato; +/// } +/// +/// @example scss - This media query will NOT show because it does not intercept the desktop breakpoint +/// $im-media-support: false; +/// $im-no-media-breakpoint: 'tablet'; +/// @include media('>=desktop') { +/// .foo { +/// color: tomato; +/// } +/// } +/// +/// /* No output */ +/// +$im-no-media-breakpoint: 'desktop' !default; + +/// +/// Selects which media expressions are allowed in an expression for it to be used when media queries +/// are not supported. +/// +/// @example scss - This media query will show because it intercepts the static breakpoint and contains only accepted media expressions +/// $im-media-support: false; +/// $im-no-media-breakpoint: 'desktop'; +/// $im-no-media-expressions: ('screen'); +/// @include media('>=tablet', 'screen') { +/// .foo { +/// color: tomato; +/// } +/// } +/// +/// /* Generates: */ +/// .foo { +/// color: tomato; +/// } +/// +/// @example scss - This media query will NOT show because it intercepts the static breakpoint but contains a media expression that is not accepted +/// $im-media-support: false; +/// $im-no-media-breakpoint: 'desktop'; +/// $im-no-media-expressions: ('screen'); +/// @include media('>=tablet', 'retina2x') { +/// .foo { +/// color: tomato; +/// } +/// } +/// +/// /* No output */ +/// +$im-no-media-expressions: ('screen', 'portrait', 'landscape') !default; + +//// +/// Cross-engine logging engine +/// @author Hugo Giraudel +/// @access private +//// + + +/// +/// Log a message either with `@error` if supported +/// else with `@warn`, using `feature-exists('at-error')` +/// to detect support. +/// +/// @param {String} $message - Message to log +/// +@function im-log($message) { + @if feature-exists('at-error') { + @error $message; + } @else { + @warn $message; + $_: noop(); + } + + @return $message; +} + + +/// +/// Wrapper mixin for the log function so it can be used with a more friendly +/// API than `@if im-log('..') {}` or `$_: im-log('..')`. Basically, use the function +/// within functions because it is not possible to include a mixin in a function +/// and use the mixin everywhere else because it's much more elegant. +/// +/// @param {String} $message - Message to log +/// +@mixin log($message) { + @if im-log($message) {} +} + + +/// +/// Function with no `@return` called next to `@warn` in Sass 3.3 +/// to trigger a compiling error and stop the process. +/// +@function noop() {} + +/// +/// Determines whether a list of conditions is intercepted by the static breakpoint. +/// +/// @param {Arglist} $conditions - Media query conditions +/// +/// @return {Boolean} - Returns true if the conditions are intercepted by the static breakpoint +/// +@function im-intercepts-static-breakpoint($conditions...) { + $no-media-breakpoint-value: map-get($breakpoints, $im-no-media-breakpoint); + + @if not $no-media-breakpoint-value { + @if im-log('`#{$im-no-media-breakpoint}` is not a valid breakpoint.') {} + } + + @each $condition in $conditions { + @if not map-has-key($media-expressions, $condition) { + $operator: get-expression-operator($condition); + $prefix: get-expression-prefix($operator); + $value: get-expression-value($condition, $operator); + + @if ($prefix == 'max' and $value <= $no-media-breakpoint-value) or + ($prefix == 'min' and $value > $no-media-breakpoint-value) { + @return false; + } + } @else if not index($im-no-media-expressions, $condition) { + @return false; + } + } + + @return true; +} + +//// +/// Parsing engine +/// @author Hugo Giraudel +/// @access private +//// + + +/// +/// Get operator of an expression +/// +/// @param {String} $expression - Expression to extract operator from +/// +/// @return {String} - Any of `>=`, `>`, `<=`, `<`, `≥`, `≤` +/// +@function get-expression-operator($expression) { + @each $operator in ('>=', '>', '<=', '<', '≥', '≤') { + @if str-index($expression, $operator) { + @return $operator; + } + } + + // It is not possible to include a mixin inside a function, so we have to + // rely on the `im-log(..)` function rather than the `log(..)` mixin. Because + // functions cannot be called anywhere in Sass, we need to hack the call in + // a dummy variable, such as `$_`. If anybody ever raise a scoping issue with + // Sass 3.3, change this line in `@if im-log(..) {}` instead. + $_: im-log('No operator found in `#{$expression}`.'); +} + + +/// +/// Get dimension of an expression, based on a found operator +/// +/// @param {String} $expression - Expression to extract dimension from +/// @param {String} $operator - Operator from `$expression` +/// +/// @return {String} - `width` or `height` (or potentially anything else) +/// +@function get-expression-dimension($expression, $operator) { + $operator-index: str-index($expression, $operator); + $parsed-dimension: str-slice($expression, 0, $operator-index - 1); + $dimension: 'width'; + + @if str-length($parsed-dimension) > 0 { + $dimension: $parsed-dimension; + } + + @return $dimension; +} + + +/// +/// Get dimension prefix based on an operator +/// +/// @param {String} $operator - Operator +/// +/// @return {String} - `min` or `max` +/// +@function get-expression-prefix($operator) { + @return if(index(('<', '<=', '≤'), $operator), 'max', 'min'); +} + + +/// +/// Get value of an expression, based on a found operator +/// +/// @param {String} $expression - Expression to extract value from +/// @param {String} $operator - Operator from `$expression` +/// +/// @return {Number} - A numeric value +/// +@function get-expression-value($expression, $operator) { + $operator-index: str-index($expression, $operator); + $value: str-slice($expression, $operator-index + str-length($operator)); + + @if map-has-key($breakpoints, $value) { + $value: map-get($breakpoints, $value); + } @else { + $value: to-number($value); + } + + $interval: map-get($unit-intervals, unit($value)); + + @if not $interval { + // It is not possible to include a mixin inside a function, so we have to + // rely on the `im-log(..)` function rather than the `log(..)` mixin. Because + // functions cannot be called anywhere in Sass, we need to hack the call in + // a dummy variable, such as `$_`. If anybody ever raise a scoping issue with + // Sass 3.3, change this line in `@if im-log(..) {}` instead. + $_: im-log('Unknown unit `#{unit($value)}`.'); + } + + @if $operator == '>' { + $value: $value + $interval; + } @else if $operator == '<' { + $value: $value - $interval; + } + + @return $value; +} + + +/// +/// Parse an expression to return a valid media-query expression +/// +/// @param {String} $expression - Expression to parse +/// +/// @return {String} - Valid media query +/// +@function parse-expression($expression) { + // If it is part of $media-expressions, it has no operator + // then there is no need to go any further, just return the value + @if map-has-key($media-expressions, $expression) { + @return map-get($media-expressions, $expression); + } + + $operator: get-expression-operator($expression); + $dimension: get-expression-dimension($expression, $operator); + $prefix: get-expression-prefix($operator); + $value: get-expression-value($expression, $operator); + + @return '(#{$prefix}-#{$dimension}: #{$value})'; +} + +/// +/// Slice `$list` between `$start` and `$end` indexes +/// +/// @access private +/// +/// @param {List} $list - List to slice +/// @param {Number} $start [1] - Start index +/// @param {Number} $end [length($list)] - End index +/// +/// @return {List} Sliced list +/// +@function slice($list, $start: 1, $end: length($list)) { + @if length($list) < 1 or $start > $end { + @return (); + } + + $result: (); + + @for $i from $start through $end { + $result: append($result, nth($list, $i)); + } + + @return $result; +} + +//// +/// String to number converter +/// @author Hugo Giraudel +/// @access private +//// + + +/// +/// Casts a string into a number +/// +/// @param {String | Number} $value - Value to be parsed +/// +/// @return {Number} +/// +@function to-number($value) { + @if type-of($value) == 'number' { + @return $value; + } @else if type-of($value) != 'string' { + $_: im-log('Value for `to-number` should be a number or a string.'); + } + + $first-character: str-slice($value, 1, 1); + $result: 0; + $digits: 0; + $minus: ($first-character == '-'); + $numbers: ('0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9); + + // Remove +/- sign if present at first character + @if ($first-character == '+' or $first-character == '-') { + $value: str-slice($value, 2); + } + + @for $i from 1 through str-length($value) { + $character: str-slice($value, $i, $i); + + @if not (index(map-keys($numbers), $character) or $character == '.') { + @return to-length(if($minus, -$result, $result), str-slice($value, $i)) + } + + @if $character == '.' { + $digits: 1; + } @else if $digits == 0 { + $result: $result * 10 + map-get($numbers, $character); + } @else { + $digits: $digits * 10; + $result: $result + map-get($numbers, $character) / $digits; + } + } + + @return if($minus, -$result, $result); +} + + +/// +/// Add `$unit` to `$value` +/// +/// @param {Number} $value - Value to add unit to +/// @param {String} $unit - String representation of the unit +/// +/// @return {Number} - `$value` expressed in `$unit` +/// +@function to-length($value, $unit) { + $units: ('px': 1px, 'cm': 1cm, 'mm': 1mm, '%': 1%, 'ch': 1ch, 'pc': 1pc, 'in': 1in, 'em': 1em, 'rem': 1rem, 'pt': 1pt, 'ex': 1ex, 'vw': 1vw, 'vh': 1vh, 'vmin': 1vmin, 'vmax': 1vmax); + + @if not index(map-keys($units), $unit) { + $_: im-log('Invalid unit `#{$unit}`.'); + } + + @return $value * map-get($units, $unit); +} + +/// +/// This mixin aims at redefining the configuration just for the scope of +/// the call. It is helpful when having a component needing an extended +/// configuration such as custom breakpoints (referred to as tweakpoints) +/// for instance. +/// +/// @author Hugo Giraudel +/// +/// @param {Map} $tweakpoints [()] - Map of tweakpoints to be merged with `$breakpoints` +/// @param {Map} $tweak-media-expressions [()] - Map of tweaked media expressions to be merged with `$media-expression` +/// +/// @example scss - Extend the global breakpoints with a tweakpoint +/// @include media-context(('custom': 678px)) { +/// .foo { +/// @include media('>phone', '<=custom') { +/// // ... +/// } +/// } +/// } +/// +/// @example scss - Extend the global media expressions with a custom one +/// @include media-context($tweak-media-expressions: ('all': 'all')) { +/// .foo { +/// @include media('all', '>phone') { +/// // ... +/// } +/// } +/// } +/// +/// @example scss - Extend both configuration maps +/// @include media-context(('custom': 678px), ('all': 'all')) { +/// .foo { +/// @include media('all', '>phone', '<=custom') { +/// // ... +/// } +/// } +/// } +/// +@mixin media-context($tweakpoints: (), $tweak-media-expressions: ()) { + // Save global configuration + $global-breakpoints: $breakpoints; + $global-media-expressions: $media-expressions; + + // Update global configuration + $breakpoints: map-merge($breakpoints, $tweakpoints) !global; + $media-expressions: map-merge($media-expressions, $tweak-media-expressions) !global; + + @content; + + // Restore global configuration + $breakpoints: $global-breakpoints !global; + $media-expressions: $global-media-expressions !global; +} + +//// +/// include-media public exposed API +/// @author Eduardo Boucas +/// @access public +//// + + +/// +/// Generates a media query based on a list of conditions +/// +/// @param {Arglist} $conditions - Media query conditions +/// +/// @example scss - With a single set breakpoint +/// @include media('>phone') { } +/// +/// @example scss - With two set breakpoints +/// @include media('>phone', '<=tablet') { } +/// +/// @example scss - With custom values +/// @include media('>=358px', '<850px') { } +/// +/// @example scss - With set breakpoints with custom values +/// @include media('>desktop', '<=1350px') { } +/// +/// @example scss - With a static expression +/// @include media('retina2x') { } +/// +/// @example scss - Mixing everything +/// @include media('>=350px', ' 0) { + @media #{unquote(parse-expression(nth($conditions, 1)))} { + // Recursive call + @include media(slice($conditions, 2)...) { + @content; + } + } + } +} diff --git a/_assets/css/_normalize.scss b/_assets/css/_normalize.scss new file mode 100644 index 0000000..81c6f31 --- /dev/null +++ b/_assets/css/_normalize.scss @@ -0,0 +1,427 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} \ No newline at end of file diff --git a/_assets/css/main.scss b/_assets/css/main.scss new file mode 100755 index 0000000..8f61ec8 --- /dev/null +++ b/_assets/css/main.scss @@ -0,0 +1,7 @@ +// Import partials from `sass_dir` (defaults to `_sass`) +@import + "normalize", + "include-media", + "fonts", + "base" +; diff --git a/_assets/js/app.js b/_assets/js/app.js new file mode 100644 index 0000000..ff082dd --- /dev/null +++ b/_assets/js/app.js @@ -0,0 +1,153 @@ +// Global jQuery references +var $window = null; +var $html = null; +var $projectLinks = null; +var $navLinks = null; +var $subNav = null; +var $titleCard = null; +var $projectsWrapper = null; +var $resumeWrapper = null; + +// State +var windowWidth = null; +var trackedMarks = []; + +// Global +var IS_TOUCH = Modernizr.touch; + +var deploymentTarget = (window.location.href).match('dannydebelius.com') ? 'prod' : 'dev'; + +// Initialize router +var router = Router(routes); +router.init(); + + + +function onDocumentLoad() { + $window = $(window); + $projectLinks = $('.project a'); + $navLinks = $('.nav a'); + $titleCard = $('.title-card'); + $subNav = $('.sub-nav'); + $projectsWrapper = $('.work'); + + $('.portrait').addClass('is-visible'); + $(".lazy").lazyload({ + threshold: 300, + effect: "fadeIn" + }); + + $projectLinks.on('click', onProjectLinkClick); + $window.on('resize', sizeTitleCard); + $navLinks.on('click', onNavClick); + $(document).on('scroll', onDocScroll); + + sizeTitleCard(); +} + +function sizeTitleCard() { + var windowHeight = Modernizr.touch ? window.innerHeight || $window.height() : $window.height(); + var newWindowWidth = $window.width(); + + if (Modernizr.mq('(max-width: 667px) and (orientation: landscape)')) { + windowWidth = newWindowWidth; + $titleCard.css('height', 'auto'); + return; + } + + if (IS_TOUCH && (windowWidth === null || windowWidth === newWindowWidth)) { + return; + } + + $titleCard.css({ + height: windowHeight + }); + + windowWidth = newWindowWidth; +} + +function scrollToElement($el) { + var subNavHeight = $subNav.height(); + var rowMargin = parseInt($projectsWrapper.css('margin-top')); + + $('html, body').animate({ + scrollTop: $el.offset().top + }, 500); + return false; +} + +function onHomeRoute() { + scrollToElement($titleCard); +} + +function onWorkRoute() { + scrollToElement($projectsWrapper); +} + +function onResumeRoute() { + scrollToElement($resumeWrapper); +} + +function onNavClick(e) { + e.preventDefault(); + var route = $(this).attr('href').split('/')[1]; + scrollToElement($($(this).data('target'))); + router.setRoute(route); + + trackEvent('navigation', 'nav-click', route); +} + +function onProjectLinkClick(e) { + trackEvent('portfolio', 'click-project-link', $(this).attr('href')); +} + +var routes = { + '/intro': onHomeRoute, + '/work': onWorkRoute, + '/resume': onResumeRoute +}; + +function trackEvent(category, eventName, label, value) { + var args = { + 'hitType': 'event', + 'eventCategory': category, + 'eventAction': eventName + } + + if (label) { + args['eventLabel'] = label; + } + + if (value) { + args['eventValue'] = value; + } + + ga('send', args); +} + +/* + * Track scroll depth for completion events. + * + * After: https://github.com/robflaherty/jquery-scrolldepth + */ +var onDocScroll = _.throttle(function (e) { + var docHeight = $(document).height(); + var winHeight = window.innerHeight ? window.innerHeight : $window.height(); + var scrollDistance = $(document).scrollTop() + winHeight; + + var marks = { + '25%': parseInt(docHeight * 0.25), + '50%': parseInt(docHeight * 0.50), + '75%': parseInt(docHeight * 0.75), + '100%': docHeight - 5 + }; + + $.each(marks, function (mark, px) { + if (trackedMarks.indexOf(mark) == -1 && scrollDistance >= px) { + trackEvent('completion', 'scroll', mark); + trackedMarks.push(mark); + } + }); +}, 500); + +$(onDocumentLoad); \ No newline at end of file diff --git a/_assets/js/director.min.js b/_assets/js/director.min.js new file mode 100644 index 0000000..c956af4 --- /dev/null +++ b/_assets/js/director.min.js @@ -0,0 +1,7 @@ + + +// +// Generated on Tue Dec 16 2014 12:13:47 GMT+0100 (CET) by Charlie Robbins, Paolo Fragomeni & the Contributors (Using Codesurgeon). +// Version 1.2.6 +// +(function(a){function k(a,b,c,d){var e=0,f=0,g=0,c=(c||"(").toString(),d=(d||")").toString(),h;for(h=0;hi.indexOf(d,e)||~i.indexOf(c,e)&&!~i.indexOf(d,e)||!~i.indexOf(c,e)&&~i.indexOf(d,e)){f=i.indexOf(c,e),g=i.indexOf(d,e);if(~f&&!~g||!~f&&~g){var j=a.slice(0,(h||1)+1).join(b);a=[j].concat(a.slice((h||1)+1))}e=(g>f?g:f)+1,h=0}else e=0}return a}function j(a,b){var c,d=0,e="";while(c=a.substr(d).match(/[^\w\d\- %@&]*\*[^\w\d\- %@&]*/))d=c.index+c[0].length,c[0]=c[0].replace(/^\*/,"([_.()!\\ %@&a-zA-Z0-9-]+)"),e+=a.substr(0,c.index)+c[0];a=e+=a.substr(d);var f=a.match(/:([^\/]+)/ig),g,h;if(f){h=f.length;for(var j=0;j7))this.history===!0?setTimeout(function(){window.onpopstate=d},500):window.onhashchange=d,this.mode="modern";else{var f=document.createElement("iframe");f.id="state-frame",f.style.display="none",document.body.appendChild(f),this.writeFrame(""),"onpropertychange"in document&&"attachEvent"in document&&document.attachEvent("onpropertychange",function(){event.propertyName==="location"&&c.check()}),window.setInterval(function(){c.check()},50),this.onHashChanged=d,this.mode="legacy"}e.listeners.push(a);return this.mode},destroy:function(a){if(!!e&&!!e.listeners){var b=e.listeners;for(var c=b.length-1;c>=0;c--)b[c]===a&&b.splice(c,1)}},setHash:function(a){this.mode==="legacy"&&this.writeFrame(a),this.history===!0?(window.history.pushState({},document.title,a),this.fire()):b.hash=a[0]==="/"?a:"/"+a;return this},writeFrame:function(a){var b=document.getElementById("state-frame"),c=b.contentDocument||b.contentWindow.document;c.open(),c.write(" + + + {% css main %} + + + + + {% js modernizr.min %} + diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..dc08e57 --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,27 @@ + + + {% include head.html %} + + + {{ content }} + +
+ +
+ + {% js script %} + + + + diff --git a/_layouts/home.html b/_layouts/home.html new file mode 100644 index 0000000..bf0e098 --- /dev/null +++ b/_layouts/home.html @@ -0,0 +1,75 @@ +--- +layout: default +--- + +
+
+ +

{% if page.description %}{{ page.description }}{% endif %}

+ + + +
+
+ +
+

Work

+ +
+ +
+
+

Résumé

+ {{ content }} +
+
diff --git a/assets/.sprockets-manifest-9298abd63b7fe5c9e8669b0a4818e615.json b/assets/.sprockets-manifest-9298abd63b7fe5c9e8669b0a4818e615.json deleted file mode 100644 index d16ef5f..0000000 --- a/assets/.sprockets-manifest-9298abd63b7fe5c9e8669b0a4818e615.json +++ /dev/null @@ -1 +0,0 @@ -{"files":{"main-0eb01a2617485b530e8abbb960d04c5e3008d5a6d919f240edc760227e844b4d.css":{"mtime":"2019-04-15T14:45:05-06:00","logical_path":"main.css","integrity":"sha256-DrAaJhdIW1MOiru5YNBMXjAI1abZGfJA7cdgIn6ES00=","digest":"0eb01a2617485b530e8abbb960d04c5e3008d5a6d919f240edc760227e844b4d","size":31629},"modernizr.min-0daa96712c658d536619185234e4a3eb1c7d45de3a066830a810d93be5849975.js":{"mtime":"2019-04-15T14:45:05-06:00","logical_path":"modernizr.min.js","integrity":"sha256-DaqWcSxljVNmGRhSNOSj6xx9Rd46BmgwqBDZO+WEmXU=","digest":"0daa96712c658d536619185234e4a3eb1c7d45de3a066830a810d93be5849975","size":11209},"script-d30c438d95a3481a2c88d0c38f5b24f5d62823fe5f2da2f8c316fafe0ccf7d29.js":{"mtime":"2019-04-15T14:45:05-06:00","logical_path":"script.js","integrity":"sha256-0wxDjZWjSBosiNDDj1sk9dYoI/5fLaL4wxb6/gzPfSk=","digest":"d30c438d95a3481a2c88d0c38f5b24f5d62823fe5f2da2f8c316fafe0ccf7d29","size":117680},"main-3373bb453c35c1b8c21b61afc5f2a65a44690b780978f4f9d49729ac47859fbf.css":{"mtime":"2019-04-15T14:45:05-06:00","logical_path":"main.css","integrity":"sha256-M3O7RTw1wbjCG2GvxfKmWkRpC3gJePT51JcprEeFn78=","digest":"3373bb453c35c1b8c21b61afc5f2a65a44690b780978f4f9d49729ac47859fbf","size":33519},"main-f539414426b44b63cb6448de7a19cb72556e42c80c7269f0ce60a73306adb9a8.css":{"mtime":"2019-04-15T15:25:15-06:00","logical_path":"main.css","integrity":"sha256-9TlBRCa0S2PLZEjeehnLclVuQsgMcmnwzmCnMwatuag=","digest":"f539414426b44b63cb6448de7a19cb72556e42c80c7269f0ce60a73306adb9a8","size":31719}},"assets":{"main.css":"main-3373bb453c35c1b8c21b61afc5f2a65a44690b780978f4f9d49729ac47859fbf.css","modernizr.min.js":"modernizr.min-0daa96712c658d536619185234e4a3eb1c7d45de3a066830a810d93be5849975.js","script.js":"script-d30c438d95a3481a2c88d0c38f5b24f5d62823fe5f2da2f8c316fafe0ccf7d29.js"}} \ No newline at end of file diff --git a/assets/main-0eb01a2617485b530e8abbb960d04c5e3008d5a6d919f240edc760227e844b4d.css b/assets/main-0eb01a2617485b530e8abbb960d04c5e3008d5a6d919f240edc760227e844b4d.css deleted file mode 100644 index e7c487c..0000000 --- a/assets/main-0eb01a2617485b530e8abbb960d04c5e3008d5a6d919f240edc760227e844b4d.css +++ /dev/null @@ -1,773 +0,0 @@ -@charset "UTF-8"; -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ -html { - font-family: sans-serif; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ } - -/** - * Remove default margin. - */ -body { - margin: 0; } - -/* HTML5 display definitions - ========================================================================== */ -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; } - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ -audio, -canvas, -progress, -video { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ } - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; } - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ -[hidden], -template { - display: none; } - -/* Links - ========================================================================== */ -/** - * Remove the gray background color from active links in IE 10. - */ -a { - background-color: transparent; } - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ -a:active, -a:hover { - outline: 0; } - -/* Text-level semantics - ========================================================================== */ -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ -abbr[title] { - border-bottom: 1px dotted; } - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ -b, -strong { - font-weight: bold; } - -/** - * Address styling not present in Safari and Chrome. - */ -dfn { - font-style: italic; } - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; } - -/** - * Address styling not present in IE 8/9. - */ -mark { - background: #ff0; - color: #000; } - -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; } - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; } - -sup { - top: -0.5em; } - -sub { - bottom: -0.25em; } - -/* Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9/10. - */ -img { - border: 0; } - -/** - * Correct overflow not hidden in IE 9/10/11. - */ -svg:not(:root) { - overflow: hidden; } - -/* Grouping content - ========================================================================== */ -/** - * Address margin not present in IE 8/9 and Safari. - */ -figure { - margin: 1em 40px; } - -/** - * Address differences between Firefox and other browsers. - */ -hr { - box-sizing: content-box; - height: 0; } - -/** - * Contain overflow in all browsers. - */ -pre { - overflow: auto; } - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; } - -/* Forms - ========================================================================== */ -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ -button, -input, -optgroup, -select, -textarea { - color: inherit; - /* 1 */ - font: inherit; - /* 2 */ - margin: 0; - /* 3 */ } - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ -button { - overflow: visible; } - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ -button, -select { - text-transform: none; } - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - /* 2 */ - cursor: pointer; - /* 3 */ } - -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], -html input[disabled] { - cursor: default; } - -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; } - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ -input { - line-height: normal; } - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; } - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ -input[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - /* 2 */ - box-sizing: content-box; } - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -/** - * Define consistent border, margin, and padding. - */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; } - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - border: 0; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ -textarea { - overflow: auto; } - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ -optgroup { - font-weight: bold; } - -/* Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-collapse: collapse; - border-spacing: 0; } - -td, -th { - padding: 0; } - -@font-face { - font-family: 'fontello'; - src: url("http://github.com/font/fontello.eot?85747586"); - src: url("http://github.com/font/fontello.eot?85747586#iefix") format("embedded-opentype"), url("http://github.com/font/fontello.svg?85747586#fontello") format("svg"); - font-weight: normal; - font-style: normal; } -@font-face { - font-family: 'fontello'; - src: url("data:application/octet-stream;base64,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") format("woff"), url("data:application/octet-stream;base64,AAEAAAAOAIAAAwBgT1MvMj3iSQcAAADsAAAAVmNtYXDoIenVAAABRAAAAVJjdnQgAAAAAAAADBQAAAAKZnBnbYiQkFkAAAwgAAALcGdhc3AAAAAQAAAMDAAAAAhnbHlmMA/71AAAApgAAAVaaGVhZATBreEAAAf0AAAANmhoZWEHlwNOAAAILAAAACRobXR4IloAAAAACFAAAAAobG9jYQe1BpIAAAh4AAAAFm1heHAAoAvkAAAIkAAAACBuYW1lzJ0bHQAACLAAAALNcG9zdKap1t8AAAuAAAAAiXByZXDdawOFAAAXkAAAAHsAAQNvAZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6ADoCQNS/2oAWgNSAFAAAAABAAAAAAAAAAAAAwAAAAMAAAAcAAEAAAAAAEwAAwABAAAAHAAEADAAAAAIAAgAAgAAAADoB+gJ//8AAAAA6ADoCf//AAAYARgAAAEAAAAAAAAAAAAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAD/9wOIAsMALwAGsygIAS0rAQYHFRQOAyciJxYzMjcuAScWMzI3LgE9ARYXLgE0Nx4BFyY1NDY3Mhc2NwYHNgOIJTUqVnioYZd9Exh+YjtcEhMPGBg/UiYsJSwZRMBwBWpKTzU9NRQ7NAJuNicXSZCGZEACUQNNAkQ3AgYNYkICFQIZTmAqU2QFFRRLaAE5DCBAJAYAAAEAAP/EA1wDCwBSAAazTwQBLSsBFAYHBiY9ATQnPgQnNCc2JyYGDwEmIgcuAgcGFwYVFB4DFwYHDgEiJicuAS8BIgYeAR8BHgEfAR4CMj8BFRQXFAYnLgE1ND4BMh4BA1mkgQ8OHSAyOCIaAiwVGg88FRU0bjUIHkAQGBQsGCI4MCEWBQwaJiIOCyAMCwwIAggDBAwYBgUIIigmDA0BEA6BpHTC7sB4AV6M4CsDDgp2NhkDDh4sSDBELzM/BRYODQ8PBhIaBj8zL0QvSC4cEAIUJgUGGBcSFgMBBAoGAwMGHg4NFRoIAgMyHAIKDgMr4Ix1xHR0xAAAAQAA/9gDqALkAB8ABrMIBAEtKwEWFRQGICYQNjMyFxUmBw4BHgE3PgE1ERYXFhcWBwYHAv4E4v7C4uCgNCZMTkY+NIpGNEYQCK6IIBwqWAGSIBSg5uYBQuQK3hokIoZ6JiIabEQBHggGbAYCMkweAAEAAP/5A+gCZwBhAAazUAsBLSsBFBceAxcWFRQGIyIuBS8BLgMjIg4BFRQWMzI3NjcXBgcxBiMiLgEnND4CFzIeBhcWMzI2NTQuAi8BLgInJjU0NhceARcxHgIXByYnMSYjIgYC0QYFEhoYE7V2UyE6LCocIBAOFBIiMEQtNWI4dlhjLR8PLwgQSY9SikoBMFJuOzFQOjAgIhYiDjVNLUAWIi4YMRkoIgQCYj4rMBoGDg4ESA8PDSobJgHJAxQQFhAGBzKHUWwUIDIwRC4lNS06MhY+ZDVZhjUjHlUTFFVYkFE6clI2ARYiNjpIQlAfcDYtGCAUDgkTCiY0KwkJPVwCAgwYBhAYAzgcDAwmAAAAAQAA/7ECFwNSABQABrMSCgEtKwEVIyIGHQEzByMRIxEjNTM1NDYzMgIXVzAipBaOq46OdGFSA0uTKChqpf5YAailemhyAAAAAv/+AAADkAKAABEAIwAItRcTDQMCLSsTJjc2MyEyBwYHBg8BBiIvASYFNhURFAYjISImNRE0FwUWMjceIAQCGANOJhIIEA6ythA6ErayA0QUIhD84BAiFAGAEjgSAkoSFg4gDggGYGIKCmJgXgoU/pAQICAQAXAUCsgKCgAAAAACAAAAAAOEAiYACAARAAi1DQkEAAItKzciJjQ2MhYUBiEiJjQ2MhYUBsRQdHKkcnQBrFB0cqRydJZ2pnR0pnZ2pnR0pnYAAAADAAD/zANZAv8AAwAOACoACrcoEAwGAQADLSsTESMRNxQGKwEiJjQ2MhYBESMRNCYjIgYHBhURIzY9ASczFSM+AzcyFsO4xDouAS44Olw4Aou3LjAjLg0GuAEBuAELGCY8Il90AfX91wIpqyk2NlI2Nv5A/sMBKDtCJh0RHP7L34qlG1ASGiAQAX4AAAQAAP+wA1wDDAATACIALwA4AA1ACjYyLCUYFAYCBC0rATQnMxEUBiMhIiY1ETMGFRQWMjYTMhYdASMmIyIHIzU0NjMFNTQrASIdARQWOwEyBxQGIiY0NjIWArIGsE44/bA4Tq4EmNaaJDhO2k6GikraTjgCkBhIGA4KSBjIXoReXoReAV4aGP6oOFBQOAFYIBJqmpoCGE44km5ukjhOpkgYGEgIEPBCXl6GXFwAAAAAAQAAAAEAADccJ4NfDzz1AAsD6AAAAADQ3koVAAAAANDeH+X//v+wA+gDUgAAAAgAAgAAAAAAAAABAAADUv9qAFoD6AAA//ED6AABAAAAAAAAAAAAAAAAAAAACgPoAAADoAAAA1kAAAOZAAAD6AAAAjsAAAOEAAADhAAAA1kAAANcAAAAAAAAAEwAyAEAAYgBrAHsAhACVgKtAAAAAQAAAAoAYgAEAAAAAAACAAAAEABzAAAAHgtwAAAAAAAAABIA3gABAAAAAAAAADUAAAABAAAAAAABAAgANQABAAAAAAACAAcAPQABAAAAAAADAAgARAABAAAAAAAEAAgATAABAAAAAAAFAAsAVAABAAAAAAAGAAgAXwABAAAAAAAKACsAZwABAAAAAAALABMAkgADAAEECQAAAGoApQADAAEECQABABABDwADAAEECQACAA4BHwADAAEECQADABABLQADAAEECQAEABABPQADAAEECQAFABYBTQADAAEECQAGABABYwADAAEECQAKAFYBcwADAAEECQALACYByUNvcHlyaWdodCAoQykgMjAxNSBieSBvcmlnaW5hbCBhdXRob3JzIEAgZm9udGVsbG8uY29tZm9udGVsbG9SZWd1bGFyZm9udGVsbG9mb250ZWxsb1ZlcnNpb24gMS4wZm9udGVsbG9HZW5lcmF0ZWQgYnkgc3ZnMnR0ZiBmcm9tIEZvbnRlbGxvIHByb2plY3QuaHR0cDovL2ZvbnRlbGxvLmNvbQBDAG8AcAB5AHIAaQBnAGgAdAAgACgAQwApACAAMgAwADEANQAgAGIAeQAgAG8AcgBpAGcAaQBuAGEAbAAgAGEAdQB0AGgAbwByAHMAIABAACAAZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AZgBvAG4AdABlAGwAbABvAFIAZQBnAHUAbABhAHIAZgBvAG4AdABlAGwAbABvAGYAbwBuAHQAZQBsAGwAbwBWAGUAcgBzAGkAbwBuACAAMQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAECAQMBBAEFAQYBBwEIAQkBCgd0d2l0dGVyDmdpdGh1Yi1jaXJjbGVkBHJkaW8GbGFzdGZtCGZhY2Vib29rBm1haWwtMQZmbGlja3IKbGlua2VkaW4tMQtpbnN0YWdyYW0tMQAAAAAAAAEAAf//AA8AAAAAAAAAAAAAAACwACwgsABVWEVZICBLuAAOUUuwBlNaWLA0G7AoWWBmIIpVWLACJWG5CAAIAGNjI2IbISGwAFmwAEMjRLIAAQBDYEItsAEssCBgZi2wAiwgZCCwwFCwBCZasigBCkNFY0VSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQpDRWNFYWSwKFBYIbEBCkNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ABK1lZI7AAUFhlWVktsAMsIEUgsAQlYWQgsAVDUFiwBSNCsAYjQhshIVmwAWAtsAQsIyEjISBksQViQiCwBiNCsQEKQ0VjsQEKQ7AAYEVjsAMqISCwBkMgiiCKsAErsTAFJbAEJlFYYFAbYVJZWCNZISCwQFNYsAErGyGwQFkjsABQWGVZLbAFLLAHQyuyAAIAQ2BCLbAGLLAHI0IjILAAI0JhsAJiZrABY7ABYLAFKi2wBywgIEUgsAtDY7gEAGIgsABQWLBAYFlmsAFjYESwAWAtsAgssgcLAENFQiohsgABAENgQi2wCSywAEMjRLIAAQBDYEItsAosICBFILABKyOwAEOwBCVgIEWKI2EgZCCwIFBYIbAAG7AwUFiwIBuwQFlZI7AAUFhlWbADJSNhRESwAWAtsAssICBFILABKyOwAEOwBCVgIEWKI2EgZLAkUFiwABuwQFkjsABQWGVZsAMlI2FERLABYC2wDCwgsAAjQrILCgNFWCEbIyFZKiEtsA0ssQICRbBkYUQtsA4ssAFgICCwDENKsABQWCCwDCNCWbANQ0qwAFJYILANI0JZLbAPLCCwEGJmsAFjILgEAGOKI2GwDkNgIIpgILAOI0IjLbAQLEtUWLEEZERZJLANZSN4LbARLEtRWEtTWLEEZERZGyFZJLATZSN4LbASLLEAD0NVWLEPD0OwAWFCsA8rWbAAQ7ACJUKxDAIlQrENAiVCsAEWIyCwAyVQWLEBAENgsAQlQoqKIIojYbAOKiEjsAFhIIojYbAOKiEbsQEAQ2CwAiVCsAIlYbAOKiFZsAxDR7ANQ0dgsAJiILAAUFiwQGBZZrABYyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsQAAEyNEsAFDsAA+sgEBAUNgQi2wEywAsQACRVRYsA8jQiBFsAsjQrAKI7AAYEIgYLABYbUQEAEADgBCQopgsRIGK7ByKxsiWS2wFCyxABMrLbAVLLEBEystsBYssQITKy2wFyyxAxMrLbAYLLEEEystsBkssQUTKy2wGiyxBhMrLbAbLLEHEystsBwssQgTKy2wHSyxCRMrLbAeLACwDSuxAAJFVFiwDyNCIEWwCyNCsAojsABgQiBgsAFhtRAQAQAOAEJCimCxEgYrsHIrGyJZLbAfLLEAHistsCAssQEeKy2wISyxAh4rLbAiLLEDHistsCMssQQeKy2wJCyxBR4rLbAlLLEGHistsCYssQceKy2wJyyxCB4rLbAoLLEJHistsCksIDywAWAtsCosIGCwEGAgQyOwAWBDsAIlYbABYLApKiEtsCsssCorsCoqLbAsLCAgRyAgsAtDY7gEAGIgsABQWLBAYFlmsAFjYCNhOCMgilVYIEcgILALQ2O4BABiILAAUFiwQGBZZrABY2AjYTgbIVktsC0sALEAAkVUWLABFrAsKrABFTAbIlktsC4sALANK7EAAkVUWLABFrAsKrABFTAbIlktsC8sIDWwAWAtsDAsALABRWO4BABiILAAUFiwQGBZZrABY7ABK7ALQ2O4BABiILAAUFiwQGBZZrABY7ABK7AAFrQAAAAAAEQ+IzixLwEVKi2wMSwgPCBHILALQ2O4BABiILAAUFiwQGBZZrABY2CwAENhOC2wMiwuFzwtsDMsIDwgRyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsABDYbABQ2M4LbA0LLECABYlIC4gR7AAI0KwAiVJiopHI0cjYSBYYhshWbABI0KyMwEBFRQqLbA1LLAAFrAEJbAEJUcjRyNhsAlDK2WKLiMgIDyKOC2wNiywABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyCwCEMgiiNHI0cjYSNGYLAEQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwAmIgsABQWLBAYFlmsAFjYSMgILAEJiNGYTgbI7AIQ0awAiWwCENHI0cjYWAgsARDsAJiILAAUFiwQGBZZrABY2AjILABKyOwBENgsAErsAUlYbAFJbACYiCwAFBYsEBgWWawAWOwBCZhILAEJWBkI7ADJWBkUFghGyMhWSMgILAEJiNGYThZLbA3LLAAFiAgILAFJiAuRyNHI2EjPDgtsDgssAAWILAII0IgICBGI0ewASsjYTgtsDkssAAWsAMlsAIlRyNHI2GwAFRYLiA8IyEbsAIlsAIlRyNHI2EgsAUlsAQlRyNHI2GwBiWwBSVJsAIlYbkIAAgAY2MjIFhiGyFZY7gEAGIgsABQWLBAYFlmsAFjYCMuIyAgPIo4IyFZLbA6LLAAFiCwCEMgLkcjRyNhIGCwIGBmsAJiILAAUFiwQGBZZrABYyMgIDyKOC2wOywjIC5GsAIlRlJYIDxZLrErARQrLbA8LCMgLkawAiVGUFggPFkusSsBFCstsD0sIyAuRrACJUZSWCA8WSMgLkawAiVGUFggPFkusSsBFCstsD4ssDUrIyAuRrACJUZSWCA8WS6xKwEUKy2wPyywNiuKICA8sAQjQoo4IyAuRrACJUZSWCA8WS6xKwEUK7AEQy6wKystsEAssAAWsAQlsAQmIC5HI0cjYbAJQysjIDwgLiM4sSsBFCstsEEssQgEJUKwABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyBHsARDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwAkNgZCOwA0NhZFBYsAJDYRuwA0NgWbADJbACYiCwAFBYsEBgWWawAWNhsAIlRmE4IyA8IzgbISAgRiNHsAErI2E4IVmxKwEUKy2wQiywNSsusSsBFCstsEMssDYrISMgIDywBCNCIzixKwEUK7AEQy6wKystsEQssAAVIEewACNCsgABARUUEy6wMSotsEUssAAVIEewACNCsgABARUUEy6wMSotsEYssQABFBOwMiotsEcssDQqLbBILLAAFkUjIC4gRoojYTixKwEUKy2wSSywCCNCsEgrLbBKLLIAAEErLbBLLLIAAUErLbBMLLIBAEErLbBNLLIBAUErLbBOLLIAAEIrLbBPLLIAAUIrLbBQLLIBAEIrLbBRLLIBAUIrLbBSLLIAAD4rLbBTLLIAAT4rLbBULLIBAD4rLbBVLLIBAT4rLbBWLLIAAEArLbBXLLIAAUArLbBYLLIBAEArLbBZLLIBAUArLbBaLLIAAEMrLbBbLLIAAUMrLbBcLLIBAEMrLbBdLLIBAUMrLbBeLLIAAD8rLbBfLLIAAT8rLbBgLLIBAD8rLbBhLLIBAT8rLbBiLLA3Ky6xKwEUKy2wYyywNyuwOystsGQssDcrsDwrLbBlLLAAFrA3K7A9Ky2wZiywOCsusSsBFCstsGcssDgrsDsrLbBoLLA4K7A8Ky2waSywOCuwPSstsGossDkrLrErARQrLbBrLLA5K7A7Ky2wbCywOSuwPCstsG0ssDkrsD0rLbBuLLA6Ky6xKwEUKy2wbyywOiuwOystsHAssDorsDwrLbBxLLA6K7A9Ky2wciyzCQQCA0VYIRsjIVlCK7AIZbADJFB4sAEVMC0AS7gAyFJYsQEBjlmwAbkIAAgAY3CxAAVCsQAAKrEABUKxAAgqsQAFQrEACCqxAAVCuQAAAAkqsQAFQrkAAAAJKrEDAESxJAGIUViwQIhYsQNkRLEmAYhRWLoIgAABBECIY1RYsQMARFlZWVmxAAwquAH/hbAEjbECAEQA") format("truetype"); } -/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ -/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ -/* -@media screen and (-webkit-min-device-pixel-ratio:0) { - @font-face { - font-family: 'fontello'; - src: url('http://github.com/font/fontello.svg?85747586#fontello') format('svg'); - } -} -*/ -[class^="icon-"]:before, [class*=" icon-"]:before { - font-family: "fontello"; - font-style: normal; - font-weight: normal; - speak: none; - display: inline-block; - text-decoration: inherit; - width: 1em; - margin-right: .2em; - text-align: center; - /* opacity: .8; */ - /* For safety - reset parent styles, that can break glyph codes*/ - font-variant: normal; - text-transform: none; - /* fix buttons height, for twitter bootstrap */ - line-height: 1em; - /* Animation center compensation - margins should be symmetric */ - /* remove if not needed */ - margin-left: .2em; - /* you can be more comfortable with increased icons size */ - /* font-size: 120%; */ - /* Uncomment for 3D effect */ - /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ } - -.icon-twitter:before { - content: '\e800'; } - -/* '' */ -.icon-github-circled:before { - content: '\e801'; } - -/* '' */ -.icon-rdio:before { - content: '\e802'; } - -/* '' */ -.icon-lastfm:before { - content: '\e803'; } - -/* '' */ -.icon-facebook:before { - content: '\e804'; } - -/* '' */ -.icon-mail-1:before { - content: '\e805'; } - -/* '' */ -.icon-flickr:before { - content: '\e806'; } - -/* '' */ -.icon-linkedin-1:before { - content: '\e807'; } - -/* '' */ -.icon-instagram-1:before { - content: '\e809'; } - -/* '' */ -* { - box-sizing: border-box; } - -body { - font-family: "franklin-gothic-urw", Helvetica, Arial, sans-serif; } - -h1, h2, h3, h4, h5, h6, p, li { - margin-top: 0; - margin-bottom: 1rem; } - -body { - background: #111; } - -h2 { - font-size: 36px; - font-weight: 400; - margin-bottom: 0; - padding-bottom: 0; } - -.header { - width: 100vw; - height: 50vh; - min-height: 414px; - display: -ms-flexbox; - display: flex; - -ms-flex-direction: row-reverse; - flex-direction: row-reverse; - -ms-flex-align: start; - align-items: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; - -ms-flex: 1; - flex: 1; - position: relative; - color: #fff; - padding: 20px; - -webkit-font-smoothing: antialiased; } - .theme-blue-lagoon .header { - background: #43C6AC; - background: linear-gradient(to bottom, #191654, #43C6AC); } - .theme-dawn .header { - background: #FFA17F; - background: linear-gradient(to bottom, #00223E, #FFA17F); } - .theme-celestial .header { - background: #C33764; - background: linear-gradient(to bottom, #1D2671, #C33764); } - @media (min-width: 415px) { - .header { - padding: 30px; } } - @media (min-width: 769px) { - .header { - height: 100vh; - width: 33.33333%; - position: fixed; - top: 0; - left: 0; } } - .header .wrapper { - width: 100%; } - .header .logo { - font-size: 36px; - font-weight: 400; - line-height: 1.1; - margin-bottom: 1rem; } - .header p, - .header li { - font-size: 16px; } - .header p { - line-height: 1.3; - font-weight: 400; } - .header p a, - .header .nav li a { - color: #fff; - opacity: 0.7; - border-bottom: 1px solid rgba(255, 255, 255, 0.5); - text-decoration: none; } - .no-touch .header .nav li a:hover, .no-touch .header p a:hover { - opacity: 1; - border-color: #fff; } - .header ul { - margin: 0 0 1rem; - padding: 0; } - .header li { - list-style: none; - display: inline-block; } - .header li a { - color: #fff; - text-decoration: none; } - .header .nav li { - padding-right: 18px; - margin-right: 15px; - border-right: 1px solid rgba(255, 255, 255, 0.5); - line-height: 1.4; - vertical-align: middle; - padding-bottom: 5px; } - .header .nav li:last-child { - padding-right: 0; - margin-right: 0; - border-right: none; } - .header ul.social { - position: absolute; - bottom: 0; - left: 0; - padding: 0 20px; - transform: translate3d(0, 0, 0); } - @media (min-width: 415px) { - .header ul.social { - padding: 0 30px; } } - .header .social a { - color: rgba(255, 255, 255, 0.5); - font-size: 24px; } - .no-touch .header .social a:hover { - color: #fff; } - -.work, -.resume, -footer { - background: #fff; - overflow: hidden; } - @media (min-width: 769px) { - .work, - .resume, - footer { - width: 66.66667%; - margin-left: 33.33333%; } } - -.work { - background: #edece6; } - .work h2 { - padding: 20px 20px 0; } - @media (min-width: 415px) { - .work h2 { - padding: 30px 30px 0; } } - .work .projects { - list-style: none; - padding: 10px; - margin: 0; - display: -ms-flexbox; - display: flex; - -ms-flex-direction: row; - flex-direction: row; - -ms-flex-align: start; - align-items: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - @media (min-width: 415px) { - .work .projects { - padding: 20px; } } - .work .project { - position: relative; - overflow: hidden; - width: calc(50% - 20px); - margin: 10px; } - .work .project a:link, - .work .project a:hover, - .work .project a:visited { - text-decoration: none; } - .work .project-poster { - position: relative; - display: block; - background-size: cover; - background-position: top left; - padding-bottom: 66.66667%; - background-repeat: no-repeat; } - .work .project-info { - position: relative; } - .work .project-info h3 { - line-height: 1.1; - font-size: 24px; - font-weight: 400; - margin-bottom: 1rem; } - .work .project-info .project-description { - display: none; } - -.touch .work .project-poster { - margin-bottom: 0.5rem; } -.touch .work .project-info { - position: relative; } - .touch .work .project-info .project-date { - display: none; - color: #999; - font-size: 14px; - padding-top: 3px; - margin-bottom: 0; } - .touch .work .project-info h3 { - font-size: 16px; - font-weight: 400; - margin-bottom: 0; } - .touch .work .project-info .project-header a { - display: block; - color: #000; } - .touch .work .project-info .project-meta { - margin-bottom: 0; } - .touch .work .project-info .project-meta .repo-link, - .touch .work .project-info .project-meta .repo-link:visited { - display: inline; - color: #777; - font-size: 14px; - border-bottom: 1px solid #999; } - -.no-touch .work .project:hover .project-poster:before, -.no-touch .work .project:hover .project-info { - opacity: 1; } -.no-touch .work .project:hover .project-poster { - filter: blur(5px); } -.no-touch .work .project:hover .project-header a, -.no-touch .work .project:hover .project-meta { - transform: translate(0, 0); - opacity: 1; } -.no-touch .work .project-poster { - transition: all 200ms ease-in-out; - filter: blur(0); } - .no-touch .work .project-poster:before { - transition: opacity 200ms ease-in-out; - content: ' '; - position: absolute; - display: block; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: rgba(0, 0, 0, 0.5); - opacity: 0; } -.no-touch .work .project-info { - transition: opacity 200ms ease-in-out; - position: absolute; - opacity: 0; - z-index: 100; - top: 1rem; - left: 1rem; - bottom: 1rem; - right: 1rem; } - .no-touch .work .project-info h3 { - font-size: 18px; - margin: 0; - padding: 0; } - .no-touch .work .project-info .project-date { - display: none; - font-size: 14px; - color: rgba(255, 255, 255, 0.7); } - .no-touch .work .project-info .project-header > a { - display: block; - color: #fff; } - .no-touch .work .project-info .project-header > a:hover { - text-decoration: none; } - .no-touch .work .project-info .project-header > a { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - transition: transform 300ms ease-in-out 10ms, opacity 250ms ease-in-out 100ms; - transform: translate(-10%, 0); - opacity: 0; - padding: 0.5rem; } - .no-touch .work .project-info .project-meta { - transition: transform 300ms ease-in-out 10ms, opacity 250ms ease-in-out 100ms; - transform: translate(10%, 0); - width: 100%; - opacity: 0; - position: absolute; - bottom: 0; - left: 0; - color: #fff; - padding: 0.5rem; - z-index: 200; - text-align: right; - margin-bottom: 0; } - .no-touch .work .project-info .project-date a, - .no-touch .work .project-info .project-date a:visited, - .no-touch .work .project-info .repo-link, - .no-touch .work .project-info .repo-link:visited { - color: rgba(255, 255, 255, 0.7); - font-size: 14px; } - .no-touch .work .project-info .repo-link { - border-bottom: 1px solid rgba(255, 255, 255, 0.5); } - .no-touch .work .project-info .repo-link:hover { - border-bottom: 1px solid #fff; } - .no-touch .work .project-info .project-date a:hover, - .no-touch .work .project-info .repo-link:hover { - color: white; - text-decoration: none; } - -.resume { - padding: 20px; - background: #fff; } - @media (min-width: 415px) { - .resume { - padding: 30px; } } - .resume .wrapper { - max-width: 600px; } - .resume h2 + h3 { - margin-top: 1rem; } - .resume h3 { - border-top: 1px solid #e5e5e5; - font-weight: 700; - font-size: 21px; - margin-top: 2rem; - padding-top: 1rem; } - .resume h3 + h4, - .resume h3 + h5 { - margin-top: 0; } - .resume h4 { - font-size: 21px; - font-weight: 400; - margin-top: 1rem; - margin-bottom: 0; } - .resume h5 { - font-size: 18px; - font-weight: 400; - margin-top: 2rem; - margin-bottom: 0.5rem; } - .resume p, - .resume li { - font-size: 15px; - line-height: 1.4; - margin-bottom: 0.5rem; } - .resume ul { - padding: 0; - margin: 0; } - .resume li { - margin-left: 1rem; - margin-bottom: 0.5rem; - padding-left: 0.5rem; } - .resume em { - font-size: 15px; - color: #999; - font-style: normal; } - -footer { - padding: 20px; - overflow: hidden; - color: #999; - font-size: 14px; } - @media (min-width: 415px) { - footer { - padding: 30px; } } diff --git a/assets/main-3373bb453c35c1b8c21b61afc5f2a65a44690b780978f4f9d49729ac47859fbf.css b/assets/main-3373bb453c35c1b8c21b61afc5f2a65a44690b780978f4f9d49729ac47859fbf.css deleted file mode 100644 index 66a22eb..0000000 --- a/assets/main-3373bb453c35c1b8c21b61afc5f2a65a44690b780978f4f9d49729ac47859fbf.css +++ /dev/null @@ -1,806 +0,0 @@ -@charset "UTF-8"; -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ -html { - font-family: sans-serif; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ } - -/** - * Remove default margin. - */ -body { - margin: 0; } - -/* HTML5 display definitions - ========================================================================== */ -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; } - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ -audio, -canvas, -progress, -video { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ } - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; } - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ -[hidden], -template { - display: none; } - -/* Links - ========================================================================== */ -/** - * Remove the gray background color from active links in IE 10. - */ -a { - background-color: transparent; } - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ -a:active, -a:hover { - outline: 0; } - -/* Text-level semantics - ========================================================================== */ -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ -abbr[title] { - border-bottom: 1px dotted; } - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ -b, -strong { - font-weight: bold; } - -/** - * Address styling not present in Safari and Chrome. - */ -dfn { - font-style: italic; } - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; } - -/** - * Address styling not present in IE 8/9. - */ -mark { - background: #ff0; - color: #000; } - -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; } - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; } - -sup { - top: -0.5em; } - -sub { - bottom: -0.25em; } - -/* Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9/10. - */ -img { - border: 0; } - -/** - * Correct overflow not hidden in IE 9/10/11. - */ -svg:not(:root) { - overflow: hidden; } - -/* Grouping content - ========================================================================== */ -/** - * Address margin not present in IE 8/9 and Safari. - */ -figure { - margin: 1em 40px; } - -/** - * Address differences between Firefox and other browsers. - */ -hr { - -webkit-box-sizing: content-box; - box-sizing: content-box; - height: 0; } - -/** - * Contain overflow in all browsers. - */ -pre { - overflow: auto; } - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; } - -/* Forms - ========================================================================== */ -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ -button, -input, -optgroup, -select, -textarea { - color: inherit; - /* 1 */ - font: inherit; - /* 2 */ - margin: 0; - /* 3 */ } - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ -button { - overflow: visible; } - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ -button, -select { - text-transform: none; } - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - /* 2 */ - cursor: pointer; - /* 3 */ } - -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], -html input[disabled] { - cursor: default; } - -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; } - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ -input { - line-height: normal; } - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ -input[type="checkbox"], -input[type="radio"] { - -webkit-box-sizing: border-box; - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; } - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ -input[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - -webkit-box-sizing: content-box; - /* 2 */ - box-sizing: content-box; } - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -/** - * Define consistent border, margin, and padding. - */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; } - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - border: 0; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ -textarea { - overflow: auto; } - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ -optgroup { - font-weight: bold; } - -/* Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-collapse: collapse; - border-spacing: 0; } - -td, -th { - padding: 0; } - -@font-face { - font-family: 'fontello'; - src: url("http://github.com/font/fontello.eot?85747586"); - src: url("http://github.com/font/fontello.eot?85747586#iefix") format("embedded-opentype"), url("http://github.com/font/fontello.svg?85747586#fontello") format("svg"); - font-weight: normal; - font-style: normal; } -@font-face { - font-family: 'fontello'; - src: url("data:application/octet-stream;base64,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") format("woff"), url("data:application/octet-stream;base64,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") format("truetype"); } -/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ -/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ -/* -@media screen and (-webkit-min-device-pixel-ratio:0) { - @font-face { - font-family: 'fontello'; - src: url('http://github.com/font/fontello.svg?85747586#fontello') format('svg'); - } -} -*/ -[class^="icon-"]:before, [class*=" icon-"]:before { - font-family: "fontello"; - font-style: normal; - font-weight: normal; - speak: none; - display: inline-block; - text-decoration: inherit; - width: 1em; - margin-right: .2em; - text-align: center; - /* opacity: .8; */ - /* For safety - reset parent styles, that can break glyph codes*/ - font-variant: normal; - text-transform: none; - /* fix buttons height, for twitter bootstrap */ - line-height: 1em; - /* Animation center compensation - margins should be symmetric */ - /* remove if not needed */ - margin-left: .2em; - /* you can be more comfortable with increased icons size */ - /* font-size: 120%; */ - /* Uncomment for 3D effect */ - /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ } - -.icon-twitter:before { - content: '\e800'; } - -/* '' */ -.icon-github-circled:before { - content: '\e801'; } - -/* '' */ -.icon-rdio:before { - content: '\e802'; } - -/* '' */ -.icon-lastfm:before { - content: '\e803'; } - -/* '' */ -.icon-facebook:before { - content: '\e804'; } - -/* '' */ -.icon-mail-1:before { - content: '\e805'; } - -/* '' */ -.icon-flickr:before { - content: '\e806'; } - -/* '' */ -.icon-linkedin-1:before { - content: '\e807'; } - -/* '' */ -.icon-instagram-1:before { - content: '\e809'; } - -/* '' */ -* { - -webkit-box-sizing: border-box; - box-sizing: border-box; } - -body { - font-family: "franklin-gothic-urw", Helvetica, Arial, sans-serif; } - -h1, h2, h3, h4, h5, h6, p, li { - margin-top: 0; - margin-bottom: 1rem; } - -body { - background: #111; } - -h2 { - font-size: 36px; - font-weight: 400; - margin-bottom: 0; - padding-bottom: 0; } - -.header { - width: 100vw; - height: 50vh; - min-height: 414px; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: reverse; - -ms-flex-direction: row-reverse; - flex-direction: row-reverse; - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; - position: relative; - color: #fff; - padding: 20px; - -webkit-font-smoothing: antialiased; } - .theme-blue-lagoon .header { - background: #43C6AC; - background: -webkit-gradient(linear, left top, left bottom, from(#191654), to(#43C6AC)); - background: linear-gradient(to bottom, #191654, #43C6AC); } - .theme-dawn .header { - background: #FFA17F; - background: -webkit-gradient(linear, left top, left bottom, from(#00223E), to(#FFA17F)); - background: linear-gradient(to bottom, #00223E, #FFA17F); } - .theme-celestial .header { - background: #C33764; - background: -webkit-gradient(linear, left top, left bottom, from(#1D2671), to(#C33764)); - background: linear-gradient(to bottom, #1D2671, #C33764); } - @media (min-width: 415px) { - .header { - padding: 30px; } } - @media (min-width: 769px) { - .header { - height: 100vh; - width: 33.3333333333%; - position: fixed; - top: 0; - left: 0; } } - .header .wrapper { - width: 100%; } - .header .logo { - font-size: 36px; - font-weight: 400; - line-height: 1.1; - margin-bottom: 1rem; } - .header p, - .header li { - font-size: 16px; } - .header p { - line-height: 1.3; - font-weight: 400; } - .header p a, - .header .nav li a { - color: #fff; - opacity: 0.7; - border-bottom: 1px solid rgba(255, 255, 255, 0.5); - text-decoration: none; } - .no-touch .header .nav li a:hover, .no-touch .header p a:hover { - opacity: 1; - border-color: #fff; } - .header ul { - margin: 0 0 1rem; - padding: 0; } - .header li { - list-style: none; - display: inline-block; } - .header li a { - color: #fff; - text-decoration: none; } - .header .nav li { - padding-right: 18px; - margin-right: 15px; - border-right: 1px solid rgba(255, 255, 255, 0.5); - line-height: 1.4; - vertical-align: middle; - padding-bottom: 5px; } - .header .nav li:last-child { - padding-right: 0; - margin-right: 0; - border-right: none; } - .header ul.social { - position: absolute; - bottom: 0; - left: 0; - padding: 0 20px; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } - @media (min-width: 415px) { - .header ul.social { - padding: 0 30px; } } - .header .social a { - color: rgba(255, 255, 255, 0.5); - font-size: 24px; } - .no-touch .header .social a:hover { - color: #fff; } - -.work, -.resume, -footer { - background: #fff; - overflow: hidden; } - @media (min-width: 769px) { - .work, - .resume, - footer { - width: 66.6666666667%; - margin-left: 33.3333333333%; } } - -.work { - background: #edece6; } - .work h2 { - padding: 20px 20px 0; } - @media (min-width: 415px) { - .work h2 { - padding: 30px 30px 0; } } - .work .projects { - list-style: none; - padding: 10px; - margin: 0; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - @media (min-width: 415px) { - .work .projects { - padding: 20px; } } - .work .project { - position: relative; - overflow: hidden; - width: calc(50% - 20px); - margin: 10px; } - .work .project a:link, - .work .project a:hover, - .work .project a:visited { - text-decoration: none; } - .work .project-poster { - position: relative; - display: block; - background-size: cover; - background-position: top left; - padding-bottom: 66.6666666667%; - background-repeat: no-repeat; } - .work .project-info { - position: relative; } - .work .project-info h3 { - line-height: 1.1; - font-size: 24px; - font-weight: 400; - margin-bottom: 1rem; } - .work .project-info .project-description { - display: none; } - -.touch .work .project-poster { - margin-bottom: 0.5rem; } -.touch .work .project-info { - position: relative; } - .touch .work .project-info .project-date { - display: none; - color: #999; - font-size: 14px; - padding-top: 3px; - margin-bottom: 0; } - .touch .work .project-info h3 { - font-size: 16px; - font-weight: 400; - margin-bottom: 0; } - .touch .work .project-info .project-header a { - display: block; - color: #000; } - .touch .work .project-info .project-meta { - margin-bottom: 0; } - .touch .work .project-info .project-meta .repo-link, - .touch .work .project-info .project-meta .repo-link:visited { - display: inline; - color: #777; - font-size: 14px; - border-bottom: 1px solid #999; } - -.no-touch .work .project:hover .project-poster:before, -.no-touch .work .project:hover .project-info { - opacity: 1; } -.no-touch .work .project:hover .project-poster { - -webkit-filter: blur(5px); - filter: blur(5px); } -.no-touch .work .project:hover .project-header a, -.no-touch .work .project:hover .project-meta { - -webkit-transform: translate(0, 0); - transform: translate(0, 0); - opacity: 1; } -.no-touch .work .project-poster { - -webkit-transition: all 200ms ease-in-out; - transition: all 200ms ease-in-out; - -webkit-filter: blur(0); - filter: blur(0); } - .no-touch .work .project-poster:before { - -webkit-transition: opacity 200ms ease-in-out; - transition: opacity 200ms ease-in-out; - content: ' '; - position: absolute; - display: block; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: rgba(0, 0, 0, 0.5); - opacity: 0; } -.no-touch .work .project-info { - -webkit-transition: opacity 200ms ease-in-out; - transition: opacity 200ms ease-in-out; - position: absolute; - opacity: 0; - z-index: 100; - top: 1rem; - left: 1rem; - bottom: 1rem; - right: 1rem; } - .no-touch .work .project-info h3 { - font-size: 18px; - margin: 0; - padding: 0; } - .no-touch .work .project-info .project-date { - display: none; - font-size: 14px; - color: rgba(255, 255, 255, 0.7); } - .no-touch .work .project-info .project-header > a { - display: block; - color: #fff; } - .no-touch .work .project-info .project-header > a:hover { - text-decoration: none; } - .no-touch .work .project-info .project-header > a { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - -webkit-transition: opacity 250ms ease-in-out 100ms, -webkit-transform 300ms ease-in-out 10ms; - transition: opacity 250ms ease-in-out 100ms, -webkit-transform 300ms ease-in-out 10ms; - transition: transform 300ms ease-in-out 10ms, opacity 250ms ease-in-out 100ms; - transition: transform 300ms ease-in-out 10ms, opacity 250ms ease-in-out 100ms, -webkit-transform 300ms ease-in-out 10ms; - -webkit-transform: translate(-10%, 0); - transform: translate(-10%, 0); - opacity: 0; - padding: 0.5rem; } - .no-touch .work .project-info .project-meta { - -webkit-transition: opacity 250ms ease-in-out 100ms, -webkit-transform 300ms ease-in-out 10ms; - transition: opacity 250ms ease-in-out 100ms, -webkit-transform 300ms ease-in-out 10ms; - transition: transform 300ms ease-in-out 10ms, opacity 250ms ease-in-out 100ms; - transition: transform 300ms ease-in-out 10ms, opacity 250ms ease-in-out 100ms, -webkit-transform 300ms ease-in-out 10ms; - -webkit-transform: translate(10%, 0); - transform: translate(10%, 0); - width: 100%; - opacity: 0; - position: absolute; - bottom: 0; - left: 0; - color: #fff; - padding: 0.5rem; - z-index: 200; - text-align: right; - margin-bottom: 0; } - .no-touch .work .project-info .project-date a, - .no-touch .work .project-info .project-date a:visited, - .no-touch .work .project-info .repo-link, - .no-touch .work .project-info .repo-link:visited { - color: rgba(255, 255, 255, 0.7); - font-size: 14px; } - .no-touch .work .project-info .repo-link { - border-bottom: 1px solid rgba(255, 255, 255, 0.5); } - .no-touch .work .project-info .repo-link:hover { - border-bottom: 1px solid #fff; } - .no-touch .work .project-info .project-date a:hover, - .no-touch .work .project-info .repo-link:hover { - color: white; - text-decoration: none; } - -.resume { - padding: 20px; - background: #fff; } - @media (min-width: 415px) { - .resume { - padding: 30px; } } - .resume .wrapper { - max-width: 600px; } - .resume h2 + h3 { - margin-top: 1rem; } - .resume h3 { - border-top: 1px solid #e5e5e5; - font-weight: 700; - font-size: 21px; - margin-top: 2rem; - padding-top: 1rem; } - .resume h3 + h4, - .resume h3 + h5 { - margin-top: 0; } - .resume h4 { - font-size: 21px; - font-weight: 400; - margin-top: 1rem; - margin-bottom: 0; } - .resume h5 { - font-size: 18px; - font-weight: 400; - margin-top: 2rem; - margin-bottom: 0.5rem; } - .resume p, - .resume li { - font-size: 15px; - line-height: 1.4; - margin-bottom: 0.5rem; } - .resume ul { - padding: 0; - margin: 0; } - .resume li { - margin-left: 1rem; - margin-bottom: 0.5rem; - padding-left: 0.5rem; } - .resume em { - font-size: 15px; - color: #999; - font-style: normal; } - -footer { - padding: 20px; - overflow: hidden; - color: #999; - font-size: 14px; } - @media (min-width: 415px) { - footer { - padding: 30px; } } diff --git a/assets/main-f539414426b44b63cb6448de7a19cb72556e42c80c7269f0ce60a73306adb9a8.css b/assets/main-f539414426b44b63cb6448de7a19cb72556e42c80c7269f0ce60a73306adb9a8.css deleted file mode 100644 index 2d73fa1..0000000 --- a/assets/main-f539414426b44b63cb6448de7a19cb72556e42c80c7269f0ce60a73306adb9a8.css +++ /dev/null @@ -1,773 +0,0 @@ -@charset "UTF-8"; -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ -html { - font-family: sans-serif; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ } - -/** - * Remove default margin. - */ -body { - margin: 0; } - -/* HTML5 display definitions - ========================================================================== */ -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; } - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ -audio, -canvas, -progress, -video { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ } - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; } - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ -[hidden], -template { - display: none; } - -/* Links - ========================================================================== */ -/** - * Remove the gray background color from active links in IE 10. - */ -a { - background-color: transparent; } - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ -a:active, -a:hover { - outline: 0; } - -/* Text-level semantics - ========================================================================== */ -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ -abbr[title] { - border-bottom: 1px dotted; } - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ -b, -strong { - font-weight: bold; } - -/** - * Address styling not present in Safari and Chrome. - */ -dfn { - font-style: italic; } - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; } - -/** - * Address styling not present in IE 8/9. - */ -mark { - background: #ff0; - color: #000; } - -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; } - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; } - -sup { - top: -0.5em; } - -sub { - bottom: -0.25em; } - -/* Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9/10. - */ -img { - border: 0; } - -/** - * Correct overflow not hidden in IE 9/10/11. - */ -svg:not(:root) { - overflow: hidden; } - -/* Grouping content - ========================================================================== */ -/** - * Address margin not present in IE 8/9 and Safari. - */ -figure { - margin: 1em 40px; } - -/** - * Address differences between Firefox and other browsers. - */ -hr { - box-sizing: content-box; - height: 0; } - -/** - * Contain overflow in all browsers. - */ -pre { - overflow: auto; } - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; } - -/* Forms - ========================================================================== */ -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ -button, -input, -optgroup, -select, -textarea { - color: inherit; - /* 1 */ - font: inherit; - /* 2 */ - margin: 0; - /* 3 */ } - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ -button { - overflow: visible; } - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ -button, -select { - text-transform: none; } - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - /* 2 */ - cursor: pointer; - /* 3 */ } - -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], -html input[disabled] { - cursor: default; } - -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; } - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ -input { - line-height: normal; } - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; } - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ -input[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - /* 2 */ - box-sizing: content-box; } - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -/** - * Define consistent border, margin, and padding. - */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; } - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - border: 0; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ -textarea { - overflow: auto; } - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ -optgroup { - font-weight: bold; } - -/* Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-collapse: collapse; - border-spacing: 0; } - -td, -th { - padding: 0; } - -@font-face { - font-family: 'fontello'; - src: url("http://github.com/font/fontello.eot?85747586"); - src: url("http://github.com/font/fontello.eot?85747586#iefix") format("embedded-opentype"), url("http://github.com/font/fontello.svg?85747586#fontello") format("svg"); - font-weight: normal; - font-style: normal; } -@font-face { - font-family: 'fontello'; - src: url("data:application/octet-stream;base64,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") format("woff"), url("data:application/octet-stream;base64,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") format("truetype"); } -/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ -/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ -/* -@media screen and (-webkit-min-device-pixel-ratio:0) { - @font-face { - font-family: 'fontello'; - src: url('http://github.com/font/fontello.svg?85747586#fontello') format('svg'); - } -} -*/ -[class^="icon-"]:before, [class*=" icon-"]:before { - font-family: "fontello"; - font-style: normal; - font-weight: normal; - speak: none; - display: inline-block; - text-decoration: inherit; - width: 1em; - margin-right: .2em; - text-align: center; - /* opacity: .8; */ - /* For safety - reset parent styles, that can break glyph codes*/ - font-variant: normal; - text-transform: none; - /* fix buttons height, for twitter bootstrap */ - line-height: 1em; - /* Animation center compensation - margins should be symmetric */ - /* remove if not needed */ - margin-left: .2em; - /* you can be more comfortable with increased icons size */ - /* font-size: 120%; */ - /* Uncomment for 3D effect */ - /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ } - -.icon-twitter:before { - content: '\e800'; } - -/* '' */ -.icon-github-circled:before { - content: '\e801'; } - -/* '' */ -.icon-rdio:before { - content: '\e802'; } - -/* '' */ -.icon-lastfm:before { - content: '\e803'; } - -/* '' */ -.icon-facebook:before { - content: '\e804'; } - -/* '' */ -.icon-mail-1:before { - content: '\e805'; } - -/* '' */ -.icon-flickr:before { - content: '\e806'; } - -/* '' */ -.icon-linkedin-1:before { - content: '\e807'; } - -/* '' */ -.icon-instagram-1:before { - content: '\e809'; } - -/* '' */ -* { - box-sizing: border-box; } - -body { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; } - -h1, h2, h3, h4, h5, h6, p, li { - margin-top: 0; - margin-bottom: 1rem; } - -body { - background: #111; } - -h2 { - font-size: 36px; - font-weight: 400; - margin-bottom: 0; - padding-bottom: 0; } - -.header { - width: 100vw; - height: 50vh; - min-height: 414px; - display: -ms-flexbox; - display: flex; - -ms-flex-direction: row-reverse; - flex-direction: row-reverse; - -ms-flex-align: start; - align-items: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; - -ms-flex: 1; - flex: 1; - position: relative; - color: #fff; - padding: 20px; - -webkit-font-smoothing: antialiased; } - .theme-blue-lagoon .header { - background: #43C6AC; - background: linear-gradient(to bottom, #191654, #43C6AC); } - .theme-dawn .header { - background: #FFA17F; - background: linear-gradient(to bottom, #00223E, #FFA17F); } - .theme-celestial .header { - background: #C33764; - background: linear-gradient(to bottom, #1D2671, #C33764); } - @media (min-width: 415px) { - .header { - padding: 30px; } } - @media (min-width: 769px) { - .header { - height: 100vh; - width: 33.33333%; - position: fixed; - top: 0; - left: 0; } } - .header .wrapper { - width: 100%; } - .header .logo { - font-size: 36px; - font-weight: 400; - line-height: 1.1; - margin-bottom: 1rem; } - .header p, - .header li { - font-size: 16px; } - .header p { - line-height: 1.3; - font-weight: 400; } - .header p a, - .header .nav li a { - color: #fff; - opacity: 0.7; - border-bottom: 1px solid rgba(255, 255, 255, 0.5); - text-decoration: none; } - .no-touch .header .nav li a:hover, .no-touch .header p a:hover { - opacity: 1; - border-color: #fff; } - .header ul { - margin: 0 0 1rem; - padding: 0; } - .header li { - list-style: none; - display: inline-block; } - .header li a { - color: #fff; - text-decoration: none; } - .header .nav li { - padding-right: 18px; - margin-right: 15px; - border-right: 1px solid rgba(255, 255, 255, 0.5); - line-height: 1.4; - vertical-align: middle; - padding-bottom: 5px; } - .header .nav li:last-child { - padding-right: 0; - margin-right: 0; - border-right: none; } - .header ul.social { - position: absolute; - bottom: 0; - left: 0; - padding: 0 20px; - transform: translate3d(0, 0, 0); } - @media (min-width: 415px) { - .header ul.social { - padding: 0 30px; } } - .header .social a { - color: rgba(255, 255, 255, 0.5); - font-size: 24px; } - .no-touch .header .social a:hover { - color: #fff; } - -.work, -.resume, -footer { - background: #fff; - overflow: hidden; } - @media (min-width: 769px) { - .work, - .resume, - footer { - width: 66.66667%; - margin-left: 33.33333%; } } - -.work { - background: #edece6; } - .work h2 { - padding: 20px 20px 0; } - @media (min-width: 415px) { - .work h2 { - padding: 30px 30px 0; } } - .work .projects { - list-style: none; - padding: 10px; - margin: 0; - display: -ms-flexbox; - display: flex; - -ms-flex-direction: row; - flex-direction: row; - -ms-flex-align: start; - align-items: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - @media (min-width: 415px) { - .work .projects { - padding: 20px; } } - .work .project { - position: relative; - overflow: hidden; - width: calc(50% - 20px); - margin: 10px; } - .work .project a:link, - .work .project a:hover, - .work .project a:visited { - text-decoration: none; } - .work .project-poster { - position: relative; - display: block; - background-size: cover; - background-position: top left; - padding-bottom: 66.66667%; - background-repeat: no-repeat; } - .work .project-info { - position: relative; } - .work .project-info h3 { - line-height: 1.1; - font-size: 24px; - font-weight: 400; - margin-bottom: 1rem; } - .work .project-info .project-description { - display: none; } - -.touch .work .project-poster { - margin-bottom: 0.5rem; } -.touch .work .project-info { - position: relative; } - .touch .work .project-info .project-date { - display: none; - color: #999; - font-size: 14px; - padding-top: 3px; - margin-bottom: 0; } - .touch .work .project-info h3 { - font-size: 16px; - font-weight: 400; - margin-bottom: 0; } - .touch .work .project-info .project-header a { - display: block; - color: #000; } - .touch .work .project-info .project-meta { - margin-bottom: 0; } - .touch .work .project-info .project-meta .repo-link, - .touch .work .project-info .project-meta .repo-link:visited { - display: inline; - color: #777; - font-size: 14px; - border-bottom: 1px solid #999; } - -.no-touch .work .project:hover .project-poster:before, -.no-touch .work .project:hover .project-info { - opacity: 1; } -.no-touch .work .project:hover .project-poster { - filter: blur(5px); } -.no-touch .work .project:hover .project-header a, -.no-touch .work .project:hover .project-meta { - transform: translate(0, 0); - opacity: 1; } -.no-touch .work .project-poster { - transition: all 200ms ease-in-out; - filter: blur(0); } - .no-touch .work .project-poster:before { - transition: opacity 200ms ease-in-out; - content: ' '; - position: absolute; - display: block; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: rgba(0, 0, 0, 0.5); - opacity: 0; } -.no-touch .work .project-info { - transition: opacity 200ms ease-in-out; - position: absolute; - opacity: 0; - z-index: 100; - top: 1rem; - left: 1rem; - bottom: 1rem; - right: 1rem; } - .no-touch .work .project-info h3 { - font-size: 18px; - margin: 0; - padding: 0; } - .no-touch .work .project-info .project-date { - display: none; - font-size: 14px; - color: rgba(255, 255, 255, 0.7); } - .no-touch .work .project-info .project-header > a { - display: block; - color: #fff; } - .no-touch .work .project-info .project-header > a:hover { - text-decoration: none; } - .no-touch .work .project-info .project-header > a { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - transition: transform 300ms ease-in-out 10ms, opacity 250ms ease-in-out 100ms; - transform: translate(-10%, 0); - opacity: 0; - padding: 0.5rem; } - .no-touch .work .project-info .project-meta { - transition: transform 300ms ease-in-out 10ms, opacity 250ms ease-in-out 100ms; - transform: translate(10%, 0); - width: 100%; - opacity: 0; - position: absolute; - bottom: 0; - left: 0; - color: #fff; - padding: 0.5rem; - z-index: 200; - text-align: right; - margin-bottom: 0; } - .no-touch .work .project-info .project-date a, - .no-touch .work .project-info .project-date a:visited, - .no-touch .work .project-info .repo-link, - .no-touch .work .project-info .repo-link:visited { - color: rgba(255, 255, 255, 0.7); - font-size: 14px; } - .no-touch .work .project-info .repo-link { - border-bottom: 1px solid rgba(255, 255, 255, 0.5); } - .no-touch .work .project-info .repo-link:hover { - border-bottom: 1px solid #fff; } - .no-touch .work .project-info .project-date a:hover, - .no-touch .work .project-info .repo-link:hover { - color: white; - text-decoration: none; } - -.resume { - padding: 20px; - background: #fff; } - @media (min-width: 415px) { - .resume { - padding: 30px; } } - .resume .wrapper { - max-width: 600px; } - .resume h2 + h3 { - margin-top: 1rem; } - .resume h3 { - border-top: 1px solid #e5e5e5; - font-weight: 700; - font-size: 21px; - margin-top: 2rem; - padding-top: 1rem; } - .resume h3 + h4, - .resume h3 + h5 { - margin-top: 0; } - .resume h4 { - font-size: 21px; - font-weight: 400; - margin-top: 1rem; - margin-bottom: 0; } - .resume h5 { - font-size: 18px; - font-weight: 400; - margin-top: 2rem; - margin-bottom: 0.5rem; } - .resume p, - .resume li { - font-size: 15px; - line-height: 1.4; - margin-bottom: 0.5rem; } - .resume ul { - padding: 0; - margin: 0; } - .resume li { - margin-left: 1rem; - margin-bottom: 0.5rem; - padding-left: 0.5rem; } - .resume em { - font-size: 15px; - color: #999; - font-style: normal; } - -footer { - padding: 20px; - overflow: hidden; - color: #999; - font-size: 14px; } - @media (min-width: 415px) { - footer { - padding: 30px; } } diff --git a/feed.xml b/feed.xml index 47ce61b..022378b 100644 --- a/feed.xml +++ b/feed.xml @@ -1,14 +1,30 @@ +--- +layout: null +--- - Danny DeBelius - Danny DeBelius is an editor, designer and developer at The New York Times. - - http://www.dannydebelius.com/ - - Mon, 24 Jun 2019 11:25:21 -0600 - Mon, 24 Jun 2019 11:25:21 -0600 - Jekyll v3.4.3 - + {{ site.title | xml_escape }} + {{ site.description | xml_escape }} + {{ site.url }}{{ site.baseurl }}/ + + {{ site.time | date_to_rfc822 }} + {{ site.time | date_to_rfc822 }} + Jekyll v{{ jekyll.version }} + {% for post in site.posts limit:10 %} + + {{ post.title | xml_escape }} + {{ post.content | xml_escape }} + {{ post.date | date_to_rfc822 }} + {{ post.url | prepend: site.baseurl | prepend: site.url }} + {{ post.url | prepend: site.baseurl | prepend: site.url }} + {% for tag in post.tags %} + {{ tag | xml_escape }} + {% endfor %} + {% for cat in post.categories %} + {{ cat | xml_escape }} + {% endfor %} + + {% endfor %} diff --git a/index.html b/index.html deleted file mode 100644 index b8dde26..0000000 --- a/index.html +++ /dev/null @@ -1,504 +0,0 @@ - - - - - - - - Danny DeBelius - - - - - - - - - - - - - - - - -
-
- -

I‘m a designer and developer at Planning Center. Previously, I was a designer, developer and editor at The New York Times and NPR.

- - - -
-
- - - -
-
-

Résumé

-

Experience

- -

Senior Front-End Designer

- -

Planning Center, Carlsbad, CA
-July 2018 — Present

- -
    -
  • Design and develop the Church Center — a congregant-facing React Native app for Android and iOS
  • -
- -

Graphics/Multimedia Editor

- -

The New York Times, New York, N.Y.
-July 2015 — July 2018

- -
    -
  • Designed and developed enterprise and multimedia story presentation
  • -
  • Contributed to internal tools used by Digital News Design and the Graphics desk
  • -
- -

News Application Designer

- -

NPR, Washington, D.C.
-April 2013 — June 2015

- -
    -
  • Designed visuals and interactions for Visuals team projects
  • -
  • Authored HTML, LESS, CSS, Javascript and Python to realize project designs in code
  • -
  • Tested interfaces to improve user experience
  • -
  • Contributed to the NPR Visuals app template, dailygraphics rig and other open-source tools used in our project stack
  • -
- -

Senior User Experience Designer

- -

NPR, Washington, D.C.
-April 2011 — April 2013

- -
    -
  • Led user interface design for StateImpact editorial platform and news applications
  • -
  • Contributed to the front-end development of StateImpact’s Wordpress theme and special projects
  • -
  • Collaborated with NPR user testing group to improve user experience
  • -
- -

Senior Web Designer

- -

Las Vegas Sun, Henderson, Nev.
-February 2009 — April 2011

- -
    -
  • Oversaw visual design and front-end development of LasVegasSun.com -and its mobile counterpart
  • -
  • Contributed to visual design and front-end development of -LasVegasWeekly.com and 702.tv
  • -
  • Developed user interface prototype for Las Vegas Weekly’s iPhone app
  • -
- -

Design Producer

- -

Rocky Mountain News, Denver, Colo.
-March 2008 — February 2009

- -
    -
  • Led front-end development in Django, ColdFusion and Movable Type -environments
  • -
  • Collaborated with corporate user experience group to make site -improvements based on usability testing
  • -
  • Refined site markup and information architecture to reach search -engine optimization goals
  • -
- -

Site Manager

- -

Wildwood Guitars, Louisville, Colo.
-May 2006 — March 2008

- -
    -
  • Oversaw design, front-end development, and content management of -WildwoodGuitars.com
  • -
- -
- -

Photo Intern

- -

The Daily Camera, Boulder, Colo.
-May 2006 — August 2006

- -
    -
  • Shot photo assignments on deadline, edited images in digital -darkroom for print reproduction
  • -
- -

Online Content Producer

- -

The Daily Camera, Boulder, Colo.
-January 2004 — May 2006

- -
    -
  • Created web components for special reports with Flash graphics, -audio, video and standards-based HTML/CSS design
  • -
- -

Education

- -

University of Colorado at Boulder

- -

Bachelor of Science, News-Editorial Journalism

- -

Colorado State University

- -

Pre-Journalism

- -

Skills

- -

Fluent in Javascript, React, React Native, Node, HTML, CSS, LESS, SASS, Git, Visual Studio Code, Vim, Sketch, Figma, Adobe Creative Suite, Adobe Lightroom

- -

Proficient in Python, D3, Wordpress, SVN, Bash

- -

Awards

- -
2018 SND Best of Digital Design
- -

Silver Medal
-Story Page Design: News Features or Planned Coverage
-The New York Times: Kidnapped as Schoolgirls

- -
2016 SND Best of Digital Design
- -

Silver Medal
-Features: Single-subject project
-The New York Times Magazine: The New York Issue

- -

Award of Excellence
-Features: Coverage
-Inside Death Row

- -
2014 SND Best of Digital Design
- -

Gold Medal
-Personal Portfolio

- -

Silver Medal
-Organization Portfolio
-NPR Visuals

- -

Silver Medal
-Special Events
-Election Party!

- -

Silver Medal
-Features, Single Subject
-Songs We Love

- -
- -
2013 SND Best of Digital Design
- -

Award of Excellence
-Features Single-Story Project
-NPR’s Book Concierge: Our Guide To 2013’s Great Reads

- -

Award of Excellence
-Data project (Features)
-Playgrounds For Everyone

- -

Award of Excellence
-Features Single-Story Project
-Previously, On ‘Arrested Development’

- -
2012 SND Best of Digital Design
- -

Award of Excellence
-Dried Out: Confronting the Texas Drought

- -

Award of Excellence
-Getting By, Getting Ahead: Voices of the New Hampshire Economy

- -
2012 Alfred I. duPont-Columbia University Awards
- -

Silver Baton
-StateImpact Pennsylvania

- -
2011 EPpy Awards
- -

Best Community Service on a Media-Affiliated Website with 1 million unique monthly visitors and over
-Do No Harm: Hospital Care in Las Vegas

- -

Best Business/Finance Website with 250,000 to 1 million unique monthly visitors
-VegasInc, Greenspun Media Group

- -
2011 SND Best of Digital News Design
- -

Award of Excellence
-Do No Harm: Hospital Care in Las Vegas

- -
Scripps Howard Awards
- -

Investigative Reporting
-Do No Harm: Hospital Care in Las Vegas

- -
2011 Goldsmith Awards
- -

Goldsmith Prize for Investigative Reporting
-Do No Harm: Hospital Care in Las Vegas

- -
- -
2011 Alfred I. duPont-Columbia University Awards
- -

Silver Baton
-Bottoming Out: Gambling Addiction in Las Vegas

- -
2010 Online Journalism Awards – Online Journalism Awards
- -

General Excellence in Online Journalism, Medium Site
-The Las Vegas Sun and the Greenspun Media Group

- -
2010 EPpy Awards
- -

Best News Website - Less than 1 million monthly visitors
-LasVegasSun.com

- -

Best Web Special Feature – Enterprise, Less than 1 million monthly visitors
-Bottoming Out: Gambling Addiction in Las Vegas

- -
2005 Online News Association – Online Journalism Awards
- -

Outstanding Use of Multiple Media, First Place
-Mission to Mante

- - - -
-
- - -
- -
- - - - - - diff --git a/index.md b/index.md new file mode 100644 index 0000000..17dac13 --- /dev/null +++ b/index.md @@ -0,0 +1,226 @@ +--- +body_class: homepage +description: 'I‘m a designer and developer at Planning + Center. Previously, I was a designer, developer and editor at The New York Times + and NPR. ' +layout: home +title: Danny DeBelius + +--- +### Experience + +#### Senior Front-End Designer + +_Planning Center, Carlsbad, CA_ +_July 2018 — Present_ + +* Design and develop the Church Center — a congregant-facing React Native app for Android and iOS + +#### Graphics/Multimedia Editor + +_The New York Times, New York, N.Y._ +_July 2015 — July 2018_ + +* Designed and developed enterprise and multimedia story presentation +* Contributed to internal tools used by Digital News Design and the Graphics desk + +#### News Application Designer + +_NPR, Washington, D.C._ +_April 2013 — June 2015_ + +* Designed visuals and interactions for Visuals team projects +* Authored HTML, LESS, CSS, Javascript and Python to realize project designs in code +* Tested interfaces to improve user experience +* Contributed to the NPR Visuals app template, dailygraphics rig and other open-source tools used in our project stack + +#### Senior User Experience Designer + +_NPR, Washington, D.C._ +_April 2011 — April 2013_ + +* Led user interface design for StateImpact editorial platform and news applications +* Contributed to the front-end development of StateImpact’s Wordpress theme and special projects +* Collaborated with NPR user testing group to improve user experience + +#### Senior Web Designer + +_Las Vegas Sun, Henderson, Nev._ +_February 2009 — April 2011_ + +* Oversaw visual design and front-end development of LasVegasSun.com + and its mobile counterpart +* Contributed to visual design and front-end development of + LasVegasWeekly.com and 702.tv +* Developed user interface prototype for Las Vegas Weekly’s iPhone app + +#### Design Producer + +_Rocky Mountain News, Denver, Colo._ +_March 2008 — February 2009_ + +* Led front-end development in Django, ColdFusion and Movable Type + environments +* Collaborated with corporate user experience group to make site + improvements based on usability testing +* Refined site markup and information architecture to reach search + engine optimization goals + +#### Site Manager + +_Wildwood Guitars, Louisville, Colo._ +_May 2006 — March 2008_ + +* Oversaw design, front-end development, and content management of + WildwoodGuitars.com + +
+ +#### Photo Intern + +_The Daily Camera, Boulder, Colo._ +_May 2006 — August 2006_ + +* Shot photo assignments on deadline, edited images in digital + darkroom for print reproduction + +#### Online Content Producer + +_The Daily Camera, Boulder, Colo._ +_January 2004 — May 2006_ + +* Created web components for special reports with Flash graphics, + audio, video and standards-based HTML/CSS design + +### Education + +#### University of Colorado at Boulder + +_Bachelor of Science, News-Editorial Journalism_ + +#### Colorado State University + +_Pre-Journalism_ + +### Skills + +**Fluent** in Javascript, React, React Native, Node, HTML, CSS, LESS, SASS, Git, Visual Studio Code, Vim, Sketch, Figma, Adobe Creative Suite, Adobe Lightroom + +**Proficient** in Python, D3, Wordpress, SVN, Bash + +### Awards + +##### 2018 SND Best of Digital Design + +Silver Medal +_Story Page Design: News Features or Planned Coverage_ +_The New York Times: Kidnapped as Schoolgirls_ + +##### 2016 SND Best of Digital Design + +Silver Medal +_Features: Single-subject project_ +_The New York Times Magazine: The New York Issue_ + +Award of Excellence +_Features: Coverage_ +_Inside Death Row_ + +##### 2014 SND Best of Digital Design + +Gold Medal +_Personal Portfolio_ + +Silver Medal +_Organization Portfolio_ +_NPR Visuals_ + +Silver Medal +_Special Events_ +_Election Party!_ + +Silver Medal +_Features, Single Subject_ +_Songs We Love_ + +
+ +##### 2013 SND Best of Digital Design + +Award of Excellence +_Features Single-Story Project_ +_NPR’s Book Concierge: Our Guide To 2013’s Great Reads_ + +Award of Excellence +_Data project (Features)_ +_Playgrounds For Everyone_ + +Award of Excellence +_Features Single-Story Project_ +_Previously, On ‘Arrested Development’_ + +##### 2012 SND Best of Digital Design + +Award of Excellence +_Dried Out: Confronting the Texas Drought_ + +Award of Excellence +_Getting By, Getting Ahead: Voices of the New Hampshire Economy_ + +##### 2012 Alfred I. duPont-Columbia University Awards + +Silver Baton +_StateImpact Pennsylvania_ + +##### 2011 EPpy Awards + +Best Community Service on a Media-Affiliated Website with 1 million unique monthly visitors and over +_Do No Harm: Hospital Care in Las Vegas_ + +Best Business/Finance Website with 250,000 to 1 million unique monthly visitors +_VegasInc, Greenspun Media Group_ + +##### 2011 SND Best of Digital News Design + +Award of Excellence +_Do No Harm: Hospital Care in Las Vegas_ + +##### Scripps Howard Awards + +Investigative Reporting +_Do No Harm: Hospital Care in Las Vegas_ + +##### 2011 Goldsmith Awards + +Goldsmith Prize for Investigative Reporting +_Do No Harm: Hospital Care in Las Vegas_ + +
+ +##### 2011 Alfred I. duPont-Columbia University Awards + +Silver Baton +_Bottoming Out: Gambling Addiction in Las Vegas_ + +##### 2010 Online Journalism Awards – Online Journalism Awards + +General Excellence in Online Journalism, Medium Site +_The Las Vegas Sun and the Greenspun Media Group_ + +##### 2010 EPpy Awards + +Best News Website - Less than 1 million monthly visitors +_LasVegasSun.com_ + +Best Web Special Feature – Enterprise, Less than 1 million monthly visitors +_Bottoming Out: Gambling Addiction in Las Vegas_ + +##### 2005 Online News Association – Online Journalism Awards + +Outstanding Use of Multiple Media, First Place +_Mission to Mante_ + + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml deleted file mode 100644 index f7d3d68..0000000 --- a/sitemap.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - -http://www.dannydebelius.com/ - -