X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fsass%2Fprimeng-custom.scss;h=eab2b2dfd3e3c733f3208ee938d53d068d42a7a3;hb=801d957155d574bda984206021cdd1fe58ef56b9;hp=1ec5c7da20c4c9bb3d261e45a394c0a044335019;hpb=f0d4e7eb240f256b4f01cde4a1cd6f66f8f4347c;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/sass/primeng-custom.scss b/client/src/sass/primeng-custom.scss index 1ec5c7da2..eab2b2dfd 100644 --- a/client/src/sass/primeng-custom.scss +++ b/client/src/sass/primeng-custom.scss @@ -2,23 +2,58 @@ @import '_mixins'; @import '~primeng/resources/primeng.css'; -@import '~primeng/resources/themes/bootstrap/theme.css'; +@import '~primeng/resources/themes/nova-light/theme.css'; @mixin glyphicon-light { font-family: 'Glyphicons Halflings'; text-decoration: none !important; - color: #000 !important; + color: var(--mainForegroundColor) !important; + font-display: swap; +} + +my-edit-button, +my-delete-button, +my-button { + height: max-content; +} + +// focus box-shadow for primeng +.ui-inputtext:enabled:focus:not(.ui-state-error) { + box-shadow: #{$focus-box-shadow-form} var(--mainColorLightest) !important; } // data table customizations p-table { - font-size: 15px !important; + .ui-table-caption { + border: none !important; + background-color: var(--mainBackgroundColor) !important; + + .caption { + height: 40px; + display: flex; + align-items: center; + + .input-group-text { + background-color: transparent; + } + } + } + + th { + background-color: var(--mainBackgroundColor) !important; + outline: 0; + } + + td, th { + font-family: $main-fonts; + font-size: 15px !important; + color: var(--mainForegroundColor) !important; + } td { - border: 1px solid #E5E5E5 !important; padding-left: 15px !important; - &:not(.action-cell) { + &:not(.action-cell):not(.expand-cell) { overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; @@ -26,20 +61,36 @@ p-table { } tr { - background-color: #fff !important; + outline: 0; + background-color: var(--mainBackgroundColor) !important; height: 46px; + + &.ui-state-highlight { + background-color: var(--submenuColor) !important; + + td, td > a { + color: var(--mainForegroundColor) !important; + } + } } .ui-table-tbody { tr { &:hover { - background-color: #f0f0f0 !important; + background-color: var(--submenuColor) !important; + + .action-cell { + .dropdown-root, + my-edit-button, + my-delete-button, + my-button { + display: inline-block !important; + } + } } - &:not(:hover) { - .action-cell * { - display: none !important; - } + td { + border: none !important; } &:first-child td { @@ -60,15 +111,17 @@ p-table { th { border: none !important; - border-bottom: 1px solid #f0f0f0 !important; + border-bottom: 1px solid !important; + border-color: var(--submenuColor) !important; text-align: left !important; padding: 5px 0 5px 15px !important; font-weight: $font-semibold !important; - color: #000 !important; + color: var(--mainForegroundColor) !important; &.ui-sortable-column:hover { - background-color: #f0f0f0 !important; - border: 1px solid #f0f0f0 !important; + background-color: var(--submenuColor) !important; + border: 1px solid !important; + border-color: var(--submenuColor) !important; border-width: 0 1px !important; &:first-child { @@ -77,21 +130,25 @@ p-table { } &.ui-state-highlight { - background-color: #fff !important; + background-color: var(--submenuColor) !important; .pi { @extend .glyphicon; - color: #000; - font-size: 11px; - top: 0; + color: #000 !important; + font-size: 11px !important; + top: 0 !important; &.pi-sort-up { @extend .glyphicon-triangle-top; + + color: var(--mainForegroundColor) !important; } &.pi-sort-down { @extend .glyphicon-triangle-bottom; + + color: var(--mainForegroundColor) !important; } } } @@ -102,20 +159,60 @@ p-table { padding: 0 !important; text-align: center; - my-edit-button + my-delete-button { + .dropdown-root, + my-edit-button, + my-delete-button, + my-button { + display: none !important; margin-left: 5px; + + &.show { + display: inline-block !important; + } + + // keep displaying on touchscreen + @media not all and (hover: hover) and (pointer: fine) { + display: inline-block !important; + } + + :first-child { + margin-left: 0 + } } } p-paginator { .ui-paginator-bottom { + background-color: var(--mainBackgroundColor) !important; position: relative; - border: 1px solid #f0f0f0 !important; + border: none; + border-top: 1px solid !important; + border-color: var(--submenuColor) !important; height: 40px; display: flex; justify-content: center; align-items: center; + .ui-dropdown { + position: absolute; + top: 3px; + left: 0; + + &.ui-state-focus { + box-shadow: #{$focus-box-shadow-form} var(--mainColorLightest); + } + + .ui-dropdown-label { + color: var(--inputPlaceholderColor); + } + } + + .ui-paginator-current { + position: absolute; + right: 0; + color: var(--inputPlaceholderColor); + } + .ui-paginator-first, .ui-paginator-prev, .ui-paginator-next, @@ -127,6 +224,11 @@ p-table { font-size: 13px; top: -1px; + &.focus-within, + &:focus { + box-shadow: #{$focus-box-shadow-form} var(--mainColorLightest); + } + &.ui-state-disabled:hover { background-color: #fff !important; } @@ -155,19 +257,27 @@ p-table { .ui-paginator-pages { height: auto !important; + .ui-paginator-page { + &.focus-within, + &:focus { + box-shadow: #{$focus-box-shadow-form} var(--mainColorLightest) !important; + } + } + a { - color: #000 !important; + color: var(--mainForegroundColor) !important; font-weight: $font-semibold !important; - margin-right: 0 10px !important; + margin: 0 5px !important; outline: 0 !important; border-radius: 3px !important; padding: 5px 2px !important; height: auto !important; + line-height: initial !important; &.ui-state-active { &, &:hover, &:active, &:focus { color: #fff !important; - background-color: $orange-color !important; + background-color: var(--mainColor) !important; } } } @@ -176,6 +286,96 @@ p-table { } } +// overflow data table +@mixin overflow-datatable ($table-min-width, $horizontal-margins, $mobile-paginator: true) { + p-table { + .ui-table-wrapper { + overflow-x: auto; + max-width: calc(100vw - #{$horizontal-margins * 2}); + + table { + min-width: $table-min-width; + } + } + + @if $mobile-paginator { + p-paginator .ui-paginator-bottom { + display: block; + + .ui-paginator-current { + position: relative; + display: block; + } + + a, .ui-paginator-pages { + vertical-align: middle; + } + } + } + } +} + +// multiselect customizations +p-multiselect { + .ui-multiselect { + border-color: #C6C6C6; + + &:not(.ui-state-disabled) { + &:hover { + border-color: #C6C6C6; + } + + &:focus, + &.ui-state-focus { + box-shadow: #{$focus-box-shadow-form} var(--mainColorLightest); + } + } + } + + .ui-multiselect-label { + font-size: 15px !important; + padding: 4px 30px 4px 12px !important; + + $width: 338px; + width: $width !important; + + @media screen and (max-width: $width) { + width: 100% !important; + } + } + + .pi.pi-chevron-down{ + margin-left: 0 !important; + + &::after { + @include select-arrow-down; + + right: 0; + margin-top: 6px; + } + } + + .ui-chkbox-icon { + //position: absolute !important; + width: 18px; + height: 18px; + //left: 0; + + //&::after { + // left: -2px !important; + //} + } + + .ui-multiselect-panel .ui-multiselect-items .ui-multiselect-item.ui-state-highlight { + background-color: var(--mainColorLighter); + } + + .ui-inputtext:enabled:focus:not(.ui-state-error) { + border-color: var(--mainColorLighter) !important; + box-shadow: none; + } +} + // PrimeNG calendar tweaks p-calendar .ui-datepicker { a { @@ -191,11 +391,25 @@ p-calendar .ui-datepicker { .ui-datepicker-next { @extend .glyphicon-chevron-right; @include glyphicon-light; + + color: #000 !important; + text-align: right; + + .pi.pi-chevron-right { + display: none !important; + } } .ui-datepicker-prev { @extend .glyphicon-chevron-left; @include glyphicon-light; + + color: #000 !important; + text-align: left; + + .pi.pi-chevron-left { + display: none !important; + } } } @@ -204,11 +418,156 @@ p-calendar .ui-datepicker { .pi.pi-chevron-up { @extend .glyphicon-chevron-up; @include glyphicon-light; + + color: #000 !important; } .pi.pi-chevron-down { @extend .glyphicon-chevron-down; @include glyphicon-light; + + color: #000 !important; + } + } +} + +p-tablecheckbox:hover div .ui-chkbox-box { + box-shadow: 0 0 0 .1rem rgba(87, 85, 217, .2); +} + +.ui-chkbox { + + &, .ui-chkbox-box { + width: 18px !important; + height: 18px !important; + } + + .ui-chkbox-box { + &.ui-state-active { + border-color: var(--mainColor) !important; + background-color: var(--mainColor) !important; + } + + .ui-chkbox-icon { + position: relative; + overflow: visible !important; + + &:after { + content: ''; + position: absolute; + top: 1px; + left: 6px; + width: 5px; + height: 12px; + opacity: 0; + transform: rotate(45deg) scale(0); + border-right: 2px solid var(--mainBackgroundColor); + border-bottom: 2px solid var(--mainBackgroundColor); + } + + &.pi-check:after { + opacity: 1; + transform: rotate(45deg) scale(1); + } + } + } +} + +p-inputswitch { + height: 26px; + + .ui-inputswitch-checked .ui-inputswitch-slider { + background-color: var(--mainColor) !important; + } + + &.small { + height: 20px; + + .ui-inputswitch { + width: 2.5em !important; + height: 1.45em !important; + + .ui-inputswitch-slider::before { + height: 1em !important; + width: 1em !important; + } + } + + .ui-inputswitch-checked .ui-inputswitch-slider::before { + transform: translateX(1em) !important; + } + } +} + +p-toast { + .ui-toast { + z-index: z(notification) !important; + + .ui-toast-close-icon { + font-family: "Glyphicons Halflings"; + opacity: 0; + + &:after { + content: "\e014"; + } + } + + &:hover .ui-toast-close-icon { + opacity: .3; + } + } + + .ui-toast-message { + font-family: $main-fonts; + background-color: var(--mainBackgroundColor) !important; + border-radius: 5px; + box-sizing: border-box; + border: 1px solid #EBEEF5 !important; + box-shadow: 0 2px 12px 0 rgba(0, 0 , 0, .1); + overflow: hidden; + + &.ui-toast-message-success .glyphicon { + color: #8BC34A !important; + } + + &.ui-toast-message-error .glyphicon { + color: #F44336 !important; + } + + &.ui-toast-message-warn .glyphicon { + color: #F1680D !important; + } + + &.ui-toast-message-info .glyphicon { + color: #03A9F4 !important; + } + + .notification-block { + display: flex; + align-items: center; + padding: 5px; + + .message { + flex-grow: 1; + + h3 { + font-size: 21px; + } + + p { + font-size: 15px; + margin-bottom: 0; + } + } + + .glyphicon { + font-size: 32px; + margin-right: 5px; + } } } -} \ No newline at end of file +} + +.ui-widget { + font-family: $main-fonts !important; +}