/*** Common-styled progressmeter ***/ .downloadProgress { height: 8px; border-radius: 1px; margin: 4px 0 0; margin-inline-end: 12px; /* for overriding rules in progressmeter.css */ -moz-appearance: none; border-style: none; background-color: transparent; min-width: initial; min-height: initial; } .downloadProgress[mode="undetermined"] { /* for overriding rules on global.css in Linux. */ -moz-binding: url("chrome://global/content/bindings/progressmeter.xml#progressmeter"); } .downloadProgress > .progress-bar { background-color: #008484; /* for overriding rules in progressmeter.css */ -moz-appearance: none; } .downloadProgress[paused="true"] > .progress-bar { background-color: #A09090; } .downloadProgress[mode="undetermined"] > .progress-bar { /* Make a white reflecting animation. Create a gradient with 2 identical pattern, and enlarge the size to 200%. This allows us to animate background-position with percentage. */ background-image: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.5) 25%, transparent 50%, rgba(255,255,255,0.5) 75%, transparent 100%); background-blend-mode: lighten; background-size: 200% 100%; animation: downloadProgressSlideX 1.5s linear infinite; } .downloadProgress > .progress-remainder { border: solid #9C9CFF; border-block-start-width: 1px; border-block-end-width: 1px; border-inline-start-width: 0; border-inline-end-width: 1px; background-color: #000000; } .downloadProgress[value="0"] > .progress-remainder { border-width: 1px; } .downloadProgress > .progress-remainder[mode="undetermined"] { border: none; } @keyframes downloadProgressSlideX { 0% { background-position: 0 0; } 100% { background-position: -100% 0; } }