beathers 5.0.0 โ†’ 5.1.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.
package/readme.md CHANGED
@@ -1,39 +1,18 @@
1
1
  <div align="center">
2
- <a href="https://beathers.bhoenixstudio.com">
3
- <img src="./public/images/logo.png" alt="Beathers logo" width="700" height="312">
4
- </a>
5
- <h1 align="center">Beathers <small>v5.0.0</small></h1>
2
+ <img src="https://raw.githubusercontent.com/BhoenixStudio/Beathers/main/public/images/logo.png" alt="Beathers logo" width="700" height="312">
6
3
  <p align="center">The Perfect Fusion of Strength and Featherlight Agility</p>
7
- <br>
8
- <br>
9
- <p align='center'>
10
- <a href="https://beathers.bhoenixstudio.com"><strong>Explore our documents</strong></a>
11
- <br>
12
- <a href="https://github.com/BhoenixStudio/Beathers/issues/new?template=bug_report.md">Report bug</a>
13
- ยท
14
- <a href="https://github.com/BhoenixStudio/Beathers/issues/new?template=feature_request.md">Request feature</a>
15
- </p>
16
4
  </div>
17
5
 
18
- # Beathers
19
-
20
6
  [![Version](https://img.shields.io/npm/v/beathers.svg)](https://www.npmjs.com/package/beathers)
21
7
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
22
8
 
23
- ## Description
24
-
25
- Beathers is a lightweight, powerful SCSS library designed to accelerate your web development workflow. It offers a comprehensive suite of SCSS mixins, variables, and utility classes, enabling you to build responsive, visually appealing web applications with ease. Beathers focuses on providing reusable components, a flexible responsive grid system, and intuitive typography helpers, streamlining the process of creating modern user interfaces.
26
-
27
- ## Documentation
9
+ Beathers is a lightweight, powerful SCSS library designed to accelerate your web development workflow. **Everything is fully customizable** through a simple configuration file, allowing you to tailor every aspect to match your brand and requirements. It offers a comprehensive suite of SCSS mixins, variables, and utility classes, enabling you to build responsive, visually appealing web applications with complete design control.
28
10
 
29
- For detailed information on how to use the Beathers Library, consult the [official documentation](https://beathers.bhoenixstudio.com).
30
- The documentation provides comprehensive guides, usage examples, and detailed explanations of all available mixins, variables, and utility classes.
11
+ ## Get Started
31
12
 
32
- ## Installation
13
+ ### Installation
33
14
 
34
- Install the package using npm:
35
-
36
- ```shell
15
+ ```bash
37
16
  npm install beathers
38
17
  # or
39
18
  yarn add beathers
@@ -41,148 +20,156 @@ yarn add beathers
41
20
  pnpm add beathers
42
21
  ```
43
22
 
44
- ## Quick Start
23
+ ### Create Configuration File
45
24
 
46
- 1. **Install** the package: `npm install beathers`
47
- 2. **Create** a `beathers.configs.json` file with your theme settings
48
- 3. **Build** your theme: `beathers build`
49
- 4. **Import** the generated CSS/SCSS files in your project
25
+ Use the interactive CLI to create your theme configuration:
50
26
 
51
- ### Basic Example
27
+ ```bash
28
+ beathers init
29
+ ```
52
30
 
53
- ```json
54
- // beathers.configs.json
55
- {
56
- "colors": {
57
- "primary": { "light": "#007bff", "dark": "#0056b3" }
58
- },
59
- "typography": {
60
- "defaultFontFamilies": ["Inter", "sans-serif"]
61
- }
62
- }
31
+ This will prompt you to:
32
+
33
+ - Choose your configuration file format (JSON, JS, or TypeScript)
34
+ - Set up initial theme values like colors and typography
35
+ - Configure which features to enable/disable
36
+
37
+ ### Build Your Theme
38
+
39
+ Generate your custom CSS from the configuration:
40
+
41
+ ```bash
42
+ beathers build
63
43
  ```
64
44
 
65
- ## Imports
45
+ ### Import in Your Project
66
46
 
67
- ### CSS Import (Compiled)
47
+ **CSS Import (Recommended):**
68
48
 
69
49
  ```css
70
- /* Import the main compiled CSS */
50
+ /* Import the compiled CSS */
71
51
  @import 'node_modules/beathers/dist/css/beathers.min.css';
72
-
73
- /* Import icons separately */
74
- @import 'node_modules/beathers/dist/css/beathers-icons.min.css';
75
52
  ```
76
53
 
77
- ### SCSS Import (Source)
54
+ **SCSS Import:**
78
55
 
79
56
  ```scss
80
57
  // Import the entire library
81
58
  @import 'node_modules/beathers/src/scss/beathers.min.scss';
82
59
 
83
- // Or import individual modules
60
+ // Or import specific modules
84
61
  @import 'node_modules/beathers/src/scss/functions/colors';
85
62
  @import 'node_modules/beathers/src/scss/style/grid';
86
- @import 'node_modules/beathers/src/scss/style/typographic';
87
-
88
- // Import using @use (with variables)
89
- @use 'node_modules/beathers/src/scss/beathers.min.scss' as beathers;
90
- @use 'node_modules/beathers/src/scss/functions/colors' as colors;
91
-
92
- // Or use @use with * to import without namespace
93
- @use 'node_modules/beathers/src/scss/functions/colors' as *;
94
63
  ```
95
64
 
96
- ### JavaScript/TypeScript Import
65
+ **JavaScript/Framework Import:**
97
66
 
98
67
  ```javascript
99
- // Next.js (pages/_app.js or app/layout.js)
68
+ // Next.js, React, Vue, Angular
100
69
  import 'beathers/dist/css/beathers.min.css'
70
+ ```
101
71
 
102
- // React/Vue/Angular
103
- import 'beathers/dist/css/beathers.min.css'
72
+ ### Example Configuration
104
73
 
105
- // Import types for TypeScript configs
106
- import { Theme } from 'beathers'
74
+ ```json
75
+ {
76
+ "colors": {
77
+ "primary": { "light": "#007bff", "dark": "#0056b3" },
78
+ "success": { "light": "#28a745", "dark": "#20c997" }
79
+ },
80
+ "typography": {
81
+ "defaultFontFamilies": ["Inter", "system-ui", "sans-serif"]
82
+ },
83
+ "settings": {
84
+ "axisDivisions": 12,
85
+ "breakpoints": {
86
+ "sm": "640px",
87
+ "md": "768px",
88
+ "lg": "1024px"
89
+ }
90
+ }
91
+ }
107
92
  ```
108
93
 
109
- ## Configuration Options
110
-
111
- Configure your theme using a `beathers.configs.json`, `beathers.configs.js`, or `beathers.configs.ts` file:
112
-
113
- ### Complete Configuration Reference
114
-
115
- | Property | Type | Description | Default Value | Example |
116
- | -------------------------------- | ------------------------------- | --------------------------------------------- | ----------------------------------------- | ------------------------------------------------------ |
117
- | **COLORS** | | | | |
118
- | `colors` | `ColorType` | Custom color palette with light/dark variants | See default colors | `{"primary": {"light": "#007bff", "dark": "#0056b3"}}` |
119
- | `colors.main` | `{light: string, dark: string}` | Main background color | `{"light": "#ffffff", "dark": "#1a1d21"}` | `{"light": "#f8f9fa", "dark": "#212529"}` |
120
- | `colors.second` | `{light: string, dark: string}` | Secondary background color | `{"light": "#f8f8ff", "dark": "#2e2e3f"}` | `{"light": "#e9ecef", "dark": "#495057"}` |
121
- | `colors.primary` | `{light: string, dark: string}` | Primary brand color | `undefined` | `{"light": "#007bff", "dark": "#0056b3"}` |
122
- | `colors.success` | `{light: string, dark: string}` | Success state color | `{"light": "#099750", "dark": "#5ff2a9"}` | `{"light": "#28a745", "dark": "#20c997"}` |
123
- | `colors.info` | `{light: string, dark: string}` | Information state color | `undefined` | `{"light": "#17a2b8", "dark": "#138496"}` |
124
- | `colors.warning` | `{light: string, dark: string}` | Warning state color | `undefined` | `{"light": "#ffc107", "dark": "#e0a800"}` |
125
- | `colors.danger` | `{light: string, dark: string}` | Error/danger state color | `undefined` | `{"light": "#dc3545", "dark": "#c82333"}` |
126
- | **TYPOGRAPHY** | | | | |
127
- | `typography` | `Typography` | Font configuration and text settings | See typography defaults | `{"defaultFontFamilies": ["Inter", "sans-serif"]}` |
128
- | `typography.defaultFontFamilies` | `string[]` | Default font stack | `["system-ui", "sans-serif"]` | `["Inter", "Roboto", "sans-serif"]` |
129
- | `typography.fontMainPath` | `string` | Path to font files | `""` | `"/fonts/"` |
130
- | `typography.fontFormat` | `"woff" \| "woff2"` | Font file format | `"woff2"` | `"woff"` |
131
- | `typography.fontWeights` | `FontWeight[]` | Available font weights | `["regular", "medium", "bold"]` | `["light", "regular", "bold"]` |
132
- | `typography.fontStyles` | `FontStyle[]` | Available font styles | `["normal"]` | `["normal", "italic"]` |
133
- | `typography.fontSizes` | `Record<string, FontSize>` | Named font sizes | `{"base": "16px", "lg": "18px"}` | `{"sm": "14px", "base": "16px", "xl": "24px"}` |
134
- | `typography.textTruncate` | `number` | Default text truncation width | `3` | `5` |
135
- | `typography.fonts` | `Record<string, FontType>` | Custom font definitions | `{}` | `{"heading": {"weights": ["bold"]}}` |
136
- | **SETTINGS** | | | | |
137
- | `settings` | `Settings` | Layout, breakpoints and spacing settings | See settings defaults | `{"axisDivisions": 12}` |
138
- | `settings.axisDivisions` | `number` | Grid system divisions | `12` | `16` |
139
- | `settings.opacities` | `number[]` | Available opacity values | `[0.1, 0.25, 0.5, 0.75, 0.9]` | `[0.2, 0.4, 0.6, 0.8]` |
140
- | `settings.blurValues` | `number[]` | Blur effect values | `[2, 4, 8, 16, 32]` | `[4, 8, 12]` |
141
- | `settings.insetValues` | `number[]` | Inset shadow values | `[1, 2, 4, 8]` | `[2, 4, 6]` |
142
- | `settings.bordersValue` | `number` | Default border width | `1` | `2` |
143
- | `settings.radiuses` | `number[]` | Border radius values | `[4, 8, 12, 16, 24]` | `[6, 12, 18]` |
144
- | `settings.breakpoints` | `Breakpoints` | Responsive breakpoints | See breakpoints | `{"sm": "640px", "md": "768px"}` |
145
- | `settings.breakpoints.sm` | `string` | Small breakpoint | `"576px"` | `"640px"` |
146
- | `settings.breakpoints.md` | `string` | Medium breakpoint | `"768px"` | `"768px"` |
147
- | `settings.breakpoints.lg` | `string` | Large breakpoint | `"992px"` | `"1024px"` |
148
- | `settings.breakpoints.xl` | `string` | Extra large breakpoint | `"1200px"` | `"1280px"` |
149
- | `settings.breakpoints.xxl` | `string` | 2X large breakpoint | `"1400px"` | `"1536px"` |
150
- | `settings.wrappers` | `Wrappers` | Container widths | See wrappers | `{"sm": {"width": "540px"}}` |
151
- | `settings.guttersValues` | `GutterValues` | Spacing values | See gutters | `{"auto": "1rem", 1: "0.25rem"}` |
152
- | **ROLES** | | | | |
153
- | `roles` | `Roles` | Feature toggles for library modules | All features enabled | `{"useColors": true, "useIcons": false}` |
154
- | `roles.useMediaQueries` | `boolean` | Enable responsive utilities | `true` | `false` |
155
- | `roles.useIcons` | `boolean` | Include icon styles | `true` | `false` |
156
- | `roles.useFontFamilies` | `boolean` | Include font family utilities | `true` | `false` |
157
- | `roles.useFontSizes` | `boolean` | Include font size utilities | `true` | `false` |
158
- | `roles.useFontShapes` | `boolean` | Include font style utilities | `true` | `false` |
159
- | `roles.useTextAligns` | `boolean` | Include text alignment utilities | `true` | `false` |
160
- | `roles.useTextTruncate` | `boolean` | Include text truncation utilities | `true` | `false` |
161
- | `roles.useColors` | `boolean` | Include color utilities | `true` | `false` |
162
- | `roles.useColorsOpacities` | `boolean` | Include color opacity utilities | `true` | `false` |
163
- | `roles.useColorsLightMode` | `boolean` | Include light mode colors | `true` | `false` |
164
- | `roles.useColorsDarkMode` | `boolean` | Include dark mode colors | `true` | `false` |
165
- | `roles.useCurrentColors` | `boolean` | Include currentColor utilities | `true` | `false` |
166
- | `roles.useRootColors` | `boolean` | Include CSS custom properties | `true` | `false` |
167
- | `roles.useGrid` | `boolean` | Include grid system | `true` | `false` |
168
- | `roles.useFlex` | `boolean` | Include flexbox utilities | `true` | `false` |
169
- | `roles.useTransitions` | `boolean` | Include transition utilities | `true` | `false` |
170
- | `roles.useWrappers` | `boolean` | Include container utilities | `true` | `false` |
171
- | `roles.useShadows` | `boolean` | Include shadow utilities | `true` | `false` |
172
- | `roles.useDisplays` | `boolean` | Include display utilities | `true` | `false` |
173
- | `roles.useOverflows` | `boolean` | Include overflow utilities | `true` | `false` |
174
- | `roles.useOpacities` | `boolean` | Include opacity utilities | `true` | `false` |
175
- | `roles.useBlur` | `boolean` | Include blur utilities | `true` | `false` |
176
- | `roles.useObjectFits` | `boolean` | Include object-fit utilities | `true` | `false` |
177
- | `roles.usePositions` | `boolean` | Include positioning utilities | `true` | `false` |
178
- | `roles.useInsets` | `boolean` | Include inset utilities | `true` | `false` |
179
- | `roles.useSizes` | `boolean` | Include sizing utilities | `true` | `false` |
180
- | `roles.useGutters` | `boolean` | Include spacing utilities | `true` | `false` |
181
- | `roles.useBorders` | `boolean` | Include border utilities | `true` | `false` |
182
- | `roles.useTextBorders` | `boolean` | Include text border utilities | `true` | `false` |
183
- | `roles.useRadius` | `boolean` | Include border radius utilities | `true` | `false` |
184
-
185
- ### Example Configuration
94
+ ## Configuration
95
+
96
+ Beathers uses a configuration file to customize your theme. All options are optional and have sensible defaults.
97
+
98
+ ### Configuration File Options
99
+
100
+ You can create one of these files in your project root:
101
+
102
+ - `beathers.configs.json` - JSON format
103
+ - `beathers.configs.js` - JavaScript format
104
+ - `beathers.configs.ts` - TypeScript format (with type safety)
105
+
106
+ ### Key Configuration Sections
107
+
108
+ | Section | Description | Purpose |
109
+ | -------------- | -------------------------------------------------- | --------------------------------------------------- |
110
+ | **colors** | Define your color palette with light/dark variants | Brand colors, state colors (success, warning, etc.) |
111
+ | **typography** | Configure fonts, sizes, and text settings | Font families, weights, sizes, and formatting |
112
+ | **settings** | Layout and spacing configuration | Grid system, breakpoints, spacing values |
113
+ | **roles** | Enable/disable specific features | Control which utilities are generated |
114
+
115
+ ### Common Configuration Properties
116
+
117
+ | Property | Type | Example |
118
+ | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
119
+ | **COLORS** |
120
+ | `color` <br /> Color variants (as json) | "color": { light: `#${string}$`, dark: `#${string}$` } | "primary": {"light": "#007bff", "dark": "#0056b3"} |
121
+ | **TYPOGRAPHY** |
122
+ | `defaultFontFamilies` <br /> Fallback fonts (as array) | `string[]` | ["system-ui", "sans-serif"] |
123
+ | `fontMainPath` <br /> Your fonts path | `string` | "/fonts/" |
124
+ | `fontFormat` <br /> Your fonts format | `string` | "woff2" |
125
+ | `fontWeights` <br /> Your fonts weights (as array) | `thin`,`extra-light`,`light`,`regular`,<br />`medium`,`semibold`,`bold`,`extra-bold`,`black` | ["regular", "medium", "bold"] |
126
+ | `fontStyles` <br /> Your fonts styles (as array) | `normal`,`italic`,`oblique` | ["normal"] |
127
+ | `fontSizes` <br /> Your fonts sizes (as json) | Record<`string`, `${number}px` `${number}rem` `${number}em`> | subtitle1: "16px" <br /> (Azvailable: h1, h2, h3, h4, h5, h6, subtitle1, subtitle2, button, body1, body2, caption, overline) <br /> (Note: You can add/remove) |
128
+ | `textTruncate` <br /> Text truncation | `number` | 3 |
129
+ | `fonts` <br /> Custom font definitions <br /> (Local/External) (as json) | {weights: same as `weights`, styles: same as `styles`, <br /> variants: {"fontName" :{title: `string`, unicode?: `string`, format?: `woff`, isLocal?: `boolean`, url?: `https://${string}`, `http://${string}`}}} | {variants: {"font1" :{title: "roboto"}}} |
130
+ | **SETTINGS** |
131
+ | `axisDivisions` <br /> Grid system divisions | `number` | 12 |
132
+ | `opacities` <br /> Available opacity values <br /> min: 0 - max: 100 (as array) | `number[]` | [10, 20] |
133
+ | `blurValues` <br /> Blur effect values (as array) | `number[]` | [2, 4, 8, 16, 32] |
134
+ | `insetValues` <br /> Inset values (as array) | `number[]` | [0, 5] |
135
+ | `bordersValue` <br /> Default border width (as array) | `number[]` | [1, 2] |
136
+ | `radiuses` <br /> Border radius values (as array) | `number[]` | [5,10,15] |
137
+ | `breakpoints` <br /> Responsive breakpoints (as json) | Record<(`sm` , `md` , `lg` , `xl` , `xxl`), `${number}px` `${number}rem` `${number}em`> | {"sm": "640px", "md": "768px"} |
138
+ | `wrappers` <br /> Container widths (as json) | Record<(`sm` , `md` , `lg` , `xl` , `xxl`), { width: `${number}px` `${number}rem` `${number}em`; padding?: `${number}px` `${number}rem` `${number}em`}> | {"sm": {"width": "540px", "padding":"15px"}} |
139
+ | `guttersValues` <br /> Spacing values (as json) | Record<(`auto`, `number`), `${number}px` `${number}rem` `${number}em`> | {"auto": "1rem", 1: "0.25rem"} |
140
+ | **ROLES** |
141
+ | `useMediaQueries` <br /> Enable responsive utilities | `boolean` | `true` |
142
+ | `useIcons` <br /> Include icon styles | `boolean` | `true` |
143
+ | `useFontFamilies` <br /> Include font family utilities | `boolean` | `true` |
144
+ | `useFontSizes` <br /> Include font size utilities | `boolean` | `true` |
145
+ | `useFontShapes` <br /> Include font style utilities | `boolean` | `true` |
146
+ | `useTextAligns` <br /> Include text alignment utilities | `boolean` | `true` |
147
+ | `useTextTruncate` <br /> Include text truncation utilities | `boolean` | `true` |
148
+ | `useColors` <br /> Include color utilities | `boolean` | `true` |
149
+ | `useColorsOpacities` <br /> Include color opacity utilities | `boolean` | `true` |
150
+ | `useColorsLightMode` <br /> Include light mode colors | `boolean` | `true` |
151
+ | `useColorsDarkMode` <br /> Include dark mode colors | `boolean` | `true` |
152
+ | `useCurrentColors` <br /> Include currentColor utilities | `boolean` | `true` |
153
+ | `useRootColors` <br /> Include CSS custom properties | `boolean` | `true` |
154
+ | `useGrid` <br /> Include grid system | `boolean` | `true` |
155
+ | `useFlex` <br /> Include flexbox utilities | `boolean` | `true` |
156
+ | `useTransitions` <br /> Include transition utilities | `boolean` | `true` |
157
+ | `useWrappers` <br /> Include container utilities | `boolean` | `true` |
158
+ | `useShadows` <br /> Include shadow utilities | `boolean` | `true` |
159
+ | `useDisplays` <br /> Include display utilities | `boolean` | `true` |
160
+ | `useOverflows` <br /> Include overflow utilities | `boolean` | `true` |
161
+ | `useOpacities` <br /> Include opacity utilities | `boolean` | `true` |
162
+ | `useBlur` <br /> Include blur utilities | `boolean` | `true` |
163
+ | `useObjectFits` <br /> Include object-fit utilities | `boolean` | `true` |
164
+ | `usePositions` <br /> Include positioning utilities | `boolean` | `true` |
165
+ | `useInsets` <br /> Include inset utilities | `boolean` | `true` |
166
+ | `useSizes` <br /> Include sizing utilities | `boolean` | `true` |
167
+ | `useGutters` <br /> Include spacing utilities | `boolean` | `true` |
168
+ | `useBorders` <br /> Include border utilities | `boolean` | `true` |
169
+ | `useTextBorders` <br /> Include text border utilities | `boolean` | `true` |
170
+ | `useRadius` <br /> Include border radius utilities | `boolean` | `true` |
171
+
172
+ ### TypeScript Configuration Example
186
173
 
187
174
  ```typescript
188
175
  // beathers.configs.ts
@@ -221,15 +208,10 @@ export default {
221
208
  } satisfies Theme
222
209
  ```
223
210
 
224
- ## License
225
-
226
- The Beathers Library is licensed under the MIT License. See the [LICENSE](LICENSE) file for more information.
211
+ ## Contact & Support
227
212
 
228
- ## Contact
213
+ [![Website](https://img.shields.io/badge/Website-bhoenixstudio.com/beathers-blue?style=for-the-badge&logo=globe)](https://bhoenixstudio.com/beathers)
229
214
 
230
- For any inquiries or feedback regarding the Beathers Library:
215
+ [![Documentation](https://img.shields.io/badge/Documentation-Full%20Docs-green?style=for-the-badge&logo=book)](https://bhoenixstudio.com/beathers)
231
216
 
232
- - ๐Ÿ“ง Email: contact@bhoenixstudio.com
233
- - ๐ŸŒ Website: [beathers.bhoenixstudio.com](https://beathers.bhoenixstudio.com)
234
- - ๐Ÿ’ฌ GitHub Issues: [Report bugs or request features](https://github.com/BhoenixStudio/Beathers/issues)
235
- - ๐Ÿ“š Documentation: [Full documentation](https://beathers.bhoenixstudio.com)
217
+ [![Email](https://img.shields.io/badge/Email-contact@bhoenixstudio.com-red?style=for-the-badge&logo=gmail)](mailto:contact@bhoenixstudio.com)
@@ -1,13 +1,13 @@
1
1
  /*!
2
- * Beathers v5.2.0 (https://beathers.bhoenixstudio.com/)
2
+ * Beathers v5.1.0 (https://bhoenixstudio.com/beathers)
3
3
  * Copyright 2020-2025 Bhoenix Studio
4
4
  */
5
5
 
6
- @use "./variables";
7
-
6
+ @use './variables';
7
+
8
8
  // Style ----- ----- ----- -----
9
- @use "./settings/resets";
10
- @use "./style/colors";
11
- @use "./style/typographic";
12
- @use "./style/grid";
13
- @use "./style/shaping";
9
+ @use './settings/resets';
10
+ @use './style/colors';
11
+ @use './style/typographic';
12
+ @use './style/grid';
13
+ @use './style/shaping';