@import 'constants'; #CONTAINER{ display: block; position: absolute; top: $header-height; left: $menu-width; height: calc( 100% - #{$header-height} ); width: calc( 100% - #{$menu-width} ); background-color: $bg-color; overflow: hidden; overflow-y: auto; z-index: 100; } /* [1] List style ---------------------------------*/ #CONTAINER > div.list{ display: flex; // flex properties flex-direction: column; justify-content: flex-start; & > *:first-child{ margin-top: 1em; } & > *:last-child{ margin-bottom: 3em; } /* (1) List element */ & > section{ display: block; margin: .3em 1em; padding: .8em 1em; border-radius: 5px / 5px; background-color: #fff; } /* (2) List title */ & > h1{ display: inline-block; margin: 0 1.2em; margin-top: .8em; font-size: inherit; color: darken($secondary-color, 5%); } /* (3) List separator */ & > hr{ display: block; position: relative; margin: 1em 1.5em; border: 0; border-bottom: 2px solid darken($bg-color, 5%); } } /* [2] Card style -> instant-search ---------------------------------*/ #CONTAINER > input.card.instant-search{ display: block; position: absolute; top: .5em; left: .5em; // 100% - filtr - padding - border width: calc( 100% - 20em - 1em - 6*1em ); height: calc( 3em - 2*.5em - 2*1px); margin: 0; padding: .5em 1em; border-radius: 3px / 3px; background-color: #fff; box-shadow: 0 2px 2px darken(#fff, 10%); } /* [3] Card style -> container ---------------------------------*/ #CONTAINER > div.card.container{ display: flex; position: absolute; top: 3em; left: 0; width: calc( 100% - 20em ); min-height: calc( 100% - 3em ); // flex properties flex-direction: row; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; z-index: 101; overflow: hidden; /* (1) Card container */ & > section{ // flex-grow: 1; flex-basis: 15em; flex-shrink: 1; flex-grow: 1; display: block; position: relative; margin: 1em .5em; padding: 1.5em; border-radius: 3px / 3px; // border: 1px solid darken(#fff, 10%); box-shadow: 0 1px 1px darken(#fff, 20%); background-color: #fff; color: $primary-color; // hidden mode &.hidden{ display: none; } /* (2) Card generic title */ & > span.category{ display: block; position: relative; margin-bottom: .5em; font-size: .7em; color: darken($secondary-color, 10%); text-transform: uppercase; letter-spacing: .05em; } /* (2) Card title */ & > h1{ display: block; position: relative; color: darken($primary-color, 5%); font-size: 1em; &.warning:before{ content: ''; display: inline-block; position: relative; width: 1em; height: 1em; margin-right: .3em; background: url('/asset/svg/warning_radio.svg@#{$rd-form-invalid-color}') center bottom no-repeat; background-size: auto 90%; text-anchor: center; } } /* (3) Card 2-column array */ & > div.table{ display: flex; position: relative; margin-top: 1em; padding: .5em; border-radius: 3px / 3px; border: 1px solid darken(#fff, 15%); // flex properties flex-direction: row; justify-content: space-around; align-items: center; flex-wrap: nowrap; /* (4) Column */ & > div{ display: flex; position: relative; height: 2.3em; padding: 0 .4em; border-left: 1px solid darken(#fff, 15%); color: darken($secondary-color, 20%); &:first-child{ border-left: 0; } // flex properties flex-direction: row; justify-content: space-between; align-items: center; flex-wrap: nowrap; /* (4.1) Column Emphasis */ & > span:first-child{ display: block; position: relative; margin-right: .3em; font-size: 1.5em; letter-spacing: .05em; } /* (4.2) Column Emphasis */ & > span:last-child{ display: block; position: relative; min-width: 4em; max-width: 6em; font-size: .8em; letter-spacing: .05em; text-transform: uppercase; overflow: hidden; } } } /* (5) Card footer */ & > div.footer{ display: flex; position: relative; margin-top: 1.3em; margin-left: -1.5em; height: 3.5em; // 100% + parent.margin - padding width: calc( 100% + 2*1.5em - 2*2em ); // remove card bottom padding margin-bottom: -1.5em; padding: 0 2em; border-top: 1px solid darken(#fff, 10%); border-radius: 0 0 3px 3px; background-color: #fafbfd; // flex properties flex-direction: row; justify-content: space-between; align-items: center; flex-wrap: nowrap; /* (5.1) Card footer element */ & > span{ display: flex; position: relative; height: 1.3em; color: darken($secondary-color, 20%); // center text flex-direction: row; justify-content: center; align-items: center; flex-wrap: nowrap; &:before{ content: ''; display: inline-block; position: relative; width: 1.3em; height: 1.3em; margin-right: .4em; background: transparent center center no-repeat; background-size: 80% auto; } // specific icons &.course:before{ background-image: url('/asset/svg/course.svg@#{$menu-item-inactive}'); } &.td:before{ background-image: url('/asset/svg/td.svg@#{$menu-item-inactive}'); } &.tp:before{ background-image: url('/asset/svg/tp.svg@#{$menu-item-inactive}'); } // hover icons &.course.active:before{ background-image: url('/asset/svg/course.svg@5bb8f0'); } &.td.active:before{ background-image: url('/asset/svg/td.svg@20b565'); } &.tp.active:before{ background-image: url('/asset/svg/tp.svg@e85456'); } } /* (5.2) Card footer separator */ & > hr{ display: block; position: relative; width: 1px; height: 1em; border: 0; background-color: darken(#fff, 10%); } } /* (6) Card sub */ & > div.sub{ display: inline-block; margin-top: 1em; color: lighten($primary-color, 20%); } } } /* [4] Card style -> filter ---------------------------------*/ #CONTAINER > div.card.filter{ display: flex; position: fixed; top: #{$header-height + .5em }; left: calc( 100% - 20em ); // deflt - marg - scrollBarOffset width: calc( 20em - 2*.5em - .5em ); height: calc( 100% - 2*.5em - #{$header-height} ); border-radius: 3px / 3px; background-color: #fff; box-shadow: 0 2px 2px darken(#fff, 10%); // flex flex-direction: column; justify-content: flex-start; align-items: flex-start; flex-wrap: nowrap; overflow: hidden; overflow-y: auto; /* (1) Filter Group */ & > div[title]{ display: block; position: relative; margin: 1em; /* (1.1) Title content */ & > div.fold{ content: attr(title); display: inline-block; position: relative; margin-bottom: 1em; padding-right: 1em; background: transparent url('/asset/svg/down_arrow.svg@bbbbbb') right center no-repeat; background-size: 1em 1em; font-size: .8em; color: darken($secondary-color, 10%); text-transform: uppercase; letter-spacing: .05em; cursor: pointer; &[data-show='1']{ background-image: url('/asset/svg/up_arrow.svg@bbbbbb'); } } /* (1.2) Filter element */ & > span{ display: none; position: relative; text-indent: 1.5em; margin-bottom: 1em; cursor: default; &:hover{ text-decoration: underline; } /* (1.3) Pseudo-checkbox */ &:before{ content: ''; display: block; position: absolute; width: calc( 1em - 2*2px ); height: calc( 1em - 2*2px ); border-radius: 3px / 3px; border: 2px solid $secondary-color; background: #fff center center no-repeat; background-size: auto 80%; transition: background .2s ease-in-out, border-color .2s ease-in-out; cursor: pointer; } /* (1.4) Active pseudo-checkbox */ &.active:before{ background-image: url('/asset/svg/checkbox.svg@ffffff'); background-color: $form-valid-color; border-color: $form-valid-color; } } // only show items if filter_group has 'data-show' & > div.fold[data-show='1'] ~ span{ display: block; } } }