diff --git a/src/features/SetupFont/model/const/const.ts b/src/features/SetupFont/model/const/const.ts new file mode 100644 index 0000000..762016b --- /dev/null +++ b/src/features/SetupFont/model/const/const.ts @@ -0,0 +1,14 @@ +export const DEFAULT_FONT_SIZE = 16; +export const MIN_FONT_SIZE = 8; +export const MAX_FONT_SIZE = 100; +export const FONT_SIZE_STEP = 1; + +export const DEFAULT_FONT_WEIGHT = 400; +export const MIN_FONT_WEIGHT = 100; +export const MAX_FONT_WEIGHT = 900; +export const FONT_WEIGHT_STEP = 100; + +export const DEFAULT_LINE_HEIGHT = 1.5; +export const MIN_LINE_HEIGHT = 1; +export const MAX_LINE_HEIGHT = 2; +export const LINE_HEIGHT_STEP = 0.1; diff --git a/src/features/SetupFont/model/stores/fontSizeStore.ts b/src/features/SetupFont/model/stores/fontSizeStore.ts new file mode 100644 index 0000000..b7cbea3 --- /dev/null +++ b/src/features/SetupFont/model/stores/fontSizeStore.ts @@ -0,0 +1,17 @@ +import { + type ControlModel, + createControlStore, +} from '$shared/store/createControlStore'; +import { + DEFAULT_FONT_SIZE, + MAX_FONT_SIZE, + MIN_FONT_SIZE, +} from '../const/const'; + +const initialValue: ControlModel = { + value: DEFAULT_FONT_SIZE, + max: MAX_FONT_SIZE, + min: MIN_FONT_SIZE, +}; + +export const fontSizeStore = createControlStore(initialValue); diff --git a/src/features/SetupFont/model/stores/fontWeightStore.ts b/src/features/SetupFont/model/stores/fontWeightStore.ts new file mode 100644 index 0000000..4434088 --- /dev/null +++ b/src/features/SetupFont/model/stores/fontWeightStore.ts @@ -0,0 +1,19 @@ +import { + type ControlModel, + createControlStore, +} from '$shared/store/createControlStore'; +import { + DEFAULT_FONT_WEIGHT, + FONT_WEIGHT_STEP, + MAX_FONT_WEIGHT, + MIN_FONT_WEIGHT, +} from '../const/const'; + +const initialValue: ControlModel = { + value: DEFAULT_FONT_WEIGHT, + max: MAX_FONT_WEIGHT, + min: MIN_FONT_WEIGHT, + step: FONT_WEIGHT_STEP, +}; + +export const fontWeightStore = createControlStore(initialValue); diff --git a/src/features/SetupFont/model/stores/lineHeightStore.ts b/src/features/SetupFont/model/stores/lineHeightStore.ts new file mode 100644 index 0000000..557ed76 --- /dev/null +++ b/src/features/SetupFont/model/stores/lineHeightStore.ts @@ -0,0 +1,19 @@ +import { + type ControlModel, + createControlStore, +} from '$shared/store/createControlStore'; +import { + DEFAULT_LINE_HEIGHT, + LINE_HEIGHT_STEP, + MAX_LINE_HEIGHT, + MIN_LINE_HEIGHT, +} from '../const/const'; + +const initialValue: ControlModel = { + value: DEFAULT_LINE_HEIGHT, + max: MAX_LINE_HEIGHT, + min: MIN_LINE_HEIGHT, + step: LINE_HEIGHT_STEP, +}; + +export const lineHeightStore = createControlStore(initialValue); diff --git a/src/features/SetupFont/ui/SetupFontMenu.svelte b/src/features/SetupFont/ui/SetupFontMenu.svelte new file mode 100644 index 0000000..9de8b06 --- /dev/null +++ b/src/features/SetupFont/ui/SetupFontMenu.svelte @@ -0,0 +1,52 @@ + + +
+ + + + + + + + + +