Skip to content

Commit cbf0ca0

Browse files
authored
Merge pull request #1806 from ehuss/button-overlap
Make code buttons appear on hover (or tap on mobile)
2 parents 1d89127 + 2b903ad commit cbf0ca0

File tree

6 files changed

+51
-20
lines changed

6 files changed

+51
-20
lines changed

src/renderer/html_handlebars/hbs_renderer.rs

+6-9
Original file line numberDiff line numberDiff line change
@@ -880,11 +880,8 @@ fn add_playground_pre(
880880
// we need to inject our own main
881881
let (attrs, code) = partition_source(code);
882882

883-
format!(
884-
"\n# #![allow(unused)]\n{}#fn main() {{\n{}#}}",
885-
attrs, code
886-
)
887-
.into()
883+
format!("# #![allow(unused)]\n{}#fn main() {{\n{}#}}", attrs, code)
884+
.into()
888885
};
889886
hide_lines(&content)
890887
}
@@ -1007,7 +1004,7 @@ mod tests {
10071004
fn add_playground() {
10081005
let inputs = [
10091006
("<code class=\"language-rust\">x()</code>",
1010-
"<pre class=\"playground\"><code class=\"language-rust\">\n<span class=\"boring\">#![allow(unused)]\n</span><span class=\"boring\">fn main() {\n</span>x()\n<span class=\"boring\">}\n</span></code></pre>"),
1007+
"<pre class=\"playground\"><code class=\"language-rust\"><span class=\"boring\">#![allow(unused)]\n</span><span class=\"boring\">fn main() {\n</span>x()\n<span class=\"boring\">}\n</span></code></pre>"),
10111008
("<code class=\"language-rust\">fn main() {}</code>",
10121009
"<pre class=\"playground\"><code class=\"language-rust\">fn main() {}\n</code></pre>"),
10131010
("<code class=\"language-rust editable\">let s = \"foo\n # bar\n\";</code>",
@@ -1037,7 +1034,7 @@ mod tests {
10371034
fn add_playground_edition2015() {
10381035
let inputs = [
10391036
("<code class=\"language-rust\">x()</code>",
1040-
"<pre class=\"playground\"><code class=\"language-rust edition2015\">\n<span class=\"boring\">#![allow(unused)]\n</span><span class=\"boring\">fn main() {\n</span>x()\n<span class=\"boring\">}\n</span></code></pre>"),
1037+
"<pre class=\"playground\"><code class=\"language-rust edition2015\"><span class=\"boring\">#![allow(unused)]\n</span><span class=\"boring\">fn main() {\n</span>x()\n<span class=\"boring\">}\n</span></code></pre>"),
10411038
("<code class=\"language-rust\">fn main() {}</code>",
10421039
"<pre class=\"playground\"><code class=\"language-rust edition2015\">fn main() {}\n</code></pre>"),
10431040
("<code class=\"language-rust edition2015\">fn main() {}</code>",
@@ -1061,7 +1058,7 @@ mod tests {
10611058
fn add_playground_edition2018() {
10621059
let inputs = [
10631060
("<code class=\"language-rust\">x()</code>",
1064-
"<pre class=\"playground\"><code class=\"language-rust edition2018\">\n<span class=\"boring\">#![allow(unused)]\n</span><span class=\"boring\">fn main() {\n</span>x()\n<span class=\"boring\">}\n</span></code></pre>"),
1061+
"<pre class=\"playground\"><code class=\"language-rust edition2018\"><span class=\"boring\">#![allow(unused)]\n</span><span class=\"boring\">fn main() {\n</span>x()\n<span class=\"boring\">}\n</span></code></pre>"),
10651062
("<code class=\"language-rust\">fn main() {}</code>",
10661063
"<pre class=\"playground\"><code class=\"language-rust edition2018\">fn main() {}\n</code></pre>"),
10671064
("<code class=\"language-rust edition2015\">fn main() {}</code>",
@@ -1085,7 +1082,7 @@ mod tests {
10851082
fn add_playground_edition2021() {
10861083
let inputs = [
10871084
("<code class=\"language-rust\">x()</code>",
1088-
"<pre class=\"playground\"><code class=\"language-rust edition2021\">\n<span class=\"boring\">#![allow(unused)]\n</span><span class=\"boring\">fn main() {\n</span>x()\n<span class=\"boring\">}\n</span></code></pre>"),
1085+
"<pre class=\"playground\"><code class=\"language-rust edition2021\"><span class=\"boring\">#![allow(unused)]\n</span><span class=\"boring\">fn main() {\n</span>x()\n<span class=\"boring\">}\n</span></code></pre>"),
10891086
("<code class=\"language-rust\">fn main() {}</code>",
10901087
"<pre class=\"playground\"><code class=\"language-rust edition2021\">fn main() {}\n</code></pre>"),
10911088
("<code class=\"language-rust edition2015\">fn main() {}</code>",

src/theme/ayu-highlight.css

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ Original by Dempfi (https://github.com/dempfi/ayu)
88
overflow-x: auto;
99
background: #191f26;
1010
color: #e6e1cf;
11-
padding: 0.5em;
1211
}
1312

1413
.hljs-comment,

src/theme/css/chrome.css

+44-5
Original file line numberDiff line numberDiff line change
@@ -208,24 +208,63 @@ pre {
208208
pre > .buttons {
209209
position: absolute;
210210
z-index: 100;
211-
right: 5px;
212-
top: 5px;
211+
right: 0px;
212+
top: 2px;
213+
margin: 0px;
214+
padding: 2px 0px;
213215

214216
color: var(--sidebar-fg);
215217
cursor: pointer;
218+
visibility: hidden;
219+
opacity: 0;
220+
transition: visibility 0.1s linear, opacity 0.1s linear;
221+
}
222+
pre:hover > .buttons {
223+
visibility: visible;
224+
opacity: 1
216225
}
217226
pre > .buttons :hover {
218227
color: var(--sidebar-active);
228+
border-color: var(--icons-hover);
229+
background-color: var(--theme-hover);
219230
}
220231
pre > .buttons i {
221232
margin-left: 8px;
222233
}
223234
pre > .buttons button {
224-
color: inherit;
225-
background: transparent;
226-
border: none;
227235
cursor: inherit;
236+
margin: 0px 5px;
237+
padding: 3px 5px;
238+
font-size: 14px;
239+
240+
border-style: solid;
241+
border-width: 1px;
242+
border-radius: 4px;
243+
border-color: var(--icons);
244+
background-color: var(--theme-popup-bg);
245+
transition: 100ms;
246+
transition-property: color,border-color,background-color;
247+
color: var(--icons);
228248
}
249+
@media (pointer: coarse) {
250+
pre > .buttons button {
251+
/* On mobile, make it easier to tap buttons. */
252+
padding: 0.3rem 1rem;
253+
}
254+
}
255+
code {
256+
padding: 1rem;
257+
}
258+
259+
/* FIXME: ACE editors overlap their buttons because ACE does absolute
260+
positioning within the code block which breaks padding. The only solution I
261+
can think of is to move the padding to the outer pre tag (or insert a div
262+
wrapper), but that would require fixing a whole bunch of CSS rules.
263+
*/
264+
.hljs.ace_editor {
265+
padding: 0rem 0rem;
266+
}
267+
229268
pre > .result {
230269
margin-top: 10px;
231270
}

src/theme/css/general.css

+1-2
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,7 @@ h6:target::before {
9090

9191
.content {
9292
overflow-y: auto;
93-
padding: 0 15px;
94-
padding-bottom: 50px;
93+
padding: 0 5px 50px 5px;
9594
}
9695
.content main {
9796
margin-left: auto;

src/theme/highlight.css

-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@
6161
overflow-x: auto;
6262
background: #f6f7f6;
6363
color: #000;
64-
padding: 0.5em;
6564
}
6665

6766
.hljs-emphasis {

src/theme/tomorrow-night.css

-2
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,6 @@
8181
overflow-x: auto;
8282
background: #1d1f21;
8383
color: #c5c8c6;
84-
padding: 0.5em;
85-
-webkit-text-size-adjust: none;
8684
}
8785

8886
.coffeescript .javascript,

0 commit comments

Comments
 (0)