// 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 $osdMdFontSize. $osdDefaultFontSize: 14px; @function canvasToEm($size) { @return #{$size / $osdDefaultFontSize}em; } .osdMarkdown__body { // Font size variables $osdMarkdownFontSizeS: canvasToEm(12px); $osdMarkdownFontSize: canvasToEm(14px); $osdMarkdownFontSizeL: canvasToEm(20px); $osdMarkdownFontSizeXL: canvasToEm(28px); $osdMarkdownFontSizeXXL: canvasToEm(36px); // Spacing variables $osdMarkdownSizeL: canvasToEm(24px); $osdMarkdownSize: canvasToEm(16px); $osdMarkdownSizeS: canvasToEm(12px); $osdMarkdownSizeXS: canvasToEm(8px); $osdMarkdownSizeXXS: canvasToEm(4px); // Grayscale variables $osdMarkdownAlphaLightestShade: rgba($euiColorFullShade, 0.05); $osdMarkdownAlphaLightShade: rgba($euiColorFullShade, 0.15); $osdMarkdownAlphaDarkShade: rgba($euiColorFullShade, 0.65); // Reverse grayscale for opposite of theme $osdMarkdownAlphaLightestShadeReversed: rgba($euiColorEmptyShade, 0.05); $osdMarkdownAlphaLightShadeReversed: rgba($euiColorEmptyShade, 0.15); $osdMarkdownAlphaDarkShadeReversed: rgba($euiColorEmptyShade, 0.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: $osdMarkdownSize; 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: $osdMarkdownSizeXS; } h1 { font-size: $osdMarkdownFontSizeXXL; /* stylelint-disable-next-line number-max-precision */ line-height: 1.333333em; font-weight: 300; } h2 { font-size: $osdMarkdownFontSizeXL; /* stylelint-disable-next-line number-max-precision */ line-height: 1.428571em; font-weight: 300; } h3 { font-size: $osdMarkdownFontSizeL; line-height: 1.6em; font-weight: 600; } h4 { font-size: $osdMarkdownSize; line-height: 1.5em; font-weight: 600; } h5 { font-size: $osdMarkdownFontSize; /* stylelint-disable-next-line number-max-precision */ line-height: 1.142857em; font-weight: 700; } h6 { font-size: $osdMarkdownFontSizeS; /* stylelint-disable-next-line number-max-precision */ line-height: 1.333333em; font-weight: 700; text-transform: uppercase; } // 3. Images img { max-width: 100%; box-sizing: content-box; border-style: none; } // 4. Blockquotes blockquote { padding: 0 1em; border-left: $osdMarkdownSizeXXS solid $osdMarkdownAlphaLightShade; } &--reversed blockquote { border-left-color: $osdMarkdownAlphaLightShadeReversed; } // 5. Horizontal rules hr { overflow: hidden; background: transparent; height: 2px; padding: 0; margin: $osdMarkdownSizeL 0; background-color: $osdMarkdownAlphaLightShade; border: 0; } &--reversed hr { background-color: $osdMarkdownAlphaLightShadeReversed; } hr::before { display: table; content: ""; } hr::after { display: table; clear: both; content: ""; } // 6. Lists ul, ol { padding-left: 0; margin-top: 0; margin-bottom: $osdMarkdownSize; } 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; } /* stylelint-disable-next-line no-duplicate-selectors */ ul, ol { padding-left: $osdMarkdownSizeL; } ul ul, ul ol, ol ol, ol ul { margin-top: 0; margin-bottom: 0; } li > p { margin-bottom: $osdMarkdownSizeXS; } li + li { margin-top: $osdMarkdownSizeXXS; } // 7. Tables table { display: block; width: 100%; overflow: auto; border-left: 1px solid $osdMarkdownAlphaLightShade; border-spacing: 0; border-collapse: collapse; } &--reversed table { border-left-color: $osdMarkdownAlphaLightShadeReversed; } td, th { padding: 0; } table th, table td { padding: $osdMarkdownSizeXXS $osdMarkdownSizeS; border-top: 1px solid $osdMarkdownAlphaLightShade; border-bottom: 1px solid $osdMarkdownAlphaLightShade; &:last-child { border-right: 1px solid $osdMarkdownAlphaLightShade; } } &--reversed table th, &--reversed table td { border-color: $osdMarkdownAlphaLightShadeReversed; } table tr { background-color: transparent; border-top: 1px solid $osdMarkdownAlphaLightShade; } &--reversed table tr { border-top-color: $osdMarkdownAlphaLightShadeReversed; } // 8. Code blocks code, pre { margin-bottom: $osdMarkdownSizeXS; font-family: Monaco, Menlo, "Ubuntu Mono", Consolas, source-code-pro, monospace; font-size: $osdMarkdownFontSizeS; } code { padding: $osdMarkdownSizeXXS 0; margin: 0; background-color: $osdMarkdownAlphaLightestShade; border-radius: $osdMarkdownSizeXXS; } &--reversed code { background-color: $osdMarkdownAlphaLightestShadeReversed; } code::before, code::after { letter-spacing: -0.2em; content: "\00a0"; } pre { padding: $osdMarkdownSize; overflow: auto; font-size: $osdMarkdownFontSizeS; /* stylelint-disable-next-line number-max-precision */ line-height: 1.333333em; background-color: $osdMarkdownAlphaLightestShade; border-radius: $osdMarkdownSizeXXS; word-wrap: normal; } &--reversed pre { background-color: $osdMarkdownAlphaLightestShadeReversed; } 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; } }