Need help with adaptive-placeholders?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

131 Stars 21 Forks 20 Commits 3 Opened issues


Float label pattern built with pure SCSS

Services available


Need anything else?

Contributors list

# 104,878
16 commits

Adaptive Placeholders

Adaptive placeholders is a Sass mixin for an interactive form placeholder initially made by Danny King.

This Sass mixin comes with additional settings to help you easily configure the placeholder to match your design.

Note: I no longer maintain this repository.


Adaptive Placeholder works with both text input fields and textarea.

Adaptive Placeholders Input Demo Adaptive Placeholders Textarea Demo


  • Sass v3.3 and above
  • You have Normalize.css in the project


Download the project either by downloading the zip, or using Bower

$ bower install adaptive-placeholders


Add Adaptive Placeholders into your project and import it into your main stylesheet with

@import "pathToAdaptivePlaceholders/adaptive-placeholders"; 

Write your HTML in this way:


Then call the mixin.

input {
    @include adaptive-placeholder();

Customizing Adaptive Placeholder.

Adaptive placeholder comes with a set of defaults ready to use.

$adaptive-placeholder: (
  height: 3em,
  margin: 1em,
  border: 1px,
  border-radius: 1.5em,
  font-size: 1em,
  border-color: #cccccc,
  label-color: #999999,
  active-color: #e87e22,
  valid-color: #23a045,
  placeholder-background-color: white,
  textarea: false

You can create your own settings for adaptive-placeholder by creating a Sass map named $adaptive-placeholder. Any defaults not overwritten will be added to the Sass map.

// Defining new defaults
$adaptive-placeholder: (
    height: 4em; 

// Calling Adaptive placeholders input { @include adaptive-placeholder(); }

The adaptive placeholders provides you with a optional argument to insert a sass map if you would like to keep the defaults intact, or would like to include a second style.

input {
    @include adaptive-placeholder($optional-map); 

Working with Textareas

Textareas are styled differently from inputs items. To use adaptive placeholders with textareas, write your html the same way as you would use adaptive placeholders for input.


Create a new sass map for textareas and call it. Make sure textarea is set to true in the sass map.

$textarea-placeholder : (
    height: 18em, 
    border-radius: 6px,
    textarea: true, 
// Call textarea placeholder 
textarea {
    @include adaptive-placeholder($textarea-placeholder); 

Alternatively, you can insert the sass map directly into the mixin.

// Call textarea placeholder 
textarea {
    @include adaptive-placeholder((height: 18em, border-radius: 6px, textarea:true)); 

Browser Tests

Works on IE10+, Firefox 28+, Chrome 31+, Safari 7+, Opera 22+


  • Remove Normalize.scss import statement
  • Fix translateY bug with calc for IE 10.
  • Tested and proved to work with IE 10 & IE 11
  • Reworked bower file structure
  • Placed demo into
  • Added browser prefixes for all transitions and transformations used in Adaptive Placeholders


@ Danny King for the concept and initial code. The original Less code can be found here


MIT License.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.