cssAudio - Activefile-genericCSS - ActiveGeneric - ActiveHTML - ActiveImage - ActiveJS - ActiveSVG - ActiveText - Activefile-genericVideo - ActiveLovehtmlicon-new-collectionicon-personicon-teamlog-outoctocatpop-outspinnerstartv

Pen Settings

CSS Base

Vendor Prefixing

Add External CSS

These stylesheets will be added in this order and before the code you write in the CSS editor. You can also add another Pen here, and it will pull the CSS from it. Try typing "font" or "ribbon" below.

Quick-add: + add another resource

Add External JavaScript

These scripts will run in this order and before the code in the JavaScript editor. You can also link to another Pen here, and it will run the JavaScript from it. Also try typing the name of any popular library.

Quick-add: + add another resource

Code Indentation

     

Save Automatically?

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

            
              .branch.no-animation
	.node#facebook
		.fa.fa-facebook.share-alt-icon
	.stem	
.branch.no-animation
	.node#linkedin
		.fa.fa-linkedin.share-alt-icon
	.stem
.branch.no-animation
	.node#google-plus
		.fa.fa-google-plus.share-alt-icon
	.stem	
.branch.no-animation
	.node#pinterest
		.fa.fa-pinterest.share-alt-icon
	.stem
.branch.no-animation
	.node#twitter
		.fa.fa-twitter.share-alt-icon
	.stem
.main-button.share-alt
	.fa.fa-share-alt.fa-2x

.container.no-animation
	.segment
		.fa.fa-snapchat-ghost.social-icon
	.segment
		.fa.fa-vine.social-icon
	.segment
		.fa.fa-instagram.social-icon
	.segment
		.fa.fa-whatsapp.social-icon
	
.main-button.social
	.fa.fa-ellipsis-h.fa-2x
	
.float-circle#flickr
	.fa.fa-flickr.share-icon
.float-circle#youtube
	.fa.fa-youtube-play.share-icon
.float-circle#dropbox
	.fa.fa-dropbox.share-icon

.main-button.share
	.fa.fa-share.fa-2x


            
          
!
            
              /* Variables */
$background-grey: #292929;
$dropbox: #007ee5;
$facebook: #3b5998;
$flickr: #ff0084;
$google-plus: #dd4b39;
$linkedin: #007bb5;
$instagram: #e95950;
$pinterest: #cb2027;
$snapchat: #fffc00;
$twitter: #55acee;
$vine: #00bf8f;
$whatsapp: #4dc247;
$youtube: #bb0000;

/* Mixins */
@mixin flex-container($display, $direction, $wrap, $justify, $items, $content) {
	display: $display;
	flex-direction: $direction;
	flex-wrap: $wrap;
	justify-content: $justify;
	align-items: $items;
	align-content: $content;
	-webkit-display: "-webkit-#{$display}";
	-webkit-flex-direction: $direction;
	-webkit-flex-wrap: $wrap;
	-webkit-justify-content: $justify;
	-webkit-align-items: $items;
	-webkit-align-content: $content;
}

@mixin flex-item($align-self: auto, $basis: auto, $grow: 0, $order: 0) {
	flex-basis: $basis;
	flex-grow: $grow;
	order: $order;
	align-self: $align-self;
	-webkit-flex-basis: $basis;
	-webkit-flex-grow: $grow;
	-webkit-order: $order;
	-webkit-align-self: $align-self;
}

@mixin position($position, $top: null, $right: null, $bottom: null, $left: null) {
	position: $position;
	top: $top;
	right: $right;
	bottom: $bottom;
	left: $left;
}

@mixin absolute($args...) {
	@include position(absolute, $args...);
}

@mixin relative($args...) {
	@include position(relative, $args...);
}

@mixin fixed($args...) {
	@include position(fixed, $args...);
}

@mixin keyframes($animation-name) {
	@-webkit-keyframes #{$animation-name} {
		@content;
	}
	@-moz-keyframes #{$animation-name} {
		@content;
	}
	@-ms-keyframes #{$animation-name} {
		@content;
	}
	@-o-keyframes #{$animation-name} {
		@content;
	}
	@keyframes #{$animation-name} {
		@content;
	}
}

@mixin animation ($delay, $duration, $animation, $direction: forwards, $fillmode: forwards) {
	-webkit-animation-delay: $delay;
	-webkit-animation-duration: $duration;
	-webkit-animation-name: $animation;
	-webkit-animation-fill-mode: $fillmode;
	-webkit-animation-direction: $direction;
	-moz-animation-delay: $delay;
	-moz-animation-duration: $duration;
	-moz-animation-name: $animation;
	-moz-animation-fill-mode: $fillmode;
	-moz-animation-direction: $direction;
	animation-delay: $delay;
	animation-duration: $duration;
	animation-name: $animation;
	animation-fill-mode: $fillmode;
	animation-direction: $direction;
}

@mixin opacity($opacity) {
  opacity: $opacity;
  $opacity-ie: $opacity * 100;
  filter: alpha(opacity=$opacity-ie); //IE8
}

@mixin size($width, $height: $width) {
	width: $width;
	height: $height;
}

@mixin transition($args...) {
	-webkit-transition: $args;
	-moz-transition: $args;
	-ms-transition: $args;
	-o-transition: $args;
	transition: $args;
}

@mixin transition-delay($delay) {
	-webkit-transition-delay: $delay;
	-moz-transition-delay: $delay;
	-ms-transition-delay: $delay;
	-o-transition-delay: $delay;
	transition-delay: $delay;
}

// generic transform
@mixin transform($transforms) {
	-moz-transform: $transforms;
	-o-transform: $transforms;
	-ms-transform: $transforms;
	-webkit-transform: $transforms;
	transform: $transforms;
}

//transform origin
@mixin transform-origin ($origin) {
	moz-transform-origin: $origin;
	-o-transform-origin: $origin;
	-ms-transform-origin: $origin;
	-webkit-transform-origin: $origin;
	transform-origin: $origin;
}

/* Typical elements */
* {
	box-sizing: border-box;
}

html,
body {
	background: $background-grey;
	border: 0;
	margin: 0px;
	height: 100%;
	width: 100%;
}

/* Classes by name A-Z */
.branch {
	@include flex-container(flex, column, nowrap, flex-end, center, stretch);
	@include absolute($top: calc(50% - 100px), $left: calc(25% - 25px));
	@include size(50px, 100px);
	@include transform(rotate(0deg));
	@include transform-origin(center bottom);
	@include transition(all .5s);
	.node{
		@include transition(height .5s, width .5s);
		@include transition-delay(.5s);
	}
	.stem {
		@include transition(height .5s);
		@include transition-delay(.5s);	
	}
	&.open {	
		@include transition-delay(.5s);
			&:nth-child(1) {
				@include transform(rotate(-90deg));
			}
			&:nth-child(2) {
				@include transform(rotate(90deg));
			}
			&:nth-child(3) {
				@include transform(rotate(-45deg));
			}
			&:nth-child(4) {
				@include transform(rotate(45deg));
			}
		.stem {
			@include transition-delay(0s);
			height: 50px;
		}
		.node {
			@include transition-delay(0s);
			height: 50px;
			width: 50px;
			&:hover{
				border-width: 6px;
			}
			&:active{
				@include transform(scale(1.03));
			}
		}
	}
	&.no-animation {
		animation: none;
	}
}

.container {
	@include flex-container(flex, column, nowrap, flex-end, center, stretch);
	@include absolute($top: 50%, $left: 50%);	
	@include size(210px, 110px);
	@include transform(translate3d(-50%, -100%, 0) rotate(0deg));
	overflow: hidden;
	&.no-animation {
		animation: none;
	}
	&.open {
		.segment{
			cursor: pointer;
			&:nth-child(1) {
				@include transform(rotate(0deg) scale(1) translate3d(0,0,0));
			}
			&:nth-child(2) {
				@include transform(rotate(45deg) scale(1) translate3d(0,0,0));
			}
			&:nth-child(3) {	
				@include transform(rotate(90deg) scale(1) translate3d(0,0,0));
			}
			&:nth-child(4) {
				@include transform(rotate(135deg) scale(1) translate3d(0,0,0));
			}
		}		
	}
}

.fa {
	@include relative($top: 50%, $left: 50%);
	@include transform(translate3d(-50%, -50%, 0) rotate(0deg));
	// Share-alt Icons
	&.fa-facebook{
		@include transform(translate3d(-50%, -50%, 0) rotate(90deg));
	}
	&.fa-google-plus{
		@include transform(translate3d(-50%, -50%, 0) rotate(45deg));	
	}
	&.fa-pinterest{
		@include transform(translate3d(-50%, -50%, 0) rotate(-45deg));	
	}
	&.fa-linkedin{
		@include transform(translate3d(-50%, -50%, 0) rotate(-90deg));	
	}
	// Social Icons
	&.fa-vine {
		@include transform(translate3d(-50%, -50%, 0) rotate(-45deg));
	}
	&.fa-instagram {
		@include transform(translate3d(-50%, -50%, 0) rotate(-90deg));
	}
	&.fa-whatsapp{
		@include transform(translate3d(-50%, -50%, 0) rotate(-135deg));
	}
}

.float-circle {
	@include absolute($top: 50%, $left: 75%);
	@include transform(translateX(-50%) translateY(-50%));
	@include size(50px, 50px);
	@include transition(transform .5s, background-color .5s, opacity .2s);
	background-color: #FFF;
	border-radius: 50%;
	&.open {
		cursor: pointer;
		&#flickr {
			background-color: $flickr;
			@include transform(translate3d(-175%, -150%, 0));
		}
		&#youtube {
			background-color: $youtube;
			@include transform(translate3d(-50%, -200%, 0));
		}
		&#dropbox {
			background-color: $dropbox;
			@include transform(translate3d(75%, -150%, 0));
		}
		&:hover {
			@include opacity(.9);
		}
		&:active {
			@include opacity(.75);
		}
	}
	&.no-animation{
		animation: none;
	}
}

.main-button {
	@include transition(all .5s);
	@include size(75px, 75px);
	background-color: #FFF;
	border-radius: 50%;
	color: #000;
	cursor: pointer;
	overflow: hidden;
}

.node {
	@include flex-item(auto, auto, 0, 0);
	@include size(10px);
	background-color: $background-grey;
	border-radius: 50%;
	border: solid 5px;
	&#facebook {
		border-color: $facebook;	
	}
	&#google-plus{
		border-color: $google-plus;	
	}
	&#twitter{
		border-color: $twitter;
	}
	&#pinterest {
		border-color: $pinterest;
	}
	&#linkedin{
		border-color: $linkedin;
	}
}

.segment {
	@include absolute($top: calc(100% - 100px), $left: calc(50% - 100px));
	@include transform(rotate(0deg) scale(0.1) translate3d(0,0,0));
	@include transform-origin(50% 100%);
	@include transition(transform .5s, color .2s);
	@include opacity(1);
	@include size(200px, 100px);
	border-radius: 100px 100px 0px 0px;
	color: #000;
	overflow: hidden;
	&:nth-child(1) {
		background: $snapchat;
	}
	&:nth-child(2){
		background: $vine;
	}
	&:nth-child(3){
		background: $instagram;
	}
	&:nth-child(4){
		background: $whatsapp;	
	}
	&:hover {
		color: #333;
	}
	&:active{
		color: #666;
	}
}

.share {
	@include absolute($top: 50%, $left: 75%);
	@include transform(translate3d(-50%, -50%, 0));
}

.share-icon{
	color: #FFF;
	font-size: 25px;
}

.share-alt {
	@include absolute($top: 50%, $left: 25%);
	transform: translateX(-50%) translateY(-50%);
}

.share-alt-icon {
	font-size: 25px;
	color: #FFF;
}

.social {
	@include absolute($top: 50%, $left: 50%);
	transform: translateX(-50%) translateY(-50%);
}

.social-icon {
	margin: 23px 0 0 -65px;
	font-size: 45px;
}

.stem {
	@include flex-item(auto, auto, 0, 1);
	@include size(4px, 0px);
	background-color: #FFF;
}

            
          
!
            
              $('.share-alt').on('click', function(e){
	$(".branch").removeClass("no-animation");
	$('.branch').toggleClass("open");
});

$('.social').on('click', function(e){
	$(".container").removeClass("no-animation");
	$(".container").toggleClass("open");
});

$('.share').on('click', function(e){
	$(".float-circle").removeClass("no-animation");
	$(".float-circle").toggleClass("open");
});

            
          
!
999px
Close

Asset uploading is a PRO feature.

As a PRO member, you can drag-and-drop upload files here to use as resources. Images, Libraries, JSON data... anything you want. You can even edit them anytime, like any other code on CodePen.

Go PRO

Loading ..................

Console