UNPKG

beathers

Version:

Beather is a lightweight SCSS library that serves as a comprehensive design system for your projects. It offers a structured and consistent approach to manage colors, fonts, and other design related variables, making it easier to maintain a cohesive visua

28 lines (27 loc) 1.42 kB
export function DeepMerge(defaults, configs) { if (!configs) return defaults; const { colors: tColors, roles: tRoles, settings: tSettings, typography: tTypography, glass: tGlass, } = defaults ?? {}; const { colors: sColors, roles: sRoles, settings: sSettings, typography: sTypography, glass: sGlass, } = configs ?? {}; const colors = { ...tColors, ...sColors }; const roles = { ...tRoles, ...sRoles }; const settings = { ...tSettings, ...sSettings, ...(tSettings?.breakpoints || (sSettings?.breakpoints && { breakpoints: { ...tSettings?.breakpoints, ...sSettings?.breakpoints } })), ...(tSettings?.wrappers || (sSettings?.wrappers && { wrappers: { ...tSettings?.wrappers, ...sSettings?.wrappers } })), ...(tSettings?.guttersValues || (sSettings?.guttersValues && { guttersValues: { ...tSettings?.guttersValues, ...sSettings?.guttersValues } })), }; const typography = { ...tTypography, ...sTypography, ...(tTypography?.fontSizes || (sTypography?.fontSizes && { fontSizes: { ...tTypography?.fontSizes, ...sTypography?.fontSizes } })), ...(tTypography?.fonts || (sTypography?.fonts && { fonts: { ...tTypography?.fonts, ...sTypography?.fonts } })), }; const glass = { ...tGlass, ...sGlass }; return { colors, roles, settings, typography, glass }; }