/** * Creates a visual theme for "labelable" form items. Provides visual styling for the * Label and error message that can be shared between many types of form fields. * * @param {string} $ui * The name of the UI being created. Can not included spaces or special punctuation * (used in CSS class names). * * @param {color} [$ui-font-color=$form-label-font-color] * The text color the label * * @param {string} [$ui-font-weight=$form-label-font-weight] * The font-weight of the label * * @param {number} [$ui-font-size=$form-label-font-size] * The font-size of the label * * @param {string} [$ui-font-family=$form-label-font-family] * The font-family the label * * @param {number} [$ui-height=$form-field-height] * The height of the label. This should be the same height as the height of fields that * this label ui will be used with. This does not actually set the height of the label * but is used to ensure that the label is centered within the given height. * * @param {number} [$ui-line-height=$form-label-line-height] * The line-height of the label * * @param {number} [$ui-horizontal-spacing=$form-label-horizontal-spacing] * Horizontal space between the label and the field body when the label is left-aligned. * * @param {number} [$ui-vertical-spacing=$form-label-vertical-spacing] * Vertical space between the label and the field body when the label is top-aligned. * * @param {number} [$ui-error-icon-background-image=$form-error-icon-background-image] * The background-image of the error icon * * @param {number} [$ui-error-icon-width=$form-error-icon-width] * The width of the error icon * * @param {number} [$ui-error-icon-height=$form-error-icon-height] * The height of the error icon * * @param {number/list} [$ui-error-icon-side-margin=$form-error-icon-side-margin] * Margin for error icons when aligned to the side of the field * * @param {number} [$ui-error-under-icon-spacing=$form-error-under-icon-spacing] * The space between the icon and the message for errors that display under the field * * @param {number/list} [$ui-error-under-padding=$form-error-under-padding] * The padding on errors that display under the form field * * @param {color} [$ui-error-msg-color=$form-error-msg-color] * The text color of form error messages * * @param {string} [$ui-error-msg-font-weight=$form-error-msg-font-weight] * The font-weight of form error messages * * @param {number} [$ui-error-msg-font-size=$form-error-msg-font-size] * The font-size of form error messages * * @param {string} [$ui-error-msg-font-family=$form-error-msg-font-family] * The font-family of form error messages * * @param {number} [$ui-error-msg-line-height=$form-error-msg-line-height] * The line-height of form error messages * * @param {number} [$ui-disabled-opacity=$form-field-disabled-opacity] * Opacity of disabled form fields * * @member Ext.form.Labelable */ @mixin extjs-label-ui( $ui: null, $ui-font-color: $form-label-font-color, $ui-font-weight: $form-label-font-weight, $ui-font-size: $form-label-font-size, $ui-font-family: $form-label-font-family, $ui-height: $form-field-height, $ui-line-height: $form-label-line-height, $ui-horizontal-spacing: $form-label-horizontal-spacing, $ui-vertical-spacing: $form-label-vertical-spacing, $ui-error-icon-background-image: $form-error-icon-background-image, $ui-error-icon-width: $form-error-icon-width, $ui-error-icon-height: $form-error-icon-height, $ui-error-icon-side-margin: $form-error-icon-side-margin, $ui-error-under-icon-spacing: $form-error-under-icon-spacing, $ui-error-under-padding: $form-error-under-padding, $ui-error-msg-color: $form-error-msg-color, $ui-error-msg-font-weight: $form-error-msg-font-weight, $ui-error-msg-font-size: $form-error-msg-font-size, $ui-error-msg-font-family: $form-error-msg-font-family, $ui-error-msg-line-height: $form-error-msg-line-height, $ui-disabled-opacity: $form-field-disabled-opacity ) { $ui-error-wrap-width: $ui-error-icon-width + horizontal($ui-error-icon-side-margin); .#{$prefix}form-item-label-#{$ui} { $padding-top: round(($ui-height - $ui-line-height) / 2); color: $ui-font-color; font: $ui-font-weight #{$ui-font-size}/#{$ui-line-height} $ui-font-family; min-height: $ui-height; padding-top: $padding-top; padding-right: $ui-horizontal-spacing; @if $include-rtl { &.#{$prefix}rtl { padding-left: $ui-horizontal-spacing; padding-right: 0; } } @if $include-ie { .#{$prefix}ie8 & { // min-height triggers content-box sizing on IE8, so subtract padding min-height: $ui-height - $padding-top; } } &.#{$prefix}form-item-label-top { height: 1px; > .#{$prefix}form-item-label-inner { padding-top: round(($ui-height - $ui-line-height) / 2); padding-bottom: $ui-vertical-spacing; } } &.#{$prefix}form-item-label-top-side-error:after { width: $ui-error-wrap-width; } } .#{$prefix}form-item-body-#{$ui} { min-height: $ui-height; } .#{$prefix}form-invalid-icon-#{$ui} { width: $ui-error-icon-width; height: $ui-error-icon-height; margin: $ui-error-icon-side-margin; background: theme-background-image($ui-error-icon-background-image) no-repeat; } .#{$prefix}form-invalid-under-#{$ui} { padding: top($ui-error-under-padding) right($ui-error-under-padding) bottom($ui-error-under-padding) (left($ui-error-under-padding) + $ui-error-icon-width + $ui-error-under-icon-spacing); color: $ui-error-msg-color; font: $ui-error-msg-font-weight #{$ui-error-msg-font-size}/#{$ui-error-msg-line-height} $ui-error-msg-font-family; background: no-repeat left($ui-error-under-padding) top($ui-error-under-padding); background-image: theme-background-image($ui-error-icon-background-image); } .#{$prefix}form-error-wrap-#{$ui}.#{$prefix}form-error-wrap-side { width: $ui-error-wrap-width; } @if $ui-disabled-opacity != 1 { .#{$prefix}form-item-#{$ui}.#{$prefix}item-disabled { @include opacity($ui-disabled-opacity); } } }