735 lines
12 KiB
SCSS
735 lines
12 KiB
SCSS
/**
|
|
* Apply Markup (Markdown/AsciiDoc) typography
|
|
*
|
|
*/
|
|
.md {
|
|
color: $gl-text-color;
|
|
word-wrap: break-word;
|
|
|
|
[dir='auto'] {
|
|
text-align: initial;
|
|
}
|
|
|
|
*:first-child {
|
|
margin-top: 0;
|
|
}
|
|
|
|
> :last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
p {
|
|
color: $gl-text-color;
|
|
margin: 0 0 16px;
|
|
|
|
> code {
|
|
font-weight: inherit;
|
|
}
|
|
|
|
a:not(.no-attachment-icon) img {
|
|
// Remove bottom padding because
|
|
// <p> already has $gl-padding bottom
|
|
margin-bottom: 0;
|
|
}
|
|
}
|
|
|
|
a {
|
|
color: $blue-600;
|
|
|
|
> code {
|
|
color: $blue-600;
|
|
}
|
|
}
|
|
|
|
.media-container {
|
|
display: inline-flex;
|
|
flex-direction: column;
|
|
margin-bottom: $gl-spacing-scale-2;
|
|
}
|
|
|
|
img:not(.emoji) {
|
|
margin: 0 0 8px;
|
|
}
|
|
|
|
img.lazy {
|
|
min-width: 200px;
|
|
min-height: 100px;
|
|
background-color: $gray-lightest;
|
|
}
|
|
|
|
img.js-lazy-loaded,
|
|
img.emoji {
|
|
min-width: inherit;
|
|
min-height: inherit;
|
|
background-color: inherit;
|
|
max-width: 100%;
|
|
}
|
|
|
|
&:not(.md) img:not(.emoji) {
|
|
border: 1px solid $white-normal;
|
|
padding: 5px;
|
|
margin: 5px 0;
|
|
// Ensure that image does not exceed viewport
|
|
max-height: calc(100vh - 100px);
|
|
}
|
|
|
|
details {
|
|
margin-bottom: $gl-padding;
|
|
}
|
|
|
|
// Single code lines should wrap
|
|
code {
|
|
font-family: $monospace-font;
|
|
white-space: pre-wrap;
|
|
// Safari
|
|
word-wrap: break-word;
|
|
overflow-wrap: break-word;
|
|
word-break: keep-all;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 1.75em;
|
|
font-weight: $gl-font-weight-bold;
|
|
margin: 24px 0 16px;
|
|
padding-bottom: 0.3em;
|
|
border-bottom: 1px solid $white-dark;
|
|
color: $gl-text-color;
|
|
|
|
&:first-child {
|
|
margin-top: 0;
|
|
}
|
|
}
|
|
|
|
h2 {
|
|
font-size: 1.5em;
|
|
font-weight: $gl-font-weight-bold;
|
|
margin: 24px 0 16px;
|
|
padding-bottom: 0.3em;
|
|
border-bottom: 1px solid $white-dark;
|
|
color: $gl-text-color;
|
|
}
|
|
|
|
h3 {
|
|
margin: 24px 0 16px;
|
|
font-size: 1.3em;
|
|
}
|
|
|
|
h4 {
|
|
margin: 24px 0 16px;
|
|
font-size: 1.2em;
|
|
}
|
|
|
|
h5 {
|
|
margin: 24px 0 16px;
|
|
font-size: 1em;
|
|
}
|
|
|
|
h6 {
|
|
margin: 24px 0 16px;
|
|
font-size: 0.95em;
|
|
}
|
|
|
|
blockquote,
|
|
.blockquote {
|
|
color: $gl-grayish-blue;
|
|
font-size: inherit;
|
|
padding: 8px 24px;
|
|
margin: 16px 0;
|
|
border-left: 3px solid $white-dark;
|
|
|
|
&:dir(rtl) {
|
|
border-left: 0;
|
|
border-right: 3px solid $white-dark;
|
|
}
|
|
|
|
p {
|
|
color: $gl-grayish-blue !important;
|
|
font-size: inherit;
|
|
line-height: 1.5;
|
|
|
|
&:last-child {
|
|
margin: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
hr {
|
|
// Darken 'whitesmoke' a bit to make it more visible in note bodies
|
|
border-color: darken($gray-normal, 8%);
|
|
margin: 10px 0;
|
|
}
|
|
|
|
table:not(.code) {
|
|
@extend .table;
|
|
@extend .table-bordered;
|
|
margin: 16px 0;
|
|
color: $gl-text-color;
|
|
border: 0;
|
|
width: auto;
|
|
display: block;
|
|
overflow-x: auto;
|
|
|
|
tbody {
|
|
background-color: $white;
|
|
|
|
td {
|
|
border-color: $gray-100;
|
|
}
|
|
}
|
|
|
|
tr {
|
|
th {
|
|
border-bottom: solid 2px $gray-200;
|
|
}
|
|
}
|
|
|
|
&.grid-none {
|
|
> thead > tr {
|
|
> th {
|
|
border-bottom-width: 0;
|
|
border-right-width: 0;
|
|
border-left-width: 0;
|
|
|
|
&:first-child {
|
|
border-left-width: 1px;
|
|
}
|
|
|
|
&:last-child {
|
|
border-right-width: 1px;
|
|
}
|
|
}
|
|
}
|
|
|
|
> tbody {
|
|
> tr > td {
|
|
border-width: 0;
|
|
|
|
&:first-child {
|
|
border-left-width: 1px;
|
|
}
|
|
|
|
&:last-child {
|
|
border-right-width: 1px;
|
|
}
|
|
}
|
|
|
|
> tr:last-child > td {
|
|
border-bottom-width: 1px;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
&.grid-rows {
|
|
> thead > tr > th,
|
|
> tbody > tr > td {
|
|
border-right-width: 0;
|
|
border-left-width: 0;
|
|
}
|
|
|
|
> thead > tr {
|
|
> th:first-child {
|
|
border-left-width: 1px;
|
|
}
|
|
|
|
> th:last-child {
|
|
border-right-width: 1px;
|
|
}
|
|
}
|
|
|
|
> tbody > tr {
|
|
> td {
|
|
border-left-width: 0;
|
|
border-right-width: 0;
|
|
}
|
|
|
|
> td:first-child {
|
|
border-left-width: 1px;
|
|
}
|
|
|
|
> td:last-child {
|
|
border-right-width: 1px;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.grid-cols {
|
|
> thead > tr > th {
|
|
border-bottom-width: 0;
|
|
}
|
|
|
|
> tbody > tr > td {
|
|
border-top-width: 0;
|
|
border-bottom-width: 0;
|
|
}
|
|
|
|
> tbody > tr:last-child > td {
|
|
border-bottom-width: 1px;
|
|
}
|
|
}
|
|
|
|
&.frame-sides {
|
|
> thead > tr > th {
|
|
border-top-width: 0;
|
|
}
|
|
|
|
> tbody > tr:last-child > td {
|
|
border-bottom-width: 0;
|
|
}
|
|
}
|
|
|
|
&.frame-topbot,
|
|
&.frame-ends {
|
|
> thead > tr > th:first-child,
|
|
> tbody > tr > td:first-child {
|
|
border-left-width: 0;
|
|
}
|
|
|
|
> thead > tr > th:last-child,
|
|
> tbody > tr > td:last-child {
|
|
border-right-width: 0;
|
|
}
|
|
}
|
|
|
|
&.frame-none {
|
|
> thead > tr > th {
|
|
border-top-width: 0;
|
|
}
|
|
|
|
> tbody > tr:last-child > td {
|
|
border-bottom-width: 0;
|
|
}
|
|
|
|
> thead > tr > th:first-child,
|
|
> tbody > tr > td:first-child {
|
|
border-left-width: 0;
|
|
}
|
|
|
|
> thead > tr > th:last-child,
|
|
> tbody > tr > td:last-child {
|
|
border-right-width: 0;
|
|
}
|
|
}
|
|
|
|
&.stripes-all tr,
|
|
&.stripes-odd tr:nth-of-type(odd),
|
|
&.stripes-even tr:nth-of-type(even),
|
|
&.stripes-hover tr:hover {
|
|
background: $gray-light;
|
|
}
|
|
}
|
|
|
|
table:dir(rtl) th {
|
|
text-align: right;
|
|
}
|
|
|
|
pre {
|
|
margin-bottom: 16px;
|
|
font-size: 13px;
|
|
line-height: 1.6em;
|
|
overflow-x: auto;
|
|
border-radius: 2px;
|
|
|
|
// Multi-line code blocks should scroll horizontally
|
|
code {
|
|
white-space: pre;
|
|
// Safari
|
|
word-wrap: normal;
|
|
overflow-wrap: normal;
|
|
}
|
|
|
|
&.plain-readme {
|
|
background: none;
|
|
border: 0;
|
|
padding: 0;
|
|
margin: 0;
|
|
font-size: 14px;
|
|
}
|
|
}
|
|
|
|
dd {
|
|
margin-left: $gl-padding;
|
|
}
|
|
|
|
ul,
|
|
ol {
|
|
padding: 0;
|
|
margin: 0 0 16px;
|
|
|
|
ul,
|
|
ol {
|
|
margin-bottom: 0;
|
|
}
|
|
}
|
|
|
|
ul:dir(rtl),
|
|
ol:dir(rtl) {
|
|
margin: 3px 28px 3px 0 !important;
|
|
}
|
|
|
|
> ul {
|
|
list-style-type: disc;
|
|
|
|
ul {
|
|
list-style-type: circle;
|
|
|
|
ul {
|
|
list-style-type: square;
|
|
}
|
|
}
|
|
}
|
|
|
|
ul.checklist,
|
|
ul.none,
|
|
ol.none,
|
|
ul.no-bullet,
|
|
ol.no-bullet,
|
|
ol.unnumbered,
|
|
ul.unstyled,
|
|
ol.unstyled {
|
|
list-style-type: none;
|
|
|
|
li {
|
|
margin-left: 0;
|
|
}
|
|
}
|
|
|
|
li {
|
|
line-height: 1.6em;
|
|
margin-left: 25px;
|
|
padding-left: 3px;
|
|
|
|
/* Normalize the bullet position on webkit. */
|
|
@include on-webkit-only {
|
|
margin-left: 28px;
|
|
padding-left: 0;
|
|
}
|
|
}
|
|
|
|
ul.task-list {
|
|
> li.task-list-item {
|
|
list-style-type: none;
|
|
position: relative;
|
|
min-height: 22px;
|
|
padding-left: 28px;
|
|
margin-left: 0 !important;
|
|
|
|
> input.task-list-item-checkbox {
|
|
position: absolute;
|
|
left: 8px;
|
|
top: 5px;
|
|
}
|
|
}
|
|
}
|
|
|
|
a.with-attachment-icon,
|
|
a[href*='/uploads/'],
|
|
a[href*='storage.googleapis.com/google-code-attachments/'] {
|
|
&::before {
|
|
margin-right: 4px;
|
|
|
|
font-style: normal;
|
|
font-size: inherit;
|
|
text-rendering: auto;
|
|
-webkit-font-smoothing: antialiased;
|
|
content: '📎';
|
|
}
|
|
}
|
|
|
|
a[href*='/uploads/'],
|
|
a[href*='storage.googleapis.com/google-code-attachments/'] {
|
|
&.no-attachment-icon {
|
|
&::before {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Link to current header. */
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4,
|
|
h5,
|
|
h6 {
|
|
a.anchor {
|
|
float: left;
|
|
margin-left: -20px;
|
|
text-decoration: none;
|
|
outline: none;
|
|
|
|
&::after {
|
|
content: image-url('icon_anchor.svg');
|
|
visibility: hidden;
|
|
}
|
|
}
|
|
|
|
&:hover > a.anchor::after {
|
|
visibility: visible;
|
|
}
|
|
|
|
> a.anchor:focus::after {
|
|
visibility: visible;
|
|
outline: auto;
|
|
}
|
|
}
|
|
|
|
.big {
|
|
font-size: larger;
|
|
}
|
|
|
|
.small {
|
|
font-size: smaller;
|
|
}
|
|
|
|
.underline {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.overline {
|
|
text-decoration: overline;
|
|
}
|
|
|
|
.line-through {
|
|
text-decoration: line-through;
|
|
}
|
|
|
|
// Custom Font Awesome styles that render emojis in asciidoc
|
|
.fa {
|
|
display: inline-block;
|
|
font-style: normal;
|
|
font-size: 14px;
|
|
text-rendering: auto;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
.fa-2x,
|
|
.admonitionblock td.icon [class^='fa icon-'] {
|
|
font-size: 2em;
|
|
}
|
|
|
|
.fa-exclamation-triangle::before,
|
|
.admonitionblock td.icon .icon-warning::before {
|
|
content: '⚠';
|
|
}
|
|
|
|
.fa-exclamation-circle::before,
|
|
.admonitionblock td.icon .icon-important::before {
|
|
content: '❗';
|
|
}
|
|
|
|
.fa-lightbulb-o::before,
|
|
.admonitionblock td.icon .icon-tip::before {
|
|
content: '💡';
|
|
}
|
|
|
|
.fa-thumb-tack::before,
|
|
.admonitionblock td.icon .icon-note::before {
|
|
content: '📌';
|
|
}
|
|
|
|
.fa-fire::before,
|
|
.admonitionblock td.icon .icon-caution::before {
|
|
content: '🔥';
|
|
}
|
|
|
|
.fa-square-o::before {
|
|
content: '\2610';
|
|
}
|
|
|
|
.fa-check-square-o::before {
|
|
content: '\2611';
|
|
}
|
|
|
|
.admonitionblock td.icon {
|
|
width: 1%;
|
|
}
|
|
|
|
.metrics-embed {
|
|
h3.popover-header {
|
|
/** Override <h3> .popover-header
|
|
* as embed metrics do not follow the same
|
|
* style as default md <h3> (which are deeply nested)
|
|
*/
|
|
margin: 0;
|
|
font-size: $gl-font-size-small;
|
|
}
|
|
}
|
|
|
|
.gl-new-dropdown-item {
|
|
margin: 0;
|
|
padding: 0;
|
|
line-height: 1rem;
|
|
}
|
|
|
|
/* AsciiDoc(tor) built-in alignment roles */
|
|
|
|
.text-left {
|
|
text-align: left !important;
|
|
}
|
|
|
|
.text-right {
|
|
text-align: right !important;
|
|
}
|
|
|
|
.text-center {
|
|
text-align: center !important;
|
|
}
|
|
|
|
.text-justify {
|
|
text-align: justify !important;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Headers
|
|
*
|
|
*/
|
|
body {
|
|
-webkit-text-shadow: $body-text-shadow 0 0 1px;
|
|
}
|
|
|
|
.page-title {
|
|
margin: #{2 * $grid-size} 0;
|
|
line-height: 1.3;
|
|
font-size: 1.25em;
|
|
font-weight: $gl-font-weight-bold;
|
|
|
|
&.with-button {
|
|
line-height: 34px;
|
|
}
|
|
|
|
}
|
|
|
|
.page-title-empty {
|
|
margin: 12px 0;
|
|
line-height: 1.3;
|
|
font-size: 1.25em;
|
|
font-weight: $gl-font-weight-bold;
|
|
}
|
|
|
|
.light-header {
|
|
font-weight: $gl-font-weight-bold;
|
|
}
|
|
|
|
/** CODE **/
|
|
pre {
|
|
font-family: $monospace-font;
|
|
display: block;
|
|
padding: $gl-padding-8 $input-horizontal-padding;
|
|
margin: 0 0 $gl-padding-8;
|
|
font-size: $gl-font-size-monospace;
|
|
word-break: break-all;
|
|
word-wrap: break-word;
|
|
color: $gl-text-color;
|
|
background-color: $gray-light;
|
|
border: 1px solid $gray-100;
|
|
border-radius: $border-radius-small;
|
|
}
|
|
|
|
code {
|
|
&.key-fingerprint {
|
|
background: $body-bg;
|
|
color: $text-color;
|
|
}
|
|
}
|
|
|
|
.monospace {
|
|
font-family: $monospace-font;
|
|
}
|
|
|
|
.weight-normal {
|
|
font-weight: $gl-font-weight-normal;
|
|
}
|
|
|
|
.commit-sha,
|
|
.ref-name,
|
|
.pipeline-number {
|
|
font-family: $monospace-font;
|
|
font-size: 95%;
|
|
}
|
|
|
|
.git-revision-dropdown .dropdown-content li:not(.dropdown-menu-empty-item) a {
|
|
font-family: $monospace-font;
|
|
font-size: 95%;
|
|
word-break: break-all;
|
|
}
|
|
|
|
/**
|
|
* Textareas intended for GFM
|
|
*
|
|
*/
|
|
textarea.js-gfm-input {
|
|
font-family: $monospace-font;
|
|
font-size: $gl-font-size-monospace;
|
|
}
|
|
|
|
.strikethrough {
|
|
text-decoration: line-through;
|
|
}
|
|
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4 {
|
|
small {
|
|
color: $gl-text-color;
|
|
}
|
|
}
|
|
|
|
.text-right-md {
|
|
@include media-breakpoint-up(md) {
|
|
text-align: right;
|
|
}
|
|
}
|
|
|
|
.text-right-lg {
|
|
@include media-breakpoint-up(lg) {
|
|
text-align: right;
|
|
}
|
|
}
|
|
|
|
.idiff.deletion {
|
|
background: $line-removed-dark;
|
|
}
|
|
|
|
.idiff.addition {
|
|
background: $line-added-dark;
|
|
}
|
|
|
|
|
|
/**
|
|
* form text input i.e. search bar, comments, forms, etc.
|
|
*/
|
|
/* stylelint-disable selector-no-vendor-prefix */
|
|
input,
|
|
textarea {
|
|
&::-webkit-input-placeholder {
|
|
color: $gl-text-color-tertiary;
|
|
}
|
|
|
|
// support firefox 19+ vendor prefix
|
|
&::-moz-placeholder {
|
|
color: $gl-text-color-tertiary;
|
|
opacity: 1; // FF defaults to 0.54
|
|
}
|
|
|
|
// support Edge vendor prefix
|
|
&::-ms-input-placeholder {
|
|
color: $gl-text-color-tertiary;
|
|
}
|
|
|
|
// support IE vendor prefix
|
|
&:-ms-input-placeholder {
|
|
color: $gl-text-color-tertiary;
|
|
}
|
|
}
|
|
/* stylelint-enable */
|
|
|
|
.lh-100 { line-height: 1; }
|
|
|
|
wbr {
|
|
display: inline-block;
|
|
}
|