X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fsass%2Finclude%2F_mixins.scss;h=3c5aa6cdf4f26802c39feff1f8f4890349bb2437;hb=bffee1d538aa7b51b78d646a0d372b352c073cd8;hp=4f2421aea3d80c129ee6bc1dfee30769faf891eb;hpb=4d7ce9218a3f695bf3d013cbdce1c5c6a5221927;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/sass/include/_mixins.scss b/client/src/sass/include/_mixins.scss index 4f2421aea..3c5aa6cdf 100644 --- a/client/src/sass/include/_mixins.scss +++ b/client/src/sass/include/_mixins.scss @@ -1,4 +1,5 @@ -@import '_variables'; +@use 'sass:math'; +@use '_variables' as *; @mixin disable-default-a-behaviour { &:hover, @@ -84,15 +85,14 @@ } @mixin peertube-input-text($width) { + padding: 0 15px; display: inline-block; height: $button-height; width: $width; color: pvar(--inputForegroundColor); background-color: pvar(--inputBackgroundColor); - border: 1px solid #C6C6C6; + border: 1px solid $input-border-color; border-radius: 3px; - padding-left: 15px; - padding-right: 15px; font-size: 15px; &::placeholder { @@ -103,7 +103,7 @@ opacity: 0.7; } - @media screen and (max-width: $width) { + @media screen and (max-width: calc(#{$width} + 40px)) { width: 100%; } } @@ -124,8 +124,8 @@ @mixin peertube-textarea ($width, $height) { @include peertube-input-text($width); - color: pvar(--textareaForegroundColor); - background-color: pvar(--textareaBackgroundColor); + color: pvar(--textareaForegroundColor) !important; + background-color: pvar(--textareaBackgroundColor) !important; height: $height; padding: 5px 15px; font-size: 15px; @@ -150,7 +150,7 @@ &.disabled { cursor: default; color: #fff; - background-color: #C6C6C6; + background-color: $input-border-color; } my-global-icon { @@ -180,7 +180,7 @@ &.disabled { cursor: default; color: pvar(--mainColor); - background-color: #C6C6C6; + background-color: $input-border-color; } my-global-icon { @@ -207,7 +207,7 @@ @mixin grey-button { @include button-focus($grey-button-outline-color); - background-color: $grey-background-color; + background-color: pvar(--greyBackgroundColor); color: pvar(--greyForegroundColor); &:hover, @@ -216,7 +216,7 @@ &[disabled], &.disabled { color: pvar(--greyForegroundColor); - background-color: $grey-background-hover-color; + background-color: pvar(--greySecondaryBackgroundColor); } &[disabled], @@ -257,16 +257,23 @@ } @mixin peertube-button { + padding: 0 13px; + border: 0; font-weight: $font-semibold; font-size: 15px; height: $button-height; line-height: $button-height; - // FIXME: because of primeng that redefines border-radius of all input[type="..."] + + // Because of primeng that redefines border-radius of all input[type="..."] border-radius: 3px !important; + text-align: center; - padding: 0 17px 0 13px; cursor: pointer; + + my-global-icon + * { + @include margin-right(4px); + } } @mixin peertube-button-link { @@ -290,9 +297,10 @@ line-height: normal !important; my-global-icon { + @include margin-right($margin-right); + position: relative; width: $width; - margin-right: $margin-right; top: $top; } } @@ -310,7 +318,7 @@ width: 100%; height: 100%; font-size: 100px; - text-align: right; + text-align: end; filter: alpha(opacity=0); opacity: 0; outline: none; @@ -354,6 +362,7 @@ background: pvar(--inputBackgroundColor); position: relative; font-size: 15px; + height: min-content; &.disabled { background-color: #E5E5E5; @@ -362,6 +371,9 @@ cursor: default; } } + select[disabled] { + background-color: #f9f9f9; + } @media screen and (max-width: $width) { width: 100%; @@ -384,10 +396,9 @@ select { padding: 0 35px 0 12px; position: relative; - border: 1px solid #C6C6C6; + border: 1px solid $input-border-color; background: transparent none; appearance: none; - cursor: pointer; height: $button-height; text-overflow: ellipsis; color: pvar(--mainForegroundColor); @@ -403,14 +414,17 @@ option { color: #000; + + &[value=undefined] { + font-weight: $font-semibold; + } } } &.peertube-select-button { @include grey-button; - select, - option { + select { font-weight: $font-semibold; color: pvar(--greyForegroundColor); border: 0; @@ -418,41 +432,64 @@ } } -// Thanks: https://codepen.io/triss90/pen/XNEdRe/ +// Thanks: https://codepen.io/manabox/pen/raQmpL @mixin peertube-radio-container { - input[type=radio] { - display: none; + [type=radio]:checked, + [type=radio]:not(:checked) { + position: absolute; + left: -9999px; + } - + label { - font-weight: $font-regular; - cursor: pointer; + [type=radio]:checked + label, + [type=radio]:not(:checked) + label { + position: relative; + padding-left: 28px; + cursor: pointer; + line-height: 20px; + display: inline-block; + font-size: 15px; + font-weight: $font-regular; + } - &::before { - position: relative; - top: -2px; - content: ''; - background: #fff; - border-radius: 100%; - border: 1px solid #000; - display: inline-block; - width: 15px; - height: 15px; - vertical-align: middle; - cursor: pointer; - text-align: center; - margin-right: 10px; - } - } + [type=radio]:checked + label::before, + [type=radio]:not(:checked) + label::before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 18px; + height: 18px; + border: 1px solid $input-border-color; + border-radius: 100%; + background: #fff; + } - &:checked + label::before { - background-color: #000; - box-shadow: inset 0 0 0 4px #fff; - } + [type=radio]:checked + label::after, + [type=radio]:not(:checked) + label::after { + content: ''; + width: 10px; + height: 10px; + background: pvar(--mainColor); + position: absolute; + top: 4px; + left: 4px; + border-radius: 100%; + transition: all 0.2s ease; + } + [type=radio]:not(:checked) + label::after { + opacity: 0; + transform: scale(0); + } + [type=radio]:checked + label::after { + opacity: 1; + transform: scale(1); + } - &:focus + label::before { - outline: none; - border-color: #000; - } + .form-group-description { + display: block; + margin-top: -7px; + margin-bottom: 10px; + margin-left: 29px; } } @@ -469,7 +506,7 @@ width: 18px; min-width: 18px; height: 18px; - border: $border-width solid #C6C6C6; + border: $border-width solid $input-border-color; border-radius: 3px; vertical-align: middle; cursor: pointer; @@ -500,9 +537,10 @@ } + span + span { + @include margin-left(5px); + font-size: 15px; font-weight: $font-regular; - margin-left: 5px; cursor: pointer; display: inline; } @@ -514,7 +552,7 @@ } } -@mixin table-badge { +@mixin peertube-badge { border-radius: 2px; padding: 1/4em 1/2em; text-transform: uppercase; @@ -566,6 +604,19 @@ min-height: $size; } +@mixin actor-counters ($separator-margin: 10px) { + color: pvar(--greyForegroundColor); + font-size: 16px; + display: flex; + align-items: center; + + > *:not(:last-child)::after { + content: '•'; + margin: 0 $separator-margin; + color: pvar(--mainColor); + } +} + @mixin chevron ($size, $border-width) { border-style: solid; border-width: $border-width $border-width 0 0; @@ -611,12 +662,15 @@ @include button-with-icon(20px, 5px, -1px); } -@mixin row-blocks ($column-responsive: true) { +@mixin row-blocks ($column-responsive: true, $min-height: 130px, $separator: true) { display: flex; - min-height: 130px; + min-height: $min-height; padding-bottom: 20px; margin-bottom: 20px; - border-bottom: 1px solid #C6C6C6; + + @if $separator { + border-bottom: 1px solid $input-border-color; + } @media screen and (max-width: $small-view) { @if $column-responsive { @@ -635,10 +689,10 @@ padding: 6px 15px; my-global-icon { + @include margin-right(10px); + width: 22px; opacity: .7; - - margin-right: 10px; position: relative; top: -2px; } @@ -656,6 +710,7 @@ span { position: absolute; color: $grey-foreground-color; + @if $small { top: -1px; } @@ -705,10 +760,12 @@ } + .breadcrumb-item { - padding-left: 0.5rem; + @include padding-left(0.5rem); + &::before { + @include padding-right(0.5rem); + display: inline-block; - padding-right: 0.5rem; color: #6c757d; content: '/'; } @@ -727,7 +784,7 @@ > div { box-sizing: border-box; - flex: 0 0 percentage(1/3); + flex: 0 0 percentage(math.div(1, 3)); padding: 0 5px; margin-bottom: 10px; @@ -822,8 +879,8 @@ } my-actor-avatar { - margin-left: -.4rem; - margin-right: .2rem; + @include margin-left(-.4rem); + @include margin-right(.2rem); } &.two-lines { @@ -832,15 +889,15 @@ height: $avatar-height; my-actor-avatar { - @include actor-avatar-size($avatar-height); + display: inline-block; } div { + margin: 0 .1rem; + display: flex; flex-direction: column; height: $avatar-height; - margin-left: .1rem; - margin-right: .1rem; justify-content: center; } } @@ -849,7 +906,7 @@ // applies ratio (default to 16:9) to a child element (using $selector) only using // an immediate's parent size. This allows to set a ratio without explicit // dimensions, as width/height cannot be computed from each other. -@mixin block-ratio ($selector: 'div', $inverted-ratio: 9/16) { +@mixin block-ratio ($selector: 'div', $inverted-ratio: math.div(9, 16)) { $padding-percent: percentage($inverted-ratio); position: relative; @@ -862,6 +919,7 @@ width: 100%; height: 100%; top: 0; + @content; } } @@ -875,14 +933,14 @@ > span > my-global-icon, > my-global-icon { - margin-right: 10px; + @include margin-right(10px); width: 24px; height: 24px; vertical-align: top; } .badge { - margin-left: 7px; + @include margin-left(7px); vertical-align: top; } } @@ -897,8 +955,8 @@ top: 50%; transform: translate(-50%, -50%) scale(0.5); - border-top: ($height / 2) solid transparent; - border-bottom: ($height / 2) solid transparent; + border-top: #{math.div($height, 2)} solid transparent; + border-bottom: #{math.div($height, 2)} solid transparent; border-left: $width solid rgba(255, 255, 255, 0.95); } @@ -930,3 +988,59 @@ } } } + +@mixin margin ($block-start, $inline-end, $block-end, $inline-start) { + @include margin-left($inline-start); + @include margin-right($inline-end); + + margin-top: $block-start; + margin-bottom: $block-end; +} + +@mixin padding ($block-start, $inline-end, $block-end, $inline-start) { + @include padding-left($inline-start); + @include padding-right($inline-end); + + padding-top: $block-start; + padding-bottom: $block-end; +} + +@mixin margin-left ($value) { + @supports (margin-inline-start: $value) { + margin-inline-start: $value; + } + + @supports not (margin-inline-start: $value) { + margin-left: $value; + } +} + +@mixin margin-right ($value) { + @supports (margin-inline-end: $value) { + margin-inline-end: $value; + } + + @supports not (margin-inline-end: $value) { + margin-right: $value; + } +} + +@mixin padding-left ($value) { + @supports (padding-inline-start: $value) { + padding-inline-start: $value; + } + + @supports not (padding-inline-start: $value) { + padding-left: $value; + } +} + +@mixin padding-right ($value) { + @supports (padding-inline-end: $value) { + padding-inline-end: $value; + } + + @supports not (padding-inline-end: $value) { + padding-right: $value; + } +}