-
Notifications
You must be signed in to change notification settings - Fork 28
Description
found some issues trying to add custom color themes that rely on my own variables
i suck at contributing to other repos atm but would be great to understand the flavor of the color object should be of prismjs
react-syntax-highlighter supports both hljs and prismjs as style objects and they differ so it can cause some confusion like it did to me
heres a valid way to add a style object
export default {
"pre[class*=\"language-\"]": {
"display": "block",
"overflowX": "auto",
"padding": "0.5em",
"color": "hsl(var(--foreground))",
"background": "hsl(var(--background))"
},
"code[class*=\"language-\"]": {
"display": "block",
"overflowX": "auto",
"padding": "0.5em",
"color": "hsl(var(--foreground))",
"background": "hsl(var(--background))"
},
"comment": {
"color": "hsl(var(--muted-foreground))",
"fontStyle": "italic"
},
"quote": {
"color": "hsl(var(--muted-foreground))",
"fontStyle": "italic"
},
"keyword": {
"color": "hsl(var(--syntax-keyword))"
},
"selector-tag": {
"color": "hsl(var(--syntax-keyword))"
},
"literal": {
"color": "hsl(var(--syntax-keyword))"
},
"subst": {
"color": "hsl(var(--syntax-keyword))"
},
"number": {
"color": "hsl(var(--syntax-number))"
},
"string": {
"color": "hsl(var(--primary))"
},
"doctag": {
"color": "hsl(var(--primary))"
},
"selector-id": {
"color": "hsl(var(--syntax-function))"
},
"selector-class": {
"color": "hsl(var(--syntax-function))"
},
"section": {
"color": "hsl(var(--syntax-function))"
},
"type": {
"color": "hsl(var(--syntax-function))"
},
"params": {
"color": "hsl(var(--accent-foreground))"
},
"title": {
"color": "hsl(var(--syntax-operator))",
"fontWeight": "bold"
},
"tag": {
"color": "hsl(var(--syntax-punctuation))",
"fontWeight": "normal"
},
"name": {
"color": "hsl(var(--syntax-punctuation))",
"fontWeight": "normal"
},
"attribute": {
"color": "hsl(var(--syntax-punctuation))",
"fontWeight": "normal"
},
"variable": {
"color": "hsl(var(--secondary-foreground))"
},
"template-variable": {
"color": "hsl(var(--secondary-foreground))"
},
"regexp": {
"color": "hsl(var(--primary-foreground))"
},
"link": {
"color": "hsl(var(--primary-foreground))"
},
"symbol": {
"color": "hsl(var(--syntax-function))"
},
"bullet": {
"color": "hsl(var(--syntax-function))"
},
"built_in": {
"color": "hsl(var(--syntax-operator))"
},
"builtin-name": {
"color": "hsl(var(--syntax-operator))"
},
"meta": {
"color": "hsl(var(--muted-foreground))",
"fontWeight": "bold"
},
"deletion": {
"background": "hsl(var(--destructive) / 0.2)"
},
"addition": {
"background": "hsl(var(--primary) / 0.2)"
},
"emphasis": {
"fontStyle": "italic"
},
"strong": {
"fontWeight": "bold"
}
}which is different when compared to hljs
if you dont have the right format then react-syntax-highlighter ends up not working well and doesnt surface the custom colors (it doesnt even show that its a different token type in the span 😭 it just raw puts the style in an inline string
just putting this here incase anyone else runs into trouble
would love to have a discussion tab btw :)