c04a0f88c4909366bf79c29fedf97a50648336a6
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / style / ui / userProfile.scss
1 .userProfileUser {
2 .contentHeaderIcon {
3 position: relative;
4
5 a {
6 display: block;
7 }
8 }
9
10 .contentHeaderIcon a {
11 display: block;
12 }
13
14 .contentHeaderDescription {
15 margin-top: 20px;
16 }
17
18 @include screen-sm-down {
19 display: flex;
20 flex-wrap: wrap;
21
22 .contentHeaderNavigation {
23 flex: 0 0 100%;
24 }
25 }
26
27 @include screen-sm {
28 .contentHeaderIcon {
29 display: block;
30 flex: 0 0 96px;
31 margin-right: 15px;
32
33 img {
34 width: 96px !important;
35 height: 96px !important;
36 }
37 }
38
39 .contentHeaderTitle {
40 /* The `flex` shorthand fails in IE11 if `calc()` is used. */
41 flex-grow: 0;
42 flex-shrink: 0;
43 flex-basis: calc(100% - 111px);
44 max-width: calc(100% - 11px);
45 }
46 }
47
48 @include screen-xs {
49 .contentHeaderIcon {
50 display: block;
51 flex: 0 0 48px;
52 margin-right: 10px;
53
54 img {
55 width: 48px !important;
56 height: 48px !important;
57 }
58 }
59
60 .contentHeaderTitle {
61 /* The `flex` shorthand fails in IE11 if `calc()` is used. */
62 flex-grow: 0;
63 flex-shrink: 0;
64 flex-basis: calc(100% - 58px);
65 }
66 }
67
68 @include screen-md-up {
69 .contentHeaderIcon {
70 flex: 0 0 128px;
71 margin-right: 20px;
72 }
73 }
74 }
75
76 /* user profile cover photo */
77 .userProfileUserWithCoverPhoto {
78 margin-top: 0;
79 padding-top: 165px;
80 position: relative;
81
82 .userProfileCoverPhoto {
83 background: no-repeat center;
84 background-size: cover;
85 border-radius: 3px;
86 height: 200px;
87 left: 0;
88 position: absolute;
89 right: 0;
90 top: 0;
91
92 &::after {
93 background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 70%, rgba(0, 0, 0, 0.5) 100%);
94 border-bottom-left-radius: 3px;
95 border-bottom-right-radius: 3px;
96 bottom: 0;
97 content: "";
98 display: block;
99 left: 0;
100 pointer-events: none;
101 position: absolute;
102 right: 0;
103 top: 0;
104 }
105
106 .userProfileManageCoverPhoto {
107 position: absolute;
108 right: 10px;
109 top: 10px;
110 }
111 }
112
113 .contentHeaderTitle {
114 margin-top: 0;
115 /* avoid being covered by the photo */
116 z-index: 10;
117 }
118
119 .userProfileUsername {
120 color: #fff;
121 text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
122 }
123
124 @include screen-md-up {
125 .contentHeaderIcon {
126 flex: 0 0 138px;
127 margin-top: -29px; /* 35px photo overlap - (128px height / 2) */
128 padding-left: 10px;
129 }
130
131 .contentHeaderDescription {
132 margin-top: 10px !important;
133 }
134
135 .contentHeaderNavigation {
136 padding-top: 45px;
137 }
138 }
139
140 @include screen-sm-up {
141 .contentHeaderIcon .badgeOnline {
142 left: 10px !important;
143 }
144
145 .userProfileUsername + .badge {
146 margin-left: 5px;
147 }
148 }
149
150 @include screen-sm {
151 padding-top: 170px;
152
153 .contentHeaderIcon {
154 margin-top: -18px; /* 30px photo overlap - (96px height / 2) */
155 padding-left: 5px;
156 }
157
158 .contentHeaderDescription {
159 margin-top: 10px !important;
160 }
161 }
162
163 @include screen-xs {
164 padding-top: 120px;
165
166 .userProfileCoverPhoto {
167 height: 150px;
168 }
169
170 .contentHeaderIcon {
171 margin-top: 6px; /* 30px photo overlap - (48px height / 2) */
172 padding-left: 5px;
173 }
174
175 .contentTitle {
176 margin-bottom: 35px;
177 position: relative;
178 }
179
180 .userProfileUsername {
181 display: block;
182 }
183
184 .userProfileUsername + .badge {
185 margin-left: 0;
186 position: absolute;
187 top: 35px !important;
188 }
189
190 .userProfileUsername + .userRankImage {
191 position: absolute;
192 top: 32px;
193 }
194
195 .userProfileUsername + .badge + .userRankImage {
196 position: relative;
197
198 > img {
199 transform: translateY(32px);
200 }
201 }
202
203 .contentHeaderDescription {
204 margin-left: -58px;
205 }
206 }
207 }
208
209 .userTitleBadge {
210 max-width: 154px;
211 overflow: hidden;
212 text-overflow: ellipsis;
213 }
214
215 .userAvatarImage {
216 background-color: #fff;
217 border-radius: 50%;
218 }
219
220 html[data-color-scheme="dark"] .userAvatarImage {
221 background-color: #333;
222 }
223
224 .userAvatarList {
225 display: flex;
226 flex-wrap: wrap;
227 margin-bottom: -10px;
228
229 > li {
230 flex: 0 0 48px;
231 margin-bottom: 10px;
232 text-align: center;
233
234 &:not(:last-child) {
235 margin-right: -12px;
236 }
237
238 > a {
239 display: block;
240
241 > img {
242 border: 2px solid #fff;
243 }
244 }
245 }
246
247 &.small {
248 > li {
249 flex: 0 0 24px;
250
251 &:not(:last-child) {
252 margin-right: -6px;
253 }
254
255 > a {
256 > img {
257 border: 1px solid #fff;
258 }
259 }
260 }
261 }
262 }
263
264 html[data-color-scheme="dark"] .userAvatarList > li > a > img {
265 border-color: rgb(255 255 255 / 12%);
266 }
267
268 .userList {
269 .box48 {
270 align-items: center;
271 }
272 }
273
274 /* user notifications */
275 .userNotificationItemList > .notificationItem {
276 &.notificationUnconfirmed {
277 align-items: center;
278 display: flex;
279
280 > .box32 {
281 flex: 1 1 auto;
282 position: relative;
283 }
284
285 > .notificationItemMarkAsConfirmed {
286 flex: 0 0 auto;
287 }
288 }
289 }
290
291 .userNotificationItemList .userNotificationItemLink {
292 color: inherit;
293
294 &::before {
295 bottom: 0;
296 content: "";
297 left: 0;
298 position: absolute;
299 right: 0;
300 top: 0;
301 }
302 }
303
304 .userProfileUser .contentHeaderIcon .badgeOnline {
305 left: 0;
306 pointer-events: none;
307 position: absolute;
308
309 @include screen-md-up {
310 bottom: 0;
311 }
312
313 @include screen-sm-down {
314 color: transparent;
315 padding: 0;
316 top: 0;
317 width: 0;
318
319 &::before {
320 background-color: inherit;
321 border: 1px solid rgba(255, 255, 255, 1);
322 border-radius: 50%;
323 content: "";
324 height: 16px;
325 left: 34px; /* 48px (avatar) - 16px (width) - 2px (border-left + border-right) */
326 position: absolute;
327 width: 16px;
328 }
329 }
330 }
331
332 .userOnlineIndicator {
333 background-color: rgba(0, 153, 0, 1);
334 border-radius: 50%;
335 display: inline-block;
336 height: 8px;
337 width: 8px;
338 }