aboutsummaryrefslogtreecommitdiffstats
path: root/web_src/less
diff options
context:
space:
mode:
authorsilverwind <me@silverwind.io>2021-11-16 09:16:05 +0100
committerGitHub <noreply@github.com>2021-11-16 16:16:05 +0800
commit23bd7b1211a80aa3b0dcb60ec4a1c0089ff28dd4 (patch)
tree38fafd772b6341daa87cb256ee10dfdcf5a87a48 /web_src/less
parentd789670894d09d7db96f4cd2dc3d57d2424eb753 (diff)
downloadgitea-23bd7b1211a80aa3b0dcb60ec4a1c0089ff28dd4.tar.gz
gitea-23bd7b1211a80aa3b0dcb60ec4a1c0089ff28dd4.zip
Add copy button to markdown code blocks (#17638)
* Add copy button to markdown code blocks Done mostly in JS because I think it's better not to try getting buttons past the markup sanitizer. * add svg module tests * fix sanitizer regexp * remove outdated comment * vertically center button in issue comments as well * add comment to css * fix undefined on view file line copy * combine animation less files * Update modules/markup/markdown/markdown.go Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> * add test for different sizes * add cloneNode and add tests for it * use deep clone * remove useless optional chaining * remove the svg node cache * unify clipboard copy string and i18n * remove unused var * remove unused localization * minor css tweaks to the button * comment tweak * remove useless attribute Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Diffstat (limited to 'web_src/less')
-rw-r--r--web_src/less/animations.less (renamed from web_src/less/features/animations.less)18
-rw-r--r--web_src/less/index.less3
-rw-r--r--web_src/less/markup/codecopy.less32
3 files changed, 52 insertions, 1 deletions
diff --git a/web_src/less/features/animations.less b/web_src/less/animations.less
index f3491155cd..cdb10236fb 100644
--- a/web_src/less/features/animations.less
+++ b/web_src/less/animations.less
@@ -32,3 +32,21 @@
.editor-loading.is-loading {
height: 12rem;
}
+
+@keyframes fadein {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes fadeout {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
diff --git a/web_src/less/index.less b/web_src/less/index.less
index d96fe3df82..0aa4a2f8f8 100644
--- a/web_src/less/index.less
+++ b/web_src/less/index.less
@@ -1,8 +1,8 @@
@import "font-awesome/css/font-awesome.css";
@import "./variables.less";
+@import "./animations.less";
@import "./shared/issuelist.less";
-@import "./features/animations.less";
@import "./features/dropzone.less";
@import "./features/gitgraph.less";
@import "./features/heatmap.less";
@@ -11,6 +11,7 @@
@import "./features/projects.less";
@import "./markup/content.less";
@import "./markup/mermaid.less";
+@import "./markup/codecopy.less";
@import "./code/linebutton.less";
@import "./chroma/base.less";
diff --git a/web_src/less/markup/codecopy.less b/web_src/less/markup/codecopy.less
new file mode 100644
index 0000000000..b2ce77aaa1
--- /dev/null
+++ b/web_src/less/markup/codecopy.less
@@ -0,0 +1,32 @@
+.markup .code-block {
+ position: relative;
+}
+
+.markup .code-copy {
+ position: absolute;
+ top: 8px;
+ right: 6px;
+ padding: 9px;
+ visibility: hidden;
+ animation: fadeout .2s both;
+}
+
+/* adjustments for comment content having only 14px font size */
+.repository.view.issue .comment-list .comment .markup .code-copy {
+ right: 5px;
+ padding: 8px;
+}
+
+/* can not use regular transparent button colors for hover and active states because
+ we need opaque colors here as code can appear behind the button */
+.markup .code-copy:hover {
+ background: var(--color-secondary) !important;
+}
+.markup .code-copy:active {
+ background: var(--color-secondary-dark-1) !important;
+}
+
+.markup .code-block:hover .code-copy {
+ visibility: visible;
+ animation: fadein .2s both;
+}