Skip to content

Commit

Permalink
Some refactors and performance improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
catuhana committed Jan 4, 2024
1 parent 35279de commit c5f4c6e
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 15 deletions.
26 changes: 13 additions & 13 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import {
flavors as flavours,
flavorEntries as flavourEntries,
type ColorFormat as ColourFormat,
} from '@catppuccin/palette';

import { generateShadePalette } from './shade.ts';
Expand All @@ -19,29 +20,28 @@ export const extendCatppuccin = (options: ExtenderOptions = {}): Preset => {
extendTheme: (theme: any) => {
theme['colors'] ??= {};

let target = prefix ? (theme['colors'][prefix] ??= {}) : theme['colors'];
const target = prefix
? (theme['colors'][prefix] ??= {})
: theme['colors'];

const colourProcessor = generateShades
? generateShadePalette
: (colour: ColourFormat) => colour.hex;

if (defaultFlavour && flavours[defaultFlavour]) {
for (let [colourName, colour] of flavours[defaultFlavour]
for (const [colourName, colour] of flavours[defaultFlavour]
.colorEntries) {
if (target[colourName]) continue;

if (generateShades) {
target[colourName] ??= generateShadePalette(colour);
} else {
target[colourName] = colour.hex;
}
target[colourName] ??= colourProcessor(colour);
}
} else {
for (let [flavourName, flavour] of flavourEntries) {
if (target[flavourName]) continue;

target[flavourName] ??= {};
for (let [colourName, colour] of flavour.colorEntries) {
if (generateShades) {
target[flavourName][colourName] = generateShadePalette(colour);
} else {
target[flavourName][colourName] = colour.hex;
}
for (const [colourName, colour] of flavour.colorEntries) {
target[flavourName][colourName] ??= colourProcessor(colour);
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/shade.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import { useMode, modeHsl, modeRgb, formatHex, interpolate } from 'culori/fn';

import { SHADE_RANGE } from './constants.ts';

import type { ColorFormat } from '@catppuccin/palette';
import type { ColorFormat as ColourFormat } from '@catppuccin/palette';

useMode(modeHsl);
useMode(modeRgb);

export const generateShadePalette = (colour: ColorFormat) => {
export const generateShadePalette = (colour: ColourFormat) => {
let resultObject = {} as Record<keyof typeof SHADE_RANGE | 'DEFAULT', string>;

const colourShade = mapLightnessToShadeRange(colour.hsl.l * 100);
Expand Down

0 comments on commit c5f4c6e

Please sign in to comment.