_layout.scss 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. @media only screen and (max-width: $small-bp) {
  43. overflow-y: auto;
  44. padding:0 $side-padding/2 0 $side-padding/2;
  45. }
  46. }
  47. .main-content-layout{
  48. height: 100%;
  49. >header,
  50. >section,
  51. >nav{
  52. max-height: 100%;
  53. padding-top:1em;
  54. padding-bottom:1em;
  55. }
  56. >section,
  57. >nav{
  58. overflow-x: hidden;
  59. overflow-y: auto;
  60. }
  61. }
  62. @media only screen and (max-width: $small-bp) {
  63. .main-content-layout{
  64. display: flex;
  65. flex-direction: column;
  66. }
  67. }
  68. }
  69. footer[role="tools"]{
  70. flex:0 0 auto;
  71. @extend %layout-element;
  72. // padding-bottom: 1em;
  73. // >*{
  74. // padding:0.5em 1em;
  75. // }
  76. }
  77. }