<html lang="en" >
<head>
<meta charset="UTF-8">
<title>لینک های بسیار پیشرفته با استفاده از CSS</title>
<link href="https://fonts.googleapis.com/css?family=Maven+Pro|Yrsa" rel="stylesheet">
</head>
<style>
.draw-outline {
display: inline-block;
padding: 16px 28px;
border: 2px black solid;
text-align: center;
text-decoration: none;
color: black;
position: relative;
transition: border-color 0.35s ease-in-out;
z-index: 1;
}
.draw-outline:before, .draw-outline:after {
content: '';
position: absolute;
width: 0px;
height: 0px;
box-sizing: content-box;
z-index: -1;
transition: transform 0.25s ease-in-out;
transition: transform 0.25s ease-in-out;
transition: transform 0.25s ease-in-out, transform 0.25s ease-in-out;
padding-left: 2px;
}
.draw-outline:before {
top: -2px;
left: -2px;
border-top: 2px transparent solid;
border-right: 2px transparent solid;
}
.draw-outline:after {
bottom: -2px;
right: -2px;
border-bottom: 2px transparent solid;
border-left: 2px transparent solid;
}
.draw-outline:hover {
color: #37b2b2;
transition: color 0.35s ease-in-out, border-color 0.35s ease-in-out;
border-color: black;
animation: outline-reset 0.35s 1 forwards;
animation: outline-reset 0.35s 1 forwards;
}
.draw-outline:hover:before {
animation: top-right-border 0.75s 1 0.35s forwards;
animation: top-right-border 0.75s 1 0.35s forwards;
}
.draw-outline:hover:after {
animation: bottom-left-border 0.75s 1 1.1s forwards;
animation: bottom-left-border 0.75s 1 1.1s forwards;
}
.draw-outline--tandem:hover:after {
animation: bottom-left-border 0.75s 1 0.35s forwards;
animation: bottom-left-border 0.75s 1 0.35s forwards;
}
.draw-outline:active:before, .draw-outline:active:after {
transform: scale(1.05);
transform: scale(1.05);
}
@-webkit-keyframes outline-reset {
0% {
border-color: black;
}
100% {
border-color: transparent;
}
}
@keyframes outline-reset {
0% {
border-color: black;
}
100% {
border-color: transparent;
}
}
@-webkit-keyframes top-right-border {
0% {
border-color: #37b2b2;
width: 0px;
height: 0;
}
50% {
width: 100%;
height: 0;
}
100% {
border-color: #37b2b2;
width: 100%;
height: 100%;
}
}
@keyframes top-right-border {
0% {
border-color: #37b2b2;
width: 0px;
height: 0;
}
50% {
width: 100%;
height: 0;
}
100% {
border-color: #37b2b2;
width: 100%;
height: 100%;
}
}
@-webkit-keyframes bottom-left-border {
0% {
border-color: #37b2b2;
width: 0px;
height: 0;
}
50% {
width: 100%;
height: 0;
}
100% {
border-color: #37b2b2;
width: 100%;
height: 100%;
}
}
@keyframes bottom-left-border {
0% {
border-color: #37b2b2;
width: 0px;
height: 0;
}
50% {
width: 100%;
height: 0;
}
100% {
border-color: #37b2b2;
width: 100%;
height: 100%;
}
}
.swipe-fill {
display: inline-block;
padding: 16px 28px;
border: 2px black solid;
text-align: center;
text-decoration: none;
color: black;
background: white;
position: relative;
overflow: hidden;
transition: color 0.25s ease-in-out, border-color 0.25s ease-in-out;
z-index: 1;
border-radius: 0px;
}
.swipe-fill:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #666;
transition: transform 0.25s ease-in-out;
transition: transform 0.25s ease-in-out;
transition: transform 0.25s ease-in-out, transform 0.25s ease-in-out;
z-index: -1;
}
.swipe-fill--up:before {
transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0);
}
.swipe-fill--down:before {
transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0);
}
.swipe-fill--left:before {
transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
}
.swipe-fill--right:before {
transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
}
.swipe-fill:hover {
color: white;
border: 2px black solid;
}
.swipe-fill:hover:before {
transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.box-fill {
display: inline-block;
padding: 16px 28px;
border: 2px black solid;
text-align: center;
text-decoration: none;
color: black;
position: relative;
overflow: hidden;
background: white;
transition: color 0.35s ease-in-out;
z-index: 1;
border-radius: 0px;
}
.box-fill:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #666;
transition: opacity 0.35s ease-in-out, transform 0.35s ease-in-out;
transition: transform 0.35s ease-in-out, opacity 0.35s ease-in-out;
transition: transform 0.35s ease-in-out, opacity 0.35s ease-in-out, transform 0.35s ease-in-out;
transform: scale(0);
transform: scale(0);
z-index: -1;
opacity: 0;
}
.box-fill:hover {
color: white;
}
.box-fill:hover:before {
transform: scale(1);
transform: scale(1);
opacity: 1;
}
.box-fill--out {
color: white;
}
.box-fill--out:before {
transform: scale(1);
transform: scale(1);
opacity: 1;
}
.box-fill--out:hover {
color: black;
}
.box-fill--out:hover:before {
transform: scale(0);
transform: scale(0);
opacity: 0;
}
.cross-fade {
display: inline-block;
padding: 16px 28px;
border: 2px black solid;
text-align: center;
text-decoration: none;
color: black;
position: relative;
overflow: hidden;
transition: color 0.75s ease-in-out;
z-index: 1;
border-radius: 0px;
}
.cross-fade:before, .cross-fade:after {
content: '';
position: absolute;
top: 0;
left: -25%;
width: 150%;
height: 100%;
background: rgba(102, 102, 102, 0.5);
transition: transform 0.75s ease-in-out;
transition: transform 0.75s ease-in-out;
transition: transform 0.75s ease-in-out, transform 0.75s ease-in-out;
z-index: -1;
}
.cross-fade:before {
transform: translate3d(100%, 0, 0) skew(20deg);
transform: translate3d(100%, 0, 0) skew(20deg);
transform-origin: 0 0;
transform-origin: 0 0;
}
.cross-fade:after {
transform: translate3d(-100%, 0, 0) skew(20deg);
transform: translate3d(-100%, 0, 0) skew(20deg);
transform-origin: 100% 100%;
transform-origin: 100% 100%;
}
.cross-fade:hover {
color: white;
}
.cross-fade:hover:before, .cross-fade:hover:after {
transform: translate3d(0, 0, 0) skew(20deg);
transform: translate3d(0, 0, 0) skew(20deg);
}
a:not([class]) {
text-shadow: white 1px 0px 0px, white 0.540302px 0.841471px 0px, white -0.416147px 0.909297px 0px, white -0.989992px 0.14112px 0px, white -0.653644px -0.756802px 0px, white 0.283662px -0.958924px 0px, white 0.96017px -0.279415px 0px;
text-decoration: none;
background-image: linear-gradient(#37b2b2 50%, #37b2b2 50%);
background-size: 10000px 1px;
color: #37b2b2;
background-repeat: no-repeat;
background-position: 0 1em;
background-position: -10000px 1em;
}
a:not([class]):hover {
background-position: 0 1em;
transition: background-position 2s ease-in-out;
}
body {
font-family: sans-serif;
max-width: 1000px;
margin: 0 auto;
padding: 30px;
font-family: 'Maven Pro', sans-serif;
text-align: center;
}
h1 {
font-size: 2.8rem;
}
h2 {
font-size: 2rem;
}
h1, h2 {
font-family: 'Yrsa', cursive;
}
p {
font-size: 1.25rem;
line-height: 1.75rem;
}
hr {
margin: 40px auto;
max-width: 100px;
display: block;
height: 1px;
border: 0;
border-top: 1px solid #ccc;
padding: 0;
}
.pen-intro {
text-align: center;
}
.button-container a {
margin: 0 10px;
}
</style>
<body>
<header class="pen-intro">
<h1 dir='rtl'>لینک های بسیار پیشرفته با استفاده از CSS</h1>
<p dir='rtl'>لینک هایی که می بینید به زیبایی هر چه تمام تر و با استفاده از CSS طراحی شده اند. هیچ کد جاوا اسکریپتی در طراحی آن ها به کار برده نشده است و همین موضوع جذابیت آن را دو چندان می کند</p>
</header>
<hr />
<div class="button-container">
<h2>Draw Outline</h2>
<a href="#" class="draw-outline">Single Outline</a>
<a href="#" class="draw-outline draw-outline--tandem">Tandem Outline</a>
</div>
<hr />
<div class="button-container">
<h2>Swipe Fill</h2>
<a href="#" class="swipe-fill swipe-fill--up">Swipe Fill Up</a>
<a href="#" class="swipe-fill swipe-fill--down">Swipe Fill Down</a>
<a href="#" class="swipe-fill swipe-fill--left">Swipe Fill Left</a>
<a href="#" class="swipe-fill swipe-fill--right">Swipe Fill Right</a>
</div>
<hr />
<div class="button-container">
<h2>Box Fill</h2>
<a href="#" class="box-fill">Box Fill In</a>
<a href="#" class="box-fill box-fill--out">Box Fill Out</a>
</div>
<hr />
<div class="button-container">
<h2>Cross Fade</h2>
<a href="#" class="cross-fade">Button One</a>
</div>
<hr />
</body>
</html>
Output
You can jump to the latest bin by adding /latest
to your URL
Keyboard Shortcuts
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + ] | Indents selected lines |
ctrl + [ | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |