@@ -267,6 +267,7 @@ body.mobile.no-tooltips .toolRibbon .tool {
267
267
max-width : 460px ;
268
268
min-width : var (--popup-firewall-min-width );
269
269
padding : 0 ;
270
+ position : relative;
270
271
overflow-y : auto;
271
272
}
272
273
: root .desktop # firewall {
@@ -275,18 +276,80 @@ body.mobile.no-tooltips .toolRibbon .tool {
275
276
: root .desktop body .vMin # firewall {
276
277
max-height : 100vh ;
277
278
}
279
+ # firewall > * {
280
+ direction : ltr;
281
+ }
282
+ # firewall > section {
283
+ align-items : flex-start;
284
+ display : flex;
285
+ left : 0 ;
286
+ position : absolute;
287
+ z-index : 100 ;
288
+ }
289
+ # firewall > section .fa-icon {
290
+ color : var (--ink-4 );
291
+ fill : var (--ink-4 );
292
+ font-size : 150% ;
293
+ padding : var (--popup-gap-thin );
294
+ }
295
+ # firewall > section : hover .fa-icon {
296
+ color : var (--ink-1 );
297
+ fill : var (--ink-1 );
298
+ }
299
+ # firewall .showBlocked > section .fa-icon ,
300
+ # firewall .showAllowed > section .fa-icon ,
301
+ # firewall .hideBlocked > section .fa-icon ,
302
+ # firewall .hideAllowed > section .fa-icon ,
303
+ # firewall .show3pScript > section .fa-icon ,
304
+ # firewall .show3pFrame > section .fa-icon ,
305
+ # firewall .hide3pScript > section .fa-icon ,
306
+ # firewall .hide3pFrame > section .fa-icon {
307
+ color : rgb (var (--primary-70 ));
308
+ fill : rgb (var (--primary-70 ));
309
+ }
310
+ # firewall > section .filterExpressions {
311
+ background-color : var (--surface-0 );
312
+ border : 1px solid var (--border-4 );
313
+ display : none;
314
+ }
315
+ # firewall > section : hover .filterExpressions {
316
+ display : flex;
317
+ flex-direction : column;
318
+ }
319
+ # firewall > section .filterExpressions div {
320
+ border-bottom : 1px dotted # ddd ;
321
+ padding : 0.25em ;
322
+ }
323
+ # firewall > section .filterExpressions span {
324
+ cursor : default;
325
+ display : inline-flex;
326
+ margin : 0 0.25em 0 0 ;
327
+ padding : 0.5em ;
328
+ white-space : nowrap;
329
+ border : 1px solid var (--surface-0 );
330
+ }
331
+ # firewall > section .filterExpressions span : last-of-type {
332
+ margin : 0 ;
333
+ }
334
+ : root : not (.mobile ) # firewall > section .filterExpressions span : not (.on ): hover {
335
+ background-color : rgb (var (--primary-70 ) / 15% );
336
+ border : 1px solid rgb (var (--primary-70 ));
337
+ }
338
+ # firewall > section .filterExpressions span .on {
339
+ background-color : rgb (var (--primary-70 ) / 40% );
340
+ border : 1px solid rgb (var (--primary-70 ));
341
+ }
278
342
# firewall > div {
279
343
border : 0 ;
280
- direction : ltr;
281
344
display : flex;
282
345
margin : 0 ;
283
346
margin-top : 1px ;
284
347
padding : 0 ;
285
348
}
286
- # firewall > div : first-child {
349
+ # firewall > div : first-of-type {
287
350
margin-top : 0 ;
288
351
}
289
- # firewall > div : first-child ~ div [data-des = "*" ] {
352
+ # firewall > div : first-of-type ~ div [data-des = "*" ] {
290
353
display : none;
291
354
}
292
355
# firewall : not (.expanded ) > div .isSubdomain : not (.expandException ): not (.isRootContext ),
@@ -302,12 +365,20 @@ body.mobile.no-tooltips .toolRibbon .tool {
302
365
padding : 0.4em 0 ;
303
366
position : relative;
304
367
}
305
- # firewall > div : first-of-type > span : first-of-type {
368
+ # firewall > div : first-of-type span [ data-i18n ] {
306
369
cursor : pointer;
307
370
flex-direction : unset;
371
+ flex-grow : 1 ;
372
+ }
373
+ # firewall > div : first-of-type span [data-i18n ]::before {
374
+ color : var (--ink-3 );
375
+ content : '+' ;
376
+ padding-right : 0.25em ;
377
+ }
378
+ # firewall .expanded > div : first-of-type span [data-i18n ]::before {
379
+ content : '\2012' ;
308
380
}
309
381
# firewall > div > span : first-of-type {
310
- align-items : flex-end;
311
382
flex-direction : column;
312
383
flex-grow : 1 ;
313
384
justify-content : flex-end;
@@ -320,36 +391,18 @@ body.mobile.no-tooltips .toolRibbon .tool {
320
391
# firewall > div [data-des = "*" ] > span : first-of-type {
321
392
flex-direction : row;
322
393
}
323
- # firewall > div [data-des = "*" ] > span : first-of-type > span .filter {
324
- flex-grow : 1 ;
325
- padding-inline-start : 2px ;
326
- -webkit-padding-start : 2px ;
327
- text-align : left;
328
- }
329
- # firewall : not (.has3pScript ) > [data-type = "3p-script" ] .filter ,
330
- # firewall : not (.has3pFrame ) > [data-type = "3p-frame" ] .filter {
331
- display : none;
332
- }
333
- # firewall > [data-des = "*" ] .filter ::after {
334
- content : '\22EF' ;
335
- }
336
- # firewall .show3pScript > [data-type = "3p-script" ] .filter ::after ,
337
- # firewall .show3pFrame > [data-type = "3p-frame" ] .filter ::after {
338
- content : '\2191' ;
339
- }
340
- # firewall .hide3pScript > [data-type = "3p-script" ] .filter ::after ,
341
- # firewall .hide3pFrame > [data-type = "3p-frame" ] .filter ::after {
342
- content : '\2193' ;
343
- }
344
- # firewall .show3pScript > div : not ([data-des = "*" ]): not (.hasScript ),
345
- # firewall .show3pScript > div : not ([data-des = "*" ]): not (.is3p ),
394
+ # firewall .show3pScript : not (.show3pFrame ) > div : not ([data-des = "*" ]).is3p : not (.hasScript ),
395
+ # firewall .show3pFrame : not (.show3pScript ) > div : not ([data-des = "*" ]).is3p : not (.hasFrame ),
396
+ # firewall .show3pScript .show3pFrame > div : not ([data-des = "*" ]).is3p : not (.hasScript ): not (.hasFrame ),
346
397
# firewall .hide3pScript > div : not ([data-des = "*" ]).is3p .hasScript ,
347
- # firewall .show3pFrame > div : not ([data-des = "*" ]): not (.hasFrame ),
348
- # firewall .show3pFrame > div : not ([data-des = "*" ]): not (.is3p ),
349
398
# firewall .hide3pFrame > div : not ([data-des = "*" ]).is3p .hasFrame ,
350
- # firewall .show3pScript .show3pFrame > div : not ([data-des = "*" ]).hasScript : not (.hasFrame ),
351
- # firewall .show3pScript .show3pFrame > div : not ([data-des = "*" ]).hasFrame : not (.hasScript ) {
352
- opacity : 0.5 ;
399
+ # firewall .showBlocked > div : not ([data-des = "*" ]).is3p : not (.totalBlocked ): not (.blocked ),
400
+ # firewall .showAllowed > div : not ([data-des = "*" ]).is3p : not (.totalAllowed ): not (.allowed ),
401
+ # firewall .hideBlocked > div : not ([data-des = "*" ]).is3p .totalBlocked ,
402
+ # firewall .hideBlocked > div : not ([data-des = "*" ]).is3p .blocked ,
403
+ # firewall .hideAllowed > div : not ([data-des = "*" ]).is3p .totalAllowed ,
404
+ # firewall .hideAllowed > div : not ([data-des = "*" ]).is3p .allowed {
405
+ display : none;
353
406
}
354
407
# firewall > div .isCname > span : first-of-type {
355
408
color : var (--popup-cell-cname-ink );
@@ -389,14 +442,6 @@ body.mobile.no-tooltips .toolRibbon .tool {
389
442
color : var (--ink-3 );
390
443
content : '\2026\A0' ;
391
444
}
392
- # firewall > div : first-of-type > span : first-of-type ::before {
393
- color : var (--ink-3 );
394
- content : '+' ;
395
- padding-right : 0.25em ;
396
- }
397
- # firewall .expanded > div : first-of-type > span : first-of-type ::before {
398
- content : '\2012' ;
399
- }
400
445
# firewall > div [data-des = "*" ] > span : nth-of-type (3 ),
401
446
# firewall > div .isSubdomain > span : nth-of-type (3 ),
402
447
# firewall > div .isSubdomain .isRootContext > span : nth-of-type (3 ),
@@ -453,7 +498,7 @@ body.advancedUser #firewall > div > span:first-of-type {
453
498
body .advancedUser # firewall > div > span : nth-of-type (2 ) {
454
499
display : inline-flex;
455
500
}
456
- body .advancedUser # firewall > div : first-child ~ div [data-des = "*" ] {
501
+ body .advancedUser # firewall > div : first-of-type ~ div [data-des = "*" ] {
457
502
display : flex;
458
503
}
459
504
body .advancedUser # firewall > div > span : first-of-type ~ span {
0 commit comments