UNPKG

react-jam-ui

Version:

React JAM UI components

180 lines (166 loc) 4.33 kB
@import '../variables.styl'; input-default($params) { .input { border-radius: 3px; border: 1px solid #666666; &::-webkit-input-placeholder { color:#777777; opacity: 0.6; transition: opacity 0.3s ease; } &::-moz-placeholder { color:#777777; opacity: 0.6; transition: opacity 0.3s ease; } &:focus { border-color: #0f90fd; box-shadow: 0 0 0 1px #0f90fd; position: relative; z-index: 3; &::-webkit-input-placeholder { opacity: 0; } &::-moz-placeholder { opacity: 0; } } } .input { background: $params.default.bg; border-color: $params.default.border; color: $params.default.color; border-radius: $params.default.radius; } } input-material($params) { .input { border-radius: 0; border: none; &::-webkit-input-placeholder { color:#777777; opacity: 0.6; transition: opacity 0.3s ease; } &::-moz-placeholder { color:#777777; opacity: 0.6; transition: opacity 0.3s ease; } &:focus { position: relative; z-index: 3; &::-webkit-input-placeholder { opacity: 0; } &::-moz-placeholder { opacity: 0; } } } .input { background: $params.default.bg; color: $params.default.color; border-radius: $params.default.radius; border-bottom: 2px solid $params.default.border; } &:after { display: block; left: 50%; width: 0; background: $params.default.border; height: 2px; bottom: 0; position: absolute; transition: left 0.2s ease, width 0.2s ease; content: ""; z-index: 4; } &.focus { .input { background: $params.focus.bg; color: $params.focus.color; border-radius: $params.focus.radius; } &:after { width: 100%; left: 0; background: $params.focus.border } } &.valid { .input { background: $params.valid.bg; color: $params.valid.color; border-radius: $params.valid.radius; } &:after { width: 100%; left: 0; background: $params.valid.border } .input-msg { border-left: 2px solid $params.valid.border; } } &.error { .input { background: $params.error.bg; color: $params.error.color; border-radius: $params.error.radius; } &:after { width: 100%; left: 0; background: $params.error.border } .input-msg { border-left: 2px solid $params.error.border; color: $params.error.border; } } .input-msg { position: absolute; left: 100%; margin: 0 0 0 15px; bottom: 0; padding: 15px; background: #FFFFFF; z-index: 20; } } .input-container { position: relative; .input { font-family: inherit; font-size: 14px; line-height: 32px; margin: 0; outline: none; padding: 0 10px; width: 100%; for type, params in $sizes { if (type == 'default') { & { height: params.height; line-height: params.height; font-size: params[font-size]; padding: 0 (params.height/3); } } else { &.{type} { height: params.height; line-height: params.height; font-size: params[font-size]; padding: 0 (params.height/3); } } } } for type, params in $inputs { &.input-{type} { define('name', params.type) input-{name}(params) } } }