WeatherForecast.scss (7254B)
1 .weather-forecast-widget { 2 @include newtab-card-style; 3 4 grid-column: span 1; 5 width: var(--newtab-card-grid-layout-width); 6 7 // Match the new card width if sections are enabled 8 .has-sections-grid & { 9 width: var(--newtab-card-width-medium); 10 } 11 12 border-radius: var(--border-radius-large); 13 padding: var(--space-medium); 14 height: var(--newtab-card-height); 15 display: flex; 16 flex-direction: column; 17 box-shadow: var(--box-shadow-card); 18 19 --weather-sunny-background-color: light-dark(var(--color-yellow-0), var(--color-yellow-90)); 20 --weather-cloudy-background-color: light-dark(var(--color-gray-20), var(--color-gray-80)); 21 --weather-rainy-background-color: light-dark(var(--color-blue-0), var(--color-blue-90)); 22 --weather-snowy-background-color: light-dark(var(--color-violet-0), var(--color-violet-90)); 23 --weather-hot-background-color: light-dark(var(--color-orange-0), var(--color-orange-90)); 24 25 .city-wrapper { 26 display: flex; 27 align-items: center; 28 29 h3 { 30 margin-block: 0; 31 font-weight: var(--font-weight-semibold); 32 } 33 } 34 35 .current-weather-wrapper { 36 display: flex; 37 align-items: center; 38 margin-block: var(--space-small); 39 padding: var(--space-medium); 40 border-radius: var(--border-radius-medium); 41 width: 100%; 42 43 // Setting background color based on temperature icon 44 &:has(.iconId1, .iconId2, .iconId3, .iconId4, .iconId5, .iconId6, .iconId33) { 45 background-color: var(--weather-sunny-background-color); 46 } 47 48 &:has(.iconId7, .iconId8, .iconI11, .iconId32, .iconId34, .iconId35, .iconId36, .iconId37, .iconId38) { 49 background-color: var(--weather-cloudy-background-color); 50 } 51 52 &:has(.iconId12, .iconId13, .iconId14, .iconId15, .iconId16, .iconId17, .iconId18, .iconId39, .iconId40, .iconId41, .iconId42) { 53 background-color: var(--weather-rainy-background-color); 54 } 55 56 &:has(.iconId19, .iconId20, .iconId21, .iconId22, .iconId23, .iconId24, .iconId25, .iconId26, .iconId29, .iconId31, .iconId43, .iconId44 ) { 57 background-color: var(--weather-snowy-background-color); 58 } 59 60 &:has(.iconId30) { 61 background-color: var(--weather-hot-background-color); 62 } 63 } 64 65 // Weather Symbol Icons 66 .weather-icon-column { 67 width: var(--size-item-large); 68 height: var(--size-item-large); 69 display: flex; 70 align-items: center; 71 justify-content: center; 72 align-self: center; 73 } 74 75 .weather-icon { 76 width: var(--size-item-large); 77 height: auto; 78 vertical-align: middle; 79 80 @media (prefers-contrast) { 81 -moz-context-properties: fill, stroke; 82 fill: currentColor; 83 stroke: currentColor; 84 } 85 86 &.iconId1 { 87 content: url('chrome://browser/skin/weather/sunny.svg'); 88 } 89 90 &.iconId2 { 91 content: url('chrome://browser/skin/weather/mostly-sunny.svg'); 92 } 93 94 &:is(.iconId3, .iconId4, .iconId6) { 95 content: url('chrome://browser/skin/weather/partly-sunny.svg'); 96 } 97 98 &.iconId5 { 99 content: url('chrome://browser/skin/weather/hazy-sunshine.svg'); 100 } 101 102 &:is(.iconId7, .iconId8) { 103 content: url('chrome://browser/skin/weather/cloudy.svg'); 104 } 105 106 &.iconId11 { 107 content: url('chrome://browser/skin/weather/fog.svg'); 108 } 109 110 &.iconId12 { 111 content: url('chrome://browser/skin/weather/showers.svg'); 112 } 113 114 &:is(.iconId13, .iconId14) { 115 content: url('chrome://browser/skin/weather/mostly-cloudy-with-showers.svg'); 116 } 117 118 &.iconId15 { 119 content: url('chrome://browser/skin/weather/thunderstorms.svg'); 120 } 121 122 &:is(.iconId16, .iconId17) { 123 content: url('chrome://browser/skin/weather/mostly-cloudy-with-thunderstorms.svg'); 124 } 125 126 &.iconId18 { 127 content: url('chrome://browser/skin/weather/rain.svg'); 128 } 129 130 &:is(.iconId19, .iconId20, .iconId25) { 131 content: url('chrome://browser/skin/weather/flurries.svg'); 132 } 133 134 &.iconId21 { 135 content: url('chrome://browser/skin/weather/partly-sunny-with-flurries.svg'); 136 } 137 138 &:is(.iconId22, .iconId23) { 139 content: url('chrome://browser/skin/weather/snow.svg'); 140 } 141 142 &:is(.iconId24, .iconId31) { 143 content: url('chrome://browser/skin/weather/ice.svg'); 144 } 145 146 &:is(.iconId26, .iconId29) { 147 content: url('chrome://browser/skin/weather/freezing-rain.svg'); 148 } 149 150 &.iconId30 { 151 content: url('chrome://browser/skin/weather/hot.svg'); 152 } 153 154 &.iconId32 { 155 content: url('chrome://browser/skin/weather/windy.svg'); 156 } 157 158 &.iconId33 { 159 content: url('chrome://browser/skin/weather/night-clear.svg'); 160 } 161 162 &:is(.iconId34, .iconId35, .iconId36, .iconId38) { 163 content: url('chrome://browser/skin/weather/night-mostly-clear.svg'); 164 } 165 166 &.iconId37 { 167 content: url('chrome://browser/skin/weather/night-hazy-moonlight.svg'); 168 } 169 170 &:is(.iconId39, .iconId40) { 171 content: url('chrome://browser/skin/weather/night-partly-cloudy-with-showers.svg'); 172 height: var(--size-item-large); 173 } 174 175 &:is(.iconId41, .iconId42) { 176 content: url('chrome://browser/skin/weather/night-partly-cloudy-with-thunderstorms.svg'); 177 } 178 179 &:is(.iconId43, .iconId44) { 180 content: url('chrome://browser/skin/weather/night-mostly-cloudy-with-flurries.svg'); 181 } 182 } 183 } 184 185 .weather-info-column { 186 display: flex; 187 flex-direction: column; 188 margin-inline: var(--space-medium); 189 190 .temperature-unit { 191 text-transform: uppercase; 192 font-weight: var(--font-weight-semibold); 193 } 194 195 .temperature-description { 196 font-size: var(--font-size-small); 197 color: var(--text-color-deemphasized); 198 } 199 } 200 201 .high-low-column { 202 display: flex; 203 align-items: flex-end; 204 align-self: flex-start; 205 margin-inline-start: auto; 206 color: var(--text-color-deemphasized); 207 208 .high-temperature { 209 margin-inline-end: var(--space-small); 210 } 211 212 .arrow-icon { 213 display: inline-block; 214 width: var(--size-item-xsmall); 215 height: var(--size-item-xsmall); 216 background-size: contain; 217 background-repeat: no-repeat; 218 background-position: center; 219 -moz-context-properties: fill, fill-opacity; 220 fill: currentColor; 221 222 &.arrow-up { 223 background-image: url('chrome://global/skin/icons/shaft-arrow-up.svg'); 224 } 225 226 &.arrow-down { 227 background-image: url('chrome://global/skin/icons/shaft-arrow-down.svg'); 228 } 229 } 230 } 231 232 hr { 233 border: 0; 234 border-block-start: 1px solid var(--border-color); 235 width: 100%; 236 } 237 238 .forecast-row { 239 .today-forecast { 240 margin-block-start: 0; 241 font-weight: var(--font-weight-semibold); 242 } 243 244 .forecast-row-items { 245 list-style: none; 246 display: flex; 247 justify-content: center; 248 padding: 0; 249 margin-block-start: var(--space-small); 250 251 li { 252 background: var(--newtab-background-color); 253 border-radius: var(--border-radius-small); 254 display: flex; 255 flex-direction: column; 256 align-items: center; 257 margin-inline: var(--space-xsmall); 258 padding-inline: var(--space-small); 259 padding-block: var(--space-xsmall); 260 font-size: var(--font-size-small); 261 } 262 } 263 } 264 265 .weather-forecast-footer { 266 display: flex; 267 align-items: center; 268 justify-content: space-between; 269 margin-block-start: auto; 270 271 a { 272 font-size: var(--font-size-small); 273 } 274 275 span { 276 font-size: var(--font-size-xsmall); 277 } 278 }