diff --git a/packages/app/src/app/pages/common/Modals/PreferencesModal/Appearance/EditorTheme/elements.ts b/packages/app/src/app/pages/common/Modals/PreferencesModal/Appearance/EditorTheme/elements.ts
new file mode 100644
index 00000000000..a7c0552e67c
--- /dev/null
+++ b/packages/app/src/app/pages/common/Modals/PreferencesModal/Appearance/EditorTheme/elements.ts
@@ -0,0 +1,16 @@
+import { PreferenceText as PreferenceTextBase } from '@codesandbox/common/lib/components/Preference/PreferenceText';
+import styled from 'styled-components';
+
+export const BigTitle = styled.h2`
+ font-weight: 600;
+ color: white;
+ font-size: 1rem;
+ padding-top: 1.5rem;
+ margin-bottom: 0.5rem;
+`;
+
+export const PreferenceText = styled(PreferenceTextBase)`
+ font-family: 'Source Code Pro';
+ font-size: 0.8rem;
+ width: 100%;
+`;
diff --git a/packages/app/src/app/pages/common/Modals/PreferencesModal/Appearance/EditorTheme/index.tsx b/packages/app/src/app/pages/common/Modals/PreferencesModal/Appearance/EditorTheme/index.tsx
new file mode 100644
index 00000000000..5bf22a7fab4
--- /dev/null
+++ b/packages/app/src/app/pages/common/Modals/PreferencesModal/Appearance/EditorTheme/index.tsx
@@ -0,0 +1,59 @@
+import React, { FunctionComponent } from 'react';
+
+import { useOvermind } from 'app/overmind';
+
+import { Rule, SubDescription } from '../../elements';
+import { BigTitle, PreferenceText } from './elements';
+
+export const EditorTheme: FunctionComponent = () => {
+ const {
+ actions: {
+ preferences: { settingChanged },
+ },
+ state: {
+ preferences: { settings },
+ },
+ } = useOvermind();
+
+ const bindValue = (name: string, setUndefined?: boolean) => ({
+ setValue: value => settingChanged({ name, value }),
+ value: setUndefined ? settings[name] || undefined : settings[name],
+ });
+
+ return (
+
+
Editor Theme
+
+
+ You can select your editor theme by selecting File {'->'} Preferences{' '}
+ {'->'} Color Theme in the menu bar.
+
+
+
+
+
+ Custom VSCode Theme
+
+
+
+ After changing this setting you
+ {"'"}
+ ll have to reload the browser and select {'"'}
+ Custom
+ {'"'} as your color theme.
+
+
+
Developer: Generate Color Scheme From Current Settings'
+4. Copy the contents and paste them here!`}
+ rows={7}
+ {...bindValue('manualCustomVSCodeTheme', true)}
+ />
+
+ );
+};
diff --git a/packages/app/src/app/pages/common/Modals/PreferencesModal/Appearance/elements.ts b/packages/app/src/app/pages/common/Modals/PreferencesModal/Appearance/elements.ts
deleted file mode 100644
index 525a94aa0e1..00000000000
--- a/packages/app/src/app/pages/common/Modals/PreferencesModal/Appearance/elements.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import styled from 'styled-components';
-
-export const BigTitle = styled.h2`
- font-weight: 600;
- color: white;
- font-size: 1rem;
- padding-top: 1.5rem;
- margin-bottom: 0.5rem;
-`;
diff --git a/packages/app/src/app/pages/common/Modals/PreferencesModal/Appearance/index.tsx b/packages/app/src/app/pages/common/Modals/PreferencesModal/Appearance/index.tsx
index 5755daf56e7..99ef56a62e2 100644
--- a/packages/app/src/app/pages/common/Modals/PreferencesModal/Appearance/index.tsx
+++ b/packages/app/src/app/pages/common/Modals/PreferencesModal/Appearance/index.tsx
@@ -1,186 +1,20 @@
-import { PreferenceText } from '@codesandbox/common/lib/components/Preference/PreferenceText';
-import themes from '@codesandbox/common/lib/themes';
-import { useOvermind } from 'app/overmind';
-import React from 'react';
+import React, { FunctionComponent } from 'react';
-import {
- PaddedPreference,
- PreferenceContainer,
- Rule,
- SubContainer,
- SubDescription,
- Title,
-} from '../elements';
+import { PreferenceContainer, SubContainer, Title } from '../elements';
import VSCodePlaceholder from '../VSCodePlaceholder';
-import { BigTitle } from './elements';
-export const Appearance: React.FC = () => {
- const {
- state: {
- preferences: { settings },
- },
- actions: {
- preferences: { settingChanged },
- },
- } = useOvermind();
+import { EditorTheme } from './EditorTheme';
- const bindValue = (name: string, setUndefined?: boolean) => ({
- value: setUndefined ? settings[name] || undefined : settings[name],
- setValue: value =>
- settingChanged({
- name,
- value,
- }),
- });
+export const Appearance: FunctionComponent = () => (
+
+
Appearance
- const fontOptions = ['Menlo', 'Dank Mono', 'Source Code Pro'];
- const themeOptions = themes.map(t => t.name);
+
+
+
- return (
-
-
Appearance
-
-
-
-
-
-
-
-
- We use{' '}
-
- Dank Mono
- {' '}
- as default font, you can also use locally installed fonts
-
- {!fontOptions.includes(settings.fontFamily) && (
-
- )}
-
-
-
- Whether we should enable{' '}
-
- font ligatures
-
- .
-
-
-
-
-
-
- Hide all distracting elements, perfect for lessons and
- presentations.
-
-
-
- {settings.experimentVSCode ? (
-
-
Editor Theme
-
- You can select your editor theme by selecting File {'->'}{' '}
- Preferences {'->'} Color Theme in the menu bar.
-
-
-
-
- Custom VSCode Theme
-
-
-
- After changing this setting you
- {"'"}
- ll have to reload the browser and select {'"'}
- Custom
- {'"'} as your color theme.
-
-
-
Developer: Generate Color Scheme From Current Settings'
-4. Copy the contents and paste them here!`}
- {...bindValue('manualCustomVSCodeTheme', true)}
- />
-
- ) : (
-
-
Editor Theme
-
-
-
- This will be overwritten if you enter a custom theme.
-
-
-
-
- Custom VSCode Theme
-
-
-
Developer: Generate Color Scheme From Current Settings'
-4. Copy the contents and paste them here!`}
- {...bindValue('customVSCodeTheme', true)}
- />
-
- )}
-
-
-
- );
-};
+
+
+
+
+);
diff --git a/packages/common/src/components/Preference/PreferenceText/elements.ts b/packages/common/src/components/Preference/PreferenceText/elements.ts
new file mode 100644
index 00000000000..797125fe89a
--- /dev/null
+++ b/packages/common/src/components/Preference/PreferenceText/elements.ts
@@ -0,0 +1,11 @@
+import styled from 'styled-components';
+
+import InputBase, { TextArea as TextAreaBase } from '../../Input';
+
+export const Input = styled(InputBase)`
+ width: 9rem;
+`;
+
+export const TextArea = styled(TextAreaBase)`
+ width: 9rem;
+`;
diff --git a/packages/common/src/components/Preference/PreferenceText.tsx b/packages/common/src/components/Preference/PreferenceText/index.tsx
similarity index 89%
rename from packages/common/src/components/Preference/PreferenceText.tsx
rename to packages/common/src/components/Preference/PreferenceText/index.tsx
index 66800ccece7..3b02d358899 100644
--- a/packages/common/src/components/Preference/PreferenceText.tsx
+++ b/packages/common/src/components/Preference/PreferenceText/index.tsx
@@ -5,7 +5,7 @@ import {
FunctionComponent,
} from 'react';
-import Input, { TextArea } from '../Input';
+import { Input, TextArea } from './elements';
type Props = {
block?: boolean;
@@ -15,7 +15,6 @@ type Props = {
setValue: (value: string) => void;
value: string;
} & Pick, 'style'>;
-
export const PreferenceText: FunctionComponent = ({
isTextArea,
placeholder,
@@ -28,10 +27,9 @@ export const PreferenceText: FunctionComponent = ({
};
return createElement(isTextArea ? TextArea : Input, {
- style: { width: '9rem' },
- value,
- placeholder,
onChange: handleChange,
+ placeholder,
+ value,
...props,
});
};