UGC Techdocs
  • Introduction
  • Guides
    • Analytics
      • Tracking UGC on Adobe Analytics
      • Tracking Widget interactions with Google Analytics
    • Direct Uploader
      • How to add Custom Data to Direct Uploader
      • How to capture Custom Data on Direct Uploader
      • How to automatically tag data on Direct Uploader
      • How to Customize error messages on Direct Uploader
      • How to Track Direct Uploader form submissions with Google Analytics (Universal & GA 4)
    • Data Templates
      • Creating a Data Template
    • Rights via Registration
      • Capture Custom Data on Rights by Registration Form
      • Styling Rights via Registration Form
    • REST API
      • Caching REST API results for optimization
      • Posting content into Nosto via Tile API
      • Posting images into Nosto via Tile API
    • Onsite Widgets (2.0)
      • Blank Canvas
        • How to Use the Blank Canvas to Create a Twitter Count Widget
        • Creating an Auto-Scrolling Carousel using Blank Canvas
        • Creating Gallery Widget by Using the Blank Canvas Widget
        • Creating a simple Hover effect using Blank Canvas
        • Creating a Word Cloud using Blank Canvas
        • Creating Your Widget by Using the Blank Canvas
      • Bind your own Events
      • Creating a Grid Widget from Waterfall
      • Create a Q&A Widget using Data Templates
      • Displaying a Widget in a Mobile App
      • Dynamically Specify Products to Display in Widget
      • Dynamically specify what Tile to display in a Widget
      • How to add a title / subtitle to a widget
      • How to localize the load more button on widgets
      • How to overlay existing Google Map with the UGC Map Widget
      • Styling cross-sellers on Grid and Carousel Widgets
      • How to Load External JS and CSS into Widgets
      • Profiling Widget Performance
      • Re-targeting with Widgets and Facebook Pixel
      • Render Widget filters dynamically
      • Styling Carousel Widget
      • Styling Grid Widget
      • Styling Masonry Widget
      • Styling Waterfall Widget
      • Styling Widget Expanded Tile
      • Styling Widget Shopspots
      • Using Web Fonts in Widgets
    • Digital Screens
      • Customizing Carousel Event Screen
      • Customizing Mosaic Event Screen
      • Customizing Scrollwall Event Screen
      • Customizing the Mosaic Event Screen to Have 9 Even Tiles
    • Email
      • Adding Location to an Email Tile
      • Styling the Email Widget
    • Integrations
      • DoubleClick
        • UGC Ads with Nosto and Google DoubleClick
      • Zapier
        • Consuming UGC Webhooks via Zapier
      • Mailchimp
        • Bring Social Content into a Mailchimp Campaign
    • Webhooks
      • Trigger notifications when content is in the moderation queue
  • Widgets
  • API Docs
    • JavaScript API
      • Widgets
        • Introduction
        • API Reference for Content Widgets
        • API Reference for Blank Canvas
        • API Reference for Map Widget
      • Digital Screens
        • Introduction
        • API Reference
    • Content API
      • Reference
    • REST API
      • Reference
        • Filters API
        • Moderation Views API
        • Tags API
        • Terms API
        • Tiles API
        • Users API
        • Widgets API
        • Automation Rules API
        • REST API Reference Widgets style and config
      • Best Practices
    • Webhooks
  • Enterprise Tools
    • Automation Rules
      • Triggers
      • Actions
      • Samples
    • Data Templates
    • User Access Control (UAC)
    • Single Sign On (SSO)
    • Enterprise Admin User Interface (EAUI)
    • Zapier
  • Commerce Tools
    • Product Feeds
    • Widget Implementation
    • Reporting
    • Integrations
      • Google Tag Manager
      • Magento
      • SalesForce Commerce Cloud
      • Shopify
      • Shopify Add To Cart
        • Global Variant Mapping for Add to Cart
        • Customise Add to Cart Widget Experience
  • Analytics
    • Google Analytics 4
      • Getting Started
      • Widgets Events
      • E-commerce Events
      • Email Events
  • Terms of Use
Powered by GitBook
On this page
  • Overview
  • Sample #1
  • Sample #2
  • Sample #3
  • Sample #4
  • Sample #5
  • Sample #6
  • Sample #7
  • Sample #8

Was this helpful?

  1. Guides
  2. Onsite Widgets (2.0)
  3. Blank Canvas

Creating a simple Hover effect using Blank Canvas

PreviousCreating Gallery Widget by Using the Blank Canvas WidgetNextCreating a Word Cloud using Blank Canvas

Last updated 4 months ago

Was this helpful?

Overview

Nosto's UGC Blank Canvas Widget allows users to very quickly and easily design their own Widget templates to suit their organisation's requirements. Included on this page is several simple templates which can be used by customers who want a different way to render image and text content Tiles via Stackla.

Each of the designs have been inspired from , an online blog which contains hundreds of free CSS3/HTML code snippets.

The code and samples below have been optimised for predominately Instagram content, however it can be easily adjusted based upon your requirements.

Sample #1

In this first sample we are introducing an Angle Line treatment which is present both on the Tile rest state and expands once the user hovers over the respective tile. In this design we introduce the Content Creator and the Tile text on mouse-over.

Output

<script type="text/javascript">
    (function (d, id) { 
    var t, el = d.scripts[d.scripts.length - 1].previousElementSibling; 
    if (el) el.dataset.initTimestamp = (new Date()).getTime(); 
    if (d.getElementById(id)) 
    return; t = d.createElement('script'); 
    t.src = '//assetscdn.stackla.com/media/js/widget/fluid-embed.js'; 
    t.id = id; (d.getElementsByTagName('head')[0] || 
    d.getElementsByTagName('body')[0]).appendChild(t); 
    }(document, 'stackla-widget-js'));
</script>

Tile Markup

<figure class="tile">
  <img src="{{image}}" alt="{{message}}" />
  <figcaption>
    <h3>@{{user}}</h3>
    <p>{{message}}</p>
  </figcaption>
  <a href="{{original_url}}" target="_blank"></a>
</figure>

CSS

@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro);
@import url(https://fonts.googleapis.com/css?family=Teko:700);
.tile {
  background-color: #fff;
  color: #ffffff;
  display: inline-block;
  font-family: 'Source Sans Pro', sans-serif;
  font-size: 16px;
  margin: 10px 5px;
  max-width: 400px;
  min-width: 400px;
  max-height: 400px;
  min-height: 400px;
  overflow: hidden;
  position: relative;
  text-align: right;
  width: 100%;
}
.tile *,
.tile *:before,
.tile *:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all 0.45s ease;
  transition: all 0.45s ease;
}
.tile img {
  backface-visibility: hidden;
  height: 400px;
  vertical-align: top;
}
.tile:before,
.tile:after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  content: '';
  background-color: #b81212;
  opacity: 0.5;
  -webkit-transition: all 0.45s ease;
  transition: all 0.45s ease;
}
.tile:before {
  -webkit-transform: skew(30deg) translateX(80%);
  transform: skew(30deg) translateX(80%);
}
.tile:after {
  -webkit-transform: skew(-30deg) translateX(70%);
  transform: skew(-30deg) translateX(70%);
}
.tile figcaption {
  position: absolute;
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  z-index: 1;
  bottom: 0;
  padding: 20px 20px 20px 40%;
}
.tile figcaption:before,
.tile figcaption:after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #b81212;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.7);
  content: '';
  opacity: 0.5;
  z-index: -1;
}
.tile figcaption:before {
  -webkit-transform: skew(30deg) translateX(100%);
  transform: skew(30deg) translateX(100%);
}
.tile figcaption:after {
  -webkit-transform: skew(-30deg) translateX(90%);
  transform: skew(-30deg) translateX(90%);
}
.tile h3,
.tile p {
  margin: 0;
  opacity: 0;
  letter-spacing: 1px;
}
.tile h3 {
  font-family: 'Teko', sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2em;
  text-transform: uppercase;
}
.tile p {
  font-size: 1.0em;
}
.tile a {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
}
.tile:hover h3,
.tile.hover h3,
.tile:hover p,
.tile.hover p {
  -webkit-transform: translateY(0);
  transform: translateY(0);
  opacity: 0.9;
}
.tile:hover:before,
.tile.hover:before {
  -webkit-transform: skew(30deg) translateX(30%);
  transform: skew(30deg) translateX(30%);
  -webkit-transition-delay: 0.05s;
  transition-delay: 0.05s;
}
.tile:hover:after,
.tile.hover:after {
  -webkit-transform: skew(-30deg) translateX(20%);
  transform: skew(-30deg) translateX(20%);
}
.tile:hover figcaption:before,
.tile.hover figcaption:before {
  -webkit-transform: skew(30deg) translateX(50%);
  transform: skew(30deg) translateX(50%);
  -webkit-transition-delay: 0.15s;
  transition-delay: 0.15s;
}
.tile:hover figcaption:after,
.tile.hover figcaption:after {
  -webkit-transform: skew(-30deg) translateX(40%);
  transform: skew(-30deg) translateX(40%);
  -webkit-transition-delay: 0.1s;
  transition-delay: 0.1s;
}

Sample #2

In this sample we introduce a basic hover once the user interacts with the respective tile. Here the treatment sees the hover come from the base of the tile and expand vertically, revealing the additional Tile details.

Output

Tile Markup

<figure class="tile"><img src="{{image}}" alt="sample87"/>
  <figcaption>
    <h3>@{{user}}</h3>
	  <h5><center>{{message}}<br><br>{{source}}</center></h5>
  </figcaption><a href="{{original_url}}" target="_blank"></a>
</figure>

CSS

@import url(https://fonts.googleapis.com/css?family=Raleway);
.tile {
  font-family: 'Raleway', sans-serif;
  position: relative;
  display: inline-block;
  overflow: hidden;
  margin: 10px 8px;
  min-width: 230px;
  max-width: 315px;
  max-height: 315px; 
  width: 100%;
  color: #ffffff;
  font-size: 16px;
  text-align: left;
}
.tile * {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all 0.25s ease;
  transition: all 0.25s ease;
}
.tile:before {
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 10px;
  right: 10px;
  top: 100%;
  content: '';
  background-color: rgba(51, 51, 51, 0.9);
  -webkit-transition: all 0.25s ease;
  transition: all 0.25s ease;
  -webkit-transition-delay: 0.25s;
  transition-delay: 0.25s;
}
.tile img {
  vertical-align: top;
  height: 315px;
  backface-visibility: hidden;
}
.tile figcaption {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.tile h3,
.tile h5 {
  margin: 0;
  opacity: 0;
  letter-spacing: 1px;
}
.tile h3 {
  -webkit-transform: translateY(-100%);
  transform: translateY(-100%);
  text-transform: uppercase;
  font-weight: 400;
  -webkit-transition-delay: 0.05s;
  transition-delay: 0.05s;
  margin-bottom: 5px;
}
.tile h5 {
  font-weight: normal;
  background-color: #ae895d;
  text-transform: uppercase;
  padding: 3px 10px;
  margin: 20px;
  -webkit-transform: translateY(-100%);
  transform: translateY(-100%);
  -webkit-transition-delay: 0s;
  transition-delay: 0s;
}
.tile a {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
}
.tile:hover:before,
.tile.hover:before {
  top: 10px;
  -webkit-transition-delay: 0s;
  transition-delay: 0s;
}
.tile:hover h3,
.tile.hover h3,
.tile:hover h5,
.tile.hover h5 {
  -webkit-transform: translateY(0);
  transform: translateY(0);
  opacity: 1;
}
.tile:hover h3,
.tile.hover h3 {
  -webkit-transition-delay: 0.3s;
  transition-delay: 0.3s;
}
.tile:hover h5,
.tile.hover h5 {
  -webkit-transition-delay: 0.2s;
  transition-delay: 0.2s;
}

Sample #3

In this sample we are using CSS to create a block transition effect on the hover-over before revealing the Content Creator and Tile message.

Output

Tile Markup

<figure class="tile"><img src="{{image}}" alt="{{message}}"/>
  <figcaption>
    <h2>@{{user}}</h2>
    <p>{{message}}</p>
  </figcaption>
</figure>

CSS

@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,500,900);
@import url(https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css);
.tile {
  font-family: 'Source Sans Pro', Arial, sans-serif;
  position: relative;
  float: left;
  overflow: hidden;
  margin: 10px 1%;
  min-width: 350px;
  max-width: 350px;
  max-height: 350px;
  min-height: 350px; 
  width: 100%;
  color: #ffffff;
  text-align: center;
  font-size: 16px;
}
.tile * {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all 0.35s ease;
  transition: all 0.35s ease;
}
.tile img {
  opacity: 1;
  height: 350px;
}
.tile:after,
.tile:before,
.tile figcaption:after,
.tile figcaption:before {
  background: #0a0a0a;
  width: 25%;
  position: absolute;
  content: '';
  opacity: 0;
  -webkit-transition: all 0.3s steps(4);
  transition: all 0.3s steps(4);
  z-index: 1;
  bottom: 100%;
  top: 0;
}
.tile:before {
  left: 0;
  -webkit-transition-delay: 0;
  transition-delay: 0;
}
.tile:after {
  left: 25%;
  -webkit-transition-delay: 0.1s;
  transition-delay: 0.1s;
}
.tile figcaption:before {
  left: 50%;
  -webkit-transition-delay: 0.2s;
  transition-delay: 0.2s;
  z-index: -1;
}
.tile figcaption:after {
  left: 75%;
  -webkit-transition-delay: 0.3s;
  transition-delay: 0.3s;
  z-index: -1;
}
.tile figcaption {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
  padding: 30px;
}
.tile h2,
.tile p,
.tile .icons {
  margin: 0;
  width: 100%;
  opacity: 0;
}
.tile h2 {
  font-weight: 900;
  text-transform: uppercase;
}
.tile p {
  font-weight: 300;
}
.tile .icons {
  position: absolute;
  bottom: 30px;
  left: 0;
  width: 100%;
}
.tile i {
  padding: 0px 10px;
  display: inline-block;
  font-size: 24px;
  color: #ffffff;
  text-align: center;
  opacity: 0.8;
}
.tile i:hover {
  opacity: 1;
}
.tile:hover:after,
.tile.hover:after,
.tile:hover:before,
.tile.hover:before,
.tile:hover figcaption:after,
.tile.hover figcaption:after,
.tile:hover figcaption:before,
.tile.hover figcaption:before {
  bottom: 0;
  opacity: 0.8;
}
.tile:hover figcaption h2,
.tile.hover figcaption h2,
.tile:hover figcaption p,
.tile.hover figcaption p,
.tile:hover figcaption .icons,
.tile.hover figcaption .icons {
  -webkit-transition-delay: 0.4s;
  transition-delay: 0.4s;
}
.tile:hover figcaption h2,
.tile.hover figcaption h2,
.tile:hover figcaption .icons,
.tile.hover figcaption .icons {
  opacity: 1;
}
.tile:hover figcaption p,
.tile.hover figcaption p {
  opacity: 0.7;
}
body {
  height: 380px; 
}

Sample #4

For this Sample, we are presenting the User Handle and the Network source on the rest view, and then introducing the Tile text on hover with a series of lines.

In this sample we introduce a basic hover once the user interacts with the respective tile. Here the treatment sees the hover come from the base of the tile and expand vertically, revealing the additional Tile details.

Output

Tile Markup

<figure class="tile">
  <img src="{{image}}" alt="{{message}}" />
  <div class="title">
    <div>
      <h2>@{{user}}</h2>
      <h4>{{source}}</h4>
    </div>
  </div>
  <figcaption>
    <p>{{message}}</p>
  </figcaption>
  <a href="{{original_url}}" target="_blank"></a>
</figure>

CSS

@import url(https://fonts.googleapis.com/css?family=Raleway:400,500,700);
@import url(https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css);
figure.tile {
  font-family: 'Raleway', Arial, sans-serif;
  position: relative;
  float: left;
  overflow: hidden;
  margin: 10px 1%;
  min-width: 400px;
  max-width: 400px;
  min-height: 400px;
  max-height: 400px; 
  width: 100%;
  color: #ffffff;
  text-align: center;
  font-size: 16px;
  background-color: #000000;
}
figure.tile *,
figure.tile *:before,
figure.tile *:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all 0.55s ease;
  transition: all 0.55s ease;
}
figure.tile img {
  max-width: 100%;
  backface-visibility: hidden;
  vertical-align: top;
  opacity: 0.9;
}
figure.tile .title {
  position: absolute;
  top: 58%;
  left: 25px;
  padding: 5px 10px 10px;
}
figure.tile .title:before,
figure.tile .title:after {
  height: 2px;
  width: 400px;
  position: absolute;
  content: '';
  background-color: #ffffff;
}
figure.tile .title:before {
  top: 0;
  left: 10px;
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
}
figure.tile .title:after {
  bottom: 0;
  right: 10px;
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%);
}
figure.tile .title div:before,
figure.tile .title div:after {
  width: 2px;
  height: 300px;
  position: absolute;
  content: '';
  background-color: #ffffff;
}
figure.tile .title div:before {
  top: 10px;
  right: 0;
  -webkit-transform: translateY(100%);
  transform: translateY(100%);
}
figure.tile .title div:after {
  bottom: 10px;
  left: 0;
  -webkit-transform: translateY(-100%);
  transform: translateY(-100%);
}
figure.tile h2,
figure.tile h4 {
  margin: 0;
  text-transform: uppercase;
}
figure.tile h2 {
  font-weight: 400;
}
figure.tile h4 {
  display: block;
  font-weight: 700;
  background-color: #ffffff;
  padding: 5px 10px;
  color: #000000;
}
figure.tile figcaption {
  position: absolute;
  bottom: 42%;
  left: 25px;
  text-align: left;
  opacity: 0;
  padding: 5px 60px 5px 10px;
  font-size: 0.8em;
  font-weight: 500;
  letter-spacing: 1.5px;
}
figure.tile figcaption p {
  margin: 0;
}
figure.tile a {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
figure.tile:hover img,
figure.tile.hover img {
  zoom: 1;
  filter: alpha(opacity=35);
  -webkit-opacity: 0.35;
  opacity: 0.35;
}
figure.tile:hover .title:before,
figure.tile.hover .title:before,
figure.tile:hover .title:after,
figure.tile.hover .title:after,
figure.tile:hover .title div:before,
figure.tile.hover .title div:before,
figure.tile:hover .title div:after,
figure.tile.hover .title div:after {
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}
figure.tile:hover .title:before,
figure.tile.hover .title:before,
figure.tile:hover .title:after,
figure.tile.hover .title:after {
  -webkit-transition-delay: 0.15s;
  transition-delay: 0.15s;
}
figure.tile:hover figcaption,
figure.tile.hover figcaption {
  opacity: 1;
  -webkit-transition-delay: 0.2s;
  transition-delay: 0.2s;
}
body {
  min-height: 430px; 
}

Sample #5

Simple hover effect, with a negative treatment.

Output

Tile Markup

<figure class="tile">
  <img src="{{image}}" alt="{{message}}" />
  <figcaption>
	<h3>{{message}}</h3><br><br>
    <h3>@{{user}}</h3>
    <h4>{{source}}</h4>
  </figcaption>
</figure>

CSS

@import url(https://fonts.googleapis.com/css?family=Montserrat:200);
.tile {
  font-family: 'Montserrat', Arial, sans-serif;
  position: relative;
  display: inline-block;
  overflow: hidden;
  margin: 8px;
  min-width: 230px;
  max-width: 315px;
  max-height: 315px; 
  width: 100%;
  color: #fff;
  text-align: left;
  font-size: 16px;
  background: #000;
}
.tile *,
.tile:before,
.tile:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
}
.tile img {
  max-width: 100%;
  height: 315px;
  backface-visibility: hidden;
  vertical-align: top;
}
.tile:before,
.tile:after {
  position: absolute;
  top: 20px;
  right: 20px;
  content: '';
  background-color: #fff;
  z-index: 1;
  opacity: 0;
}
.tile:before {
  width: 0;
  height: 1px;
}
.tile:after {
  height: 0;
  width: 1px;
}
.tile figcaption {
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 15px 20px;
}
.tile h3,
.tile h4 {
  margin: 0;
  font-size: 1.1em;
  font-weight: normal;
  opacity: 0;
}
.tile h4 {
  font-size: .8em;
  text-transform: uppercase;
}
.tile a {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
}
.tile:hover img,
.tile.hover img {
  zoom: 1;
  filter: alpha(opacity=20);
  -webkit-opacity: 0.2;
  opacity: 0.2;
}
.tile:hover:before,
.tile.hover:before,
.tile:hover:after,
.tile.hover:after {
  opacity: 1;
  -webkit-transition-delay: 0.25s;
  transition-delay: 0.25s;
}
.tile:hover:before,
.tile.hover:before {
  width: 40px;
}
.tile:hover:after,
.tile.hover:after {
  height: 40px;
}
.tile:hover h3,
.tile.hover h3,
.tile:hover h4,
.tile.hover h4 {
  opacity: 1;
}
.tile:hover h3,
.tile.hover h3 {
  -webkit-transition-delay: 0.3s;
  transition-delay: 0.3s;
}
.tile:hover h4,
.tile.hover h4 {
  -webkit-transition-delay: 0.35s;
  transition-delay: 0.35s;
}
body {
  text-align: center;
}

Sample #6

The hover treatment in this example sees the Image shrink and disappear to the right on hover-over.

Output

Tile Markup

<figure class="tile">
  <img src="{{image}}" alt="{{message}}" />
  <figcaption>
    <h3>@{{user}}</h3>
    <p>{{message}}</p><a href="{{original_url}}" target="_blank" class="read-more">View Post</a>
  </figcaption>
</figure>

CSS

@import url(https://fonts.googleapis.com/css?family=Raleway:400,500,800); 
figure.tile { 
  font-family: 'Raleway', Arial, sans-serif; 
  position: relative; 
  float: left; 
  overflow: hidden; 
  margin: 10px 1%; 
  min-width: 350px; 
  max-width: 350px; 
  max-height: 350px; 
  min-width: 350px; 	
  width: 100%; 
  color: #ffffff; 
  text-align: left; 
  background-color: #07090c; 
  font-size: 16px; 
} 
figure.tile * { 
  -webkit-box-sizing: border-box; 
  box-sizing: border-box; 
  -webkit-transition: all 0.35s ease; 
  transition: all 0.35s ease; 
} 
figure.tile img { 
  height: 350px; 
  -webkit-transition-delay: 0.2s; 
  transition-delay: 0.2s; 
  backface-visibility: hidden; 
} 
figure.tile figcaption { 
  position: absolute; 
  top: 50%; 
  left: 0; 
  width: 100%; 
  -webkit-transform: scale(0.5) translate(0%, -50%); 
  transform: scale(0.5) translate(0%, -50%); 
  -webkit-transform-origin: 50% 0%; 
  -ms-transform-origin: 50% 0%; 
  transform-origin: 50% 0%; 
  z-index: 1; 
  opacity: 0; 
  padding: 0 30px; 
} 
figure.tile h3, 
figure.tile p { 
  line-height: 1.5em; 
} 
figure.tile h3 { 
  margin: 0; 
  font-weight: 800; 
  text-transform: uppercase; 
} 
figure.tile p { 
  font-size: 0.8em; 
  font-weight: 500; 
  margin: 0 0 15px; 
} 
figure.tile .read-more { 
  border: 2px solid #ffffff; 
  padding: 0.5em 1em; 
  font-size: 0.8em; 
  text-decoration: none; 
  color: #ffffff; 
  display: inline-block; 
} 
figure.tile .read-more:hover { 
  background-color: #ffffff; 
  color: #000000; 
} 
figure.tile:hover img, 
figure.tile.hover img { 
  -webkit-animation: tile 0.45s linear forwards; 
  animation: tile 0.45s linear forwards; 
  -webkit-animation-iteration-count: 1; 
  animation-iteration-count: 1; 
} 
figure.tile:hover figcaption, 
figure.tile.hover figcaption { 
  -webkit-transform: scale(1) translate(0, -50%); 
  transform: scale(1) translate(0, -50%); 
  opacity: 1; 
  -webkit-transition-delay: 0.35s; 
  transition-delay: 0.35s; 
} 
@keyframes tile { 
  50% { 
    -webkit-transform: scale(0.8) translateX(0%); 
    transform: scale(0.8) translateX(0%); 
    opacity: 0.5; 
  } 
  100% { 
    -webkit-transform: scale(0.8) translateX(150%); 
    transform: scale(0.8) translateX(150%); 
    opacity: 0.5; 
  } 
}

Sample #7

Simple horizontal slide effect on hover-over.

Output

Tile Markup

<figure class="tile">
  <img src="{{image}}" alt="{{message}}" />
  <figcaption>
    <h2>@{{user}}</h2>
    <h3>{{source}}</h3>
    <p>{{message}}</p>
  </figcaption>
  <a href="{{original_url}}" target="_blank"></a>
</figure>

CSS

@import url(https://fonts.googleapis.com/css?family=Slabo+27px);
@import url(https://fonts.googleapis.com/css?family=Lato);
.tile {
  font-family: 'Lato', sans-serif;
  position: relative;
  float: left;
  overflow: hidden;
  margin: 10px 1%;
  min-width: 230px;
  max-width: 315px;
  min-height: 315px;
  max-height: 315px;
  width: 100%;
  color: #ffffff;
  text-align: left;
  font-size: 16px;
  background-color: #1A1A1A;
}
.tile * {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all 0.45s ease;
  transition: all 0.45s ease;
}
.tile img {
  vertical-align: top;
  max-width: 100%;
  backface-visibility: hidden;
}
.tile figcaption {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
  padding: 30px;
  background-color: #202123;
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
  -webkit-box-shadow: 0 0 50px rgba(0, 0, 0, 0.5);
  box-shadow: 0 0 50px rgba(0, 0, 0, 0.5);
}
.tile h2,
.tile h3,
.tile p {
  margin: 0;
}
.tile h2,
.tile h3 {
  font-family: 'Slabo 27px', serif;
  line-height: 1.2em;
}
.tile h2 {
  font-size: 1.9em;
  color: #35ADF9;
}
.tile h3 {
  color: #EBEBEB;
  font-size: 1.3em;
  font-weight: normal;
  letter-spacing: 1px;
}
.tile p {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  font-size: 0.9em;
  margin-top: 12px;
  padding: 12px 0 15px;
  line-height: 1.5em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tile a {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
}
.tile:hover > img,
.tile.hover > img {
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
}
.tile:hover figcaption,
.tile.hover figcaption {
  -webkit-transform: translateX(0%);
  transform: translateX(0%);
}

Sample #8

Simple vertical reveal more on the respective tiles.

Output

Tile Markup

<figure class="tile"><img src="{{image}}" alt="{{message}}"/>
  <figcaption>
    <h3>@{{user}}</h3>
    <h5>{{source}}</h5>
    <blockquote>
      <p>{{message}}</p>
    </blockquote>
  </figcaption><a href="{{source_url}}" target="_blank"></a>
</figure>

CSS

@import url(https://fonts.googleapis.com/css?family=Lato);
@import url(https://fonts.googleapis.com/css?family=Oswald);
@import url(https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css);
.tile {
  font-family: 'Lato', Arial, sans-serif;
  position: relative;
  display: inline-block;
  overflow: hidden;
  margin: 8px;
  min-width: 250px;
  max-width: 310px;
  max-height: 310px; 	
  width: 100%;
  background-color: #000000;
  color: #ffffff;
  text-align: left;
  font-size: 16px;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
}
.tile * {
  -webkit-transition: all 0.35s;
  transition: all 0.35s;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
.tile img {
  height: 350px; 
  vertical-align: top;
}
.tile figcaption {
  position: absolute;
  height: 75px;
  left: 15px;
  right: 15px;
  bottom: 15px;
  overflow: hidden;
  padding: 15px;
  background-color: rgba(0, 0, 0, 0.75);
}
.tile h3 {
  font-family: 'Oswald';
  text-transform: uppercase;
  font-size: 20px;
  font-weight: 400;
  line-height: 24px;
  margin: 3px 0;
}
.tile h5 {
  font-weight: 400;
  margin: 0;
  text-transform: uppercase;
  color: #bbb;
  letter-spacing: 1px;
}
.tile blockquote {
  padding: 0;
  margin: 0;
  font-style: italic;
  font-size: 1em;
}
.tile a {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
.tile:hover figcaption,
.tile.hover figcaption {
  height: calc(85%);
}

LittleSnippets.net
Overview
Sample #1
Sample #2
Sample #3
Sample #4
Sample #5
Sample #6
Sample #7
Sample #8
Back to Top
Back to Top
Back to Top
Back to Top
Back to Top
Back to Top
Back to Top
Back to Top
Back to Top