]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame_incremental - client/src/app/shared/video/video-miniature.component.scss
add keyboard navigation for video actions (#2854)
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / video / video-miniature.component.scss
... / ...
CommitLineData
1@import '_variables';
2@import '_mixins';
3@import '_miniature';
4
5$more-button-width: 40px;
6$more-margin-right: 15px;
7
8.video-miniature {
9 display: inline-flex;
10 flex-direction: column;
11 padding-bottom: $video-miniature-margin-bottom;
12 height: 195px;
13 vertical-align: top;
14
15 .video-bottom {
16 display: flex;
17
18 .video-miniature-information {
19 width: $video-miniature-width - $more-button-width - $more-margin-right;
20 line-height: normal;
21
22 .avatar {
23 margin: 10px 10px 0 0;
24
25 img {
26 @include avatar(40px);
27 }
28 }
29
30 .video-miniature-name {
31 @include miniature-name;
32 }
33
34 .video-miniature-meta {
35 width: calc(100% + #{$more-button-width});
36 overflow: hidden;
37 }
38
39 .video-miniature-created-at-views {
40 display: block;
41 font-size: 13px;
42 }
43
44 .video-miniature-account,
45 .video-miniature-channel {
46 @include disable-default-a-behaviour;
47 @include ellipsis;
48
49 display: block;
50 font-size: 13px;
51 color: pvar(--greyForegroundColor);
52
53 &:hover {
54 color: $grey-foreground-hover-color;
55 }
56 }
57
58 .video-info-privacy,
59 .video-info-blocked .blocked-label,
60 .video-info-nsfw {
61 font-weight: $font-semibold;
62 }
63
64 .video-info-blocked {
65 color: red;
66
67 .blocked-reason::before {
68 content: ' - ';
69 }
70 }
71
72 .video-info-nsfw {
73 color: red;
74 }
75 }
76
77 .video-actions {
78 margin-top: 3px;
79 width: $more-button-width;
80 height: 30px;
81
82 ::ng-deep .dropdown-root:not(.show) {
83 opacity: 0;
84 }
85
86 ::ng-deep .playlist-dropdown.show + my-action-dropdown .dropdown-root {
87 opacity: 1;
88 }
89
90 ::ng-deep .more-icon {
91 opacity: .6;
92
93 &:hover {
94 opacity: 1;
95 }
96 }
97 }
98
99 @media screen and (max-width: $small-view) {
100 .video-miniature-information {
101 margin: 0 10px;
102 }
103
104 .video-actions {
105 margin: 0;
106 top: -3px;
107
108 ::ng-deep .dropdown-root {
109 opacity: 1 !important;
110 }
111 }
112 }
113 }
114
115 &:hover ::ng-deep .video-thumbnail .video-thumbnail-actions-overlay,
116 &:hover .video-bottom .video-actions ::ng-deep .dropdown-root {
117 opacity: 1;
118 }
119
120 &.fit-width {
121 width: 100%;
122 height: unset;
123 padding-bottom: $video-miniature-margin-bottom / 2;
124
125 .video-bottom {
126 width: 100% !important;
127
128 .video-miniature-information {
129 width: calc(100% - #{$more-button-width}) !important;
130 }
131 }
132
133 my-video-thumbnail {
134 @include large-screen-ratio($selector: '::ng-deep .video-thumbnail');
135 }
136 }
137
138 &.display-as-row {
139 flex-direction: row;
140 padding-bottom: 0;
141 height: auto;
142 display: flex;
143 flex-grow: 1;
144
145 my-video-thumbnail {
146 margin-right: 10px;
147 }
148
149 .video-bottom {
150 .video-miniature-information {
151 @media screen and (min-width: $small-view) {
152 width: auto;
153 min-width: 500px;
154 }
155
156 .video-miniature-name {
157 @include ellipsis-multiline(1.3em, 2);
158
159 margin-top: 2px;
160 margin-bottom: 5px;
161 }
162
163 .video-miniature-created-at-views,
164 .video-miniature-account,
165 .video-miniature-channel {
166 font-size: 95%;
167 width: fit-content;
168 }
169
170 .video-info-privacy {
171 margin-top: 5px;
172 }
173
174 .video-info-blocked {
175 margin-top: 3px;
176 }
177 }
178
179 .video-actions {
180 margin: 0;
181 top: -3px;
182 }
183 }
184
185 @media screen and (max-width: $small-view) {
186 flex-direction: column;
187 height: auto;
188
189 my-video-thumbnail {
190 margin-right: 0;
191 }
192
193 .video-miniature-information {
194 min-width: initial;
195 }
196 }
197 }
198}