Forked from
Stud.IP / Stud.IP
2450 commits behind the upstream repository.
-
Thomas Hackl authored
Closes #2389 Merge request studip/studip!1598
Thomas Hackl authoredCloses #2389 Merge request studip/studip!1598
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
layouts.scss 6.60 KiB
// TODO: SCSSify
$page-margin: 15px;
$sidebar-padding: 12px;
$sidebar-width: 270px;
$content-width: 400px;
$content-margin: 12px;
$max-content-width: 4 * $sidebar-width + $page-margin;
$footer-height: 32px;
$site-width: ($page-margin * 2 + $sidebar-width + $sidebar-padding * 2 + $sidebar-border-width * 2 + $content-width + $content-margin * 2);
$page-width: ($sidebar-width + $sidebar-padding * 2 + $sidebar-border-width * 2 + $content-width + $content-margin * 2);
$grid-gap: 0;
html {
height: 100vh;
overflow-y: auto;
}
body {
background-color: $white;
display: grid;
grid-column-gap: 5px;
grid-row-gap: $grid-gap;
grid-template-columns: ($sidebar-width + $sidebar-padding) minmax(auto, calc(100vw - $sidebar-width - $sidebar-padding));
grid-template-rows: auto 1fr auto;
&::backdrop {
background: $white;
}
}
#main-header {
grid-column: 1 / 3;
grid-row: 1 / 2;
}
#top-bar {
height: 40px;
min-width: $site-width;
z-index: 1001; // High enough so it will be above the sidebar
}
#navigation-level-1 {
align-content: stretch;
align-items: stretch;
background-color: $white;
border-radius: 0 0 2px 2px;
box-sizing: border-box;
display: flex;
justify-content: flex-start;
min-width: $site-width;
width: 100%;
#top-logo {
flex: 0 1 auto;
margin-right: 12px;
margin-top: -13px;
}
}
#navigation-level-1-items {
flex: 1;
height: 55px;
}
/* --- Layouts -------------------------------------------------------------- */
#current-page-structure {
background-color: #fff;
border-radius: 0 0 2px 2px;
width: 100%;
&.oversized {
overflow: visible;
}
}
#navigation-level-2 {
position: relative;
.colorblock {
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: $page-margin;
}
#context-title {
font-size: 1.1em;
height: 30px;
padding-left: $page-margin;
max-height: 30px;
overflow: hidden;
background: linear-gradient(to bottom, $dark-gray-color-5, $dark-gray-color-10);
> .context_icon {
margin: 7px 1px 0 9px;
vertical-align: text-bottom;
}
}
.tabs_wrapper {
align-items: stretch;
background-color: $dark-gray-color-10;
border-bottom: 1px solid $dark-gray-color-40;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
font-size: 0.9em;
justify-content: space-between;
padding-left: 27px;
}
.contextless & {
.colorblock {
width: 0;
}
#context-title {
color: rgba(0, 0, 0, 0);
height: 0;
max-height: 35px;
// text-indent: -100%;
//
> .context_icon {
opacity: 0;
}
}
.tabs_wrapper {
padding-left: 0;
}
}
}
#tabs {
width: 100%;
flex: 1;
padding-left: $page-margin;
transition: margin-left;
transition-duration: 300ms;
transition-delay: 500ms;
}
#sidebar {
border-left: 1px dashed $brand-color-darker;
grid-column: 1 / 2;
grid-row: 2 / 3;
}
#content-wrapper {
background-color: $white;
display: inline-flex;
grid-column: 2 / 3;
grid-row: 2 / 3;
justify-content: flex-start;
margin: $page-margin;
margin-bottom: calc($page-margin + 35px);
vertical-align: top;
.oversized & {
overflow: visible;
}
.no-sidebar & {
grid-column: 1 / 3;
}
}
#content {
flex: 1;
max-width: 100%;
}
// for old pages without template layout
#layout_table {
background-color: $light-gray-color-60;
border: 20px solid #fff;
margin: 0;
padding: 0;
width: 100%;
td { vertical-align: top; }
}
#page-title-container {
float: left;
background-color: #fff;
line-height: 20px;
margin-left: 15px;
margin-right: 15px;
min-height: 45px;
}
#context-title {
font-size: 1.1em;
height: 30px;
padding-left: $page-margin;
max-height: 30px;
overflow: hidden;
background: linear-gradient(to bottom, $dark-gray-color-5, $dark-gray-color-10);
> .context_icon {
margin: 7px 1px 0 9px;
vertical-align: text-bottom;
}
}
#page-title {
font-weight: bold;
font-size: 1.4em;
position: relative;
top: 20px;
}
#main-footer {
background-color: $base-color;
color: $white;
display: flex;
padding: 2px 0;
grid-column: 1 / 3;
grid-row: 3 / 4;
justify-content: space-between;
line-height: $footer-height - 4px;
}
#main-footer-info {
margin-left: 8px;
}
#main-footer-navigation {
ul {
display: flex;
flex: 1;
flex-wrap: wrap;
justify-content: flex-end;
list-style-type: none;
padding: 0;
li {
margin-left: 2px;
margin-right: 2px;
a {
color: $white;
margin: 0 6px;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
}
}
#navigation-level-1 {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-content: stretch;
align-items: stretch;
justify-content: space-between;
width: 100%;
min-width: $site-width;
border-bottom: 1px solid $light-gray-color-40;
}
#top-bar { // second row of flex-main
flex: 0 1 auto;
z-index: 1001; // High enough so it will be above the sidebar
}
body {
width: 100%;
#current-page-structure { // third row of flex-main
display: flex;
flex-direction: column;
flex-wrap: nowrap;
align-content: stretch;
align-items: stretch;
justify-content: flex-start;
flex-grow: 1;
min-width: $site-width;
.tabs_wrapper {
display: flex;
flex-direction: row;
align-items: stretch;
justify-content: space-between;
background-color: $dark-gray-color-10;
font-size: 0.9em;
min-height: 2.3em;
border-bottom: 1px solid $dark-gray-color-40;
}
#tabs { // row 1 of layout_page
padding-left: $page-margin;
transition: margin-left;
transition-duration: 300ms;
transition-delay: 500ms;
}
> ul { // column 1 of flex-header
flex: 1 1 auto;
}
#top-logo {
flex: 0 1 auto;
margin-right: 12px;
margin-top: -13px;
}
}
}