the home site for me: also iteration 3 or 4 of my site
1i.icon { 2 display: inline-block; 3 mask-size: cover; 4 background-color: var(--accent-text); 5 width: 1rem; 6 height: 1rem; 7 font-style: normal; 8 font-variant: normal; 9 line-height: 0; 10 text-rendering: auto; 11} 12 13.pre-container { 14 --icon-copy: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' height='16' width='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 3c0-1.645 1.355-3 3-3h5c1.645 0 3 1.355 3 3 0 .55-.45 1-1 1s-1-.45-1-1c0-.57-.43-1-1-1H3c-.57 0-1 .43-1 1v5c0 .57.43 1 1 1 .55 0 1 .45 1 1s-.45 1-1 1c-1.645 0-3-1.355-3-3zm5 5c0-1.645 1.355-3 3-3h5c1.645 0 3 1.355 3 3v5c0 1.645-1.355 3-3 3H8c-1.645 0-3-1.355-3-3zm2 0v5c0 .57.43 1 1 1h5c.57 0 1-.43 1-1V8c0-.57-.43-1-1-1H8c-.57 0-1 .43-1 1m0 0'/%3E%3C/svg%3E"); 15 --icon-done: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M7.883 0q-.486.008-.965.074a7.98 7.98 0 0 0-4.602 2.293 8.01 8.01 0 0 0-1.23 9.664 8.015 8.015 0 0 0 9.02 3.684 8 8 0 0 0 5.89-7.75 1 1 0 1 0-2 .008 5.986 5.986 0 0 1-4.418 5.816 5.996 5.996 0 0 1-6.762-2.766 5.99 5.99 0 0 1 .922-7.25 5.99 5.99 0 0 1 7.239-.984 1 1 0 0 0 1.363-.371c.273-.48.11-1.09-.371-1.367A8 8 0 0 0 9.492.14 8 8 0 0 0 7.882 0m7.15 1.998-.1.002a1 1 0 0 0-.687.34L7.95 9.535 5.707 7.29A1 1 0 0 0 4 8a1 1 0 0 0 .293.707l3 3c.195.195.465.3.742.293.277-.012.535-.133.719-.344l7-8A1 1 0 0 0 16 2.934a1 1 0 0 0-.34-.688 1 1 0 0 0-.627-.248'/%3E%3C/svg%3E"); 16 17 border-radius: 0.75rem; 18 19 .header { 20 display: flex; 21 justify-content: space-between; 22 align-items: center; 23 border-radius: 0.2em 0.2em 0 0; 24 background-color: var(--accent); 25 background-size: 200%; 26 padding: 0.25rem; 27 height: 2.5rem; 28 29 span { 30 margin-inline-start: 0.75rem; 31 color: var(--purple-gray); 32 font-weight: bold; 33 line-height: 1; 34 } 35 36 button { 37 appearance: none; 38 transition: 200ms; 39 cursor: pointer; 40 border: none; 41 border-radius: 0.4rem; 42 background-color: transparent; 43 padding: 0.5rem; 44 color: var(--purple-gray); 45 line-height: 0; 46 47 &:hover { 48 background-color: color-mix( 49 in oklab, 50 var(--accent) 80%, 51 var(--purple-gray) 52 ); 53 } 54 55 &:focus { 56 background-color: color-mix( 57 in oklab, 58 var(--accent) 80%, 59 var(--purple-gray) 60 ); 61 } 62 63 &:active { 64 transform: scale(0.9); 65 } 66 67 &:disabled { 68 cursor: not-allowed; 69 70 &:active { 71 transform: none; 72 } 73 } 74 75 .icon { 76 -webkit-mask-image: var(--icon-copy); 77 mask-image: var(--icon-copy); 78 transition: 200ms; 79 80 :root[dir*="rtl"] & { 81 transform: scaleX(-1); 82 } 83 } 84 } 85 86 &.active { 87 button { 88 animation: active-copy 0.3s; 89 90 color: var(--purple-gray); 91 92 .icon { 93 -webkit-mask-image: var(--icon-done); 94 mask-image: var(--icon-done); 95 } 96 } 97 98 @keyframes active-copy { 99 50% { 100 transform: scale(0.9); 101 } 102 100% { 103 transform: none; 104 } 105 } 106 } 107 } 108 109 pre { 110 margin: 0; 111 box-shadow: none; 112 border-radius: 0 0 0.2em 0.2em; 113 } 114}