From bddefd223b2d120a78ecd6e0812335a0f1fac92a Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Fri, 23 Jun 2017 13:46:08 -0600 Subject: [PATCH] Add github-markdown.css to markdown visualization (#12377) * add github-markdown.css to markdown visualization * bring css internal and use kibana variables * add license from github-markdown-css * support dark-theme --- .../markdown_vis/public/github_markdown.less | 547 ++++++++++++++++++ .../markdown_vis/public/markdown_vis.html | 4 +- .../markdown_vis/public/markdown_vis.less | 1 + src/ui/public/styles/dark-theme.less | 34 ++ src/ui/public/styles/variables/colors.less | 2 + 5 files changed, 586 insertions(+), 2 deletions(-) create mode 100644 src/core_plugins/markdown_vis/public/github_markdown.less diff --git a/src/core_plugins/markdown_vis/public/github_markdown.less b/src/core_plugins/markdown_vis/public/github_markdown.less new file mode 100644 index 000000000000..330fa0477e51 --- /dev/null +++ b/src/core_plugins/markdown_vis/public/github_markdown.less @@ -0,0 +1,547 @@ +// The MIT License (MIT) + +// Copyright (c) Sindre Sorhus (sindresorhus.com) + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +@import (reference) "~ui/styles/variables/bootstrap-mods.less"; +@import (reference) "~ui/styles/variables/colors.less"; + +.markdown-body { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + line-height: 1.5; + color: @text-color; + font-size: 16px; + word-wrap: break-word; +} + +.markdown-body a { + background-color: transparent; + -webkit-text-decoration-skip: objects; +} + +.markdown-body a:active, +.markdown-body a:hover { + outline-width: 0; +} + +.markdown-body strong { + font-weight: inherit; +} + +.markdown-body strong { + font-weight: bolder; +} + +.markdown-body h1 { + font-size: 2em; + margin: 0.67em 0; +} + +.markdown-body img { + border-style: none; +} + +.markdown-body svg:not(:root) { + overflow: hidden; +} + +.markdown-body code, +.markdown-body kbd, +.markdown-body pre { + font-family: monospace, monospace; + font-size: 1em; +} + +.markdown-body hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +.markdown-body input { + font: inherit; + margin: 0; +} + +.markdown-body input { + overflow: visible; +} + +.markdown-body [type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +.markdown-body input { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.markdown-body a { + color: @globalColorBlue; + text-decoration: none; +} + +.markdown-body a:hover { + color: @globalColorLightBlue; + text-decoration: underline; +} + +.markdown-body strong { + font-weight: 600; +} + +.markdown-body hr { + overflow: hidden; + background: transparent; + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: @globalColorLightGray; + border: 0; +} + +.markdown-body hr::before { + display: table; + content: ""; +} + +.markdown-body hr::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body table { + border-spacing: 0; + border-collapse: collapse; +} + +.markdown-body td, +.markdown-body th { + padding: 0; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body h1 { + font-size: 32px; + font-weight: 600; +} + +.markdown-body h2 { + font-size: 24px; + font-weight: 600; +} + +.markdown-body h3 { + font-size: 20px; + font-weight: 600; +} + +.markdown-body h4 { + font-size: 16px; + font-weight: 600; +} + +.markdown-body h5 { + font-size: 14px; + font-weight: 600; +} + +.markdown-body h6 { + font-size: 12px; + font-weight: 600; +} + +.markdown-body p { + margin-top: 0; + margin-bottom: 10px; +} + +.markdown-body blockquote { + margin: 0; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body ol ol, +.markdown-body ul ol { + list-style-type: lower-roman; +} + +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + +.markdown-body dd { + margin-left: 0; +} + +.markdown-body code { + font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; + font-size: 12px; +} + +.markdown-body pre { + margin-top: 0; + margin-bottom: 0; + font: 12px 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; +} + +.markdown-body .pl-0 { + padding-left: 0 !important; +} + +.markdown-body .pl-1 { + padding-left: 4px !important; +} + +.markdown-body .pl-2 { + padding-left: 8px !important; +} + +.markdown-body .pl-3 { + padding-left: 16px !important; +} + +.markdown-body .pl-4 { + padding-left: 24px !important; +} + +.markdown-body .pl-5 { + padding-left: 32px !important; +} + +.markdown-body .pl-6 { + padding-left: 40px !important; +} + +.markdown-body::before { + display: table; + content: ""; +} + +.markdown-body::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body>*:first-child { + margin-top: 0 !important; +} + +.markdown-body>*:last-child { + margin-bottom: 0 !important; +} + +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} + +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body blockquote { + padding: 0 1em; + color: @globalColorDarkGray; + border-left: 0.25em solid @globalColorLightGray; +} + +.markdown-body blockquote>:first-child { + margin-top: 0; +} + +.markdown-body blockquote>:last-child { + margin-bottom: 0; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font-size: 11px; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #c6cbd1; + border-bottom-color: #959da5; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #959da5; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1 { + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid @globalColorLightGray; +} + +.markdown-body h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid @globalColorLightGray; +} + +.markdown-body h3 { + font-size: 1.25em; +} + +.markdown-body h4 { + font-size: 1em; +} + +.markdown-body h5 { + font-size: 0.875em; +} + +.markdown-body h6 { + font-size: 0.85em; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 2em; +} + +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body li>p { + margin-top: 16px; +} + +.markdown-body li+li { + margin-top: 0.25em; +} + +.markdown-body dl { + padding: 0; +} + +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.markdown-body table { + display: block; + width: 100%; + overflow: auto; + border-left: 1px solid @globalColorLightGray; +} + +.markdown-body table th { + font-weight: 400; + color: @globalColorLighterGray; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border-top: 1px solid @globalColorLightGray; + border-bottom: 1px solid @globalColorLightGray; + + &:last-child { + border-right: 1px solid @globalColorLightGray; + } +} + +.markdown-body table tr { + background-color: transparent; + border-top: 1px solid @globalColorLightGray; +} + +.markdown-body img { + max-width: 100%; + box-sizing: content-box; + background-color: #fff; +} + +.markdown-body code { + padding: 0; + padding-top: 0.2em; + padding-bottom: 0.2em; + margin: 0; + font-size: 85%; + background-color: rgba(27,31,35,0.05); + border-radius: 3px; +} + +.markdown-body code::before, +.markdown-body code::after { + letter-spacing: -0.2em; + content: "\00a0"; +} + +.markdown-body pre { + word-wrap: normal; +} + +.markdown-body pre>code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body .highlight { + margin-bottom: 16px; +} + +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.markdown-body .highlight pre, +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 3px; +} + +.markdown-body pre code { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.markdown-body pre code::before, +.markdown-body pre code::after { + content: normal; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #d1d5da; + border-bottom-color: #c6cbd1; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #c6cbd1; +} + +.markdown-body :checked+.radio-label { + position: relative; + z-index: 1; + border-color: #0366d6; +} + +.markdown-body .task-list-item { + list-style-type: none; +} + +.markdown-body .task-list-item+.task-list-item { + margin-top: 3px; +} + +.markdown-body .task-list-item input { + margin: 0 0.2em 0.25em -1.6em; + vertical-align: middle; +} diff --git a/src/core_plugins/markdown_vis/public/markdown_vis.html b/src/core_plugins/markdown_vis/public/markdown_vis.html index 81940aae8de3..d1bbd5e768e1 100644 --- a/src/core_plugins/markdown_vis/public/markdown_vis.html +++ b/src/core_plugins/markdown_vis/public/markdown_vis.html @@ -1,3 +1,3 @@
-
-
\ No newline at end of file +
+ diff --git a/src/core_plugins/markdown_vis/public/markdown_vis.less b/src/core_plugins/markdown_vis/public/markdown_vis.less index c626e5d89396..f846505848fb 100644 --- a/src/core_plugins/markdown_vis/public/markdown_vis.less +++ b/src/core_plugins/markdown_vis/public/markdown_vis.less @@ -1,4 +1,5 @@ @import (reference) "~ui/styles/mixins.less"; +@import "./github_markdown.less"; .markdown-vis { padding: 1em; diff --git a/src/ui/public/styles/dark-theme.less b/src/ui/public/styles/dark-theme.less index 13ec5d41b963..19dec70f9bbf 100644 --- a/src/ui/public/styles/dark-theme.less +++ b/src/ui/public/styles/dark-theme.less @@ -572,3 +572,37 @@ } } } + +.theme-dark { + .markdown-body { + color: @text-color; + } + + .markdown-body code { + color: #ffffff; + background-color: #5f5f5f; + } + + .markdown-body pre { + background-color: #5f5f5f; + border: none; + } + + .markdown-body table { + border-left: 1px solid @table-border-color; + } + + .markdown-body table th, + .markdown-body table td { + border-top: 1px solid @table-border-color; + border-bottom: 1px solid @table-border-color; + + &:last-child { + border-right: 1px solid @table-border-color; + } + } + + .markdown-body table tr { + border-top: 1px solid @table-border-color; + } +} diff --git a/src/ui/public/styles/variables/colors.less b/src/ui/public/styles/variables/colors.less index 0e5299500c2c..ad80dbb8e7b5 100644 --- a/src/ui/public/styles/variables/colors.less +++ b/src/ui/public/styles/variables/colors.less @@ -4,9 +4,11 @@ // KUI coloring ===================================================================== @globalColorBlue: #0079a5; +@globalColorLightBlue: #006E8A; @globalColorRed: #A30000; @globalColorLightestGray: #F5F5F5; @globalColorLightGray: #D9D9D9; +@globalColorLighterGray: #a7a7a7; @globalColorMediumGray: #999; @globalColorDarkGray: #666; @globalColorDarkestGray: #3F3F3F;