blob: ba71e2eba34e130c74fbde506a3e23f94ee1a3b2 [file] [log] [blame]
/*
Created on : 05.08.2016, 17:11:56
Author : Chris
*/
$default-color: #fff;
$primary-color: #4181c1;
$secondary-color: #ebebeb;
$alternative-color: #272727;
$symbolic-color-php: #6c7eb7; // PHP
$symbolic-color-html5: #e44d26; // HTML5
$symbolic-color-css3: #016fba; // CSS3
$symbolic-color-less: #2b4e85; // LESS
$symbolic-color-sass: #cf649a; // SASS
$symbolic-color-markdown: #000; // MarkDown
$symbolic-color-ftl: #444; // FTL
$symbolic-color-json: #1984a4; // JSON
$symbolic-color-jsx: #333; // JSX
$symbolic-color-ini: #ff6600; // Ini
$symbolic-color-js: #d6ba33; // JS
$symbolic-color-java: #e00024; // JAVA
$symbolic-color-sql: #444; // SQL
$symbolic-color-cpp: #348ab9; // CPP
$symbolic-color-xml: #666; // XML
$symbolic-color-jade: #47c17b; // JADE
$symbolic-color-twig: #899914; // Twig
$symbolic-color-groovy: #6398aa; // Groovy
$symbolic-color-yaml: #888; // Yaml
$symbolic-color-fb: #3b5998; // fb
$symbolic-color-twitter: #1da1f2; // twitter
$symbolic-color-plus: #db4437; // plus
$symbolic-color-slack: #766fba; // slack
$symbolic-color-youtube: #e62117; // youtube
// Sizes
$small: 768px;
$medium: 1024px;
$large: 1260px;
$headerHeight: 50px;
@mixin margin-bottom-reset() {
margin: 0;
padding: 0;
}
@mixin fullWidth() {
width: 100%;
margin: 0 auto;
box-sizing: border-box;
}
@mixin box-shadow($rotated: 1) {
box-shadow: 0 3px * $rotated 4px 0 rgba(0, 0, 0, .12), 0 1px * $rotated 2px 0 rgba(0, 0, 0, .24);
}
@mixin box-shadow-active($rotated: 1) {
box-shadow: 0 6px * $rotated 7px 0 rgba(0, 0, 0, .2), 0 1px 10px * $rotated 0 rgba(0, 0, 0, .12), 0 2px 4px -1px rgba(0, 0, 0, .2);
}
@mixin text-shadow($rotated: 1) {
text-shadow: 0 3px 4px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24);
}
@mixin inner-fullwidth() {
@include fullWidth();
padding: 35px 15px;
max-width: 1200px;
}
@font-face {
font-family: 'PulsIcons';
src: url('../fonts/puls.ttf') format('truetype'),
url('../fonts/puls.woff') format('woff'),
url('../fonts/puls.svg') format('svg');
}
@keyframes show-hide-ripple {
from {
transform: scale(0);
opacity: .5;
}
to {
transform: scale(30);
opacity: 0;
}
}
body {
@include margin-bottom-reset();
font-family: 'Open Sans', sans-serif;
line-height: 24px;
size: 16px;
color: #333;
font-weight: 300;
width: 100%;
ul, ol, li, h1, h2, h3, p, div, img {
@include margin-bottom-reset();
}
h1, h2, h3 {
margin-bottom: 10px;
}
a {
color: $alternative-color;
text-decoration: none;
&.external {
text-decoration: underline;
font-weight: bold;
}
&.no-deco {
color: white;
}
}
.alternative-color {
a:not(.next-section) {
color: lighten($primary-color, 15%);
}
}
.with-icon {
&:after {
font-family: 'PulsIcons';
}
}
img {
max-width: 100%;
width: 100%;
display: block;
}
ul {
list-style: none;
margin-left: 0;
}
header, footer {
@include margin-bottom-reset();
@include fullWidth();
}
header {
position: fixed;
height: $headerHeight;
color: $secondary-color;
background-color: transparent;
transition: background-color 500ms ease;
z-index: 1;
user-select: none;
-webkit-user-select: none;
.inner {
padding-top: 0;
padding-bottom: 0;
height: 100%;
nav {
align-items: flex-start;
display: flex;
flex: 1;
#burger-menu {
min-width: 30px;
max-width: 30px;
height: 25px;
position: relative;
z-index: 1;
align-self: center;
> div {
border: 2px solid $alternative-color;
transition: all 300ms ease-out;
position: absolute;
left: 0;
right: 0;
top: 10px;
&:first-child {
top: 0px;
}
&:last-child {
top: 20px;
}
}
}
ul {
background-color: rgba(0, 0, 0, .9);
display: block;
height: 10000%;
left: 0;
min-width: 150px;
padding-top: $headerHeight + 25;
width: 60%;
position: absolute;
transform: translate3d(-700px, 0, 0);
transition: transform 300ms ease-out;
li {
display: block;
margin-bottom: 5px;
.nav-link {
color: inherit;
display: block;
padding: 5px 20px;
transition: color 200ms ease-in;
&.active {
color: $primary-color;
}
}
}
}
}
#logo {
align-self: center;
color: $primary-color;
display: flex;
align-items: center;
justify-content: flex-end;
img {
width: 75px;
margin-right: -1em;
}
div {
align-content: center;
align-items: center;
}
}
}
.search {
color: $alternative-color;
align-self: center;
font-size: 125%;
margin: 0 .25em;
&:after {
content: '\f002';
}
&:hover {
cursor: pointer;
}
}
.search-field {
@include inner-fullwidth();
@include box-shadow();
display: flex;
padding: 0;
height: 0;
overflow: hidden;
transition: height 200ms ease-out;
position: absolute;
right: 0;
input[type="text"] {
outline: 0;
padding: .25em;
font-size: 120%;
flex: 1 0 80%;
}
button {
margin: 0;
flex: 1 0 5%;
align-self: auto;
background-color: $alternative-color;
color: $secondary-color;
border: 0;
}
&.active {
height: 40px;
}
@media (min-width: 600px) {
max-width: 600px;
margin: 0;
}
@media (min-width: $small) {
right: 8em;
}
}
&.active {
background-color: lighten($alternative-color, 75%);
box-shadow: 0 3px 4px 0 rgba(0, 0, 0, .12),
0 1px 2px 0 rgba(0, 0, 0, .24);
}
}
main {
article {
text-align: center;
position: relative;
padding-top: $headerHeight;
max-width: 80%;
}
section {
position: relative;
padding-top: $headerHeight;
height: 100vh;
.next-section {
@include box-shadow(-1);
position: absolute;
bottom: .75em;
left: 50%;
margin-left: -25px;
line-height: 1;
color: $secondary-color;
font-size: 175%;
padding: .5em .7em;
line-height: 1;
border-radius: 50%;
background-color: rgba(0, 0, 0, .3);
border: 1px solid $secondary-color;
transform: rotate3d(1, 0, 0, 180deg);
text-shadow: 0 0 4px rgba(0, 0, 0, 1);
transition: text-shadow 500ms ease-out, box-shadow 250ms ease-out;
&:after {
font-family: 'PulsIcons';
content: '\f102';
}
&:hover {
cursor: pointer;
}
&:active {
text-shadow: 0 -1px 6px rgba(0, 0, 0, 1);
box-shadow: 0 -6px 7px 0 rgba(0, 0, 0, .2), 0 -1px 10px 0 rgba(0, 0, 0, .12), 0 -2px 4px -1px rgba(0, 0, 0, .2);
}
}
.languages, .technologies {
display: flex;
flex-direction: row;
max-width: 640px;
margin: 2em auto;
overflow-x: scroll;
> li {
display: flex;
}
@media(min-width: $small) {
flex-wrap: wrap;
justify-content: space-between;
overflow-x: hidden;
}
}
.languages {
align-content: center;
> li {
.php {
background-color: $symbolic-color-php;
}
.js {
background-color: $symbolic-color-js;
}
.java {
background-color: $symbolic-color-java;
}
.groovy {
background-color: $symbolic-color-groovy;
}
.html5 {
background-color: $symbolic-color-html5;
}
.css3 {
background-color: $symbolic-color-css3;
}
.less {
background-color: $symbolic-color-less;
}
.sass {
background-color: $symbolic-color-sass;
}
.ftl {
background-color: $symbolic-color-ftl;
}
.json {
background-color: $symbolic-color-json;
}
.jsx {
background-color: $symbolic-color-jsx;
}
.ini {
background-color: $symbolic-color-ini;
}
.markdown {
background-color: $symbolic-color-markdown;
}
.jade {
background-color: $symbolic-color-jade;
}
.twig {
background-color: $symbolic-color-twig;
}
.sql {
background-color: $symbolic-color-sql;
}
.yaml {
background-color: $symbolic-color-yaml;
}
.cpp {
background-color: $symbolic-color-cpp;
}
.xml {
background-color: $symbolic-color-xml;
}
}
}
.technologies {
max-width: 795px;
> li {
max-width: 85px;
text-align: center;
margin: .5em;
font-weight: bold;
font-size: 70%;
display: inline-table;
.name {
display: none;
}
@media(min-width: $small) {
.name {
display: block;
}
}
}
}
&:not(.banner) {
height: auto;
p {
text-align: center;
}
@media(min-width: $small) {
height: auto;
}
}
&#languages {
height: auto;
.inner {
height: 100%;
padding-bottom: 6em;
}
}
&#plugins {
.inner {
padding-bottom: 6em;
}
}
}
}
footer {
background: #fff;
box-sizing: border-box;
.back-to-top {
@include box-shadow();
position: fixed;
padding: .5em .7em;
line-height: 1;
bottom: .75em;
right: .75em;
background-color: $primary-color;
border-radius: 50%;
transition: box-shadow 250ms ease-out, opacity 250ms ease-out, visibility 250ms ease-out;
color: $secondary-color;
opacity: 0;
visibility: hidden;
font-size: 150%;
&:after {
content: '\f102';
}
&:hover {
cursor: pointer;
}
&:active {
@include box-shadow-active();
}
}
.social-links {
display: flex;
> li {
display: flex;
a {
width: 50px;
height: 50px;
line-height: 50px;
color: white;
font-size: 130%;
margin: .25em;
transition: box-shadow 250ms ease-out, opacity 250ms ease-out, visibility 250ms ease-out;
&:active {
@include box-shadow-active();
}
}
.fb {
background-color: $symbolic-color-fb;
&:after {
content: '\f09a';
}
}
.twitter {
background-color: $symbolic-color-twitter;
&:after {
content: '\f099';
}
}
.plus {
background-color: $symbolic-color-plus;
&:after {
content: '\ea8b';
}
}
.slack {
background-color: $symbolic-color-slack;
&:after {
content: '\f198';
}
}
.youtube {
background-color: $symbolic-color-youtube;
&:after {
content: '\ea9d';
}
}
}
}
.disc {
margin: 1em;
}
}
.circle {
@include box-shadow();
@include text-shadow();
border-radius: 50%;
font-weight: bold;
font-size: 100%;
background-color: black;
width: 75px;
height: 75px;
line-height: 75px;
margin: .5em;
text-align: center;
flex: 1 0 50%;
&.small {
font-size: 80%;
line-height: 3;
}
&.tech {
max-width: 100%;
max-height: 100%;
margin: 0;
background-color: transparent;
box-shadow: none;
}
}
.download-links {
margin-top: .5em;
font-weight: bold;
font-size: 90%;
display: flex;
justify-content: center;
a {
@include box-shadow();
padding: 1em;
white-space: nowrap;
color: white;
background-color: orangered;
cursor: pointer;
border-radius: 2px;
transition: box-shadow 250ms ease-out;
margin: 0;
&:active {
@include box-shadow-active();
}
}
}
&.scrolled {
footer {
.back-to-top {
visibility: visible;
opacity: 1;
}
}
}
&.active {
.clickable-background {
bottom: 0;
display: block;
left: 0;
opacity: .5;
position: absolute;
right: 0;
top: $headerHeight;
background-color: rgba(0, 0, 0, 1);
z-index: 1;
}
header {
nav {
#burger-menu {
> div {
border: 2px solid #ccc;
&:first-child {
transform: rotate3d(0, 0, 1, 45deg);
top: 10px;
}
&:nth-child(2n) {
opacity: 0;
}
&:last-child {
transform: rotate3d(0, 0, 1, -45deg);
top: 10px;
}
}
}
ul {
transform: translate3d(0, 0, 0);
}
}
}
}
.primary-color {
background-color: $primary-color;
color: #fff;
}
.secondary-color {
background-color: $secondary-color;
}
.default-color {
background-color: $default-color;
}
.alternative-color {
background-color: $alternative-color;
color: #ddd;
}
.ripple-btn {
}
.inner {
@include inner-fullwidth();
padding-bottom: 80px;
@media(min-width: $small) {
padding-bottom: 50px;
}
}
.flex-container {
display: flex;
flex-direction: column;
align-items: center;
@media(min-width: $medium) {
flex-wrap: wrap;
> * {
flex: 1;
}
}
}
.flex-container-small {
display: flex;
justify-content: space-between;
> * {
}
}
.font-light {
color: lighten($alternative-color, 2%);
}
.left {
text-align: left;
}
.center {
text-align: center;
}
.right {
text-align: right;
}
.title-img {
width: 100%;
height: 107%;
position: absolute;
z-index: -2;
background-color: #eee;
.img-wrapper {
position: absolute;
left: 1em;
right: 1em;
bottom: 0;
img {
position: absolute;
bottom: -3em;
left: 0;
right: 0;
margin: 0 auto;
box-sizing: border-box;
display: none;
box-shadow: 0px -2px 12px 3px lighten($alternative-color, 60%);
@media(min-device-width: 600px) and (max-device-width: 800px) {
@media (min-height: 400px) and (orientation: portrait) {
max-width: 768px;
display: block;
bottom: 20em;
}
}
@media(min-width: 650px) {
@media (min-height: 425px) {
max-width: 768px;
display: block;
}
}
@media(min-width: 810px) {
@media (min-height: 500px) {
max-width: 760px;
bottom: -3em;
}
@media (min-height: 700px) {
max-width: 850px;
}
@media (min-height: 850px) {
max-width: 1200px;
}
}
}
}
}
.banner {
text-align: center;
box-sizing: border-box;
.inner {
height: auto;
padding: 3vh 15px;
color: $alternative-color;
justify-content: flex-start;
&.flex-container-small {
flex-direction: column;
align-items: center;
.desc {
max-width: 500px;
margin-top: 2em;
}
.headline-with-downloads {
.download-links a {
&:last-child {
display: none;
}
}
}
/* Phone Landscape */
@media screen and (min-width: 500px)
and (min-height: 320px)
and (orientation: landscape) {
flex-direction: row-reverse;
align-items: flex-start;
justify-content: center;
.desc {
margin-right: 1em;
margin-top: 0;
}
}
}
.slogan {
color: inherit;
display: inline-block;
padding: 25px;
margin-bottom: 1em;
background: rgba(255, 255, 255, .7);
h1 {
font-weight: 800;
box-sizing: border-box;
color: $primary-color;
text-shadow: 1px 1px 2px lighten($primary-color, 25%);
white-space: nowrap;
}
}
p {
text-align: justify;
&:not(:last-child) {
margin-bottom: 1em;
}
}
@media(min-width: $small) {
padding: 10vh 15px;
&.flex-container-small {
flex-direction: row-reverse;
justify-content: center;
align-items: stretch;
.headline-with-downloads {
display: flex;
flex-direction: column;
.download-links a {
&:first-child {
margin-right: .5em;
}
&:last-child {
display: block;
}
}
}
.slogan {
max-width: 300px;
display: flex;
flex-direction: column;
justify-content: center;
}
.desc {
margin-right: 1em;
margin-top: 0;
}
}
}
}
/* Portrait Nexus 7 */
@media only screen
and (min-device-width: 600px)
and (max-device-width: 960px)
and (orientation: portrait)
and (-webkit-min-device-pixel-ratio: 1) {
height: 70vh;
}
}
@media(min-width: $medium) {
header {
.inner {
nav {
flex: 2;
#burger-menu {
display: none;
}
ul {
@include margin-bottom-reset();
display: flex;
background: none;
transform: translate3d(0, 0, 0);
height: auto;
position: static;
margin-top: 0;
width: auto;
li {
margin: 0 2.5em 0 0;
padding: 0;
cursor: pointer;
white-space: nowrap;
color: $alternative-color;
.nav-link {
padding: 1em 0;
&:hover {
color: $primary-color;
}
}
&:last-child {
margin-right: 0;
}
}
}
}
}
}
}
}