react-jam-ui
Version:
React JAM UI components
180 lines (166 loc) • 4.33 kB
text/stylus
@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)
}
}
}