_layout.scss 1.5 KB

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