/* PrismJS 1.15.0 https://prismjs.com/download.html#themes=prism-okaidia&languages=markup+css+clike+javascript+ruby+markup-templating+php&plugins=line-numbers */ /** * okaidia theme for JavaScript, CSS and HTML * Loosely based on Monokai textmate theme by http://www.monokai.nl/ * @author ocodia */ .ide { background-color: var(--config-prism-background); overflow: hidden; position: relative; z-index: 1; box-shadow: 0 2px 4px 0 rgba(50,50,93,.3); border-radius: 10px; margin-bottom: 30px; &:extend(.force-left); &:extend(.force-ltr); * { font-family: 'Source Code Pro', monospace; } &[data-lang]::after { content: attr(data-lang-label); display: inline-block; background: #ffffff; color: #000000; position: absolute; top: 15px; padding: 5px 10px; border-radius: 15px; font-size: 10px; right: 10px; // should be right for both ltr and rtl opacity: 0.95; } &[data-lang="bash"]::after { background: var(--config-language-bash); color: var(--config-language-bash-contrast); } &[data-lang="javascript"]::after { background: var(--config-language-javascript); color: var(--config-language-javascript-contrast); } &[data-lang="web"]::after { background: var(--config-language-web); color: var(--config-language-web-contrast); } &[data-lang="html"]::after { background: var(--config-language-html); color: var(--config-language-html-contrast); } &[data-lang="php"]::after { background: var(--config-language-php); color: var(--config-language-php-contrast); } &[data-lang="nodejs"]::after { background: var(--config-language-nodejs); color: var(--config-language-nodejs-contrast); } &[data-lang="ruby"]::after { background: var(--config-language-ruby); color: var(--config-language-ruby-contrast); } &[data-lang="python"]::after { background: var(--config-language-python); color: var(--config-language-python-contrast); } &[data-lang="go"]::after { background: var(--config-language-go); color: var(--config-language-go-contrast); } &[data-lang="dart"]::after { background: var(--config-language-dart); color: var(--config-language-dart-contrast); } &[data-lang="flutter"]::after { background: var(--config-language-flutter); color: var(--config-language-flutter-contrast); } &[data-lang="android"]::after { background: var(--config-language-android); color: var(--config-language-android-contrast); } &[data-lang="kotlin"]::after { background: var(--config-language-kotlin); color: var(--config-language-kotlin-contrast); } &[data-lang="java"]::after { background: var(--config-language-java); color: var(--config-language-java-contrast); } &[data-lang="yaml"]::after { background: var(--config-language-yaml); color: var(--config-language-yaml-contrast); } .tag { color: inherit!important; background: transparent!important; padding: inherit!important; font-size: inherit!important; line-height: 14px; } .copy { cursor: pointer; content: attr(data-lang); display: inline-block; background: #ffffff; color: #000000; position: absolute; transform: translateX(-50%); bottom: -20px; padding: 5px 10px; border-radius: 15px; font-size: 10px; font-style: normal; .func-start(50%); opacity: 0; transition: bottom .3s, opacity .3s; line-height: normal; font-family: 'Poppins', sans-serif; &::before { .func-padding-end(5px); } } &:hover { .copy { transition: bottom .3s, opacity .3s; opacity: 0.90; bottom: 16px; } } pre { -webkit-hyphens: none; -moz-hyphens: none; -ms-hyphens: none; hyphens: none; color: #e6ebf1; font-weight: 400; line-height: 20px; font-size: 13px; margin: 0; padding: 20px; padding-left: 60px; } &.light { box-shadow: 0 2px 4px 0 rgba(50,50,93,.1); background-color: #ffffff; pre { color: #414770; } .token.comment, .token.prolog, .token.doctype, .token.cdata { color: #91a2b0; } .token.selector, .token.attr-name, .token.string, .token.char, .token.builtin, .token.inserted { color: #149570; } .token.punctuation { color: #414770; } .token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string, .token.variable { color: #414770; } .line-numbers .line-numbers-rows { background: #f2feef; } .line-numbers-rows > span:before { color: #5dc79e; } .token.keyword { color: #6772e4; font-weight: 500; } } } code[class*="language-"], pre[class*="language-"] { text-align: left; white-space: pre; word-spacing: normal; word-break: normal; word-wrap: normal; -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4; } /* Code blocks */ pre[class*="language-"] { overflow: auto; } /* Inline code */ :not(pre) > code[class*="language-"] { padding: .1em; white-space: normal; } .token.comment, .token.prolog, .token.doctype, .token.cdata { color: #6b7c93; } .token.punctuation { color: #f8f8f2; } .namespace { opacity: .7; } .token.property, .token.tag, .token.constant, .token.symbol, .token.deleted { color: #f92672; } .token.boolean, .token.number { color: #f79a59; } .token.selector, .token.attr-name, .token.string, .token.char, .token.builtin, .token.inserted { color: #3ecf8e; } .token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string, .token.variable { color: #f8f8f2; } .token.atrule, .token.attr-value, .token.function, .token.class-name { color: #45b2e8; } .token.keyword { color: #7795f8; } .token.regex, .token.important { color: #fd971f; } .token.important, .token.bold { //font-weight: bold; } .token.italic { font-style: italic; } .token.entity { cursor: help; } pre[class*="language-"].line-numbers { position: relative; padding-left: 60px; counter-reset: linenumber; } pre[class*="language-"].line-numbers > code { position: relative; white-space: inherit; } .line-numbers .line-numbers-rows { background: var(--config-prism-numbers); position: absolute; pointer-events: none; top: -20px; bottom: -21px; padding: 20px 0; font-size: 100%; left: -60px; width: 40px; /* works for line-numbers below 1000 lines */ letter-spacing: -1px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .line-numbers-rows > span { .func-padding-end(5px); pointer-events: none; display: block; counter-increment: linenumber; } .line-numbers-rows > span:before { content: counter(linenumber); color: #636365; display: block; padding-right: 0.8em; text-align: right; }