]>
Commit | Line | Data |
---|---|---|
1 | @import '_variables'; | |
2 | @import '_mixins'; | |
3 | ||
4 | @mixin miniature-name { | |
5 | @include ellipsis-multiline(1.1em, 2); | |
6 | @include peertube-word-wrap(false); | |
7 | ||
8 | transition: color 0.2s; | |
9 | font-weight: $font-semibold; | |
10 | color: pvar(--mainForegroundColor); | |
11 | ||
12 | &:hover { | |
13 | text-decoration: none; | |
14 | } | |
15 | ||
16 | &.blur-filter { | |
17 | filter: blur(3px); | |
18 | padding-left: 4px; | |
19 | } | |
20 | } | |
21 | ||
22 | @mixin miniature-thumbnail { | |
23 | $play-overlay-transition: 0.2s ease; | |
24 | $play-overlay-height: 26px; | |
25 | $play-overlay-width: 18px; | |
26 | ||
27 | @include disable-outline; | |
28 | ||
29 | display: flex; | |
30 | flex-direction: column; | |
31 | position: relative; | |
32 | border-radius: 3px; | |
33 | width: 100%; | |
34 | height: 100%; | |
35 | overflow: hidden; | |
36 | background-color: #ececec; | |
37 | transition: filter $play-overlay-transition; | |
38 | ||
39 | .play-overlay { | |
40 | position: absolute; | |
41 | right: 0; | |
42 | bottom: 0; | |
43 | ||
44 | width: inherit; | |
45 | height: inherit; | |
46 | opacity: 0; | |
47 | background-color: rgba(0, 0, 0, 0.3); | |
48 | ||
49 | &, | |
50 | .icon { | |
51 | transition: all $play-overlay-transition; | |
52 | } | |
53 | ||
54 | .icon { | |
55 | @include play-icon($play-overlay-width, $play-overlay-height); | |
56 | } | |
57 | } | |
58 | ||
59 | &:hover { | |
60 | text-decoration: none !important; | |
61 | ||
62 | .play-overlay { | |
63 | opacity: 1; | |
64 | ||
65 | .icon { | |
66 | transform: translate(-50%, -50%) scale(1); | |
67 | } | |
68 | } | |
69 | } | |
70 | ||
71 | &.focus-visible { | |
72 | box-shadow: #{$focus-box-shadow-form} pvar(--mainColorLightest); | |
73 | outline: none; | |
74 | } | |
75 | ||
76 | img { | |
77 | width: inherit; | |
78 | height: inherit; | |
79 | ||
80 | &.blur-filter { | |
81 | filter: blur(20px); | |
82 | transform: scale(1.03); | |
83 | } | |
84 | } | |
85 | } | |
86 | ||
87 | @mixin thumbnail-size-component ($width, $height) { | |
88 | ::ng-deep .video-thumbnail { | |
89 | width: $width; | |
90 | height: $height; | |
91 | } | |
92 | } | |
93 | ||
94 | @mixin static-thumbnail-overlay { | |
95 | display: inline-block; | |
96 | background-color: rgba(0, 0, 0, 0.7); | |
97 | color: #fff; | |
98 | } | |
99 | ||
100 | // Use margin by default, or padding if $margin is false | |
101 | @mixin grid-videos-miniature-margins ($margin: true, $min-margin: 0) { | |
102 | --gridVideosMiniatureMargins: #{pvar(--videosHorizontalMarginContent)}; | |
103 | ||
104 | @if $margin { | |
105 | margin-left: var(--gridVideosMiniatureMargins) !important; | |
106 | margin-right: var(--gridVideosMiniatureMargins) !important; | |
107 | } @else { | |
108 | padding-left: var(--gridVideosMiniatureMargins) !important; | |
109 | padding-right: var(--gridVideosMiniatureMargins) !important; | |
110 | } | |
111 | ||
112 | @media screen and (max-width: $mobile-view) { | |
113 | --gridVideosMiniatureMargins: #{$min-margin}; | |
114 | ||
115 | width: auto; | |
116 | } | |
117 | } | |
118 | ||
119 | @mixin grid-videos-miniature-layout { | |
120 | @include grid-videos-miniature-margins; | |
121 | ||
122 | @media screen and (min-width: $mobile-view) { | |
123 | .videos, | |
124 | .playlists { | |
125 | --miniatureMinWidth: #{$video-thumbnail-width - 25px}; | |
126 | --miniatureMaxWidth: #{$video-thumbnail-width}; | |
127 | ||
128 | display: grid; | |
129 | column-gap: 30px; | |
130 | grid-template-columns: repeat( | |
131 | auto-fill, | |
132 | minmax(var(--miniatureMinWidth), 1fr) | |
133 | ); | |
134 | ||
135 | .video-wrapper, | |
136 | .playlist-wrapper { | |
137 | margin: 0 auto; | |
138 | width: 100%; | |
139 | ||
140 | my-video-miniature, | |
141 | my-video-playlist-miniature { | |
142 | display: block; | |
143 | min-width: var(--miniatureMinWidth); | |
144 | max-width: var(--miniatureMaxWidth); | |
145 | } | |
146 | } | |
147 | ||
148 | @media screen and (min-width: #{breakpoint(xm)}) { | |
149 | column-gap: 15px; | |
150 | } | |
151 | ||
152 | @media screen and (min-width: #{breakpoint(fhd)}) { | |
153 | column-gap: 2%; | |
154 | } | |
155 | } | |
156 | } | |
157 | } |