_page.scss 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. .page {
  2. display: flex;
  3. flex-direction: column;
  4. position: relative;
  5. min-height: 100%;
  6. }
  7. .page-center {
  8. justify-content: center;
  9. }
  10. .page-wrapper {
  11. flex: 1;
  12. display: flex;
  13. flex-direction: column;
  14. @media print {
  15. margin: 0 !important;
  16. }
  17. }
  18. .page-wrapper-full {
  19. .page-body:first-child {
  20. margin: 0;
  21. border-top: 0;
  22. }
  23. }
  24. // Content body
  25. .page-body {
  26. margin-top: var(--#{$prefix}page-padding-y);
  27. margin-bottom: var(--#{$prefix}page-padding-y);
  28. display: flex;
  29. flex-direction: column;
  30. flex: 1;
  31. }
  32. .page-body-card {
  33. background: var(--#{$prefix}bg-surface);
  34. border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) $card-border-color;
  35. padding: var(--#{$prefix}page-padding) 0;
  36. margin-bottom: 0;
  37. flex: 1;
  38. .page-body ~ & {
  39. margin-top: 0;
  40. }
  41. }
  42. .page-cover {
  43. background: no-repeat center/cover;
  44. min-height: 9rem;
  45. @include media-breakpoint-up(md) {
  46. min-height: 12rem;
  47. }
  48. @include media-breakpoint-up(lg) {
  49. min-height: 15rem;
  50. }
  51. }
  52. .page-cover-overlay {
  53. position: relative;
  54. &:after {
  55. content: "";
  56. position: absolute;
  57. top: 0;
  58. left: 0;
  59. right: 0;
  60. bottom: 0;
  61. background-image: $overlay-gradient;
  62. }
  63. }
  64. .page-header {
  65. display: flex;
  66. flex-wrap: wrap;
  67. min-height: 2.25rem;
  68. flex-direction: column;
  69. justify-content: center;
  70. max-width: 100%;
  71. .page-wrapper & {
  72. margin: var(--#{$prefix}page-padding-y) 0 0;
  73. }
  74. }
  75. .page-header-border {
  76. border-bottom: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
  77. padding: var(--#{$prefix}page-padding-y) 0;
  78. margin: 0 !important;
  79. background-color: var(--#{$prefix}bg-surface);
  80. }
  81. .page-pretitle {
  82. @include subheader;
  83. }
  84. .page-title {
  85. margin: 0;
  86. font-size: $page-title-font-size;
  87. line-height: $page-title-line-height;
  88. font-weight: $page-title-font-weight;
  89. color: inherit;
  90. display: flex;
  91. align-items: center;
  92. svg {
  93. width: 1.5rem;
  94. height: 1.5rem;
  95. margin-right: .25rem;
  96. }
  97. }
  98. .page-title-lg {
  99. font-size: $h1-font-size;
  100. line-height: $h1-line-height;
  101. }
  102. .page-subtitle {
  103. margin-top: .25rem;
  104. color: var(--#{$prefix}secondary);
  105. }
  106. //
  107. // Page cover
  108. //
  109. .page-cover {
  110. --#{$prefix}page-cover-blur: 20px;
  111. --#{$prefix}page-cover-padding: 1rem;
  112. min-height: 6rem;
  113. padding: var(--#{$prefix}page-cover-padding) 0;
  114. position: relative;
  115. overflow: hidden;
  116. }
  117. .page-cover-img {
  118. position: absolute;
  119. top: calc(-2 * var(--#{$prefix}page-cover-blur, 0));
  120. left: calc(-2 * var(--#{$prefix}page-cover-blur, 0));
  121. right: calc(-2 * var(--#{$prefix}page-cover-blur, 0));
  122. bottom: calc(-2 * var(--#{$prefix}page-cover-blur, 0));
  123. pointer-events: none;
  124. filter: blur(var(--#{$prefix}page-cover-blur));
  125. object-fit: cover;
  126. background-size: cover;
  127. background-position: center;
  128. z-index: -1;
  129. }
  130. //
  131. // Page tabs
  132. //
  133. .page-tabs {
  134. margin-top: .5rem;
  135. position: relative;
  136. }
  137. .page-header-tabs {
  138. .nav-bordered {
  139. border: 0;
  140. }
  141. + .page-body-card {
  142. margin-top: 0;
  143. }
  144. }