UNPKG

@inkline/inkline

Version:

Inkline is the intuitive UI Components library that gives you a developer-friendly foundation for building high-quality, accessible, and customizable Vue.js 3 Design Systems.

397 lines (395 loc) 17.3 kB
/** * Input */ .input-wrapper { display: block; vertical-align: middle; position: relative; flex-grow: 1; flex-shrink: 1; } .input-wrapper .input { position: relative; display: flex; flex: 1 0 auto; align-items: center; flex-direction: row; background-clip: padding-box; border-width: var(--input--border-width, var(--input--border-top-width, var(--border-top-width)) var(--input--border-right-width, var(--border-right-width)) var(--input--border-bottom-width, var(--border-bottom-width)) var(--input--border-left-width, var(--border-left-width))); border-style: var(--input--border-style, var(--input--border-top-style, var(--border-top-style)) var(--input--border-right-style, var(--border-right-style)) var(--input--border-bottom-style, var(--border-bottom-style)) var(--input--border-left-style, var(--border-left-style))); border-color: var(--input--border-color, var(--input--border-top-color, var(--border-top-color)) var(--input--border-right-color, var(--border-right-color)) var(--input--border-bottom-color, var(--border-bottom-color)) var(--input--border-left-color, var(--border-left-color))); border-radius: var(--input--border-radius, var(--input--border-top-left-radius, var(--border-top-left-radius)) var(--input--border-top-right-radius, var(--border-top-right-radius)) var(--input--border-bottom-right-radius, var(--border-bottom-right-radius)) var(--input--border-bottom-left-radius, var(--border-bottom-left-radius))); box-shadow: var(--input--box-shadow, var(--input--box-shadow-x-offset, var(--box-shadow-offset-x)) var(--input--box-shadow-y-offset, var(--box-shadow-offset-y)) var(--input--box-shadow-blur-radius, var(--box-shadow-blur-radius)) var(--input--box-shadow-spread-radius, var(--box-shadow-spread-radius)) var(--input--box-shadow-color, var(--box-shadow-color))); transition-property: var(--input--transition-property, background-color, color, border-color, box-shadow); transition-duration: var(--input--transition-duration, var(--transition-duration)); transition-timing-function: var(--input--transition-timing-function, var(--transition-timing-function)); color: var(--input--color); background-color: var(--input--background); font-size: var(--input--font-size, var(--font-size)); } .input-wrapper .input:hover { border-color: var(--input--hover--border-color); } .input-wrapper .input:focus-within { outline: 0; box-shadow: var(--input--box-shadow, var(--input--box-shadow-x-offset, var(--box-shadow-offset-x)) var(--input--box-shadow-y-offset, var(--box-shadow-offset-y)) var(--input--box-shadow-blur-radius, var(--box-shadow-blur-radius)) var(--input--box-shadow-spread-radius, var(--box-shadow-spread-radius)) var(--input--box-shadow-color, var(--box-shadow-color))); border-color: var(--input--focus--border-color); } .input-wrapper .input > input, .input-wrapper .input > select, .input-wrapper .input > textarea { position: relative; flex: 1 0 auto; width: 1%; background: transparent; border: 0; margin: 0; outline: 0; line-height: var(--input--line-height, var(--line-height)); color: var(--input--color); padding: var(--input--padding, var(--input--padding-top, var(--padding-top)) var(--input--padding-right, var(--padding-right)) var(--input--padding-bottom, var(--padding-bottom)) var(--input--padding-left, var(--padding-left))); /** * Select */ } .input-wrapper .input > input::-ms-expand, .input-wrapper .input > select::-ms-expand, .input-wrapper .input > textarea::-ms-expand { background-color: transparent; border: 0; } .input-wrapper .input > input::placeholder, .input-wrapper .input > select::placeholder, .input-wrapper .input > textarea::placeholder { opacity: 1; color: var(--input--placeholder--color); } .input-wrapper .input > input:disabled, .input-wrapper .input > input[readonly], .input-wrapper .input > select:disabled, .input-wrapper .input > select[readonly], .input-wrapper .input > textarea:disabled, .input-wrapper .input > textarea[readonly] { opacity: 1; cursor: default; } .input-wrapper .input > input[readonly]:focus, .input-wrapper .input > select[readonly]:focus, .input-wrapper .input > textarea[readonly]:focus { outline: 0; } .input-wrapper .input .input-prefix, .input-wrapper .input .input-suffix { display: inline-flex; align-items: center; z-index: 1; font-style: normal; transition-property: var(--input--transition-property, border-color); transition-duration: var(--input--transition-duration, var(--transition-duration)); transition-timing-function: var(--input--transition-timing-function, var(--transition-timing-function)); border-color: var(--input--border-color, var(--input--border-top-color, var(--border-top-color)) var(--input--border-right-color, var(--border-right-color)) var(--input--border-bottom-color, var(--border-bottom-color)) var(--input--border-left-color, var(--border-left-color))); color: var(--input--prefix-suffix--color); padding-right: var(--input--prefix-suffix--padding-right, var(--input--padding-right, var(--padding-right))); padding-left: var(--input--prefix-suffix--padding-left, var(--input--padding-left, var(--padding-left))); } .input-wrapper .input .input-prefix > button:not(.button):not(.select-caret), .input-wrapper .input .input-suffix > button:not(.button):not(.select-caret) { background: transparent; border: 0; color: inherit; } .input-wrapper .input .input-prefix { border-right-width: var(--input--prefix--border-right-width, var(--input--border-right-width, var(--border-right-width))); border-right-style: var(--input--prefix--border-right-style, var(--input--border-right-style, var(--border-right-style))); } .input-wrapper .input .input-suffix { border-left-width: var(--input--suffix--border-left-width, var(--input--border-left-width, var(--border-left-width))); border-left-style: var(--input--prefix--border-left-style, var(--input--border-left-style, var(--border-left-style))); } .input-wrapper .input .input-icon { transition-property: var(--input--transition-property, color); transition-duration: var(--input--transition-duration, var(--transition-duration)); transition-timing-function: var(--input--transition-timing-function, var(--transition-timing-function)); cursor: pointer; width: auto; height: var(--input--icon--size); color: var(--input--icon--color); } .input-wrapper .input .input-icon:hover, .input-wrapper .input .input-icon:focus { color: var(--input--icon--hover--color, var(--input--icon--color)); } .input-wrapper .input-prepend, .input-wrapper .input-append { display: flex; flex-flow: row nowrap; align-items: stretch; padding: 0; line-height: var(--input-line-height, var(--line-height)); transition-property: var(--input--transition-property, background-color); transition-duration: var(--input--transition-duration, var(--transition-duration)); transition-timing-function: var(--input--transition-timing-function, var(--transition-timing-function)); background-color: var(--input--prepend-append--background); font-size: var(--input--font-size, var(--font-size)); } .input-wrapper .input-prepend > *, .input-wrapper .input-append > * { display: flex; flex: auto 1 0; align-self: stretch; align-items: center; border-radius: 0; padding-left: var(--input--prepend-append--padding-left, var(--input--padding-left, var(--padding-left))); padding-right: var(--input--prepend-append--padding-right, var(--input--padding-right, var(--padding-right))); } .input-wrapper .input-prepend > [class$=-wrapper], .input-wrapper .input-append > [class$=-wrapper] { padding-left: 0; padding-right: 0; } .input-wrapper .input-prepend > [class$=-wrapper] > [class$=-trigger], .input-wrapper .input-append > [class$=-wrapper] > [class$=-trigger] { display: flex; align-self: stretch; } .input-wrapper .input-value-overlay { position: absolute; padding-left: var(--input--value-overlay--padding-left, var(--input--padding-left, var(--padding-left))); padding-right: var(--input--value-overlay--padding-right, var(--input--padding-left, var(--padding-left))); } .input-wrapper .input-value-overlay, .input-wrapper .input-value-overlay > * { cursor: default; } .input-wrapper .input-prepend, .input-wrapper .input-prepend > *:first-child { border-top-left-radius: var(--input--border-top-left-radius, var(--border-top-left-radius)); border-bottom-left-radius: var(--input--border-bottom-left-radius, var(--border-bottom-left-radius)); } .input-wrapper .input-append, .input-wrapper .input-append > *:last-child { border-top-right-radius: var(--input--border-top-right-radius, var(--border-top-right-radius)); border-bottom-right-radius: var(--input--border-bottom-right-radius, var(--border-bottom-right-radius)); } .input-wrapper.-prepended, .input-wrapper.-appended { display: flex; flex-wrap: nowrap; } .input-wrapper.-prepended > .input, .input-wrapper.-appended > .input { flex-shrink: 1; } .input-wrapper.-prepended > .input { border-top-left-radius: 0; border-bottom-left-radius: 0; } .input-wrapper.-appended > .input { border-top-right-radius: 0; border-bottom-right-radius: 0; } .input-wrapper.-error > .input { border-color: var(--input--error--border-color, var(--color-danger)); } .input-wrapper.-disabled > .input, .input-wrapper.-readonly > .input { color: var(--input--disabled--color, var(--input--color)); background: var(--input--disabled--background, var(--input--background)); } .input-wrapper.-disabled > .input:hover, .input-wrapper.-readonly > .input:hover { border-color: var(--input--border-color, var(--input--border-top-color, var(--border-top-color)) var(--input--border-right-color, var(--border-right-color)) var(--input--border-bottom-color, var(--border-bottom-color)) var(--input--border-left-color, var(--border-left-color))); } .input-wrapper.-disabled > .input > input:disabled, .input-wrapper.-disabled > .input > input[readonly], .input-wrapper.-disabled > .input > select:disabled, .input-wrapper.-disabled > .input > select[readonly], .input-wrapper.-disabled > .input > textarea:disabled, .input-wrapper.-disabled > .input > textarea[readonly], .input-wrapper.-readonly > .input > input:disabled, .input-wrapper.-readonly > .input > input[readonly], .input-wrapper.-readonly > .input > select:disabled, .input-wrapper.-readonly > .input > select[readonly], .input-wrapper.-readonly > .input > textarea:disabled, .input-wrapper.-readonly > .input > textarea[readonly] { color: var(--input--disabled--color); } .input-wrapper.-readonly > .input:focus-within { outline: 0; border-color: var(--input--focus--border-color); } /** * Color variants */ .input-wrapper.-light { --input--background: var(--input--light--background, var(--color-white)); --input--color: var(--input--light--color, var(--contrast-text-color-white)); --input--border-color: var(--input--light--border-color, var(--color-light-shade-50)); --input--disabled--background: var( --input--light--disabled--background, var(--color-light) ); --input--disabled--color: var(--input--light--disabled--color, var(--text-color-weak)); --input--hover--border-color: var( --input--light--hover--border-color, var(--color-light-shade-100) ); --input--focus--border-color: var( --input--light--focus--border-color, var(--color-primary) ); --input--icon--color: var(--input--light--icon--color, var(--text-color-weak)); --input--icon--hover--color: var( --input--light--icon--color, var(--contrast-text-color-light) ); --input--placeholder--color: var(--input--light--placeholder--color, var(--color-gray-300)); --input--prefix-suffix--color: var( --input--light--prefix-suffix--color, var(--color-gray-700) ); --input--prepend-append--background: var( --input--light--prepend-append--background, var(--color-light) ); } .input-wrapper.-dark { --input--background: var(--input--dark--background, var(--color-dark)); --input--color: var(--input--dark--color, var(--contrast-text-color-dark)); --input--border-color: var(--input--dark--border-color, var(--color-dark-tint-50)); --input--disabled--background: var( --input--dark--disabled--background, var(--color-dark-tint-50) ); --input--disabled--color: var(--input--dark--disabled--color, var(--text-color-weak)); --input--hover--border-color: var( --input--dark--hover--border-color, var(--color-dark-tint-100) ); --input--focus--border-color: var(--input--dark--focus--border-color, var(--color-primary)); --input--icon--color: var(--input--dark--icon--color, var(--text-color-weak)); --input--icon--hover--color: var( --input--dark--icon--color, var(--contrast-text-color-dark) ); --input--placeholder--color: var(--input--dark--placeholder--color, var(--color-gray-600)); --input--prefix-suffix--color: var( --input--dark--prefix-suffix--color, var(--color-dark-250) ); --input--prepend-append--background: var( --input--dark--prepend-append--background, var(--color-dark) ); } /** * Size variants */ .input-wrapper.-sm { --input--border-top-left-radius: var( --input--sm--border-top-left-radius, calc(var(--border-top-left-radius) * var(--size-multiplier-sm)) ); --input--border-top-right-radius: var( --input--sm--border-top-right-radius, calc(var(--border-top-right-radius) * var(--size-multiplier-sm)) ); --input--border-bottom-right-radius: var( --input--sm--border-bottom-right-radius, calc(var(--border-bottom-right-radius) * var(--size-multiplier-sm)) ); --input--border-bottom-left-radius: var( --input--sm--border-bottom-left-radius, calc(var(--border-bottom-left-radius) * var(--size-multiplier-sm)) ); --input--font-size: var( --input--sm--font-size, calc(var(--font-size) * var(--size-multiplier-sm)) ); --input--padding-top: var( --input--sm--padding-top, calc(var(--padding-top) * 0.5 * var(--size-multiplier-sm)) ); --input--padding-right: var( --input--sm--padding-right, calc(var(--padding-right) * var(--size-multiplier-sm)) ); --input--padding-bottom: var( --input--sm--padding-bottom, calc(var(--padding-bottom) * 0.5 * var(--size-multiplier-sm)) ); --input--padding-left: var( --input--sm--padding-left, calc(var(--padding-left) * var(--size-multiplier-sm)) ); --input--icon--size: calc(1rem * var(--size-multiplier-sm)); } .input-wrapper.-md { --input--border-top-left-radius: var( --input--md--border-top-left-radius, calc(var(--border-top-left-radius) * var(--size-multiplier-md)) ); --input--border-top-right-radius: var( --input--md--border-top-right-radius, calc(var(--border-top-right-radius) * var(--size-multiplier-md)) ); --input--border-bottom-right-radius: var( --input--md--border-bottom-right-radius, calc(var(--border-bottom-right-radius) * var(--size-multiplier-md)) ); --input--border-bottom-left-radius: var( --input--md--border-bottom-left-radius, calc(var(--border-bottom-left-radius) * var(--size-multiplier-md)) ); --input--font-size: var( --input--md--font-size, calc(var(--font-size) * var(--size-multiplier-md)) ); --input--padding-top: var( --input--md--padding-top, calc(var(--padding-top) * 0.5 * var(--size-multiplier-md)) ); --input--padding-right: var( --input--md--padding-right, calc(var(--padding-right) * var(--size-multiplier-md)) ); --input--padding-bottom: var( --input--md--padding-bottom, calc(var(--padding-bottom) * 0.5 * var(--size-multiplier-md)) ); --input--padding-left: var( --input--md--padding-left, calc(var(--padding-left) * var(--size-multiplier-md)) ); --input--icon--size: calc(1rem * var(--size-multiplier-md)); } .input-wrapper.-lg { --input--border-top-left-radius: var( --input--lg--border-top-left-radius, calc(var(--border-top-left-radius) * var(--size-multiplier-lg)) ); --input--border-top-right-radius: var( --input--lg--border-top-right-radius, calc(var(--border-top-right-radius) * var(--size-multiplier-lg)) ); --input--border-bottom-right-radius: var( --input--lg--border-bottom-right-radius, calc(var(--border-bottom-right-radius) * var(--size-multiplier-lg)) ); --input--border-bottom-left-radius: var( --input--lg--border-bottom-left-radius, calc(var(--border-bottom-left-radius) * var(--size-multiplier-lg)) ); --input--font-size: var( --input--lg--font-size, calc(var(--font-size) * var(--size-multiplier-lg)) ); --input--padding-top: var( --input--lg--padding-top, calc(var(--padding-top) * 0.5 * var(--size-multiplier-lg)) ); --input--padding-right: var( --input--lg--padding-right, calc(var(--padding-right) * var(--size-multiplier-lg)) ); --input--padding-bottom: var( --input--lg--padding-bottom, calc(var(--padding-bottom) * 0.5 * var(--size-multiplier-lg)) ); --input--padding-left: var( --input--lg--padding-left, calc(var(--padding-left) * var(--size-multiplier-lg)) ); --input--icon--size: calc(1rem * var(--size-multiplier-lg)); }