_page.scss 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  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. .page-wrapper & {
  71. margin: var(--#{$prefix}page-padding-y) 0 0;
  72. }
  73. }
  74. .page-header-border {
  75. border-bottom: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
  76. padding: var(--#{$prefix}page-padding-y) 0;
  77. margin: 0 !important;
  78. background-color: var(--#{$prefix}bg-surface);
  79. }
  80. .page-pretitle {
  81. @include subheader;
  82. }
  83. .page-title {
  84. margin: 0;
  85. font-size: $page-title-font-size;
  86. line-height: $page-title-line-height;
  87. font-weight: $page-title-font-weight;
  88. color: inherit;
  89. display: flex;
  90. align-items: center;
  91. svg {
  92. width: 1.5rem;
  93. height: 1.5rem;
  94. margin-right: .25rem;
  95. }
  96. }
  97. .page-title-lg {
  98. font-size: $h1-font-size;
  99. line-height: $h1-line-height;
  100. }
  101. .page-subtitle {
  102. margin-top: .25rem;
  103. color: var(--#{$prefix}secondary);
  104. }
  105. //
  106. // Page cover
  107. //
  108. .page-cover {
  109. --#{$prefix}page-cover-blur: 20px;
  110. --#{$prefix}page-cover-padding: 1rem;
  111. min-height: 6rem;
  112. padding: var(--#{$prefix}page-cover-padding) 0;
  113. position: relative;
  114. overflow: hidden;
  115. }
  116. .page-cover-img {
  117. position: absolute;
  118. top: calc(-2 * var(--#{$prefix}page-cover-blur, 0));
  119. left: calc(-2 * var(--#{$prefix}page-cover-blur, 0));
  120. right: calc(-2 * var(--#{$prefix}page-cover-blur, 0));
  121. bottom: calc(-2 * var(--#{$prefix}page-cover-blur, 0));
  122. pointer-events: none;
  123. filter: blur(var(--#{$prefix}page-cover-blur));
  124. object-fit: cover;
  125. background-size: cover;
  126. background-position: center;
  127. z-index: -1;
  128. }
  129. //
  130. // Page tabs
  131. //
  132. .page-tabs {
  133. margin-top: .5rem;
  134. position: relative;
  135. }
  136. .page-header-tabs {
  137. .nav-bordered {
  138. border: 0;
  139. }
  140. + .page-body-card {
  141. margin-top: 0;
  142. }
  143. }