Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save anonymous/eed7c2f6361a57515263 to your computer and use it in GitHub Desktop.
Save anonymous/eed7c2f6361a57515263 to your computer and use it in GitHub Desktop.
Pure CSS Questionnaire Concept (hover items)
<div class="demo">
<div class="demo__content">
<h2 class="demo__heading">What do you need help with?</h2>
<div class="demo__elems">
<div class="demo__elem demo__elem-1">With advertising online</div>
<div class="demo__elem demo__elem-2">With a website</div>
<div class="demo__elem demo__elem-3">I need help with both</div>
<span class="demo__hover demo__hover-1"></span>
<span class="demo__hover demo__hover-2"></span>
<span class="demo__hover demo__hover-3"></span>
<div class="demo__highlighter">
<div class="demo__elems">
<div class="demo__elem">With advertising online</div>
<div class="demo__elem">With a website</div>
<div class="demo__elem">I need help with both</div>
</div>
</div>
<div class="demo__examples">
<div class="demo__examples-nb">
<div class="nb-inner">
<div class="example example-adv">
<div class="example-adv">
<div class="example-adv__top">
<div class="example-adv__top-search"></div>
</div>
<div class="example-adv__mid"></div>
<div class="example-adv__line"></div>
<div class="example-adv__line long"></div>
</div>
</div>
<div class="example example-web">
<div class="example-web__top"></div>
<div class="example-web__left"></div>
<div class="example-web__right">
<div class="example-web__right-line"></div>
<div class="example-web__right-line"></div>
<div class="example-web__right-line"></div>
<div class="example-web__right-line"></div>
<div class="example-web__right-line"></div>
<div class="example-web__right-line"></div>
</div>
</div>
<div class="example example-both">
<div class="example-both__half example-both__left">
<div class="example-both__left-top"></div>
<div class="example-both__left-mid"></div>
</div>
<div class="example-both__half example-both__right">
<div class="example-both__right-top"></div>
<div class="example-both__right-mid"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="check-out">Check out my other <a href="http://codepen.io/suez/public/" target="_blank">pens</a></p>
@import "compass/css3";
*, *:before, *:after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
$openSans: 'Open Sans', Helvetica, Arial, sans-serif;
html, body {
font-size: 62.5%;
height: 100%;
@media (max-width: 768px) {
font-size: 50%;
}
}
body {
background: #7B00FF;
}
$liHeight: 7rem;
$contentPTop: 22rem;
$trans: 0.4s;
$transFast: 0.2s;
$cub: cubic-bezier(.59,.04,.3,1.43);
@mixin hoverLi($y) {
transform: translateY($y);
.demo__elems {
transform: translateY(0 - $y);
}
}
@mixin notFirst {
.demo__examples {
.example-adv__top,
.example-adv__mid,
.example-adv__line {
transform: translateY(100%);
opacity: 0;
transition: transform $transFast, opacity $transFast;
}
}
}
.demo {
position: absolute;
top: 50%;
left: 50%;
margin-left: -18rem;
margin-top: -25rem;
width: 36rem;
height: 50rem;
padding-top: $contentPTop;
background: #FFFFFF;
box-shadow: 0 0.5rem 5rem rgba(0,0,0,0.4);
font-family: $openSans;
&__content {
position: relative;
height: 100%;
}
&__heading {
font-size: 2.2rem;
line-height: $liHeight;
padding-left: 3rem;
color: #313131;
}
&__elems {
position: relative;
height: 21rem;
}
&__elem {
position: relative;
height: $liHeight;
font-size: 1.8rem;
line-height: $liHeight;
padding-left: 3rem;
border-top: 1px solid #e7e7e7;
}
&__hover {
z-index: 2;
position: absolute;
left: 0;
width: 100%;
height: $liHeight;
cursor: pointer;
&-1 {
top: 0;
&:hover ~ {
.demo__highlighter {
@include hoverLi(0);
}
}
}
&-2 {
top: $liHeight;
&:hover ~ {
.demo__highlighter {
@include hoverLi($liHeight);
}
@include notFirst;
.demo__examples {
.example-web__top,
.example-web__left {
transform: scale(1);
opacity: 1;
transition: transform $trans $transFast, opacity $trans $transFast;
}
.example-web__right-line {
transform: scale(1);
@for $i from 1 through 6 {
&:nth-child(#{$i}) {
transition: transform ($trans) 0.06s * ($i - 1);
}
}
}
}
}
}
&-3 {
top: $liHeight*2;
&:hover ~ {
.demo__highlighter {
@include hoverLi($liHeight*2);
}
@include notFirst;
.demo__examples {
.example-both {
background: #39A5F7;
transition: background-color $trans $transFast;
&__half {
opacity: 1;
transform: scale(1);
transition: transform $trans $transFast, opacity $trans $transFast;
}
}
}
}
}
}
&__highlighter {
z-index: 1;
position: absolute;
top: 0;
left: -1rem;
width: 38rem;
height: $liHeight;
background: #39A5F7;
overflow: hidden;
box-shadow: 0 0.3rem 0.2rem rgba(0,0,0,0.3);
transition: transform 0.5s $cub;
.demo__elems {
position: absolute;
top: 0;
left: 1rem;
transition: transform 0.5s $cub;
}
.demo__elem {
color: #fff;
border: none;
}
}
&__examples {
position: absolute;
top: 0 - $contentPTop - $liHeight;
left: 0;
width: 100%;
height: $contentPTop;
padding: 5.5rem 7rem 0 7rem;
&-nb {
position: relative;
height: 13.5rem;
padding: 0 1.5rem;
border-bottom: 1rem solid #424242;
}
}
}
.nb-inner {
position: relative;
width: 100%;
height: 12.5rem;
border: 0.7rem solid #424242;
overflow: hidden;
}
.example {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
&-adv {
&__top {
height: 2rem;
background: #EFEFEF;
padding: 0.5rem 2rem;
margin-bottom: 2rem;
transition: transform $trans $transFast, opacity $trans $transFast;
&-search {
position: relative;
height: 100%;
background: #fff;
&:after {
content: "";
position: absolute;
top: 0;
right: 0;
width: 2.5rem;
height: 100%;
background: #02ADF6;
}
}
}
&__mid {
position: relative;
width: 13.6rem;
height: 3.5rem;
background: #FFF7BD;
margin: 0 auto 0.7rem;
transition: transform $trans $transFast, opacity $trans $transFast;
&:before,
&:after {
content: "";
position: absolute;
left: 1rem;
height: 0.7rem;
}
&:before {
top: 0.6rem;
width: 9rem;
background: #02ADF6;
}
&:after {
bottom: 0.6rem;
width: 11.6rem;
background: #fff;
}
}
&__line {
height: 0.5rem;
background: #EFEFEF;
width: 6.8rem;
margin-left: 2rem;
margin-bottom: 0.7rem;
transition: transform $trans $transFast, opacity $trans $transFast;
&.long {
width: 13.6rem;
}
}
}
&-web {
padding: 1.5rem 2rem 0;
font-size: 0;
&__top {
background: #EF4239;
width: 100%;
height: 1.5rem;
margin-bottom: 0.5rem;
transition: transform $transFast;
transform: translateY(-5rem);
}
&__left {
display: inline-block;
width: 6.5rem;
height: 7rem;
background: #C6C6C6;
margin-right: 0.6rem;
transition: transform $transFast, opacity $transFast;
transform: scale(0.7);
opacity: 0;
}
&__right {
display: inline-block;
width: 6.5rem;
height: 7rem;
&-line {
width: 100%;
height: 0.8rem;
background: #EFEFEF;
margin-bottom: 0.4rem;
transform: translateX(10rem);
@for $i from 1 through 6 {
&:nth-child(#{$i}) {
transition: transform ($transFast - 0.2s) 0.04s * ($i - 1);
}
}
}
}
}
&-both {
padding: 1rem 1rem;
font-size: 0;
transition: background-color $transFast;
&__half {
position: relative;
display: inline-block;
width: 7.2rem;
height: 100%;
padding: 0.5rem;
background: #fff;
transition: transform $transFast, opacity $transFast;
transform: scale(0.8);
opacity: 0;
}
&__left {
margin-right: 1.2rem;
padding-top: 3rem;
&-top {
position: absolute;
top: 0;
left: 0;
width: 100%;
background: #EFEFEF;
height: 2.4rem;
padding: 0.6rem 0.5rem;
&:before {
content: "";
display: inline-block;
width: 70%;
height: 100%;
background: #fff;
}
&:after {
content: "";
display: inline-block;
width: 30%;
height: 100%;
background: #02ADF6;
}
}
&-mid {
height: 3.5rem;
background: #FFF7BD;
margin-bottom: 0.4rem;
}
&:before,
&:after {
content: "";
display: block;
width: 6.2rem;
height: 0.7rem;
background: #EFEFEF;
}
&:before {
position: absolute;
bottom: 0.5rem;
left: 0.5rem;
}
&:after {
width: 3.6rem;
}
}
&__right {
&-top {
width: 100%;
height: 1.5rem;
background: #EF4239;
margin-bottom: 0.5rem;
}
&-mid {
width: 100%;
height: 4rem;
background: #C6C6C6;
margin-bottom: 0.4rem;
}
&:before,
&:after {
content: "";
display: block;
width: 6.2rem;
height: 0.7rem;
background: #EFEFEF;
}
&:before {
position: absolute;
bottom: 0.5rem;
left: 0.5rem;
}
}
}
}
.check-out {
position: absolute;
bottom: 0.5rem;
right: 0.5rem;
font-size: 1.5rem;
color: #fff;
font-family: $openSans;
a {
color: #4DDBFC;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment