X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fsass%2Finclude%2F_mixins.scss;h=2efd6a1d3545b81915b9a4e428958468e34cbaa9;hb=8b183196cbafaa491bf70e32c82fabd2064ad462;hp=7e7a38bbdae86d19900c7f373c71d1a177a4d4b6;hpb=7a14004b4e16e23076f29d9c5d890f2a5130e171;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/sass/include/_mixins.scss b/client/src/sass/include/_mixins.scss index 7e7a38bbd..2efd6a1d3 100644 --- a/client/src/sass/include/_mixins.scss +++ b/client/src/sass/include/_mixins.scss @@ -8,7 +8,9 @@ } @mixin disable-outline { - outline: none; + &:focus:not(.focus-visible) { + outline: none; + } &::-moz-focus-inner { border: 0; @@ -16,6 +18,33 @@ } } +/** + * This mixin will crop text in block for needed amount of lines and put ellipsis at the end + * + * @param $font-size font-size property + * @param $line-height line-height property + * @param $lines-to-show amount of lines to show + */ +@mixin ellipsis-multiline($font-size: 1rem, $line-height: 1, $lines-to-show: 2) { + display: block; + /* Fallback for non-webkit */ + display: -webkit-box; + max-height: $font-size*$line-height*$lines-to-show; + /* Fallback for non-webkit */ + font-size: $font-size; + line-height: $line-height; + -webkit-line-clamp: $lines-to-show; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; +} + +@mixin prefix($property, $parameters...) { + @each $prefix in -webkit-, -moz-, -ms-, -o-, "" { + #{$prefix}#{$property}: $parameters; + } +} + @mixin peertube-word-wrap { word-break: normal; word-wrap: break-word; @@ -24,21 +53,36 @@ -ms-hyphens: auto; -moz-hyphens: auto; hyphens: auto; - text-align: justify; } @mixin peertube-input-text($width) { display: inline-block; height: $button-height; width: $width; - background: #fff; + background: var(--inputColor); border: 1px solid #C6C6C6; border-radius: 3px; padding-left: 15px; padding-right: 15px; &::placeholder { - color: #585858; + color: var(--inputPlaceholderColor); + } + + @media screen and (max-width: $width) { + width: 100%; + } +} + +@mixin peertube-input-group($width) { + width: $width; + height: $button-height; + padding-top: 0; + padding-bottom: 0; + + .input-group-text{ + font-size: 14px; + color: gray; } } @@ -53,12 +97,12 @@ @mixin orange-button { &, &:active, &:focus { color: #fff; - background-color: $orange-color; + background-color: var(--mainColor); } &:hover { color: #fff; - background-color: $orange-hoover-color; + background-color: var(--mainHoverColor); } &[disabled], &.disabled { @@ -147,7 +191,7 @@ width: $width; border-radius: 3px; overflow: hidden; - background: #fff; + background: var(--inputColor); position: relative; font-size: 15px; @@ -160,7 +204,7 @@ position: absolute; pointer-events: none; border: 5px solid rgba(0, 0, 0, 0); - border-top-color: #000000; + border-top-color: #000; margin-top: -2px; z-index: 100; } @@ -177,6 +221,7 @@ cursor: pointer; height: $button-height; text-overflow: ellipsis; + color: var(--mainForegroundColor); &:focus { outline: none; @@ -240,11 +285,11 @@ @mixin peertube-checkbox ($border-width) { display: none; - & + label { + & + span { position: relative; width: 18px; height: 18px; - border: $border-width solid #000; + border: $border-width solid var(--mainForegroundColor); border-radius: 3px; vertical-align: middle; cursor: pointer; @@ -258,14 +303,14 @@ height: 12px; opacity: 0; transform: rotate(45deg) scale(0); - border-right: 2px solid #fff; - border-bottom: 2px solid #fff; + border-right: 2px solid var(--mainBackgroundColor); + border-bottom: 2px solid var(--mainBackgroundColor); } } - &:checked + label { + &:checked + span { border-color: transparent; - background: $orange-color; + background: var(--mainColor); animation: jelly 0.6s ease; &:after { @@ -274,19 +319,25 @@ } } - & + label + label { + & + span + span { font-size: 15px; font-weight: $font-regular; margin-left: 5px; cursor: pointer; display: inline; } + + &[disabled] + span, + &[disabled] + span + span{ + opacity: 0.5; + cursor: default; + } } @mixin avatar ($size) { object-fit: cover; - border-radius:50%; + border-radius: 50%; width: $size; height: $size; } @@ -314,3 +365,150 @@ left: 0.25em; transform: rotate(-135deg); } + +@mixin in-content-small-title { + text-transform: uppercase; + color: var(--mainColor); + font-weight: $font-bold; + font-size: 13px; +} + +@mixin actor-owner { + @include disable-default-a-behaviour; + + display: inline-table; + font-size: 13px; + margin-top: 4px; + color: var(--mainForegroundColor); + + span:hover { + opacity: 0.8; + } + + img { + @include avatar(18px); + + margin-left: 7px; + position: relative; + top: -2px; + } +} + +@mixin sub-menu-with-actor { + height: 160px; + display: flex; + flex-direction: column; + align-items: start; + + .actor { + display: flex; + margin-top: 20px; + margin-bottom: 20px; + + img { + @include avatar(80px); + + margin-right: 20px; + } + + .actor-info { + display: flex; + flex-direction: column; + justify-content: center; + + .actor-names { + display: flex; + align-items: center; + + .actor-display-name { + font-size: 23px; + font-weight: $font-bold; + } + + .actor-name { + margin-left: 7px; + position: relative; + top: 3px; + font-size: 14px; + color: $grey-actor-name; + } + } + + .actor-followers { + font-size: 15px; + } + + .actor-owner { + @include actor-owner; + } + } + } + + .links { + margin-top: 0; + margin-bottom: 10px; + + a { + margin-top: 0; + margin-bottom: 0; + } + } +} + +@mixin create-button ($imageUrl) { + @include peertube-button-link; + @include orange-button; + + .icon.icon-add { + @include icon(20px); + + position: relative; + top: -1px; + margin-right: 5px; + background-image: url($imageUrl); + } +} + +@mixin row-blocks { + display: flex; + min-height: 130px; + padding-bottom: 20px; + margin-bottom: 20px; + border-bottom: 1px solid #C6C6C6; + + @media screen and (max-width: 800px) { + flex-direction: column; + height: auto; + text-align: center; + align-items: center; + } +} + +@mixin video-miniature-small-screen { + text-align: center; + + /deep/ .video-miniature { + padding-right: 0; + height: auto; + width: 100%; + margin-bottom: 20px; + + .video-miniature-information { + width: 100% !important; + + span { + width: 100%; + } + } + + .video-thumbnail { + width: 100%; + height: auto; + + img { + width: 100%; + height: auto; + } + } + } +} \ No newline at end of file