_layout.scss 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. body, html{
  2. position: relative;
  3. width: 100%;
  4. height:100%;
  5. font-family: sans-serif;
  6. font-style: normal;
  7. margin:0;
  8. padding:0;
  9. }
  10. body{
  11. overflow-x:hidden;
  12. }
  13. div.dialog-off-canvas-main-canvas{
  14. width: 100vw;
  15. height:100vh;
  16. display: flex;
  17. flex-direction: column;
  18. }
  19. body.toolbar-horizontal.toolbar-themes.toolbar-no-tabs{
  20. padding-top: 24px!important;
  21. }
  22. // define breakpoints media query for each card column number
  23. // $i: 1;
  24. // $colw: $column_width;
  25. // $m: $column_goutiere;
  26. // $bp: $colw + $m;
  27. // @while $bp < 4096px {
  28. // $upbp: $bp + $colw + $m;
  29. // // @media only screen and (min-width: $bp + 1px) and (max-width: $upbp) {
  30. // // width:$bp;
  31. // // }
  32. // breakpoint-#{$i}: ("bp":$bp, "upbp":$upbp);
  33. // // @mixin col_breakpoint_#{$i}() {
  34. // // @media (min-width: $bp + 1px) and (max-width: $upbp) {
  35. // // @content;
  36. // // }
  37. // // }
  38. // $bp: $upbp;
  39. // $i: $i + 1;
  40. // }
  41. // @mixin col-mediaquery($i) {
  42. // @media (min-width: map.get(#{$breakpoint-$i}, "bp") + 1px) and (max-width: map.get(#{$breakpoint-$i}, "upbp")) {
  43. // @content;
  44. // }
  45. // }
  46. @mixin col-mediaquery-min-max($min, $max, $orientation: false) {
  47. $bp: ($column_width + $column_goutiere) * $min + 1px;
  48. $upbp: ($column_width + $column_goutiere) * ($max);
  49. @if $orientation {
  50. @media (orientation: $orientation) and (min-width: $bp) and (max-width: $upbp) {
  51. @content;
  52. }
  53. } @else {
  54. @media (min-width: $bp) and (max-width: $upbp) {
  55. @content;
  56. }
  57. }
  58. }
  59. @mixin col-mediaquery-min($i, $orientation: false) {
  60. $bp: ($column_width + $column_goutiere) * $i + 1px;
  61. @if $orientation {
  62. @media (orientation: $orientation) and (min-width: $bp) {
  63. @content;
  64. }
  65. } @else {
  66. @media (min-width: $bp) {
  67. @content;
  68. }
  69. }
  70. }
  71. @mixin col-mediaquery-max($i, $orientation: false) {
  72. $bp: ($column_width + $column_goutiere) * $i;
  73. @if $orientation {
  74. @media (orientation: $orientation) and (max-width: $bp) {
  75. @content;
  76. }
  77. } @else {
  78. @media (max-width: $bp) {
  79. @content;
  80. }
  81. }
  82. }
  83. // build break points for each multiple of cards row
  84. // cards will always be centered, using all available space
  85. %grided-width{
  86. margin:0 auto;
  87. $m: $column_goutiere;
  88. $colw: $column_width;
  89. // $bp: ($colw + $m) * 2;
  90. $bp: $colw + $m;
  91. $i: 1;
  92. @while $bp < 4096px {
  93. $upbp: $bp + $colw + $m;
  94. @if $i == 1 {
  95. @media only screen and (max-width: $bp) {
  96. width:$bp;
  97. }
  98. }@else{
  99. @media only screen and (min-width: $bp + 1px) and (max-width: $upbp) {
  100. width:$bp;
  101. }
  102. }
  103. $bp: $upbp;
  104. $i: $i + 1;
  105. }
  106. // outline:1px blue solid;
  107. // &>*{
  108. // outline:1px red solid;
  109. // }
  110. }
  111. // _ _ _
  112. // | || |___ __ _ __| |___ _ _
  113. // | __ / -_) _` / _` / -_) '_|
  114. // |_||_\___\__,_\__,_\___|_|
  115. header[role="banner"]{
  116. flex:0 0 auto;
  117. background-color: #fff;
  118. // overflow: visible;
  119. // position: fixed;
  120. // z-index: 20;
  121. width:100vw;
  122. // height: $header_height;
  123. >.wrapper{
  124. @extend %grided-width;
  125. // box-sizing:border-box;
  126. background-color: #fff;
  127. &:after{
  128. content:"";
  129. clear:both;
  130. display: block;
  131. }
  132. .header-block{
  133. $min-height:33px;
  134. min-height: $min-height;
  135. font-size: 0;
  136. &>*{
  137. font-size: $base_font_size;
  138. }
  139. &.header-right{
  140. text-align: right;
  141. }
  142. .header-block-wrapper{
  143. &>*{
  144. display: inline-block;
  145. vertical-align:top;
  146. text-align: left;
  147. }
  148. }
  149. input#header-block-right-toggle{display: none;}
  150. label[for="header-block-right-toggle"]{display:none;}
  151. @include col-mediaquery-max(3){
  152. &.header-left{ width: 75%; }
  153. &.header-right{
  154. width: 23%;
  155. label[for="header-block-right-toggle"]{
  156. display:block;
  157. }
  158. // default position (hidden, translated right)
  159. $w: 20em;
  160. .header-block-wrapper{
  161. z-index: 100;
  162. position: absolute;
  163. top: $min-height;
  164. right:0;
  165. // right: - $w - 150px;
  166. box-sizing: border-box;
  167. // transform: translateX(450px);
  168. overflow: hidden;
  169. width:0.1px;
  170. box-shadow: 0 0 0 #fff;
  171. padding:1em 0;
  172. margin-top: 0.7em;
  173. transition: all 0.5s ease-in-out;
  174. >*.block, >div#user-tools{
  175. display: block;
  176. width: $w - 2em;
  177. padding:0 0 1em 0!important;
  178. margin:0 0 1em 0!important;
  179. text-align: right;
  180. border-left: none!important;
  181. border-right: none!important;
  182. &:not(:last-child){
  183. border-bottom: 1px solid #ccc!important;
  184. }
  185. }
  186. #user-flags{
  187. width: $w - 2em;
  188. padding:1em 0 0 0!important;
  189. margin:1em 0 0 0!important;
  190. border-top: 1px solid #ccc!important;
  191. }
  192. }
  193. // input checked, wrapper visible
  194. input#header-block-right-toggle:checked ~ div.header-block-wrapper {
  195. // transform: translateX(1px);
  196. // right:1px;
  197. width: $w;
  198. padding:1em 1em;
  199. box-shadow: -2px 2px 4px #ccc;
  200. }
  201. }
  202. }
  203. }
  204. }
  205. }
  206. // __ __ _
  207. // | \/ |__ _(_)_ _
  208. // | |\/| / _` | | ' \
  209. // |_| |_\__,_|_|_||_|
  210. main[role="main"]{
  211. flex:1 1 auto;
  212. overflow-y: auto;
  213. overflow-x: hidden;
  214. >.scroller{
  215. width:100vw;
  216. >.wrapper{
  217. @extend %grided-width;
  218. display: flex;
  219. flex-direction: row-reverse;
  220. @include col-mediaquery-max(2){
  221. display: block;
  222. }
  223. #content-left{
  224. flex-basis: $column_width;
  225. flex-shrink: 0;
  226. // width:$column_width*2+$column_goutiere;
  227. >*{
  228. width:100%;
  229. box-sizing: border-box;
  230. padding:0.5em $column_goutiere;
  231. }
  232. @include col-mediaquery-max(2){
  233. padding-right: $column_goutiere;
  234. }
  235. }
  236. #content-center{
  237. flex-basis: 110%;
  238. }
  239. }
  240. }
  241. }
  242. // ___ _
  243. // | __|__ ___| |_ ___ _ _
  244. // | _/ _ \/ _ \ _/ -_) '_|
  245. // |_|\___/\___/\__\___|_|
  246. footer[role="contentinfo"]{
  247. >.wrapper{
  248. @extend %grided-width;
  249. }
  250. }