// Default styles for Markdown element // // 1. Links // 2. Headings // 3. Images // 4. Blockquotes // 5. Horizontal rules // 6. Lists // 7. Tables // 8. Code blocks // Functions // Note: The inlined base font size is set in common/functions/font.js. It should match $kbnMdFontSize. $kbnDefaultFontSize: 14px; @function canvasToEm($size) { @return #{$size / $kbnDefaultFontSize}em; } .kbnMarkdown__body { // Font size variables $kbnMarkdownFontSizeS: canvasToEm(12px); $kbnMarkdownFontSize: canvasToEm(14px); $kbnMarkdownFontSizeL: canvasToEm(20px); $kbnMarkdownFontSizeXL: canvasToEm(28px); $kbnMarkdownFontSizeXXL: canvasToEm(36px); // Spacing variables $kbnMarkdownSizeL: canvasToEm(24px); $kbnMarkdownSize: canvasToEm(16px); $kbnMarkdownSizeS: canvasToEm(12px); $kbnMarkdownSizeXS: canvasToEm(8px); $kbnMarkdownSizeXXS: canvasToEm(4px); // Grayscale variables $kbnMarkdownAlphaLightestShade: rgba($euiColorFullShade, .05); $kbnMarkdownAlphaLightShade: rgba($euiColorFullShade, .15); $kbnMarkdownAlphaDarkShade: rgba($euiColorFullShade, .65); // Reverse grayscale for opposite of theme $kbnMarkdownAlphaLightestShadeReversed: rgba($euiColorEmptyShade, .05); $kbnMarkdownAlphaLightShadeReversed: rgba($euiColorEmptyShade, .15); $kbnMarkdownAlphaDarkShadeReversed: rgba($euiColorEmptyShade, .65); &--reversed { color: $euiColorLightestShade; } > *:first-child { margin-top: 0 !important; } > *:last-child { margin-bottom: 0 !important; } p, blockquote, ul, ol, dl, table, pre { margin-top: 0; margin-bottom: $kbnMarkdownSize; line-height: 1.5em; } strong { font-weight: 600; } // 1. Links a { color: inherit; text-decoration: underline; } a:hover { text-decoration: underline dotted; } a:active, a:hover { outline-width: 0; } a:not([href]) { color: inherit; text-decoration: none; } // 2. Headings h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: $kbnMarkdownSizeXS; } h1 { font-size: $kbnMarkdownFontSizeXXL; line-height: 1.333333em; font-weight: 300; } h2 { font-size: $kbnMarkdownFontSizeXL; line-height: 1.428571em; font-weight: 300; } h3 { font-size: $kbnMarkdownFontSizeL; line-height: 1.6em; font-weight: 600; } h4 { font-size: $kbnMarkdownSize; line-height: 1.5em; font-weight: 600; } h5 { font-size: $kbnMarkdownFontSize; line-height: 1.142857em; font-weight: 700; } h6 { font-size: $kbnMarkdownFontSizeS; line-height: 1.333333em; font-weight: 700; text-transform: uppercase; } // 3. Images img { max-width: 100%; box-sizing: content-box; border-style: none; pointer-events: auto; } // 4. Blockquotes blockquote { padding: 0 1em; border-left: $kbnMarkdownSizeXXS solid $kbnMarkdownAlphaLightShade; } &--reversed blockquote { border-left-color: $kbnMarkdownAlphaLightShadeReversed; } // 5. Horizontal rules hr { overflow: hidden; background: transparent; height: 2px; padding: 0; margin: $kbnMarkdownSizeL 0; background-color: $kbnMarkdownAlphaLightShade; border: 0; } &--reversed hr { background-color: $kbnMarkdownAlphaLightShadeReversed; } hr::before { display: table; content: ''; } hr::after { display: table; clear: both; content: ''; } // 6. Lists ul, ol { padding-left: $kbnMarkdownSizeL; margin-top: 0; margin-bottom: $kbnMarkdownSize; } ul { list-style-type: disc; } ol { list-style-type: decimal; } ul ul { list-style-type: circle; } ol ol, ul ol { list-style-type: lower-roman; } ul ul ol, ul ol ol, ol ul ol, ol ol ol { list-style-type: lower-alpha; } dd { margin-left: 0; } ul ul, ul ol, ol ol, ol ul { margin-top: 0; margin-bottom: 0; } li > p { margin-bottom: $kbnMarkdownSizeXS; } li + li { margin-top: $kbnMarkdownSizeXXS; } // 7. Tables table { display: block; width: 100%; overflow: auto; border-left: 1px solid $kbnMarkdownAlphaLightShade; border-spacing: 0; border-collapse: collapse; } &--reversed table { border-left-color: $kbnMarkdownAlphaLightShadeReversed; } td, th { padding: 0; } table th, table td { padding: $kbnMarkdownSizeXXS $kbnMarkdownSizeS; border-top: 1px solid $kbnMarkdownAlphaLightShade; border-bottom: 1px solid $kbnMarkdownAlphaLightShade; &:last-child { border-right: 1px solid $kbnMarkdownAlphaLightShade; } } &--reversed table th, &--reversed table td { border-color: $kbnMarkdownAlphaLightShadeReversed; } table tr { background-color: transparent; border-top: 1px solid $kbnMarkdownAlphaLightShade; } &--reversed table tr { border-top-color: $kbnMarkdownAlphaLightShadeReversed; } // 8. Code blocks code, pre { margin-bottom: $kbnMarkdownSizeXS; font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; font-size: $kbnMarkdownFontSizeS; } code { padding: $kbnMarkdownSizeXXS 0; margin: 0; background-color: $kbnMarkdownAlphaLightestShade; border-radius: $kbnMarkdownSizeXXS; } &--reversed code { background-color: $kbnMarkdownAlphaLightestShadeReversed; } code::before, code::after { letter-spacing: -.2em; content: '\00a0'; } pre { padding: $kbnMarkdownSize; overflow: auto; font-size: $kbnMarkdownFontSizeS; line-height: 1.333333em; background-color: $kbnMarkdownAlphaLightestShade; border-radius: $kbnMarkdownSizeXXS; word-wrap: normal; } &--reversed pre { background-color: $kbnMarkdownAlphaLightestShadeReversed; } pre code { display: inline; max-width: auto; padding: 0; overflow: visible; line-height: inherit; word-wrap: normal; white-space: pre; background-color: transparent; border: 0; } pre code::before, pre code::after { content: normal; } }