UNPKG

soft-components

Version:

Simple soft flexible set of web components

110 lines 4.37 kB
sc-input { /** @prop --sc-input-border-radius: Border radius for input box - default: var(--sc-border-radius, 1em) */ --sc-input-border-radius: var(--sc-border-radius, 1em); --sc-input-padding-y: 1em; --sc-input-padding-x: 1em; --sc-input-bg-color: var(--sc-bg-color, #f6f6f8); --sc-input-text-color: var(--sc-text-color, #333333); --sc-input-font-size: 1em; --sc-input-error-text-color: var(--sc-error-color, #f70d1a); --sc-input-radio-size: 32px; --sc-input-radio-size: 2rem; --sc-input-active-color: var(--sc-highlight-color, #c586c0); /* input */ display: inline-block; vertical-align: middle; } sc-input input { transition: all var(--sc-animation-duration, 0.3s) var(--sc-animation-timing-function, ease); outline: none; border: none; border-radius: var(--sc-input-border-radius); padding: var(--sc-input-padding-y) var(--sc-input-padding-x); background-color: var(--sc-input-bg-color); color: var(--sc-input-text-color); font-size: var(--sc-input-font-size); width: 100%; box-sizing: border-box; } sc-input input ::-moz-placeholder { color: currentColor; } sc-input input :-ms-input-placeholder { color: currentColor; } sc-input input ::placeholder { color: currentColor; } sc-input input:invalid { color: var(--sc-input-error-text-color); } sc-input.has-error input { border: 1px solid var(--sc-input-error-text-color); border: 0.0625rem solid var(--sc-input-error-text-color); } sc-input.has-error .error-message { padding: 4px var(--sc-input-padding-x); padding: 0.25rem var(--sc-input-padding-x); color: var(--sc-input-error-text-color); } sc-input.block { display: block; width: 100%; } sc-input[type=radio] { border-radius: 50%; position: relative; } sc-input[type=radio] input, sc-input[type=radio] label { cursor: pointer; } sc-input[type=radio][disabled] input, sc-input[type=radio][disabled] label { cursor: not-allowed; } sc-input[type=radio] .after { --sc-input-radio-active-dot-gap: calc(var(--sc-input-radio-size) * 0.25); --sc-input-radio-active-dot-size: calc( var(--sc-input-radio-size) - (var(--sc-input-radio-active-dot-gap) * 2) ); position: absolute; opacity: 0; top: var(--sc-input-radio-active-dot-gap); right: var(--sc-input-radio-active-dot-gap); width: var(--sc-input-radio-active-dot-size); height: var(--sc-input-radio-active-dot-size); background: var(--sc-input-active-color); border-radius: 50%; box-shadow: inset calc(var(--sc-highlight-dist-x) * 0.1) calc(var(--sc-highlight-dist-y) * 0.1) calc(30px * 0.1) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), inset calc(var(--sc-shadow-dist-x) * 0.1) calc(var(--sc-shadow-dist-y) * 0.1) calc(30px * 0.1) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2)); box-shadow: inset calc(var(--sc-highlight-dist-x) * 0.1) calc(var(--sc-highlight-dist-y) * 0.1) calc(1.875rem * 0.1) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), inset calc(var(--sc-shadow-dist-x) * 0.1) calc(var(--sc-shadow-dist-y) * 0.1) calc(1.875rem * 0.1) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2)); transition: opacity var(--sc-animation-duration, 0.3s) var(--sc-animation-timing-function, ease); pointer-events: none; } sc-input[type=radio] input { -webkit-appearance: none; -moz-appearance: none; appearance: none; box-shadow: calc(var(--sc-highlight-dist-x) * 0.2) calc(var(--sc-highlight-dist-y) * 0.2) calc(30px * 0.2) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), calc(var(--sc-shadow-dist-x) * 0.2) calc(var(--sc-shadow-dist-y) * 0.2) calc(30px * 0.2) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2)); box-shadow: calc(var(--sc-highlight-dist-x) * 0.2) calc(var(--sc-highlight-dist-y) * 0.2) calc(1.875rem * 0.2) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), calc(var(--sc-shadow-dist-x) * 0.2) calc(var(--sc-shadow-dist-y) * 0.2) calc(1.875rem * 0.2) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2)); margin: 0; padding: 0; width: var(--sc-input-radio-size, 1em); height: var(--sc-input-radio-size, 1em); vertical-align: middle; } sc-input[type=radio] input:checked ~ .after { opacity: 1; } sc-input[type=range] { -webkit-appearance: none; /* Hides the slider so that custom slider can be made */ width: 100%; /* Specific width is required for Firefox. */ background: transparent; /* Otherwise white in Chrome */ }