From 0e3d84e5ca493f79573a3d8c665bb8aef772d1e0 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Mon, 28 Aug 2023 19:21:17 +0200 Subject: [PATCH] add teletext theme + font --- packages/react/src/index.js | 1 + packages/react/src/themes/teletext.js | 49 +++++++ .../fonts/teletext/EuropeanTeletext.ttf | Bin 0 -> 24216 bytes .../fonts/teletext/EuropeanTeletextNuevo.ttf | Bin 0 -> 24736 bytes website/public/fonts/teletext/LICENSE.txt | 121 ++++++++++++++++++ website/src/repl/Footer.jsx | 3 +- website/src/repl/themes.mjs | 3 + website/src/styles/index.css | 4 + 8 files changed, 180 insertions(+), 1 deletion(-) create mode 100644 packages/react/src/themes/teletext.js create mode 100644 website/public/fonts/teletext/EuropeanTeletext.ttf create mode 100644 website/public/fonts/teletext/EuropeanTeletextNuevo.ttf create mode 100644 website/public/fonts/teletext/LICENSE.txt diff --git a/packages/react/src/index.js b/packages/react/src/index.js index b2195134..84b31283 100644 --- a/packages/react/src/index.js +++ b/packages/react/src/index.js @@ -9,4 +9,5 @@ export { default as useKeydown } from './hooks/useKeydown'; export { default as useEvent } from './hooks/useEvent'; export { default as strudelTheme } from './themes/strudel-theme'; export { default as protracker } from './themes/protracker'; +export { default as teletext } from './themes/teletext'; export { default as cx } from './cx'; diff --git a/packages/react/src/themes/teletext.js b/packages/react/src/themes/teletext.js new file mode 100644 index 00000000..8e709ba4 --- /dev/null +++ b/packages/react/src/themes/teletext.js @@ -0,0 +1,49 @@ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from '@uiw/codemirror-themes'; + +let colorA = '#6edee4'; +//let colorB = 'magenta'; +let colorB = 'white'; +let colorC = 'red'; +let colorD = '#f8fc55'; + +export const settings = { + background: '#00000f', + foreground: colorA, // whats that? + caret: colorC, + selection: colorD, + selectionMatch: colorA, + lineHighlight: '#00000090', // panel bg + lineBackground: '#00000080', + gutterBackground: 'transparent', + gutterForeground: '#8a919966', +}; + +let punctuation = colorD; +let mini = colorB; + +export default createTheme({ + theme: 'dark', + settings, + styles: [ + { tag: t.keyword, color: colorA }, + { tag: t.operator, color: mini }, + { tag: t.special(t.variableName), color: colorA }, + { tag: t.typeName, color: colorA }, + { tag: t.atom, color: colorA }, + { tag: t.number, color: mini }, + { tag: t.definition(t.variableName), color: colorA }, + { tag: t.string, color: mini }, + { tag: t.special(t.string), color: mini }, + { tag: t.comment, color: punctuation }, + { tag: t.variableName, color: colorA }, + { tag: t.tagName, color: colorA }, + { tag: t.bracket, color: punctuation }, + { tag: t.meta, color: colorA }, + { tag: t.attributeName, color: colorA }, + { tag: t.propertyName, color: colorA }, // methods + { tag: t.className, color: colorA }, + { tag: t.invalid, color: colorC }, + { tag: [t.unit, t.punctuation], color: punctuation }, + ], +}); diff --git a/website/public/fonts/teletext/EuropeanTeletext.ttf b/website/public/fonts/teletext/EuropeanTeletext.ttf new file mode 100644 index 0000000000000000000000000000000000000000..64391841875f6832ef3b70ab10858d1997b0100e GIT binary patch literal 24216 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

guM~q7;8F1Ci!j}*D6md(y=ym#Zj^CgEdi> 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 literal 0 HcmV?d00001 diff --git a/website/public/fonts/teletext/EuropeanTeletextNuevo.ttf b/website/public/fonts/teletext/EuropeanTeletextNuevo.ttf new file mode 100644 index 0000000000000000000000000000000000000000..99ea3853ee23d05c0f2e80c068c493600db9c35e GIT binary patch literal 24736 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 h1:not(:first-child) { margin-top: 30px;