<div class="newsletter">
<input type="text" placeholder="Newsletter signup" class="newsletter-input" /><input class="newsletter-send" type="submit" value="Send">
</div>
* {
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.roboto {
font-family: "Roboto";
font-weight: 300;
}
.roboto-bold {
font-family: "Roboto";
font-weight: 700;
}
.newsletter {
position: relative;
max-width: 580px;
margin: 4em auto 1em;
}
.newsletter-input {
vertical-align: top;
width: 280px;
outline: 0;
margin: 0;
padding: 15px 0 15px 10px;
border: 1px solid transparent;
border-radius: 3px;
.roboto;
font-size: 24px;
line-height: 32px;
-webkit-transition: border-color 0.2s ease,
color 0.2s ease,
padding-left 0.2s ease;
transition: border-color 0.2s ease,
color 0.2s ease,
padding-left 0.2s ease;
&::placeholder {
color: #666;
}
&:hover,
&:focus {
padding-left: 22px;
border: 1px solid #ccc;
color: #333;
&::placeholder {
color: #444;
}
}
.newsletter-send {
vertical-align: top;
-webkit-appearance: none;
border: 0;
border-radius: 3px;
margin: 0 0 0 24px;
padding: 0 26px;
.roboto-bold;
font-size: 24px;
line-height: 64px;
text-transform: uppercase;
color: white;
background: #0a0a0a;
opacity: 0;
-webkit-transition: opacity 0.2s ease;
transition: opacity 0.2s ease;
}
.newsletter-input:focus + .newsletter-send,
.newsletter-input:hover + .newsletter-send,
/* this last one doesn't actually work - inputs have no "content" */
.newsletter-input:not(:empty) + .newsletter-send {
opacity: 1;
}
View Compiled
This Pen doesn't use any external CSS resources.