beathers 5.4.1 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,6 +31,12 @@ async function getDefaultValues() {
31
31
  'guttersValues',
32
32
  'bordersValue',
33
33
  'radiuses',
34
+ 'glassBlur',
35
+ 'glassColor',
36
+ 'glassBorderThickness',
37
+ 'glassBorder1Color',
38
+ 'glassBorder2Color',
39
+ 'glassLightAngle',
34
40
  'useMediaQueries',
35
41
  'useIcons',
36
42
  'useFontFamilies',
@@ -61,6 +67,7 @@ async function getDefaultValues() {
61
67
  'useBorders',
62
68
  'useTextBorders',
63
69
  'useRadius',
70
+ 'useGlass',
64
71
  ]));
65
72
  }
66
73
  export async function Init() {
@@ -1,3 +1,3 @@
1
1
  import { Theme } from '../types.js';
2
- export declare function BuildScssVariables(theme: Theme): string;
2
+ export declare function BuildScssVariables(theme: Theme, isLocalBuild?: boolean): string;
3
3
  //# sourceMappingURL=BuildScssVariables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BuildScssVariables.d.ts","sourceRoot":"","sources":["../../src/scripts/helpers/BuildScssVariables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAiJnC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAUvD"}
1
+ {"version":3,"file":"BuildScssVariables.d.ts","sourceRoot":"","sources":["../../src/scripts/helpers/BuildScssVariables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAwKnC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,GAAE,OAAe,GAAG,MAAM,CAWtF"}
@@ -15,12 +15,19 @@ function BuildColors(colors) {
15
15
  scss += '$colors: ();\n';
16
16
  return scss;
17
17
  }
18
- function BuildTypography(typography) {
18
+ function BuildTypography(typography, isLocalBuild = false) {
19
19
  let scss = '\n\n// --- Typography ---\n';
20
20
  scss += '$defaultFontFamilies:';
21
21
  scss += typography?.defaultFontFamilies?.length ? typography.defaultFontFamilies.join(', ').replace(/"/g, '') : 'null';
22
22
  scss += ';\n';
23
- scss += `$fontMainPath: ${typography?.fontMainPath ? `"${typography.fontMainPath}"` : 'null'};\n`;
23
+ let fontPath = typography?.fontMainPath || null;
24
+ if (fontPath && !isLocalBuild) {
25
+ if (!fontPath.startsWith('/'))
26
+ fontPath = `../../../${fontPath}`;
27
+ else
28
+ fontPath = `../../..${fontPath}`;
29
+ }
30
+ scss += `$fontMainPath: ${fontPath ? `"${fontPath}"` : 'null'};\n`;
24
31
  scss += `$fontFormat: ${typography?.fontFormat ? `"${typography.fontFormat}"` : 'null'};\n`;
25
32
  scss += '$fontWeights: (';
26
33
  scss += typography?.fontWeights?.length ? typography.fontWeights.map((fW) => `"${fW}"`).join(', ') : '';
@@ -127,12 +134,28 @@ function BuildRoles(roles) {
127
134
  }
128
135
  return scss;
129
136
  }
130
- export function BuildScssVariables(theme) {
131
- const { colors, roles, settings, typography } = theme;
137
+ function BuildGlass(glass) {
138
+ if (!glass)
139
+ return '';
140
+ let scss = '\n\n// --- Glass ---\n';
141
+ scss += `$glassBlur: ${glass.blur};\n`;
142
+ scss += `$glassColorLight: ${glass.glassColor?.light};\n`;
143
+ scss += `$glassColorDark: ${glass.glassColor?.dark};\n`;
144
+ scss += `$glassBorderThickness: ${glass.borderThickness};\n`;
145
+ scss += `$glassBorder1ColorLight: ${glass.border1Color?.light};\n`;
146
+ scss += `$glassBorder1ColorDark: ${glass.border1Color?.dark};\n`;
147
+ scss += `$glassBorder2ColorLight: ${glass.border2Color?.light};\n`;
148
+ scss += `$glassBorder2ColorDark: ${glass.border2Color?.dark};\n`;
149
+ scss += `$glassLightAngle: ${glass.lightAngle};\n`;
150
+ return scss;
151
+ }
152
+ export function BuildScssVariables(theme, isLocalBuild = false) {
153
+ const { colors, roles, settings, typography, glass } = theme;
132
154
  let scss = '// Generated by Beathers builder\n // Do not edit this file directly\n\n';
133
155
  scss += BuildColors(colors);
134
- scss += BuildTypography(typography);
156
+ scss += BuildTypography(typography, isLocalBuild);
135
157
  scss += BuildSettings(settings);
136
158
  scss += BuildRoles(roles);
159
+ scss += BuildGlass(glass);
137
160
  return scss;
138
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReadDefaultValues.d.ts","sourceRoot":"","sources":["../../src/scripts/helpers/ReadDefaultValues.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2C,KAAK,EAAE,MAAM,aAAa,CAAA;AAmF5E,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAmGzG"}
1
+ {"version":3,"file":"ReadDefaultValues.d.ts","sourceRoot":"","sources":["../../src/scripts/helpers/ReadDefaultValues.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2C,KAAK,EAAE,MAAM,aAAa,CAAA;AAmF5E,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CA8GzG"}
@@ -108,6 +108,8 @@ export async function ReadDefaultValues(files, VariableNames) {
108
108
  result = buildArray(value);
109
109
  else if (['axisDivisions'].includes(name))
110
110
  result = cleanNumber(value);
111
+ else if (['glassColor', 'glassBorder1Color', 'glassBorder2Color'].includes(name))
112
+ result = buildColors(value);
111
113
  else
112
114
  result = cleanString(value);
113
115
  variables[name] = result;
@@ -167,6 +169,15 @@ export async function ReadDefaultValues(files, VariableNames) {
167
169
  useBorders: variables?.useBorders,
168
170
  useTextBorders: variables?.useTextBorders,
169
171
  useRadius: variables?.useRadius,
172
+ useGlass: variables?.useGlass,
173
+ };
174
+ theme.glass = {
175
+ blur: variables?.glassBlur,
176
+ glassColor: variables?.glassColor,
177
+ borderThickness: variables?.glassBorderThickness,
178
+ border1Color: variables?.glassBorder1Color,
179
+ border2Color: variables?.glassBorder2Color,
180
+ lightAngle: variables?.glassLightAngle,
170
181
  };
171
182
  return theme;
172
183
  }
@@ -1,5 +1,5 @@
1
1
  /** CSS size unit values supporting px, rem, em, viewport units, and percentages */
2
- type SizeUnit = `${number}px` | `${number}rem` | `${number}em` | `${number}vw` | `${number}vh` | `${number}%`;
2
+ type SizeUnit = 0 | `${number}px` | `${number}rem` | `${number}em` | `${number}vw` | `${number}vh` | `${number}%`;
3
3
  /** Color configuration object with optional light and dark theme hex values */
4
4
  type ColorType = Record<string, {
5
5
  light?: `#${string}`;
@@ -71,8 +71,25 @@ interface Settings {
71
71
  /** Gutter values for spacing utilities */
72
72
  guttersValues?: Record<'auto' | number, 'auto' | SizeUnit>;
73
73
  }
74
+ interface Glass {
75
+ blur?: 0 | `${number}px`;
76
+ glassColor?: {
77
+ light?: `#${string}`;
78
+ dark?: `#${string}`;
79
+ };
80
+ borderThickness?: SizeUnit;
81
+ border1Color?: {
82
+ light?: `#${string}`;
83
+ dark?: `#${string}`;
84
+ };
85
+ border2Color?: {
86
+ light?: `#${string}`;
87
+ dark?: `#${string}`;
88
+ };
89
+ lightAngle?: `${number}deg`;
90
+ }
74
91
  /** Available feature keys for enabling/disabling CSS utilities */
75
- type RoleKeys = 'useMediaQueries' | 'useIcons' | 'useFontFamilies' | 'useFontSizes' | 'useFontShapes' | 'useTextAligns' | 'useTextTruncate' | 'useColors' | 'useColorsOpacities' | 'useColorsLightMode' | 'useColorsDarkMode' | 'useCurrentColors' | 'useRootColors' | 'useGrid' | 'useFlex' | 'useTransitions' | 'useWrappers' | 'useShadows' | 'useDisplays' | 'useOverflows' | 'useOpacities' | 'useBlur' | 'useObjectFits' | 'usePositions' | 'useInsets' | 'useSizes' | 'useGutters' | 'useBorders' | 'useTextBorders' | 'useRadius';
92
+ type RoleKeys = 'useMediaQueries' | 'useIcons' | 'useFontFamilies' | 'useFontSizes' | 'useFontShapes' | 'useTextAligns' | 'useTextTruncate' | 'useColors' | 'useColorsOpacities' | 'useColorsLightMode' | 'useColorsDarkMode' | 'useCurrentColors' | 'useRootColors' | 'useGrid' | 'useFlex' | 'useTransitions' | 'useWrappers' | 'useShadows' | 'useDisplays' | 'useOverflows' | 'useOpacities' | 'useBlur' | 'useObjectFits' | 'usePositions' | 'useInsets' | 'useSizes' | 'useGutters' | 'useBorders' | 'useTextBorders' | 'useRadius' | 'useGlass';
76
93
  /** Feature toggles for enabling/disabling CSS utility generation. @default all true */
77
94
  type Roles = Partial<Record<RoleKeys, boolean>>;
78
95
  /** Main theme configuration object containing all design system settings */
@@ -85,6 +102,8 @@ interface Theme {
85
102
  settings?: Settings;
86
103
  /** Feature flags for controlling which CSS utilities are generated */
87
104
  roles?: Roles;
105
+ /** Optional glassmorphism settings for frosted glass effects */
106
+ glass?: Glass;
88
107
  }
89
- export type { SizeUnit, ColorType, FontWeight, FontStyle, FontVariant, FontType, Typography, Settings, RoleKeys, Roles, Theme, };
108
+ export type { SizeUnit, ColorType, FontWeight, FontStyle, FontVariant, FontType, Typography, Settings, RoleKeys, Glass, Roles, Theme, };
90
109
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/scripts/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/scripts/types.ts"],"names":[],"mappings":"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"}
@@ -61,3 +61,4 @@ $useGutters: true;
61
61
  $useBorders: true;
62
62
  $useTextBorders: true;
63
63
  $useRadius: true;
64
+ $useGlass: true;
@@ -244,7 +244,7 @@
244
244
 
245
245
  @font-face {
246
246
  font-family: 'beathers';
247
- src: url('/fonts/beathers.woff') format('woff');
247
+ src: url('../public/fonts/beathers.woff') format('woff');
248
248
  }
249
249
 
250
250
  .be {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Beathers v5.4.1 (https://bhoenixstudio.com/beathers)
2
+ * Beathers v5.5.0 (https://bhoenixstudio.com/beathers)
3
3
  * Copyright 2020-2025 Bhoenix Studio
4
4
  */
5
5
 
@@ -44,7 +44,7 @@ $fontMainPath: if(vars.$fontMainPath != null, vars.$fontMainPath, defs.$fontMain
44
44
  // // unicode-range: U+000-5FF;
45
45
  // // }
46
46
  //
47
- @mixin font($title, $weight, $format, $style, $index: 0, $unicode: null, $isLocal: true, $externalUrl: '') {
47
+ @mixin font($key, $title, $weight, $format, $style, $index: 0, $unicode: null, $isLocal: true, $externalUrl: '') {
48
48
  // Validate parameters
49
49
  $checkedIsLocal: val.boolean($isLocal, '#{$title}.font().local');
50
50
  $checkedTitle: val.string($title, '#{$title}.font().title');
@@ -62,7 +62,7 @@ $fontMainPath: if(vars.$fontMainPath != null, vars.$fontMainPath, defs.$fontMain
62
62
  $checkedExternalUrl: val.string($externalUrl, 'Typographic.fontFace.externalUrl');
63
63
  }
64
64
 
65
- $name: if($index == 0, $title, '#{$title}-#{$index}');
65
+ $name: if($index == 0, $title, '#{$key}\:#{$title}');
66
66
  $weightValue: map.get(configs.$fontWeightsValues, $weight);
67
67
 
68
68
  @font-face {
@@ -68,7 +68,7 @@ $colors: (
68
68
  'info': (
69
69
  'light': #0c8181,
70
70
  'dark': #49d1d1,
71
- )
71
+ ),
72
72
  ) !default;
73
73
 
74
74
  // Typography
@@ -176,3 +176,25 @@ $bordersValue: (1, 2, 3) !default;
176
176
 
177
177
  // Defines available border-radius values.
178
178
  $radiuses: (5, 10) !default;
179
+
180
+ // Glassmorphism settings
181
+ $glassBlur: 8px !default;
182
+ // Glassmorphism color settings for light and dark modes
183
+ $glassColor: (
184
+ 'light': #ffffff,
185
+ 'dark': #000000,
186
+ ) !default;
187
+ // Glassmorphism border thickness
188
+ $glassBorderThickness: 1px !default;
189
+ // Glassmorphism border 1 settings for light and dark modes
190
+ $glassBorder1Color: (
191
+ 'light': #e6e6e6,
192
+ 'dark': #303030,
193
+ ) !default;
194
+ // Glassmorphism border 2 settings for light and dark modes
195
+ $glassBorder2Color: (
196
+ 'light': #e6e6e6,
197
+ 'dark': #303030,
198
+ ) !default;
199
+ // Glassmorphism light angle
200
+ $glassLightAngle: 45deg !default;
@@ -66,3 +66,5 @@ $useBorders: true !default;
66
66
  $useTextBorders: true !default;
67
67
  // Enables or disables border-radius utilities.
68
68
  $useRadius: true !default;
69
+ // Enables or disables glass effect utilities.
70
+ $useGlass: true !default;
@@ -0,0 +1,84 @@
1
+ @use '../functions/colors' as colors;
2
+ @use '../settings/index' as settings;
3
+ @use '../settings/defaults' as defs;
4
+ @use '../variables' as vars;
5
+
6
+ // Definitions
7
+ $useGlass: if(vars.$useGlass != null, vars.$useGlass, settings.$useGlass);
8
+ $useColorsLightMode: if(vars.$useColorsLightMode != null, vars.$useColorsLightMode, settings.$useColorsLightMode);
9
+ $useColorsDarkMode: if(vars.$useColorsDarkMode != null, vars.$useColorsDarkMode, settings.$useColorsDarkMode);
10
+ $glassBlur: if(vars.$glassBlur != null, vars.$glassBlur, defs.$glassBlur);
11
+ $glassColor: if(vars.$glassColor != null, vars.$glassColor, defs.$glassColor);
12
+ $glassBorderThickness: if(vars.$glassBorderThickness != null, vars.$glassBorderThickness, defs.$glassBorderThickness);
13
+ $border1Color: if(vars.$border1Color != null, vars.$border1Color, defs.$border1Color);
14
+ $border2Color: if(vars.$border2Color != null, vars.$border2Color, defs.$border2Color);
15
+ $glassLightAngle: if(vars.$glassLightAngle != null, vars.$glassLightAngle, defs.$glassLightAngle);
16
+
17
+ @if $useGlass {
18
+ :root {
19
+ --glass-blur: #{$glassBlur};
20
+ --glass-color-light: colors.hexToRgba(map-get($glassColor, 'light'), 0.15, 'Glass.light');
21
+ --glass-color-dark: colors.hexToRgba(map-get($glassColor, 'dark'), 0.15, 'Glass.dark');
22
+ --glass-border-thickness: #{$glassBorderThickness};
23
+ --glass-border-1-color-light: colors.hexToRgba(map-get($border1Color, 'light'), 0.4, 'Glass.light');
24
+ --glass-border-1-color-dark: colors.hexToRgba(map-get($border1Color, 'dark'), 0.4, 'Glass.dark');
25
+ --glass-border-2-color-light: colors.hexToRgba(map-get($border2Color, 'light'), 0.1, 'Glass.light');
26
+ --glass-border-2-color-dark: colors.hexToRgba(map-get($border2Color, 'dark'), 0.1, 'Glass.dark');
27
+ --glass-light-angle: #{$glassLightAngle};
28
+ }
29
+
30
+ .bg\:glass {
31
+ position: relative;
32
+ isolation: isolate;
33
+ backdrop-filter: blur(var(--glass-blur));
34
+
35
+ &::before {
36
+ content: '';
37
+ position: absolute;
38
+ inset: 0;
39
+ border-radius: inherit;
40
+ border: var(--glass-border-thickness) solid transparent;
41
+ mask:
42
+ linear-gradient(black, black) border-box,
43
+ linear-gradient(black, black) padding-box;
44
+ mask-composite: subtract;
45
+ z-index: -1;
46
+ }
47
+
48
+ @if ($useColorsLightMode) {
49
+ .light &,
50
+ .light\:#{&},
51
+ &.light {
52
+ background: var(--glass-color-light);
53
+
54
+ &::before {
55
+ background: linear-gradient(
56
+ var(--glass-light-angle),
57
+ var(--glass-border-2-color-light),
58
+ var(--glass-border-1-color-light),
59
+ var(--glass-border-2-color-light)
60
+ )
61
+ border-box;
62
+ }
63
+ }
64
+ }
65
+
66
+ @if ($useColorsDarkMode) {
67
+ .dark &,
68
+ .dark\:#{&},
69
+ &.dark {
70
+ background: var(--glass-color-dark);
71
+
72
+ &::before {
73
+ background: linear-gradient(
74
+ var(--glass-light-angle),
75
+ var(--glass-border-2-color-dark),
76
+ var(--glass-border-1-color-dark),
77
+ var(--glass-border-2-color-dark)
78
+ )
79
+ border-box;
80
+ }
81
+ }
82
+ }
83
+ }
84
+ }
@@ -1,9 +1,11 @@
1
1
  @use '../settings/configs' as configs;
2
+ @use '../settings/defaults' as defs;
2
3
  @use '../variables' as vars;
3
4
  @use '../functions/colors' as colors;
4
5
  @use '../settings/index' as settings;
5
6
 
6
7
  // Definitions
8
+ $defaultFontFamilies: if(vars.$defaultFontFamilies != null, vars.$defaultFontFamilies, defs.$defaultFontFamilies);
7
9
  $useColors: if(vars.$useColors != null, vars.$useColors, settings.$useColors);
8
10
  $useColorsLightMode: if(vars.$useColorsLightMode != null, vars.$useColorsLightMode, settings.$useColorsLightMode);
9
11
  $useColorsDarkMode: if(vars.$useColorsDarkMode != null, vars.$useColorsDarkMode, settings.$useColorsDarkMode);
@@ -15,14 +17,14 @@ html {
15
17
 
16
18
  body {
17
19
  position: relative;
18
- /* stylelint-disable font-family-no-missing-generic-family-keyword */
19
- font-family: 'regular';
20
+ font-family: 'regular', $defaultFontFamilies;
20
21
  overflow-x: hidden;
21
22
  }
22
23
 
23
24
  *,
24
25
  ::before,
25
26
  ::after {
27
+ font-family: inherit;
26
28
  margin: 0;
27
29
  padding: 0;
28
30
  box-sizing: border-box;
@@ -51,13 +53,13 @@ a {
51
53
  @if $useColors {
52
54
  @if $useColorsLightMode {
53
55
  .light::selection {
54
- background-color: colors.useColorWithMap('custom-2');
56
+ background-color: colors.useColorWithMap('third');
55
57
  color: colors.useColorWithMap('white');
56
58
  }
57
59
  }
58
60
  @if $useColorsDarkMode {
59
61
  .dark::selection {
60
- background-color: colors.useColorWithMap('custom-2', 'dark');
62
+ background-color: colors.useColorWithMap('third', 'dark');
61
63
  color: colors.useColorWithMap('black');
62
64
  }
63
65
  }
@@ -112,7 +112,7 @@ $textTruncate: if(vars.$textTruncate != (), vars.$textTruncate, defs.$textTrunca
112
112
  $checkedUnicode: val.string($unicode, 'Typographic.fontFace.unicode');
113
113
  }
114
114
 
115
- @include typo.font($title, $weight, $format, $style, $fI, $unicode, $isLocal, $externalUrl);
115
+ @include typo.font($fontKey, $title, $weight, $format, $style, $fI, $unicode, $isLocal, $externalUrl);
116
116
  }
117
117
  }
118
118
  }
@@ -122,7 +122,7 @@ $textTruncate: if(vars.$textTruncate != (), vars.$textTruncate, defs.$textTrunca
122
122
  @each $style in $styles {
123
123
  // Font weights
124
124
  // Validate parameters
125
- $styleClass: if($fI == 0, $weight, '#{$weight}-#{$fI}');
125
+ $styleClass: if($fI == 0, $weight, '#{$fontKey}\:#{$weight}');
126
126
  $weightValue: map.get(configs.$fontWeightsValues, $weight);
127
127
 
128
128
  $mainClass: if($size, #{$size}#{$divider}#{$styleClass}, $styleClass);
@@ -132,6 +132,7 @@ $textTruncate: if(vars.$textTruncate != (), vars.$textTruncate, defs.$textTrunca
132
132
  '#{$styleClass}',
133
133
  $defaultFontFamilies if($size, !important, null);
134
134
  font-weight: if($size, $weightValue !important, $weightValue);
135
+
135
136
  @if meta.type-of($styles) == 'list' and list.length($styles) > 0 {
136
137
  &.#{$style} {
137
138
  font-style: $style;