UNPKG

@openui5/sap.m

Version:

OpenUI5 UI Library sap.m

404 lines (323 loc) 8.56 kB
/* ============================= */ /* CSS for control sap.m/Avatar */ /* Base theme */ /* ============================= */ @_sap_m_Avatar_Font_Size_XL: 3rem; @_sap_m_Avatar_Font_Size_L: 2.5rem; @_sap_m_Avatar_Font_Size_M: 2rem; @_sap_m_Avatar_Font_Size_S: 1.5rem; @_sap_m_Avatar_Font_Size_XS: 1rem; @_sap_m_Avatar_Hover_Box_Shadow_Offset: 0 0 0 0.0625rem; @_sap_m_Avatar_Badge_Icon_Box_Shadow: 0 0 0 0.0625rem; .sapFAvatar { display: inline-block; position: relative; box-sizing: border-box; &.sapFAvatarBorder { border: 0.0625rem solid var(--sapGroup_ContentBorderColor); } &.sapMAvatarDisabled { opacity: var(--sapContent_DisabledOpacity); } } // Define a loop and go trough 10 color sets .loop-colors(@i: 1) when (@i =< 10) { .generateColor(@i); .loop-colors(@i + 1); // Execute next loop iteration } // Execute Loop through color sets .loop-colors(1); // Create classes which would just set background color of Avatar .generateColor (@accentIndex) { @css-selector: ~"sapFAvatarColorAccent@{accentIndex}"; // Create the css selector string @color-param: ~"sapUiAccent@{accentIndex}"; // Build the color param which is a sapUiAccent @border-param: ~"sapAvatar_@{accentIndex}_TextColor"; // Build the border param // Build the real CSS selector. // The output would be something like this: .sapFAvatar.sapFAvatarColorAccent6 {background-color: #0092d1;} .@{css-selector} { background-color: @@color-param; &.sapFAvatarFocusable:not(.sapMAvatarPressed):not(.sapMAvatarDisabled):hover { box-shadow: @_sap_m_Avatar_Hover_Box_Shadow_Offset @@border-param; } } } .sapFAvatarIcon { text-align: center; color: var(--sapContent_ContrastTextColor); .sapUiIcon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } } .sapFAvatarHiddenIcon { display: none; } .sapFAvatarColorTransparent { background-color: transparent; &.sapFAvatarIcon, & > .sapFAvatarInitialsHolder { color: var(--sapContent_IconColor); } &.sapFAvatarFocusable:not(.sapMAvatarPressed):not(.sapMAvatarDisabled):hover { box-shadow: @_sap_m_Avatar_Hover_Box_Shadow_Offset var(--sapContent_IconColor); } } .sapFAvatarColorTileIcon { background-color: var(--sapTile_IconColor); &.sapFAvatarFocusable:not(.sapMAvatarPressed):not(.sapMAvatarDisabled):hover { box-shadow: @_sap_m_Avatar_Hover_Box_Shadow_Offset var(--sapTile_IconColor); } } .sapFAvatarColorPlaceholder { background-color: var(--sapContent_ImagePlaceholderBackground); &.sapFAvatarFocusable:not(.sapMAvatarPressed):not(.sapMAvatarDisabled):hover { box-shadow: @_sap_m_Avatar_Hover_Box_Shadow_Offset var(--sapContent_ImagePlaceholderForegroundColor); } } .sapFAvatarInitialsHolder { color: var(--sapContent_ContrastTextColor); position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .sapFAvatarImage { text-align: center; .sapFAvatarTypeIcon, .sapFAvatarInitialsHolder { display: none; } &.sapFAvatarFocusable:not(.sapMAvatarPressed):not(.sapMAvatarDisabled):hover { box-shadow: @_sap_m_Avatar_Hover_Box_Shadow_Offset var(--sapAvatar_10_TextColor); } } .sapFAvatarImageHolder { background: no-repeat center; display: block; position: absolute; left: 0; top: 0; right: 0; bottom: 0; .sapFAvatar:not(.sapFAvatarImage) & { display: none; } } .sapFAvatarImageCover { background-size: cover; } .sapFAvatarImageContain { background-size: contain; } .sapFAvatarCircle { border-radius: 50%; .sapMImg, .sapFAvatarImageHolder { border-radius: 50%; } } .sapFAvatarXS { height: 2rem; width: 2rem; font-size: @_sap_m_Avatar_Font_Size_XS; .sapFAvatarInitialsHolder { font-size: 0.75rem; } } .sapFAvatarS { height: 3rem; width: 3rem; font-size: @_sap_m_Avatar_Font_Size_S; .sapFAvatarInitialsHolder { font-size: 1.125rem; } } .sapFAvatarM { height: 4rem; width: 4rem; font-size: @_sap_m_Avatar_Font_Size_M; .sapFAvatarInitialsHolder { font-size: 1.625rem; } } .sapFAvatarL { height: 5rem; width: 5rem; font-size: @_sap_m_Avatar_Font_Size_L; .sapFAvatarInitialsHolder { font-size: 2rem; } } .sapFAvatarXL { height: 7rem; width: 7rem; font-size: @_sap_m_Avatar_Font_Size_XL; .sapFAvatarInitialsHolder { font-size: 2.75rem; } } .sapFAvatarFocusable.sapMAvatarPressed { background-color: var(--sapButton_Selected_Background); color: var(--sapButton_Selected_TextColor); outline-offset: 0.0625rem; &:hover { background-color: var(--sapButton_Selected_Hover_Background); } .sapUiRespGrid & { z-index: 100; } } .sapFAvatarFocusable:focus { outline: var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor); outline-offset: 0.0625rem; .sapUiRespGrid & { z-index: 100; } } html:not(.sap-desktop) .sapFAvatarFocusable.sapMAvatarPressed { outline: none; } .sapFAvatarInitialsHolder { color: var(--sapContent_ImagePlaceholderForegroundColor); } // Apply LightBox Magnifying glass mixin to control .lightBoxMagnifyingGlassMixing(~'.sapFAvatar', ~'.sapFAvatarMagnifyingGlass'); //restrinct inner elements of blocking press event of the whole control .sapFAvatar * { pointer-events: none; } .sapFAvatarBadgeIconActiveArea { position: absolute; pointer-events: all; .sapFAvatarCircle & { width: 100%; height: 100%; bottom: 0; right: 0; } .sapFAvatarSquare & { width: ~'calc(100% + 0.125rem)'; height: ~'calc(100% + 0.125rem)'; bottom: -0.125rem; right: -0.125rem; } .sapFAvatarSquare.sapFAvatarXL & { width: ~'calc(100% + 0.25rem)'; height: ~'calc(100% + 0.25rem)'; bottom: -0.25rem; right: -0.25rem; } .sapFAvatarSquare.sapFAvatarL & { width: ~'calc(100% + 0.1875rem)'; height: ~'calc(100% + 0.1875rem)'; bottom: -0.1875rem; right: -0.1875rem; } .sapFAvatarSquare.sapFAvatarCustom & { width: 104%; height: 104%; bottom: -4%; right: -4%; } } .generateBadgeColor(@i) when (@i =< 10) { @color: 'sapAccentColor@{i}'; @background: 'sapAccentBackgroundColor@{i}'; .sapFAvatarBadgeColorAccent@{i} .sapFAvatarBadgeIcon { box-shadow: @_sap_m_Avatar_Badge_Icon_Box_Shadow @@color; background-color: @@background; border: 0; > .sapUiIcon { color: @@color; } } .generateBadgeColor(@i + 1); } .generateBadgeColor(1); .generateIndicationBadgeColor(@i) when (@i =< 10) { @color: ~'--sapIndicationColor_@{i}_TextColor'; @background: ~'--sapIndicationColor_@{i}_Background'; @border: ~'--sapIndicationColor_@{i}_BorderColor'; .sapFAvatarBadgeColorIndication@{i} .sapFAvatarBadgeIcon { background-color: var(~'@{background}'); box-shadow: var(--sapContent_Shadow1); border: var(~'@{border}'); > .sapUiIcon { color: var(~'@{color}'); } } .generateIndicationBadgeColor(@i + 1); } .generateIndicationBadgeColor(1); .sapFAvatarWarning .sapFAvatarBadgeIcon { background-color: var(--sapWarningBackground); box-shadow: @_sap_m_Avatar_Badge_Icon_Box_Shadow var(--sapWarningBorderColor); border: 0; > .sapUiIcon { color: var(--sapCriticalTextColor); } } .sapFAvatarError .sapFAvatarBadgeIcon { background-color: var(--sapErrorBackground); box-shadow: @_sap_m_Avatar_Badge_Icon_Box_Shadow var(--sapErrorBorderColor); border: 0; > .sapUiIcon { color: var(--sapNegativeTextColor); } } .sapFAvatarInformation .sapFAvatarBadgeIcon { background-color: var(--sapInformationBackground); box-shadow: @_sap_m_Avatar_Badge_Icon_Box_Shadow var(--sapInformationBorderColor); border: 0; > .sapUiIcon { color: var(--sapInformativeTextColor); } } .sapFAvatarSuccess .sapFAvatarBadgeIcon { background-color: var(--sapSuccessBackground); box-shadow: @_sap_m_Avatar_Badge_Icon_Box_Shadow var(--sapSuccessBorderColor); border: 0; > .sapUiIcon { color: var(--sapPositiveTextColor); } } .sapFAvatarBadgeIcon { display: inline-block; box-sizing: border-box; position: absolute; bottom: 0; right: 0; width: 1.125rem; height: 1.125rem; border-radius: 50%; font-size: 0.75rem; text-align: center; background-color: var(--sapButton_Emphasized_Background); box-shadow: @_sap_m_Avatar_Hover_Box_Shadow_Offset var(--sapButton_Emphasized_BorderColor); > .sapUiIcon { vertical-align: middle; color: var(--sapButton_Emphasized_TextColor); } &::after { content: ''; display: inline-block; vertical-align: middle; height: 100%; } .sapFAvatarL & { width: 1.25rem; height: 1.25rem; font-size: 0.875rem; } .sapFAvatarXL & { width: 1.75rem; height: 1.75rem; font-size: 1rem; } .sapFAvatarCustom & { font-size: 16.5%; width: 25%; height: 25%; } }