setup bootstrap file structure to allow overrides

This commit is contained in:
axolotle
2021-03-05 11:34:38 +01:00
parent f10756ed87
commit 7ed689df19
14 changed files with 81 additions and 1683 deletions
+60
View File
@@ -0,0 +1,60 @@
/*!
* Import of all needed bootstrap files except variables, functions and mixins
*/
// ┌─╮╭─╮╭─╮╶┬╴╭─╴╶┬╴┌─╮╭─┐┌─╮
// │╶┤│ ││ │ │ ╰─╮ │ ├┬╯├─┤├─╯
// └─╯╰─╯╰─╯ ╵ ╶─╯ ╵ ╵ ╰╵ ╵╵
// TODO OPTI: import only used
@import "~bootstrap/scss/root";
@import "~bootstrap/scss/reboot";
@import "~bootstrap/scss/type";
@import "~bootstrap/scss/images";
@import "~bootstrap/scss/code";
@import "~bootstrap/scss/grid";
@import "~bootstrap/scss/tables";
@import "~bootstrap/scss/forms";
@import "~bootstrap/scss/buttons";
@import "~bootstrap/scss/transitions";
@import "~bootstrap/scss/dropdown";
@import "~bootstrap/scss/button-group";
@import "~bootstrap/scss/input-group";
@import "~bootstrap/scss/custom-forms";
@import "~bootstrap/scss/nav";
@import "~bootstrap/scss/navbar";
@import "~bootstrap/scss/card";
@import "~bootstrap/scss/breadcrumb";
@import "~bootstrap/scss/pagination";
@import "~bootstrap/scss/badge";
@import "~bootstrap/scss/jumbotron";
@import "~bootstrap/scss/alert";
@import "~bootstrap/scss/progress";
@import "~bootstrap/scss/media";
@import "~bootstrap/scss/list-group";
@import "~bootstrap/scss/close";
@import "~bootstrap/scss/toasts";
@import "~bootstrap/scss/modal";
@import "~bootstrap/scss/tooltip";
@import "~bootstrap/scss/popover";
@import "~bootstrap/scss/carousel";
@import "~bootstrap/scss/spinners";
@import "~bootstrap/scss/utilities";
@import "~bootstrap/scss/print";
// ┌─╮╭─╮╭─╮╶┬╴╭─╴╶┬╴┌─╮╭─┐┌─╮ ╷ ╷╷ ╷┌─╴
// │╶┤│ ││ │ │ ╰─╮ │ ├┬╯├─┤├─╯╶─╴│╭╯│ │├─╴
// └─╯╰─╯╰─╯ ╵ ╶─╯ ╵ ╵ ╰╵ ╵╵ ╰╯ ╰─╯╰─╴
// TODO OPTI: import only used
@import "~bootstrap-vue/src/utilities";
// General styling needed for special form controls
@import "~bootstrap-vue/src/custom-controls";
// Include custom SCSS for components
@import "~bootstrap-vue/src/components/index";
File diff suppressed because it is too large Load Diff
-7
View File
@@ -1,7 +0,0 @@
$bleuroi: rgb(61,82,102);
$bleuroilight: lighten(rgb(61,82,102), 30%);
$gris: rgb(200,204,204);
$grisclair: rgb(230,234,234);
$grisfonce: rgb(57,57,64);
$or: rgb(179,161,125);
$rouge: rgb(204,61,82);
-93
View File
@@ -1,93 +0,0 @@
@import '../fonts/libertinus/libertinus.css';
@import '../fonts/notosans/notosans.css';
// @import '../fonts/notosans/notosans-semicondensed.css';
// @import '../fonts/notosans/notosans-condensed.css';
// @import '../fonts/notosans/notosans-extracondensed.css';
@mixin fontsans {
font-family: "noto_sans";
}
@mixin fontserif {
font-family: 'libertinus_serif';
}
body{
@include fontserif;
font-weight: 400;
// font-family: 'noto_sans';
// font-weight: 900;
// font-style: italic;
}
#header-menu,
#footer-tabs,
#search,
footer[role="tools"] .row>header,
footer[role="tools"] .row>nav{
@include fontsans;
}
@mixin title1blue {
@include fontserif;
font-size: 2.268em;
color: $bleuroi;
font-weight: 400;
margin:0;
}
@mixin title1black {
@include fontserif;
font-size: 1.512em;
color: $grisfonce;
font-weight: 400;
margin:0;
}
@mixin title2black {
@include fontserif;
font-size: 1.134em;
color: $grisfonce;
font-weight: 400;
margin:0;
}
@mixin title3black {
@include fontserif;
font-size: 1em;
color: $grisfonce;
font-weight: 400;
margin:0;
}
@mixin title4black {
@include fontserif;
font-size: 0.882em;;
color: $gris;
font-weight: 400;
margin:0;
}
// TEI
@mixin teititlefrontblue {
@include fontserif;
font-size: 2.6em;
color: $bleuroi;
font-weight: 400;
margin:0;
text-align: center;
}
@mixin teititle1blue {
@include fontserif;
font-size: 1.8em;
color: $bleuroi;
font-weight: 400;
margin:0;
}
@mixin fontcaption {
@include fontsans;
font-size: 0.643em;
line-height: 1.1em;
}
-105
View File
@@ -1,105 +0,0 @@
// http://www.thesassway.com/intermediate/simple-grid-mixins
@mixin row() {
display:flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: stretch;
@media only screen and (max-width: $small-bp) {
flex-wrap:wrap;
}
}
.row{
@include row;
}
.row-rl{
@include row;
}
// small
.small-row {
@media only screen and (max-width: $small-bp) {
@include row;
}
}
// medium
.med-row {
@media only screen and (min-width: $small-bp+1) and (max-width: $med-bp) {
@include row;
}
}
// large
.large-row {
@media only screen and (min-width: $med-bp+1) {
@include row;
}
}
%col-reset {
box-sizing: border-box;
}
@mixin col($col, $offset: 0, $sum: $default_sum, $gap: $default_gap, $align: top) {
@extend %col-reset;
padding-left: $gap*$offset;
@if $col == $default_sum {
// if last col, then no gap
padding-right: 0;
}@else{
padding-right: $gap;
}
&:last-child{padding-right: 0;}
// no offset with flex ??
// margin-left: percentage(($col/$sum)*$offset);
// col width
flex-basis: percentage($col/$sum);
}
@for $c from 1 through $default_sum {
.col-#{$c} {
@include col($c);
}
// small
.small-col-#{$c} {
@media only screen and (max-width: $small-bp) {
@include col($c);
}
}
// medium
.med-col-#{$c} {
@media only screen and (min-width: $small-bp+1) and (max-width: $med-bp) {
@include col($c);
}
}
// large
.large-col-#{$c} {
@media only screen and (min-width: $med-bp+1) {
@include col($c);
}
}
}
@for $c from 1 through $default_sum - 1 {
@for $o from 1 through $default_sum - $c {
.col-#{$c}-offset-#{$o} {
@include col($c, $o);
}
}
}
// TODO: replace with align-self:flex-start or flex-end
// .col.float-right{
// float: right;
// padding-right: 0;
// padding-left: $default_gap;
// }
-92
View File
@@ -1,92 +0,0 @@
// http://www.thesassway.com/intermediate/simple-grid-mixins
@mixin row() {
// font-size: 0;
// white-space: nowrap;
position: relative;
// >*{
// font-size: 16px;
// }
&:after{
content:"";
clear:both;
display: block;
}
}
%col-reset {
width: 100%;
// display: inline-block;
// white-space:normal;
// font-size: 16px;
float:left;
box-sizing: border-box;
}
@mixin col($col, $offset: 0, $sum: $default_sum, $gap: $default_gap, $align: top) {
@extend %col-reset;
padding-left: $gap*$offset;
@if $col == $default_sum {
padding-right: 0;
}@else{
padding-right: $gap;
}
&:last-child{padding-right: 0;}
margin-left: percentage(($col/$sum)*$offset);
// @media only screen and (min-width: 768px) {
width: percentage($col/$sum);
// vertical-align: $align;
// }
}
.row{
@include row;
// html:not(.js) &{
// overflow-y: auto;
// }
}
@for $c from 1 through $default_sum {
.col-#{$c} {
@include col($c);
}
// small
.small-col-#{$c} {
@media only screen and (max-width: $small-bp) {
@include col($c);
}
}
// medium
.med-col-#{$c} {
@media only screen and (min-width: $small-bp+1) and (max-width: $med-bp) {
@include col($c);
}
}
// large
.large-col-#{$c} {
@media only screen and (min-width: $med-bp+1) {
@include col($c);
}
}
}
@for $c from 1 through $default_sum - 1 {
@for $o from 1 through $default_sum - $c {
.col-#{$c}-offset-#{$o} {
@include col($c, $o);
}
}
}
.col.float-right{
float: right;
padding-right: 0;
padding-left: $default_gap;
}
-94
View File
@@ -1,94 +0,0 @@
$side-padding:3em;
body, html{
position: relative;
width: 100%;
height:100%;
font-family: sans-serif;
font-style: normal;
margin:0;
padding:0;
}
body{
overflow:hidden;
}
#root{
display: flex;
flex-direction: column;
width: 100vw;
height:100vh;
%layout-element{
width:100vw;
box-sizing:border-box;
}
header[role="banner"]{
z-index:10;
flex: 0 0 auto;
@extend %layout-element;
padding:1em $side-padding 1em $side-padding;
@media only screen and (max-width: $small-bp) {
padding:1em $side-padding/2 0 $side-padding/2;
}
}
section[role="main-content"]{
display: flex;
flex:1 1 auto;
@extend %layout-element;
overflow: hidden;
position: relative;
>.wrapper{
position: relative;
padding:0 $side-padding 0 $side-padding;
// height:100%; max-height:100%;
display: flex;
flex: 1;
overflow-y: hidden;
overflow-x: hidden;
>*{
@include fade-transition;
}
@media only screen and (max-width: $small-bp) {
overflow-y: auto;
padding:0 $side-padding/2 0 $side-padding/2;
}
}
.main-content-layout{
position: relative;
// https://stackoverflow.com/a/33644245
display: flex;
flex: 1;
>section{
max-height: 100%;
}
>header,
>section>.wrapper,
>nav{
box-sizing: border-box;
max-height: 100%;
padding-top:1em;
}
>section>.wrapper,
>nav{
overflow-x: hidden;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
}
@media only screen and (max-width: $small-bp) {
.main-content-layout{
display: flex;
flex-direction: column;
}
}
}
footer[role="tools"]{
flex:0 0 auto;
@extend %layout-element;
// padding-bottom: 1em;
// >*{
// padding:0.5em 1em;
// }
}
}
-40
View File
@@ -1,40 +0,0 @@
html, body{
font-size:16px;
line-height: 0.9;
margin:0; padding:0;
background: white;
}
a{
color: inherit;
text-decoration: none;
}
a, a:focus, a:active { outline: none; }
a:focus{ -moz-outline-style: none; }
ul {
padding:0;
margin:0;
}
li{
padding:0;
margin:0;
list-style: none;
}
.visualy-hidden {
position: absolute !important;
clip: rect(1px, 1px, 1px, 1px);
overflow: hidden;
height: 1px;
width: 1px;
word-wrap: normal;
}
.visualy-hidden:active,
.visualy-hidden:focus {
position: static !important;
clip: auto;
overflow: visible;
height: auto;
width: auto;
}
-67
View File
@@ -1,67 +0,0 @@
// _ _ _ _
// | |_ _ _ __ _ _ _ __(_) |_(_)___ _ _ ___
// | _| '_/ _` | ' \(_-< | _| / _ \ ' \(_-<
// \__|_| \__,_|_||_/__/_|\__|_\___/_||_/__/
@mixin accordeon-transition($h){
&.accordeon-enter,
&.accordeon-leave-to{
// opacity: 0;
height:0.01vh;
padding-top: 0;
padding-bottom: 0;
// transform: translateY(100%);
// transform: translate3d(0, 100%, 0);
}
&.accordeon-enter-to,
&.accordeon-leave{
// opacity:1;
height:$h;
// transform: translateY(0%);
// transform: translate3d(0, 0, 0);
}
&.accordeon-enter-active{
transition: all 300ms ease-in-out;
}
&.accordeon-leave-active{
transition: all 200ms ease-in-out;
}
}
@mixin fade-transition() {
&.fade-enter,
&.fade-leave-to{
opacity: 0;
}
&.fade-enter-to,
&.fade-leave{
opacity:1;
}
&.fade-enter-active{
transition: all 300ms ease-in-out;
}
&.fade-leave-active{
transition: all 200ms ease-in-out;
}
}
.fade-enter-active{
transition: all 300ms ease-in-out;
}
.fade-leave-active{
transition: all 200ms ease-in-out;
}
.fade-enter,
.fade-leave-active {
opacity: 0
}
// .edition-texts-enter-active, .edition-texts-leave-active {
// transition: all 1s;
// }
// .edition-texts-enter, .edition-texts-leave-to /* .list-leave-active below version 2.1.8 */ {
// max-height: 0;
// // transform: translateY(30px);
// }
-10
View File
@@ -1,10 +0,0 @@
$base_font_size:16px;
// grid
$default_gap: 1em;
$default_sum: 12; // total number of columns
$small-bp:768px;
$med-bp:1080px;
$ipad-bp: 1536px;
$large-bp:1900px;
+18 -1
View File
@@ -14,10 +14,27 @@
*/
// Custom variables must be imported first.
@import 'bootstrap-overrides/variables';
@import 'variables';
// ┌─╮╭─╮╭─╮╶┬╴╭─╴╶┬╴┌─╮╭─┐┌─╮
// │╶┤│ ││ │ │ ╰─╮ │ ├┬╯├─┤├─╯
// └─╯╰─╯╰─╯ ╵ ╶─╯ ╵ ╵ ╰╵ ╵╵
@import '~bootstrap/scss/functions';
@import '~bootstrap/scss/variables';
@import '~bootstrap/scss/mixins';
@import '~bootstrap-vue/src/variables';
// ┌─╮╭─╮╭─╮╶┬╴╭─╴╶┬╴┌─╮╭─┐┌─╮ ╷ ╷╷ ╷┌─╴
// │╶┤│ ││ │ │ ╰─╮ │ ├┬╯├─┤├─╯╶─╴│╭╯│ │├─╴
// └─╯╰─╯╰─╯ ╵ ╶─╯ ╵ ╵ ╰╵ ╵╵ ╰╯ ╰─╯╰─╴
@import "~bootstrap-vue/src/variables";
// mixins and functions overides must be imported after bootstrap's definitions.
@import 'bootstrap-overrides/mixins';
+3 -6
View File
@@ -1,11 +1,8 @@
@import 'variables';
@import 'globals';
// Bootstrap (temp ?)
@import '~bootstrap/scss/bootstrap.scss';
@import '~bootstrap-vue/src/index.scss';
@import 'bootstrap';
html, body, #app, main {
html, body, #app {
height: 100%;
margin: 0;
}