123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- import type {Theme} from '@emotion/react';
- import {css} from '@emotion/react';
- import {space} from 'sentry/styles/space';
- /**
- * Prism (code highlighting) styles. Added to <GlobalStyles />, so no need to import
- * this into any component.
- */
- export const prismStyles = (theme: Theme) => css`
- :root {
- ${theme.prismVariables};
- }
- /* Use dark Prism theme for code snippets imported from Sentry Docs */
- .gatsby-highlight,
- .prism-dark {
- ${theme.prismDarkVariables};
- }
- pre[class*='language-'] {
- overflow-x: auto;
- padding: ${space(1)} ${space(2)};
- border-radius: ${theme.borderRadius};
- box-shadow: none;
- code {
- background: unset;
- vertical-align: middle;
- }
- }
- pre[class*='language-'],
- code[class*='language-'] {
- color: var(--prism-base);
- background: var(--prism-block-background);
- font-size: ${theme.codeFontSize};
- text-shadow: none;
- font-family: ${theme.text.familyMono};
- direction: ltr;
- text-align: left;
- white-space: pre;
- word-spacing: normal;
- word-break: normal;
- -moz-tab-size: 4;
- -o-tab-size: 4;
- tab-size: 4;
- -webkit-hyphens: none;
- -moz-hyphens: none;
- -ms-hyphens: none;
- hyphens: none;
- .namespace {
- opacity: 0.7;
- }
- .token.comment,
- .token.prolog,
- .token.doctype,
- .token.cdata {
- color: var(--prism-comment);
- }
- .token.punctuation {
- color: var(--prism-punctuation);
- }
- .token.property,
- .token.tag,
- .token.boolean,
- .token.number,
- .token.constant,
- .token.symbol,
- .token.deleted {
- color: var(--prism-property);
- }
- .token.selector,
- .token.attr-name,
- .token.string,
- .token.char,
- .token.builtin,
- .token.inserted {
- color: var(--prism-selector);
- }
- .token.operator,
- .token.entity,
- .token.url,
- .language-css .token.string,
- .style .token.string {
- color: var(--prism-operator);
- background: none;
- }
- .token.atrule,
- .token.attr-value,
- .token.keyword {
- color: var(--prism-keyword);
- }
- .token.function {
- color: var(--prism-function);
- }
- .token.regex,
- .token.important,
- .token.variable {
- color: var(--prism-variable);
- }
- .token.important,
- .token.bold {
- font-weight: bold;
- }
- .token.italic {
- font-style: italic;
- }
- .token.entity {
- cursor: help;
- }
- .line-highlight {
- position: absolute;
- left: -${space(2)};
- right: 0;
- background: var(--prism-highlight-background);
- box-shadow: inset 5px 0 0 var(--prism-highlight-accent);
- z-index: 0;
- pointer-events: none;
- line-height: inherit;
- white-space: pre;
- }
- }
- pre[class*='language-']::selection,
- code[class*='language-']::selection {
- text-shadow: none;
- background: var(--prism-selected);
- }
- pre[data-line] {
- position: relative;
- }
- pre[class*='language-'] > code[class*='language-'] {
- position: relative;
- z-index: 1;
- }
- `;
|