Signal-Desktop/ts/mediaEditor/util/getTextStyleAttributes.ts

45 lines
1.1 KiB
TypeScript

// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as log from '../../logging/log';
import { getHSL } from './color';
import { missingCaseError } from '../../util/missingCaseError';
export enum TextStyle {
Regular = 'Regular',
Highlight = 'Highlight',
Outline = 'Outline',
}
export function getTextStyleAttributes(
textStyle: TextStyle,
hueSliderValue: number
): {
fill: string;
stroke?: string;
strokeWidth: number;
textBackgroundColor: string;
} {
const color = getHSL(hueSliderValue);
switch (textStyle) {
case TextStyle.Regular:
return { fill: color, strokeWidth: 0, textBackgroundColor: '' };
case TextStyle.Highlight:
return {
fill: hueSliderValue >= 95 ? '#000' : '#fff',
strokeWidth: 0,
textBackgroundColor: color,
};
case TextStyle.Outline:
return {
fill: hueSliderValue >= 95 ? '#000' : '#fff',
stroke: color,
strokeWidth: 2,
textBackgroundColor: '',
};
default:
log.error(missingCaseError(textStyle));
return getTextStyleAttributes(TextStyle.Regular, hueSliderValue);
}
}