Files
ionic-framework/core/src/components/content/content.scss
2019-07-18 14:50:56 -05:00

165 lines
4.5 KiB
SCSS

@import "../../themes/ionic.globals";
// Content
// --------------------------------------------------
:host {
/**
* @prop --background: Background of the content
*
* @prop --color: Color of the content
*
* @prop --padding-top: Top padding of the content
* @prop --padding-end: Right padding if direction is left-to-right, and left padding if direction is right-to-left of the content
* @prop --padding-bottom: Bottom padding of the content
* @prop --padding-start: Left padding if direction is left-to-right, and right padding if direction is right-to-left of the content
*
* @prop --keyboard-offset: Keyboard offset of the content
*
* @prop --offset-top: Offset top of the content
* @prop --offset-bottom: Offset bottom of the content
*/
--background: #{$background-color};
--color: #{$text-color};
--padding-top: 0px;
--padding-bottom: 0px;
--padding-start: 0px;
--padding-end: 0px;
--keyboard-offset: 0px;
--offset-top: 0px;
--offset-bottom: 0px;
--overflow: auto;
display: block;
position: relative;
flex: 1;
width: 100%;
height: 100%;
/* stylelint-disable */
margin: 0 !important;
padding: 0 !important;
/* stylelint-enable */
font-family: $font-family-base;
contain: size style;
}
:host(.ion-color) .inner-scroll {
background: current-color(base);
color: current-color(contrast);
}
// TODO we should remove outer-content in favor of a color
:host(.outer-content) {
--background: #{$background-color-step-50};
}
.inner-scroll {
@include position(calc(var(--offset-top) * -1), 0px,calc(var(--offset-bottom) * -1), 0px);
@include padding(calc(var(--padding-top) + var(--offset-top)), var(--padding-end), calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom)), var(--padding-start));
position: absolute;
background: var(--background);
color: var(--color);
box-sizing: border-box;
overflow: hidden;
}
.scroll-y,
.scroll-x {
-webkit-overflow-scrolling: touch;
will-change: scroll-position;
overscroll-behavior: contain;
}
.scroll-y {
touch-action: pan-y;
overflow-y: var(--overflow);
}
.scroll-x {
touch-action: pan-x;
overflow-x: var(--overflow);
}
.scroll-x.scroll-y {
touch-action: auto;
}
.overscroll::before,
.overscroll::after {
position: absolute;
width: 1px;
height: 1px;
content: "";
}
.overscroll::before {
bottom: -1px;
}
.overscroll::after {
top: -1px;
}
:host(.content-sizing) {
contain: none;
}
:host(.content-sizing) .inner-scroll {
position: relative;
}
.transition-effect {
position: absolute;
/* stylelint-disable property-blacklist */
left: -100%;
/* stylelint-enable property-blacklist */
width: 100%;
height: 100%;
opacity: 0;
}
.transition-cover {
position: absolute;
/* stylelint-disable property-blacklist */
right: 0;
/* stylelint-enable property-blacklist */
width: 100%;
height: 100%;
background: black;
opacity: 0.1;
}
.transition-shadow {
display: block;
position: absolute;
/* stylelint-disable property-blacklist */
right: 0;
/* stylelint-enable property-blacklist */
width: 10px;
height: 100%;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAYAAAAIXrg4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTE3MDgzRkQ5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTE3MDgzRkU5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMTcwODNGQjlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMTcwODNGQzlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmePEuQAAABNSURBVHjaYvz//z8DIxAwMDAwATGMhmFmPDQuOSZks0AMmoJBaQHjkPfB0Lfg/2gQjVow+HPy/yHvg9GiYjQfjMbBqAWjFgy/4hogwADYqwdzxy5BuwAAAABJRU5ErkJggg==);
background-repeat: repeat-y;
background-size: 10px 16px;
}