scrabble-solver
Version:
Scrabble Solver 2 - Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Literaki, and Kelimelik. Quickly find the top-scoring words using the given board and tiles.
142 lines (114 loc) • 4.4 kB
text/typescript
import { ResultColumnId } from 'types';
export const BREAKPOINTS = {
xs: 480,
s: 768,
m: 992,
l: 1200,
xl: 1400,
};
export const TRANSITION = 'var(--transition)';
export const GITHUB_PROJECT_URL = 'https://github.com/kamilmielnik/scrabble-solver';
export const TRANSITION_DURATION = 100;
export const TRANSITION_DURATION_LONG = 250;
export const COLOR_BLUE = '#c7d8f9';
export const COLOR_GREEN = '#bae3ba';
export const COLOR_RED = '#f7c2aa';
export const COLOR_YELLOW = '#efe3ae';
export const COLOR_BONUS_CHARACTER_1 = '#f7f1d6';
export const COLOR_BONUS_CHARACTER_2 = '#d6ebd6';
export const COLOR_BONUS_CHARACTER_3 = '#dde4f6';
export const COLOR_BONUS_CHARACTER_5 = '#fbe0d4';
export const COLOR_BONUS_CHARACTER_MULTIPLIER_2 = '#b8d5ed';
export const COLOR_BONUS_CHARACTER_MULTIPLIER_3 = '#86aed1';
export const COLOR_BONUS_CHARACTER_MULTIPLIER_4 = '#3477b2';
export const COLOR_BONUS_START = '#b284b8';
export const COLOR_BONUS_WORD_MULTIPLIER_2 = '#fbc997';
export const COLOR_BONUS_WORD_MULTIPLIER_3 = '#f19393';
export const COLOR_BONUS_WORD_MULTIPLIER_4 = '#ed5e5e';
export const COLOR_FILTERED = '#444';
export const COLOR_BACKGROUND = '#f4f4f4';
export const COLOR_BONUS_CHARACTER: Record<number, string> = {
1: COLOR_BONUS_CHARACTER_1,
2: COLOR_BONUS_CHARACTER_2,
3: COLOR_BONUS_CHARACTER_3,
5: COLOR_BONUS_CHARACTER_5,
};
export const COLOR_BONUS_CHARACTER_MULTIPLIER: Record<number, string> = {
2: COLOR_BONUS_CHARACTER_MULTIPLIER_2,
3: COLOR_BONUS_CHARACTER_MULTIPLIER_3,
4: COLOR_BONUS_CHARACTER_MULTIPLIER_4,
};
export const COLOR_BONUS_WORD: Record<number, string> = {
2: COLOR_BONUS_WORD_MULTIPLIER_2,
3: COLOR_BONUS_WORD_MULTIPLIER_3,
4: COLOR_BONUS_WORD_MULTIPLIER_4,
};
export const SPACING_XS = 2;
export const SPACING_S = 5;
export const SPACING_M = 10;
export const SPACING_L = 20;
export const SPACING_XL = 40;
export const COMPONENTS_SPACING = SPACING_XL;
export const COMPONENTS_SPACING_SMALL = SPACING_L;
export const BOARD_CELL_ACTIONS_OFFSET = 3;
export const BOARD_CELL_BORDER_WIDTH = 1;
export const BOARD_TILE_FONT_SIZE_MIN = 14;
export const BOARD_TILE_FONT_SIZE_POINTS_MIN = 10;
export const BOARD_TILE_SIZE_MAX = 64;
export const BORDER_COLOR = '#cdcdcd';
export const BORDER_COLOR_LIGHT = '#d9d9d9';
export const BORDER_RADIUS = 5;
export const BORDER_WIDTH = 1;
export const BUTTON_ICON_SIZE = 24;
export const BUTTON_PADDING_VERTICAL = SPACING_M;
export const BUTTON_HEIGHT = BUTTON_ICON_SIZE + 2 * BUTTON_PADDING_VERTICAL + 2 * BORDER_WIDTH;
export const DICTIONARY_HEIGHT = 260;
export const DICTIONARY_HEIGHT_MOBILE = 110;
export const LOGO_ASPECT_RATIO = 682 / 166;
export const LOGO_HEIGHT = 60;
export const LOGO_HEIGHT_SMALL = 48;
export const LOGO_SRC = '/logo.svg';
export const MODAL_WIDTH = 370;
export const MODAL_HEADER_HEIGHT = 45;
export const NAV_PADDING = SPACING_L;
export const TILE_SIZE = 80;
export const TOOLTIP_DURATION = TRANSITION_DURATION;
export const PLAIN_TILES_COLOR_DEFAULT = COLOR_GREEN;
export const PLAIN_TILES_PADDING_HORIZONTAL = 0;
export const PLAIN_TILES_PADDING_VERTICAL = 0;
export const PLAIN_TILES_POINTS_COLORS: Record<number, string> = {
1: COLOR_YELLOW,
2: COLOR_GREEN,
3: COLOR_BLUE,
4: COLOR_RED,
5: COLOR_RED,
6: COLOR_RED,
7: COLOR_RED,
8: COLOR_RED,
9: COLOR_RED,
10: COLOR_RED,
};
export const PLAIN_TILES_TILE_MARGIN = 6;
export const PLAIN_TILES_TILE_MAX_ROTATE = 0;
export const PLAIN_TILES_TILE_MAX_SCATTER = 0;
export const PLAIN_TILES_TILE_SIZE = 80;
export const PLAIN_TILES_VERSION_TILE_COLOR = COLOR_GREEN;
export const PLAIN_TILES_VERSION_TILE_SIZE = TILE_SIZE;
export const PROGRESS_COLOR_VALUE = 'var(--color--violet--light)';
export const PROGRESS_COLOR_BACKGROUND = 'var(--color--inactive)';
export const RACK_TILE_SIZE_MAX = 80;
export const REMAINING_TILES_TILE_SIZE = 50;
export const RESULTS_COLUMN_WIDTH: Record<ResultColumnId, number | undefined> = {
[ResultColumnId.BlanksCount]: 55,
[ResultColumnId.ConsonantsCount]: 55,
[ResultColumnId.Coordinates]: 55,
[ResultColumnId.Points]: 80,
[ResultColumnId.TilesCount]: 55,
[ResultColumnId.VowelsCount]: 55,
[ResultColumnId.Word]: undefined,
[ResultColumnId.WordsCount]: 55,
};
export const RESULTS_ITEM_HEIGHT = 40;
export const RESULTS_HEADER_HEIGHT = RESULTS_ITEM_HEIGHT;
export const SOLVER_COLUMN_WIDTH = 580;
export const TEXT_INPUT_HEIGHT = 40;