_shadow.scss
ASCII text
1// Based on: 2// https://github.com/material-components/material-components-web/blob/master/packages/mdc-elevation/_elevation-theme.scss 3 4@use "sass:color"; 5@use "theme"; 6 7$_umbra-color: rgba(black, .2); 8$_penumbra-color: rgba(black, .14); 9$_ambient-color: rgba(black, .12); 10 11$z0: 120 0 0 0 $_umbra-color, 130 0 0 0 $_penumbra-color, 140 0 0 0 $_ambient-color; 15$z1: 160 2px 1px -1px $_umbra-color, 170 1px 1px 0 $_penumbra-color, 180 1px 3px 0 $_ambient-color; 19$z2: 200 3px 1px -2px $_umbra-color, 210 2px 2px 0 $_penumbra-color, 220 1px 5px 0 $_ambient-color; 23$z3: 240 3px 3px -2px $_umbra-color, 250 3px 4px 0 $_penumbra-color, 260 1px 8px 0 $_ambient-color; 27$z4: 280 2px 4px -1px $_umbra-color, 290 4px 5px 0 $_penumbra-color, 300 1px 10px 0 $_ambient-color; 31$z6: 320 3px 5px -1px $_umbra-color, 330 6px 10px 0 $_penumbra-color, 340 1px 18px 0 $_ambient-color; 35$z8: 360 5px 5px -3px $_umbra-color, 370 8px 10px 1px $_penumbra-color, 380 3px 14px 2px $_ambient-color; 39$z12: 400 7px 8px -4px $_umbra-color, 410 12px 17px 2px $_penumbra-color, 420 5px 22px 4px $_ambient-color; 43$z16: 440 8px 10px -5px $_umbra-color, 450 16px 24px 2px $_penumbra-color, 460 6px 30px 5px $_ambient-color; 47$z24: 480 11px 15px -7px $_umbra-color, 490 24px 38px 3px $_penumbra-color, 500 9px 46px 8px $_ambient-color; 51 52$text-shadow: 530 1px 1px $_umbra-color, 540 1px 2px $_penumbra-color, 550 1px 3px $_ambient-color; 56 57// workaround for selection-mode checkboxes 58$icon-shadow-z2: 590 1px 1px $_umbra-color, 600 2px 2px $_penumbra-color, 610 1px 5px $_ambient-color; 62$icon-shadow-z4: 630 2px 3px $_umbra-color, 640 4px 5px $_penumbra-color, 650 1px 10px $_ambient-color; 66 67// Note that GTK 3 does not support blur below 2px, 68// and its blur is huge compared to web rendering. 69// See: https://gitlab.gnome.org/GNOME/gtk/issues/511 70@if theme.$toolkit == "gtk3" { 71$z1: 720 2px 2px -2px color.adjust($_umbra-color, $alpha: .1), 730 1px 2px -1px color.adjust($_penumbra-color, $alpha: .1), 740 1px 2px -.6px color.adjust($_ambient-color, $alpha: .05); 75$z2: 760 3px 2px -3px color.adjust($_umbra-color, $alpha: .1), 770 2px 2px -1px color.adjust($_penumbra-color, $alpha: .1), 780 1px (5px * .6) 0 $_ambient-color; 79$z3: 800 3px 2px -2px $_umbra-color, 810 3px (4px * .6) 0 $_penumbra-color, 820 1px (8px * .6) 0 $_ambient-color; 83$z4: 840 2px (4px * .6) -1px $_umbra-color, 850 4px (5px * .6) 0 $_penumbra-color, 860 1px (10px * .6) 0 $_ambient-color; 87$z6: 880 3px (5px * .6) -1px $_umbra-color, 890 6px (10px * .6) 0 $_penumbra-color, 900 1px (18px * .6) 0 $_ambient-color; 91$z8: 920 5px (5px * .6) -3px $_umbra-color, 930 8px (10px * .6) 1px $_penumbra-color, 940 3px (14px * .6) 2px $_ambient-color; 95$z12: 960 7px (8px * .6) -4px $_umbra-color, 970 12px (17px * .6) 2px $_penumbra-color, 980 5px (22px * .6) 4px $_ambient-color; 99$z16: 1000 8px (10px * .6) -5px $_umbra-color, 1010 16px (24px * .6) 2px $_penumbra-color, 1020 6px (30px * .6) 5px $_ambient-color; 103$z24: 1040 11px (15px * .6) -7px $_umbra-color, 1050 24px (38px * .6) 3px $_penumbra-color, 1060 9px (46px * .6) 8px $_ambient-color; 107 108$text-shadow: 1090 1px 1px $_umbra-color, 1100 1px 2px $_penumbra-color, 1110 1px 3px $_ambient-color; 112 113$icon-shadow-z2: 1140 1px 1px $_umbra-color, 1150 2px 2px $_penumbra-color, 1160 1px (5px * .6) $_ambient-color; 117$icon-shadow-z4: 1180 2px 2px $_umbra-color, 1190 4px (5px * .6) $_penumbra-color, 1200 1px (10px * .6) $_ambient-color; 121} 122 123// Note that St does not support multiple box shadows. 124@if theme.$toolkit == "st" { 125// This should be none, but it's creating some issues with borders, so to 126// workaround it for now, use inset wich goes through a different code path. 127// see https://bugzilla.gnome.org/show_bug.cgi?id=752934 128$z0: 0 0 transparent; 129 130$z1: 0 1px 1px rgba(black, .36); 131$z2: 0 1px 2px rgba(black, .4); 132$z4: 0 2px 8px rgba(black, .44); 133$z8: 0 5px 16px rgba(black, .5); 134$z16: 0 8px 24px rgba(black, .68); // TODO 135} 136