From b664bd3d1fd2046a344d16a34bffeafe2049b958 Mon Sep 17 00:00:00 2001 From: "Jade (Rose) Rowland" Date: Thu, 20 Feb 2025 00:54:33 -0500 Subject: [PATCH 01/10] girl --- packages/codemirror/themes.mjs | 3 ++ packages/codemirror/themes/grl2000.mjs | 47 +++++++++++++++++++ .../src/repl/components/panel/Reference.jsx | 10 ++-- 3 files changed, 55 insertions(+), 5 deletions(-) create mode 100644 packages/codemirror/themes/grl2000.mjs diff --git a/packages/codemirror/themes.mjs b/packages/codemirror/themes.mjs index 47d6c3c1..01c0c6a8 100644 --- a/packages/codemirror/themes.mjs +++ b/packages/codemirror/themes.mjs @@ -4,6 +4,7 @@ import blackscreen, { settings as blackscreenSettings } from './themes/blackscre import whitescreen, { settings as whitescreenSettings } from './themes/whitescreen.mjs'; import teletext, { settings as teletextSettings } from './themes/teletext.mjs'; import algoboy, { settings as algoboySettings } from './themes/algoboy.mjs'; +import grl2000, {settings as grl2000Settings} from './themes/grl2000.mjs' import terminal, { settings as terminalSettings } from './themes/terminal.mjs'; import abcdef, { settings as abcdefSettings } from './themes/abcdef.mjs'; import androidstudio, { settings as androidstudioSettings } from './themes/androidstudio.mjs'; @@ -55,6 +56,7 @@ export const themes = { androidstudio, duotoneDark, githubDark, + grl2000, gruvboxDark, materialDark, nord, @@ -98,6 +100,7 @@ export const settings = { duotoneLight: duotoneLightSettings, duotoneDark: duotoneDarkSettings, eclipse: eclipseSettings, + grl2000: grl2000Settings, githubLight: githubLightSettings, githubDark: githubDarkSettings, gruvboxDark: gruvboxDarkSettings, diff --git a/packages/codemirror/themes/grl2000.mjs b/packages/codemirror/themes/grl2000.mjs new file mode 100644 index 00000000..4ff40ba4 --- /dev/null +++ b/packages/codemirror/themes/grl2000.mjs @@ -0,0 +1,47 @@ +/** + * @name Atom One + * Atom One dark syntax theme + * + * https://github.com/atom/one-dark-syntax + */ +import { tags as t } from '@lezer/highlight'; +import { createTheme } from './theme-helper.mjs'; +const deepPurple = '#5c019a' +const yellowPink = '#fbeffc' +const grey = '#272C35' +const pinkAccent ="#fee1ff" +const lightGrey = '#465063' +const bratGreen = "#9acd3f" + +const pink = '#f6a6fd' + +export const settings = { + background: 'white', + lineBackground: 'transparent', + foreground: deepPurple, + caret: '#797977', + selection: yellowPink, + selectionMatch: '#2B323D', + gutterBackground: grey, + gutterForeground: lightGrey, + gutterBorder: 'transparent', + lineHighlight: pinkAccent, +}; + +export default createTheme({ + theme: 'dark', + settings, + styles: [ + { + tag: [t.function(t.variableName), t.function(t.propertyName), t.url, t.processingInstruction], + color: deepPurple, + }, + { tag: [t.tagName, t.heading], color: settings.foreground }, + { tag: t.comment, color: pink }, + { tag: [t.variableName, t.propertyName, t.labelName], color: lightGrey }, + { tag: [t.attributeName, t.number], color: 'hsl( 29, 54%, 61%)' }, + { tag: t.className, color: grey }, + { tag: t.keyword, color: grey }, + { tag: [t.string, t.regexp, t.special(t.propertyName)], color: bratGreen }, + ], +}); diff --git a/website/src/repl/components/panel/Reference.jsx b/website/src/repl/components/panel/Reference.jsx index fbbf0a08..fed2d458 100644 --- a/website/src/repl/components/panel/Reference.jsx +++ b/website/src/repl/components/panel/Reference.jsx @@ -55,18 +55,18 @@ export function Reference() { className="break-normal flex-grow flex-col overflow-y-auto overflow-x-hidden px-2 flex relative" id="reference-container" > -
-

API Reference

+
+

API Reference

This is the long list of functions you can use. Remember that you don't need to remember all of those and that you can already make music with a small set of functions!

{visibleFunctions.map((entry, i) => (
-

{entry.name}

+

{entry.name}

{!!entry.synonyms_text && (

- Synonyms: {entry.synonyms_text} + Synonyms: {entry.synonyms_text}

)} {/* {entry.meta.filename} */} @@ -79,7 +79,7 @@ export function Reference() { ))} {entry.examples?.map((example, j) => ( -
{example}
+
{example}
))}
))} From 1ded398468194196181a97af3823e893a78ff1b9 Mon Sep 17 00:00:00 2001 From: "Jade (Rose) Rowland" Date: Fri, 21 Feb 2025 01:31:06 -0500 Subject: [PATCH 02/10] fixed style --- packages/codemirror/themes.mjs | 6 +- .../themes/{grl2000.mjs => CutiePi.mjs} | 10 +-- .../public/fonts/CutiePi/Cute_Aurora_demo.ttf | Bin 0 -> 38988 bytes website/public/fonts/CutiePi/LICENSE.txt | 7 ++ website/src/repl/components/Header.jsx | 6 +- .../src/repl/components/panel/ConsoleTab.jsx | 84 ++++++++++-------- website/src/repl/components/panel/Panel.jsx | 3 +- .../src/repl/components/panel/PatternsTab.jsx | 10 +-- .../src/repl/components/panel/Reference.jsx | 15 ++-- .../src/repl/components/panel/SettingsTab.jsx | 7 +- .../src/repl/components/panel/SoundsTab.jsx | 6 +- .../src/repl/components/panel/WelcomeTab.jsx | 5 +- website/src/styles/index.css | 8 ++ website/tailwind.config.cjs | 36 ++++++++ 14 files changed, 138 insertions(+), 65 deletions(-) rename packages/codemirror/themes/{grl2000.mjs => CutiePi.mjs} (89%) create mode 100644 website/public/fonts/CutiePi/Cute_Aurora_demo.ttf create mode 100644 website/public/fonts/CutiePi/LICENSE.txt diff --git a/packages/codemirror/themes.mjs b/packages/codemirror/themes.mjs index 01c0c6a8..13e5789c 100644 --- a/packages/codemirror/themes.mjs +++ b/packages/codemirror/themes.mjs @@ -4,7 +4,7 @@ import blackscreen, { settings as blackscreenSettings } from './themes/blackscre import whitescreen, { settings as whitescreenSettings } from './themes/whitescreen.mjs'; import teletext, { settings as teletextSettings } from './themes/teletext.mjs'; import algoboy, { settings as algoboySettings } from './themes/algoboy.mjs'; -import grl2000, {settings as grl2000Settings} from './themes/grl2000.mjs' +import CutiePi, {settings as CutiePiSettings} from './themes/CutiePi.mjs' import terminal, { settings as terminalSettings } from './themes/terminal.mjs'; import abcdef, { settings as abcdefSettings } from './themes/abcdef.mjs'; import androidstudio, { settings as androidstudioSettings } from './themes/androidstudio.mjs'; @@ -56,7 +56,7 @@ export const themes = { androidstudio, duotoneDark, githubDark, - grl2000, + CutiePi, gruvboxDark, materialDark, nord, @@ -100,7 +100,7 @@ export const settings = { duotoneLight: duotoneLightSettings, duotoneDark: duotoneDarkSettings, eclipse: eclipseSettings, - grl2000: grl2000Settings, + CutiePi: CutiePiSettings, githubLight: githubLightSettings, githubDark: githubDarkSettings, gruvboxDark: gruvboxDarkSettings, diff --git a/packages/codemirror/themes/grl2000.mjs b/packages/codemirror/themes/CutiePi.mjs similarity index 89% rename from packages/codemirror/themes/grl2000.mjs rename to packages/codemirror/themes/CutiePi.mjs index 4ff40ba4..8b71c125 100644 --- a/packages/codemirror/themes/grl2000.mjs +++ b/packages/codemirror/themes/CutiePi.mjs @@ -12,7 +12,7 @@ const grey = '#272C35' const pinkAccent ="#fee1ff" const lightGrey = '#465063' const bratGreen = "#9acd3f" - +const lighterGrey = "#97a1b7" const pink = '#f6a6fd' export const settings = { @@ -29,7 +29,7 @@ export const settings = { }; export default createTheme({ - theme: 'dark', + theme: 'light', settings, styles: [ { @@ -37,11 +37,11 @@ export default createTheme({ color: deepPurple, }, { tag: [t.tagName, t.heading], color: settings.foreground }, - { tag: t.comment, color: pink }, - { tag: [t.variableName, t.propertyName, t.labelName], color: lightGrey }, + { tag: t.comment, color: lighterGrey }, + { tag: [t.variableName, t.propertyName, t.labelName], color: pink }, { tag: [t.attributeName, t.number], color: 'hsl( 29, 54%, 61%)' }, { tag: t.className, color: grey }, - { tag: t.keyword, color: grey }, + { tag: t.keyword, color: deepPurple }, { tag: [t.string, t.regexp, t.special(t.propertyName)], color: bratGreen }, ], }); diff --git a/website/public/fonts/CutiePi/Cute_Aurora_demo.ttf b/website/public/fonts/CutiePi/Cute_Aurora_demo.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2ff9d6cfeff298b173cac4b70ba0820a47f08d5f GIT binary patch literal 38988 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 literal 0 HcmV?d00001 diff --git a/website/public/fonts/CutiePi/LICENSE.txt b/website/public/fonts/CutiePi/LICENSE.txt new file mode 100644 index 00000000..dbc024ae --- /dev/null +++ b/website/public/fonts/CutiePi/LICENSE.txt @@ -0,0 +1,7 @@ + +100% free for personal and commercial use. +However it's limited on basic latin only, +contact riedjal@gmail.com for full glyph (based on ANSI encoding) +and OTF features (alternates). + +src: https://www.dafont.com/cute-aurora.font?text=%24%3A+s%28%22bd%285%2C8%29%22%29.superimpose%28x+%3D%3E+x.note%28%22c2%22%29.midi%28device%29%29 \ No newline at end of file diff --git a/website/src/repl/components/Header.jsx b/website/src/repl/components/Header.jsx index 2e8b3094..20b4aca4 100644 --- a/website/src/repl/components/Header.jsx +++ b/website/src/repl/components/Header.jsx @@ -11,17 +11,19 @@ export function Header({ context, embedded = false }) { const { started, pending, isDirty, activeCode, handleTogglePlay, handleEvaluate, handleShuffle, handleShare } = context; const isEmbedded = typeof window !== 'undefined' && (embedded || window.location !== window.parent.location); - const { isZen, isButtonRowHidden, isCSSAnimationDisabled } = useSettings(); + const { isZen, isButtonRowHidden, isCSSAnimationDisabled, fontFamily } = useSettings(); return (