@openui5/sap.m
Version:
OpenUI5 UI Library sap.m
315 lines (262 loc) • 6.78 kB
text/less
/* ====================== */
/* Shared CSS Base theme */
/* ====================== */
/* 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: @sapUiContentMarkerIconColor;
}
.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: @sapUiContentSearchHighlightColor;
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);}
}
@_sap_m_Badge_AttentionBackgroundColor: @sapUiContentBadgeBackground;
@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: @sapMFontSmallSize;
font-family: @sapUiFontFamily;
text-align: center;
background-color: @sapUiContentBadgeBackground;
border: 0.0625rem solid @sapUiContentBadgeBackground;
color: @sapUiContentBadgeTextColor;
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: @sapMFontSmallSize;
font-family: @sapUiFontFamily;
background-color: @sapUiContentBadgeBackground;
border: 0.0625rem solid @sapUiContentBadgeBackground;
color: @sapUiContentBadgeTextColor;
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 @sapUiObjectHeaderBackground;
}
}
.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));
}