beathers 5.6.2 → 5.7.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.
@@ -0,0 +1,124 @@
1
+ # Typography Documentation
2
+
3
+ > Simple guide to using typography utilities in Beathers CSS framework
4
+
5
+ ## Table of Contents
6
+
7
+ - [Font Sizes](#font-sizes)
8
+ - [Text Transformations](#text-transformations)
9
+ - [Text Decorations](#text-decorations)
10
+ - [Text Alignment](#text-alignment)
11
+ - [Text Truncation](#text-truncation)
12
+
13
+ ---
14
+
15
+ ## Font Sizes
16
+
17
+ ### Normal State
18
+
19
+ ```html
20
+ <h1 class="h1">Heading 1 (96px)</h1>
21
+ <h2 class="h2">Heading 2 (60px)</h2>
22
+ <h3 class="h3">Heading 3 (40px)</h3>
23
+ <h4 class="h4">Heading 4 (34px)</h4>
24
+ <h5 class="h5">Heading 5 (24px)</h5>
25
+ <h6 class="h6">Heading 6 (20px)</h6>
26
+
27
+ <p class="subtitle1">Subtitle 1 (16px)</p>
28
+ <p class="subtitle2">Subtitle 2 (14px)</p>
29
+ <p class="body1">Body 1 (16px)</p>
30
+ <p class="body2">Body 2 (14px)</p>
31
+ <p class="button">Button (14px)</p>
32
+ <p class="caption">Caption (12px)</p>
33
+ <p class="overline">Overline (10px)</p>
34
+ ```
35
+
36
+ ### Responsive Sizes
37
+
38
+ ```html
39
+ <h1 class="h1 md:h2 lg:h3">Responsive heading</h1>
40
+ <p class="body1 sm:subtitle1 md:h6">Responsive text</p>
41
+ <span class="caption lg:body2">Responsive small text</span>
42
+ ```
43
+
44
+ ---
45
+
46
+ ## Text Transformations
47
+
48
+ ### Normal State
49
+
50
+ ```html
51
+ <p class="uppercase">UPPERCASE TEXT</p>
52
+ <p class="lowercase">lowercase text</p>
53
+ <p class="capitalize">Capitalize Text</p>
54
+ ```
55
+
56
+ ### Responsive Transformations
57
+
58
+ ```html
59
+ <p class="capitalize md:uppercase">Responsive transform</p>
60
+ <p class="lowercase lg:capitalize">Mobile lowercase, desktop capitalize</p>
61
+ ```
62
+
63
+ ---
64
+
65
+ ## Text Decorations
66
+
67
+ ### Normal State
68
+
69
+ ```html
70
+ <p class="underline">Underlined text</p>
71
+ <p class="line-through">Strikethrough text</p>
72
+ <p class="wavy">Wavy decoration</p>
73
+ <p class="double">Double decoration</p>
74
+ <p class="dotted">Dotted decoration</p>
75
+ <p class="dashed">Dashed decoration</p>
76
+ ```
77
+
78
+ ### Combined Decorations
79
+
80
+ ```html
81
+ <p class="underline capitalize">Underlined and capitalized</p>
82
+ <p class="line-through uppercase">Strikethrough and uppercase</p>
83
+ ```
84
+
85
+ ---
86
+
87
+ ## Text Alignment
88
+
89
+ ### Normal State
90
+
91
+ ```html
92
+ <p class="text-left">Left aligned text</p>
93
+ <p class="text-start">Start aligned text</p>
94
+ <p class="text-center">Center aligned text</p>
95
+ <p class="text-right">Right aligned text</p>
96
+ <p class="text-end">End aligned text</p>
97
+ <p class="text-justify">Justified text</p>
98
+ ```
99
+
100
+ ### Responsive Alignment
101
+
102
+ ```html
103
+ <p class="text-left md:text-center lg:text-right">Responsive alignment</p>
104
+ <p class="text-center sm:text-left">Mobile center, desktop left</p>
105
+ ```
106
+
107
+ ---
108
+
109
+ ## Text Truncation
110
+
111
+ ### Normal State
112
+
113
+ ```html
114
+ <p class="text-lines:1">Single line truncation with ellipsis...</p>
115
+ <p class="text-lines:2">Two line truncation with ellipsis after second line...</p>
116
+ <p class="text-lines:3">Three line truncation with ellipsis after third line...</p>
117
+ ```
118
+
119
+ ### Responsive Truncation
120
+
121
+ ```html
122
+ <p class="text-lines:2 md:text-lines:3 lg:text-lines:1">Responsive truncation</p>
123
+ <p class="text-lines:1 sm:text-lines:2">Mobile 1 line, desktop 2 lines</p>
124
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "beathers",
3
- "version": "5.6.2",
3
+ "version": "5.7.0",
4
4
  "type": "module",
5
5
  "description": "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 visual identity across your application.",
6
6
  "main": "index.js",
@@ -81,7 +81,8 @@
81
81
  "scss/**/*.scss",
82
82
  "public/images/logo.png",
83
83
  "public/fonts/*.{woff,woff2}",
84
- "docs/*.{md}",
84
+ "docs/",
85
+ "docs/**/*.md",
85
86
  "CHANGELOG",
86
87
  "readme.md"
87
88
  ],
package/readme.md CHANGED
@@ -240,7 +240,10 @@ You can create one of these files in your project root:
240
240
  | `useTextBordersMediaQueries` <br /> Include responsive text border utilities | `boolean` | `false` |
241
241
  | `useRadius` <br /> Include border radius utilities | `boolean` | `true` |
242
242
  | `useRadiusMediaQueries` <br /> Include responsive border radius utilities | `boolean` | `false` |
243
- | `useGlass` <br /> Include glassmorphism utilities | `boolean` | `true` |
243
+ | `useGlass` <br /> Include glassmorphism utilities | `boolean` | `false` |
244
+ | `useLoader` <br /> Include loader utilities | `boolean` | `false` |
245
+ | `useDialog` <br /> Include dialog utilities | `boolean` | `false` |
246
+ | `useButton` <br /> Include button utilities | `boolean` | `false` |
244
247
 
245
248
  ### TypeScript Configuration Example
246
249
 
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/scripts/commands/build.ts"],"names":[],"mappings":"AAiIA,wBAAsB,KAAK,kBAmC1B"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/scripts/commands/build.ts"],"names":[],"mappings":"AAoIA,wBAAsB,KAAK,kBAmC1B"}
@@ -75,6 +75,9 @@ async function defaultTheme() {
75
75
  'useRadius',
76
76
  'useRadiusMediaQueries',
77
77
  'useGlass',
78
+ 'useLoader',
79
+ 'useDialog',
80
+ 'useButton',
78
81
  ]);
79
82
  }
80
83
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/scripts/commands/init.ts"],"names":[],"mappings":"AAgGA,wBAAsB,IAAI,kBA6DzB"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/scripts/commands/init.ts"],"names":[],"mappings":"AAsGA,wBAAsB,IAAI,kBA6DzB"}
@@ -37,6 +37,9 @@ async function getDefaultValues() {
37
37
  'glassBorder1Color',
38
38
  'glassBorder2Color',
39
39
  'glassLightAngle',
40
+ 'loaderColorMain',
41
+ 'loaderColorSecond',
42
+ 'loaderDuration',
40
43
  'useFontFamilies',
41
44
  'useFontFamiliesMediaQueries',
42
45
  'useFontSizes',
@@ -84,6 +87,9 @@ async function getDefaultValues() {
84
87
  'useRadius',
85
88
  'useRadiusMediaQueries',
86
89
  'useGlass',
90
+ 'useLoader',
91
+ 'useDialog',
92
+ 'useButton',
87
93
  ]));
88
94
  }
89
95
  export async function Init() {
@@ -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;AAgLnC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,GAAE,OAAe,GAAG,MAAM,CAWtF"}
1
+ {"version":3,"file":"BuildScssVariables.d.ts","sourceRoot":"","sources":["../../src/scripts/helpers/BuildScssVariables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAmMnC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,GAAE,OAAe,GAAG,MAAM,CAYtF"}
@@ -151,14 +151,30 @@ function BuildGlass(glass) {
151
151
  scss += ');\n';
152
152
  return scss;
153
153
  }
154
+ function BuildLoader(loader) {
155
+ if (!loader)
156
+ return '';
157
+ let scss = '\n\n// --- Loader ---\n';
158
+ scss += '$loaderColorMain: (\n';
159
+ scss += ` 'light': ${loader?.colorMain?.light ?? '#ffffff'},\n`;
160
+ scss += ` 'dark': ${loader?.colorMain?.dark ?? '#1a1d21'},\n`;
161
+ scss += ');\n';
162
+ scss += '$loaderColorSecond: (\n';
163
+ scss += ` 'light': ${loader?.colorSecond?.light ?? '#f4f4f4'},\n`;
164
+ scss += ` 'dark': ${loader?.colorSecond?.dark ?? '#2e2e3f'},\n`;
165
+ scss += ');\n';
166
+ scss += `$loaderDuration: ${loader?.duration ?? 'null'};\n`;
167
+ return scss;
168
+ }
154
169
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
155
170
  export function BuildScssVariables(theme, isLocalBuild = false) {
156
- const { colors, roles, settings, typography, glass } = theme;
171
+ const { colors, roles, settings, typography, glass, loader } = theme;
157
172
  let scss = '// Generated by Beathers builder\n // Do not edit this file directly\n\n';
158
173
  scss += BuildColors(colors);
159
174
  scss += BuildTypography(typography);
160
175
  scss += BuildSettings(settings);
161
176
  scss += BuildRoles(roles);
162
177
  scss += BuildGlass(glass);
178
+ scss += BuildLoader(loader);
163
179
  return scss;
164
180
  }
@@ -1,3 +1,3 @@
1
1
  import { Theme } from '../types.js';
2
- export declare function LoadUserConfigs(projectPath?: string): Promise<Theme | null>;
2
+ export declare function LoadUserConfigs<T extends object = object>(projectPath?: string, extra?: T): Promise<(Theme & T) | null>;
3
3
  //# sourceMappingURL=LoadUserConfigs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadUserConfigs.d.ts","sourceRoot":"","sources":["../../src/scripts/helpers/LoadUserConfigs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAgCnC,wBAAsB,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAYjF"}
1
+ {"version":3,"file":"LoadUserConfigs.d.ts","sourceRoot":"","sources":["../../src/scripts/helpers/LoadUserConfigs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAgCnC,wBAAsB,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAC7D,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,CAAC,GACR,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAY7B"}
@@ -30,15 +30,15 @@ function loadJsonConfig(filePath) {
30
30
  throw new Error(`Failed to parse JSON config from ${filePath}: ${error}`);
31
31
  }
32
32
  }
33
- export async function LoadUserConfigs(projectPath) {
33
+ export async function LoadUserConfigs(projectPath, extra) {
34
34
  const basePath = projectPath ?? process.cwd();
35
35
  const configFilePath = findConfigFile(basePath);
36
36
  if (!configFilePath)
37
37
  return null;
38
38
  const extension = path.extname(configFilePath);
39
39
  if (extension === '.json')
40
- return loadJsonConfig(configFilePath);
40
+ return { ...loadJsonConfig(configFilePath), ...extra };
41
41
  if (['.js', '.ts'].includes(extension))
42
- return await loadJsOrTsConfig(configFilePath);
42
+ return { ...(await loadJsOrTsConfig(configFilePath)), ...extra };
43
43
  throw new Error(`Unsupported config file format: ${extension}`);
44
44
  }
@@ -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,CA8HzG"}
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,CA2IzG"}
@@ -108,7 +108,7 @@ 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))
111
+ else if (['glassColor', 'glassBorder1Color', 'glassBorder2Color', 'loaderColorMain', 'loaderColorSecond'].includes(name))
112
112
  result = buildColors(value);
113
113
  else
114
114
  result = cleanString(value);
@@ -187,6 +187,9 @@ export async function ReadDefaultValues(files, VariableNames) {
187
187
  useRadius: variables?.useRadius,
188
188
  useRadiusMediaQueries: variables?.useRadiusMediaQueries,
189
189
  useGlass: variables?.useGlass,
190
+ useLoader: variables?.useLoader,
191
+ useDialog: variables?.useDialog,
192
+ useButton: variables?.useButton,
190
193
  };
191
194
  theme.glass = {
192
195
  blur: variables?.glassBlur,
@@ -196,5 +199,10 @@ export async function ReadDefaultValues(files, VariableNames) {
196
199
  border2Color: variables?.glassBorder2Color,
197
200
  lightAngle: variables?.glassLightAngle,
198
201
  };
202
+ theme.loader = {
203
+ colorMain: variables?.loaderColorMain,
204
+ colorSecond: variables?.loaderColorSecond,
205
+ duration: variables?.loaderDuration,
206
+ };
199
207
  return theme;
200
208
  }
@@ -88,8 +88,19 @@ interface Glass {
88
88
  };
89
89
  lightAngle?: `${number}deg`;
90
90
  }
91
+ interface Loader {
92
+ colorMain?: {
93
+ light?: `#${string}`;
94
+ dark?: `#${string}`;
95
+ };
96
+ colorSecond?: {
97
+ light?: `#${string}`;
98
+ dark?: `#${string}`;
99
+ };
100
+ duration?: `${number}s` | `${number}ms`;
101
+ }
91
102
  /** Available feature keys for enabling/disabling CSS utilities */
92
- type RoleKeys = 'useFontFamilies' | 'useFontFamiliesMediaQueries' | 'useFontSizes' | 'useFontSizesMediaQueries' | 'useFontShapes' | 'useFontShapesMediaQueries' | 'useTextAligns' | 'useTextAlignsMediaQueries' | 'useTextTruncate' | 'useTextTruncateMediaQueries' | 'useColors' | 'useColorsOpacities' | 'useColorsLightMode' | 'useColorsDarkMode' | 'useCurrentColors' | 'useRootColors' | 'useGrid' | 'useFlex' | 'useGridMediaQueries' | 'useWrappers' | 'useShadows' | 'useShadowsMediaQueries' | 'useDisplays' | 'useDisplaysMediaQueries' | 'useOverflows' | 'useOverflowsMediaQueries' | 'useOpacities' | 'useOpacitiesMediaQueries' | 'useBlur' | 'useBlurMediaQueries' | 'useObjectFits' | 'useObjectFitsMediaQueries' | 'usePositions' | 'usePositionsMediaQueries' | 'useInsets' | 'useInsetsMediaQueries' | 'useSizes' | 'useSizesMediaQueries' | 'useGutters' | 'useGuttersMediaQueries' | 'useBorders' | 'useBordersMediaQueries' | 'useTextBorders' | 'useTextBordersMediaQueries' | 'useRadius' | 'useRadiusMediaQueries' | 'useGlass';
103
+ type RoleKeys = 'useFontFamilies' | 'useFontFamiliesMediaQueries' | 'useFontSizes' | 'useFontSizesMediaQueries' | 'useFontShapes' | 'useFontShapesMediaQueries' | 'useTextAligns' | 'useTextAlignsMediaQueries' | 'useTextTruncate' | 'useTextTruncateMediaQueries' | 'useColors' | 'useColorsOpacities' | 'useColorsLightMode' | 'useColorsDarkMode' | 'useCurrentColors' | 'useRootColors' | 'useGrid' | 'useFlex' | 'useGridMediaQueries' | 'useWrappers' | 'useShadows' | 'useShadowsMediaQueries' | 'useDisplays' | 'useDisplaysMediaQueries' | 'useOverflows' | 'useOverflowsMediaQueries' | 'useOpacities' | 'useOpacitiesMediaQueries' | 'useBlur' | 'useBlurMediaQueries' | 'useObjectFits' | 'useObjectFitsMediaQueries' | 'usePositions' | 'usePositionsMediaQueries' | 'useInsets' | 'useInsetsMediaQueries' | 'useSizes' | 'useSizesMediaQueries' | 'useGutters' | 'useGuttersMediaQueries' | 'useBorders' | 'useBordersMediaQueries' | 'useTextBorders' | 'useTextBordersMediaQueries' | 'useRadius' | 'useRadiusMediaQueries' | 'useGlass' | 'useLoader' | 'useDialog' | 'useButton';
93
104
  /** Feature toggles for enabling/disabling CSS utility generation. @default all true */
94
105
  type Roles = Partial<Record<RoleKeys, boolean>>;
95
106
  /** Main theme configuration object containing all design system settings */
@@ -106,6 +117,8 @@ interface Theme {
106
117
  roles?: Roles;
107
118
  /** Optional glassmorphism settings for frosted glass effects */
108
119
  glass?: Glass;
120
+ /** Optional loader animation settings */
121
+ loader?: Loader;
109
122
  }
110
123
  export type { SizeUnit, ColorType, FontWeight, FontStyle, FontVariant, FontType, Typography, Settings, RoleKeys, Glass, Roles, Theme, };
111
124
  //# 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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"}
@@ -72,7 +72,10 @@ $useTextBorders: true;
72
72
  $useTextBordersMediaQueries: false;
73
73
  $useRadius: true;
74
74
  $useRadiusMediaQueries: false;
75
- $useGlass: true;
75
+ $useGlass: false;
76
+ $useLoader: false;
77
+ $useDialog: false;
78
+ $useButton: false;
76
79
 
77
80
  // --- Glass ---
78
81
  $glassBlur: null;
@@ -90,3 +93,14 @@ $glassBorder2Color: (
90
93
  'dark': #303030,
91
94
  );
92
95
  $glassLightAngle: null;
96
+
97
+ // --- Loader ---
98
+ $loaderColorMain: (
99
+ 'light': #ffffff,
100
+ 'dark': #1a1d21,
101
+ );
102
+ $loaderColorSecond: (
103
+ 'light': #f4f4f4,
104
+ 'dark': #2e2e3f,
105
+ );
106
+ $loaderDuration: 2s;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Beathers v5.6.2 (https://bhoenixstudio.com/beathers)
2
+ * Beathers v5.7.0 (https://bhoenixstudio.com/beathers)
3
3
  * Copyright 2020-2025 Bhoenix Studio
4
4
  */
5
5
 
@@ -10,3 +10,6 @@
10
10
  @use './style/grid';
11
11
  @use './style/shaping';
12
12
  @use './style/glass';
13
+ @use './style/loader';
14
+ @use './style/dialog';
15
+ @use './style/button';
@@ -198,3 +198,17 @@ $glassBorder2Color: (
198
198
  ) !default;
199
199
  // Glassmorphism light angle
200
200
  $glassLightAngle: 45deg !default;
201
+
202
+ // Loader/Skeleton settings
203
+ // Loader main color settings for light and dark modes
204
+ $loaderColorMain: (
205
+ 'light': #ffffff,
206
+ 'dark': #1a1d21,
207
+ ) !default;
208
+ // Loader second color settings for light and dark modes
209
+ $loaderColorSecond: (
210
+ 'light': #f4f4f4,
211
+ 'dark': #2e2e3f,
212
+ ) !default;
213
+ // Loader duration
214
+ $loaderDuration: 2s !default;
@@ -81,4 +81,10 @@ $useTextBordersMediaQueries: false !default;
81
81
  $useRadius: true !default;
82
82
  $useRadiusMediaQueries: false !default;
83
83
  // Enables or disables glass effect utilities.
84
- $useGlass: true !default;
84
+ $useGlass: false !default;
85
+ // Enables or disables loader/skeleton utilities.
86
+ $useLoader: false !default;
87
+ // Enables or disables dialog/modal utilities.
88
+ $useDialog: false !default;
89
+ // Enables or disables button utilities.
90
+ $useButton: false !default;
@@ -0,0 +1,101 @@
1
+ $corners: (
2
+ 'rounded': 0.25rem,
3
+ 'circle': 100vw,
4
+ 'sharp': 0,
5
+ ) !default;
6
+
7
+ button {
8
+ cursor: pointer;
9
+ background: transparent;
10
+ border: none;
11
+
12
+ &.btn {
13
+ position: relative;
14
+ isolation: isolate;
15
+ appearance: none;
16
+ display: flex;
17
+ flex-wrap: nowrap;
18
+ cursor: pointer;
19
+ transition: 250ms ease-in-out;
20
+
21
+ &:not([class*='justify-content:']) {
22
+ justify-content: center;
23
+ }
24
+ &:not([class*='align-items:']) {
25
+ align-items: center;
26
+ }
27
+ &:not([class*='text-start'], [class*='text-left'], [class*='text-end'], [class*='text-right']) {
28
+ text-align: center;
29
+ }
30
+ &:not([class*='border:']) {
31
+ border-width: 0.15em;
32
+ border-style: solid;
33
+ }
34
+ &:not([class*='bg:']) {
35
+ background-color: unset;
36
+ }
37
+ &:not([class*='radius:']) {
38
+ @each $corner, $value in $corners {
39
+ &.btn-#{$corner} {
40
+ border-radius: $value;
41
+ }
42
+ }
43
+
44
+ &:is(.btn-circle) {
45
+ aspect-ratio: 1;
46
+ }
47
+ }
48
+
49
+ &:is([disabled]) {
50
+ cursor: not-allowed;
51
+ opacity: 0.7;
52
+ }
53
+
54
+ &::before {
55
+ content: '';
56
+ position: absolute;
57
+ inset: 0;
58
+ border-radius: inherit;
59
+ pointer-events: none;
60
+ z-index: -1;
61
+ transition: 250ms ease-in-out;
62
+ opacity: 0;
63
+ }
64
+
65
+ &:is(.loading) .loader-icon {
66
+ animation: rotate 4s ease-in-out infinite;
67
+
68
+ @keyframes rotate {
69
+ 0% {
70
+ transform: rotate(0deg);
71
+ }
72
+ 100% {
73
+ transform: rotate(360deg);
74
+ }
75
+ }
76
+ }
77
+
78
+ &:is(:focus-visible, :hover) {
79
+ transform: translateY(-0.1em);
80
+
81
+ &:is(.text-variant) {
82
+ text-shadow: 0 0.05em rgba(0, 0, 0, 0.4);
83
+ }
84
+
85
+ &:not(.text-variant) {
86
+ box-shadow: 0 0.15em 0.15em rgba(0, 0, 0, 0.4);
87
+
88
+ &::before {
89
+ background-color: rgba(0, 0, 0, 0.15);
90
+ opacity: 1;
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+
97
+ :focus,
98
+ button:focus {
99
+ outline: unset;
100
+ box-shadow: unset;
101
+ }