#user-heatmap { width: 100%; font-size: 9px; position: relative; } .activity-heatmap-container { container-type: inline-size; } @container (width > 0) { #user-heatmap { /* Set element to fixed height so that it does not resize after load. The calculation is complex because the element does not scale with a fixed aspect ratio. */ height: calc((100cqw / 5) - (100cqw / 25) + 20px); } } /* Fallback height adjustment above for browsers that don't support container queries */ @supports not (container-type: inline-size) { /* Before the Vue component is mounted, show a loading indicator with dummy size */ /* The ratio is guesswork for legacy browsers, new browsers use the "@container" approach above */ #user-heatmap.is-loading { aspect-ratio: 5.4823972051; /* the size is about 816 x 148.84 */ } .user.profile #user-heatmap.is-loading { aspect-ratio: 5.6290608387; /* the size is about 953 x 169.3 */ } } #user-heatmap text { fill: currentcolor !important; } #user-heatmap .heatmap-footer { display: flex; font-size: 11px; justify-content: space-between; } /* "Less [colors] More" scale */ #user-heatmap .heatmap-legend { display: flex; align-items: center; justify-content: right; } #user-heatmap .heatmap-legend-svg { margin-right: -12px; } #user-heatmap .heatmap-legend > div:first-child, #user-heatmap .heatmap-legend > div:last-child { display: inline-block; padding: 0 5px; } #user-heatmap .heatmap-day:hover { outline: 1.5px solid var(--color-text); }