_layout.scss 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. -webkit-overflow-scrolling: touch;
  64. }
  65. }
  66. @media only screen and (max-width: $small-bp) {
  67. .main-content-layout{
  68. display: flex;
  69. flex-direction: column;
  70. }
  71. }
  72. }
  73. footer[role="tools"]{
  74. flex:0 0 auto;
  75. @extend %layout-element;
  76. // padding-bottom: 1em;
  77. // >*{
  78. // padding:0.5em 1em;
  79. // }
  80. }
  81. }