@noatgnu/cupcake-core 1.0.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 +121 -0
- package/fesm2022/noatgnu-cupcake-core.mjs +2684 -0
- package/fesm2022/noatgnu-cupcake-core.mjs.map +1 -0
- package/index.d.ts +1175 -0
- package/package.json +47 -0
- package/src/lib/styles/_bootstrap-integration.scss +345 -0
- package/src/lib/styles/_components.scss +494 -0
- package/src/lib/styles/_mixins.scss +231 -0
- package/src/lib/styles/_variables.scss +151 -0
- package/src/lib/styles/cupcake-core.scss +74 -0
- package/src/lib/styles/index.scss +42 -0
- package/src/lib/styles/themes/_dark.scss +64 -0
- package/src/lib/styles/themes/_light.scss +63 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// CUPCAKE CORE - CSS Custom Properties & Variables
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// This file contains all the CSS custom properties (CSS variables) used in
|
|
5
|
+
// cupcake-core components. Import this file to access the cupcake design system.
|
|
6
|
+
|
|
7
|
+
/* CSS Custom Properties for dynamic theming */
|
|
8
|
+
:root {
|
|
9
|
+
// Primary Brand Colors
|
|
10
|
+
--cupcake-primary: #1976d2;
|
|
11
|
+
--cupcake-primary-rgb: 25, 118, 210;
|
|
12
|
+
--cupcake-primary-dark: #1565c0;
|
|
13
|
+
--cupcake-primary-light: #42a5f5;
|
|
14
|
+
|
|
15
|
+
// Secondary Colors
|
|
16
|
+
--cupcake-secondary: #424242;
|
|
17
|
+
--cupcake-secondary-rgb: 66, 66, 66;
|
|
18
|
+
--cupcake-accent: #ff4081;
|
|
19
|
+
--cupcake-accent-rgb: 255, 64, 129;
|
|
20
|
+
|
|
21
|
+
// Light theme colors
|
|
22
|
+
--cupcake-bg: #ffffff;
|
|
23
|
+
--cupcake-bg-secondary: #f8f9fa;
|
|
24
|
+
--cupcake-bg-tertiary: #e9ecef;
|
|
25
|
+
--cupcake-text: #212529;
|
|
26
|
+
--cupcake-text-muted: #6c757d;
|
|
27
|
+
--cupcake-border: rgba(0, 0, 0, 0.125);
|
|
28
|
+
--cupcake-shadow: rgba(0, 0, 0, 0.075);
|
|
29
|
+
--cupcake-shadow-lg: rgba(0, 0, 0, 0.15);
|
|
30
|
+
|
|
31
|
+
// Card colors
|
|
32
|
+
--cupcake-card-bg: #ffffff;
|
|
33
|
+
--cupcake-card-header-bg: rgba(0, 0, 0, 0.03);
|
|
34
|
+
--cupcake-card-border: rgba(0, 0, 0, 0.125);
|
|
35
|
+
|
|
36
|
+
// Table colors
|
|
37
|
+
--cupcake-table-striped: rgba(0, 0, 0, 0.025);
|
|
38
|
+
--cupcake-table-hover: rgba(0, 0, 0, 0.075);
|
|
39
|
+
--cupcake-table-border: rgba(0, 0, 0, 0.125);
|
|
40
|
+
|
|
41
|
+
// Form colors
|
|
42
|
+
--cupcake-input-border: #ced4da;
|
|
43
|
+
--cupcake-input-focus: var(--cupcake-primary);
|
|
44
|
+
--cupcake-input-bg: #ffffff;
|
|
45
|
+
|
|
46
|
+
// Loading overlay
|
|
47
|
+
--cupcake-loading-overlay: rgba(255, 255, 255, 0.9);
|
|
48
|
+
|
|
49
|
+
// Status colors (aligned with Bootstrap)
|
|
50
|
+
--cupcake-success: #198754;
|
|
51
|
+
--cupcake-success-rgb: 25, 135, 84;
|
|
52
|
+
--cupcake-warning: #ffc107;
|
|
53
|
+
--cupcake-warning-rgb: 255, 193, 7;
|
|
54
|
+
--cupcake-danger: #dc3545;
|
|
55
|
+
--cupcake-danger-rgb: 220, 53, 69;
|
|
56
|
+
--cupcake-info: #0dcaf0;
|
|
57
|
+
--cupcake-info-rgb: 13, 202, 240;
|
|
58
|
+
|
|
59
|
+
// Spacing (can be used with calc())
|
|
60
|
+
--cupcake-spacing-xs: 0.25rem;
|
|
61
|
+
--cupcake-spacing-sm: 0.5rem;
|
|
62
|
+
--cupcake-spacing-md: 1rem;
|
|
63
|
+
--cupcake-spacing-lg: 1.5rem;
|
|
64
|
+
--cupcake-spacing-xl: 3rem;
|
|
65
|
+
|
|
66
|
+
// Border radius
|
|
67
|
+
--cupcake-border-radius: 0.375rem;
|
|
68
|
+
--cupcake-border-radius-sm: 0.25rem;
|
|
69
|
+
--cupcake-border-radius-lg: 0.5rem;
|
|
70
|
+
|
|
71
|
+
// Transitions
|
|
72
|
+
--cupcake-transition: all 0.2s ease-in-out;
|
|
73
|
+
--cupcake-transition-fast: all 0.15s ease-in-out;
|
|
74
|
+
--cupcake-transition-slow: all 0.3s ease-in-out;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* Dark theme overrides */
|
|
78
|
+
:root[data-bs-theme="dark"],
|
|
79
|
+
.dark-mode {
|
|
80
|
+
--cupcake-bg: #121212;
|
|
81
|
+
--cupcake-bg-secondary: #1e1e1e;
|
|
82
|
+
--cupcake-bg-tertiary: #2d2d2d;
|
|
83
|
+
--cupcake-text: #ffffff;
|
|
84
|
+
--cupcake-text-muted: #adb5bd;
|
|
85
|
+
--cupcake-border: rgba(255, 255, 255, 0.125);
|
|
86
|
+
--cupcake-shadow: rgba(0, 0, 0, 0.3);
|
|
87
|
+
--cupcake-shadow-lg: rgba(0, 0, 0, 0.5);
|
|
88
|
+
|
|
89
|
+
// Adjust primary colors for dark mode - make them lighter for better contrast
|
|
90
|
+
--cupcake-primary: #42a5f5;
|
|
91
|
+
--cupcake-primary-rgb: 66, 165, 245;
|
|
92
|
+
--cupcake-primary-dark: #1976d2;
|
|
93
|
+
--cupcake-primary-light: #90caf9;
|
|
94
|
+
|
|
95
|
+
// Card colors for dark mode
|
|
96
|
+
--cupcake-card-bg: #1e1e1e;
|
|
97
|
+
--cupcake-card-header-bg: rgba(255, 255, 255, 0.03);
|
|
98
|
+
--cupcake-card-border: rgba(255, 255, 255, 0.125);
|
|
99
|
+
|
|
100
|
+
// Table colors for dark mode
|
|
101
|
+
--cupcake-table-striped: rgba(255, 255, 255, 0.05);
|
|
102
|
+
--cupcake-table-hover: rgba(255, 255, 255, 0.075);
|
|
103
|
+
--cupcake-table-border: rgba(255, 255, 255, 0.125);
|
|
104
|
+
|
|
105
|
+
// Form colors for dark mode
|
|
106
|
+
--cupcake-input-border: #495057;
|
|
107
|
+
--cupcake-input-bg: #2d2d2d;
|
|
108
|
+
|
|
109
|
+
// Loading overlay for dark mode
|
|
110
|
+
--cupcake-loading-overlay: rgba(18, 18, 18, 0.9);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// SCSS Variables for use in calculations and mixins
|
|
114
|
+
$cupcake-breakpoints: (
|
|
115
|
+
xs: 0,
|
|
116
|
+
sm: 576px,
|
|
117
|
+
md: 768px,
|
|
118
|
+
lg: 992px,
|
|
119
|
+
xl: 1200px,
|
|
120
|
+
xxl: 1400px
|
|
121
|
+
) !default;
|
|
122
|
+
|
|
123
|
+
$cupcake-font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !default;
|
|
124
|
+
$cupcake-font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
|
|
125
|
+
|
|
126
|
+
$cupcake-font-sizes: (
|
|
127
|
+
xs: 0.75rem,
|
|
128
|
+
sm: 0.875rem,
|
|
129
|
+
base: 1rem,
|
|
130
|
+
lg: 1.125rem,
|
|
131
|
+
xl: 1.25rem,
|
|
132
|
+
xxl: 1.5rem
|
|
133
|
+
) !default;
|
|
134
|
+
|
|
135
|
+
$cupcake-font-weights: (
|
|
136
|
+
light: 300,
|
|
137
|
+
normal: 400,
|
|
138
|
+
medium: 500,
|
|
139
|
+
semibold: 600,
|
|
140
|
+
bold: 700
|
|
141
|
+
) !default;
|
|
142
|
+
|
|
143
|
+
$cupcake-z-indices: (
|
|
144
|
+
dropdown: 1000,
|
|
145
|
+
sticky: 1020,
|
|
146
|
+
fixed: 1030,
|
|
147
|
+
modal-backdrop: 1040,
|
|
148
|
+
modal: 1050,
|
|
149
|
+
popover: 1060,
|
|
150
|
+
tooltip: 1070
|
|
151
|
+
) !default;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// CUPCAKE CORE - Main Stylesheet
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Complete styling system for cupcake applications
|
|
5
|
+
// Import this file in your application to get all cupcake styles
|
|
6
|
+
|
|
7
|
+
// Core foundation
|
|
8
|
+
@import './variables';
|
|
9
|
+
@import './mixins';
|
|
10
|
+
|
|
11
|
+
// Component styles
|
|
12
|
+
@import './components';
|
|
13
|
+
|
|
14
|
+
// Bootstrap integration (only if using Bootstrap)
|
|
15
|
+
// @import './bootstrap-integration';
|
|
16
|
+
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// USAGE INSTRUCTIONS
|
|
19
|
+
// =============================================================================
|
|
20
|
+
/*
|
|
21
|
+
|
|
22
|
+
To use cupcake-core styles in your Angular application:
|
|
23
|
+
|
|
24
|
+
1. FULL IMPORT (includes all styles):
|
|
25
|
+
In your styles.scss:
|
|
26
|
+
```scss
|
|
27
|
+
@import 'cupcake-core/lib/styles/cupcake-core';
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
2. SELECTIVE IMPORT (only what you need):
|
|
31
|
+
```scss
|
|
32
|
+
// Just variables and mixins
|
|
33
|
+
@import 'cupcake-core/lib/styles/variables';
|
|
34
|
+
@import 'cupcake-core/lib/styles/mixins';
|
|
35
|
+
|
|
36
|
+
// Add specific components
|
|
37
|
+
@import 'cupcake-core/lib/styles/components';
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
3. WITH BOOTSTRAP:
|
|
41
|
+
```scss
|
|
42
|
+
// Import Bootstrap first
|
|
43
|
+
@import 'bootstrap/scss/bootstrap';
|
|
44
|
+
|
|
45
|
+
// Then import cupcake styles
|
|
46
|
+
@import 'cupcake-core/lib/styles/variables';
|
|
47
|
+
@import 'cupcake-core/lib/styles/mixins';
|
|
48
|
+
@import 'cupcake-core/lib/styles/bootstrap-integration';
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
4. CUSTOM THEMING:
|
|
52
|
+
Override CSS custom properties in your styles.scss:
|
|
53
|
+
```scss
|
|
54
|
+
:root {
|
|
55
|
+
--cupcake-primary: #your-color;
|
|
56
|
+
--cupcake-primary-rgb: r, g, b;
|
|
57
|
+
--cupcake-primary-dark: #your-darker-color;
|
|
58
|
+
--cupcake-primary-light: #your-lighter-color;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@import 'cupcake-core/lib/styles/cupcake-core';
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
// Export SCSS variables for use in applications
|
|
67
|
+
:export {
|
|
68
|
+
// Make SCSS variables available to TypeScript/JavaScript
|
|
69
|
+
breakpointSm: map-get($cupcake-breakpoints, sm);
|
|
70
|
+
breakpointMd: map-get($cupcake-breakpoints, md);
|
|
71
|
+
breakpointLg: map-get($cupcake-breakpoints, lg);
|
|
72
|
+
breakpointXl: map-get($cupcake-breakpoints, xl);
|
|
73
|
+
breakpointXxl: map-get($cupcake-breakpoints, xxl);
|
|
74
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// CUPCAKE CORE - Styles Index
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Entry point for all cupcake-core styles
|
|
5
|
+
|
|
6
|
+
// Import all themes
|
|
7
|
+
@import './themes/light';
|
|
8
|
+
@import './themes/dark';
|
|
9
|
+
|
|
10
|
+
// Import main stylesheet
|
|
11
|
+
@import './cupcake-core';
|
|
12
|
+
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// QUICK START GUIDE
|
|
15
|
+
// =============================================================================
|
|
16
|
+
/*
|
|
17
|
+
|
|
18
|
+
OPTION 1 - Full Import:
|
|
19
|
+
```scss
|
|
20
|
+
@import 'cupcake-core/styles';
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
OPTION 2 - With Bootstrap:
|
|
24
|
+
```scss
|
|
25
|
+
@import 'bootstrap/scss/bootstrap';
|
|
26
|
+
@import 'bootstrap-icons/font/bootstrap-icons.css';
|
|
27
|
+
@import 'cupcake-core/styles/cupcake-core';
|
|
28
|
+
@import 'cupcake-core/styles/bootstrap-integration';
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
OPTION 3 - Custom Theme:
|
|
32
|
+
```scss
|
|
33
|
+
// Override variables first
|
|
34
|
+
:root {
|
|
35
|
+
--cupcake-primary: #your-brand-color;
|
|
36
|
+
--cupcake-primary-rgb: r, g, b;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@import 'cupcake-core/styles';
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
*/
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// CUPCAKE CORE - Dark Theme
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Dark theme configuration for cupcake applications
|
|
5
|
+
|
|
6
|
+
:root[data-bs-theme="dark"],
|
|
7
|
+
.dark-mode {
|
|
8
|
+
// Primary Brand Colors (adjusted for dark mode contrast)
|
|
9
|
+
--cupcake-primary: #42a5f5;
|
|
10
|
+
--cupcake-primary-rgb: 66, 165, 245;
|
|
11
|
+
--cupcake-primary-dark: #1976d2;
|
|
12
|
+
--cupcake-primary-light: #90caf9;
|
|
13
|
+
|
|
14
|
+
// Secondary Colors
|
|
15
|
+
--cupcake-secondary: #9e9e9e;
|
|
16
|
+
--cupcake-secondary-rgb: 158, 158, 158;
|
|
17
|
+
--cupcake-accent: #ff4081;
|
|
18
|
+
--cupcake-accent-rgb: 255, 64, 129;
|
|
19
|
+
|
|
20
|
+
// Background Colors
|
|
21
|
+
--cupcake-bg: #121212;
|
|
22
|
+
--cupcake-bg-secondary: #1e1e1e;
|
|
23
|
+
--cupcake-bg-tertiary: #2d2d2d;
|
|
24
|
+
|
|
25
|
+
// Text Colors
|
|
26
|
+
--cupcake-text: #ffffff;
|
|
27
|
+
--cupcake-text-muted: #adb5bd;
|
|
28
|
+
--cupcake-text-light: #6c757d;
|
|
29
|
+
|
|
30
|
+
// Border and Shadow
|
|
31
|
+
--cupcake-border: rgba(255, 255, 255, 0.125);
|
|
32
|
+
--cupcake-border-light: rgba(255, 255, 255, 0.05);
|
|
33
|
+
--cupcake-shadow: rgba(0, 0, 0, 0.3);
|
|
34
|
+
--cupcake-shadow-lg: rgba(0, 0, 0, 0.5);
|
|
35
|
+
|
|
36
|
+
// Card Colors
|
|
37
|
+
--cupcake-card-bg: #1e1e1e;
|
|
38
|
+
--cupcake-card-header-bg: rgba(255, 255, 255, 0.03);
|
|
39
|
+
--cupcake-card-border: rgba(255, 255, 255, 0.125);
|
|
40
|
+
|
|
41
|
+
// Table Colors
|
|
42
|
+
--cupcake-table-striped: rgba(255, 255, 255, 0.05);
|
|
43
|
+
--cupcake-table-hover: rgba(255, 255, 255, 0.075);
|
|
44
|
+
--cupcake-table-border: rgba(255, 255, 255, 0.125);
|
|
45
|
+
|
|
46
|
+
// Form Colors
|
|
47
|
+
--cupcake-input-border: #495057;
|
|
48
|
+
--cupcake-input-focus: var(--cupcake-primary);
|
|
49
|
+
--cupcake-input-bg: #2d2d2d;
|
|
50
|
+
--cupcake-input-disabled-bg: #343a40;
|
|
51
|
+
|
|
52
|
+
// Loading Overlay
|
|
53
|
+
--cupcake-loading-overlay: rgba(18, 18, 18, 0.9);
|
|
54
|
+
|
|
55
|
+
// Status Colors (dark theme optimized)
|
|
56
|
+
--cupcake-success: #20c997;
|
|
57
|
+
--cupcake-success-rgb: 32, 201, 151;
|
|
58
|
+
--cupcake-warning: #ffc107;
|
|
59
|
+
--cupcake-warning-rgb: 255, 193, 7;
|
|
60
|
+
--cupcake-danger: #dc3545;
|
|
61
|
+
--cupcake-danger-rgb: 220, 53, 69;
|
|
62
|
+
--cupcake-info: #17a2b8;
|
|
63
|
+
--cupcake-info-rgb: 23, 162, 184;
|
|
64
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// CUPCAKE CORE - Light Theme
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Light theme configuration for cupcake applications
|
|
5
|
+
|
|
6
|
+
:root {
|
|
7
|
+
// Primary Brand Colors
|
|
8
|
+
--cupcake-primary: #1976d2;
|
|
9
|
+
--cupcake-primary-rgb: 25, 118, 210;
|
|
10
|
+
--cupcake-primary-dark: #1565c0;
|
|
11
|
+
--cupcake-primary-light: #42a5f5;
|
|
12
|
+
|
|
13
|
+
// Secondary Colors
|
|
14
|
+
--cupcake-secondary: #424242;
|
|
15
|
+
--cupcake-secondary-rgb: 66, 66, 66;
|
|
16
|
+
--cupcake-accent: #ff4081;
|
|
17
|
+
--cupcake-accent-rgb: 255, 64, 129;
|
|
18
|
+
|
|
19
|
+
// Background Colors
|
|
20
|
+
--cupcake-bg: #ffffff;
|
|
21
|
+
--cupcake-bg-secondary: #f8f9fa;
|
|
22
|
+
--cupcake-bg-tertiary: #e9ecef;
|
|
23
|
+
|
|
24
|
+
// Text Colors
|
|
25
|
+
--cupcake-text: #212529;
|
|
26
|
+
--cupcake-text-muted: #6c757d;
|
|
27
|
+
--cupcake-text-light: #868e96;
|
|
28
|
+
|
|
29
|
+
// Border and Shadow
|
|
30
|
+
--cupcake-border: rgba(0, 0, 0, 0.125);
|
|
31
|
+
--cupcake-border-light: rgba(0, 0, 0, 0.05);
|
|
32
|
+
--cupcake-shadow: rgba(0, 0, 0, 0.075);
|
|
33
|
+
--cupcake-shadow-lg: rgba(0, 0, 0, 0.15);
|
|
34
|
+
|
|
35
|
+
// Card Colors
|
|
36
|
+
--cupcake-card-bg: #ffffff;
|
|
37
|
+
--cupcake-card-header-bg: rgba(0, 0, 0, 0.03);
|
|
38
|
+
--cupcake-card-border: rgba(0, 0, 0, 0.125);
|
|
39
|
+
|
|
40
|
+
// Table Colors
|
|
41
|
+
--cupcake-table-striped: rgba(0, 0, 0, 0.025);
|
|
42
|
+
--cupcake-table-hover: rgba(0, 0, 0, 0.075);
|
|
43
|
+
--cupcake-table-border: rgba(0, 0, 0, 0.125);
|
|
44
|
+
|
|
45
|
+
// Form Colors
|
|
46
|
+
--cupcake-input-border: #ced4da;
|
|
47
|
+
--cupcake-input-focus: var(--cupcake-primary);
|
|
48
|
+
--cupcake-input-bg: #ffffff;
|
|
49
|
+
--cupcake-input-disabled-bg: #e9ecef;
|
|
50
|
+
|
|
51
|
+
// Loading Overlay
|
|
52
|
+
--cupcake-loading-overlay: rgba(255, 255, 255, 0.9);
|
|
53
|
+
|
|
54
|
+
// Status Colors (light theme optimized)
|
|
55
|
+
--cupcake-success: #198754;
|
|
56
|
+
--cupcake-success-rgb: 25, 135, 84;
|
|
57
|
+
--cupcake-warning: #ffc107;
|
|
58
|
+
--cupcake-warning-rgb: 255, 193, 7;
|
|
59
|
+
--cupcake-danger: #dc3545;
|
|
60
|
+
--cupcake-danger-rgb: 220, 53, 69;
|
|
61
|
+
--cupcake-info: #0dcaf0;
|
|
62
|
+
--cupcake-info-rgb: 13, 202, 240;
|
|
63
|
+
}
|