/* ------------------------------------------------------------------------------ * * # Prism * * Lightweight, extensible syntax highlighter * * Version: 1.0 * Latest update: May 10, 2015 * * ---------------------------------------------------------------------------- */ // Base code, pre { &[class*="language-"] { text-shadow: 0 1px #fff; word-break: normal; line-height: 1.5; @media print { text-shadow: none; } } } // Token colors .token { &.comment, &.prolog, &.doctype, &.cdata, &.punctuation { color: #999; } &.property, &.tag, &.boolean, &.number, &.constant, &.symbol { color: #905; } &.selector, &.attr-name, &.string, &.builtin { color: #690; } &.operator, &.entity, &.url, .language-css &.string, .style &.string, &.variable { color: #a67f59; background: hsla(0,0%,100%,.5); } &.atrule, &.attr-value, &.keyword { color: #07a; } &.function { color: #DD4A68; } &.regex, &.important { color: #e90; } &.important { font-weight: bold; } &.entity { cursor: help; } } .namespace { .opacity(0.7); } // Line highlight .line-highlight { position: absolute; left: 0; right: 0; margin-top: 1em; background: fade(#85ee95, 12%); pointer-events: none; white-space: pre; line-height: @line-height-base; &:before, &:after { content: attr(data-start); position: absolute; top: 0px; left: 10px; padding: 2px; text-align: center; font-size: 10px; color: @text-muted; } &[data-end]:after { content: attr(data-end); top: auto; bottom: 0; } } // Line numbers .line-numbers { pre& { position: relative; padding-left: 50px; counter-reset: linenumber; > code { position: relative; } } .line-numbers-rows { position: absolute; pointer-events: none; top: 0; font-size: 100%; left: -50px; width: 36px; // works for line-numbers below 1000 lines letter-spacing: -1px; border-right: 1px solid #999; .user-select(none); > span { pointer-events: none; display: block; counter-increment: linenumber; &:before { content: counter(linenumber); color: @text-muted; display: block; padding-right: 10px; text-align: right; } } } } // Code blocks pre { &[class*="language-"] { overflow: auto; position: relative; border-left-width: 3px; border-left-color: @brand-primary; .border-left-radius(0); > code[data-language] { display: block; &:before { content: attr(data-language); background-color: #EEE; display: inline-block; position: absolute; top: 0px; right: 0px; font-size: @font-size-mini; border-radius: 0 0 0 2px; padding: 4px 8px; text-shadow: none; color: @text-color; border-left: 1px solid #ddd; border-bottom: 1px solid #ddd; } } &.line-numbers > code[data-language]:before { top: -15px; right: -15px; } } &[data-line] { position: relative; padding: 12px 0 12px 36px; } }