index.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  1. <!DOCTYPE html>
  2. <html lang="en" class="no-js">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <title>Text Input Effects | Set 1</title>
  8. <meta name="description" content="Simple ideas for enhancing text input interactions" />
  9. <meta name="keywords" content="input, text, effect, focus, transition, interaction, inspiration, web design" />
  10. <meta name="author" content="Codrops" />
  11. <link rel="shortcut icon" href="../favicon.ico">
  12. <link rel="stylesheet" type="text/css" href="css/normalize.css" />
  13. <link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.2.0/css/font-awesome.min.css" />
  14. <link rel="stylesheet" type="text/css" href="css/demo.css" />
  15. <link rel="stylesheet" type="text/css" href="css/set1.css" />
  16. <!--[if IE]>
  17. <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  18. <![endif]-->
  19. </head>
  20. <body>
  21. <div class="container">
  22. <header class="codrops-header">
  23. <div class="codrops-links">
  24. <a class="codrops-icon codrops-icon--prev" href="http://tympanus.net/Tutorials/SlidingHeaderLayout/" title="Previous Demo"><span>Previous Demo</span></a>
  25. <a class="codrops-icon codrops-icon--drop" href="http://tympanus.net/codrops/?p=21991" title="Back to the a"><span>Back to the Codrops a</span></a>
  26. </div>
  27. <h1>Text Input Effects <span>Simple ideas for enhancing text input interactions</span></h1>
  28. <nav class="codrops-demos">
  29. <a href="index.html" class="current-demo">Set 1</a>
  30. <a href="index2.html">Set 2</a>
  31. </nav>
  32. </header>
  33. <section class="content bgcolor-1">
  34. <h2 class="nomargin-bottom">Haruki</h2>
  35. <span class="input input--haruki">
  36. <input class="input__field input__field--haruki" type="text" id="input-1" />
  37. <label class="input__label input__label--haruki" for="input-1">
  38. <span class="input__label-content input__label-content--haruki">First Name</span>
  39. </label>
  40. </span>
  41. <span class="input input--haruki">
  42. <input class="input__field input__field--haruki" type="text" id="input-2" />
  43. <label class="input__label input__label--haruki" for="input-2">
  44. <span class="input__label-content input__label-content--haruki">Last Name</span>
  45. </label>
  46. </span>
  47. <span class="input input--haruki">
  48. <input class="input__field input__field--haruki" type="text" id="input-3" />
  49. <label class="input__label input__label--haruki" for="input-3">
  50. <span class="input__label-content input__label-content--haruki">Email</span>
  51. </label>
  52. </span>
  53. </section>
  54. <section class="content">
  55. <h2>Hoshi</h2>
  56. <span class="input input--hoshi">
  57. <input class="input__field input__field--hoshi" type="text" id="input-4" />
  58. <label class="input__label input__label--hoshi input__label--hoshi-color-1" for="input-4">
  59. <span class="input__label-content input__label-content--hoshi">Name</span>
  60. </label>
  61. </span>
  62. <span class="input input--hoshi">
  63. <input class="input__field input__field--hoshi" type="text" id="input-5" />
  64. <label class="input__label input__label--hoshi input__label--hoshi-color-2" for="input-5">
  65. <span class="input__label-content input__label-content--hoshi">Street</span>
  66. </label>
  67. </span>
  68. <span class="input input--hoshi">
  69. <input class="input__field input__field--hoshi" type="text" id="input-6" />
  70. <label class="input__label input__label--hoshi input__label--hoshi-color-3" for="input-6">
  71. <span class="input__label-content input__label-content--hoshi">Town</span>
  72. </label>
  73. </span>
  74. <p>Inspired by Andrej Radisic's <a href="https://dribbble.com/shots/1785176-Jawbreaker-input-field">Jawbreaker input field</a></p>
  75. </section>
  76. <section class="content bgcolor-4">
  77. <h2>Kuro</h2>
  78. <span class="input input--kuro">
  79. <input class="input__field input__field--kuro" type="text" id="input-7" />
  80. <label class="input__label input__label--kuro" for="input-7">
  81. <span class="input__label-content input__label-content--kuro">Username</span>
  82. </label>
  83. </span>
  84. <span class="input input--kuro">
  85. <input class="input__field input__field--kuro" type="text" id="input-8" />
  86. <label class="input__label input__label--kuro" for="input-8">
  87. <span class="input__label-content input__label-content--kuro">Website</span>
  88. </label>
  89. </span>
  90. <span class="input input--kuro">
  91. <input class="input__field input__field--kuro" type="text" id="input-9" />
  92. <label class="input__label input__label--kuro" for="input-9">
  93. <span class="input__label-content input__label-content--kuro">Invitation Code</span>
  94. </label>
  95. </span>
  96. </section>
  97. <section class="content bgcolor-7">
  98. <h2>Jiro</h2>
  99. <span class="input input--jiro">
  100. <input class="input__field input__field--jiro" type="text" id="input-10" />
  101. <label class="input__label input__label--jiro" for="input-10">
  102. <span class="input__label-content input__label-content--jiro">Cat's Name</span>
  103. </label>
  104. </span>
  105. <span class="input input--jiro">
  106. <input class="input__field input__field--jiro" type="text" id="input-11" />
  107. <label class="input__label input__label--jiro" for="input-11">
  108. <span class="input__label-content input__label-content--jiro">Dog's Name</span>
  109. </label>
  110. </span>
  111. <span class="input input--jiro">
  112. <input class="input__field input__field--jiro" type="text" id="input-12" />
  113. <label class="input__label input__label--jiro" for="input-12">
  114. <span class="input__label-content input__label-content--jiro">Hamster's Name</span>
  115. </label>
  116. </span>
  117. </section>
  118. <section class="content">
  119. <h2>Minoru</h2>
  120. <span class="input input--minoru">
  121. <input class="input__field input__field--minoru" type="text" id="input-13" />
  122. <label class="input__label input__label--minoru" for="input-13">
  123. <span class="input__label-content input__label-content--minoru">First Name</span>
  124. </label>
  125. </span>
  126. <span class="input input--minoru">
  127. <input class="input__field input__field--minoru" type="text" id="input-14" />
  128. <label class="input__label input__label--minoru" for="input-14">
  129. <span class="input__label-content input__label-content--minoru">Middle Name</span>
  130. </label>
  131. </span>
  132. <span class="input input--minoru">
  133. <input class="input__field input__field--minoru" type="text" id="input-15" />
  134. <label class="input__label input__label--minoru" for="input-15">
  135. <span class="input__label-content input__label-content--minoru">Last Name</span>
  136. </label>
  137. </span>
  138. </section>
  139. <section class="content bgcolor-5">
  140. <h2>Yoko</h2>
  141. <span class="input input--minoru">
  142. <input class="input__field input__field--yoko" type="text" id="input-16" />
  143. <label class="input__label input__label--yoko" for="input-16">
  144. <span class="input__label-content input__label-content--yoko">Street</span>
  145. </label>
  146. </span>
  147. <span class="input input--minoru">
  148. <input class="input__field input__field--yoko" type="text" id="input-17" />
  149. <label class="input__label input__label--yoko" for="input-17">
  150. <span class="input__label-content input__label-content--yoko">City</span>
  151. </label>
  152. </span>
  153. <span class="input input--minoru">
  154. <input class="input__field input__field--yoko" type="text" id="input-18" />
  155. <label class="input__label input__label--yoko" for="input-18">
  156. <span class="input__label-content input__label-content--yoko">Region</span>
  157. </label>
  158. </span>
  159. </section>
  160. <section class="content">
  161. <h2>Hideo</h2>
  162. <span class="input input--hideo">
  163. <input class="input__field input__field--hideo" type="text" id="input-41" />
  164. <label class="input__label input__label--hideo" for="input-41">
  165. <i class="fa fa-fw fa-user icon icon--hideo"></i>
  166. <span class="input__label-content input__label-content--hideo">Username</span>
  167. </label>
  168. </span>
  169. <span class="input input--hideo">
  170. <input class="input__field input__field--hideo" type="text" id="input-42" />
  171. <label class="input__label input__label--hideo" for="input-42">
  172. <i class="fa fa-fw fa-envelope icon icon--hideo"></i>
  173. <span class="input__label-content input__label-content--hideo">Email</span>
  174. </label>
  175. </span>
  176. <span class="input input--hideo">
  177. <input class="input__field input__field--hideo" type="text" id="input-43" />
  178. <label class="input__label input__label--hideo" for="input-43">
  179. <i class="fa fa-fw fa-lock icon icon--hideo"></i>
  180. <span class="input__label-content input__label-content--hideo">Password</span>
  181. </label>
  182. </span>
  183. </section>
  184. <section class="content bgcolor-3">
  185. <h2>Kyo</h2>
  186. <span class="input input--kyo">
  187. <input class="input__field input__field--kyo" type="text" id="input-19" />
  188. <label class="input__label input__label--kyo" for="input-19">
  189. <span class="input__label-content input__label-content--kyo">What's your email?</span>
  190. </label>
  191. </span>
  192. </section>
  193. <section class="content bgcolor-4">
  194. <h2>Akira</h2>
  195. <span class="input input--akira">
  196. <input class="input__field input__field--akira" type="text" id="input-22" />
  197. <label class="input__label input__label--akira" for="input-22">
  198. <span class="input__label-content input__label-content--akira">First Name</span>
  199. </label>
  200. </span>
  201. <span class="input input--akira">
  202. <input class="input__field input__field--akira" type="text" id="input-23" />
  203. <label class="input__label input__label--akira" for="input-23">
  204. <span class="input__label-content input__label-content--akira">Last Name</span>
  205. </label>
  206. </span>
  207. <span class="input input--akira">
  208. <input class="input__field input__field--akira" type="text" id="input-24" />
  209. <label class="input__label input__label--akira" for="input-24">
  210. <span class="input__label-content input__label-content--akira">Maiden Name</span>
  211. </label>
  212. </span>
  213. </section>
  214. <section class="content">
  215. <h2>Ichiro</h2>
  216. <span class="input input--ichiro">
  217. <input class="input__field input__field--ichiro" type="text" id="input-25" />
  218. <label class="input__label input__label--ichiro" for="input-25">
  219. <span class="input__label-content input__label-content--ichiro">Bird's Color</span>
  220. </label>
  221. </span>
  222. <span class="input input--ichiro">
  223. <input class="input__field input__field--ichiro" type="text" id="input-26" />
  224. <label class="input__label input__label--ichiro" for="input-26">
  225. <span class="input__label-content input__label-content--ichiro">Wing Span</span>
  226. </label>
  227. </span>
  228. <span class="input input--ichiro">
  229. <input class="input__field input__field--ichiro" type="text" id="input-27" />
  230. <label class="input__label input__label--ichiro" for="input-27">
  231. <span class="input__label-content input__label-content--ichiro">Beak Length</span>
  232. </label>
  233. </span>
  234. </section>
  235. <section class="content bgcolor-6">
  236. <h2>Juro</h2>
  237. <span class="input input--juro">
  238. <input class="input__field input__field--juro" type="text" id="input-28" />
  239. <label class="input__label input__label--juro" for="input-28">
  240. <span class="input__label-content input__label-content--juro">First Name</span>
  241. </label>
  242. </span>
  243. <span class="input input--juro">
  244. <input class="input__field input__field--juro" type="text" id="input-29" />
  245. <label class="input__label input__label--juro" for="input-29">
  246. <span class="input__label-content input__label-content--juro">Last Name</span>
  247. </label>
  248. </span>
  249. <span class="input input--juro">
  250. <input class="input__field input__field--juro" type="text" id="input-30" />
  251. <label class="input__label input__label--juro" for="input-30">
  252. <span class="input__label-content input__label-content--juro">Maiden Name</span>
  253. </label>
  254. </span>
  255. </section>
  256. <section class="content bgcolor-4">
  257. <h2>Madoka</h2>
  258. <span class="input input--madoka">
  259. <input class="input__field input__field--madoka" type="text" id="input-31" />
  260. <label class="input__label input__label--madoka" for="input-31">
  261. <svg class="graphic graphic--madoka" width="100%" height="100%" viewBox="0 0 404 77" preserveAspectRatio="none">
  262. <path d="m0,0l404,0l0,77l-404,0l0,-77z"/>
  263. </svg>
  264. <span class="input__label-content input__label-content--madoka">Frequency</span>
  265. </label>
  266. </span>
  267. <span class="input input--madoka">
  268. <input class="input__field input__field--madoka" type="text" id="input-32" />
  269. <label class="input__label input__label--madoka" for="input-32">
  270. <svg class="graphic graphic--madoka" width="100%" height="100%" viewBox="0 0 404 77" preserveAspectRatio="none">
  271. <path d="m0,0l404,0l0,77l-404,0l0,-77z"/>
  272. </svg>
  273. <span class="input__label-content input__label-content--madoka">Weight</span>
  274. </label>
  275. </span>
  276. <span class="input input--madoka">
  277. <input class="input__field input__field--madoka" type="text" id="input-33" />
  278. <label class="input__label input__label--madoka" for="input-33">
  279. <svg class="graphic graphic--madoka" width="100%" height="100%" viewBox="0 0 404 77" preserveAspectRatio="none">
  280. <path d="m0,0l404,0l0,77l-404,0l0,-77z"/>
  281. </svg>
  282. <span class="input__label-content input__label-content--madoka">Strength</span>
  283. </label>
  284. </span>
  285. </section>
  286. <section class="content">
  287. <h2>Kaede</h2>
  288. <span class="input input--kaede">
  289. <input class="input__field input__field--kaede" type="text" id="input-35" />
  290. <label class="input__label input__label--kaede" for="input-35">
  291. <span class="input__label-content input__label-content--kaede">First Name</span>
  292. </label>
  293. </span>
  294. <span class="input input--kaede">
  295. <input class="input__field input__field--kaede" type="text" id="input-36" />
  296. <label class="input__label input__label--kaede" for="input-36">
  297. <span class="input__label-content input__label-content--kaede">Last Name</span>
  298. </label>
  299. </span>
  300. <span class="input input--kaede">
  301. <input class="input__field input__field--kaede" type="text" id="input-37" />
  302. <label class="input__label input__label--kaede" for="input-37">
  303. <span class="input__label-content input__label-content--kaede">Website</span>
  304. </label>
  305. </span>
  306. </section>
  307. <section class="content bgcolor-8">
  308. <h2>Isao</h2>
  309. <span class="input input--isao">
  310. <input class="input__field input__field--isao" type="text" id="input-38" />
  311. <label class="input__label input__label--isao" for="input-38" data-content="First Name">
  312. <span class="input__label-content input__label-content--isao">First Name</span>
  313. </label>
  314. </span>
  315. <span class="input input--isao">
  316. <input class="input__field input__field--isao" type="text" id="input-39" />
  317. <label class="input__label input__label--isao" for="input-39" data-content="Middle Name">
  318. <span class="input__label-content input__label-content--isao">Middle Name</span>
  319. </label>
  320. </span>
  321. <span class="input input--isao">
  322. <input class="input__field input__field--isao" type="text" id="input-40" />
  323. <label class="input__label input__label--isao" for="input-40" data-content="Last Name">
  324. <span class="input__label-content input__label-content--isao">Last Name</span>
  325. </label>
  326. </span>
  327. </section>
  328. <!-- Related demos -->
  329. <section class="content content--related">
  330. <p>If you enjoyed this demo you might also like:</p>
  331. <a class="media-item" href="http://tympanus.net/Development/MinimalForm/">
  332. <img class="media-item__img" src="img/related/MinimalForm.png" />
  333. <h3 class="media-item__title">Minimal Form Interface</h3>
  334. </a>
  335. <a class="media-item" href="http://tympanus.net/Development/SelectInspiration/">
  336. <img class="media-item__img" src="img/related/SelectInspiration.png" />
  337. <h3 class="media-item__title">Custom Select Elements</h3>
  338. </a>
  339. </section>
  340. </div><!-- /container -->
  341. <script src="js/classie.js"></script>
  342. <script>
  343. (function() {
  344. // trim polyfill : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim
  345. if (!String.prototype.trim) {
  346. (function() {
  347. // Make sure we trim BOM and NBSP
  348. var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
  349. String.prototype.trim = function() {
  350. return this.replace(rtrim, '');
  351. };
  352. })();
  353. }
  354. [].slice.call( document.querySelectorAll( 'input.input__field' ) ).forEach( function( inputEl ) {
  355. // in case the input is already filled..
  356. if( inputEl.value.trim() !== '' ) {
  357. classie.add( inputEl.parentNode, 'input--filled' );
  358. }
  359. // events:
  360. inputEl.addEventListener( 'focus', onInputFocus );
  361. inputEl.addEventListener( 'blur', onInputBlur );
  362. } );
  363. function onInputFocus( ev ) {
  364. classie.add( ev.target.parentNode, 'input--filled' );
  365. }
  366. function onInputBlur( ev ) {
  367. if( ev.target.value.trim() === '' ) {
  368. classie.remove( ev.target.parentNode, 'input--filled' );
  369. }
  370. }
  371. })();
  372. </script>
  373. </body>
  374. </html>