@erpsquad/common 1.6.2 → 1.6.3
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/CHANGELOG.md +47 -0
- package/package.json +2 -1
- package/src/styles/README.md +287 -0
- package/src/styles/all.scss +7 -0
- package/src/styles/animations.scss +5 -0
- package/src/styles/css/reset.css +1 -0
- package/src/styles/index.ts +116 -0
- package/src/styles/mixins.scss +5 -0
- package/src/styles/sass/_animations.scss +165 -0
- package/src/styles/sass/_mixins.scss +97 -0
- package/src/styles/sass/_utils.scss +296 -0
- package/src/styles/sass/_variables.scss +114 -0
- package/src/styles/sass/main.scss +12 -0
- package/src/styles/themes/index.tsx +93 -0
- package/src/styles/utils.scss +5 -0
- package/src/styles/variables.scss +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,53 @@ All notable changes to the ERP UI Library will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.6.2] - 2024-11-17
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Complete SCSS Export System**: All SCSS files (variables, mixins, utilities, animations) are now properly exported and accessible
|
|
12
|
+
- **Centralized Style Bundling**: Created `src/styles/index.ts` that imports all component styles
|
|
13
|
+
- **SCSS Export Wrappers**: Added export files for easy importing:
|
|
14
|
+
- `@erpsquad/common/styles/variables` - Color palette and design tokens
|
|
15
|
+
- `@erpsquad/common/styles/mixins` - Flexbox, transitions, and responsive mixins
|
|
16
|
+
- `@erpsquad/common/styles/utils` - Utility classes
|
|
17
|
+
- `@erpsquad/common/styles/animations` - Keyframe animations
|
|
18
|
+
- `@erpsquad/common/styles/all` - All SCSS features at once
|
|
19
|
+
- **Package.json Exports**: Added proper exports configuration for all style resources
|
|
20
|
+
- **SCSS Source Files in Package**: Added `src/styles` to the published package files
|
|
21
|
+
- **Comprehensive Documentation**:
|
|
22
|
+
- `src/styles/README.md` - Complete technical reference
|
|
23
|
+
- `STYLES_USAGE.md` - User guide with examples
|
|
24
|
+
- `STYLES_MIGRATION.md` - Migration guide
|
|
25
|
+
- `STYLES_QUICK_REFERENCE.md` - Quick reference cheat sheet
|
|
26
|
+
- `STYLES_TROUBLESHOOTING.md` - Troubleshooting guide
|
|
27
|
+
- `STYLES_IMPLEMENTATION_SUMMARY.md` - Technical implementation details
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
- **Bug in Utility Classes**: Fixed `.pl-1` and `.pr-1` which were incorrectly using `margin` instead of `padding`
|
|
31
|
+
- **Empty main.scss**: Populated `main.scss` to properly import all shared SCSS files (variables, mixins, utils, animations)
|
|
32
|
+
- **Missing SCSS Files**: SCSS source files are now included in the published package, resolving "Can't find stylesheet to import" errors
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
- Updated `main.scss` to import normalize.css, reset.css, and all core SCSS files
|
|
36
|
+
- Enhanced `README.md` with comprehensive "Styles & SCSS" section
|
|
37
|
+
- Updated Vite configuration to include `styles` as an entry point
|
|
38
|
+
- Improved build process to bundle all component styles correctly
|
|
39
|
+
|
|
40
|
+
### Documentation
|
|
41
|
+
- All styles documentation is now comprehensive and production-ready
|
|
42
|
+
- Added usage examples for CSS bundle, SCSS variables, SCSS mixins, and utility classes
|
|
43
|
+
- Provided troubleshooting guide for common style-related issues
|
|
44
|
+
- Added migration guide showing what changed and how to use new features
|
|
45
|
+
|
|
46
|
+
### Breaking Changes
|
|
47
|
+
- None! This update is 100% backward compatible
|
|
48
|
+
|
|
49
|
+
### Notes
|
|
50
|
+
- Consumers can now import SCSS variables and mixins in their projects
|
|
51
|
+
- Utility classes are fully documented and available via CSS import
|
|
52
|
+
- Design tokens ensure consistency across consuming applications
|
|
53
|
+
- Responsive breakpoints are available as SCSS mixins
|
|
54
|
+
|
|
8
55
|
## [1.0.0] - 2024-01-15
|
|
9
56
|
|
|
10
57
|
### Added
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@erpsquad/common",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.3",
|
|
4
4
|
"description": "Shared UI component library for ERP modules",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.esm.js",
|
|
@@ -115,6 +115,7 @@
|
|
|
115
115
|
],
|
|
116
116
|
"files": [
|
|
117
117
|
"dist",
|
|
118
|
+
"src/styles",
|
|
118
119
|
"README.md",
|
|
119
120
|
"CHANGELOG.md"
|
|
120
121
|
],
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
# ERP UI Library - Styles
|
|
2
|
+
|
|
3
|
+
This directory contains all the SCSS/CSS styles for the ERP UI Library.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
styles/
|
|
9
|
+
├── sass/ # Core SCSS files
|
|
10
|
+
│ ├── _variables.scss # Color palette, fonts, and design tokens
|
|
11
|
+
│ ├── _mixins.scss # Reusable SCSS mixins (flexbox, media queries, etc.)
|
|
12
|
+
│ ├── _utils.scss # Utility classes (spacing, layout, typography)
|
|
13
|
+
│ ├── _animations.scss # Keyframe animations
|
|
14
|
+
│ └── main.scss # Main entry point that imports all core files
|
|
15
|
+
├── css/
|
|
16
|
+
│ └── reset.css # CSS reset (imports normalize.css)
|
|
17
|
+
├── variables.scss # Export file for variables
|
|
18
|
+
├── mixins.scss # Export file for mixins
|
|
19
|
+
├── utils.scss # Export file for utilities
|
|
20
|
+
├── animations.scss # Export file for animations
|
|
21
|
+
├── all.scss # Export file for all SCSS features
|
|
22
|
+
└── index.ts # TypeScript entry point that bundles all styles
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Usage in Consuming Applications
|
|
26
|
+
|
|
27
|
+
### 1. Import Compiled CSS
|
|
28
|
+
|
|
29
|
+
The simplest way to use the library styles:
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
// In your main application file (e.g., main.tsx or App.tsx)
|
|
33
|
+
import '@erpforce/common/style.css';
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
This imports the complete bundled CSS with all component styles and utilities.
|
|
37
|
+
|
|
38
|
+
### 2. Use SCSS Variables in Your Application
|
|
39
|
+
|
|
40
|
+
If you want to use the same design tokens (colors, fonts, etc.) in your SCSS files:
|
|
41
|
+
|
|
42
|
+
```scss
|
|
43
|
+
// In your .scss file
|
|
44
|
+
@import '@erpforce/common/styles/variables';
|
|
45
|
+
|
|
46
|
+
.my-component {
|
|
47
|
+
background-color: $primary-500;
|
|
48
|
+
color: $neutral-900;
|
|
49
|
+
font-family: $main_font;
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 3. Use SCSS Mixins
|
|
54
|
+
|
|
55
|
+
Access responsive breakpoints and other mixins:
|
|
56
|
+
|
|
57
|
+
```scss
|
|
58
|
+
// In your .scss file
|
|
59
|
+
@import '@erpforce/common/styles/mixins';
|
|
60
|
+
|
|
61
|
+
.my-responsive-component {
|
|
62
|
+
display: flex;
|
|
63
|
+
|
|
64
|
+
@include media-md {
|
|
65
|
+
flex-direction: column;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@include flex(center, space-between, row);
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 4. Use Utility Classes
|
|
73
|
+
|
|
74
|
+
The library includes Bootstrap-like utility classes:
|
|
75
|
+
|
|
76
|
+
```scss
|
|
77
|
+
// In your .scss file
|
|
78
|
+
@import '@erpforce/common/styles/utils';
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Then in your JSX:
|
|
82
|
+
|
|
83
|
+
```tsx
|
|
84
|
+
<div className="d-flex justify-content-center align-items-center mb-2">
|
|
85
|
+
<span className="s2 bold">Hello World</span>
|
|
86
|
+
</div>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 5. Use Animations
|
|
90
|
+
|
|
91
|
+
Access predefined animations:
|
|
92
|
+
|
|
93
|
+
```scss
|
|
94
|
+
// In your .scss file
|
|
95
|
+
@import '@erpforce/common/styles/animations';
|
|
96
|
+
|
|
97
|
+
.my-animated-element {
|
|
98
|
+
animation: textfadein 0.3s ease-in;
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 6. Import Everything
|
|
103
|
+
|
|
104
|
+
If you need access to all SCSS features:
|
|
105
|
+
|
|
106
|
+
```scss
|
|
107
|
+
// In your .scss file
|
|
108
|
+
@import '@erpforce/common/styles/all';
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Available Design Tokens
|
|
112
|
+
|
|
113
|
+
### Color Palette
|
|
114
|
+
|
|
115
|
+
- **Primary Colors**: `$primary-100` to `$primary-1000`
|
|
116
|
+
- **Green Colors**: `$green-100` to `$green-1000`
|
|
117
|
+
- **Light Green**: `$lightGreen-100` to `$lightGreen-1000`
|
|
118
|
+
- **Olive**: `$olive-100` to `$olive-1000`
|
|
119
|
+
- **Magenta**: `$magenta-100` to `$magenta-1000`
|
|
120
|
+
- **Blue**: `$blue-100` to `$blue-1000`
|
|
121
|
+
- **Neutral**: `$neutral-100` to `$neutral-1000`
|
|
122
|
+
- **Red**: `$red-100` to `$red-1000`
|
|
123
|
+
- **Error**: `$error-100` to `$error-1000`
|
|
124
|
+
|
|
125
|
+
### Typography
|
|
126
|
+
|
|
127
|
+
- **Fonts**: `$main_font`, `$secondary_font`, `$tertiary_font`
|
|
128
|
+
|
|
129
|
+
## Available Mixins
|
|
130
|
+
|
|
131
|
+
### Flexbox
|
|
132
|
+
|
|
133
|
+
```scss
|
|
134
|
+
@include flex($align, $justify, $direction);
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Transitions
|
|
138
|
+
|
|
139
|
+
```scss
|
|
140
|
+
@include transition($time, $motion);
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Animations
|
|
144
|
+
|
|
145
|
+
```scss
|
|
146
|
+
@include animate($time, $motion, $delay, $count, $direction, $fillmode, $state, $name);
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Center Element
|
|
150
|
+
|
|
151
|
+
```scss
|
|
152
|
+
@include center; // Absolutely centers element
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Disable Scrollbar
|
|
156
|
+
|
|
157
|
+
```scss
|
|
158
|
+
@include disableScroll;
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Responsive Breakpoints
|
|
162
|
+
|
|
163
|
+
- `@include media-xss` - max-width: 320px
|
|
164
|
+
- `@include media-ss` - max-width: 360px
|
|
165
|
+
- `@include media-sm` - max-width: 395px
|
|
166
|
+
- `@include media-sl` - max-width: 450px
|
|
167
|
+
- `@include media-md` - max-width: 812px
|
|
168
|
+
- `@include media-ml` - max-width: 1112px
|
|
169
|
+
- `@include media-l` - max-width: 1440px
|
|
170
|
+
- `@include media-xl` - max-width: 1600px
|
|
171
|
+
- `@include media-xxl` - max-width: 1920px
|
|
172
|
+
|
|
173
|
+
## Utility Classes
|
|
174
|
+
|
|
175
|
+
### Spacing
|
|
176
|
+
|
|
177
|
+
**Padding:**
|
|
178
|
+
- `.p-0`, `.pt-0`, `.pb-0`, `.pl-0`, `.pr-0` (0px)
|
|
179
|
+
- `.pt-1`, `.pb-1`, `.pl-1`, `.pr-1` (0.625rem / 10px)
|
|
180
|
+
- `.pb-2`, `.pr-2`, `.pl-2` (1.25rem / 20px)
|
|
181
|
+
|
|
182
|
+
**Margin:**
|
|
183
|
+
- `.m-0`, `.mt-0`, `.mb-0`, `.ml-0`, `.mr-0` (0px)
|
|
184
|
+
- `.mt-1`, `.mb-1`, `.ml-1`, `.mr-1` (0.625rem / 10px)
|
|
185
|
+
- `.mt-2`, `.mb-2`, `.mr-2` (1.25rem / 20px)
|
|
186
|
+
|
|
187
|
+
### Display & Flexbox
|
|
188
|
+
|
|
189
|
+
- `.d-flex` - display: flex
|
|
190
|
+
- `.justify-content-center`, `.jc-start`, `.jc-end`, `.jc-space-between`
|
|
191
|
+
- `.align-items-center`, `.ai-start`, `.ai-center`
|
|
192
|
+
- `.flex-direction-column`, `.fd-col`, `.fd-column`
|
|
193
|
+
|
|
194
|
+
### Text Alignment
|
|
195
|
+
|
|
196
|
+
- `.text-center`
|
|
197
|
+
- `.text-left`
|
|
198
|
+
- `.text-right`
|
|
199
|
+
|
|
200
|
+
### Width & Height
|
|
201
|
+
|
|
202
|
+
- `.w-25`, `.w-40`, `.w-50`, `.w-60`, `.w-100`
|
|
203
|
+
- `.h-100`, `.vh-100`
|
|
204
|
+
|
|
205
|
+
### Grid System
|
|
206
|
+
|
|
207
|
+
- `.row`
|
|
208
|
+
- `.col`, `.col-3`, `.col-4`, `.col-5`, `.col-6`, `.col-7`, `.col-8`, `.col-9`
|
|
209
|
+
|
|
210
|
+
### Typography
|
|
211
|
+
|
|
212
|
+
**Headings:**
|
|
213
|
+
- `.h1` (1.75rem / 28px)
|
|
214
|
+
- `.h2` (1.5rem / 24px)
|
|
215
|
+
- `.h3` (1.25rem / 20px)
|
|
216
|
+
- `.h4` (1.125rem / 18px)
|
|
217
|
+
- `.h5` (1rem / 16px)
|
|
218
|
+
|
|
219
|
+
**Body Text:**
|
|
220
|
+
- `.s1` (1.125rem / 18px)
|
|
221
|
+
- `.s2` (1rem / 16px)
|
|
222
|
+
- `.s3` (0.875rem / 14px)
|
|
223
|
+
- `.s4` (0.8125rem / 13px)
|
|
224
|
+
- `.s5` (0.75rem / 12px)
|
|
225
|
+
|
|
226
|
+
**Font Weight:**
|
|
227
|
+
- `.normal` (400)
|
|
228
|
+
- `.medium` (500)
|
|
229
|
+
- `.bold` (600)
|
|
230
|
+
|
|
231
|
+
### States
|
|
232
|
+
|
|
233
|
+
- `.edisabled` - Makes element non-interactive with reduced opacity
|
|
234
|
+
|
|
235
|
+
## Animations
|
|
236
|
+
|
|
237
|
+
Available keyframe animations:
|
|
238
|
+
|
|
239
|
+
- `cardswipe`, `cardreverseswipe`
|
|
240
|
+
- `cardrotate`, `cardreverserotate`
|
|
241
|
+
- `tabletreversemoveup`
|
|
242
|
+
- `textfadein`
|
|
243
|
+
- `navbarexpand`, `navbarshrink`
|
|
244
|
+
|
|
245
|
+
Usage example:
|
|
246
|
+
|
|
247
|
+
```scss
|
|
248
|
+
.my-element {
|
|
249
|
+
animation: textfadein 0.5s ease-out;
|
|
250
|
+
}
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
## Best Practices
|
|
254
|
+
|
|
255
|
+
1. **Import Only What You Need**: Instead of importing `all.scss`, import specific files to reduce bundle size
|
|
256
|
+
2. **Use Utility Classes**: Leverage the utility classes for quick styling instead of writing custom CSS
|
|
257
|
+
3. **Follow Design System**: Use the provided color tokens and typography scale for consistency
|
|
258
|
+
4. **Responsive Design**: Use the provided media query mixins for consistent breakpoints
|
|
259
|
+
5. **Component-Specific Styles**: Keep component-specific styles in their respective component files
|
|
260
|
+
|
|
261
|
+
## Development
|
|
262
|
+
|
|
263
|
+
When adding new styles:
|
|
264
|
+
|
|
265
|
+
1. Add shared variables to `sass/_variables.scss`
|
|
266
|
+
2. Add reusable mixins to `sass/_mixins.scss`
|
|
267
|
+
3. Add utility classes to `sass/_utils.scss`
|
|
268
|
+
4. Add animations to `sass/_animations.scss`
|
|
269
|
+
5. Component-specific styles go in their respective component folders
|
|
270
|
+
6. Update `index.ts` if adding new component style files
|
|
271
|
+
|
|
272
|
+
## Build Process
|
|
273
|
+
|
|
274
|
+
The styles are processed during the build:
|
|
275
|
+
|
|
276
|
+
1. SCSS files are compiled to CSS
|
|
277
|
+
2. All component styles are bundled together
|
|
278
|
+
3. A single `style.css` file is output to `dist/`
|
|
279
|
+
4. Individual SCSS files remain available for import in consuming applications
|
|
280
|
+
|
|
281
|
+
## Notes
|
|
282
|
+
|
|
283
|
+
- The library uses `normalize.css` for consistent cross-browser styling
|
|
284
|
+
- All SCSS files use the Dart Sass syntax
|
|
285
|
+
- Media queries are mobile-first where applicable
|
|
286
|
+
- Colors follow a 100-1000 scale for consistent gradation
|
|
287
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "normalize.css";
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Styles Entry Point
|
|
3
|
+
*
|
|
4
|
+
* This file imports all the necessary SCSS/CSS files that will be bundled
|
|
5
|
+
* into the final style.css output file.
|
|
6
|
+
*
|
|
7
|
+
* Usage in consuming applications:
|
|
8
|
+
*
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // Import the bundled styles
|
|
11
|
+
* import '@erpforce/common/style.css';
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* For SCSS variables and mixins:
|
|
15
|
+
*
|
|
16
|
+
* ```scss
|
|
17
|
+
* // In your .scss file
|
|
18
|
+
* @import '@erpforce/common/styles/variables';
|
|
19
|
+
* @import '@erpforce/common/styles/mixins';
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
// Import the main SCSS file which includes all shared styles
|
|
24
|
+
import './sass/main.scss';
|
|
25
|
+
|
|
26
|
+
// Import all component styles
|
|
27
|
+
// Components
|
|
28
|
+
import '../components/action-bar/action-bar.scss';
|
|
29
|
+
import '../components/activity-tag/activity-tag.scss';
|
|
30
|
+
import '../components/activityArea/activityArea.scss';
|
|
31
|
+
import '../components/activityLog/activity-log.scss';
|
|
32
|
+
import '../components/appbar/appbar.scss';
|
|
33
|
+
import '../components/avatar/avatar.scss';
|
|
34
|
+
import '../components/board/board.scss';
|
|
35
|
+
import '../components/button/button.scss';
|
|
36
|
+
import '../components/calculation-summary/calculation-summary.scss';
|
|
37
|
+
import '../components/calendar/calendar.scss';
|
|
38
|
+
import '../components/card-wrapper/card-wrapper.scss';
|
|
39
|
+
import '../components/confirm-modal/confirm-modal.scss';
|
|
40
|
+
import '../components/country-select/index.scss';
|
|
41
|
+
import '../components/custom-snackbar/custom-snackbar.scss';
|
|
42
|
+
import '../components/Dashboard/dashboard.scss';
|
|
43
|
+
import '../components/date-picker/date-picker.scss';
|
|
44
|
+
import '../components/date-range-picker/date-range-picker.scss';
|
|
45
|
+
import '../components/date-time-picker/date-time-picker.scss';
|
|
46
|
+
import '../components/expandable-summary-wrapper/expandable-summary-wrapper.scss';
|
|
47
|
+
import '../components/fallback/fallback.scss';
|
|
48
|
+
import '../components/filter/filter.scss';
|
|
49
|
+
import '../components/footer/footer.scss';
|
|
50
|
+
import '../components/form-control/form-builder/form-builder-element/element.scss';
|
|
51
|
+
import '../components/form-control/form-builder/form-builder-element/location-add-modal/location-add-modal.scss';
|
|
52
|
+
import '../components/form-control/form-parser/form-parser.scss';
|
|
53
|
+
import '../components/form-header/form-header.scss';
|
|
54
|
+
import '../components/gantt/gantt.scss';
|
|
55
|
+
import '../components/grid/grid-card/grid-card.scss';
|
|
56
|
+
import '../components/grid/grid-wrapper/grid-wrapper.scss';
|
|
57
|
+
import '../components/grid-fallback/grid-fallback.scss';
|
|
58
|
+
import '../components/header/header.scss';
|
|
59
|
+
import '../components/header-card/header-card.scss';
|
|
60
|
+
import '../components/hr-line/hr-line.scss';
|
|
61
|
+
import '../components/info-card/info-card.scss';
|
|
62
|
+
import '../components/inventory-reports-title-bar/component/reportFilter.scss';
|
|
63
|
+
import '../components/inventory-reports-title-bar/inventory-reports-title-bar.scss';
|
|
64
|
+
import '../components/inventory-reports-title-bar/report-buttons/report-buttons.scss';
|
|
65
|
+
import '../components/list/list.scss';
|
|
66
|
+
import '../components/material-table/material-table.scss';
|
|
67
|
+
import '../components/module-button/module-button.scss';
|
|
68
|
+
import '../components/mulitline/multiline.scss';
|
|
69
|
+
import '../components/multi-select/multi-select.scss';
|
|
70
|
+
import '../components/page-navigator/page-navigator.scss';
|
|
71
|
+
import '../components/page-navigator/components/shared-page-modal.scss';
|
|
72
|
+
import '../components/pagination/pagination.scss';
|
|
73
|
+
import '../components/parties-modal/parties-modal.scss';
|
|
74
|
+
import '../components/quick-approval-modal/quick-approval-modal.scss';
|
|
75
|
+
import '../components/reports/dynamic-report/dynamic-report.scss';
|
|
76
|
+
import '../components/reports-title-bar/reports-title-bar.scss';
|
|
77
|
+
import '../components/reports-title-bar/report-buttons/report-buttons.scss';
|
|
78
|
+
import '../components/schedule-report/schedule-report.scss';
|
|
79
|
+
import '../components/schedule-report/schedule-report-modal.scss';
|
|
80
|
+
import '../components/search-bar/search-bar.scss';
|
|
81
|
+
import '../components/select/controller/controller-select.scss';
|
|
82
|
+
import '../components/share-modal/share-modal.scss';
|
|
83
|
+
import '../components/sidebar/sidebar.scss';
|
|
84
|
+
import '../components/sub-header-doc/sub-header-doc.scss';
|
|
85
|
+
import '../components/tab-bar-ui/tab-bar-ui.scss';
|
|
86
|
+
import '../components/tabs/tabs.scss';
|
|
87
|
+
import '../components/text-field/text-field.scss';
|
|
88
|
+
import '../components/time-picker/time-picker.scss';
|
|
89
|
+
import '../components/time-range-picker/time-range-picker.scss';
|
|
90
|
+
import '../components/toast/toast.scss';
|
|
91
|
+
import '../components/toggle/toggle.scss';
|
|
92
|
+
import '../components/upload/upload.scss';
|
|
93
|
+
import '../components/upload-excel/upload-excel.scss';
|
|
94
|
+
import '../components/user-dropdown/user-dropdown.scss';
|
|
95
|
+
import '../components/value-field/value-field.scss';
|
|
96
|
+
import '../components/view-modal/view-modal.scss';
|
|
97
|
+
|
|
98
|
+
// Charts
|
|
99
|
+
import '../components/charts/barLineChart/barLineChart.scss';
|
|
100
|
+
import '../components/charts/chartLegend.scss';
|
|
101
|
+
import '../components/charts/donut-chart/donut-chart.scss';
|
|
102
|
+
import '../components/charts/donutChart/donut-chart.scss';
|
|
103
|
+
|
|
104
|
+
// Views
|
|
105
|
+
import '../views/afterAuth/dashboard/dashboard.scss';
|
|
106
|
+
import '../views/beforeAuth/components/index.scss';
|
|
107
|
+
import '../views/beforeAuth/landing/landing.scss';
|
|
108
|
+
import '../views/beforeAuth/login/index.scss';
|
|
109
|
+
import '../views/template-editor/add-template/add-template.scss';
|
|
110
|
+
import '../views/template-editor/company-selection-modal/company-selection-modal.scss';
|
|
111
|
+
import '../views/template-editor/edit-section-modal/edit-section-modal.scss';
|
|
112
|
+
import '../views/template-editor/template-name-modal/template-name-modal.scss';
|
|
113
|
+
import '../views/template-editor/templates.scss';
|
|
114
|
+
|
|
115
|
+
export {};
|
|
116
|
+
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
@import "../../styles/sass/mixins";
|
|
2
|
+
|
|
3
|
+
@keyframes cardswipe {
|
|
4
|
+
100% {
|
|
5
|
+
transform: translate(5vw, 10vh) rotate(0);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@keyframes cardreverseswipe {
|
|
10
|
+
0% {
|
|
11
|
+
transform: translate(5vw, 10vh) rotate(0);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
100% {
|
|
15
|
+
transform: translate(0, 0) rotate(-45deg);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@keyframes cardrotate {
|
|
20
|
+
100% {
|
|
21
|
+
transform: rotateX(15deg) rotateY(10deg);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@keyframes cardreverserotate {
|
|
26
|
+
0% {
|
|
27
|
+
transform: rotateX(15deg) rotateY(10deg);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
100% {
|
|
31
|
+
transform: rotateX(35deg) rotateY(15deg);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@keyframes tabletreversemoveup {
|
|
36
|
+
0% {
|
|
37
|
+
transform: rotate(-35deg) translate(8vw, 7vh);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
100% {
|
|
41
|
+
transform: rotate(-35deg) translate(8vw, 12vh);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@keyframes textfadein {
|
|
46
|
+
0% {
|
|
47
|
+
transform: translateY(10vh);
|
|
48
|
+
opacity: 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
100% {
|
|
52
|
+
transform: translateY(0);
|
|
53
|
+
opacity: 1;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@keyframes navbarexpand {
|
|
58
|
+
0% {
|
|
59
|
+
width: 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
100% {
|
|
63
|
+
width: 45vw;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@keyframes navbarshrink {
|
|
68
|
+
0% {
|
|
69
|
+
width: 45vw;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
100% {
|
|
73
|
+
width: 0;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// MEDIA QUERIES
|
|
78
|
+
|
|
79
|
+
@include media-ml {
|
|
80
|
+
@keyframes tabletmoveup {
|
|
81
|
+
100% {
|
|
82
|
+
transform: rotate(-35deg) translate(15vw, 7vh);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@keyframes tabletreversemoveup {
|
|
87
|
+
0% {
|
|
88
|
+
transform: rotate(-35deg) translate(15vw, 7vh);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
100% {
|
|
92
|
+
transform: rotate(-35deg) translate(15vw, 12vh);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
@include media-md {
|
|
98
|
+
@keyframes cardswipe {
|
|
99
|
+
100% {
|
|
100
|
+
transform: translate(7vw, 5vh);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@include media-sl {
|
|
106
|
+
@keyframes swipemovedown {
|
|
107
|
+
100% {
|
|
108
|
+
transform: rotate(-35deg) translate(11vw, 3vh);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@keyframes tabletmoveup {
|
|
113
|
+
100% {
|
|
114
|
+
transform: rotate(-35deg) translate(15vw, 0vh);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
@keyframes swipereversemovedown {
|
|
119
|
+
0% {
|
|
120
|
+
transform: rotate(-35deg) translate(11vw, 3vh);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
100% {
|
|
124
|
+
transform: rotate(-35deg) translate(11vw, -2vh);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@keyframes tabletreversemoveup {
|
|
129
|
+
0% {
|
|
130
|
+
transform: rotate(-35deg) translate(15vw, 0vh);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
100% {
|
|
134
|
+
transform: rotate(-35deg) translate(15vw, 5vh);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
@keyframes navbarexpand {
|
|
139
|
+
0% {
|
|
140
|
+
width: 0;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
100% {
|
|
144
|
+
width: 70vw;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
@keyframes navbarshrink {
|
|
149
|
+
0% {
|
|
150
|
+
width: 70vw;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
100% {
|
|
154
|
+
width: 0;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
@include media-ss {
|
|
160
|
+
@keyframes tabletmoveup {
|
|
161
|
+
100% {
|
|
162
|
+
transform: rotate(-35deg) translate(15vw, 2vh);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
@import "./variables";
|
|
2
|
+
|
|
3
|
+
// Flexbox
|
|
4
|
+
@mixin flex($align, $justify, $direction) {
|
|
5
|
+
display: flex;
|
|
6
|
+
align-items: $align;
|
|
7
|
+
justify-content: $justify;
|
|
8
|
+
flex-direction: $direction;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@mixin transition($time, $motion) {
|
|
12
|
+
transition: all $time $motion;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@mixin animate(
|
|
16
|
+
$time,
|
|
17
|
+
$motion,
|
|
18
|
+
$delay,
|
|
19
|
+
$count,
|
|
20
|
+
$direction,
|
|
21
|
+
$fillmode,
|
|
22
|
+
$state,
|
|
23
|
+
$name
|
|
24
|
+
) {
|
|
25
|
+
animation: $time $motion $delay $count $direction $fillmode $state $name;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// To absolute center any element w.r.t viewport
|
|
29
|
+
@mixin center {
|
|
30
|
+
top: 50%;
|
|
31
|
+
left: 50%;
|
|
32
|
+
transform: translate(-50%, -50%);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// To disable Scroll bar
|
|
36
|
+
@mixin disableScroll {
|
|
37
|
+
&::-webkit-scrollbar {
|
|
38
|
+
display: none;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
-ms-overflow-style: none;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Mobile Responsivness Breakpoints
|
|
45
|
+
@mixin media-xss {
|
|
46
|
+
@media screen and (max-width: 320px) {
|
|
47
|
+
@content;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@mixin media-ss {
|
|
52
|
+
@media screen and (max-width: 360px) {
|
|
53
|
+
@content;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@mixin media-sm {
|
|
58
|
+
@media screen and (max-width: 395px) {
|
|
59
|
+
@content;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@mixin media-sl {
|
|
64
|
+
@media screen and (max-width: 450px) {
|
|
65
|
+
@content;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@mixin media-md {
|
|
70
|
+
@media screen and (max-width: 812px) {
|
|
71
|
+
@content;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@mixin media-ml {
|
|
76
|
+
@media screen and (max-width: 1112px) {
|
|
77
|
+
@content;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@mixin media-l {
|
|
82
|
+
@media screen and (max-width: 1440px) {
|
|
83
|
+
@content;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@mixin media-xl {
|
|
88
|
+
@media screen and (max-width: 1600px) {
|
|
89
|
+
@content;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@mixin media-xxl {
|
|
94
|
+
@media screen and (max-width: 1920px) {
|
|
95
|
+
@content;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
@import "./variables";
|
|
2
|
+
|
|
3
|
+
.edisabled {
|
|
4
|
+
-moz-user-select: none;
|
|
5
|
+
user-select: none;
|
|
6
|
+
pointer-events: none;
|
|
7
|
+
filter: opacity(0.5); //grayscale(1)
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//padding
|
|
11
|
+
.pb-0 {
|
|
12
|
+
padding-bottom: 0px !important;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.pb-1 {
|
|
16
|
+
padding-bottom: 0.625rem;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.pb-2 {
|
|
20
|
+
padding-bottom: 1.25rem;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.pt-1 {
|
|
24
|
+
padding-top: 0.625rem;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.pl-1 {
|
|
28
|
+
padding-left: 0.625rem;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.pr-1 {
|
|
32
|
+
padding-right: 0.625rem;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.pr-2 {
|
|
36
|
+
padding-right: 1.25rem;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.pt-0 {
|
|
40
|
+
padding-top: 0px !important;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.pl-2 {
|
|
44
|
+
padding-left: 1.25rem !important;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.p-0 {
|
|
48
|
+
padding: 0px !important;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.pl-0 {
|
|
52
|
+
padding-left: 0px !important;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//margin
|
|
56
|
+
.mb-0 {
|
|
57
|
+
margin-bottom: 0px !important;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.mt-0 {
|
|
61
|
+
margin-top: 0px !important;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.mt-1 {
|
|
65
|
+
margin-top: 0.625rem !important;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.mb-2 {
|
|
69
|
+
margin-bottom: 1.25rem !important;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.mb-1 {
|
|
73
|
+
margin-bottom: 0.625rem !important;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.mt-2 {
|
|
77
|
+
margin-top: 1.25rem !important;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.mb-1-2 {
|
|
81
|
+
margin-bottom: 0.75rem !important;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.mr-2 {
|
|
85
|
+
margin-right: 1.25rem !important;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
//display
|
|
89
|
+
.d-flex {
|
|
90
|
+
display: flex !important;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
//flex utilis
|
|
94
|
+
.justify-content-center {
|
|
95
|
+
justify-content: center !important;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.align-items-center {
|
|
99
|
+
align-items: center !important;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.flex-direction-column {
|
|
103
|
+
flex-direction: column !important;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.justify-content-end {
|
|
107
|
+
justify-content: flex-end !important;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.justify-content-between {
|
|
111
|
+
justify-content: space-between;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.justify-content-start {
|
|
115
|
+
justify-content: flex-start !important;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.justify-content-space-evenly {
|
|
119
|
+
justify-content: space-evenly !important;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// short f
|
|
123
|
+
.fd-column,
|
|
124
|
+
.fd-col {
|
|
125
|
+
flex-direction: column !important;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.ai-center {
|
|
129
|
+
align-items: center !important;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.ai-start {
|
|
133
|
+
align-items: flex-start !important;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.jc-space-between {
|
|
137
|
+
justify-content: space-between;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.jc-start {
|
|
141
|
+
justify-content: flex-start !important;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.jc-end {
|
|
145
|
+
justify-content: end !important;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.fd-col {
|
|
149
|
+
flex-direction: column !important;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
//text alignment
|
|
153
|
+
.text-center {
|
|
154
|
+
text-align: center;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.text-right {
|
|
158
|
+
text-align: right !important;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.text-left {
|
|
162
|
+
text-align: left !important;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
//width
|
|
166
|
+
.w-100 {
|
|
167
|
+
width: 100% !important;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.w-25 {
|
|
171
|
+
width: 25%;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.w-50 {
|
|
175
|
+
width: 50%;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.w-40 {
|
|
179
|
+
width: 60%;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.w-60 {
|
|
183
|
+
width: 60%;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
//height
|
|
187
|
+
.h-100 {
|
|
188
|
+
height: 100% !important;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.vh-100 {
|
|
192
|
+
height: 100vh !important;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
//row and cols
|
|
196
|
+
.row {
|
|
197
|
+
width: 100%;
|
|
198
|
+
display: flex;
|
|
199
|
+
margin: 0.625rem;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.col-9 {
|
|
203
|
+
width: 75%;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.col-8 {
|
|
207
|
+
width: 66.64%;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.col-7 {
|
|
211
|
+
width: 58.31%;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.col-6 {
|
|
215
|
+
width: 50%;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.col-5 {
|
|
219
|
+
width: 41.65%;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.col-4 {
|
|
223
|
+
width: 33.32%;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.col-3 {
|
|
227
|
+
width: 25%;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.col {
|
|
231
|
+
width: 33.33%;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
.h1 {
|
|
235
|
+
font-size: 1.75rem;
|
|
236
|
+
line-height: 140%;
|
|
237
|
+
letter-spacing: -0.035rem;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.h2 {
|
|
241
|
+
font-size: 1.5rem;
|
|
242
|
+
line-height: 140%;
|
|
243
|
+
letter-spacing: -0.03rem;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.h3 {
|
|
247
|
+
font-size: 1.25rem;
|
|
248
|
+
letter-spacing: -0.025rem;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.h4 {
|
|
252
|
+
font-size: 1.125rem;
|
|
253
|
+
letter-spacing: -0.0225rem;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.h5 {
|
|
257
|
+
font-size: 1rem;
|
|
258
|
+
letter-spacing: -0.02rem;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.s1 {
|
|
262
|
+
font-size: 1.125rem; // 18px
|
|
263
|
+
letter-spacing: -0.0225rem;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.s2 {
|
|
267
|
+
font-size: 1rem; // 16px
|
|
268
|
+
letter-spacing: -0.02rem;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.s3 {
|
|
272
|
+
font-size: 0.875rem; //14px
|
|
273
|
+
letter-spacing: -0.0175rem;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
.s4 {
|
|
277
|
+
font-size: 0.8125rem; //13px
|
|
278
|
+
letter-spacing: -0.01625rem;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.s5 {
|
|
282
|
+
font-size: 0.75rem; //12px
|
|
283
|
+
letter-spacing: -0.015rem;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
.normal {
|
|
287
|
+
font-weight: 400;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.medium {
|
|
291
|
+
font-weight: 500;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.bold {
|
|
295
|
+
font-weight: 600;
|
|
296
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// $primary-100: #ebf9f2;
|
|
2
|
+
// $primary-200: #d6f3e5;
|
|
3
|
+
// $primary-300: #ade7cb;
|
|
4
|
+
// $primary-400: #84dab1;
|
|
5
|
+
// $primary-500: #5bce97;
|
|
6
|
+
// $primary-600: #32c27d;
|
|
7
|
+
// $primary-700: #289b64;
|
|
8
|
+
// $primary-800: #1e744b;
|
|
9
|
+
// $primary-900: #144e32;
|
|
10
|
+
// $primary-1000: #0a2719;
|
|
11
|
+
|
|
12
|
+
$primary-100: #D2F0E6;
|
|
13
|
+
$primary-200: #B6E9D6;
|
|
14
|
+
$primary-300: #9BE2C6;
|
|
15
|
+
$primary-400: #7FDBB6;
|
|
16
|
+
$primary-500: #6FD3A6;
|
|
17
|
+
$primary-600: #54CC96;
|
|
18
|
+
$primary-700: #4AC08C;
|
|
19
|
+
$primary-800: #2EB273;
|
|
20
|
+
$primary-900: #279769;
|
|
21
|
+
$primary-1000: #1F7C5E;
|
|
22
|
+
|
|
23
|
+
$green-100: #ddf9e4;
|
|
24
|
+
$green-200: #d0f0da;
|
|
25
|
+
$green-300: #c3e6cf;
|
|
26
|
+
$green-400: #b6dcc5;
|
|
27
|
+
$green-500: #a8d2ba;
|
|
28
|
+
$green-600: #72aa8f;
|
|
29
|
+
$green-700: #58967a;
|
|
30
|
+
$green-800: #3d8264;
|
|
31
|
+
$green-900: #226e4f;
|
|
32
|
+
$green-1000: #075a39;
|
|
33
|
+
|
|
34
|
+
$lightGreen-100: #f4fbcb;
|
|
35
|
+
$lightGreen-200: #eaf2bf;
|
|
36
|
+
$lightGreen-300: #e0e8b3;
|
|
37
|
+
$lightGreen-400: #d6dea7;
|
|
38
|
+
$lightGreen-500: #cbd49a;
|
|
39
|
+
$lightGreen-600: #a2ad69;
|
|
40
|
+
$lightGreen-700: #98a45d;
|
|
41
|
+
$lightGreen-800: #8e9a51;
|
|
42
|
+
$lightGreen-900: #798638;
|
|
43
|
+
$lightGreen-1000: #505f07;
|
|
44
|
+
|
|
45
|
+
$olive-100: #fff3cc;
|
|
46
|
+
$olive-200: #f7eac0;
|
|
47
|
+
$olive-300: #eee0b3;
|
|
48
|
+
$olive-400: #e5d6a6;
|
|
49
|
+
$olive-500: #dccc99;
|
|
50
|
+
$olive-600: #b8a466;
|
|
51
|
+
$olive-700: #a6914d;
|
|
52
|
+
$olive-800: #947d33;
|
|
53
|
+
$olive-900: #82691a;
|
|
54
|
+
$olive-1000: #705500;
|
|
55
|
+
|
|
56
|
+
$magenta-100: #feecf1;
|
|
57
|
+
$magenta-200: #f6dee8;
|
|
58
|
+
$magenta-300: #edd0df;
|
|
59
|
+
$magenta-400: #e4c2d6;
|
|
60
|
+
$magenta-500: #dbb3cc;
|
|
61
|
+
$magenta-600: #b779a7;
|
|
62
|
+
$magenta-700: #ae6b9e;
|
|
63
|
+
$magenta-800: #a55d95;
|
|
64
|
+
$magenta-900: #934082;
|
|
65
|
+
$magenta-1000: #6f065d;
|
|
66
|
+
|
|
67
|
+
$blue-100: #daf4fc;
|
|
68
|
+
$blue-200: #cdebf4;
|
|
69
|
+
$blue-300: #c0e1eb;
|
|
70
|
+
$blue-400: #b3d8e2;
|
|
71
|
+
$blue-500: #a6ced9;
|
|
72
|
+
$blue-600: #72a7b6;
|
|
73
|
+
$blue-700: #5894a5;
|
|
74
|
+
$blue-800: #3e8193;
|
|
75
|
+
$blue-900: #246e82;
|
|
76
|
+
$blue-1000: #0a5a70;
|
|
77
|
+
|
|
78
|
+
$neutral-100: #fbfbfb;
|
|
79
|
+
$neutral-150: #f5f6f5;
|
|
80
|
+
$neutral-200: #eeeff1;
|
|
81
|
+
$neutral-300: #d3d3d4;
|
|
82
|
+
$neutral-400: #bdbebf;
|
|
83
|
+
$neutral-500: #a7a8a9;
|
|
84
|
+
$neutral-600: #919294;
|
|
85
|
+
$neutral-700: #7b7c7f;
|
|
86
|
+
$neutral-800: #656669;
|
|
87
|
+
$neutral-900: #232529;
|
|
88
|
+
$neutral-1000: #1f2125;
|
|
89
|
+
|
|
90
|
+
$red-100: #ffebeb;
|
|
91
|
+
$red-200: #eed2d2;
|
|
92
|
+
$red-300: #ddb9b9;
|
|
93
|
+
$red-400: #d5adad;
|
|
94
|
+
$red-500: #cca0a0;
|
|
95
|
+
$red-600: #bb8787;
|
|
96
|
+
$red-700: #aa6e6e;
|
|
97
|
+
$red-800: #995555;
|
|
98
|
+
$red-900: #883c3c;
|
|
99
|
+
$red-1000: #772322;
|
|
100
|
+
|
|
101
|
+
$error-100: #fedfdf;
|
|
102
|
+
$error-200: #fcbfbf;
|
|
103
|
+
$error-300: #fba0a0;
|
|
104
|
+
$error-400: #f98080;
|
|
105
|
+
$error-500: #f86060;
|
|
106
|
+
$error-600: #c64d4d;
|
|
107
|
+
$error-700: #953a3a;
|
|
108
|
+
$error-800: #632626;
|
|
109
|
+
$error-900: #321313;
|
|
110
|
+
$error-1000: #250e0e;
|
|
111
|
+
|
|
112
|
+
$main_font: "Inter", sans-serif;
|
|
113
|
+
$secondary_font: "Inter", sans-serif;
|
|
114
|
+
$tertiary_font: "Inter", sans-serif;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Import normalize.css for consistent browser styling
|
|
2
|
+
@import "normalize.css";
|
|
3
|
+
|
|
4
|
+
// Import CSS reset
|
|
5
|
+
@import "../css/reset.css";
|
|
6
|
+
|
|
7
|
+
// Core SCSS files - these provide variables, mixins, and utilities
|
|
8
|
+
@import "./variables";
|
|
9
|
+
@import "./mixins";
|
|
10
|
+
@import "./animations";
|
|
11
|
+
@import "./utils";
|
|
12
|
+
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { createTheme } from "@mui/material/styles";
|
|
2
|
+
import {
|
|
3
|
+
Color,
|
|
4
|
+
primaryGreen,
|
|
5
|
+
neutral,
|
|
6
|
+
lightGreen,
|
|
7
|
+
magenta,
|
|
8
|
+
green,
|
|
9
|
+
blue,
|
|
10
|
+
red,
|
|
11
|
+
olive,
|
|
12
|
+
error,
|
|
13
|
+
} from "../../theme/color";
|
|
14
|
+
// import { typography } from "./typography";
|
|
15
|
+
|
|
16
|
+
function createLightTheme(primaryColor?: Color) {
|
|
17
|
+
const primaryColorVariations = [
|
|
18
|
+
{
|
|
19
|
+
label: "Olive Green",
|
|
20
|
+
color: olive,
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
label: "Primary Green",
|
|
24
|
+
color: primaryGreen,
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const theme = createTheme({
|
|
29
|
+
typography: {
|
|
30
|
+
fontFamily: `Inter, sans-serif`,
|
|
31
|
+
},
|
|
32
|
+
palette: {
|
|
33
|
+
theme: {
|
|
34
|
+
bg: "#ffffff",
|
|
35
|
+
text: "#ff0000",
|
|
36
|
+
primary: {
|
|
37
|
+
...(primaryColor ? primaryColor : primaryGreen),
|
|
38
|
+
},
|
|
39
|
+
secondary: {
|
|
40
|
+
...neutral,
|
|
41
|
+
},
|
|
42
|
+
tertiary1: { ...olive },
|
|
43
|
+
tertiary2: { ...lightGreen },
|
|
44
|
+
tertiary3: { ...magenta },
|
|
45
|
+
tertiary4: { ...green },
|
|
46
|
+
tertiary5: { ...blue },
|
|
47
|
+
tertiary6: { ...red },
|
|
48
|
+
error: { ...error },
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
return { theme, primaryColorVariations };
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function createDarkTheme(primaryColor?: Color) {
|
|
57
|
+
const primaryColorVariations = [
|
|
58
|
+
{
|
|
59
|
+
label: "Red",
|
|
60
|
+
color: red,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
label: "Blue",
|
|
64
|
+
color: blue,
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
|
|
68
|
+
const theme = createTheme({
|
|
69
|
+
palette: {
|
|
70
|
+
theme: {
|
|
71
|
+
bg: "#d9def2",
|
|
72
|
+
text: "#002fee",
|
|
73
|
+
primary: {
|
|
74
|
+
...(primaryColor ? primaryColor : blue),
|
|
75
|
+
},
|
|
76
|
+
secondary: {
|
|
77
|
+
...neutral,
|
|
78
|
+
},
|
|
79
|
+
tertiary1: { ...olive },
|
|
80
|
+
tertiary2: { ...lightGreen },
|
|
81
|
+
tertiary3: { ...magenta },
|
|
82
|
+
tertiary4: { ...green },
|
|
83
|
+
tertiary5: { ...blue },
|
|
84
|
+
tertiary6: { ...red },
|
|
85
|
+
error: { ...error },
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
return { theme, primaryColorVariations };
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export const themes = { createLightTheme, createDarkTheme };
|