maverick-wave 3.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.
Files changed (141) hide show
  1. package/.claude/commands/mw.md +580 -0
  2. package/.claude/settings.local.json +11 -0
  3. package/.idea/codeStyles/Project.xml +59 -0
  4. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  5. package/.idea/maverick-wave.iml +12 -0
  6. package/.idea/modules.xml +8 -0
  7. package/.idea/prettier.xml +6 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/.prettierignore +6 -0
  10. package/.prettierrc.json +7 -0
  11. package/CHANGELOG.md +420 -0
  12. package/CLAUDE.md +53 -0
  13. package/LICENSE +21 -0
  14. package/README.md +191 -0
  15. package/gulpfile.js +158 -0
  16. package/index.html +472 -0
  17. package/maverick-wave.min.css +1 -0
  18. package/maverick-wave.min.js +1 -0
  19. package/package.json +52 -0
  20. package/release.sh +17 -0
  21. package/src/assets/favicon/android-chrome-192x192.png +0 -0
  22. package/src/assets/favicon/android-chrome-512x512.png +0 -0
  23. package/src/assets/favicon/apple-touch-icon.png +0 -0
  24. package/src/assets/favicon/favicon-16x16.png +0 -0
  25. package/src/assets/favicon/favicon-32x32.png +0 -0
  26. package/src/assets/favicon/site.webmanifest +1 -0
  27. package/src/assets/favicon.ico +0 -0
  28. package/src/assets/header-logo.svg +24 -0
  29. package/src/js/main.js +587 -0
  30. package/src/partials/accordions-container.html +163 -0
  31. package/src/partials/alerts-container.html +120 -0
  32. package/src/partials/avatars-container.html +84 -0
  33. package/src/partials/blog-posts-container.html +157 -0
  34. package/src/partials/breadcrumbs-container.html +126 -0
  35. package/src/partials/button-bar-container.html +168 -0
  36. package/src/partials/buttons-container.html +133 -0
  37. package/src/partials/cards-container.html +508 -0
  38. package/src/partials/code-container.html +194 -0
  39. package/src/partials/colors-container.html +125 -0
  40. package/src/partials/coming-soon-container.html +6 -0
  41. package/src/partials/content-slider-container.html +47 -0
  42. package/src/partials/divider-container.html +52 -0
  43. package/src/partials/documentation-container.html +161 -0
  44. package/src/partials/empty-state-container.html +74 -0
  45. package/src/partials/footer-container.html +113 -0
  46. package/src/partials/form-container.html +257 -0
  47. package/src/partials/form-elements-container.html +595 -0
  48. package/src/partials/form-field-container.html +141 -0
  49. package/src/partials/gallery-container.html +49 -0
  50. package/src/partials/get-started-container.html +294 -0
  51. package/src/partials/grid-container.html +171 -0
  52. package/src/partials/header-container.html +49 -0
  53. package/src/partials/header-utilities-container.html +80 -0
  54. package/src/partials/home-container.html +48 -0
  55. package/src/partials/html-lists-container.html +58 -0
  56. package/src/partials/info-container.html +87 -0
  57. package/src/partials/input-group-container.html +285 -0
  58. package/src/partials/item-lists-container.html +413 -0
  59. package/src/partials/login-container.html +61 -0
  60. package/src/partials/meta-info-container.html +16 -0
  61. package/src/partials/modals-container.html +136 -0
  62. package/src/partials/pagination-container.html +27 -0
  63. package/src/partials/panels-container.html +196 -0
  64. package/src/partials/progress-container.html +226 -0
  65. package/src/partials/ratings-container.html +104 -0
  66. package/src/partials/skeleton-container.html +82 -0
  67. package/src/partials/spinners-container.html +92 -0
  68. package/src/partials/stepper-container.html +107 -0
  69. package/src/partials/tables-container.html +120 -0
  70. package/src/partials/tabs-container.html +263 -0
  71. package/src/partials/tags-container.html +168 -0
  72. package/src/partials/techstack-bucket-container.html +174 -0
  73. package/src/partials/tiles-container.html +245 -0
  74. package/src/partials/timelines-container.html +196 -0
  75. package/src/partials/typography-container.html +66 -0
  76. package/src/partials/utilities-container.html +85 -0
  77. package/src/scss/abstracts/_functions.scss +37 -0
  78. package/src/scss/abstracts/_index.scss +3 -0
  79. package/src/scss/abstracts/_mixins.scss +45 -0
  80. package/src/scss/abstracts/_variables.scss +222 -0
  81. package/src/scss/base/_base.scss +165 -0
  82. package/src/scss/base/_index.scss +3 -0
  83. package/src/scss/base/_reset.scss +75 -0
  84. package/src/scss/base/_typography.scss +230 -0
  85. package/src/scss/components/_accordions.scss +91 -0
  86. package/src/scss/components/_alerts.scss +105 -0
  87. package/src/scss/components/_avatars.scss +123 -0
  88. package/src/scss/components/_blog-post.scss +268 -0
  89. package/src/scss/components/_breadcrumbs.scss +108 -0
  90. package/src/scss/components/_button-bar.scss +139 -0
  91. package/src/scss/components/_buttons.scss +164 -0
  92. package/src/scss/components/_cards.scss +316 -0
  93. package/src/scss/components/_code.scss +252 -0
  94. package/src/scss/components/_coming-soon.scss +92 -0
  95. package/src/scss/components/_content-slider.scss +119 -0
  96. package/src/scss/components/_divider.scss +70 -0
  97. package/src/scss/components/_empty-state.scss +73 -0
  98. package/src/scss/components/_gallery.scss +158 -0
  99. package/src/scss/components/_index.scss +33 -0
  100. package/src/scss/components/_info.scss +143 -0
  101. package/src/scss/components/_lists.scss +653 -0
  102. package/src/scss/components/_localhost-indicator.scss +29 -0
  103. package/src/scss/components/_meta-info.scss +34 -0
  104. package/src/scss/components/_modals.scss +118 -0
  105. package/src/scss/components/_pagination.scss +99 -0
  106. package/src/scss/components/_panels.scss +112 -0
  107. package/src/scss/components/_progress.scss +107 -0
  108. package/src/scss/components/_ratings.scss +47 -0
  109. package/src/scss/components/_skeleton.scss +90 -0
  110. package/src/scss/components/_spinners.scss +208 -0
  111. package/src/scss/components/_stepper.scss +145 -0
  112. package/src/scss/components/_tables.scss +127 -0
  113. package/src/scss/components/_tabs.scss +146 -0
  114. package/src/scss/components/_tags.scss +93 -0
  115. package/src/scss/components/_techstack-bucket.scss +145 -0
  116. package/src/scss/components/_theme-toggle.scss +50 -0
  117. package/src/scss/components/_tiles.scss +217 -0
  118. package/src/scss/components/_timelines.scss +339 -0
  119. package/src/scss/form-elements/_checkbox.scss +174 -0
  120. package/src/scss/form-elements/_form.scss +122 -0
  121. package/src/scss/form-elements/_index.scss +10 -0
  122. package/src/scss/form-elements/_input-group.scss +103 -0
  123. package/src/scss/form-elements/_input.scss +72 -0
  124. package/src/scss/form-elements/_login.scss +62 -0
  125. package/src/scss/form-elements/_radio.scss +144 -0
  126. package/src/scss/form-elements/_select.scss +56 -0
  127. package/src/scss/form-elements/_slider.scss +174 -0
  128. package/src/scss/form-elements/_textarea.scss +74 -0
  129. package/src/scss/form-elements/_toggle.scss +174 -0
  130. package/src/scss/layout/_footer.scss +214 -0
  131. package/src/scss/layout/_grid.scss +287 -0
  132. package/src/scss/layout/_header.scss +441 -0
  133. package/src/scss/layout/_home.scss +40 -0
  134. package/src/scss/layout/_index.scss +6 -0
  135. package/src/scss/layout/_main.scss +116 -0
  136. package/src/scss/layout/_section.scss +89 -0
  137. package/src/scss/main.scss +5 -0
  138. package/src/scss/utilities/_display.scss +35 -0
  139. package/src/scss/utilities/_flex.scss +66 -0
  140. package/src/scss/utilities/_index.scss +3 -0
  141. package/src/scss/utilities/_spacing.scss +78 -0
@@ -0,0 +1,196 @@
1
+ <h3 class="mw-section-subtitle">Timelines</h3>
2
+
3
+ <h4 class="mw-mb-2">Big Timeline</h4>
4
+ <p class="mw-text-muted">
5
+ You can use every card within the timeline content wrapper.
6
+ </p>
7
+ <div class="mw-timeline-big mw-my-6">
8
+ <div class="mw-timeline-big-step active">
9
+ <div class="mw-timeline-big-date-container">
10
+ <div class="mw-timeline-big-date-main">01/2023 – Present</div>
11
+ </div>
12
+ <div class="mw-timeline-big-content">
13
+ <div class="mw-card mw-card-content">
14
+ <div class="mw-card-body">
15
+ <h3 class="mw-card-title">Lead Developer</h3>
16
+ <p class="mw-card-subtitle">Innovatech Inc • San Francisco</p>
17
+ <p class="mw-card-text">
18
+ Overseeing cross-functional development teams, defining technical
19
+ strategy, and aligning product roadmaps with business goals. Driving
20
+ innovation and delivering high-impact features.
21
+ </p>
22
+ <div class="mw-card-footer">
23
+ <button type="button" class="mw-btn mw-btn-link">
24
+ View Details
25
+ </button>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ <div class="mw-timeline-big-event">
30
+ <span class="mw-timeline-big-event-date">05/2023</span>
31
+ <span class="mw-timeline-big-event-title">
32
+ AWS Certified Solutions Architect – Professional
33
+ </span>
34
+ </div>
35
+ </div>
36
+ </div>
37
+
38
+ <div class="mw-timeline-big-step">
39
+ <div class="mw-timeline-big-date-container">
40
+ <div class="mw-timeline-big-date-main">08/2021 – 12/2022</div>
41
+ <div class="mw-timeline-big-date-sub">(1 year 4 months)</div>
42
+ </div>
43
+ <div class="mw-timeline-big-content">
44
+ <div class="mw-card mw-card-content">
45
+ <div class="mw-card-body">
46
+ <h3 class="mw-card-title">Senior Developer</h3>
47
+ <p class="mw-card-subtitle">Innovatech Inc • San Francisco</p>
48
+ <p class="mw-card-text">
49
+ Led technical design, mentored junior developers, and spearheaded
50
+ code reviews. Improved CI/CD pipelines and introduced best practices
51
+ for scalable frontend architecture.
52
+ </p>
53
+ <div class="mw-card-footer">
54
+ <button type="button" class="mw-btn mw-btn-link">
55
+ View Details
56
+ </button>
57
+ </div>
58
+ </div>
59
+ </div>
60
+ <div class="mw-timeline-big-event">
61
+ <span class="mw-timeline-big-event-date">02/2022</span>
62
+ <span class="mw-timeline-big-event-title">
63
+ Speaker at JSWorld Conference: "Scaling Vue.js"
64
+ </span>
65
+ </div>
66
+ <div class="mw-timeline-big-event">
67
+ <span class="mw-timeline-big-event-date">11/2021</span>
68
+ <span class="mw-timeline-big-event-title">
69
+ Certified Kubernetes Administrator (CKA) | CNCF
70
+ </span>
71
+ </div>
72
+ </div>
73
+ </div>
74
+
75
+ <div class="mw-timeline-big-step">
76
+ <div class="mw-timeline-big-date-container">
77
+ <div class="mw-timeline-big-date-main">06/2020 – 07/2021</div>
78
+ <div class="mw-timeline-big-date-sub">(1 year 1 month)</div>
79
+ </div>
80
+ <div class="mw-timeline-big-content">
81
+ <div class="mw-card mw-card-content">
82
+ <div class="mw-card-body">
83
+ <h3 class="mw-card-title">Mid-Level Developer</h3>
84
+ <p class="mw-card-subtitle">DevSolutions LLC • Remote</p>
85
+ <p class="mw-card-text">
86
+ Took ownership of feature development, optimized application
87
+ performance, and integrated RESTful APIs. Collaborated closely with
88
+ designers and backend engineers.
89
+ </p>
90
+ <div class="mw-card-footer">
91
+ <button type="button" class="mw-btn mw-btn-link">
92
+ View Details
93
+ </button>
94
+ </div>
95
+ </div>
96
+ </div>
97
+ <div class="mw-timeline-big-event">
98
+ <span class="mw-timeline-big-event-date">10/2020</span>
99
+ <span class="mw-timeline-big-event-title">
100
+ MongoDB Certified Developer Associate
101
+ </span>
102
+ </div>
103
+ </div>
104
+ </div>
105
+
106
+ <div class="mw-timeline-big-step">
107
+ <div class="mw-timeline-big-date-container">
108
+ <div class="mw-timeline-big-date-main">02/2018 – 05/2020</div>
109
+ <div class="mw-timeline-big-date-sub">(2 year 3 months)</div>
110
+ </div>
111
+ <div class="mw-timeline-big-content">
112
+ <div class="mw-card mw-card-content">
113
+ <div class="mw-card-body">
114
+ <h3 class="mw-card-title">Junior Developer</h3>
115
+ <p class="mw-card-subtitle">StartupXYZ • Berlin</p>
116
+ <p class="mw-card-text">
117
+ Contributed to UI components, fixed bugs, and wrote unit tests in a
118
+ collaborative Agile team. Gained hands-on experience with HTML, CSS,
119
+ and JavaScript.
120
+ </p>
121
+ <div class="mw-card-footer">
122
+ <button type="button" class="mw-btn mw-btn-link">
123
+ View Details
124
+ </button>
125
+ </div>
126
+ </div>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
131
+
132
+ <h4 class="mw-mb-2">Simple Timeline</h4>
133
+ <p class="mw-text-muted">
134
+ Here you can also use every card within the timeline content wrapper.
135
+ </p>
136
+
137
+ <div class="mw-timeline-simple mw-my-5">
138
+ <div class="mw-timeline-simple-step active">
139
+ <div class="mw-timeline-simple-date">2023-11-10</div>
140
+ <div class="mw-timeline-simple-content">
141
+ <div class="mw-card mw-card-simple">
142
+ <h4 class="mw-mb-2">Website Launch</h4>
143
+ <p>
144
+ Deployed the initial version of our public website with responsive
145
+ design, SEO optimizations, and analytics integration.
146
+ </p>
147
+ </div>
148
+ </div>
149
+ </div>
150
+
151
+ <div class="mw-timeline-simple-step">
152
+ <div class="mw-timeline-simple-date">2024-03-22</div>
153
+ <div class="mw-timeline-simple-content">
154
+ <div class="mw-card mw-card-simple">
155
+ <h4 class="mw-mb-2">v1.1 Release</h4>
156
+ <p>
157
+ Rolled out version 1.1 featuring performance improvements, a dark mode
158
+ toggle, and enhanced accessibility support.
159
+ </p>
160
+ </div>
161
+ </div>
162
+ </div>
163
+
164
+ <div class="mw-timeline-simple-step">
165
+ <div class="mw-timeline-simple-date">2024-06-15</div>
166
+ <div class="mw-timeline-simple-content">
167
+ <div class="mw-card mw-card-simple">
168
+ <h4 class="mw-mb-2">DevCon 2024</h4>
169
+ <p>
170
+ Spoke at DevCon 2024 about “Scalable CSS Architecture” and
171
+ demonstrated our timeline component to 500+ attendees.
172
+ </p>
173
+ </div>
174
+ </div>
175
+ </div>
176
+
177
+ <div class="mw-timeline-simple-step">
178
+ <div class="mw-timeline-simple-date">2024-10-05</div>
179
+ <div class="mw-timeline-simple-content">
180
+ <div class="mw-card mw-card-simple">
181
+ <h4 class="mw-mb-2">Hackathon Champion</h4>
182
+ <p>
183
+ Led a cross-functional team to victory in the annual internal
184
+ hackathon with a productivity plugin prototype.
185
+ </p>
186
+ </div>
187
+ <div class="mw-card mw-card-simple">
188
+ <h4 class="mw-mb-2">Hackathon Champion</h4>
189
+ <p>
190
+ Led a cross-functional team to victory in the annual internal
191
+ hackathon with a productivity plugin prototype.
192
+ </p>
193
+ </div>
194
+ </div>
195
+ </div>
196
+ </div>
@@ -0,0 +1,66 @@
1
+ <h3 class="mw-section-subtitle">Typography</h3>
2
+
3
+ <div class="mw-grid-2-lg">
4
+ <div>
5
+ <div>
6
+ <h1>Heading 1</h1>
7
+ <h2>Heading 2</h2>
8
+ <h3>Heading 3</h3>
9
+ <h4>Heading 4</h4>
10
+ <h5>Heading 5</h5>
11
+ <h6>Heading 6</h6>
12
+ </div>
13
+ <blockquote>
14
+ This is a stylish quote with decorative quotation marks.
15
+ </blockquote>
16
+ </div>
17
+
18
+ <div class="mw-grid-stack mw-gap-2">
19
+ <p>
20
+ This is a standard paragraph with default styling. MaverickWave CSS
21
+ framework uses clean typography with good readability as a foundation for
22
+ all text elements.
23
+ </p>
24
+
25
+ <p class="mw-text-muted">
26
+ Secondary text uses a slightly muted color for less emphasis, perfect for
27
+ supporting content, captions, or metadata.
28
+ </p>
29
+
30
+ <p>
31
+ <strong>Bold text</strong> and <em>italic text</em> are supported as well,
32
+ allowing for proper content hierarchy and emphasis.
33
+ </p>
34
+
35
+ <p class="mw-text-light">This is a light text.</p>
36
+
37
+ <p class="mw-text-primary">
38
+ Text can be colored using utility classes to highlight important
39
+ information or match your brand.
40
+ </p>
41
+
42
+ <p class="mw-text-secondary">
43
+ Text can be colored using utility classes to highlight important
44
+ information or match your brand.
45
+ </p>
46
+
47
+ <p class="mw-text-danger">Very important error text!</p>
48
+
49
+ <p class="mw-text-color-dark">
50
+ This always remains the text color of the dark theme.
51
+ </p>
52
+
53
+ <p class="mw-text-color-light">
54
+ This always remains the text color of the light theme.
55
+ </p>
56
+
57
+ <p>
58
+ <span class="mw-text-xs">Extra Small Text</span><br />
59
+ <span class="mw-text-sm">Small Text</span><br />
60
+ <span class="mw-text-base">Base Text</span><br />
61
+ <span class="mw-text-md">Medium Text</span><br />
62
+ <span class="mw-text-lg">Large Text</span><br />
63
+ <span class="mw-text-xl">Extra Large Text</span>
64
+ </p>
65
+ </div>
66
+ </div>
@@ -0,0 +1,85 @@
1
+ <h3 class="mw-section-subtitle">Utilities</h3>
2
+
3
+ <div class="mw-grid-3-lg">
4
+ <div>
5
+ <h3 class="mw-mb-4">Spacing Utilities</h3>
6
+ <div class="mw-card mw-card-simple mw-mb-0">No margin bottom</div>
7
+ <div class="mw-card mw-card-simple mw-mb-2">Small margin bottom</div>
8
+ <div class="mw-card mw-card-simple mw-mb-4">Medium margin bottom</div>
9
+ <div class="mw-card mw-card-simple mw-mb-6">Large margin bottom</div>
10
+
11
+ <div class="mw-card mw-card-simple mw-p-2">Small padding</div>
12
+ <div class="mw-card mw-card-simple mw-p-4 mw-mt-4">Medium padding</div>
13
+ <div class="mw-card mw-card-simple mw-p-6 mw-mt-4">Large padding</div>
14
+ </div>
15
+
16
+ <div>
17
+ <h3 class="mw-mb-4">Display & Flex Utilities</h3>
18
+
19
+ <div class="mw-card mw-card-simple mw-mb-4">
20
+ <h4 class="mw-mb-2">Flex Row</h4>
21
+ <div class="mw-d-flex mw-justify-between mw-gap-3">
22
+ <div class="mw-card mw-card-simple mw-p-2">Item 1</div>
23
+ <div class="mw-card mw-card-simple mw-p-2">Item 2</div>
24
+ <div class="mw-card mw-card-simple mw-p-2">Item 3</div>
25
+ </div>
26
+ </div>
27
+
28
+ <div class="mw-card mw-card-simple mw-mb-4">
29
+ <h4 class="mw-mb-2">Flex Column</h4>
30
+ <div class="mw-d-flex mw-flex-column mw-gap-3">
31
+ <div class="mw-card mw-card-simple mw-p-2">Item 1</div>
32
+ <div class="mw-card mw-card-simple mw-p-2">Item 2</div>
33
+ <div class="mw-card mw-card-simple mw-p-2">Item 3</div>
34
+ </div>
35
+ </div>
36
+
37
+ <div class="mw-card mw-card-simple">
38
+ <h4 class="mw-mb-2">Alignment</h4>
39
+ <div
40
+ class="mw-d-flex mw-justify-center mw-items-center mw-gap-3"
41
+ style="height: 90px"
42
+ >
43
+ <div class="mw-card mw-card-simple mw-p-2">Centered</div>
44
+ <div class="mw-card mw-card-simple mw-p-2">Centered</div>
45
+ </div>
46
+ </div>
47
+ </div>
48
+
49
+ <div>
50
+ <h3 class="mw-mb-4">Gap Utilities</h3>
51
+ <div class="mw-card mw-card-simple">
52
+ <h4 class="mw-mb-3">Different Gap Sizes (from 0 - 10)</h4>
53
+
54
+ <div class="mw-mb-4">
55
+ <p class="mw-mb-2">Small gap (gap-2)</p>
56
+ <div class="mw-d-flex mw-gap-2 mw-flex-wrap">
57
+ <div class="mw-card mw-card-simple">Item</div>
58
+ <div class="mw-card mw-card-simple">Item</div>
59
+ <div class="mw-card mw-card-simple">Item</div>
60
+ <div class="mw-card mw-card-simple">Item</div>
61
+ </div>
62
+ </div>
63
+
64
+ <div class="mw-mb-4">
65
+ <p class="mw-mb-2">Medium gap (gap-4)</p>
66
+ <div class="mw-d-flex mw-gap-4 mw-flex-wrap">
67
+ <div class="mw-card mw-card-simple">Item</div>
68
+ <div class="mw-card mw-card-simple">Item</div>
69
+ <div class="mw-card mw-card-simple">Item</div>
70
+ <div class="mw-card mw-card-simple">Item</div>
71
+ </div>
72
+ </div>
73
+
74
+ <div>
75
+ <p class="mw-mb-2">Large gap (gap-7)</p>
76
+ <div class="mw-d-flex mw-gap-7 mw-flex-wrap">
77
+ <div class="mw-card mw-card-simple">Item</div>
78
+ <div class="mw-card mw-card-simple">Item</div>
79
+ <div class="mw-card mw-card-simple">Item</div>
80
+ <div class="mw-card mw-card-simple">Item</div>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ </div>
@@ -0,0 +1,37 @@
1
+ @use 'sass:map';
2
+ @use 'variables' as v;
3
+
4
+ // Function to get a color from the colors map
5
+ @function color($key) {
6
+ @return map.get(v.$base-colors, $key);
7
+ }
8
+
9
+ // Function to get a font size from the font-sizes map
10
+ @function font-size($key) {
11
+ @return map.get(v.$font-sizes, $key);
12
+ }
13
+
14
+ // Function to get a font weight from the font-weights map
15
+ @function font-weight($key) {
16
+ @return map.get(v.$font-weights, $key);
17
+ }
18
+
19
+ // Function to get a spacing value from the spacing map
20
+ @function spacing($key) {
21
+ @return map.get(v.$spacing, $key);
22
+ }
23
+
24
+ // Function to get a breakpoint from the breakpoints map
25
+ @function breakpoint($key) {
26
+ @return map.get(v.$breakpoints, $key);
27
+ }
28
+
29
+ // Function to get a radius value from the radius map
30
+ @function radius($key) {
31
+ @return map.get(v.$radius, $key);
32
+ }
33
+
34
+ // Function to get a z-index value from the z-index map
35
+ @function z-index($key) {
36
+ @return map.get(v.$z-index, $key);
37
+ }
@@ -0,0 +1,3 @@
1
+ @forward 'functions';
2
+ @forward 'mixins';
3
+ @forward 'variables';
@@ -0,0 +1,45 @@
1
+ @use 'sass:map';
2
+ @use 'variables' as v;
3
+
4
+ // Media query mixins
5
+ @mixin media-up($breakpoint) {
6
+ @media (min-width: map.get(v.$breakpoints, $breakpoint)) {
7
+ @content;
8
+ }
9
+ }
10
+
11
+ @mixin media-down($breakpoint) {
12
+ @media (max-width: map.get(v.$breakpoints, $breakpoint)) {
13
+ @content;
14
+ }
15
+ }
16
+
17
+ // Flexbox mixins
18
+ @mixin flex(
19
+ $direction: row,
20
+ $justify: flex-start,
21
+ $align: stretch,
22
+ $wrap: nowrap
23
+ ) {
24
+ display: flex;
25
+ flex-direction: $direction;
26
+ justify-content: $justify;
27
+ align-items: $align;
28
+ flex-wrap: $wrap;
29
+ }
30
+
31
+ // Grid mixins
32
+ @mixin grid($columns: 1, $gap: 1rem) {
33
+ display: grid;
34
+ grid-template-columns: repeat($columns, 1fr);
35
+ gap: $gap;
36
+ }
37
+
38
+ @mixin media-between($min, $max) {
39
+ $min-width: map.get(v.$breakpoints, $min);
40
+ $max-width: map.get(v.$breakpoints, $max) - 1px;
41
+
42
+ @media (min-width: $min-width) and (max-width: $max-width) {
43
+ @content;
44
+ }
45
+ }
@@ -0,0 +1,222 @@
1
+ @use 'sass:map';
2
+ @use 'sass:color';
3
+
4
+ $mw-theme-mode: 'switchable' !default; // 'dark', 'light', or 'switchable'
5
+
6
+ $mw-hero-image: url('https://images.unsplash.com/photo-1591638462868-19cfad9c49d1?q=80&w=1300&auto=format&fit=crop') !default;
7
+
8
+ $primary-color: #1031bb;
9
+ $secondary-color: #bb3110;
10
+ $success-color: #28a745;
11
+ $warning-color: #d4a310;
12
+ $danger-color: #d72537;
13
+ $info-color: #17a2b8;
14
+ $gray-color: #565656;
15
+ $dark-background: #0b111a;
16
+ $dark-text-color: #d6dbdf;
17
+ $light-background: #d2d1e1;
18
+ $light-text-color: #1a1a1d;
19
+
20
+ // Base colors that don't change between themes
21
+ $base-colors: (
22
+ 'primary-color': $primary-color,
23
+ 'primary-color-hover': color.adjust(
24
+ $primary-color,
25
+ $lightness: -3%,
26
+ $alpha: -0.3
27
+ ),
28
+ 'primary-background': color.adjust(
29
+ $primary-color,
30
+ $lightness: -8%,
31
+ $alpha: -0.8
32
+ ),
33
+ 'primary-background-hover': color.adjust(
34
+ $primary-color,
35
+ $lightness: -4%,
36
+ $alpha: -0.5
37
+ ),
38
+ 'primary-info-background': color.adjust(
39
+ $primary-color,
40
+ $lightness: -1%,
41
+ $alpha: -0.3
42
+ ),
43
+ 'primary-text-color': $dark-text-color,
44
+ 'secondary-color': $secondary-color,
45
+ 'secondary-color-hover': color.adjust(
46
+ $secondary-color,
47
+ $lightness: -3%,
48
+ $alpha: -0.4
49
+ ),
50
+ 'secondary-background': color.adjust(
51
+ $secondary-color,
52
+ $lightness: -8%,
53
+ $alpha: -0.8
54
+ ),
55
+ 'secondary-background-hover': color.adjust(
56
+ $secondary-color,
57
+ $lightness: -3%,
58
+ $alpha: -0.6
59
+ ),
60
+ 'secondary-info-background': color.adjust(
61
+ $secondary-color,
62
+ $lightness: -8%,
63
+ $alpha: -0.3
64
+ ),
65
+ 'secondary-text-color': $dark-text-color,
66
+ 'gray-color': $gray-color,
67
+ 'white-color': $dark-text-color,
68
+ 'gray-background': color.adjust($gray-color, $lightness: +5%, $alpha: -0.4),
69
+ 'section-alternate-pattern': color.adjust($gray-color, $alpha: -0.55),
70
+ 'form-elements-background': color.adjust($light-background, $lightness: +15%),
71
+ 'form-elements-color': color.adjust($light-text-color, $lightness: -2%),
72
+ );
73
+
74
+ $status-colors: (
75
+ 'success-color': $success-color,
76
+ 'success-info-background': color.adjust(
77
+ $success-color,
78
+ $lightness: -9%,
79
+ $alpha: -0.1
80
+ ),
81
+ 'success-info-background-hover': color.adjust(
82
+ $success-color,
83
+ $lightness: +4%,
84
+ $alpha: -0.3
85
+ ),
86
+ 'warning-color': $warning-color,
87
+ 'warning-info-background': color.adjust(
88
+ $warning-color,
89
+ $lightness: -9%,
90
+ $alpha: -0.1
91
+ ),
92
+ 'danger-color': $danger-color,
93
+ 'danger-info-background': color.adjust(
94
+ $danger-color,
95
+ $lightness: -9%,
96
+ $alpha: -0.1
97
+ ),
98
+ 'info-color': $info-color,
99
+ 'info-info-background': color.adjust(
100
+ $info-color,
101
+ $lightness: -9%,
102
+ $alpha: -0.1
103
+ ),
104
+ 'info-info-background-hover': color.adjust(
105
+ $info-color,
106
+ $lightness: +4%,
107
+ $alpha: -0.3
108
+ ),
109
+ );
110
+
111
+ // Dark theme colors
112
+ $dark-theme-colors: (
113
+ 'page-background': $dark-background,
114
+ 'hero-overlay-background': color.adjust($dark-background, $alpha: -0.7),
115
+ 'card-background': color.adjust($dark-background, $lightness: +5%),
116
+ 'footer-background': color.adjust($dark-background, $lightness: +3%),
117
+ 'border': color.adjust($dark-background, $lightness: +15%),
118
+ 'shadow': color.adjust($dark-text-color, $alpha: -0.7),
119
+ 'text-color': $dark-text-color,
120
+ 'text-muted-color': color.adjust($dark-text-color, $lightness: -26%),
121
+ );
122
+
123
+ // Light theme colors
124
+ $light-theme-colors: (
125
+ 'page-background': $light-background,
126
+ 'hero-overlay-background': color.adjust($light-background, $alpha: -0.7),
127
+ 'card-background': color.adjust($light-background, $lightness: +6%),
128
+ 'footer-background': color.adjust($light-background, $lightness: -2%),
129
+ 'border': color.adjust($light-background, $lightness: -13%),
130
+ 'shadow': color.adjust($light-text-color, $alpha: -0.7),
131
+ 'text-color': $light-text-color,
132
+ 'text-muted-color': color.adjust($light-text-color, $lightness: +29%),
133
+ );
134
+
135
+ // Typography
136
+ $font-family: 'Poppins', sans-serif;
137
+ $font-sizes: (
138
+ '3xs': 0.6rem,
139
+ '2xs': 0.7rem,
140
+ 'xs': 0.8rem,
141
+ 'sm': 0.9rem,
142
+ 'base': 1rem,
143
+ 'md': 1.1rem,
144
+ 'lg': 1.3rem,
145
+ 'xl': 1.5rem,
146
+ '2xl': 1.8rem,
147
+ '3xl': 2.2rem,
148
+ '4xl': 2.5rem,
149
+ '5xl': 3rem,
150
+ '6xl': 4.4rem,
151
+ );
152
+ $font-weights: (
153
+ 'bold': 700,
154
+ 'medium': 500,
155
+ 'normal': 400,
156
+ 'light': 300,
157
+ );
158
+
159
+ // Spacing
160
+ $spacing: (
161
+ '-6': -2.25rem,
162
+ '-5': -1.75rem,
163
+ '-4': -1.25rem,
164
+ '-3': -0.75rem,
165
+ '-2': -0.5rem,
166
+ '-1': -0.2rem,
167
+ '0': 0,
168
+ '1': 0.2rem,
169
+ '2': 0.5rem,
170
+ '3': 0.75rem,
171
+ '4': 1rem,
172
+ '5': 1.5rem,
173
+ '6': 2rem,
174
+ '7': 2.6rem,
175
+ '8': 3.3rem,
176
+ '9': 4.5rem,
177
+ '10': 6rem,
178
+ '11': 8.5rem,
179
+ '12': 11rem,
180
+ );
181
+
182
+ // Breakpoints
183
+ $breakpoints: (
184
+ 'xs': 375px,
185
+ // Extra small devices (smaller phones)
186
+ 'sm': 576px,
187
+ // Small devices (landscape phones)
188
+ 'md': 768px,
189
+ // Medium devices (tablets)
190
+ 'lg': 992px,
191
+ // Large devices (desktops)
192
+ 'xl': 1200px,
193
+ // Extra large devices (large desktops)
194
+ '2xl': 1400px,
195
+ );
196
+
197
+ // Border radius
198
+ $radius: (
199
+ 'none': 0,
200
+ 'xs': 2px,
201
+ 'sm': 5px,
202
+ 'md': 10px,
203
+ 'lg': 15px,
204
+ 'xl': 20px,
205
+ '2xl': 30px,
206
+ 'full': 50%,
207
+ );
208
+
209
+ // Transitions
210
+ $transition-default: all 0.3s ease;
211
+
212
+ // Z-index
213
+ $z-index: (
214
+ 'lift': 3,
215
+ 'card': 10,
216
+ 'menu': 30,
217
+ 'header': 100,
218
+ 'spinner': 300,
219
+ 'modal': 500,
220
+ 'tooltip': 700,
221
+ 'alert': 900,
222
+ );