JSFiddle - React, Tailwind, and code Playground
by Spencer Smith
HTML
<div class="date">Today</div>
<div class="product">
<div class="upvotes">
<img src="http://emojilaunch.local/img/upvote.png">
<div class="count">122</div>
</div>
<div class="description">
<div class="emoji">🤩</div>
<div class="right">
<div class="name">Effortless Reviews</div>
<div class="tagline">Become the obvious choice for new customers</div>
<!-- <a href="https://emailtaco.com">https://emailtaco.com</a> -->
</div>
</div>
</div>
<div class="product">
<div class="upvotes">
<img src="http://emojilaunch.local/img/upvote.png">
<div class="count">82</div>
</div>
<div class="description">
<div class="emoji">🌮</div>
<div class="right">
<div class="name">Email Taco</div>
<div class="tagline">Free email countdown timers for expiring offers</div>
<!-- <a href="https://emailtaco.com">https://emailtaco.com</a> -->
</div>
</div>
</div>
<div class="product">
<div class="upvotes">
<img src="http://emojilaunch.local/img/upvote.png">
<div class="count">75</div>
</div>
<div class="description">
<div class="emoji">🔊</div>
<div class="right">
<div class="name">Music Mode for YouTube</div>
<div class="tagline">A distraction-free way to listen to music</div>
<!-- <a href="https://emailtaco.com">https://emailtaco.com</a> -->
</div>
</div>
</div>
<div class="date">Yesterday</div>
<div class="product">
<div class="upvotes">
<img src="http://emojilaunch.local/img/upvote.png">
<div class="count">75</div>
</div>
<div class="description">
<div class="emoji">⏳</div>
<div class="right">
<div class="name">Words To Time</div>
<div class="tagline">Calculates how long a talk will take to read</div>
<!-- <a href="https://emailtaco.com">https://emailtaco.com</a> -->
</div>
</div>
</div>
CSS
* { box-sizing: border-box; }
body {
background-color: whitesmoke;
max-width: 400px;
margin: 30px auto;
font-family: sans-serif;
font-size: 1rem;
}
.product {
display: flex;
width: 100%;
margin-top: 20px;
}
.upvotes, .description {
background-color: white;
padding: 10px;
border-radius: 5px;
/* border: 2px solid lightgray; */
box-shadow: 0 0 8px -2px #0000007a;
}
.upvotes {
font-size: 1rem;
font-weight: 400;
display: flex;
flex-direction: column;
justify-content: space-around;
min-width: 65px;
text-align: center;
cursor: pointer;
transition: all 0.1s;
// background-color: whitesmoke;
}
.upvotes:hover {
transform: scale(1.05, 1.05);
/* background-color: white; */
}
.upvotes:hover img {
opacity: .5;
}
.upvotes img {
height: 16px;
display: block;
margin: 0 auto;
opacity: 0.3;
transform: scaleY(.8);
transition: all 0.1s;
}
.description {
flex-grow: 1;
margin-left: 10px;
display: flex;
transition: all 0.1s;
cursor: pointer;
}
.description .right {
flex-grow: 1;
margin-left: 10px;
}
.description .emoji {
font-size: 3rem;
}
.description:hover {
transform: scale(1.02, 1.02);
/* background-color: white; */
}
.name {
font-size: 1rem;
font-weight: 600;
margin-top: 2px;
}
.tagline {
margin-top: 5px;
color: #555;
}
.description a {
margin-top: 5px;
display: inline-block;
}
.date {
font-size: 1.2rem;
margin-top: 40px;
}