_sass/code.scss in just-the-docs-0.4.0.rc3 vs _sass/code.scss in just-the-docs-0.4.0.rc4

- old
+ new

@@ -1,16 +1,19 @@ // Code and syntax highlighting // stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty // {% raw %} -code { - padding: 0.2em 0.15em; - font-weight: 400; - background-color: $code-background-color; - border: $border $border-color; - border-radius: $border-radius; +// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight. +:not(pre, figure) { + & > code { + padding: 0.2em 0.15em; + font-weight: 400; + background-color: $code-background-color; + border: $border $border-color; + border-radius: $border-radius; + } } // Avoid appearance of dark border around visited code links in Safari a:visited code { border-color: $border-color; @@ -45,54 +48,111 @@ // // No kramdown line_numbers: fences and Liquid highlighting look the same. // Kramdown line_numbers = true: fences have a wider gutter than with Liquid? // ```[LANG]...``` + +// the code may appear with 3 different types: +// container \ case: default case, code with line number, code with html rendering +// top level: div.highlighter-rouge, figure.highlight, figure.highlight +// second level: div.highlight, div.table-wrapper, pre.highlight +// third level: pre.highlight, td.code, absent +// last level: code, pre, code (optionality) +// highlighter level: span, span, span +// the spacing are only in the second level for case 1, 3 and in the third level for case 2 + +// select top level container div.highlighter-rouge, -div.listingblock > div.content { - padding: $sp-3; +div.listingblock > div.content, +figure.highlight { margin-top: 0; margin-bottom: $sp-3; - overflow-x: auto; background-color: $code-background-color; border-radius: $border-radius; box-shadow: none; -webkit-overflow-scrolling: touch; + position: relative; + padding: 0; - div.highlight, + // copy button (or other button) + // the button appear only when there is a hover on the code or focus on button + > button { + width: $sp-3; + opacity: 0; + position: absolute; + top: 0; + right: 0; + border: $sp-3 solid $code-background-color; + background-color: $code-background-color; + color: $body-text-color; + box-sizing: content-box; + + svg { + fill: $body-text-color; + } + + &:active { + text-decoration: none; + outline: none; + opacity: 1; + } + + &:focus { + opacity: 1; + } + } + + // the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button + &:hover { + > button { + cursor: copy; + opacity: 1; + } + } +} + +// setting the spacing and scrollbar on the second level for the first case +// remove all space on the second and thirt level +div.highlighter-rouge, +div.listingblock { + div.highlight { + overflow-x: auto; + padding: $sp-3; + margin: 0; + border: 0; + } + pre.highlight, code { padding: 0; margin: 0; border: 0; } } // {% highlight LANG %}...{% endhighlight %}, // {% highlight LANG linenos %}...{% endhighlight %}: -figure.highlight { - padding: $sp-3; - margin-top: 0; - margin-bottom: $sp-3; - overflow-x: auto; - background-color: $code-background-color; - border-radius: $border-radius; - box-shadow: none; - -webkit-overflow-scrolling: touch; +// setting the spacing and scrollbar on the second level for the thirt case +// the css rule are apply only to the last code enviroment +// setting the scroolbar +figure.highlight { pre, - code { - padding: 0; + :not(pre) > code { + overflow-x: auto; + padding: $sp-3; margin: 0; border: 0; } } // ```[LANG]...```, kramdown line_numbers = true, // {% highlight LANG linenos %}...{% endhighlight %}: + +// setting the spacing and scrollbar on the thirt level for the second case .highlight .table-wrapper { - padding: 0; + padding: $sp-3 0; margin: 0; border: 0; box-shadow: none; td, @@ -106,21 +166,19 @@ } td.gl { width: 1em; padding-right: $sp-3; + padding-left: $sp-3; } pre { margin: 0; line-height: 2; } } -// -// Code examples (rendered) -// - +// Code examples: html render of a code .code-example, .listingblock > .title { padding: $sp-3; margin-bottom: $sp-3; overflow: auto;