@hashtagcms/web-ui-kit 1.0.5

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 (123) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +164 -0
  3. package/bin/cli.js +139 -0
  4. package/package.json +51 -0
  5. package/src/themes/basic/fonts/FontAwesome.otf +0 -0
  6. package/src/themes/basic/fonts/fontawesome-webfont.eot +0 -0
  7. package/src/themes/basic/fonts/fontawesome-webfont.svg +2671 -0
  8. package/src/themes/basic/fonts/fontawesome-webfont.ttf +0 -0
  9. package/src/themes/basic/fonts/fontawesome-webfont.woff +0 -0
  10. package/src/themes/basic/fonts/fontawesome-webfont.woff2 +0 -0
  11. package/src/themes/basic/img/clouds.jpg +0 -0
  12. package/src/themes/basic/img/cms-box-1.png +0 -0
  13. package/src/themes/basic/img/cms-box-2.png +0 -0
  14. package/src/themes/basic/img/dfd.png +0 -0
  15. package/src/themes/basic/img/favicon.png +0 -0
  16. package/src/themes/basic/img/hasshtagcms-product-1.jpg +0 -0
  17. package/src/themes/basic/img/hasshtagcms-product-2.jpg +0 -0
  18. package/src/themes/basic/img/hasshtagcms-product-bg.jpg +0 -0
  19. package/src/themes/basic/img/hasshtagcms-product-with-text.jpg +0 -0
  20. package/src/themes/basic/img/hill.jpg +0 -0
  21. package/src/themes/basic/img/logo-transparent.png +0 -0
  22. package/src/themes/basic/img/logo-white-bg.jpg +0 -0
  23. package/src/themes/basic/img/qr-code.jpg +0 -0
  24. package/src/themes/basic/img/sunset.jpg +0 -0
  25. package/src/themes/basic/img/sunset2.jpg +0 -0
  26. package/src/themes/basic/img/user-default.jpg +0 -0
  27. package/src/themes/basic/js/app.js +9 -0
  28. package/src/themes/basic/sass/_basic.scss +410 -0
  29. package/src/themes/basic/sass/_variables.scss +12 -0
  30. package/src/themes/basic/sass/animate.css +1579 -0
  31. package/src/themes/basic/sass/app.scss +10 -0
  32. package/src/themes/basic/sass/font-awesome/HELP-US-OUT.txt +7 -0
  33. package/src/themes/basic/sass/font-awesome/css/font-awesome.css +2337 -0
  34. package/src/themes/basic/sass/font-awesome/css/font-awesome.min.css +4 -0
  35. package/src/themes/basic/sass/font-awesome/fonts/FontAwesome.otf +0 -0
  36. package/src/themes/basic/sass/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  37. package/src/themes/basic/sass/font-awesome/fonts/fontawesome-webfont.svg +2671 -0
  38. package/src/themes/basic/sass/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  39. package/src/themes/basic/sass/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  40. package/src/themes/basic/sass/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  41. package/src/themes/basic/sass/font-awesome/scss/_animated.scss +34 -0
  42. package/src/themes/basic/sass/font-awesome/scss/_bordered-pulled.scss +25 -0
  43. package/src/themes/basic/sass/font-awesome/scss/_core.scss +12 -0
  44. package/src/themes/basic/sass/font-awesome/scss/_fixed-width.scss +6 -0
  45. package/src/themes/basic/sass/font-awesome/scss/_icons.scss +789 -0
  46. package/src/themes/basic/sass/font-awesome/scss/_larger.scss +13 -0
  47. package/src/themes/basic/sass/font-awesome/scss/_list.scss +19 -0
  48. package/src/themes/basic/sass/font-awesome/scss/_mixins.scss +60 -0
  49. package/src/themes/basic/sass/font-awesome/scss/_path.scss +15 -0
  50. package/src/themes/basic/sass/font-awesome/scss/_rotated-flipped.scss +20 -0
  51. package/src/themes/basic/sass/font-awesome/scss/_screen-reader.scss +5 -0
  52. package/src/themes/basic/sass/font-awesome/scss/_stacked.scss +20 -0
  53. package/src/themes/basic/sass/font-awesome/scss/_variables.scss +799 -0
  54. package/src/themes/basic/sass/font-awesome/scss/font-awesome.scss +18 -0
  55. package/src/themes/basic/views/_layout_/index.blade.php +73 -0
  56. package/src/themes/basic/views/_layout_/lottie.blade.php +50 -0
  57. package/src/themes/basic/views/_services_/index.blade.php +10 -0
  58. package/src/themes/basic/views/auth/login.blade.php +90 -0
  59. package/src/themes/basic/views/auth/passwords/email.blade.php +112 -0
  60. package/src/themes/basic/views/auth/passwords/reset.blade.php +63 -0
  61. package/src/themes/basic/views/auth/register.blade.php +73 -0
  62. package/src/themes/basic/views/auth/verify.blade.php +23 -0
  63. package/src/themes/basic/views/blog.blade.php +28 -0
  64. package/src/themes/basic/views/category-text.blade.php +1 -0
  65. package/src/themes/basic/views/contact.blade.php +64 -0
  66. package/src/themes/basic/views/copyright.blade.php +33 -0
  67. package/src/themes/basic/views/example/custom.blade.php +11 -0
  68. package/src/themes/basic/views/example/query.blade.php +36 -0
  69. package/src/themes/basic/views/example/queryservice.blade.php +38 -0
  70. package/src/themes/basic/views/example/service-later.blade.php +34 -0
  71. package/src/themes/basic/views/example/service.blade.php +24 -0
  72. package/src/themes/basic/views/example/urlservice.blade.php +27 -0
  73. package/src/themes/basic/views/footer.blade.php +31 -0
  74. package/src/themes/basic/views/header.blade.php +63 -0
  75. package/src/themes/basic/views/hero.blade.php +20 -0
  76. package/src/themes/basic/views/info.blade.php +46 -0
  77. package/src/themes/basic/views/our-speciality.blade.php +95 -0
  78. package/src/themes/basic/views/products.blade.php +20 -0
  79. package/src/themes/basic/views/profile.blade.php +88 -0
  80. package/src/themes/basic/views/seo.blade.php +31 -0
  81. package/src/themes/basic/views/social.blade.php +8 -0
  82. package/src/themes/basic/views/stories.blade.php +55 -0
  83. package/src/themes/basic/views/story-comments.blade.php +56 -0
  84. package/src/themes/basic/views/story.blade.php +103 -0
  85. package/src/themes/basic/views/subscribe.blade.php +23 -0
  86. package/src/themes/elegant/img/feature-ai.png +0 -0
  87. package/src/themes/elegant/img/feature-cloud.png +0 -0
  88. package/src/themes/elegant/img/hero-bg.png +0 -0
  89. package/src/themes/elegant/js/app.js +109 -0
  90. package/src/themes/elegant/sass/_elegant.scss +508 -0
  91. package/src/themes/elegant/sass/_variables.scss +42 -0
  92. package/src/themes/elegant/sass/app.scss +14 -0
  93. package/src/themes/elegant/views/_layout_/index.blade.php +73 -0
  94. package/src/themes/elegant/views/_layout_/lottie.blade.php +50 -0
  95. package/src/themes/elegant/views/_services_/index.blade.php +10 -0
  96. package/src/themes/elegant/views/auth/login.blade.php +90 -0
  97. package/src/themes/elegant/views/auth/passwords/email.blade.php +112 -0
  98. package/src/themes/elegant/views/auth/passwords/reset.blade.php +63 -0
  99. package/src/themes/elegant/views/auth/register.blade.php +73 -0
  100. package/src/themes/elegant/views/auth/verify.blade.php +23 -0
  101. package/src/themes/elegant/views/blog.blade.php +28 -0
  102. package/src/themes/elegant/views/category-text.blade.php +1 -0
  103. package/src/themes/elegant/views/contact.blade.php +64 -0
  104. package/src/themes/elegant/views/copyright.blade.php +33 -0
  105. package/src/themes/elegant/views/example/custom.blade.php +11 -0
  106. package/src/themes/elegant/views/example/query.blade.php +36 -0
  107. package/src/themes/elegant/views/example/queryservice.blade.php +38 -0
  108. package/src/themes/elegant/views/example/service-later.blade.php +34 -0
  109. package/src/themes/elegant/views/example/service.blade.php +24 -0
  110. package/src/themes/elegant/views/example/urlservice.blade.php +27 -0
  111. package/src/themes/elegant/views/footer.blade.php +31 -0
  112. package/src/themes/elegant/views/header.blade.php +63 -0
  113. package/src/themes/elegant/views/hero.blade.php +20 -0
  114. package/src/themes/elegant/views/info.blade.php +46 -0
  115. package/src/themes/elegant/views/our-speciality.blade.php +95 -0
  116. package/src/themes/elegant/views/products.blade.php +20 -0
  117. package/src/themes/elegant/views/profile.blade.php +88 -0
  118. package/src/themes/elegant/views/seo.blade.php +31 -0
  119. package/src/themes/elegant/views/social.blade.php +8 -0
  120. package/src/themes/elegant/views/stories.blade.php +55 -0
  121. package/src/themes/elegant/views/story-comments.blade.php +56 -0
  122. package/src/themes/elegant/views/story.blade.php +103 -0
  123. package/src/themes/elegant/views/subscribe.blade.php +23 -0
@@ -0,0 +1,508 @@
1
+ /**
2
+ * Elegant Theme - Modern Tech Aesthetic
3
+ * Sophisticated design for technology-focused websites
4
+ */
5
+
6
+ // Import Google Fonts (if not imported in app.scss, but here for reference)
7
+ // @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
8
+
9
+ // Base Styles
10
+ * {
11
+ box-sizing: border-box;
12
+ }
13
+
14
+ body {
15
+ font-family: $font-primary;
16
+ background: linear-gradient(135deg, $primary-dark 0%, $primary-blue 100%);
17
+ background-attachment: fixed;
18
+ color: $text-primary;
19
+ line-height: 1.7;
20
+ overflow-x: hidden;
21
+ }
22
+
23
+ // Typography
24
+ h1,
25
+ h2,
26
+ h3,
27
+ h4,
28
+ h5,
29
+ h6 {
30
+ font-weight: 600;
31
+ letter-spacing: -0.02em;
32
+ color: $text-primary;
33
+ }
34
+
35
+ h1 {
36
+ font-size: 3.5rem;
37
+ font-weight: 700;
38
+ background: linear-gradient(135deg, $accent-cyan, $accent-purple);
39
+ -webkit-background-clip: text;
40
+ -webkit-text-fill-color: transparent;
41
+ background-clip: text;
42
+ margin-bottom: 1.5rem;
43
+ }
44
+
45
+ h2 {
46
+ font-size: 2.5rem;
47
+ margin-bottom: 2rem;
48
+ }
49
+
50
+ // Navigation Overrides (for basic theme compatibility)
51
+ .navbar {
52
+ background: rgba($surface-dark, 0.8) !important; // Override bg-light
53
+ backdrop-filter: blur(12px);
54
+ -webkit-backdrop-filter: blur(12px);
55
+ border-bottom: 1px solid rgba($accent-cyan, 0.1);
56
+ padding: 1rem 0;
57
+ transition: $transition-smooth;
58
+
59
+ &.bg-light {
60
+ background: rgba($surface-dark, 0.8) !important;
61
+ }
62
+
63
+ &.scrolled {
64
+ background: rgba($surface-dark, 0.95) !important;
65
+ box-shadow: $shadow-elegant;
66
+ padding: 0.75rem 0;
67
+ }
68
+
69
+ .navbar-brand {
70
+ color: $accent-cyan !important;
71
+ font-weight: 700;
72
+ font-size: 1.5rem;
73
+ letter-spacing: -0.02em;
74
+ text-transform: uppercase;
75
+
76
+ &:hover {
77
+ color: $white !important;
78
+ text-shadow: $glow-cyan;
79
+ }
80
+ }
81
+
82
+ .nav-link {
83
+ color: $text-secondary !important;
84
+ font-weight: 500;
85
+ transition: $transition-smooth;
86
+ position: relative;
87
+ padding: 0.5rem 1rem !important;
88
+
89
+ &::after {
90
+ content: '';
91
+ position: absolute;
92
+ bottom: 5px;
93
+ left: 50%;
94
+ width: 0;
95
+ height: 2px;
96
+ background: $accent-cyan;
97
+ transition: $transition-smooth;
98
+ transform: translateX(-50%);
99
+ }
100
+
101
+ &:hover,
102
+ &.active {
103
+ color: $accent-cyan !important;
104
+
105
+ &::after {
106
+ width: 80%;
107
+ }
108
+ }
109
+
110
+ i {
111
+ margin-right: 5px;
112
+ }
113
+ }
114
+
115
+ .navbar-toggler {
116
+ border-color: rgba($accent-cyan, 0.3);
117
+
118
+ .navbar-toggler-icon {
119
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 212, 255, 1)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
120
+ }
121
+ }
122
+ }
123
+
124
+ // Hero Section (Basic Theme Compatibility)
125
+ .hero {
126
+ min-height: 80vh; // Adjusted for better initial view
127
+ display: flex;
128
+ align-items: center;
129
+ position: relative;
130
+ overflow: hidden;
131
+
132
+ &::before {
133
+ content: '';
134
+ position: absolute;
135
+ top: 0;
136
+ left: 0;
137
+ right: 0;
138
+ bottom: 0;
139
+ background:
140
+ radial-gradient(circle at 20% 50%, rgba($accent-cyan, 0.15) 0%, transparent 50%),
141
+ radial-gradient(circle at 80% 80%, rgba($accent-purple, 0.15) 0%, transparent 50%);
142
+ pointer-events: none;
143
+ z-index: 0;
144
+ }
145
+
146
+ .hero-inner {
147
+ position: relative;
148
+ z-index: 2;
149
+ width: 100%;
150
+ padding: 4rem 0;
151
+
152
+ /* Fallback backgrounds if basic theme uses them */
153
+ &.hero-bg-1 {
154
+ background: linear-gradient(45deg, rgba($primary-dark, 0.9), rgba($primary-blue, 0.8));
155
+ }
156
+
157
+ &.hero-bg-2 {
158
+ background: linear-gradient(to right, rgba($surface-dark, 0.95), rgba($surface-dark, 0.7));
159
+ }
160
+ }
161
+
162
+ .hero-text {
163
+ animation: fadeInUp 0.8s ease-out;
164
+
165
+ h1,
166
+ h2 {
167
+ font-size: 3.5rem;
168
+ margin-bottom: 1.5rem;
169
+ line-height: 1.2;
170
+
171
+ @media (max-width: 768px) {
172
+ font-size: 2.5rem;
173
+ }
174
+ }
175
+
176
+ p {
177
+ font-size: 1.25rem;
178
+ color: $text-secondary;
179
+ margin-bottom: 2rem;
180
+ line-height: 1.6;
181
+ }
182
+
183
+ .btn {
184
+ margin-right: 1rem;
185
+ margin-bottom: 1rem;
186
+ }
187
+ }
188
+
189
+ // Default hero styles if classes are missing
190
+ .hero-title {
191
+ font-size: 4rem;
192
+ margin-bottom: 1.5rem;
193
+ animation: fadeInUp 0.8s ease-out;
194
+ }
195
+
196
+ .hero-subtitle {
197
+ font-size: 1.5rem;
198
+ color: $text-secondary;
199
+ margin-bottom: 2rem;
200
+ animation: fadeInUp 0.8s ease-out 0.2s both;
201
+ }
202
+ }
203
+
204
+ // Feature/Content Cards
205
+ .features-section,
206
+ .section {
207
+ padding: $section-padding 0;
208
+ position: relative;
209
+ }
210
+
211
+ .feature-card,
212
+ .tech-card,
213
+ .card {
214
+ background: rgba($surface-light, 0.5);
215
+ backdrop-filter: blur(10px);
216
+ border: 1px solid rgba($accent-cyan, 0.1);
217
+ border-radius: $card-radius;
218
+ padding: 2rem;
219
+ transition: $transition-smooth;
220
+ margin-bottom: 1.5rem;
221
+
222
+ // "Basic" theme might use standard cards
223
+ &.card-body {
224
+ background: transparent;
225
+ }
226
+
227
+ &:hover {
228
+ transform: translateY(-5px);
229
+ border-color: rgba($accent-cyan, 0.3);
230
+ box-shadow: $shadow-elegant;
231
+ background: rgba($surface-light, 0.7);
232
+
233
+ .icon {
234
+ transform: scale(1.1) rotate(5deg);
235
+ }
236
+ }
237
+
238
+ .icon {
239
+ width: 60px;
240
+ height: 60px;
241
+ background: linear-gradient(135deg, $accent-cyan, $accent-purple);
242
+ border-radius: 12px;
243
+ display: flex;
244
+ align-items: center;
245
+ justify-content: center;
246
+ margin-bottom: 1.5rem;
247
+ font-size: 1.75rem;
248
+ color: white;
249
+ transition: $transition-smooth;
250
+ }
251
+
252
+ h3,
253
+ .card-title {
254
+ font-size: 1.5rem;
255
+ margin-bottom: 1rem;
256
+ color: $text-primary;
257
+ }
258
+
259
+ p,
260
+ .card-text {
261
+ color: $text-secondary;
262
+ line-height: 1.6;
263
+ }
264
+ }
265
+
266
+ // Buttons
267
+ .btn {
268
+ padding: 0.75rem 1.75rem;
269
+ font-weight: 600;
270
+ border-radius: 50px;
271
+ letter-spacing: 0.02em;
272
+ transition: $transition-smooth;
273
+
274
+ &-primary {
275
+ background: linear-gradient(135deg, $accent-cyan, $accent-purple);
276
+ border: none;
277
+ color: white;
278
+ box-shadow: 0 4px 15px rgba($accent-cyan, 0.3);
279
+
280
+ &:hover {
281
+ transform: translateY(-2px);
282
+ box-shadow: 0 6px 20px rgba($accent-cyan, 0.5);
283
+ color: white;
284
+ }
285
+ }
286
+
287
+ &-outline-primary {
288
+ background: transparent;
289
+ border: 2px solid $accent-cyan;
290
+ color: $accent-cyan;
291
+
292
+ &:hover {
293
+ background: $accent-cyan;
294
+ color: $surface-dark;
295
+ transform: translateY(-2px);
296
+ }
297
+ }
298
+
299
+ &-link {
300
+ color: $accent-cyan;
301
+ text-decoration: none;
302
+
303
+ &:hover {
304
+ color: lighten($accent-cyan, 10%);
305
+ }
306
+ }
307
+ }
308
+
309
+ // Code Blocks
310
+ pre,
311
+ code {
312
+ font-family: $font-mono;
313
+ }
314
+
315
+ pre {
316
+ background: rgba(0, 0, 0, 0.5);
317
+ border: 1px solid rgba($accent-cyan, 0.1);
318
+ border-radius: 8px;
319
+ padding: 1.5rem;
320
+ overflow-x: auto;
321
+
322
+ code {
323
+ color: inherit;
324
+ background: none;
325
+ border: none;
326
+ }
327
+ }
328
+
329
+ code {
330
+ background: rgba($accent-cyan, 0.1);
331
+ color: $accent-cyan;
332
+ padding: 0.2em 0.4em;
333
+ border-radius: 4px;
334
+ font-size: 0.9em;
335
+ }
336
+
337
+ // Sections & Titles
338
+ .section-title {
339
+ text-align: center;
340
+ margin-bottom: 4rem;
341
+ position: relative;
342
+
343
+ h2 {
344
+ display: inline-block;
345
+ background: linear-gradient(to right, $text-primary, $text-secondary);
346
+ -webkit-background-clip: text;
347
+ -webkit-text-fill-color: transparent;
348
+ margin-bottom: 0.5rem;
349
+ }
350
+
351
+ &::after {
352
+ content: '';
353
+ display: block;
354
+ width: 60px;
355
+ height: 4px;
356
+ background: linear-gradient(90deg, $accent-cyan, $accent-purple);
357
+ margin: 1rem auto 0;
358
+ border-radius: 2px;
359
+ }
360
+ }
361
+
362
+ // Footer
363
+ footer.footer {
364
+ background: rgba($surface-dark, 0.9);
365
+ border-top: 1px solid rgba($accent-cyan, 0.1);
366
+ padding: 4rem 0 2rem;
367
+ margin-top: 5rem;
368
+ position: relative;
369
+
370
+ &::before {
371
+ content: '';
372
+ position: absolute;
373
+ top: 0;
374
+ left: 0;
375
+ width: 100%;
376
+ height: 1px;
377
+ background: linear-gradient(90deg, transparent, $accent-cyan, transparent);
378
+ opacity: 0.5;
379
+ }
380
+
381
+ .widget-title {
382
+ color: $white;
383
+ font-weight: 700;
384
+ margin-bottom: 1.5rem;
385
+ font-size: 1.25rem;
386
+ }
387
+
388
+ .list-footer {
389
+ list-style: none;
390
+ padding: 0;
391
+
392
+ li {
393
+ margin-bottom: 0.75rem;
394
+
395
+ a {
396
+ color: $text-secondary;
397
+ transition: $transition-smooth;
398
+ text-decoration: none;
399
+ display: inline-block;
400
+
401
+ &:hover {
402
+ color: $accent-cyan;
403
+ transform: translateX(5px);
404
+ }
405
+ }
406
+ }
407
+ }
408
+
409
+ .socials {
410
+ display: flex;
411
+ gap: 1rem;
412
+
413
+ a {
414
+ display: inline-flex;
415
+ align-items: center;
416
+ justify-content: center;
417
+ width: 40px;
418
+ height: 40px;
419
+ border-radius: 50%;
420
+ background: rgba($surface-light, 0.5);
421
+ color: $text-secondary;
422
+ transition: $transition-smooth;
423
+ border: 1px solid rgba($white, 0.1);
424
+
425
+ &:hover {
426
+ background: linear-gradient(135deg, $accent-cyan, $accent-purple);
427
+ color: white;
428
+ transform: translateY(-3px);
429
+ border-color: transparent;
430
+ box-shadow: $glow-cyan;
431
+ }
432
+ }
433
+ }
434
+
435
+ .copyright {
436
+ margin-top: 3rem;
437
+ padding-top: 2rem;
438
+ border-top: 1px solid rgba($white, 0.05);
439
+ color: darken($text-secondary, 10%);
440
+ font-size: 0.9rem;
441
+
442
+ a {
443
+ color: $text-secondary;
444
+
445
+ &:hover {
446
+ color: $accent-cyan;
447
+ }
448
+ }
449
+ }
450
+ }
451
+
452
+ // Animations
453
+ @keyframes fadeInUp {
454
+ from {
455
+ opacity: 0;
456
+ transform: translateY(30px);
457
+ }
458
+
459
+ to {
460
+ opacity: 1;
461
+ transform: translateY(0);
462
+ }
463
+ }
464
+
465
+ .animate-in {
466
+ animation: fadeInUp 0.6s ease-out forwards;
467
+ }
468
+
469
+ // Utility Classes
470
+ .gradient-text {
471
+ background: linear-gradient(135deg, $accent-cyan, $accent-purple);
472
+ -webkit-background-clip: text;
473
+ -webkit-text-fill-color: transparent;
474
+ background-clip: text;
475
+ }
476
+
477
+ .glass-panel {
478
+ background: rgba($surface-light, 0.6);
479
+ backdrop-filter: blur(10px);
480
+ border: 1px solid rgba($accent-cyan, 0.1);
481
+ border-radius: $card-radius;
482
+ padding: 2rem;
483
+ }
484
+
485
+ // Responsive
486
+ @media (max-width: 768px) {
487
+ h1 {
488
+ font-size: 2.5rem;
489
+ }
490
+
491
+ h2 {
492
+ font-size: 2rem;
493
+ }
494
+
495
+ .hero {
496
+ text-align: center;
497
+
498
+ .btn {
499
+ display: block;
500
+ width: 100%;
501
+ margin: 0 0 1rem 0;
502
+ }
503
+ }
504
+
505
+ .section {
506
+ padding: 60px 0;
507
+ }
508
+ }
@@ -0,0 +1,42 @@
1
+ // Elegant Theme Variables
2
+ // Modern, sophisticated color palette for tech sites
3
+
4
+ // Color Palette - Deep Blues & Accents
5
+ $primary-dark: #0a1929;
6
+ $primary-blue: #1e3a5f;
7
+ $accent-cyan: #00d4ff;
8
+ $accent-purple: #6366f1;
9
+ $text-primary: #e8eaed;
10
+ $text-secondary: #9ca3af;
11
+ $surface-dark: #111827;
12
+ $surface-light: #1f2937;
13
+
14
+ // Typography
15
+ $font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
16
+ $font-mono: 'JetBrains Mono', 'Fira Code', monospace;
17
+
18
+ // Spacing & Layout
19
+ $container-max: 1280px;
20
+ $section-padding: 120px;
21
+ $card-radius: 16px;
22
+
23
+ // Effects
24
+ $transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
25
+ $shadow-elegant: 0 20px 60px rgba(0, 0, 0, 0.3);
26
+ $glow-cyan: 0 0 20px rgba(0, 212, 255, 0.3);
27
+
28
+ // Bootstrap Overrides
29
+ $body-bg: $primary-dark;
30
+ $body-color: $text-primary;
31
+ $font-family-sans-serif: $font-primary;
32
+ $font-family-monospace: $font-mono;
33
+
34
+ $theme-colors: (
35
+ "primary": $accent-cyan,
36
+ "secondary": $accent-purple,
37
+ "dark": $surface-dark,
38
+ "light": $surface-light
39
+ );
40
+
41
+ $link-color: $accent-cyan;
42
+ $link-hover-color: lighten($accent-cyan, 10%);
@@ -0,0 +1,14 @@
1
+ // Elegant Theme - Main Entry Point
2
+ // Modern tech aesthetic with sophisticated design
3
+
4
+ // Import Google Fonts
5
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
6
+
7
+ // Theme Variables
8
+ @import "variables";
9
+
10
+ // Bootstrap Framework
11
+ @import '~bootstrap/scss/bootstrap';
12
+
13
+ // Theme Styles
14
+ @import "elegant";
@@ -0,0 +1,73 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ app()->getLocale() }}">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
7
+ <meta name="csrf-token" content="{{ csrf_token() }}">
8
+ {!! app()->HashtagCms->layoutManager()->getHeaderContent(); !!}
9
+ {!! app()->HashtagCms->layoutManager()->getMetaContent(); !!}
10
+ <title>{!! app()->HashtagCms->layoutManager()->getTitle(); !!}</title>
11
+ @php
12
+ $lottieFile = app()->HashtagCms->layoutManager()->getViewThemeFolder()."._layout_.lottie";
13
+ $bodyCss = app()->HashtagCms->layoutManager()->getFestivalCss();
14
+ $bodyBackground = "";
15
+ if (!empty(app()->HashtagCms->layoutManager()->getBodyBackgroundImage())) {
16
+ $bodyBackground = app()->HashtagCms->layoutManager()->getBodyBackgroundImage(). ";background-repeat: no-repeat;background-attachment: fixed;background-position: center;";
17
+ }
18
+ @endphp
19
+
20
+ <script>
21
+ window.Laravel = {!! json_encode([
22
+ 'csrfToken' => csrf_token()
23
+ ]) !!};
24
+ let _siteProps_ = <?php echo htcms_get_site_props(true); ?>;
25
+ window.Laravel.configData = {};
26
+ window.Laravel.configData.media = <?php echo json_encode(config('hashtagcms.media')) ?>;
27
+ </script>
28
+ </head>
29
+ <body class="{!!$bodyCss!!}"
30
+ style="{!!$bodyBackground!!}">
31
+ @include($lottieFile)
32
+ {!! app()->HashtagCms->layoutManager()->getBodyContent(); !!}
33
+ <form id="logout-form" action="/login/doLogout" method="POST" style="display: none;">
34
+ @csrf
35
+ <input type="submit" value="Logout">
36
+ </form>
37
+ <div class="small" style="padding:10px; text-align: center;">
38
+ <a title="#CMS" href="https://www.hashtagcms.org/">Powered by HashtagCms.org</a>
39
+ </div>
40
+
41
+ {!! app()->HashtagCms->layoutManager()->getFooterContent(); !!}
42
+
43
+ {!! app()->HashtagCms->layoutManager()->renderStack('scripts') !!}
44
+
45
+ @if(env('GOOGLE_TAG_MANAGER_KEY') != '')
46
+ <script async
47
+ src="https://www.googletagmanager.com/gtag/js?id=<?php echo env('GOOGLE_TAG_MANAGER_KEY'); ?>"></script>
48
+ <script>
49
+ window.dataLayer = window.dataLayer || [];
50
+
51
+ function gtag() {
52
+ dataLayer.push(arguments);
53
+ }
54
+
55
+ gtag('js', new Date());
56
+ gtag('config', "<?php echo env('GOOGLE_TAG_MANAGER_KEY'); ?>");
57
+
58
+ gtag('event', 'pageView', {
59
+ 'pageName': (_siteProps_.pageId === -1) ? _siteProps_.categoryName : _siteProps_.pageName
60
+ });
61
+ </script>
62
+ @endif
63
+ <script>
64
+ try {
65
+ HashtagCms.Analytics.init(_siteProps_);
66
+ HashtagCms.AppConfig.setConfigData(window.Laravel.configData);
67
+ //HashtagCms.Analytics.trackPageView(_siteProps_.categoryName + ""+_siteProps_.pageName)
68
+ } catch (e) {
69
+ console.error(e.message, "@", e.fileName);
70
+ }
71
+ </script>
72
+ </body>
73
+ </html>
@@ -0,0 +1,50 @@
1
+ @php
2
+ $lottieObj = app()->HashtagCms->layoutManager()->getFestivalObject();
3
+ $hasLottie = is_array($lottieObj) && sizeof($lottieObj) >= 1;
4
+ @endphp
5
+ <script>
6
+ let LottieHandler = {
7
+ hideOnComplete: function (lottieRef, lottieObj) {
8
+ if (lottieObj?.lottieHideOnComplete === true) {
9
+ document.getElementById(lottieRef).addEventListener('frame', (frame)=> {
10
+ if(Math.round(frame.detail.seeker) === 100) {
11
+ frame.target.remove();
12
+ }
13
+ });
14
+ }
15
+
16
+ }
17
+ }
18
+ </script>
19
+ @if($hasLottie)
20
+ <script src="https://unpkg.com/@dotlottie/player-component@latest/dist/dotlottie-player.mjs" type="module"></script>
21
+ @foreach($lottieObj as $lottieO)
22
+ @php
23
+ $attributes = '';
24
+ $styles = '';
25
+ //loop controls autoplay
26
+ foreach ($lottieO['lottieAttributes'] as $key => $value) {
27
+ //$value = is_bool($value) ? ($value ? 'true' : 'false') : $value;
28
+ if (is_bool($value)) {
29
+ $attributes .= ($value === true) ? $key ." " : "";
30
+ } else {
31
+ $attributes .= "$key=$value ";
32
+ }
33
+
34
+ }
35
+ //loop through lottieStyles
36
+ foreach ($lottieO['lottieStyles'] as $key => $value) {
37
+ $value = is_bool($value) ? ($value ? 'true' : 'false') : $value;
38
+ $styles .= $key.':'.$value.';';
39
+ }
40
+ $styles = "style=$styles";
41
+ $lottiePlayer = "lottiePlayer_".$lottieO['id'];
42
+ @endphp
43
+ <dotlottie-player id="{{$lottiePlayer}}" src="{{htcms_get_media($lottieO['lottie'])}}"
44
+ {{$attributes}}
45
+ {{$styles}}></dotlottie-player>
46
+ <script>
47
+ LottieHandler.hideOnComplete("{!! $lottiePlayer !!}", {!! json_encode($lottieO) !!});
48
+ </script>
49
+ @endforeach
50
+ @endif
@@ -0,0 +1,10 @@
1
+ @if($withCss)
2
+ <link rel="stylesheet" href="{{app()->HashtagCms->layoutManager()->parseStringForPath('%{css_path}%/app.css')}}" />
3
+ @endif
4
+ @if($withJs)
5
+ <script>
6
+ let _siteProps_ = <?php echo htcms_get_site_props(true); ?>;
7
+ </script>
8
+ <script src="{{app()->HashtagCms->layoutManager()->parseStringForPath('%{js_path}%/app.js')}}"></script>
9
+ @endif
10
+ {!! $data !!}