• 1352
  • 0
  • Адаптировал: irbees2008
  • Источник:
  • Уровень сложности исполнения: нужны навыки css hmlt
  • Демо:

На сей раз я нашел интересное решение для ссылок в текстовом потоке. Эти привязки несколько ограничены, потому что они окружены другим текстом, и таким образом, мы не можем использовать эффекты из-за ограниченного окружающего пространства. Но есть некоторые интересные вещи, которые мы можем сделать .

Итак приступим
1.Скачать исходник Вы не можете скачивать файлы с нашего сайта ,рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
2.Вот все варианты ссылок с классами в демо они идут в том же порядке

Код:
<section class="link-fadeinbg">
<p>It had been my luck to live en famille with some <a href="#">herder</a> Lapps once before in <a href="#">North-Western Norway</a>. I had some elk shooting and some fishing up there, and I came across the tribe one <a href="#">day poaching</a> red char from one of my own hired lakes.</p>
</section>
<section class="link-slideup">
<p>When we actually did get under weigh, our outfit consisted of one inferior <a href="#">double-barrelled</a> 12-bore shot-gun by an anonymous maker, one good Marlin ’45 repeating <a href="#">rifle</a> carrying a long bullet, a small assortment of tinned foods and loaded <a href="#">cartridges</a>...</p>
</section>
<section class="link-slideright">
<p>It was these photographs which suggested going to see the Lapp in his own domains. The <a href="#">map</a> showed the position of <a href="#">Lapland</a> in large letters, and for the sake of definiteness we made up our minds to cross it from <a href="#">north</a> to south...</p>
</section>
<section class="link-scaleup">
<p>Drawing from our own ignorance, and from the united ignorance of <a href="#">others</a> (most freely and generously bestowed), we mapped out the details of the <a href="#">campaign</a> with glibness and ease. At <a href="#">Vardö</a> we were to purchase furs to wear and horses to ride.</p>
</section>
<section class="link-scaleupbounce">
<p>It is not to be denied, though, that the Novaya Zemblya <a href="#">scheme</a> had its seductions. There was in Vardö harbour a weird, clumsy craft of the type <a href="#">locally</a> known as “yot,” which had <a href="#">visited</a> that island many times with a crew of hunters. </p>
</section>
<section class="link-scaledown">
<p>As regards the commissariat, that we decided would be simple also. Reindeer meat, <a href="#">salmon</a>, rye bread, milk, cheese, and butter would be always procurable from the natives. And besides, we should <a href="#">shoot</a> far <a href="#">more game</a> than we could possibly use for the pot.</p>
</section>
<section class="link-flip">
<p>The few tins of <a href="#">provisions</a> we did take were mainly to serve as luxuries. For instance, we had quite a large <a href="#">supply</a> of foie gras and larks in aspic.</p>
<p>I had a vivid recollection of how the last tin of that <a href="#">pâté de foie gras</a> went.</p>
</section>
<section class="link-border">
<p>With these hints, then, at our initial <a href="#">ignorance</a> of what lay beyond, let me pass on to Vardö, which was the real starting-point of both our plans and our journey. The <a href="#">Windward</a> made an easy <a href="#">voyage</a> of it on the whole up to there, and although she carried away her main-topsail yard...</p>
</section>
<section class="link-skewed">
<p>Inside Vardö harbour walls, then, to a mooring we came, and the <a href="#">smells</a> of the place closed round us and took possession. Bobbling about on the <a href="#">harbour</a> swell around us were some two hundred vessels of strange <a href="#">Northern</a> rig, and almost all connected with the trade in fish. </p>
</section>
<section class="link-textupline">
<p>In the <a href="#">harbour</a>, steamers from France, and <a href="#">Hamburg</a>, and lower Norway, load bales of the dried cod, which will carry the <a href="#">aroma</a> of Vardö as far as Bremen, Brest, and St. Petersburg.</p>
</section>
<section class="link-tipoverlay">
<p>Once the town was a strong place, but the star-shaped fort, which was built in 1735, is to-day obsolete, though <a href="http://en.wikipedia.org/wiki/Field_gun">field-guns</a> and some breech-loaders on slides still grin through the <a href="http://en.wikipedia.org/wiki/Embrasure">embrasures</a>, ...</p>
</section>
<section class="link-arrow">
<p>There are other towns of <a href="#">Norway</a> given up to the cult of the cod, but nowhere is it so entirely the one staple of commerce as in this ancient <a href="#">settlement</a> so far within the <a href="#">Arctic Circle</a>. The tail of the Gulf Stream keeps its climate equable.</p>
</section>
<section class="link-curtain">
<p>But the <a href="#">summer</a> is the time when <a href="#">commerce</a> bristles. It is then that the larger merchants toil to make their wealth; and when the lamps begin to kindle in the windows, they take the mail <a href="#">steamers</a> and go away to follow the retiring sun.</p>
</section>
<section class="link-braces">
<p>Now <a href="#">Vardö</a> was not what we had come so far to see, or smell. We wanted to get started on our travel in <a href="#">Arctic Lapland</a> as quickly as might be; and as soon as the whale-boat had set us ashore amongst the <a href="#">fish litter</a> on one of the wharves, ...</p>
</section>
<section class="link-textfall">
<p>In the first instance the <a href="#" data-dummy="horse-bubble">horse-bubble</a> was pricked once and for all. Lapland, it appeared, was largely made up of <a href="#" data-dummy="swamps">swamps</a> and lakes and rivers, and we were gravely informed that the horse was not a <a href="#" data-dummy="navigable animal">navigable animal</a>.</p>
</section>
<section class="link-svgline">
<p>The men of the town, and the women, gut the fish, and leave the <a href="#">entrails<svg class="link-svgline"><use xlink:href="#svg_line"></svg></a> to rot in the streets, or under the wharfs, or in the harbour water; and then the <a href="#">carcasses<svg class="link-svgline"><use xlink:href="#svg_line"></svg></a> are carried to the outskirts and <a href="#">other things<svg class="link-svgline"><use xlink:href="#svg_line"></svg></a> of the town, and hung on endless racks of wood to shrivel, ...</p>
</section>
<section class="link-svgmarker">
<p>In winter, when the <a href="#">snow crust<svg class="link-svgline"><use xlink:href="#svg_marker"></svg></a> hardened, and the rivers and the lakes wereroofed with massive ice, then movement about the country was a <a href="#">comparatively<svg class="link-svgline"><use xlink:href="#svg_marker"></svg></a> easy thing. There were recognised routes, and the <a href="#">traveller<svg class="link-svgline"><use xlink:href="#svg_marker"></a> could pack himself into one of the boat-like, ...</p>
</section>
<section class="link-textupline">
<p>Excerpts from <a href="#">Through Arctic Lapland</a> by Charles John Cutcliffe Wright Hyne</p>
</section>
каждый вариант завернут в тег section со своим классом.
2. Ну и стили
вот это обязательно для всех вариантов
Код:
section {
position: relative;
z-index: 1; /* needed for setting pseudo-element z-index */
overflow: hidden;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}

section a {
position: relative;
display: inline-block;
outline: none;
color: #404d5b;
vertical-align: bottom;
text-decoration: none;
white-space: nowrap;
}

section a::before,
section a::after {
pointer-events: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-font-smoothing: antialiased;
font-smoothing: antialiased;
}
Ну а из этих стилей выбираем нужный соответсвенно выбранному классу
Код:
/* Fade in background */
.link-fadeinbg {
background: rgba(149,165,166,0.1);
}

.link-fadeinbg a {
border-bottom: 1px solid rgba(52,73,94,0.4);
font-weight: 500;
-webkit-transition: background-color 0.3s, border-color 0.3s;
transition: background-color 0.3s, border-color 0.3s;
}

.link-fadeinbg a:hover,
.link-fadeinbg a:focus {
border-color: rgba(52,73,94,0);
background-color: rgba(52,73,94,0.1);
}

/* Slide up */
.link-slideup {
background: #f9f9f9;
color: #34495e;
}

.link-slideup a {
overflow: hidden;
font-weight: 500;
}

.link-slideup a::before {
position: absolute;
top: 0;
left: 0;
z-index: -1;
width: 100%;
height: 100%;
background-color: rgba(52,73,94,0.2);
content: '';
-webkit-transition: -webkit-transform 0.2s;
transition: transform 0.2s;
-webkit-transform: translateY(95%);
transform: translateY(95%);
}

.link-slideup a:hover::before,
.link-slideup a:focus::before {
-webkit-transform: translateY(0);
transform: translateY(0);
}

/* Slide right */
.link-slideright {
background: rgba(149,165,166,0.3);
}

.link-slideright a {
overflow: hidden;
font-weight: 500;
}

.link-slideright a::before {
position: absolute;
top: 0;
left: 0;
z-index: -1;
width: 100%;
height: 100%;
background: rgba(149,165,166,0.4);
content: '';
-webkit-transition: -webkit-transform 0.3s;
transition: transform 0.3s;
-webkit-transform: scaleY(0.618) translateX(-100%);
transform: scaleY(0.618) translateX(-100%);
}

.link-slideright a:hover::before,
.link-slideright a:focus::before {
-webkit-transform: scaleY(0.618) translateX(0);
transform: scaleY(0.618) translateX(0);
}

/* Scale up bounce */
.link-scaleupbounce {
background: #e74c3c;
color: #fff;
}

.link-scaleupbounce a {
vertical-align: bottom;
font-weight: 500;
}

.link-scaleupbounce a::before {
position: absolute;
top: 0;
left: -5px;
z-index: -1;
box-sizing: content-box;
padding: 0 5px;
width: 100%;
height: 100%;
background-color: #fff;
content: '';
opacity: 0;
-webkit-transition: -webkit-transform 0.2s, opacity 0.2s;
transition: transform 0.2s, opacity 0.2s;
-webkit-transition-timing-function: cubic-bezier(0.25,0.25,0.325,1.39);
transition-timing-function: cubic-bezier(0.25,0.25,0.325,1.39);
-webkit-transform: scale(0);
transform: scale(0);
}

.link-scaleupbounce a:hover::before,
.link-scaleupbounce a:focus::before {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
}

/* Scale up */
.link-scaleup {
background: #34495e;
color: #b4b4b4;
}

.link-scaleup a {
color: #e74c3c;
font-weight: 500;
}

.link-scaleup a::before {
position: absolute;
top: 0;
left: -5px;
z-index: -1;
box-sizing: content-box;
padding: 0 5px;
width: 100%;
height: 100%;
border-radius: 10px;
background-color: #fff;
content: '';
opacity: 0;
-webkit-transition: -webkit-transform 0.2s, opacity 0.2s;
transition: transform 0.2s, opacity 0.2s;
-webkit-transform: scale(0);
transform: scale(0);
}

.link-scaleup a:hover::before,
.link-scaleup a:focus::before {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
}

/* Scale down */
.link-scaledown {
background: rgba(149,165,166,0.5);
}

.link-scaledown a {
color: #293b4c;
font-weight: 500;
-webkit-transition: color 0.3s;
transition: color 0.3s;
}

.link-scaledown a:hover,
.link-scaledown a:focus {
color: #f3f3f3;
}

.link-scaledown a::before {
position: absolute;
top: 0;
left: 0;
z-index: -1;
width: 100%;
height: 100%;
border-radius: 5px;
background-color: rgba(255,255,255,1);
content: '';
opacity: 0;
-webkit-transition: -webkit-transform 0.2s, opacity 0.3s, background-color 0.2s;
transition: transform 0.2s, opacity 0.2s, background-color 0.2s;
-webkit-transform: scale(1.1);
transform: scale(1.1);
}

.link-scaledown a:hover::before,
.link-scaledown a:focus::before {
background-color: rgba(255,255,255,0);
opacity: 1;
-webkit-transform: scaleX(1) scaleY(0.618);
transform: scaleX(1) scaleY(0.618);
}

/* Flip */
.link-flip {
background: rgba(149,165,166,0.2);
}

.link-flip a {
font-weight: 500;
-webkit-transition: color 0.3s;
transition: color 0.3s;
-webkit-perspective: 600px;
perspective: 600px;
-webkit-perspective-origin: 50% 100%;
perspective-origin: 50% 100%;
}

.link-flip a:hover,
.link-flip a:focus {
color: #e74c3c;
}

.link-flip a::before,
.link-flip a::after {
position: absolute;
top: 0;
left: -4px;
z-index: -1;
box-sizing: content-box;
padding: 0 4px;
width: 100%;
height: 100%;
content: '';
}

.link-flip a::before {
background-color: #fff;
-webkit-transition: -webkit-transform 0.2s;
transition: transform 0.2s;
-webkit-transition-timing-function: cubic-bezier(0.7,0,0.3,1);
transition-timing-function: cubic-bezier(0.7,0,0.3,1);
-webkit-transform: rotateX(90deg);
transform: rotateX(90deg);
-webkit-transform-origin: 50% 100%;
transform-origin: 50% 100%;
}

.link-flip a:hover::before,
.link-flip a:focus::before {
-webkit-transform: rotateX(0deg);
transform: rotateX(0deg);
}

.link-flip a::after {
border-bottom: 2px solid #fff;
}

/* Border */
.link-border a {
color: #e74c3c;
font-weight: 500;
-webkit-transition: -webkit-transform 0.2s;
transition: transform 0.2s;
}

.link-border a:hover,
.link-border a:focus {
-webkit-transform: scale(0.8333);
transform: scale(0.8333);
}

.link-border a::before {
position: absolute;
top: -2px;
left: -7px;
box-sizing: content-box;
padding: 0 5px;
width: 100%;
height: 100%;
border: 2px solid #e74c3c;
content: '';
opacity: 0;
-webkit-transition: opacity 0.2s, -webkit-transform 0.2s;
transition: opacity 0.2s, transform 0.2s;
-webkit-transform: scale(0.8333);
transform: scale(0.8333);
}

.link-border a:hover::before,
.link-border a:focus::before {
opacity: 1;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}

/* Skewed */
.link-skewed {
background: rgba(149,165,166,0.1);
}

.link-skewed a {
font-weight: 500;
-webkit-transition: color 0.2s;
transition: color 0.2s;
}

.link-skewed a:hover,
.link-skewed a:focus {
color: #fff;
}

.link-skewed a::before {
position: absolute;
top: 0px;
left: -5px;
z-index: -1;
box-sizing: content-box;
padding: 0 5px;
width: 100%;
height: 100%;
background: #e74c3c;
content: '';
opacity: 0;
-webkit-transition: -webkit-transform 0.2s, opacity 0.2s;
transition: transform 0.2s, opacity 0.2s;
-webkit-transform: skewY(-3deg) skewX(-11deg);
transform: skewY(-3deg) skewX(-11deg);
}

.link-skewed a:hover::before,
.link-skewed a:focus::before {
opacity: 1;
-webkit-transform: skewY(0) skewX(0);
transform: skewY(0) skewX(0);
}

/* SVG line */
.link-svgline a {
font-weight: 500;
}

.link-svgline a svg.link-svgline {
position: absolute;
top: 100%;
left: 0;
overflow: hidden;
margin: 0;
width: 100%;
height: 20px;
-webkit-transition: stroke-dashoffset 0.3s ease-in-out;
transition: stroke-dashoffset 0.3s ease-in-out;
-webkit-transform: translateY(-90%);
transform: translateY(-90%);
fill: none;
stroke: #b1d474;
stroke-width: 5;
stroke-dasharray: 400px;
stroke-dashoffset: 400px;
}

@media screen and (max-width: 50em) {
.link-svgline a svg.link-svgline {
-webkit-transform: translateY(-80%);
transform: translateY(-80%);
}
}

.link-svgline a:hover svg.link-svgline {
stroke-dashoffset: 0px;
}

/* SVG marker */
.link-svgmarker {
background: rgba(149,165,166,0.4);
}

.link-svgmarker a {
font-weight: 500;
}

.link-svgmarker a svg.link-svgline {
position: absolute;
top: 100%;
left: 0;
z-index: -1;
overflow: hidden;
margin: 0;
width: 100%;
height: 60px;
opacity: 0.5;
-webkit-transition: stroke-dashoffset 0.3s ease-in-out;
transition: stroke-dashoffset 0.3s ease-in-out;
-webkit-transform: translateY(-100%);
transform: translateY(-100%);
fill: none;
stroke: #f0f567;
stroke-width: 36;
stroke-dasharray: 400px;
stroke-dashoffset: 400px;
}

@media screen and (max-width: 50em) {
.link-svgmarker a svg.link-svgline {
-webkit-transform: translateY(-80%);
transform: translateY(-80%);
}
}

.link-svgmarker a:hover svg.link-svgline {
stroke-dashoffset: 0px;
}

/* Text up line */
.link-textupline a {
overflow: hidden;
font-weight: 800;
-webkit-transition: -webkit-transform 0.3s;
transition: transform 0.3s;
}

.link-textupline a:hover,
.link-textupline a:focus {
-webkit-transform: translateY(10%);
transform: translateY(10%);
}

.link-textupline a::before {
position: absolute;
top: 0;
left: 0;
z-index: -1;
width: 100%;
height: 100%;
background: #d1d1d1;
content: '';
-webkit-transition: -webkit-transform 0.3s;
transition: transform 0.3s;
-webkit-transform: translateY(100%) translateY(-5px);
transform: translateY(100%) translateY(-5px);
}

.link-textupline a,
.link-textupline a::before {
-webkit-transition-timing-function: cubic-bezier(0.6,0,0.4,1);
transition-timing-function: cubic-bezier(0.6,0,0.4,1);
}

.link-textupline a:hover::before,
.link-textupline a:focus::before {
-webkit-transform: translateY(-100%) translateY(5px);
transform: translateY(-100%) translateY(5px);
}

/* Tooltip overlay */
.link-tipoverlay {
background: #404d5b;
color: #95a5a6;
}

.link-tipoverlay a {
color: #fff;
}

.link-tipoverlay a::before {
position: absolute;
top: -50%;
left: -50%;
padding: 1.8em 1em 1em 3.7em;
width: 200%;
height: 200%;
background: #fff url(../img/link.svg) no-repeat -3em 50%;
background-size: auto 40%;
color: #404d5b;
color: transparent;
content: attr(href);
white-space: pre-wrap;
word-break: break-all;
font-weight: 600;
font-size: 50%;
line-height: 1.2;
opacity: 0.2;
-webkit-transition: opacity 0.3s, color 0.3s, -webkit-transform 0.3s, background-position 0.2s;
transition: opacity 0.3s, color 0.3s, transform 0.3s, background-position 0.2s;
-webkit-transform: scale(0.5);
transform: scale(0.5);
pointer-events: auto;
}

.link-tipoverlay a:hover::before,
.link-tipoverlay a:focus::before {
background-position: 1em 50%;
color: #404d5b;
opacity: 1;
-webkit-transition-delay: 0s, 0s, 0s, 0.1s;
transition-delay: 0s, 0s, 0s, 0.1s;
-webkit-transform: scale(1) translateY(-75%);
transform: scale(1) translateY(-75%);
}

/* Arrow */
.link-arrow {
background: rgba(149,165,166,0.4);
}

.link-arrow a {
padding: 0 0.25em;
font-weight: 500;
-webkit-transition: -webkit-transform 0.3s;
transition: transform 0.3s;
-webkit-transform: translateX(0);
transform: translateX(0);
}

.link-arrow a:hover,
.link-arrow a::after {
-webkit-transform: translateX(-1em);
transform: translateX(-1em);
}

.link-arrow a::before,
.link-arrow a::after {
position: absolute;
height: 100%;
content: '';
}

.link-arrow a::before {
left: 0;
z-index: -1;
width: 100%;
background: #fff;
}

.link-arrow a::after {
left: 100%;
z-index: -2;
width: 1em;
background: #34495e url(../img/arrow_right.svg) no-repeat 50% 50%;
background-size: 60% auto;
text-align: center;
font-family: Arial, sans-serif;
-webkit-transition: -webkit-transform 0.3s;
transition: transform 0.3s;
pointer-events: auto;
}

.link-arrow a:hover::after,
.link-arrow a:focus::after {
-webkit-transform: translateX(0);
transform: translateX(0);
}

/* Curtain */
.link-curtain {
background: rgba(149,165,166,0.3);
}

.link-curtain a {
overflow: hidden;
font-weight: 500;
}

.link-curtain a::before,
.link-curtain a::after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: '';
-webkit-transition: -webkit-transform 0.3s;
transition: transform 0.3s;
}

.link-curtain a::before {
border-top: 2px solid #fff;
background: transparent;
-webkit-transition-delay: 0.3s;
transition-delay: 0.3s;
-webkit-transform: translateY( calc(100% - 2px) );
transform: translateY( calc(100% - 2px) );
}

.link-curtain a:hover::before,
.link-curtain a:focus::before {
-webkit-transition-delay: 0s;
transition-delay: 0s;
}

.link-curtain a:hover::before,
.link-curtain a:focus::before,
.link-curtain a:hover::after,
.link-curtain a:focus::after {
-webkit-transform: translateX(0);
transform: translateX(0);
}

.link-curtain a::after {
z-index: -1;
background: rgba(255,255,255,0.7);
-webkit-transform: translateY(-100%);
transform: translateY(-100%);
}

.link-curtain a:hover::after,
.link-curtain a:focus::after {
-webkit-transition-delay: 0.3s;
transition-delay: 0.3s;
}

/* Text scale */
.link-braces a {
padding: 0 0.25em;
font-weight: 500;
-webkit-transition: color 0.2s;
transition: color 0.2s;
}

.link-braces a:hover {
color: #d04c3f;
}

.link-braces a::before,
.link-braces a::after {
position: absolute;
top: 0;
font-weight: 100;
font-size: 150%;
line-height: 1;
opacity: 0;
-webkit-transition: opacity 0.2s, -webkit-transform 0.2s;
transition: opacity 0.2s, transform 0.2s;
}

.link-braces a::before {
left: -0.1em;
content: '[';
-webkit-transform: translateX(-100%);
transform: translateX(-100%);
}

.link-braces a::after {
right: -0.1em;
content: ']';
-webkit-transform: translateX(100%);
transform: translateX(100%);
}

.link-braces a:hover::before,
.link-braces a:hover::after {
opacity: 1;
-webkit-transform: translateX(0);
transform: translateX(0);
}

/* Text fall */
.link-textfall {
background: #34495e;
color: #fff;
}

.link-textfall a {
color: #4c8fbb;
font-weight: 400;
-webkit-transition: color 0.3s;
transition: color 0.3s;
-webkit-perspective: 1000px;
perspective: 1000px;
}

.link-textfall a:hover {
color: #afd6f0;
}

.link-textfall a::before,
.link-textfall a::after {
position: absolute;
top: 0;
left: 0;
content: attr(data-dummy);
opacity: 0;
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s, color 0.3s;
transition: transform 0.3s, opacity 0.3s, color 0.3s;
pointer-events: none;
}

.link-textfall a::before {
color: #7db8de;
-webkit-transition-delay: 0.15s;
transition-delay: 0.15s;
-webkit-transform: translateY(-100%) translateZ(100px) rotateX(30deg) rotateZ(-10deg);
transform: translateY(-100%) translateZ(100px) rotateX(30deg) rotateZ(-10deg);
}

.link-textfall a::after {
color: #afd6f0;
-webkit-transform: translateY(-100%) translateZ(100px) rotateX(-30deg) rotateZ(10deg);
transform: translateY(-100%) translateZ(100px) rotateX(-30deg) rotateZ(10deg);
}

.link-textfall a:hover::before,
.link-textfall a:hover::after {
color: transparent;
opacity: 1;
-webkit-transform: translateY(0) translateZ(0) rotateX(0) rotateZ(0);
transform: translateY(0) translateZ(0) rotateX(0) rotateZ(0);
}

.link-textfall a:hover::before {
-webkit-transition-delay: 0s;
transition-delay: 0s;
}

.link-textfall a:hover::after {
-webkit-transition-delay: 0.15s;
transition-delay: 0.15s;
}
4.Залить в шаблон папку img если будете использовать вариант с SVG
5.Если не понятно спрашивайте в коментариях

Можешь почитать и вот эту статейку "Свеженький Хак от Русика"

mistakes

Это тоже интересно

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Ваше мнение

Как вам наш дизайн сайта?
Результаты

Облако тегов

Anything in here will be replaced on browsers that support the canvas element