diff --git a/src/theme/book.js b/src/theme/book.js
index aa12e7eccf..18b8f3a4d9 100644
--- a/src/theme/book.js
+++ b/src/theme/book.js
@@ -225,7 +225,7 @@ function playground_text(playground, hidden = true) {
}
var clipButton = document.createElement('button');
- clipButton.className = 'fa fa-copy clip-button';
+ clipButton.className = 'clip-button';
clipButton.title = 'Copy to clipboard';
clipButton.setAttribute('aria-label', clipButton.title);
clipButton.innerHTML = '';
@@ -258,7 +258,7 @@ function playground_text(playground, hidden = true) {
if (window.playground_copyable) {
var copyCodeClipboardButton = document.createElement('button');
- copyCodeClipboardButton.className = 'fa fa-copy clip-button';
+ copyCodeClipboardButton.className = 'clip-button';
copyCodeClipboardButton.innerHTML = '';
copyCodeClipboardButton.title = 'Copy to clipboard';
copyCodeClipboardButton.setAttribute('aria-label', copyCodeClipboardButton.title);
@@ -597,12 +597,12 @@ function playground_text(playground, hidden = true) {
function hideTooltip(elem) {
elem.firstChild.innerText = "";
- elem.className = 'fa fa-copy clip-button';
+ elem.className = 'clip-button';
}
function showTooltip(elem, msg) {
elem.firstChild.innerText = msg;
- elem.className = 'fa fa-copy tooltipped';
+ elem.className = 'clip-button tooltipped';
}
var clipboardSnippets = new ClipboardJS('.clip-button', {
diff --git a/src/theme/css/chrome.css b/src/theme/css/chrome.css
index 83b7969bce..7a2b343222 100644
--- a/src/theme/css/chrome.css
+++ b/src/theme/css/chrome.css
@@ -250,8 +250,8 @@ pre > .buttons i {
pre > .buttons button {
cursor: inherit;
margin: 0px 5px;
- padding: 3px 5px;
- font-size: 14px;
+ padding: 4px 4px 3px 5px;
+ font-size: 23px;
border-style: solid;
border-width: 1px;
@@ -262,6 +262,27 @@ pre > .buttons button {
transition-property: color,border-color,background-color;
color: var(--icons);
}
+
+pre > .buttons button.clip-button {
+ padding: 2px 4px 0px 6px;
+}
+pre > .buttons button.clip-button::before {
+ /* clipboard image from octicons (https://github.com/primer/octicons/tree/v2.0.0) MIT license
+ */
+ content: url('data:image/svg+xml,');
+ filter: var(--copy-button-filter);
+}
+pre > .buttons button.clip-button:hover::before {
+ filter: var(--copy-button-filter-hover);
+}
+
@media (pointer: coarse) {
pre > .buttons button {
/* On mobile, make it easier to tap buttons. */
diff --git a/src/theme/css/variables.css b/src/theme/css/variables.css
index 0da55e8c9a..afa974eb8d 100644
--- a/src/theme/css/variables.css
+++ b/src/theme/css/variables.css
@@ -56,6 +56,11 @@
--search-mark-bg: #e3b171;
--color-scheme: dark;
+
+ /* Same as `--icons` */
+ --copy-button-filter: invert(45%) sepia(6%) saturate(621%) hue-rotate(198deg) brightness(99%) contrast(85%);
+ /* Same as `--sidebar-active` */
+ --copy-button-filter-hover: invert(68%) sepia(55%) saturate(531%) hue-rotate(341deg) brightness(104%) contrast(101%);
}
.coal {
@@ -100,6 +105,11 @@
--search-mark-bg: #355c7d;
--color-scheme: dark;
+
+ /* Same as `--icons` */
+ --copy-button-filter: invert(26%) sepia(8%) saturate(575%) hue-rotate(169deg) brightness(87%) contrast(82%);
+ /* Same as `--sidebar-active` */
+ --copy-button-filter-hover: invert(36%) sepia(70%) saturate(503%) hue-rotate(167deg) brightness(98%) contrast(89%);
}
.light {
@@ -144,6 +154,11 @@
--search-mark-bg: #a2cff5;
--color-scheme: light;
+
+ /* Same as `--icons` */
+ --copy-button-filter: invert(45.49%);
+ /* Same as `--sidebar-active` */
+ --copy-button-filter-hover: invert(14%) sepia(93%) saturate(4250%) hue-rotate(243deg) brightness(99%) contrast(130%);
}
.navy {
@@ -188,6 +203,11 @@
--search-mark-bg: #a2cff5;
--color-scheme: dark;
+
+ /* Same as `--icons` */
+ --copy-button-filter: invert(51%) sepia(10%) saturate(393%) hue-rotate(198deg) brightness(86%) contrast(87%);
+ /* Same as `--sidebar-active` */
+ --copy-button-filter-hover: invert(46%) sepia(20%) saturate(1537%) hue-rotate(156deg) brightness(85%) contrast(90%);
}
.rust {
@@ -231,7 +251,10 @@
--searchresults-li-bg: #dec2a2;
--search-mark-bg: #e69f67;
- --color-scheme: light;
+ /* Same as `--icons` */
+ --copy-button-filter: invert(51%) sepia(10%) saturate(393%) hue-rotate(198deg) brightness(86%) contrast(87%);
+ /* Same as `--sidebar-active` */
+ --copy-button-filter-hover: invert(77%) sepia(16%) saturate(1798%) hue-rotate(328deg) brightness(98%) contrast(83%);
}
@media (prefers-color-scheme: dark) {
@@ -275,5 +298,10 @@
--searchresults-border-color: #98a3ad;
--searchresults-li-bg: #2b2b2f;
--search-mark-bg: #355c7d;
+
+ /* Same as `--icons` */
+ --copy-button-filter: invert(26%) sepia(8%) saturate(575%) hue-rotate(169deg) brightness(87%) contrast(82%);
+ /* Same as `--sidebar-active` */
+ --copy-button-filter-hover: invert(36%) sepia(70%) saturate(503%) hue-rotate(167deg) brightness(98%) contrast(89%);
}
}