UNPKG

@openui5/sap.m

Version:

OpenUI5 UI Library sap.m

588 lines (471 loc) 17.7 kB
/* ================================ */ /* CSS for control sap.m/InputBase */ /* Base theme */ /* ================================ */ @_sap_m_InputBase_InnerMinWidth: 3rem; @_sap_m_InputBase_InnerPadding: 0 0.75rem; @_sap_m_InputBase_DisabledOpacity: 0.5; @_sap_m_InputBase_IconLineHeight: 2.375rem; @_sap_m_InputBase_IconWidth: 2.375rem; @_sap_m_InputBase_Compact_IconWidth: 2rem; @_sap_m_InputBase_IconMinWidth: 2.375rem; @_sap_m_InputBaseWrapper_Sum_Border: 0.125rem; @_sap_m_InputBase_InnerMinWidth_Compact: 2rem; @_sap_m_InputBase_Compact_InnerPadding: 0 0.5rem; @_sap_m_InputBase_FocusOffset: 1px; @_sap_m_InputBase_FocusOffset_Busy: @_sap_m_InputBase_FocusOffset + 1px; @_sap_m_InputBase_FocusBorderRadius: 0; @_sap_m_InputBase_ReadOnly_FocusOffset: 0.125rem; @_sap_m_InputBase_ReadOnly_BorderRadius: 0.125rem; /* MIN-WIDTH variables */ /* rounding values to 2 symbols, because of IE and Edge */ @_InputBase_Control_MinWidth: round((@_sap_m_InputBase_InnerMinWidth + @_sap_m_InputBaseWrapper_Sum_Border), 2); @_InputBase_Control_OneIcon_MinWidth: round((@_InputBase_Control_MinWidth + @_sap_m_InputBase_IconWidth), 2); @_InputBase_Control_TwoIcons_MinWidth: round((@_InputBase_Control_MinWidth + @_sap_m_InputBase_IconWidth * 2), 2); @_InputBase_Control_State_MinWidth: round((@_InputBase_Control_MinWidth + @_sap_m_InputBaseWrapper_Sum_Border), 2); @_InputBase_Control_TwoIcons_State_MinWidth: round((@_InputBase_Control_TwoIcons_MinWidth + @_sap_m_InputBaseWrapper_Sum_Border), 2); @_InputBase_Control_OneIcon_State_MinWidth: round((@_InputBase_Control_OneIcon_MinWidth + @_sap_m_InputBaseWrapper_Sum_Border), 2); @_InputBase_Control_MinWidth_Compact: round((@_sap_m_InputBase_InnerMinWidth_Compact + @_sap_m_InputBaseWrapper_Sum_Border), 2); @_InputBase_Control_OneIcon_MinWidth_Compact: round((@_InputBase_Control_MinWidth_Compact + @_sap_m_InputBase_Compact_IconWidth), 2); @_InputBase_Control_TwoIcons_MinWidth_Compact: round((@_InputBase_Control_MinWidth_Compact + @_sap_m_InputBase_Compact_IconWidth * 2), 2); @_InputBase_Control_State_MinWidth_Compact: round((@_InputBase_Control_MinWidth_Compact + @_sap_m_InputBaseWrapper_Sum_Border), 2); @_InputBase_Control_TwoIcons_State_MinWidth_Compact: round((@_InputBase_Control_TwoIcons_MinWidth_Compact + @_sap_m_InputBaseWrapper_Sum_Border), 2); @_InputBase_Control_OneIcon_State_MinWidth_Compact: round((@_InputBase_Control_OneIcon_MinWidth_Compact + @_sap_m_InputBaseWrapper_Sum_Border), 2); .sapMInputBase { height: var(--sapElement_Height); background: transparent; position: relative; display: inline-block; vertical-align: top; outline: none; box-sizing: border-box; line-height: 0; } .sapMInputBaseHeightMargin { margin: 0.25rem 0; } /* handle min-width calculation */ .sapMInputBaseHasEndIcons, .sapMInputBaseHasBeginIcons { .sapMInputBaseContentWrapper { min-width: @_InputBase_Control_OneIcon_MinWidth; &.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) { min-width: @_InputBase_Control_OneIcon_State_MinWidth; } } } .sapMInputBaseHasEndIcons.sapMInputBaseHasBeginIcons { .sapMInputBaseContentWrapper { min-width: @_InputBase_Control_TwoIcons_MinWidth; &.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) { min-width: @_InputBase_Control_TwoIcons_State_MinWidth; } } } .sapMInputBase:not(.sapMInputBaseHasEndIcons):not(.sapMInputBaseHasBeginIcons) { .sapMInputBaseContentWrapper { min-width: @_InputBase_Control_MinWidth; &.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) { min-width: @_InputBase_Control_State_MinWidth; } } } .sapMInputBaseInner { background: transparent; border: none; font-style: normal; -webkit-appearance: none; -moz-appearance: textfield; font-size: var(--sapFontSize); font-family: var(--sapFontFamily); color: var(--sapField_TextColor); line-height: normal; padding: @_sap_m_InputBase_InnerPadding; height: 100%; box-sizing: border-box; min-width: @_sap_m_InputBase_InnerMinWidth; overflow: hidden; text-overflow: ellipsis; vertical-align: inherit; } .sapMInputBaseReadonly .sapMInputBaseIconContainer { height: 0; } .sapMInputBase:not(.sapMInputBaseHasEndIcons):not(.sapMInputBaseHasBeginIcons) .sapMInputBaseInner, .sapMInputBaseNoWidth .sapMInputBaseInner { width: 100%; } .sapMInputBaseInner { .sapMInputBaseHasEndIcons &, .sapMInputBaseHasBeginIcons & { width: calc(~'100% - @{_sap_m_InputBase_IconWidth}'); } .sapMInputBaseHasEndIcons.sapMInputBaseHasBeginIcons & { width: calc(~'100% - @{_sap_m_InputBase_IconWidth}*2'); } } .sapMInputBaseContentWrapper { height: 100%; box-sizing: border-box; display: inline-block; position: relative; overflow: hidden; border-radius: 0; vertical-align: middle; margin: 0; background: var(--sapField_BackgroundStyle); background-color: var(--sapField_Background); border: var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor); border-radius: var(--sapField_BorderCornerRadius); } .sapMInputBaseContentWrapper:not(.sapMInputBaseReadonlyWrapper):not(.sapMInputBaseContentWrapperState) { box-shadow: var(--sapField_Shadow); } .sapMILI-CTX .sapMInputBaseContentWrapperError, .sapMInputBaseContentWrapperError { background: var(--sapField_InvalidBackgroundStyle); background-color: var(--sapField_InvalidBackground); border: var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle) var(--sapField_InvalidColor); box-shadow: var(--sapField_InvalidShadow); } .sapMInputBaseContentWrapperWarning { background: var(--sapField_WarningBackgroundStyle); background-color: var(--sapField_WarningBackground); border: var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle) var(--sapField_WarningColor); box-shadow: var(--sapField_WarningShadow); } .sapMInputBaseContentWrapperSuccess { background: var(--sapField_SuccessBackgroundStyle); background-color: var(--sapField_SuccessBackground); border: var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle) var(--sapField_SuccessColor); box-shadow: var(--sapField_SuccessShadow); } .sapMInputBaseContentWrapperInformation { background: var(--sapField_InformationBackgroundStyle); background-color: var(--sapField_InformationBackground); border: var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle) var(--sapField_InformationColor); box-shadow: var(--sapField_InformationShadow); } .sapMInputBaseIconContainer { display: inline-block; vertical-align: inherit; height: 100%; width: auto; outline: none; } .sapMInputBaseHasBeginIcons .sapMInputBaseInner { padding-left: 0.25rem; } .sapMInputBaseHasEndIcons .sapMInputBaseInner { padding-right: 0.25rem; } .sapMInputBaseIcon { width: @_sap_m_InputBase_IconWidth; min-width: @_sap_m_InputBase_IconMinWidth; height: 100%; cursor: pointer; background: transparent; -webkit-user-select: none; -moz-user-select: none; user-select: none; } .sapMInputBaseIconContainer .sapUiIcon.sapMInputBaseIcon { line-height: @_sap_m_InputBase_IconLineHeight; } .sapMFocus.sapMInputBase .sapMInputBaseContentWrapper:not(.sapMInputBaseDisabledWrapper) { &::before { border: var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor); border-radius: @_sap_m_InputBase_FocusBorderRadius; content: ''; position: absolute; top: @_sap_m_InputBase_FocusOffset; left: @_sap_m_InputBase_FocusOffset; right: @_sap_m_InputBase_FocusOffset; bottom: @_sap_m_InputBase_FocusOffset; z-index: 2; pointer-events: none; } } .sapMInputBase .sapUiLocalBusyIndicator:focus::after { top: @_sap_m_InputBase_FocusOffset_Busy; left: @_sap_m_InputBase_FocusOffset_Busy; right: @_sap_m_InputBase_FocusOffset_Busy; bottom: @_sap_m_InputBase_FocusOffset_Busy; border-radius: @_sap_m_InputBase_FocusBorderRadius; } .sapMInputBaseInner::-webkit-input-placeholder { font-size: @sapMFontMediumSize; font-style: italic; padding: 0 .125rem; } .sapMInputBaseInner::-moz-placeholder { font-size: @sapMFontMediumSize; font-style: italic; padding: 0 .125rem; } .sapMInputBaseInner::-webkit-outer-spin-button, .sapMInputBaseInner::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } .sapMInputBaseInner:focus { outline: none; outline-width: 0; } .sapMPointer>.sapMInputBaseInner { cursor: pointer; } .sapMInputBaseDisabled { opacity: @_sap_m_InputBase_DisabledOpacity; .sapMInputBaseIcon { cursor: default; } } .sapMInputBaseInner[placeholder] { text-overflow: ellipsis; } .sapMInputBaseInner::-webkit-input-placeholder { color: var(--sapField_PlaceholderTextColor); text-overflow: ellipsis !important; /* important is necessary to overwrite inline style of shadow dom */ } .sapMInputBaseInner::-moz-placeholder { color: var(--sapField_PlaceholderTextColor); } input.sapMInputBaseInner:invalid { /* disable native browser input validation visualization e.g. for type email or number */ box-shadow: none; } /*read only*/ .sapMInputBaseReadonly:not(.sapMInputBaseDisabled) .sapMInputBaseContentWrapper { border-color: var(--sapField_ReadOnly_BorderColor); border-style: var(--sapField_ReadOnly_BorderStyle); background: var(--sapField_ReadOnly_BackgroundStyle); background-color: var(--sapField_ReadOnly_Background); } /* read only focus (::before) */ .sapMInputBaseReadonly.sapMInputBaseReadonly:not(.sapMInputBaseDisabled) .sapMInputBaseContentWrapper.sapMInputBaseContentWrapper::before { border-radius: @_sap_m_InputBase_ReadOnly_BorderRadius; top: @_sap_m_InputBase_ReadOnly_FocusOffset; left: @_sap_m_InputBase_ReadOnly_FocusOffset; right: @_sap_m_InputBase_ReadOnly_FocusOffset; bottom: @_sap_m_InputBase_ReadOnly_FocusOffset; } .sapMInputBaseInner:not(.sapMInputBaseReadonlyWrapper):not(.sapMInputBaseContentWrapperState):focus { border-color: var(--sapField_Focus_BorderColor); } .sapMInputBase:not(.sapMFocus) .sapMInputBaseContentWrapper:not(.sapMInputBaseReadonlyWrapper):not(.sapMInputBaseContentWrapperState):not(.sapMInputBaseDisabledWrapper) { &:hover { background: var(--sapField_Hover_BackgroundStyle); background-color: var(--sapField_Hover_Background); border-color: var(--sapField_Hover_BorderColor); box-shadow: var(--sapField_Hover_Shadow); } } .sapMInputBaseContentWrapper:not(.sapMInputBaseReadonlyWrapper):not(.sapMInputBaseContentWrapperState):not(.sapMInputBaseDisabledWrapper) { &:hover { border-color: var(--sapField_Hover_BorderColor); } &:active { background: @sapUiFieldFocusBackground; border-color: var(--sapField_Hover_BorderColor); } } .sapMInputBase:not(.sapMFocus) .sapMInputBaseContentWrapperState:hover, .sapMInputBase:not(.sapMFocus).sapMInputBaseIconPressed .sapMInputBaseContentWrapperState { &.sapMInputBaseContentWrapperWarning:hover, &.sapMInputBaseContentWrapperWarning { box-shadow: var(--sapField_Hover_WarningShadow); } &.sapMInputBaseContentWrapperSuccess:hover, &.sapMInputBaseContentWrapperSuccess { box-shadow: var(--sapField_Hover_SuccessShadow); } &.sapMInputBaseContentWrapperError:hover, &.sapMInputBaseContentWrapperError { box-shadow: var(--sapField_Hover_InvalidShadow); } &.sapMInputBaseContentWrapperInformation:hover, &.sapMInputBaseContentWrapperInformation { box-shadow: var(--sapField_Hover_InformationShadow); } } .sapMInputBase:not(.sapMInputBaseDisabled) { &.sapMInputBaseIconPressed .sapMInputBaseIcon, .sapMInputBaseIcon:active, .sapMInputBaseIcon:hover { box-shadow: var(--sapField_Hover_Shadow); } &.sapMInputBaseIconPressed .sapMInputBaseContentWrapperError .sapMInputBaseIconContainer .sapMInputBaseIcon, .sapMInputBaseContentWrapperError .sapMInputBaseIconContainer .sapMInputBaseIcon:active, .sapMInputBaseContentWrapperError .sapMInputBaseIconContainer .sapMInputBaseIcon:hover { box-shadow: var(--sapField_Hover_InvalidShadow); } &.sapMInputBaseIconPressed .sapMInputBaseContentWrapperWarning .sapMInputBaseIconContainer .sapMInputBaseIcon, .sapMInputBaseContentWrapperWarning .sapMInputBaseIconContainer .sapMInputBaseIcon:active, .sapMInputBaseContentWrapperWarning .sapMInputBaseIconContainer .sapMInputBaseIcon:hover { box-shadow: var(--sapField_Hover_WarningShadow); } &.sapMInputBaseIconPressed .sapMInputBaseContentWrapperSuccess .sapMInputBaseIconContainer .sapMInputBaseIcon, .sapMInputBaseContentWrapperSuccess .sapMInputBaseIconContainer .sapMInputBaseIcon:active, .sapMInputBaseContentWrapperSuccess .sapMInputBaseIconContainer .sapMInputBaseIcon:hover { box-shadow: var(--sapField_Hover_SuccessShadow); } &.sapMInputBaseIconPressed .sapMInputBaseContentWrapperInformation .sapMInputBaseIconContainer .sapMInputBaseIcon, .sapMInputBaseContentWrapperInformation .sapMInputBaseIconContainer .sapMInputBaseIcon:active, .sapMInputBaseContentWrapperInformation .sapMInputBaseIconContainer .sapMInputBaseIcon:hover { box-shadow: var(--sapField_Hover_InformationShadow); } } /* Compact size */ .sapUiSizeCompact { .sapMInputBase { line-height: 1rem; height: var(--sapElement_Compact_Height); } .sapMInputBaseContentWrapper { height: var(--sapElement_Compact_Height); } .sapMInputBaseInner { padding: @_sap_m_InputBase_Compact_InnerPadding; min-width: @_sap_m_InputBase_InnerMinWidth_Compact; } .sapMInputBaseHasEndIcons .sapMInputBaseInner, .sapMInputBaseHasBeginIcons .sapMInputBaseInner { width: calc(~'100% - @{_sap_m_InputBase_Compact_IconWidth}'); } .sapMInputBaseHasEndIcons.sapMInputBaseHasBeginIcons .sapMInputBaseInner { width: calc(~'100% - @{_sap_m_InputBase_Compact_IconWidth}*2'); } .sapMInputBaseIcon { width: @_sap_m_InputBase_Compact_IconWidth; min-width: 2rem; } .sapMInputBaseIconContainer .sapUiIcon.sapMInputBaseIcon { line-height: 1.5rem; } .sapMInputBaseContentWrapper.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) .sapMInputBaseIcon { line-height: 1.375rem; } .sapMInputBaseHasBeginIcons .sapMInputBaseInner { padding-left: 0.25rem; } .sapMInputBaseHasEndIcons .sapMInputBaseInner { padding-right: 0.25rem; } /* handle min-width calculation */ .sapMInputBaseHasEndIcons, .sapMInputBaseHasBeginIcons { .sapMInputBaseContentWrapper { min-width: @_InputBase_Control_OneIcon_MinWidth_Compact; &.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) { min-width: @_InputBase_Control_OneIcon_State_MinWidth_Compact; } } } .sapMInputBaseHasEndIcons.sapMInputBaseHasBeginIcons { .sapMInputBaseContentWrapper { min-width: @_InputBase_Control_TwoIcons_MinWidth_Compact; &.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) { min-width: @_InputBase_Control_TwoIcons_State_MinWidth_Compact; } } } .sapMInputBase:not(.sapMInputBaseHasEndIcons):not(.sapMInputBaseHasBeginIcons) { .sapMInputBaseContentWrapper { min-width: @_InputBase_Control_MinWidth_Compact; &.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) { min-width: @_InputBase_Control_State_MinWidth_Compact; } } } .sapMInputBaseHeightMargin { margin: 0.1875rem 0; } } /* Condensed size */ .sapUiSizeCondensed .sapUiTableCell { .sapMInputBase { height: 1.375rem; /* + 2*1px padding = 1.5rem */ padding: 0 0.0625rem; /* 1px padding only */ } .sapMInputBaseHeightMargin { margin: 0; } .sapMInputBaseInner:not(.sapMInputBaseContentWrapperState) { border-color: transparent; } .sapMInputBaseContentWrapper:not(.sapMInputBaseContentWrapperSuccess) { height: 1.375rem; } } /* Input selection fix - * Due to the fact that the CSS parsing rules require dropping the whole rule when encountering an invalid * pseudo-element, two separate rules must be written */ .sapMInputBaseInner { &::selection, &::-moz-selection { background: var(--sapSelectedColor); color: var(--sapContent_ContrastTextColor); } } /* Google chrome and Safari input selection fix: * The browser renders the selection background with 50% opacity by default. * The solution is to use fade with a value for alpha 99 if it's set 100 the browser ignores it. */ html[data-sap-ui-browser^='sf'], html[data-sap-ui-browser^='cr'] { .sapMInputBaseInner::selection { background: fade(@sapUiSelected, 99); color: fade(@sapUiContentContrastTextColor, 99); } } /* When disabled or read-only hide placeholder by setting opacity to 0 */ .sapMInputBaseDisabled { .sapMInputBaseInner::-webkit-input-placeholder { opacity: 0; } .sapMInputBaseInner::-moz-placeholder { opacity: 0; } } .sapMInputBaseReadonly { .sapMInputBaseInner::-webkit-input-placeholder { opacity: 0; } .sapMInputBaseInner::-moz-placeholder { opacity: 0; } } .sapMInputBaseDisabledWrapper .sapMInputBaseIcon { color: var(--sapContent_DisabledTextColor); } /* pressed */ .sapMInputBaseIconPressed .sapMInputBaseIcon, .sapMInputBaseIconPressed .sapMInputBaseIcon:hover { background: @sapUiToggleButtonPressedBackground; } .sapMInputBaseIconPressed .sapMInputBaseIcon::before { color: @sapUiToggleButtonPressedTextColor; } .sapMInputBaseIconPressed .sapMInputBaseContentWrapper:not(.sapMInputBaseReadonlyWrapper):not(.sapMInputBaseContentWrapperState):not(.sapMInputBaseDisabledWrapper) { border-color: var(--sapField_Active_BorderColor); } .sapUiSizeCondensed .sapUiTableDataCell { .sapMInputBaseContentWrapper { height: 1.375rem; } .sapMInputBaseContentWrapper:not(.sapMInputBaseContentWrapperState) { border: none; } .sapMInputBase .sapMInputBaseIcon { height: 1.375rem; width: 1.375rem; line-height: 1.375rem; } } .sapMInputBase .sapUiLocalBusyIndicator:focus { outline: none; }