@openui5/sap.m
Version:
OpenUI5 UI Library sap.m
327 lines (262 loc) • 6.91 kB
text/less
/* ====================== */
/* Shared CSS Base theme */
/* ====================== */
@_sap_m_Badge_AttentionBackgroundColor: @sapUiContentBadgeBackground;
/* Common CSS for condensed table cell content controls */
.sapUiCondensedTableCellContent {
box-sizing: border-box;
padding: 0 0.5rem;
line-height: 1.5rem;
vertical-align: middle;
}
/* commons */
.sapMScrollbarV,
.sapMScrollbarH,
.sapMScrollbarV > div,
.sapMScrollbarH > div {
position: absolute;
}
.sapMScrollbarV > div,
.sapMScrollbarH > div {
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border-width: 0.0625rem;
border-style: solid;
border-color: rgba(255, 255, 255, 0.901961);
border-radius: 0.1875rem;
background-color: rgba(0, 0, 0, 0.498039);
}
/* vertical scrollbar */
.sapMScrollbarV {
width: 0.438rem;
right: 0.063rem;
top: 0;
bottom: 0;
}
.sapMScrollbarV > div {
width: 100%;
}
/* horizontal scrollbar */
.sapMScrollbarH {
height: 0.4375rem;
bottom: 0.0625rem;
left: 0.125rem;
right: 0.125rem;
}
.sapMScrollbarH > div {
height: 100%;
}
/* ObjectListItem and ObjectHeader share styles for markers such as flag and favorite */
.sapMObjStatusMarker {
color: var(--sapContent_MarkerIconColor);
}
.sapMObjStatusMarker .sapUiIcon + .sapUiIcon,
.sapMObjStatusMarker .sapUiHiddenPlaceholder + .sapUiIcon {
margin-left: .5rem;
}
.sapMObjStatusMarkerInvisible {
visibility: hidden;
}
/* CURSORS */
.sapMPointer{
cursor: pointer;
}
/* Enables native browser hyphenation where possible */
.sapUiHyphenation {
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
.defaultHighlightedText {
background: var(--sapContent_SearchHighlightColor);
font-weight: bold;
}
/* Enables sap.m.IBadge implementations where possible */
@keyframes sapMBadgeAppearPulse {
0% {transform: scale(.9); opacity:1;}
100% {transform: scale(2);opacity: 0;}
}
@keyframes sapMBadgeAppearBounce {
0% {transform: scale(1);}
50% {transform: scale(1.4);}
100% {transform: scale(1);}
}
@keyframes sapMBadgeDisappear {
0% {transform: scale(1);}
100% {transform: scale(0);}
}
@keyframes sapMBadgeUpdate {
0% {transform: scale(1);}
50% {transform: scale(1.2);}
100% {transform: scale(1);}
}
@keyframes sapMBadgeAppearMotionSmall {
0% {
transform: scale(0.33); /* 0.125rem / 0.375rem */
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
}
20% {
transform: scale(1.66); /* 0.625rem / 0.375rem */
}
40% {
transform: scale(1.33); /* 0.5rem / 0.375rem */
box-shadow: 0 0 0 1px fade(@_sap_m_Badge_AttentionBackgroundColor, 20%); /* 0.875rem pulse layer */
}
60% {
transform: scale(1); /* 0.375rem */
box-shadow: 0 0 0 0.3125rem fade(@_sap_m_Badge_AttentionBackgroundColor, 15%); /* 1rem pulse layer */
}
100% {
box-shadow: 0 0 0 0.375rem fade(@_sap_m_Badge_AttentionBackgroundColor, 0%); /* 1.125rem pulse layer */
}
}
@keyframes sapMBadgeAppearMotion {
0% {
transform: scale(0.25); /* 0.125rem / 0.5rem */
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0); /* required for Internet Explorer */
}
20% {
transform: scale(1.25); /* 0.625rem / 0.5rem */
}
40% {
transform: scale(1); /* 0.5rem */
box-shadow: 0 0 0 1px fade(@_sap_m_Badge_AttentionBackgroundColor, 20%); /* 0.875rem pulse layer */
}
100% {
box-shadow: 0 0 0 0.375rem fade(@_sap_m_Badge_AttentionBackgroundColor, 0%); /* 1.125rem pulse layer */
}
}
.sapMBadge {
overflow: visible;
position: relative;
.sapMBadgeDefault {
position: absolute;
top: -0.125rem;
right: -0.25rem;
z-index: 100;
max-width: 100%;
padding-right: 0.125rem;
box-sizing: border-box;
height: 100%;
transform-origin: center center;
pointer-events: none;
&::after {
border-radius: 1.125rem;
display: block;
padding: 0 0.3125rem;
min-width: 0.5rem;
height: 1.125rem;
line-height: 1.125rem;
font-size: var(--sapFontSmallSize);
font-family: var(--sapFontFamily);
text-align: center;
background-color: var(--sapContent_BadgeBackground);
border: 0.0625rem solid var(--sapContent_BadgeBackground);
color: var(--sapContent_BadgeTextColor);
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
.badgeAccentColorMixin(10);
}
/* We need one more pseudo-element, attached to the badge indicator, in order */
/* to show the pulse animation simultaneously with the bounce one. */
&::before {
position: absolute;
border-radius: 1.125rem;
display: block;
padding: 0 0.3125rem;
min-width: 0.5rem;
height: 1.125rem;
line-height: 1.125rem;
font-size: var(--sapFontSmallSize);
font-family: var(--sapFontFamily);
background-color: var(--sapContent_BadgeBackground);
border: 0.0625rem solid var(--sapContent_BadgeBackground);
color: var(--sapContent_BadgeTextColor);
text-overflow: ellipsis;
overflow: hidden;
opacity:0;
.badgeAccentColorMixin(10);
}
.sapMBadgeTopLeft& {
top: -0.125rem;
left: -0.25rem;
right: auto;
}
.sapMBadgeTopRight& {
top: -0.125rem;
right: -0.25rem;
}
.sapMBadgeInline& {
left: 0;
right: 0;
top: 0;
}
}
/* The attention badge is a single dot, which does not contain text or icons. */
.sapMBadgeAttention {
position: absolute;
top: -0.25rem;
right: -0.25rem;
width: 0.5rem;
height: 0.5rem;
border-radius: 1.125rem;
background-color: @_sap_m_Badge_AttentionBackgroundColor;
border: 0.125rem solid var(--sapObjectHeader_Background);
}
}
.sapMBadgeIndicator.sapMBadgeDefault::after {
content: attr(data-badge);
}
.sapMBadgeIndicator.sapMBadgeDefault[data-badge='']::after {
display: none;
}
html[data-sap-ui-animation='on'] {
.sapMBadge.sapMBadgeAnimationTypeFull {
.sapMBadgeDefault.sapMBadgeAnimationAdd::after {
animation: sapMBadgeAppearBounce .1s;
}
.sapMBadgeDefault.sapMBadgeAnimationAdd::before {
content: attr(data-badge);
animation: sapMBadgeAppearPulse .2s;
}
.sapMBadgeAttention.sapMBadgeAnimationRemove,
.sapMBadgeDefault.sapMBadgeAnimationRemove::after {
animation: sapMBadgeDisappear .1s;
animation-fill-mode: forwards;
transform-origin: center;
}
}
.sapMBadge:not(.sapMBadgeAnimationTypeNone) {
.sapMBadgeDefault.sapMBadgeAnimationUpdate::after {
animation: sapMBadgeUpdate .1s;
animation-fill-mode: forwards;
}
}
}
html[data-sap-ui-animation='off'] {
.sapMBadgeAttention.sapMBadgeAnimationRemove,
.sapMBadgeDefault.sapMBadgeAnimationRemove::after {
scale: 0;
opacity: 0;
display: none;
}
}
.sapMBadgeAnimationTypeUpdate,
.sapMBadgeAnimationTypeNone {
.sapMBadgeAttention.sapMBadgeAnimationRemove,
.sapMBadgeDefault.sapMBadgeAnimationRemove::after {
scale: 0;
opacity: 0;
display: none;
}
}
.badgeAccentColorMixin(@n, @i: 1) when (@i =< @n) {
@value: 'sapAccentColor@{i}';
.sapMBadgeAccentColor@{i}& {
background-color: @@value;
border-color: @@value;
}
.badgeAccentColorMixin(@n, (@i + 1));
}