loading up the forgejo repo on tangled to test page performance
at forgejo 2.2 kB view raw
1@keyframes isloadingspin { 2 0% { transform: translate(-50%, -50%) rotate(0deg); } 3 100% { transform: translate(-50%, -50%) rotate(360deg); } 4} 5 6.is-loading { 7 pointer-events: none !important; 8 position: relative !important; 9} 10 11.is-loading > * { 12 opacity: 0.3; 13} 14 15.btn.is-loading > *, 16.button.is-loading > * { 17 opacity: 0; 18} 19 20.is-loading::after { 21 content: ""; 22 position: absolute; 23 display: block; 24 left: 50%; 25 top: 50%; 26 height: min(4em, 66.6%); 27 width: fit-content; /* compat: safari - https://bugs.webkit.org/show_bug.cgi?id=267625 */ 28 aspect-ratio: 1; 29 transform: translate(-50%, -50%); 30 animation: isloadingspin 1000ms infinite linear; 31 border-width: 4px; 32 border-style: solid; 33 border-color: var(--color-secondary) var(--color-secondary) var(--color-secondary-dark-8) var(--color-secondary-dark-8); 34 border-radius: var(--border-radius-full); 35} 36 37.is-loading.loading-icon-2px::after { 38 border-width: 2px; 39} 40 41.is-loading.loading-icon-3px::after { 42 border-width: 3px; 43} 44 45/* for single form button, the loading state should be on the button, but not go semi-transparent, just replace the text on the button with the loader. */ 46form.single-button-form.is-loading > * { 47 opacity: 1; 48} 49 50form.single-button-form.is-loading .button { 51 color: transparent; 52} 53 54.markup pre.is-loading, 55.editor-loading.is-loading, 56.pdf-content.is-loading { 57 height: var(--height-loading); 58} 59 60.markup .is-loading > * { 61 visibility: hidden; 62} 63 64.markup .is-loading { 65 color: transparent; 66 background: transparent; 67} 68 69/* TODO: not needed, use "is-loading loading-icon-2px" instead */ 70code.language-math.is-loading::after { 71 padding: 0; 72 border-width: 2px; 73 width: 1.25rem; 74 height: 1.25rem; 75} 76 77@keyframes fadein { 78 0% { 79 opacity: 0; 80 } 81 100% { 82 opacity: 1; 83 } 84} 85 86@keyframes fadeout { 87 0% { 88 opacity: 1; 89 } 90 100% { 91 opacity: 0; 92 } 93} 94 95@keyframes pulse { 96 0% { 97 transform: scale(1); 98 } 99 50% { 100 transform: scale(1.8); 101 } 102 100% { 103 transform: scale(1); 104 } 105} 106 107.pulse { 108 animation: pulse 2s linear; 109} 110 111.ui.modal, 112.ui.dimmer.transition { 113 animation-name: fadein; 114 animation-duration: 100ms; 115 animation-timing-function: ease-in-out; 116}