diff --git a/resources/assets/stylesheets/less/avatar.less b/resources/assets/stylesheets/less/avatar.less deleted file mode 100644 index 8a400688dceb956ac053e8883df464e114241b9e..0000000000000000000000000000000000000000 --- a/resources/assets/stylesheets/less/avatar.less +++ /dev/null @@ -1,116 +0,0 @@ -@import (inline) "../../../../node_modules/cropperjs/dist/cropper.css"; - -/* --- Avatars of users, courses and institutes ----------------------------- */ -.avatar-small { - vertical-align: middle; - .size(@avatar-small, @avatar-small); -} -.avatar-medium { - max-width: @avatar-medium; - height: @avatar-medium; -} -.avatar-normal { - max-width: @avatar-normal; - height: @avatar-normal; -} - -.course-avatar-small { - vertical-align: middle; - max-width: 25px; - height: 25px; -} -.course-avatar-medium { - max-width: 180px; - height: 60px; -} - -.license-avatar-normal { - max-height: 100px; - width: 300px; -} -.license-avatar-medium { - height: 40px; - max-width: 120px; -} -.license-avatar-small { - max-height: 20px; - width: 60px; -} - - -#custom_avatar label { - display: block; - font-weight: bold; -} - -div#avatar { - img { - max-width: 100%; - } -} - -form.settings-avatar { - - .avatar-normal { - display: block; - margin-left: auto; - margin-right: auto; - padding: 2em; - } - - .file-upload { - flex: 1 1 auto; - position: relative; - top: 2em; - } - - .form-text { - color: initial; - } - - .media-breakpoint-small-up({ .form-group { - display: flex; - align-items: normal; - } }); - - .media-breakpoint-small-down({ - .file-upload { - position: initial; - left: 0; - top: 0; - } - .form-group { - display: initial; - } - }); - - .cropper-container { - margin-left: auto; - margin-right: auto; - - .cropper-view-box { - outline: 1px solid @base-color-80; - } - - .cropper-line, .cropper-point { - background-color: @base-color-80; - } - } - - #avatar-buttons { - padding-left: 5px; - padding-right: 5px; - text-align: left; - width: 150px; - - a { - align-items: center; - display: flex; - margin-bottom: 10px; - - img { - padding-right: 5px; - } - } - } -} diff --git a/resources/assets/stylesheets/less/copyable-links.less b/resources/assets/stylesheets/less/copyable-links.less deleted file mode 100644 index 0084128e4d0f5bbb0930635bbc2c99f5ced90ca3..0000000000000000000000000000000000000000 --- a/resources/assets/stylesheets/less/copyable-links.less +++ /dev/null @@ -1,61 +0,0 @@ -// Defines a css animation keyframes specific for this section with stop points -// at 1/3 and 2/3. This way, the animation runs for a third of the allocated -// time, shows the desired state for a third of the time and reverts for - you -// guessed it - a third of the time. -.keyframes(@name, @rules-inital, @rules-target) { - @keyframes @name { - 0% { @rules-inital(); } - 33% { @rules-target(); } - 66% { @rules-target(); } - 100% { @rules-inital(); } - } -} - -.copyable-link-animation { - @animation-name: copyable-links-confirmation; - @animation-duration: 2s; - - // Position confirmation message above the link - position: relative; - - div { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - - text-align: center; - - .icon('before', 'check-circle', 'status-green', 16px, 5px); - } - - // Flip the link and confirmation message along the x axis - a, - div { - backface-visibility: hidden; - pointer-events: none; - } - - a { - .keyframes(~"@{animation-name}-front", { - opacity: 1; - transform: rotateX(0); - }, { - opacity: 0; - transform: rotateX(180deg); - }); - animation: ~"@{animation-name}-front" @animation-duration linear; - } - - div { - .keyframes(~"@{animation-name}-back", { - opacity: 0; - transform: rotateX(180deg); - }, { - opacity: 1; - transform: rotateX(0); - }); - animation: ~"@{animation-name}-back" @animation-duration linear; - } -} diff --git a/resources/assets/stylesheets/less/deprecated.less b/resources/assets/stylesheets/less/deprecated.less deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/resources/assets/stylesheets/less/navigation-hoverborder.less b/resources/assets/stylesheets/less/navigation-hoverborder.less deleted file mode 100644 index d6a1a66dcfbc1d78fb8ccd6dee773ac2c7ed7dff..0000000000000000000000000000000000000000 --- a/resources/assets/stylesheets/less/navigation-hoverborder.less +++ /dev/null @@ -1,80 +0,0 @@ -@transition-duration: 300ms; -.border-beneath(@color, @margin: 2px, @height: 3px) when (@color = 'dark') { - .border-beneath(@dark-gray-color-80, @height, @margin); -} -.border-beneath(@color, @margin: 2px, @height: 3px) when (@color = 'light') { - .border-beneath(@dark-gray-color-40, @height, @margin); -} -.border-beneath(@color, @margin: 2px, @height: 3px) { - border-bottom: 0; - padding-bottom: 0; - position: relative; - - &::after { - position: absolute; - top: 100%; - left: 0; - right: 0; - opacity: 1; - content: ''; - display: block; - background-color: @color; - height: @height; - margin-top: @margin; - - @media not (prefers-reduced-motion) { - transition: left @transition-duration, - right @transition-duration, - opacity @transition-duration; - } - } -} -.border-shrink() { - left: 50%; - right: 50%; - opacity: 0; -} - -body:not(.fixed) #barTopMenu { - > li.active { - .border-beneath('dark'); - } - > li:not(.active) { - .border-beneath('light'); - &:not(:hover)::after { - .border-shrink(); - } - } - - &:hover > li:not(:hover)::after { - .border-shrink(); - } - - .action-menu-icon { - transform: rotate(-90deg); - } - - .overflow li:hover { - .border-beneath('light', 2px, 3px); - &::after { - transform: translate(0, -4px); - } - } -} - -#tabs { - > li { - &, &.current, &:hover { - line-height: 25px; - } - &.current { - .border-beneath('dark', -2px, 3px); - } - &:not(.current) { - .border-beneath('light', -2px, 3px); - &:not(:hover)::after { - .border-shrink(); - } - } - } -} diff --git a/resources/assets/stylesheets/less/typography.less b/resources/assets/stylesheets/less/typography.less deleted file mode 100644 index c74b88502b031b70716e563f9aa5f4aef46f014f..0000000000000000000000000000000000000000 --- a/resources/assets/stylesheets/less/typography.less +++ /dev/null @@ -1,90 +0,0 @@ -// Body reset - -html { - font-size: 62.5%; - -webkit-tap-highlight-color: rgba(0,0,0,0); -} - -body { - font-family: @font-family-base; - font-size: @font-size-base; - line-height: @line-height-base; - color: @text-color; -} - -// Reset fonts for relevant elements - -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -// -// Typography -// -------------------------------------------------- - - -// Headings -// ------------------------- - -h1, h2, h3, h4, h5, h6 { - font-family: @headings-font-family; - font-weight: @headings-font-weight; - line-height: @headings-line-height; - color: @headings-color; -} - -h1, -h2, -h3 { - margin-top: @line-height-computed; - margin-bottom: (@line-height-computed / 2); -} - -h4, -h5, -h6, { - margin-top: (@line-height-computed / 2); - margin-bottom: (@line-height-computed / 2); -} - -h1 { font-size: @font-size-h1; } -h2 { font-size: @font-size-h2; } -h3 { font-size: @font-size-h3; } -h4 { font-size: @font-size-h4; } -h5 { font-size: @font-size-h5; } -h6 { font-size: @font-size-h6; } - - -// Headings with borders -// ------------------------- - -h1, h2 { - font-size: 1.3em; -} - - -h1 { - margin-top: 0px; - span { - display: block; - font-size: (@font-size-h1 * 0.75); - font-weight: (@headings-font-weight / 7); - padding: (@line-height-computed / 4) 0; - } -} - -// Body text -// ------------------------- - -p { - margin: 0 0 (@line-height-computed / 2); -} - -.text-center { - text-align: center; -} diff --git a/resources/assets/stylesheets/mixins/studip.scss b/resources/assets/stylesheets/mixins/studip.scss index b843a7e52803aedf9133cc5425108b0f2a5352ca..2073450a538be2565a26c3d8a15f864ebb9d3115 100644 --- a/resources/assets/stylesheets/mixins/studip.scss +++ b/resources/assets/stylesheets/mixins/studip.scss @@ -205,7 +205,7 @@ background-attachment: local, local, scroll, scroll; } -%scrollbox-horizontal { +@mixin scrollbox-horizontal { overflow: auto; background: diff --git a/resources/assets/stylesheets/scss/avatar.scss b/resources/assets/stylesheets/scss/avatar.scss index 7eb3a401656b25b48b4e189e968299daf18fbf67..f8629e96ec6d4bb3850cc58a4575e819fd3eba18 100644 --- a/resources/assets/stylesheets/scss/avatar.scss +++ b/resources/assets/stylesheets/scss/avatar.scss @@ -43,3 +43,127 @@ div.avatar-widget { } } } + +@import "../../../../node_modules/cropperjs/dist/cropper"; + +/* --- Avatars of users, courses and institutes ----------------------------- */ +.avatar-small { + vertical-align: middle; + @include size($avatar-small, $avatar-small); +} + +.avatar-medium { + max-width: $avatar-medium; + height: $avatar-medium; +} + +.avatar-normal { + max-width: $avatar-normal; + height: $avatar-normal; +} + +.course-avatar-small { + vertical-align: middle; + max-width: 25px; + height: 25px; +} + +.course-avatar-medium { + max-width: 180px; + height: 60px; +} + +.license-avatar-normal { + max-height: 100px; + width: 300px; +} + +.license-avatar-medium { + height: 40px; + max-width: 120px; +} + +.license-avatar-small { + max-height: 20px; + width: 60px; +} + + +#custom_avatar label { + display: block; + font-weight: bold; +} + +div#avatar { + img { + max-width: 100%; + } +} + +form.settings-avatar { + + .avatar-normal { + display: block; + margin-left: auto; + margin-right: auto; + padding: 2em; + } + + .file-upload { + flex: 1 1 auto; + position: relative; + top: 2em; + } + + .form-text { + color: initial; + } + + @include media-breakpoint-small-up() { + .form-group { + display: flex; + align-items: normal; + } + } + + @include media-breakpoint-small-down() { + .file-upload { + position: initial; + left: 0; + top: 0; + } + .form-group { + display: initial; + } + } + + .cropper-container { + margin-left: auto; + margin-right: auto; + + .cropper-view-box { + outline: 1px solid $base-color-80; + } + + .cropper-line, .cropper-point { + background-color: $base-color-80; + } + } + + #avatar-buttons { + padding-left: 5px; + padding-right: 5px; + text-align: left; + width: 150px; + + a { + align-items: center; + display: flex; + margin-bottom: 10px; + + img { + padding-right: 5px; + } + } + } +} diff --git a/resources/assets/stylesheets/less/clipboard.less b/resources/assets/stylesheets/scss/clipboard.scss similarity index 79% rename from resources/assets/stylesheets/less/clipboard.less rename to resources/assets/stylesheets/scss/clipboard.scss index 4026c5bf1c6e1f47c719c96cefcf7ef4abe9d17d..dc4d4be2710d688077ad4b1a08b0f29ead7006e2 100644 --- a/resources/assets/stylesheets/less/clipboard.less +++ b/resources/assets/stylesheets/scss/clipboard.scss @@ -18,12 +18,12 @@ .dragged-clipboard-item { position: fixed; - z-index: @drag_and_drop_z_index; - border: @drag_and_drop_border; - color: @base-color; + z-index: $drag_and_drop_z_index; + border: $drag_and_drop_border; + color: $base-color; font-weight: bold; - font-size: @font-size-large; - background-color: @white; + font-size: $font-size-large; + background-color: $white; } div.clipboard-area-container { @@ -34,7 +34,7 @@ div.clipboard-area-container { table.clipboard-area { width: 100%; - border: 1px solid @content-color-40; + border: 1px solid $content-color-40; height: 8em; padding: 0.25em; } @@ -66,10 +66,10 @@ table.clipboard-area tr.empty-clipboard-message > td { @keyframes drop-animation { 0% { - background-color: @yellow-60; + background-color: $yellow-60; } 100% { - background-color: @white; + background-color: $white; } } diff --git a/resources/assets/stylesheets/less/contacts.less b/resources/assets/stylesheets/scss/contacts.scss similarity index 97% rename from resources/assets/stylesheets/less/contacts.less rename to resources/assets/stylesheets/scss/contacts.scss index cb04db02749e8c1aa0a2cfbc840387ad4552ec91..95effd48281aa97e7bc30f3e04d22b2c8904273d 100644 --- a/resources/assets/stylesheets/less/contacts.less +++ b/resources/assets/stylesheets/scss/contacts.scss @@ -41,7 +41,7 @@ table.contact-header { &:hover { background-color: #b7c2e2; } a { - color: #f00; + color: $red; font-weight: bold; } } diff --git a/resources/assets/stylesheets/less/content_box.less b/resources/assets/stylesheets/scss/content_box.scss similarity index 82% rename from resources/assets/stylesheets/less/content_box.less rename to resources/assets/stylesheets/scss/content_box.scss index 2d3482fafe81394234fc65c886991c4f320c7556..1862ddf3e5634318d9a5c57e8db601d91851ff2a 100644 --- a/resources/assets/stylesheets/less/content_box.less +++ b/resources/assets/stylesheets/scss/content_box.scss @@ -1,5 +1,5 @@ section.contentbox { - border-color: @content-color-40; + border-color: $content-color-40; border-style: solid; border-width: 1px; margin-bottom: 10px; @@ -12,11 +12,11 @@ section.contentbox { justify-content: space-between; padding: 2px; - background-color: @content-color-20; + background-color: $content-color-20; span.title { font-size: medium; - color: @base-color; + color: $base-color; &.no-overflow { width: calc(100% - 1.5em); @@ -26,7 +26,7 @@ section.contentbox { &:after { content: ""; width: 4em; - background: linear-gradient(to right, transparent, @content-color-20); + background: linear-gradient(to right, transparent, $content-color-20); position: absolute; height: 1.5em; right: 2.5em; @@ -38,9 +38,10 @@ section.contentbox { flex: 1 0 0; padding: 5px; margin: 0; - color: @base-color; + color: $base-color; border-bottom: none; font-size: medium; + > a { img, svg { margin-right: 5px; @@ -61,15 +62,18 @@ section.contentbox { } } } + footer:empty { display: none !important; } + footer { text-align: center; - border-color: @content-color-40; + border-color: $content-color-40; border-top-style: solid; border-width: 1px; - background-color: white;} + background-color: $white; + } section { padding: 10px; @@ -85,13 +89,13 @@ section.contentbox { } > article { - border-color: @content-color-40; + border-color: $content-color-40; border-style: solid; border-width: 1px; margin: 10px; > p, > section, > footer, > div { - max-height: 0px; + max-height: 0; opacity: 0; overflow: auto; transition: opacity 0.3s; @@ -124,7 +128,7 @@ section.contentbox { font-size: small; width: 100%; font-weight: bold; - color: black; + color: $black; } } @@ -141,14 +145,17 @@ section.contentbox { header { h1 a { - .icon('before', "arr_1right", 'clickable'); + @include icon(before, arr_1right, clickable); + &:before { transition: all 200ms ease 0s; margin-right: 2px; } + display: flex; align-items: center; } + nav { a, > span { display: inline-block; @@ -158,12 +165,14 @@ section.contentbox { > span { &:last-child { border-right: none; - padding-right: 0px; + padding-right: 0; } + display: inline-block; - border-right: 1px solid @content-color; - padding: 0px 5px; + border-right: 1px solid $content-color; + padding: 0 5px; } + a { padding-left: 5px; align-items: center; @@ -174,36 +183,39 @@ section.contentbox { footer { text-align: center; - border-color: @content-color-40; + border-color: $content-color-40; border-top-style: none; border-width: 1px; - background-color: white; + background-color: $white; + h1 { font-size: 1em; font-weight: bold; border: none; padding: 0; } + article.comment { border: 0; - border-top: 1px solid @light-gray-color-40; + border-top: 1px solid $light-gray-color-40; max-width: 1260px; - margin: auto; - margin-bottom: 4px; + margin: auto auto 4px; text-align: left; + h1 { - margin-bottom: 0px; + margin-bottom: 0; } + time { - float:right; + float: right; font-size: 0.8em; - color: @light-gray-color-40; + color: $light-gray-color-40; } } } &:not(.open) header ~ * { - max-height: 0px; + max-height: 0; opacity: 0; overflow: auto; transition: opacity 0.3s; @@ -227,14 +239,15 @@ section.contentbox { &.new { header h1 a { - .icon('before', "arr_1right", 'new'); + @include icon(before, arr_1right, new); } } &.indented { margin-left: calc(10px + 1em); + > header { - background-color: mix(@content-color, #fff, 10%); + background-color: mix($content-color, $white, 10%); } } } diff --git a/resources/assets/stylesheets/scss/copyable-links.scss b/resources/assets/stylesheets/scss/copyable-links.scss new file mode 100644 index 0000000000000000000000000000000000000000..db719e0ef97e60db6b7a77ae8ef1f0aae6914d88 --- /dev/null +++ b/resources/assets/stylesheets/scss/copyable-links.scss @@ -0,0 +1,69 @@ +.copyable-link-animation { + $animation-name: copyable-links-confirmation; + $animation-duration: 2s; + + // Position confirmation message above the link + position: relative; + + div { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + + text-align: center; + + @include icon(before, check-circle, status-green, 16px, 5px); + } + + // Flip the link and confirmation message along the x axis + a, div { + backface-visibility: hidden; + pointer-events: none; + } + + a { + @keyframes copyable-links-confirmation-front { + 0% { + opacity: 1; + transform: rotateX(0); + } + 33% { + opacity: 0; + transform: rotateX(180deg); + } + 66% { + opacity: 0; + transform: rotateX(180deg); + } + 100% { + opacity: 1; + transform: rotateX(0); + } + } + animation: copyable-links-confirmation-front $animation-duration linear; + } + + div { + @keyframes copyable-links-confirmation-back { + 0% { + opacity: 0; + transform: rotateX(180deg); + } + 33% { + opacity: 1; + transform: rotateX(0); + } + 66% { + opacity: 1; + transform: rotateX(0); + } + 100% { + opacity: 0; + transform: rotateX(180deg); + } + } + animation: copyable-links-confirmation-back $animation-duration linear; + } +} diff --git a/resources/assets/stylesheets/less/cronjobs.less b/resources/assets/stylesheets/scss/cronjobs.scss similarity index 87% rename from resources/assets/stylesheets/less/cronjobs.less rename to resources/assets/stylesheets/scss/cronjobs.scss index d81ebd73e976b356776e860c32f78841daad842a..a022898ea80b67659197cfb143b60079940ab3ce 100644 --- a/resources/assets/stylesheets/less/cronjobs.less +++ b/resources/assets/stylesheets/scss/cronjobs.scss @@ -13,11 +13,11 @@ display: none; } .selected { - td { background-color: fadeout(@active-color, 75%); } + td { background-color: $red-40; } tr ~ tr { display: table-row; td { - background-color: #fff; + background-color: $white; } td[colspan] { background-color: inherit; @@ -26,7 +26,7 @@ } } .parameters { - border: 1px solid #888; + border: 1px solid $dark-gray-color; border-bottom: 0; border-top: 0; padding: 0.5em; @@ -49,7 +49,7 @@ } } tbody:last-child .parameters { - border-bottom: 1px solid #888; + border-bottom: 1px solid $white; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; } @@ -81,7 +81,7 @@ } .inactivatible td { - color: #888; + color: $dark-gray-color; } .cronjobs-edit { @@ -89,7 +89,7 @@ margin: 0 0 0.5em; } - > table > thead > tr > th { .table_header_bold; } + //> table > thead > tr > th { .table_header_bold; } > table { margin-bottom: 1em; } diff --git a/resources/assets/stylesheets/less/forms.less b/resources/assets/stylesheets/scss/forms.scss similarity index 81% rename from resources/assets/stylesheets/less/forms.less rename to resources/assets/stylesheets/scss/forms.scss index abbf89c59f8c466825c146aa5ee2528b1401290b..ad39aa3655434d46e77183f28024a998e759d60e 100644 --- a/resources/assets/stylesheets/less/forms.less +++ b/resources/assets/stylesheets/scss/forms.scss @@ -1,38 +1,38 @@ -form.default { - @gap: 1.5ex; +$gap: 1.5ex; - @max-width-s: 8em; - @max-width-m: 48em; - @max-width-l: 100%; +$max-width-s: 8em; +$max-width-m: 48em; +$max-width-l: 100%; +form.default { div.select2-wrapper { display: block ! important; } section { &:not(.contentbox) { - padding-top: @gap; + padding-top: $gap; label:first-of-type { - margin-top: 0px; + margin-top: 0; } } } fieldset > section:last-child { - margin-bottom: @gap; + margin-bottom: $gap; } ol.default { padding-left: 20px; li { - padding: 2px 0px; + padding: 2px 0; } } span.empty { - color: @light-gray-color-40; + color: $light-gray-color-40; font-style: italic; } @@ -41,40 +41,40 @@ form.default { textarea, select { box-sizing: border-box; - border: 1px solid @light-gray-color-40; - color: @dark-gray-color; - max-width: @max-width-m; + border: 1px solid $light-gray-color-40; + color: $dark-gray-color; + max-width: $max-width-m; padding: 5px; vertical-align: middle; width: 100%; transition: all 0.3s ease-out; &:focus { - border-color: @brand-color-dark; + border-color: $brand-color-dark; } &.size-s { - max-width: @max-width-s; + max-width: $max-width-s; } &.size-m { } &.size-l { - max-width: @max-width-l; + max-width: $max-width-l; } &[readonly] { - background-color: @light-gray-color-20; + background-color: $light-gray-color-20; } } .quicksearch_container { - max-width: @max-width-m; + max-width: $max-width-m; } input[type=date], input[type=number], input[type=time], input[type=tel]:not(.size-m) { - max-width: @max-width-s; + max-width: $max-width-s; } textarea { @@ -83,7 +83,7 @@ form.default { label:not(.undecorated, .ck-voice-label) { display: block; - margin-bottom: @gap; + margin-bottom: $gap; max-width: 100%; text-indent: 0.25ex; vertical-align: top; @@ -97,7 +97,7 @@ form.default { } .formpart { - margin-bottom: @gap; + margin-bottom: $gap; output.calculator_result { display: block; @@ -105,11 +105,11 @@ form.default { } } .editablelist { - margin-bottom: @gap; + margin-bottom: $gap; > li { margin-bottom: 10px; &:last-child { - margin-bottom: 0px; + margin-bottom: 0; } } } @@ -161,17 +161,16 @@ form.default { fieldset { box-sizing: border-box; - border: solid 1px @content-color-40; + border: solid 1px $content-color-40; margin: 0 0 10px; - padding: 10px; - padding-top: @gap; + padding: $gap 10px 10px; > legend { box-sizing: border-box; - background-color: @fieldset-header; - border: 1px solid @content-color-40; + background-color: $fieldset-header; + border: 1px solid $content-color-40; border-bottom: 0; - color: @brand-color-dark; + color: $brand-color-dark; font-size: 12pt; font-weight: bold; line-height: 2em; @@ -186,7 +185,7 @@ form.default { &:not(.collapsed) > label:last-child::after { content: ''; display: block; - margin-top: -@gap; + margin-top: -$gap; } } @@ -196,9 +195,9 @@ form.default { overflow:auto; > fieldset { - border:none; - margin:0px; - padding:0px; + border: none; + margin: 0; + padding: 0; } } @@ -206,13 +205,13 @@ form.default { font-weight: bold; &::after { content: "*"; - color: red; + color: $red; } } .studiprequired { font-weight: bold; .asterisk { - color: red; + color: $red; } } @@ -221,7 +220,7 @@ form.default { } select[disabled] { - background-color: @dark-gray-color-15; + background-color: $dark-gray-color-15; } .tooltip.tooltip-icon::before { @@ -229,13 +228,11 @@ form.default { } footer { - background-color: @content-color-20; - border-top: 1px solid @brand-color-darker; + background-color: $content-color-20; + border-top: 1px solid $brand-color-darker; clear: both; margin-left: 0; - padding: 10px; - padding-top: 5px; - padding-bottom: 5px; + padding: 5px 10px; .button { margin-bottom: 0; @@ -246,21 +243,21 @@ form.default { //Special inputs label.file-upload { - .background-icon('upload', 'clickable'); + @include background-icon(upload, clickable); background-repeat: no-repeat; background-position: top left; background-size: 20px 20px; cursor: pointer; padding-left: 30px; - color: @base-color; + color: $base-color; input[type=file] { display: none; } .filename { padding-left: 0.5em; - color: @light-gray-color-80; + color: $light-gray-color-80; } } @@ -277,25 +274,25 @@ form.default { input[type=date], input[type=email], input[type=number], input[type=password], input[type=text], input[type=time], input[type=url], input[type=tel], textarea, select { - max-width: calc(@max-width-m - 2em); + max-width: calc($max-width-m - 2em); width: calc(100% - 2em); display: inline-block; transition: all 0.3s ease-out; &:focus { - border-color: @brand-color-dark; + border-color: $brand-color-dark; } &.size-s { - max-width: calc(@max-width-s - 2em); + max-width: calc($max-width-s - 2em); } &.size-m { } &.size-l { - max-width: calc(@max-width-l - 2em); + max-width: calc($max-width-l - 2em); } } } @@ -304,16 +301,15 @@ form.default { .hgroup, .hgroup-btn { display: flex; - align-items: center; flex-wrap: wrap; align-items: flex-start; - max-width: @max-width-m; + max-width: $max-width-m; &.size-s { - max-width: @max-width-s; + max-width: $max-width-s; } &.size-l { - max-width: @max-width-l; + max-width: $max-width-l; } > * { @@ -365,7 +361,7 @@ form.default { .js &.collapsable fieldset, fieldset.collapsable { legend { box-sizing: border-box; - .background-icon('arr_1down', 'clickable', 20); + @include background-icon(arr_1down, clickable, 20); background-position: 6px center; background-repeat: no-repeat; cursor: pointer; @@ -374,7 +370,7 @@ form.default { &.collapsed { legend { - .background-icon('arr_1right', 'clickable', 20); + @include background-icon(arr_1right, clickable, 20); margin-bottom: 0; } padding-bottom: 0; @@ -395,7 +391,7 @@ form.default { bottom: 100%; right: 0; - color: @light-gray-color; + color: $light-gray-color; font-size: 0.8em; } @@ -426,13 +422,13 @@ form.default { } .invalid { - border: 2px dotted red ! important; + border: 2px dotted $red ! important; } // an invalid form entry .invalid_message { display: none; font-weight: bold; - color: red; + color: $red; } .select2-container { @@ -479,20 +475,20 @@ form.default { &.show_validation_hints { :invalid, .invalid { - .icon('before', 'exclaim-circle', 'attention', 16, 5px); + @include icon(before, exclaim-circle, attention, 16px, 5px); display: inline-block; } textarea:invalid, input[type=text]:invalid { - border-left: 4px solid @red; + border-left: 4px solid $red; } } //designing vue-select in studipform: .vs__dropdown-toggle { - border-radius: 0px; + border-radius: 0; } .vs__selected { - border-radius: 0px; + border-radius: 0; padding: 5px; } @@ -502,20 +498,20 @@ form.default { input[type=range] { &::-moz-range-track { height: 11px; - border: 1px solid @content-color; + border: 1px solid $content-color; background-color: transparent; } &::-moz-range-progress { - background-color: @base-color; + background-color: $base-color; height: 11px; } &::-moz-range-thumb { - border-radius: 0px; + border-radius: 0; width: 1.2em; height: 1.2em; } &::-moz-range-thumb:hover { - background-color: @content-color; + background-color: $content-color; } } output { @@ -529,12 +525,12 @@ form.narrow { div.col-1, div.col-2, div.col-3, div.col-4, div.col-5, section.col-1, section.col-2, section.col-3, section.col-4, section.col-5 { - padding-right: 0px; + padding-right: 0; } } // give forms some optimized styling for very narrow screen sizes -.media-breakpoint-tiny-down({ +@include media-breakpoint-tiny-down(){ form.default { label.col-1, div.col-1, section.col-1, label.col-2, div.col-2, section.col-2, @@ -544,7 +540,7 @@ form.narrow { min-width: 100%; } } -}); +} table.hide_datafield_title { .datafield_title { @@ -554,8 +550,8 @@ table.hide_datafield_title { .content-title { background-color: transparent; - padding-top: 0px; - color: @base-gray; + padding-top: 0; + color: $base-gray; font-size: 1.4em; text-align: left; } diff --git a/resources/assets/stylesheets/less/globalsearch.less b/resources/assets/stylesheets/scss/globalsearch.scss similarity index 75% rename from resources/assets/stylesheets/less/globalsearch.less rename to resources/assets/stylesheets/scss/globalsearch.scss index 79ef97a9bef54f4777c9e9a3545bdc02ccc54f71..5fc1d53239f9b93fcda30245dac5487ff30e29fa 100644 --- a/resources/assets/stylesheets/less/globalsearch.less +++ b/resources/assets/stylesheets/scss/globalsearch.scss @@ -2,9 +2,9 @@ align-self: flex-start; } #globalsearch-searchbar { - @width: 423px; - @hidden-width: 215px; - @transition-duration: 300ms; + $width: 423px; + $hidden-width: 215px; + $transition-duration: 300ms; position: relative; top: 4px; @@ -17,12 +17,12 @@ // Defines the clear icon for the input #globalsearch-clear { - .square(16px); + @include square(16px); margin-left: -22px; vertical-align: middle; opacity: 0; - transition: opacity @transition-duration; + transition: opacity $transition-duration; } &.has-value #globalsearch-clear { opacity: 1; @@ -32,11 +32,11 @@ #globalsearch-input { height: 29px; padding-left: 5px; - width: @hidden-width; - transition: width @transition-duration; + width: $hidden-width; + transition: width $transition-duration; } &.is-visible #globalsearch-input { - width: @width; + width: $width; } // Search icon @@ -48,10 +48,10 @@ // Hint toggle text #globalsearch-togglehints { - font-size: @font-size-small; + font-size: $font-size-small; margin: 0; - .icon('before', 'arr_1right', 'clickable', @font-size-small, 2px); + @include icon('before', 'arr_1right', 'clickable', $font-size-small, 2px); // This is only neccessary to remove the whitespace in front of the text // Otherwise, the text would jump when getting replaced @@ -76,29 +76,29 @@ // List display #globalsearch-list { - background-color: @white; - box-shadow: 1px 1px 1px @light-gray-color-80; - color: @text-color; + background-color: $white; + box-shadow: 1px 1px 1px $light-gray-color-80; + color: $text-color; display: none; max-height: 90vh; overflow: auto; padding: 5px; position: absolute; - width: @width; + width: $width; a { - color: @base-color; + color: $base-color; &:hover { - color: @active-color; + color: $active-color; } } section { - color: @text-color; + color: $text-color; header { - color: @base-color; + color: $base-color; margin: 5px; margin-bottom: 0; } @@ -116,18 +116,18 @@ // "Searching..." info #globalsearch-searching { - @icon-size: 32px; + $icon-size: 32px; - color: @dark-gray-color-45; + color: $dark-gray-color-45; display: none; text-align: center; - background-image: url("@{image-path}/ajax-indicator-black.svg"); + background-image: url("#{$image-path}/ajax-indicator-black.svg"); background-position: center bottom; background-repeat: no-repeat; - background-size: @icon-size; + background-size: $icon-size; margin-bottom: 10px; - padding-bottom: (@icon-size + 5px); + padding-bottom: ($icon-size + 5px); } &.is-searching { #globalsearch-searching { @@ -144,14 +144,14 @@ } article { - border: 1px solid @content-color-40; + border: 1px solid $content-color-40; margin: 3px; margin-bottom: 8px; margin-top: 8px; > header { - background-color: @content-color-20; - color: @base-color; + background-color: $content-color-20; + color: $base-color; display: flex; flex-direction: row; @@ -165,9 +165,9 @@ } div.globalsearch-more-results { - font-size: @font-size-small; + font-size: $font-size-small; font-weight: normal; - line-height: @font-size-h3; + line-height: $font-size-h3; margin-bottom: auto; margin-top: auto; text-align: right; @@ -182,11 +182,11 @@ padding: 6px 6px 6px 0; - border-top: 1px solid @content-color-40; - transition: background-color @transition-duration; + border-top: 1px solid $content-color-40; + transition: background-color $transition-duration; &:hover { - background-color: fadeout(@light-gray-color, 80%); + background-color: $dark-gray-color-20; } &.globalsearch-extended-result { @@ -207,7 +207,7 @@ margin-right: 6px; img { - .square(36px); + @include square(36px); } } @@ -218,22 +218,22 @@ white-space: nowrap; .globalsearch-result-title { - font-size: @font-size-base; + font-size: $font-size-base; font-weight: bold; overflow: hidden; text-overflow: ellipsis; } .globalsearch-result-details { - color: @dark-gray-color-80; - font-size: @font-size-small; + color: $dark-gray-color-80; + font-size: $font-size-small; } } .globalsearch-result-time { - color: @dark-gray-color-80; + color: $dark-gray-color-80; flex: 0; - font-size: @font-size-small; + font-size: $font-size-small; text-align: right; white-space: nowrap; } @@ -243,8 +243,8 @@ margin: 20px 0 0 -32px; a { - .background-icon('arr_1right', 'clickable', 24); - .square(24px); + @include background-icon(arr_1right, clickable, 24); + @include square(24px); display: inline-block; } } @@ -277,12 +277,12 @@ html.responsive-display { margin-left: 0; } #globalsearch-list { - @padding: 5px; + $padding: 5px; position: absolute; - left: @padding; - top: calc(@bar-bottom-container-height + @padding); - width: calc(100vw - (2 * @padding)); + left: $padding; + top: calc($bar-bottom-container-height + $padding); + width: calc(100vw - (2 * $padding)); } #globalsearch-clear { @@ -325,7 +325,7 @@ html:not(.size-large) { right: -1px; bottom: -1px; left: -1px; - background: fadeout(@base-color, 50%); + background: mix($base-color, rgba(255,0,0,0), 50%); z-index: 1; } } diff --git a/resources/assets/stylesheets/less/gradebook.less b/resources/assets/stylesheets/scss/gradebook.scss similarity index 58% rename from resources/assets/stylesheets/less/gradebook.less rename to resources/assets/stylesheets/scss/gradebook.scss index a71f48054f0024d4b3ddcc0d6d57835ba48fac6d..bf0a93ba359b1aaf3f4d33a57027a3ef6fb8e455 100644 --- a/resources/assets/stylesheets/less/gradebook.less +++ b/resources/assets/stylesheets/scss/gradebook.scss @@ -1,20 +1,23 @@ -.gradebook-student .progress { - display: flex; - height: 20px; - overflow: hidden; - font-size: 15px; - background-color: @light-gray-color-20; - margin: 0.5em 0; -} +.gradebook-student { -.gradebook-student .progress-bar { - display: flex; - flex-direction: column; - justify-content: center; - color: white; - text-align: center; - white-space: nowrap; - background-color: @base-color; + .progress { + display: flex; + height: 20px; + overflow: hidden; + font-size: 15px; + background-color: $light-gray-color-20; + margin: 0.5em 0; + } + + .progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + color: $white; + text-align: center; + white-space: nowrap; + background-color: $base-color; + } } .gradebook-lecturer-overview-definition { @@ -23,7 +26,7 @@ .gradebook-lecturer-overview .gradebook-column-total, .gradebook-lecturer-overview .gradebook-column-category { - border-left: 1px solid @light-gray-color-20; + border-left: 1px solid $light-gray-color-20; } .gradebook-lecturer-overview .gradebook-column-category { @@ -47,14 +50,15 @@ form.gradebook-lecturer-weights label.gradebook-weight { } output { - color: @light-gray-color; + color: $light-gray-color; } output:before { content: "~"; } + output:after { - content: "Â %"; + content: " %"; } } @@ -70,35 +74,38 @@ form.gradebook-lecturer-weights input[type="number"] { font-weight: bold; } -article.gradebook-student h1, -article.gradebook-student h2 -{ - border-bottom: none; -} +article.gradebook-student { + h1, h2 { + border-bottom: none; + } + + > header { + margin-bottom: 2.5em; + } -article.gradebook-student > header { - margin-bottom: 2.5em; } section.gradebook-student-category { - margin-bottom: 3em; -} + > header { + display: flex; + align-items: baseline; + margin-bottom: 0.5em; + } -section.gradebook-student-category > header { - display: flex; - align-items: baseline; - margin-bottom: 0.5em; -} + header { + &.progress { + flex: 1; + margin-left: 1em; + } + } -section.gradebook-student-category header .progress { - flex: 1; - margin-left: 1em; + margin-bottom: 3em; } .gradebook-lecturer-custom-definitions .gradebook-lecturer-blank-slate { text-align: center; - // border-left: 1px solid @dark-gray-color-15; - // border-bottom: 1px solid @brand-color-darker; + // border-left: 1px solid $dark-gray-color-15; + // border-bottom: 1px solid $brand-color-darker; } table.default .gradebook-grade-input, @@ -111,14 +118,16 @@ table.default .gradebook-inline-actions { white-space: nowrap; } -.gradebook-grade-input label { - margin-left: 1em; - margin-right: 1em; - display: block; -} +.gradebook-grade-input { + label { + margin-left: 1em; + margin-right: 1em; + display: block; + } -.gradebook-grade-input input { - min-width: 5em; + input { + min-width: 5em; + } } .gradebook-inline-actions .action-menu-icon { diff --git a/resources/assets/stylesheets/less/layouts.less b/resources/assets/stylesheets/scss/layouts.scss similarity index 68% rename from resources/assets/stylesheets/less/layouts.less rename to resources/assets/stylesheets/scss/layouts.scss index e5123aabd5711626576f594ca03e03af0dab091d..1a1d076e9a657df17e6f80663fcd092837677cd9 100644 --- a/resources/assets/stylesheets/less/layouts.less +++ b/resources/assets/stylesheets/scss/layouts.scss @@ -1,16 +1,16 @@ // TODO: LESSify -@page-margin: 15px; +$page-margin: 15px; -@sidebar-width: 250px; -@sidebar-padding: 12px; -@sidebar-border-width: 1px; +$sidebar-width: 250px; +$sidebar-padding: 12px; +$sidebar-border-width: 1px; -@content-width: 400px; -@content-margin: 12px; +$content-width: 400px; +$content-margin: 12px; -@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); +$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); /* --- Layouts -------------------------------------------------------------- */ @@ -18,15 +18,14 @@ border-radius: 0 0 2px 2px; box-sizing: border-box; clear: both; - margin: @page-margin; - background-color: #fff; - margin: 0px; + margin: 0; + background-color: $white; } // for old pages without template layout #layout_table { - background-color: @light-gray-color-60; - border: 20px solid #fff; + background-color: $light-gray-color-60; + border: 20px solid $white; margin: 0; padding: 0; width: 100%; @@ -35,7 +34,7 @@ } #layout_container { - background-color: white; + background-color: $white; border-radius: 0 0 2px 2px; /*margin: 0;*/ padding-top: 15px; @@ -43,7 +42,7 @@ #page_title_container { float: left; - background-color: #fff; + background-color: $white; line-height: 20px; margin-left: 15px; margin-right: 15px; @@ -57,17 +56,17 @@ top: 0; bottom: 0; left: 0; - width: @page-margin; + width: $page-margin; } #layout_context_title { font-size: 1.1em; height: 30px; - padding-left: @page-margin; + padding-left: $page-margin; max-height: 30px; overflow: hidden; - background: linear-gradient(to bottom, @dark-gray-color-5, @dark-gray-color-10); + background: linear-gradient(to bottom, $dark-gray-color-5, $dark-gray-color-10); > .context_icon { margin: 7px 1px 0 9px; @@ -81,12 +80,12 @@ .contextless & { .colorblock { - width: 0px; + width: 0; } #layout_context_title { color: rgba(0, 0, 0, 0); - height: 0px; + height: 0; max-height: 35px; // text-indent: -100%; // @@ -96,7 +95,7 @@ } .tabs_wrapper { - padding-left: 0px; + padding-left: 0; } } } @@ -114,10 +113,10 @@ #layout_content { box-sizing: border-box; - .scrollbox-horizontal(); - padding: 0 @content-margin 47px @content-margin; + @include scrollbox-horizontal(); + padding: 0 $content-margin 47px $content-margin; vertical-align: top; - min-width: @content-width; + min-width: $content-width; .oversized & { overflow: visible; @@ -126,30 +125,29 @@ #layout_sidebar { background: inherit; - border-left: 1px dashed @brand-color-darker; - max-width: @sidebar-width; - width: @sidebar-width; - min-width: @sidebar-width; - padding: @sidebar-padding; + border-left: 1px dashed $brand-color-darker; + max-width: $sidebar-width; + width: $sidebar-width; + min-width: $sidebar-width; + padding: $sidebar-padding; } #layout_wrapper { - .clearfix; + @include clearfix(); clear: both; min-width: 800px; // 800px breite ist minimum min-height: 100%; width: 100%; height: auto !important; - height: 100%; margin: 0 auto; } #layout_footer { - background-color: @base-color; - color: @contrast-content-white; + background-color: $base-color; + color: $contrast-content-white; display: flex; - padding: 2px 0px; - min-width: @site-width; + padding: 2px 0; + min-width: $site-width; width: 100%; } #footer { @@ -167,7 +165,7 @@ align-items: stretch; justify-content: flex-start; - min-width: @site-width; + min-width: $site-width; #flex-header { // first row of flex-main display: flex; @@ -178,13 +176,13 @@ justify-content: space-between; width: 100%; - min-width: @site-width; + min-width: $site-width; - border-bottom: 1px solid @light-gray-color-40; + border-bottom: 1px solid $light-gray-color-40; } #barBottomContainer { // second row of flex-main - min-width: @site-width; + min-width: $site-width; z-index: 1001; // High enough so it will be above the sidebar } @@ -198,20 +196,20 @@ flex-grow: 1; - min-width: @page-width; + min-width: $page-width; .tabs_wrapper { display: flex; flex-direction: row; align-items: stretch; justify-content: space-between; - background-color: @dark-gray-color-10; + background-color: $dark-gray-color-10; font-size: 0.9em; - border-bottom: 1px solid @dark-gray-color-40; + border-bottom: 1px solid $dark-gray-color-40; } #tabs { // row 1 of layout_page - padding-left: @page-margin; + padding-left: $page-margin; transition: margin-left; transition-duration: 300ms; transition-delay: 500ms; @@ -226,20 +224,11 @@ justify-content: flex-start; flex-grow: 1; - min-width: @page-width; + min-width: $page-width; #layout_content { // column 1 of layout_container flex-grow: 1; } } } - -} - -@-moz-document url-prefix() { - .flex-container { - width: 100%; - box-sizing: border-box; - } - } diff --git a/resources/assets/stylesheets/less/mobile.less b/resources/assets/stylesheets/scss/mobile.scss similarity index 91% rename from resources/assets/stylesheets/less/mobile.less rename to resources/assets/stylesheets/scss/mobile.scss index 2e8ca73061069f13644e87277aae36735af3bc14..2f19efcad9d29f02cfa0aac1d3cf549e73a1ca5b 100644 --- a/resources/assets/stylesheets/less/mobile.less +++ b/resources/assets/stylesheets/scss/mobile.scss @@ -1,4 +1,4 @@ -.media-breakpoint-small-down({ +@include media-breakpoint-small-down(){ #layout_wrapper { min-width: 0 !important; } #login div.index_container .messagebox, #index div.index_container .messagebox, @@ -8,9 +8,9 @@ margin-left: auto; margin-right: auto; } -}); +} -.media-breakpoint-tiny-down({ +@include media-breakpoint-tiny-down(){ #barTopStudip img { height: 33px; margin-top: 5px; @@ -47,7 +47,7 @@ padding-left: 20px; padding-right: 20px; position: relative; - width: ~"calc(100% - 40px)"; + width: calc(100% - 40px); nav { display: inline; @@ -55,4 +55,4 @@ } } } -}); +} diff --git a/resources/assets/stylesheets/scss/navigation-hoverborder.scss b/resources/assets/stylesheets/scss/navigation-hoverborder.scss new file mode 100644 index 0000000000000000000000000000000000000000..e3b3838c5443d02e6f26ebdb2a49d554519a4050 --- /dev/null +++ b/resources/assets/stylesheets/scss/navigation-hoverborder.scss @@ -0,0 +1,75 @@ +$transition-duration: 300ms; + +@mixin border-beneath($color, $margin: 2px, $height: 3px) { + border-bottom: 0; + padding-bottom: 0; + position: relative; + + &::after { + position: absolute; + top: 100%; + left: 0; + right: 0; + opacity: 1; + content: ''; + display: block; + background-color: $color; + height: $height; + margin-top: $margin; + + @media not prefers-reduced-motion { + transition: left $transition-duration, + right $transition-duration, + opacity $transition-duration; + } + } +} +@mixin border-shrink() { + left: 50%; + right: 50%; + opacity: 0; +} + +body:not(.fixed) #barTopMenu { + > li.active { + @include border-beneath($dark-gray-color-80); + } + > li:not(.active) { + @include border-beneath($dark-gray-color-40); + &:not(:hover)::after { + @include border-shrink(); + } + } + + &:hover > li:not(:hover)::after { + @include border-shrink(); + } + + .action-menu-icon { + transform: rotate(-90deg); + } + + .overflow li:hover { + @include border-beneath($dark-gray-color-40, 2px, 3px); + &::after { + transform: translate(0, -4px); + } + } +} + +#tabs { + > li { + &, &.current, &:hover { + line-height: 25px; + } + &.current { + @include border-beneath($dark-gray-color-80, -2px, 3px); + } + &:not(.current) { + @include border-beneath($dark-gray-color-40, -2px, 3px); + &:not(:hover)::after { + @include border-shrink(); + } + } + } +} diff --git a/resources/assets/stylesheets/less/navigation.less b/resources/assets/stylesheets/scss/navigation.scss similarity index 84% rename from resources/assets/stylesheets/less/navigation.less rename to resources/assets/stylesheets/scss/navigation.scss index c904d4fad17844a199e82ab595b9a9da7fccf0f1..63af7829b47c6fd3c7f2009a477e6a9f16d27141 100644 --- a/resources/assets/stylesheets/less/navigation.less +++ b/resources/assets/stylesheets/scss/navigation.scss @@ -14,12 +14,12 @@ body:not(.fixed) #barTopMenu { height: 55px; padding: 0; z-index: 2; - font-size: @font-size-base; + font-size: $font-size-base; } a { - color: @base-color; + color: $base-color; display: block; - padding: 0 0px; + padding: 0 0; text-align: center; line-height: 1em; @@ -27,7 +27,7 @@ body:not(.fixed) #barTopMenu { span { background: no-repeat 0 0; display: inline-block; - .square(32px); + @include square(32px); // Icon state: new &.new { @@ -36,8 +36,8 @@ body:not(.fixed) #barTopMenu { } img { - margin: 8px 0px; - .square(32px); + margin: 8px 0; + @include square(32px); } &[data-badge]:not([data-badge="0"]) { position: relative; @@ -48,13 +48,13 @@ body:not(.fixed) #barTopMenu { top: 0; margin-left: 5px; - .square(16px); + @include square(16px); background-clip: content-box; - background-color: @red; - border: 3px solid @dark-gray-color-5; + background-color: $red; + border: 3px solid $dark-gray-color-5; border-radius: 50%; - color: white; + color: $white; content: attr(data-badge); display: inline-block; font-size: 10px; @@ -85,7 +85,7 @@ body:not(.fixed) #barTopMenu { // Hide all navigation item title on hover and display only the currently // hovered one .navtitle { - @media not (prefers-reduced-motion) { + @media not prefers-reduced-motion { transition: opacity 300ms; // Smooth change when entering } } @@ -95,7 +95,7 @@ body:not(.fixed) #barTopMenu { } > li:hover .navtitle { opacity: 1; - @media not (prefers-reduced-motion) { + @media not prefers-reduced-motion { transition: opacity 0ms; // Quick change when leaving } } @@ -129,7 +129,7 @@ body:not(.fixed) #barTopMenu { // Rotate icon > label img { - @media not (prefers-reduced-motion) { + @media not prefers-reduced-motion { transition: transform 300ms; } transform: rotate(90deg); @@ -137,7 +137,7 @@ body:not(.fixed) #barTopMenu { // Define transition duration for possible badge on overflow > label > a[data-badge]::before { - @media not (prefers-reduced-motion) { + @media not prefers-reduced-motion { transition: opacity 300ms; } } @@ -169,8 +169,8 @@ body:not(.fixed) #barTopMenu { margin: 5px 0 0; padding: 4px 4px; - background-color: @dark-gray-color-5; - border: 1px solid @dark-gray-color-40; + background-color: $dark-gray-color-5; + border: 1px solid $dark-gray-color-40; border-top: 0; min-width: 150px; @@ -194,7 +194,7 @@ body:not(.fixed) #barTopMenu { } img { flex: 1 0 20px; - .square(20px); + @include square(20px); margin: 0 0.25em; } @@ -220,12 +220,12 @@ body:not(.fixed) #barTopMenu { display: none; } label[for="barTopMenu-toggle"] { - .background-icon('hamburger', 'info_alt', 16); - background-position: 0px center; + @include background-icon(hamburger, info_alt, 16); + background-position: 0 center; background-repeat: no-repeat; - color: @white; - line-height: @bar-bottom-container-height; + color: $white; + line-height: $bar-bottom-container-height; overflow: hidden; padding-left: (5px + 16px + 5px); // padding + icon + next padding white-space: nowrap; @@ -233,7 +233,7 @@ label[for="barTopMenu-toggle"] { height: 0; max-height: 0; opacity: 0; - @media not (prefers-reduced-motion) { + @media not prefers-reduced-motion { transition: all 300ms; } @@ -250,20 +250,20 @@ html.no-touch { body.fixed { #flex-header { - height: @header-height; + height: $header-height; } label[for="barTopMenu-toggle"] { opacity: 1; - max-height: @bar-bottom-container-height; + max-height: $bar-bottom-container-height; height: auto; } #barTopMenu { - background-color: @base-color; + background-color: $base-color; list-style: none; - margin: 0px 0px 0px -15px; - padding: 0px; + margin: 0 0 0px -15px; + padding: 0; position: absolute; width: fit-content; @@ -272,9 +272,7 @@ body.fixed { display: none; img { - filter: contrast(0) brightness(2); - - .square(16px); + @include square(16px); margin-right: 0.8em; } @@ -286,11 +284,11 @@ body.fixed { flex-wrap: nowrap; align-items: center; - color: @white; + color: $white; } &:hover { - background-color: @base-color-80; + background-color: $base-color-80; } &.overflow { diff --git a/resources/assets/stylesheets/less/opengraph.less b/resources/assets/stylesheets/scss/opengraph.scss similarity index 70% rename from resources/assets/stylesheets/less/opengraph.less rename to resources/assets/stylesheets/scss/opengraph.scss index 23dde88ab67548070a170c346be7d2019d703d0a..62494966b97810900015ad0c4f024029a27a71a8 100644 --- a/resources/assets/stylesheets/less/opengraph.less +++ b/resources/assets/stylesheets/scss/opengraph.scss @@ -7,20 +7,20 @@ text-align: right; li { - border-top: thin solid @dark-gray-color-20; + border-top: thin solid $dark-gray-color-20; display: inline-block; padding: 5px; &:first-child { - border-left: thin solid @dark-gray-color-20; + border-left: thin solid $dark-gray-color-20; } &:last-child { - border-right: thin solid @dark-gray-color-20; + border-right: thin solid $dark-gray-color-20; } } .switch-left, .switch-right { - .hide-text(); - .square(20px); + @include hide-text(); + @include square(20px); background-position: center; background-repeat: no-repeat; padding: 0; @@ -30,15 +30,15 @@ } } .switch-left { - .background-icon('arr_1left', 'clickable'); + @include background-icon('arr_1left', 'clickable'); &[disabled] { - .background-icon('arr_1left', 'inactive'); + @include background-icon('arr_1left', 'inactive'); } } .switch-right { - .background-icon('arr_1right', 'clickable'); + @include background-icon('arr_1right', 'clickable'); &[disabled] { - .background-icon('arr_1right', 'inactive'); + @include background-icon('arr_1right', 'inactive'); } } } @@ -52,15 +52,15 @@ } .opengraph { - @padding: 10px; - @height: 120px; + $padding: 10px; + $height: 120px; - .clearfix; + @include clearfix(); font-size: 0.8em; - border: 1px solid @dark-gray-color-20; - padding: @padding; - min-height: @height; + border: 1px solid $dark-gray-color-20; + padding: $padding; + min-height: $height; .flash-embedder { display: flex; @@ -87,20 +87,20 @@ a.info { box-sizing: border-box; - color: black; + color: $black; display: block; word-break: normal !important; &:hover { - color: black; + color: $black; } } .image { - .square(@height); + @include square($height); background-size: contain; background-position: left center; background-repeat: no-repeat; display: inline-block; float: left; - margin-right: @padding; + margin-right: $padding; } } diff --git a/resources/assets/stylesheets/less/personal-notifications.less b/resources/assets/stylesheets/scss/personal-notifications.scss similarity index 64% rename from resources/assets/stylesheets/less/personal-notifications.less rename to resources/assets/stylesheets/scss/personal-notifications.scss index 10554a395a7b4b19ca2db458824f146d346eb3bc..d6521235e7306bc5f5d409103be3c7365501599e 100644 --- a/resources/assets/stylesheets/less/personal-notifications.less +++ b/resources/assets/stylesheets/scss/personal-notifications.scss @@ -1,35 +1,35 @@ #notification_marker { width: 48px; - margin-left: 0px; - padding-left: 0px; - margin-right: 0px; - padding-right: 0px; + margin-left: 0; + padding-left: 0; + margin-right: 0; + padding-right: 0; height: 28px; font-size: 0.8em; - color: @base-color; + color: $base-color; text-align: center; line-height: 28px; vertical-align: text-bottom; - background-color: @dark-gray-color-10; - border: 1px solid @dark-gray-color-40; + background-color: $dark-gray-color-10; + border: 1px solid $dark-gray-color-40; &.alert { - background-color: @red; - color: @white; + background-color: $red; + color: $white; } } #notification_container { - @arrow-height: 10px; + $arrow-height: 10px; - @list-width: 400px; + $list-width: 400px; width: 49px; height: 30px; - /*border: thin solid @dark-gray-color-20;*/ - color: @base-color; + /*border: thin solid $dark-gray-color-20;*/ + color: $base-color; vertical-align: text-bottom; - background-color: @base-color; + background-color: $base-color; position: relative; // Insert invisible padding on top of the arrow in order to try to @@ -39,10 +39,10 @@ content: ""; display: block; position: absolute; - bottom: -@arrow-height; - left: (-@list-width); + bottom: -$arrow-height; + left: (-$list-width); right: 0; - height: @arrow-height; + height: $arrow-height; } &:hover::after { content: ""; @@ -54,7 +54,15 @@ width: 25px; } - .list, li&:hover .list { display: none; } + .list { + display:none; + } + li { + &:hover { + display: none; + } + } + &.hoverable:hover { .list { display: block; } } @@ -72,62 +80,62 @@ } .list { // Creates an arrow pointing from the list to the triggering element - #arrow > .top-border(10px, @white, 1px, @light-gray-color-80); + @include arrow-top-border(10px, $white, 1px, $light-gray-color-80); - background-color: @white; - border-left: thin solid @light-gray-color-60; - border-top: thin solid @light-gray-color-60; + background-color: $white; + border-left: thin solid $light-gray-color-60; + border-top: thin solid $light-gray-color-60; border-collapse: collapse; - color: @black; + color: $black; display: none; font-size: 1em; position: absolute; - width: @list-width; - max-width: @list-width; - box-shadow: 1px 1px 1px @light-gray-color-80; + width: $list-width; + max-width: $list-width; + box-shadow: 1px 1px 1px $light-gray-color-80; // Without this, buttons or message boxes would appear on top of the list z-index: 2; &::before, &::after { - left: (@list-width - 20px); + left: ($list-width - 30px); } // Positions: below or left'ish or right'ish to the triggering element &.below { - left: (-@list-width + 44px); + left: (-$list-width + 44px); } &.left { - right: 0px; + right: 0; &:before { left: auto; right: 4px; } } &.right { - left: 0px; + left: 0; &:before { left: 4px; } } // List item .item { - @padding: 5px; - border-top: thin solid @light-gray-color-60; + $padding: 5px; + border-top: thin solid $light-gray-color-60; line-height: 20px; display: block; height: auto; - padding: @padding; + padding: $padding; white-space: normal; &:hover { - background-color: fadeout(@light-gray-color, 80%); + background-color: $light-gray-color-20 } &:only-child:hover { - #arrow > .top(10px, fadeout(@light-gray-color, 80%)); + @include arrow-top(10px, $light-gray-color-20); margin-top: 0; &::before { - left: (@list-width - 20px); + left: ($list-width - 30px); z-index: 2; } } @@ -142,24 +150,24 @@ flex-wrap: nowrap; .avatar { - @avatar-size: 40px; + $avatar-size: 40px; margin-right: 10px; - margin-left: 0px; + margin-left: 0; background-position: center center; background-size: 100%; background-repeat: no-repeat; - width: @avatar-size; - height: @avatar-size; - min-width: @avatar-size; + width: $avatar-size; + height: $avatar-size; + min-width: $avatar-size; } } } a { - color: @brand-color-dark; + color: $brand-color-dark; display: block; - padding: 0px; - &:hover { color: @active-color; } + padding: 0; + &:hover { color: $active-color; } } .options { @@ -177,8 +185,8 @@ a.mark-all-as-read, a.enable-desktop-notifications { - background-color: @dark-gray-color-15; - border-bottom: thin solid @dark-gray-color-45; + background-color: $dark-gray-color-15; + border-bottom: thin solid $dark-gray-color-45; max-height: 31px; padding: 5px 5px 5px 14px; z-index: 3; @@ -186,19 +194,19 @@ a.mark-all-as-read { // Creates an arrow pointing from the list to the triggering element - #arrow > .top-border(10px, @light-gray-color-20, 1px, @light-gray-color-80); + @include arrow-top-border(10px, $light-gray-color-20, 1px, $light-gray-color-80); &::before, &::after { - left: (@list-width - 20px); + left: ($list-width - 30px); z-index: 2; } - .background-icon('accept', 'clickable'); + @include background-icon('accept', 'clickable'); background-repeat: no-repeat; background-position: right 8px center; &:hover { - .background-icon('accept', 'attention'); + @include background-icon('accept', 'attention'); } margin: 0; @@ -216,10 +224,10 @@ + .enable-desktop-notifications { // Creates an arrow pointing from the list to the triggering element - #arrow > .top-border(10px, @light-gray-color-20, 1px, @light-gray-color-80); + @include arrow-top-border(10px, $light-gray-color-20, 1px, $light-gray-color-80); &::before, &::after { - left: (@list-width - 20px); + left: ($list-width - 30px); z-index: 2; } margin: 0; @@ -227,12 +235,12 @@ } } a.enable-desktop-notifications { - .background-icon('notification', 'clickable'); + @include background-icon('notification', 'clickable'); background-repeat: no-repeat; background-position: right 8px center; &:hover { - .background-icon('notification', 'attention'); + @include background-icon('notification', 'attention'); } } } diff --git a/resources/assets/stylesheets/scss/search.scss b/resources/assets/stylesheets/scss/search.scss index 6f8eee156b4acf0ed3d80612f7efd89e64d0f96c..5b7107ea39e68b9f9ad76b240946f6482883e2b5 100644 --- a/resources/assets/stylesheets/scss/search.scss +++ b/resources/assets/stylesheets/scss/search.scss @@ -89,7 +89,7 @@ label.inactive-settings-category { } &:hover { - background-color: mix($light-gray-color, $white, 80%); + background-color: $light-gray-color-20; } &.search-extended-result { diff --git a/resources/assets/stylesheets/less/selects.less b/resources/assets/stylesheets/scss/selects.scss similarity index 76% rename from resources/assets/stylesheets/less/selects.less rename to resources/assets/stylesheets/scss/selects.scss index 72aff7082edc4805f754af6528fc883c8a08bf9a..d080b58c8677253a87d09409a3d259245afd8b71 100644 --- a/resources/assets/stylesheets/less/selects.less +++ b/resources/assets/stylesheets/scss/selects.scss @@ -1,22 +1,22 @@ -@select-border: 1px solid @light-gray-color-40; -@select-border-focus: 1px solid @brand-color-dark; -@select-border-radius: 0; -@select-height-default: 30px; -@select-arrow-size: 10; +$select-border: 1px solid $light-gray-color-40; +$select-border-focus: 1px solid $brand-color-dark; +$select-border-radius: 0; +$select-height-default: 30px; +$select-arrow-size: 10; select { // Reset appearance box-sizing: border-box; appearance: none; - background-color: #fff; + background-color: $white; font-size: 1em; vertical-align: baseline; &::-ms-expand { display: none; } - border: @select-border; - border-radius: @select-border-radius; + border: $select-border; + border-radius: $select-border-radius; padding: 1px 8px 1px 8px; position: relative; white-space: nowrap; @@ -26,22 +26,22 @@ select { // to ensure the icon is always clearly visible padding-right: 20px; - .background-icon('arr_1down', 'clickable', @select-arrow-size); + @include background-icon(arr_1down, clickable, $select-arrow-size); background-position: right 4px center; background-repeat: no-repeat; - height: @select-height-default; + height: $select-height-default; line-height: 1; overflow: hidden; text-overflow: ellipsis; } &:focus { - border: @select-border-focus; + border: $select-border-focus; } } -@import (inline) "~select2/dist/css/select2.css"; +@import "~select2/dist/css/select2"; // The wrapper is neccessary for the validation error messages to appear // at the correct position @@ -74,9 +74,9 @@ select { .select2-container--default { .select2-selection--single, .select2-selection--multiple { - border: @select-border; - border-radius: @select-border-radius; - min-height: @select-height-default; + border: $select-border; + border-radius: $select-border-radius; + min-height: $select-height-default; .select2-selection__content { font-weight: normal; // Reset due to form.default label = bold @@ -84,7 +84,7 @@ select { text-overflow: ellipsis; } .select2-selection__choice { - border-radius: 0px; + border-radius: 0; padding-top: 5px; padding-bottom: 5px; } @@ -92,13 +92,13 @@ select { .select2-selection--single { .select2-selection__clear { - .background-icon('decline', 'clickable', @select-arrow-size); + @include background-icon(decline, clickable, $select-arrow-size); background-position: right center; background-repeat: no-repeat; color: transparent; display: inline-block; float: none; - width: unit((@select-arrow-size + 5), px); + width: unit(($select-arrow-size + 5px)); } .select2-selection__rendered { @@ -118,19 +118,20 @@ select { } .select2-selection--multiple { - padding-right: unit((@select-arrow-size + 5), px); - .background-icon('arr_1down', 'clickable', @select-arrow-size); - background-position: right 4px top unit((@select-height-default / 2 - 4), px); + padding-right: unit(($select-arrow-size + 5px)); + @include background-icon('arr_1down', 'clickable', $select-arrow-size); + $backgroundPosition: unit(calc($select-height-default / 2) - 4px); + background-position: right 4px top $backgroundPosition; background-repeat: no-repeat; .select2-selection__choice__remove { - .background-icon('decline', 'clickable', @select-arrow-size); + @include background-icon('decline', 'clickable', $select-arrow-size); background-position: right center; background-repeat: no-repeat; color: transparent !important; display: inline-block; float: none; - width: unit((@select-arrow-size + 5), px); + width: unit(($select-arrow-size + 5px)); } .select2-selection__choice { @@ -150,7 +151,7 @@ select { } .select2-selection__arrow { - .background-icon('arr_1down', 'clickable', @select-arrow-size); + @include background-icon('arr_1down', 'clickable', $select-arrow-size); background-position: right 4px center; background-repeat: no-repeat; @@ -173,7 +174,7 @@ select { &.select2-container--open { .select2-selection--single, .select2-selection--multiple { - border: @select-border-focus; + border: $select-border-focus; } } diff --git a/resources/assets/stylesheets/less/smileys.less b/resources/assets/stylesheets/scss/smileys.scss similarity index 72% rename from resources/assets/stylesheets/less/smileys.less rename to resources/assets/stylesheets/scss/smileys.scss index beab53659eb54107bd66d3576409b6d6daf888af..1621b47e5d1b29b43c13cf20130052961117ca4d 100644 --- a/resources/assets/stylesheets/less/smileys.less +++ b/resources/assets/stylesheets/scss/smileys.scss @@ -9,9 +9,8 @@ list-style: none; padding: 0; } - li { - &:extend(#tabs li all); + li { flex-grow: 1; display: inline-block; float: none; @@ -19,37 +18,49 @@ white-space: nowrap; &.favorites a { - .icon('before', 'smiley', 'info_alt'); + @include icon(before, smiley, info_alt); } + &.favorites.current a { - .icon('before', 'smiley', 'info'); + @include icon(before, smiley, info); + } + &.current { + padding-top: 0; + a, span.quiet { + color: $base-color; + } } } - a { - &:extend(#tabs a all); + a { display: block; padding-left: 0; padding-right: 0; text-align: center; + color: $black } } .smiley-container { border-collapse: collapse; width: 100%; + > tbody > tr > td { padding: 0 1em 0 0; + &:last-child { padding-right: 0; } } } + .smiley-container, .smiley-column { table-layout: fixed; } + .smiley-column { margin-right: 1em; + &:last-child { margin-right: 0; } @@ -64,19 +75,20 @@ } .smiley-toggle { - .square(16px); - .hide-text; - .background-icon('checkbox-unchecked', 'clickable'); + @include square(16px); + @include hide-text(); + @include background-icon(checkbox-unchecked, clickable); background-position: center; background-repeat: no-repeat; display: inline-block; vertical-align: middle; &.favorite { - .background-icon('checkbox-checked', 'clickable'); + @include background-icon(checkbox-checked, clickable); } + &.ajax { - background-image: url("@{image-path}/ajax_indicator_small.gif"); + background-image: url("#{$image-path}/ajax_indicator_small.gif"); } } @@ -93,6 +105,7 @@ content: ':'; } } + dd { font-weight: 700; margin: 0; @@ -102,6 +115,7 @@ .smiley-picker { width: 420px; + .smileys { text-align: center; width: 100%; @@ -114,6 +128,7 @@ vertical-align: middle; width: 80px; } + .smiley { box-sizing: border-box; cursor: pointer; @@ -129,6 +144,7 @@ vertical-align: middle; margin-right: -0.25em; } + img { vertical-align: middle; max-height: 76px; @@ -137,25 +153,39 @@ } &:hover { - background-color: fade(@active-color, 10%); + background-color: fade($active-color, 10%); border-radius: 20px; - box-shadow:0 -1px 4px fade(@active-color, 10%), 0 2px 5px #888; + box-shadow: 0 -1px 4px fade($active-color, 10%), 0 2px 5px #888; } } .navigation { border-collapse: collapse; width: 100%; - img { vertical-align: text-top; } - td { padding: 2px; } - &.top td { border-bottom: 1px solid @brand-color-dark; } - &.bottom td { border-top: 1px solid @brand-color-dark; } + + img { + vertical-align: text-top; + } + + td { + padding: 2px; + } + + &.top td { + border-bottom: 1px solid $brand-color-dark; + } + + &.bottom td { + border-top: 1px solid $brand-color-dark; + } + .active a { - color: @active-color; + color: $active-color; font-weight: bold; } } } + .smiley-picker-dialog { .ui-dialog-content { padding: 0; diff --git a/resources/assets/stylesheets/less/study-area-selection.less b/resources/assets/stylesheets/scss/study-area-selection.scss similarity index 93% rename from resources/assets/stylesheets/less/study-area-selection.less rename to resources/assets/stylesheets/scss/study-area-selection.scss index 9af5c02ba3fe11d692716a087e4ae61f8405cbd7..44a314e553c388fd58cd352d7c2f78ac2f3a12bc 100644 --- a/resources/assets/stylesheets/less/study-area-selection.less +++ b/resources/assets/stylesheets/scss/study-area-selection.scss @@ -4,7 +4,7 @@ h3 { margin-top: 1em; } .odd { background-color: #f3f5f8; } - .even { background-color: @content-color-20; } + .even { background-color: $content-color-20; } } #study_area_selection_none, @@ -41,4 +41,4 @@ h3 { font-weight: normal; } } -} \ No newline at end of file +} diff --git a/resources/assets/stylesheets/less/tabs.less b/resources/assets/stylesheets/scss/tabs.scss similarity index 72% rename from resources/assets/stylesheets/less/tabs.less rename to resources/assets/stylesheets/scss/tabs.scss index 448aeaacef7308d5bda15a95fcbde3d9ef8d3543..75e658f1952b0724d524d5d8f147fb6d3fa29aec 100644 --- a/resources/assets/stylesheets/less/tabs.less +++ b/resources/assets/stylesheets/scss/tabs.scss @@ -19,46 +19,41 @@ div.clear } li { float: left; } a { - color: #000; + color: $black; } } // Main tab set with the tabs sitting on top of the main content #tabs { - padding-left: 0px; + padding-left: 0; span { padding: 0; } .quiet img { opacity: 0.25; } li { - background-color: @dark-gray-color-10; + background-color: $dark-gray-color-10; &:last-child { border-right: none; } &.current { - color: @base-color; + color: $base-color; } &:hover { - //background-color: #fff; - border-bottom: 3px solid @dark-gray-color-30; - color: @base-color; - padding-top: 0px; - padding-bottom: 1px; + color: $base-color; + padding-top: 0; } &.current { - border-bottom: 3px solid @dark-gray-color-80; - padding-top: 0px; - padding-bottom: 1px; + padding-top: 0; line-height: 25px; a, span.quiet { - color: @base-color; + color: $base-color; } } } a, span.quiet { - color: #000; + color: $black; float: left; display: block; @@ -71,7 +66,7 @@ div.clear .tab-icon { float: left; margin: 4px 5px 0 -0.5em; - .size(16px, 16px); + @include size(16px, 16px); display: none; } @@ -95,10 +90,10 @@ div.clear position: absolute; top: inherit; right: inherit; - padding: 0px 0px 10px 0px; + padding: 0 0 10px 0; margin-top: 10px; - background: @content-color-20; - box-shadow: 1px 1px 1px @dark-gray-color-60; + background: $content-color-20; + box-shadow: 1px 1px 1px $dark-gray-color-60; text-align: left; white-space: nowrap; @@ -108,7 +103,7 @@ div.clear } a:hover { - color: @red !important; + color: $red !important; } } @@ -127,16 +122,14 @@ div.clear .action-menu-content:before { border-color: rgba(194, 225, 245, 0); - border-bottom-color: @dark-gray-color-60; + border-bottom-color: $dark-gray-color-60; border-width: 9px; margin-left: -8px; } .action-menu-content:after { border-color: rgba(194, 225, 245, 0); - border-bottom-color: @content-color-20; + border-bottom-color: $content-color-20; border-width: 8px; margin-left: -8px; } } - - diff --git a/resources/assets/stylesheets/scss/typography.scss b/resources/assets/stylesheets/scss/typography.scss new file mode 100644 index 0000000000000000000000000000000000000000..67bebc0b63c66b837f9f208871a554db19b1d563 --- /dev/null +++ b/resources/assets/stylesheets/scss/typography.scss @@ -0,0 +1,90 @@ +// Body reset + +html { + font-size: 62.5%; + -webkit-tap-highlight-color: rgba(0,0,0,0); +} + +body { + font-family: $font-family-base; + font-size: $font-size-base; + line-height: $line-height-base; + color: $text-color; +} + +// Reset fonts for relevant elements + +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +// +// Typography +// -------------------------------------------------- + + +// Headings +// ------------------------- + +h1, h2, h3, h4, h5, h6 { + font-family: $headings-font-family; + font-weight: $headings-font-weight; + line-height: $headings-line-height; + color: $headings-color; +} + +h1, +h2, +h3 { + margin-top: $line-height-computed; + margin-bottom: calc($line-height-computed / 2); +} + +h4, +h5, +h6, { + margin-top: calc($line-height-computed / 2); + margin-bottom: calc($line-height-computed / 2); +} + +h1 { font-size: $font-size-h1; } +h2 { font-size: $font-size-h2; } +h3 { font-size: $font-size-h3; } +h4 { font-size: $font-size-h4; } +h5 { font-size: $font-size-h5; } +h6 { font-size: $font-size-h6; } + + +// Headings with borders +// ------------------------- + +h1, h2 { + font-size: 1.3em; +} + + +h1 { + margin-top: 0; + span { + display: block; + font-size: calc($font-size-h1 * 0.75); + font-weight: calc($headings-font-weight / 7); + padding: calc($line-height-computed / 4) 0; + } +} + +// Body text +// ------------------------- + +p { + margin: 0 0 calc($line-height-computed / 2); +} + +.text-center { + text-align: center; +} diff --git a/resources/assets/stylesheets/scss/variables.scss b/resources/assets/stylesheets/scss/variables.scss index 23bcd109c46ef606ee7f32d5ca5376b4f072d4bd..6e7cc22a3340ba94185f5312a3ef3888eb298131 100644 --- a/resources/assets/stylesheets/scss/variables.scss +++ b/resources/assets/stylesheets/scss/variables.scss @@ -35,6 +35,8 @@ $avatar-small: 25px; $avatar-medium: 100px; $avatar-normal: 250px; +$drag_and_drop_z_index: 1000; +$drag_and_drop_border: 1px solid $base-color; :root { // The special handling for -- as #{"--"} seems to be neccessary to make diff --git a/resources/assets/stylesheets/studip.less b/resources/assets/stylesheets/studip.less index 547b141e887d5a7019e56b22668e7888de4a3c9a..b24c980e2a0468ae14b7c3f6ec8eea80198784b6 100644 --- a/resources/assets/stylesheets/studip.less +++ b/resources/assets/stylesheets/studip.less @@ -7,44 +7,14 @@ @import "less/font-face-lato.less"; @import "less/variables.less"; @import "less/breakpoints.less"; -@import "less/typography.less"; @import "less/visibility.less"; @import "less/responsive.less"; @import "less/tables.less"; -@import "less/forms.less"; - -@import "less/layouts.less"; -@import "less/personal-notifications.less"; -@import "less/navigation.less"; - -@import "less/clipboard.less"; -@import "less/content_box.less"; - -@import "less/avatar.less"; @import "less/buttons.less"; @import "less/messagebox.less"; -@import "less/tabs.less"; -@import "less/copyable-links.less"; - @import "less/calendar.less"; -@import "less/contacts.less"; -@import "less/cronjobs.less"; @import "less/files.less"; -@import "less/schedule.less"; -@import "less/study-area-selection.less"; -@import "less/opengraph.less"; - -@import "less/mobile.less"; -@import "less/selects.less"; -@import "less/smileys.less"; - -@import "less/globalsearch.less"; -@import "less/gradebook.less"; - -@import "less/navigation-hoverborder.less"; - -@import "less/deprecated.less"; /* --- Standardvorgaben ----------------------------------------------------- */ diff --git a/resources/assets/stylesheets/studip.scss b/resources/assets/stylesheets/studip.scss index dfa410cdf97170bfcda222597ee109a51c4eff1f..deca8381a995f9b7386e488e36434639c6c2dad0 100644 --- a/resources/assets/stylesheets/studip.scss +++ b/resources/assets/stylesheets/studip.scss @@ -20,11 +20,16 @@ @import "scss/big-image-handler"; @import "scss/blubber"; @import "scss/buttons"; +@import "scss/clipboard"; @import "scss/consultation"; +@import "scss/contacts"; @import "scss/contentbar"; +@import "scss/content_box"; @import "scss/contents"; @import "scss/content"; @import "scss/comments"; +@import "scss/copyable-links"; +@import "scss/cronjobs"; @import "scss/courseware"; @import "scss/coursewizard"; @import "scss/css_tree"; @@ -36,7 +41,9 @@ @import "scss/evaluation"; @import "scss/files"; @import "scss/feedback"; +@import "scss/forms"; @import "scss/forum"; +@import "scss/gradebook"; @import "scss/grid"; @import "scss/header"; @import "scss/headings"; @@ -45,39 +52,51 @@ @import "scss/ilias-interface"; @import "scss/index"; @import "scss/fullscreen"; +@import "scss/globalsearch"; +@import "scss/layouts"; @import "scss/links"; @import "scss/lists"; @import "scss/messages"; +@import "scss/mobile"; @import "scss/my_courses"; @import "scss/mvv"; +@import "scss/navigation"; +@import "scss/navigation-hoverborder"; @import "scss/oer"; @import "scss/overlapping"; -@import "scss/qrcode"; -@import "scss/questionnaire"; -@import "scss/quicksearch"; @import "scss/oauth2"; +@import "scss/opengraph"; @import "scss/pagination"; +@import "scss/personal-notifications"; @import "scss/plugins"; @import "scss/plus"; @import "scss/progress_indicator.scss"; @import "scss/profile"; +@import "scss/qrcode"; +@import "scss/questionnaire"; +@import "scss/quicksearch"; @import "scss/raumzeit"; @import "scss/report"; @import "scss/resources"; @import "scss/sidebar"; @import "scss/select"; +@import "scss/selects"; @import "scss/search"; @import "scss/skiplinks"; @import "scss/start"; @import "scss/scroll-to-top"; +@import "scss/smileys"; @import "scss/statusgroups"; +@import "scss/study-area-selection"; @import "scss/studygroup"; @import "scss/studip-overlay"; @import "scss/studip-selection"; @import "scss/table_of_contents"; +@import "scss/tabs"; @import "scss/tooltip"; @import "scss/tfa"; @import "scss/tour"; +@import "scss/typography"; @import "scss/user-administration"; @import "scss/wiki";