暫無描述

vertical-margins.scss 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. /**
  2. * Site Structure
  3. *
  4. * - Set vertical margins and responsive widths on
  5. * top-level wrappers and content wrappers
  6. * - `--global--width-content` is a responsive variable
  7. * - See: globals/_global-width-responsive.scss
  8. */
  9. /**
  10. * Top Level Wrappers (header, main, footer)
  11. * - Set vertical padding and horizontal margins
  12. */
  13. .site-header,
  14. .site-main,
  15. .widget-area,
  16. .site-footer {
  17. padding-top: var(--global--spacing-vertical);
  18. padding-bottom: var(--global--spacing-vertical);
  19. margin-left: auto;
  20. margin-right: auto;
  21. }
  22. .site-header {
  23. padding-top: calc(0.75 * var(--global--spacing-vertical));
  24. padding-bottom: calc(2 * var(--global--spacing-vertical));
  25. @include media(mobile) {
  26. padding-bottom: calc(3 * var(--global--spacing-vertical));
  27. }
  28. }
  29. /**
  30. * Site-main children wrappers
  31. * - Add double vertical margins here for clearer hierarchy
  32. */
  33. .site-main > * {
  34. margin-top: calc(3 * var(--global--spacing-vertical));
  35. margin-bottom: calc(3 * var(--global--spacing-vertical));
  36. &:first-child {
  37. margin-top: 0;
  38. }
  39. &:last-child {
  40. margin-bottom: 0;
  41. }
  42. }
  43. /**
  44. * Set the default maximum responsive content-width
  45. */
  46. .default-max-width {
  47. @extend %responsive-aligndefault-width;
  48. }
  49. /**
  50. * Set the wide maximum responsive content-width
  51. */
  52. .wide-max-width {
  53. @extend %responsive-alignwide-width;
  54. }
  55. /**
  56. * Set the full maximum responsive content-width
  57. */
  58. .full-max-width {
  59. @extend %responsive-alignfull-width-mobile;
  60. @extend %responsive-alignfull-width;
  61. }
  62. /*
  63. * Block & non-gutenberg content wrappers
  64. * - Set margins
  65. */
  66. .entry-header,
  67. .post-thumbnail,
  68. .entry-content,
  69. .entry-footer,
  70. .author-bio {
  71. margin-top: var(--global--spacing-vertical);
  72. margin-right: auto;
  73. margin-bottom: var(--global--spacing-vertical);
  74. margin-left: auto;
  75. }
  76. /*
  77. * Block & non-gutenberg content wrapper children
  78. * - Sets spacing-vertical margin logic
  79. */
  80. .site-main > article > *, // apply vertical margins to article level
  81. .site-main > .not-found > *, // apply vertical margins to article level
  82. .entry-content > *,
  83. [class*="inner-container"] > *,
  84. .wp-block-template-part > *,
  85. .wp-block-post-template :where(li > *) { // using :where keeps specificity low.
  86. margin-top: calc(0.666 * var(--global--spacing-vertical));
  87. margin-bottom: calc(0.666 * var(--global--spacing-vertical));
  88. @include media(mobile) {
  89. margin-top: var(--global--spacing-vertical);
  90. margin-bottom: var(--global--spacing-vertical);
  91. }
  92. &:first-child {
  93. margin-top: 0;
  94. }
  95. &:last-child {
  96. margin-bottom: 0;
  97. }
  98. }
  99. .site-footer > *,
  100. .widget-area > * {
  101. margin-top: calc(0.666 * var(--global--spacing-vertical));
  102. margin-bottom: calc(0.666 * var(--global--spacing-vertical));
  103. @include media(mobile) {
  104. margin-top: var(--global--spacing-vertical);
  105. margin-bottom: var(--global--spacing-vertical);
  106. }
  107. }
  108. /*
  109. * Block & non-gutenberg content wrapper children
  110. * - Sets spacing-unit margins
  111. */
  112. //.site-header > *, // Removed, to align site title and menu.
  113. .entry-header > *,
  114. .post-thumbnail > *,
  115. .page-content > *,
  116. .comment-content > *,
  117. .widget > * {
  118. margin-top: var(--global--spacing-unit);
  119. margin-bottom: var(--global--spacing-unit);
  120. &:first-child {
  121. margin-top: 0;
  122. }
  123. &:last-child {
  124. margin-bottom: 0;
  125. }
  126. }
  127. /*
  128. * .entry-content children specific controls
  129. * - Adds special margin overrides for alignment utility classes
  130. */
  131. .entry-content > * {
  132. &.alignleft,
  133. &.alignright,
  134. &.alignleft:first-child + *,
  135. &.alignright:first-child + *,
  136. &.alignfull.has-background {
  137. margin-top: 0;
  138. }
  139. &:last-child,
  140. &.alignfull.has-background {
  141. margin-bottom: 0;
  142. }
  143. /* Reset alignleft and alignright margins after alignfull */
  144. &.alignfull + .alignleft,
  145. &.alignfull + .alignright {
  146. margin-top: var(--global--spacing-vertical);
  147. }
  148. }