From 61adc17752ac304c7afcf48a3e4f31949e0d02bf Mon Sep 17 00:00:00 2001 From: daudix Date: Thu, 18 Jul 2024 02:38:37 +0300 Subject: [PATCH] Shine the code block header on copy --- sass/_containers.scss | 103 +++++++++++++++++++++++------------------- 1 file changed, 57 insertions(+), 46 deletions(-) diff --git a/sass/_containers.scss b/sass/_containers.scss index 2b6f12c..bff7963 100644 --- a/sass/_containers.scss +++ b/sass/_containers.scss @@ -10,10 +10,21 @@ .header { border-radius: var(--rounded-corner) var(--rounded-corner) 0 0; - background-color: var(--fg-muted-1); + background-image: linear-gradient(to right, var(--fg-muted-1) 50%, var(--primary-color-alpha) 75%, var(--fg-muted-1) 100%); + background-size: 200%; padding: 0.25rem; height: 2.5rem; + &:has(button.active) { + animation: active-fill var(--transition-long); + + @keyframes active-fill { + to { + background-position-x: -200%; + } + } + } + span { vertical-align: middle; margin-inline-start: 0.75rem; @@ -21,6 +32,51 @@ font-weight: bold; line-height: normal; } + + button { + float: inline-end; + transition: var(--transition); + cursor: pointer; + border: none; + border-radius: var(--rounded-corner-small); + background-color: transparent; + padding: 0.5rem; + line-height: 0; + + &:hover { + box-shadow: var(--edge-highlight); + background-color: var(--fg-muted-1); + + i { + background-color: var(--fg-muted-5); + } + } + + &:active { + transform: scale(var(--active)); + } + + &.active { + background-color: var(--primary-color-alpha); + + .icon { + $icon: 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"); + -webkit-mask-image: $icon; + mask-image: $icon; + background-color: var(--primary-color); + } + } + + .icon { + $icon: 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"); + -webkit-mask-image: $icon; + mask-image: $icon; + transition: var(--transition); + background-color: var(--fg-muted-4); + width: 1rem; + height: 1rem; + } + } } pre { @@ -28,49 +84,4 @@ box-shadow: none; border-radius: 0 0 var(--rounded-corner) var(--rounded-corner); } - - button { - float: inline-end; - transition: var(--transition); - cursor: pointer; - border: none; - border-radius: var(--rounded-corner-small); - background-color: transparent; - padding: 0.5rem; - line-height: 0; - - &:hover { - box-shadow: var(--edge-highlight); - background-color: var(--fg-muted-1); - - i { - background-color: var(--fg-muted-5); - } - } - - &:active { - transform: scale(var(--active)); - } - - &.active { - background-color: var(--primary-color-alpha); - - .icon { - $icon: 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"); - -webkit-mask-image: $icon; - mask-image: $icon; - background-color: var(--primary-color); - } - } - - .icon { - $icon: 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"); - -webkit-mask-image: $icon; - mask-image: $icon; - transition: var(--transition); - background-color: var(--fg-muted-4); - width: 1rem; - height: 1rem; - } - } }