_layout.scss 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. $side-padding:3em;
  2. body, html{
  3. position: relative;
  4. width: 100%;
  5. height:100%;
  6. font-family: sans-serif;
  7. font-style: normal;
  8. margin:0;
  9. padding:0;
  10. }
  11. body{
  12. overflow:hidden;
  13. }
  14. #root{
  15. display: flex;
  16. flex-direction: column;
  17. width: 100vw;
  18. height:100vh;
  19. %layout-element{
  20. width:100vw;
  21. box-sizing:border-box;
  22. }
  23. header[role="banner"]{
  24. z-index:10;
  25. flex: 0 0 auto;
  26. @extend %layout-element;
  27. padding:1em $side-padding 1em $side-padding;
  28. @media only screen and (max-width: $small-bp) {
  29. padding:1em $side-padding/2 0 $side-padding/2;
  30. }
  31. }
  32. section[role="main-content"]{
  33. flex:1 1 auto;
  34. @extend %layout-element;
  35. overflow: hidden;
  36. >.wrapper{
  37. position: relative;
  38. padding:0 $side-padding 0 $side-padding;
  39. height:100%; max-height:100%;
  40. overflow-y: hidden;
  41. overflow-x: hidden;
  42. >*{
  43. @include fade-transition;
  44. }
  45. @media only screen and (max-width: $small-bp) {
  46. overflow-y: auto;
  47. padding:0 $side-padding/2 0 $side-padding/2;
  48. }
  49. }
  50. .main-content-layout{
  51. height: 100%;
  52. >header,
  53. >section,
  54. >nav{
  55. max-height: 100%;
  56. padding-top:1em;
  57. padding-bottom:1em;
  58. }
  59. >section,
  60. >nav{
  61. overflow-x: hidden;
  62. overflow-y: auto;
  63. }
  64. }
  65. @media only screen and (max-width: $small-bp) {
  66. .main-content-layout{
  67. display: flex;
  68. flex-direction: column;
  69. }
  70. }
  71. }
  72. footer[role="tools"]{
  73. flex:0 0 auto;
  74. @extend %layout-element;
  75. // padding-bottom: 1em;
  76. // >*{
  77. // padding:0.5em 1em;
  78. // }
  79. }
  80. }