Skip to content

Instantly share code, notes, and snippets.

@NiallJoeMaher
Created September 5, 2015 13:41
Show Gist options
  • Save NiallJoeMaher/23f9371d61575a472d16 to your computer and use it in GitHub Desktop.
Save NiallJoeMaher/23f9371d61575a472d16 to your computer and use it in GitHub Desktop.
3D Buttons, CSS only!
<html lang="en" class="no-js">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>3d CSS Buttons</title>
<link rel="stylesheet" type="text/css" href="css/main.css" />
<script src="js/modernizr.custom.js"></script>
</head>
<body>
<div class="container">
<section class="3d-buttons">
<h2>Creative 3D CSS buttons</h2>
<p class="btn_perspective">
<button class="btn btn-3d btn-3da">Submit</button>
</p>
<p class="btn_perspective">
<button class="btn btn-3d btn-3db">Submit</button>
</p>
<br />
<p class="btn_perspective">
<button class="btn btn-3d btn-3dc">Submit</button>
</p>
<p class="btn_perspective">
<button class="btn btn-3d btn-3dd">Submit</button>
</p>
</section>
</div>
<!-- END container -->
</body>
</html>
*,
*:after,
*:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
body,
html {
font-size: 100%;
padding: 0;
margin: 0;
height: 100%;
}
body {
font-family: Arial, sans-serif;
background: #0e939d;
}
a {
color: #999;
text-decoration: none;
}
a:hover,
a:active {
color: #555;
}
.container {
height: 100%;
position: relative;
}
.container > section {
margin: 0 auto;
padding: 6em 3em;
text-align: center;
color: #fff;
}
h2 {
color: #fff;
margin: 20px;
text-align: center;
text-transform: uppercase;
}
/* General button styles */
.btn {
border: none;
position: relative;
background: none;
cursor: pointer;
padding: 28px 90px;
display: inline-block;
text-transform: uppercase;
margin: 15px 30px;
color: inherit;
letter-spacing: 2px;
font-size: 1em;
outline: none;
-moz-transition: all 0.4s;
-webkit-transition: all 0.4s;
transition: all 0.4s;
}
.btn:after {
content: '';
position: absolute;
z-index: -1;
-webkit-transition: all 0.4s;
-moz-transition: all 0.4s;
transition: all 0.4s;
}
.btn_perspective {
-webkit-perspective: 800px;
-moz-perspective: 800px;
perspective: 800px;
display: inline-block;
}
.btn-3d {
display: block;
background: #5cbcf6;
outline: 1px solid transparent;
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.btn-3d:active {
background: #55b7f3;
}
.btn-3da:after {
width: 100%;
height: 42%;
left: 0;
top: -40%;
background: #53a6d7;
-webkit-transform-origin: 0% 100%;
-webkit-transform: rotateX(90deg);
-moz-transform-origin: 0% 100%;
-moz-transform: rotateX(90deg);
transform-origin: 0% 100%;
transform: rotateX(90deg);
}
.btn-3da:hover {
-webkit-transform: rotateX(-360deg);
-moz-transform: rotateX(-360deg);
-ms-transform: rotateX(-360deg);
transform: rotateX(-360eg);
}
.btn-3db:after {
width: 100%;
height: 40%;
left: 0;
top: 100%;
background: #53a6d7;
-webkit-transform-origin: 0% 0%;
-webkit-transform: rotateX(-90deg);
-moz-transform-origin: 0% 0%;
-moz-transform: rotateX(-90deg);
-ms-transform-origin: 0% 0%;
-ms-transform: rotateX(-90deg);
transform-origin: 0% 0%;
transform: rotateX(-90deg);
}
.btn-3db:hover {
-webkit-transform: rotateX(35deg);
-moz-transform: rotateX(35deg);
-ms-transform: rotateX(35deg);
transform: rotateX(35deg);
}
.btn-3dc:after {
width: 20%;
height: 100%;
left: -20%;
top: 0;
background: #53a6d7;
-webkit-transform-origin: 100% 0%;
-webkit-transform: rotateY(-90deg);
-moz-transform-origin: 100% 0%;
-moz-transform: rotateY(-90deg);
-ms-transform-origin: 100% 0%;
-ms-transform: rotateY(-90deg);
transform-origin: 100% 0%;
transform: rotateY(-90deg);
}
.btn-3dc:hover {
-webkit-transform: rotateY(25deg);
-moz-transform: rotateY(25deg);
-ms-transform: rotateY(25deg);
transform: rotateY(25deg);
}
.btn-3dd:after {
width: 20%;
height: 100%;
left: 100%;
top: 0;
background: #53a6d7;
-webkit-transform-origin: 0% 0%;
-webkit-transform: rotateY(90deg);
-moz-transform-origin: 0% 0%;
-moz-transform: rotateY(90deg);
-ms-transform-origin: 0% 0%;
-ms-transform: rotateY(90deg);
transform-origin: 0% 0%;
transform: rotateY(90deg);
}
.btn-3dd:hover {
-webkit-transform: rotateY(-15deg);
-moz-transform: rotateY(-15deg);
-ms-transform: rotateY(-15deg);
transform: rotateY(-15deg);
}
@media screen and (max-width:480px) {
.container {
font-size: 1.2em;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment