|
|
|
|
@ -8,214 +8,183 @@ import {
|
|
|
|
|
buildInputSlider,
|
|
|
|
|
buildInputColor,
|
|
|
|
|
buildInvertCheckbox,
|
|
|
|
|
} from './themeInputs'
|
|
|
|
|
} from './theme-inputs'
|
|
|
|
|
import { CONTOUR_SETTINGS } from '../components/themes/contour/constants.ts'
|
|
|
|
|
|
|
|
|
|
const background = '#22233D'
|
|
|
|
|
|
|
|
|
|
export const defaultTheme: AppTheme = {
|
|
|
|
|
name: 'Random',
|
|
|
|
|
component: 'random',
|
|
|
|
|
color: {
|
|
|
|
|
background: '#19102e'
|
|
|
|
|
},
|
|
|
|
|
settings: [
|
|
|
|
|
pxratio(),
|
|
|
|
|
buildInputSlider({ min: 0.2 }),
|
|
|
|
|
buildInputSlider({ name: 'symmetry', min: 0.01, max: 2, value: 0.1 }),
|
|
|
|
|
buildInputSlider({ name: 'thickness', min: 0.01, max: 0.7, value: 0.1 }),
|
|
|
|
|
hueSlider(),
|
|
|
|
|
brightnessSlider(),
|
|
|
|
|
buildInvertCheckbox(),
|
|
|
|
|
randomButton,
|
|
|
|
|
resetButton
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
export const defaultTheme: AppTheme = CONTOUR_SETTINGS
|
|
|
|
|
|
|
|
|
|
export const AppThemes: AppTheme[] = [
|
|
|
|
|
defaultTheme,
|
|
|
|
|
CONTOUR_SETTINGS,
|
|
|
|
|
{
|
|
|
|
|
name: 'Sphere',
|
|
|
|
|
component: 'sphere',
|
|
|
|
|
color: {
|
|
|
|
|
background
|
|
|
|
|
},
|
|
|
|
|
name: 'Zappy',
|
|
|
|
|
component: 'zappy',
|
|
|
|
|
color: { background: '#000010' },
|
|
|
|
|
settings: [
|
|
|
|
|
pxratio(),
|
|
|
|
|
buildInvertCheckbox(),
|
|
|
|
|
hueSlider(),
|
|
|
|
|
brightnessSlider(),
|
|
|
|
|
buildInputSlider({ max: 10 }),
|
|
|
|
|
buildInputSlider({ value: 2, max: 3, min: 1.4, name: 'size' }),
|
|
|
|
|
buildInputSlider({ value: 5, min: 0, max: 15, step: 0.1 }),
|
|
|
|
|
buildInputSlider({ name: 'zoom', value: 0.2, min: 0.05, max: 0.6, step: 0.01 }),
|
|
|
|
|
buildInputSlider({ name: 'color-shift', value: 0, min: 0, max: 6.28, step: 0.05 }),
|
|
|
|
|
randomButton,
|
|
|
|
|
resetButton
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'Planet',
|
|
|
|
|
component: 'planet',
|
|
|
|
|
name: 'Rings3D',
|
|
|
|
|
component: 'rings3d',
|
|
|
|
|
color: {
|
|
|
|
|
background
|
|
|
|
|
background: '#0a0015'
|
|
|
|
|
},
|
|
|
|
|
settings: [
|
|
|
|
|
pxratio(),
|
|
|
|
|
buildInputSlider(),
|
|
|
|
|
{
|
|
|
|
|
name: 'position',
|
|
|
|
|
type: 'slider',
|
|
|
|
|
label: 'input.position',
|
|
|
|
|
value: 3.9,
|
|
|
|
|
icon: 'position',
|
|
|
|
|
options: {
|
|
|
|
|
step: 0.01,
|
|
|
|
|
max: 20,
|
|
|
|
|
min: 2.8,
|
|
|
|
|
changeOnUpdate: true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
buildInputSlider({ value: 5, min: 0, max: 15, step: 0.1 }),
|
|
|
|
|
buildInputSlider({ name: 'tube-size', value: 0.2, min: 0.02, max: 0.6, step: 0.01 }),
|
|
|
|
|
buildInputSlider({ name: 'bubble-size', value: 1.85, min: 0.5, max: 3.5, step: 0.05 }),
|
|
|
|
|
buildInputSlider({ name: 'fog-density', value: 0.8, min: 0.2, max: 1.0, step: 0.01 }),
|
|
|
|
|
buildInputSlider({ name: 'spectrum-speed', value: 6.0, min: 1.0, max: 12.0, step: 0.5 }),
|
|
|
|
|
buildInputColor({ name: 'color-glow', value: '#AAFFCE' }),
|
|
|
|
|
buildInputColor({ name: 'color-fog', value: '#9940B3' }),
|
|
|
|
|
randomButton,
|
|
|
|
|
resetButton
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'Destruction',
|
|
|
|
|
component: 'destruction',
|
|
|
|
|
name: 'Plasma',
|
|
|
|
|
component: 'plasma',
|
|
|
|
|
color: {
|
|
|
|
|
background: '#13122E'
|
|
|
|
|
background
|
|
|
|
|
},
|
|
|
|
|
settings: [
|
|
|
|
|
pxratio(),
|
|
|
|
|
buildInputSlider({ name: 'position', value: 0.1, icon: 'position', max: 1, min: 0.01 }),
|
|
|
|
|
buildInputSlider({ name: 'perspective', value: 0.1, icon: 'perspective', max: 1, min: 0.01 }),
|
|
|
|
|
buildInputSlider({ value: 10, max: 15 }),
|
|
|
|
|
hueSlider(),
|
|
|
|
|
buildInputSlider({ value: 10, max: 25 }),
|
|
|
|
|
randomButton,
|
|
|
|
|
resetButton
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'Rings',
|
|
|
|
|
component: 'rings',
|
|
|
|
|
name: 'Flow',
|
|
|
|
|
component: 'flow',
|
|
|
|
|
color: {
|
|
|
|
|
background
|
|
|
|
|
},
|
|
|
|
|
settings: [
|
|
|
|
|
pxratio(),
|
|
|
|
|
buildInputSlider(),
|
|
|
|
|
buildInputSlider({ name: 'hue', value: 0, icon: 'hue', max: 0.5, min: -0.5 }),
|
|
|
|
|
buildInputSlider({ name: 'zoom', value: 32, icon: 'zoom', max: 100, min: 2 }),
|
|
|
|
|
hueSlider(),
|
|
|
|
|
brightnessSlider(),
|
|
|
|
|
buildInvertCheckbox(),
|
|
|
|
|
buildInputSlider({ value: 10, max: 15 }),
|
|
|
|
|
buildInputSlider({ value: 1, max: 2.8, min: 0.2, name: 'size' }),
|
|
|
|
|
randomButton,
|
|
|
|
|
resetButton
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'Tenderness',
|
|
|
|
|
component: 'tenderness',
|
|
|
|
|
name: 'Tunnel',
|
|
|
|
|
component: 'tunnel',
|
|
|
|
|
color: {
|
|
|
|
|
background
|
|
|
|
|
background: '#000014'
|
|
|
|
|
},
|
|
|
|
|
settings: [
|
|
|
|
|
pxratio(),
|
|
|
|
|
buildInputSlider({ value: 10, max: 15 }),
|
|
|
|
|
buildInputSlider({ value: 5, max: 15 }),
|
|
|
|
|
buildInputSlider({ name: 'step', value: 0.07, min: 0.01, max: 0.3, step: 0.01 }),
|
|
|
|
|
buildInputSlider({ name: 'frequency', value: 9, min: 1, max: 20, step: 0.5 }),
|
|
|
|
|
buildInputSlider({ name: 'amplitude', value: 1, min: 0, max: 3, step: 0.1 }),
|
|
|
|
|
buildInputSlider({ name: 'brightness',value: 0.01, min: 0.001,max: 0.05, step: 0.001 }),
|
|
|
|
|
randomButton,
|
|
|
|
|
resetButton
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'Plasma',
|
|
|
|
|
component: 'plasma',
|
|
|
|
|
name: 'Planet',
|
|
|
|
|
component: 'planet',
|
|
|
|
|
color: {
|
|
|
|
|
background
|
|
|
|
|
},
|
|
|
|
|
settings: [
|
|
|
|
|
pxratio(),
|
|
|
|
|
hueSlider(),
|
|
|
|
|
buildInputSlider({ value: 10, max: 25 }),
|
|
|
|
|
buildInputSlider(),
|
|
|
|
|
buildInputSlider({ name: 'position', value: 3.9, icon: 'position', step: 0.01, max: 20, min: 2.8 }),
|
|
|
|
|
randomButton,
|
|
|
|
|
resetButton
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'Flow',
|
|
|
|
|
component: 'flow',
|
|
|
|
|
name: 'Destruction',
|
|
|
|
|
component: 'destruction',
|
|
|
|
|
color: {
|
|
|
|
|
background
|
|
|
|
|
background: '#13122E'
|
|
|
|
|
},
|
|
|
|
|
settings: [
|
|
|
|
|
pxratio(),
|
|
|
|
|
hueSlider(),
|
|
|
|
|
brightnessSlider(),
|
|
|
|
|
buildInvertCheckbox(),
|
|
|
|
|
buildInputSlider({ name: 'position', value: 0.1, icon: 'position', max: 1, min: 0.01 }),
|
|
|
|
|
buildInputSlider({ name: 'perspective', value: 0.1, icon: 'perspective', max: 1, min: 0.01 }),
|
|
|
|
|
buildInputSlider({ value: 10, max: 15 }),
|
|
|
|
|
buildInputSlider({ value: 1, max: 2.8, min: 0.2, name: 'size' }),
|
|
|
|
|
randomButton,
|
|
|
|
|
resetButton
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'Tunnel',
|
|
|
|
|
component: 'tunnel',
|
|
|
|
|
name: 'Rings',
|
|
|
|
|
component: 'rings',
|
|
|
|
|
color: {
|
|
|
|
|
background: '#000014'
|
|
|
|
|
background
|
|
|
|
|
},
|
|
|
|
|
settings: [
|
|
|
|
|
pxratio(),
|
|
|
|
|
buildInputSlider({ value: 5, max: 15 }),
|
|
|
|
|
buildInputSlider({ name: 'step', value: 0.07, min: 0.01, max: 0.3, step: 0.01 }),
|
|
|
|
|
buildInputSlider({ name: 'frequency', value: 9, min: 1, max: 20, step: 0.5 }),
|
|
|
|
|
buildInputSlider({ name: 'amplitude', value: 1, min: 0, max: 3, step: 0.1 }),
|
|
|
|
|
buildInputSlider({ name: 'brightness',value: 0.01, min: 0.001,max: 0.05, step: 0.001 }),
|
|
|
|
|
buildInputSlider(),
|
|
|
|
|
buildInputSlider({ name: 'hue', value: 0, icon: 'hue', max: 0.5, min: -0.5 }),
|
|
|
|
|
buildInputSlider({ name: 'zoom', value: 32, icon: 'zoom', max: 100, min: 2 }),
|
|
|
|
|
randomButton,
|
|
|
|
|
resetButton
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'Rings3D',
|
|
|
|
|
component: 'rings3d',
|
|
|
|
|
name: 'Tenderness',
|
|
|
|
|
component: 'tenderness',
|
|
|
|
|
color: {
|
|
|
|
|
background: '#0a0015'
|
|
|
|
|
background
|
|
|
|
|
},
|
|
|
|
|
settings: [
|
|
|
|
|
pxratio(),
|
|
|
|
|
buildInputSlider({ value: 5, min: 0, max: 15, step: 0.1 }),
|
|
|
|
|
buildInputSlider({ name: 'tube-size', value: 0.2, min: 0.02, max: 0.6, step: 0.01 }),
|
|
|
|
|
buildInputSlider({ name: 'bubble-size', value: 1.85, min: 0.5, max: 3.5, step: 0.05 }),
|
|
|
|
|
buildInputSlider({ name: 'fog-density', value: 0.8, min: 0.2, max: 1.0, step: 0.01 }),
|
|
|
|
|
buildInputSlider({ name: 'spectrum-speed', value: 6.0, min: 1.0, max: 12.0, step: 0.5 }),
|
|
|
|
|
buildInputColor({ name: 'color-glow', value: '#AAFFCE' }),
|
|
|
|
|
buildInputColor({ name: 'color-fog', value: '#9940B3' }),
|
|
|
|
|
buildInputSlider({ value: 10, max: 15 }),
|
|
|
|
|
randomButton,
|
|
|
|
|
resetButton
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'Zappy',
|
|
|
|
|
component: 'zappy',
|
|
|
|
|
color: { background: '#000010' },
|
|
|
|
|
name: 'Sphere',
|
|
|
|
|
component: 'sphere',
|
|
|
|
|
color: {
|
|
|
|
|
background
|
|
|
|
|
},
|
|
|
|
|
settings: [
|
|
|
|
|
pxratio(),
|
|
|
|
|
buildInputSlider({ value: 5, min: 0, max: 15, step: 0.1 }),
|
|
|
|
|
buildInputSlider({ name: 'zoom', value: 0.2, min: 0.05, max: 0.6, step: 0.01 }),
|
|
|
|
|
buildInputSlider({ name: 'color-shift', value: 0, min: 0, max: 6.28, step: 0.05 }),
|
|
|
|
|
buildInvertCheckbox(),
|
|
|
|
|
hueSlider(),
|
|
|
|
|
brightnessSlider(),
|
|
|
|
|
buildInputSlider({ max: 10 }),
|
|
|
|
|
buildInputSlider({ value: 2, max: 3, min: 1.4, name: 'size' }),
|
|
|
|
|
randomButton,
|
|
|
|
|
resetButton
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'Contour',
|
|
|
|
|
component: 'contour',
|
|
|
|
|
name: 'Random',
|
|
|
|
|
component: 'random',
|
|
|
|
|
color: {
|
|
|
|
|
background: '#0a001a'
|
|
|
|
|
background: '#19102e'
|
|
|
|
|
},
|
|
|
|
|
settings: [
|
|
|
|
|
pxratio(),
|
|
|
|
|
buildInputSlider({ value: 3, min: 0, max: 15, step: 0.1 }),
|
|
|
|
|
buildInputSlider({ name: 'scale', value: 3, min: 1, max: 8, step: 0.1 }),
|
|
|
|
|
buildInputSlider({ name: 'contour', value: 32, min: 2, max: 64, step: 1 }),
|
|
|
|
|
buildInputSlider({ name: 'width', value: 0.15, min: 0.01, max: 1, step: 0.01 }),
|
|
|
|
|
buildInputSlider({ name: 'max-line', value: 0.3, min: 0.01, max: 1, step: 0.01 }),
|
|
|
|
|
|
|
|
|
|
buildInputColor({ name: 'color-active', value: '#FF00FF' }),
|
|
|
|
|
buildInputColor({ name: 'color-second', value: '#00FFFF' }),
|
|
|
|
|
buildInputColor({ name: 'color-bg', value: '#000000' }),
|
|
|
|
|
buildInputSlider({ min: 0.2 }),
|
|
|
|
|
buildInputSlider({ name: 'symmetry', min: 0.01, max: 2, value: 0.1 }),
|
|
|
|
|
buildInputSlider({ name: 'thickness', min: 0.01, max: 0.7, value: 0.1 }),
|
|
|
|
|
hueSlider(),
|
|
|
|
|
brightnessSlider(),
|
|
|
|
|
buildInvertCheckbox(),
|
|
|
|
|
randomButton,
|
|
|
|
|
resetButton
|
|
|
|
|
]
|
|
|
|
|
|