@xscriptor/xcomponents 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CODE_OF_CONDUCT.md +35 -0
  2. package/CONTRIBUTING.md +64 -0
  3. package/LICENSE +21 -0
  4. package/README.md +127 -0
  5. package/SECURITY.md +25 -0
  6. package/dist/chunk-2OAXRRVQ.mjs +150 -0
  7. package/dist/chunk-2OAXRRVQ.mjs.map +1 -0
  8. package/dist/chunk-42XPBYTL.mjs +186 -0
  9. package/dist/chunk-42XPBYTL.mjs.map +1 -0
  10. package/dist/chunk-5G4P2E76.mjs +66 -0
  11. package/dist/chunk-5G4P2E76.mjs.map +1 -0
  12. package/dist/chunk-FZRTAML3.mjs +1 -0
  13. package/dist/chunk-FZRTAML3.mjs.map +1 -0
  14. package/dist/chunk-NY22GB3E.mjs +311 -0
  15. package/dist/chunk-NY22GB3E.mjs.map +1 -0
  16. package/dist/chunk-QCMWPIG7.mjs +320 -0
  17. package/dist/chunk-QCMWPIG7.mjs.map +1 -0
  18. package/dist/chunk-U27ZVCP7.mjs +247 -0
  19. package/dist/chunk-U27ZVCP7.mjs.map +1 -0
  20. package/dist/components/content/index.css +132 -0
  21. package/dist/components/content/index.css.map +1 -0
  22. package/dist/components/content/index.d.mts +17 -0
  23. package/dist/components/content/index.d.ts +17 -0
  24. package/dist/components/content/index.js +102 -0
  25. package/dist/components/content/index.js.map +1 -0
  26. package/dist/components/content/index.mjs +7 -0
  27. package/dist/components/content/index.mjs.map +1 -0
  28. package/dist/components/forms/index.css +307 -0
  29. package/dist/components/forms/index.css.map +1 -0
  30. package/dist/components/forms/index.d.mts +68 -0
  31. package/dist/components/forms/index.d.ts +68 -0
  32. package/dist/components/forms/index.js +357 -0
  33. package/dist/components/forms/index.js.map +1 -0
  34. package/dist/components/forms/index.mjs +9 -0
  35. package/dist/components/forms/index.mjs.map +1 -0
  36. package/dist/components/gallery/index.css +229 -0
  37. package/dist/components/gallery/index.css.map +1 -0
  38. package/dist/components/gallery/index.d.mts +29 -0
  39. package/dist/components/gallery/index.d.ts +29 -0
  40. package/dist/components/gallery/index.js +187 -0
  41. package/dist/components/gallery/index.js.map +1 -0
  42. package/dist/components/gallery/index.mjs +9 -0
  43. package/dist/components/gallery/index.mjs.map +1 -0
  44. package/dist/components/index.css +1181 -0
  45. package/dist/components/index.css.map +1 -0
  46. package/dist/components/index.d.mts +8 -0
  47. package/dist/components/index.d.ts +8 -0
  48. package/dist/components/index.js +1317 -0
  49. package/dist/components/index.js.map +1 -0
  50. package/dist/components/index.mjs +50 -0
  51. package/dist/components/index.mjs.map +1 -0
  52. package/dist/components/layout/index.css +168 -0
  53. package/dist/components/layout/index.css.map +1 -0
  54. package/dist/components/layout/index.d.mts +55 -0
  55. package/dist/components/layout/index.d.ts +55 -0
  56. package/dist/components/layout/index.js +224 -0
  57. package/dist/components/layout/index.js.map +1 -0
  58. package/dist/components/layout/index.mjs +11 -0
  59. package/dist/components/layout/index.mjs.map +1 -0
  60. package/dist/components/navigation/index.css +229 -0
  61. package/dist/components/navigation/index.css.map +1 -0
  62. package/dist/components/navigation/index.d.mts +76 -0
  63. package/dist/components/navigation/index.d.ts +76 -0
  64. package/dist/components/navigation/index.js +347 -0
  65. package/dist/components/navigation/index.js.map +1 -0
  66. package/dist/components/navigation/index.mjs +7 -0
  67. package/dist/components/navigation/index.mjs.map +1 -0
  68. package/dist/components/social/index.css +116 -0
  69. package/dist/components/social/index.css.map +1 -0
  70. package/dist/components/social/index.d.mts +55 -0
  71. package/dist/components/social/index.d.ts +55 -0
  72. package/dist/components/social/index.js +280 -0
  73. package/dist/components/social/index.js.map +1 -0
  74. package/dist/components/social/index.mjs +21 -0
  75. package/dist/components/social/index.mjs.map +1 -0
  76. package/dist/index.css +1181 -0
  77. package/dist/index.css.map +1 -0
  78. package/dist/index.d.mts +8 -0
  79. package/dist/index.d.ts +8 -0
  80. package/dist/index.js +1317 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/index.mjs +50 -0
  83. package/dist/index.mjs.map +1 -0
  84. package/package.json +86 -0
package/dist/index.css ADDED
@@ -0,0 +1,1181 @@
1
+ /* src/components/forms/xcontactform/XContactForm.module.css */
2
+ .wrapper {
3
+ --input-padding: .65rem .9rem;
4
+ --font-size: 16px;
5
+ --form-gap: 1.25rem;
6
+ --row-gap: .85rem;
7
+ --field-gap: .45rem;
8
+ --button-min-width: 140px;
9
+ --label-color: inherit;
10
+ --wrapper-bg-color: transparent;
11
+ --wrapper-border-color: transparent;
12
+ --wrapper-border-width: 0px;
13
+ --wrapper-border-style: solid;
14
+ --wrapper-radius: .5rem;
15
+ --field-border-color: var(--border, #ccc);
16
+ --field-border-width: 1px;
17
+ --field-border-style: solid;
18
+ --field-radius: .5rem;
19
+ --btn-bg-color: var(--bg, #333);
20
+ --btn-text-color: var(--text, #fff);
21
+ --btn-border-color: transparent;
22
+ --btn-border-width: 0px;
23
+ --btn-border-style: solid;
24
+ --btn-radius: .5rem;
25
+ --btn-alignment: flex-start;
26
+ --btn-hover-bg-color: var(--btn-bg-color);
27
+ --btn-hover-text-color: var(--btn-text-color);
28
+ --btn-hover-border-color: var(--btn-border-color);
29
+ --status-ok-color: #1fa37a;
30
+ --status-error-color: #d16a6a;
31
+ max-width: 900px;
32
+ margin: 0 auto;
33
+ padding: 2rem 1rem;
34
+ background-color: var(--wrapper-bg-color);
35
+ border: var(--wrapper-border-width) var(--wrapper-border-style) var(--wrapper-border-color);
36
+ border-radius: var(--wrapper-radius);
37
+ }
38
+ .small {
39
+ --input-padding: .35rem .55rem;
40
+ --font-size: 13px;
41
+ --form-gap: .75rem;
42
+ --row-gap: .6rem;
43
+ --field-gap: .3rem;
44
+ --button-min-width: 118px;
45
+ }
46
+ .medium {
47
+ --input-padding: .5rem .7rem;
48
+ --font-size: 15px;
49
+ --form-gap: 1rem;
50
+ --row-gap: .7rem;
51
+ --field-gap: .4rem;
52
+ --button-min-width: 130px;
53
+ }
54
+ .large {
55
+ --input-padding: 1rem 1.2rem;
56
+ --font-size: 18px;
57
+ --form-gap: 1.5rem;
58
+ --row-gap: 1rem;
59
+ --field-gap: .5rem;
60
+ --button-min-width: 150px;
61
+ }
62
+ .form {
63
+ display: grid;
64
+ gap: var(--form-gap);
65
+ max-width: 100%;
66
+ }
67
+ .row {
68
+ display: grid;
69
+ gap: var(--row-gap);
70
+ }
71
+ .grid .row {
72
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
73
+ }
74
+ .vertical .row {
75
+ grid-template-columns: 1fr;
76
+ }
77
+ .field {
78
+ display: flex;
79
+ flex-direction: column;
80
+ gap: var(--field-gap);
81
+ }
82
+ .field label {
83
+ font-size: calc(var(--font-size) - 2px);
84
+ font-weight: 500;
85
+ color: var(--label-color);
86
+ }
87
+ .field input,
88
+ .field textarea {
89
+ width: 100%;
90
+ padding: var(--input-padding);
91
+ border: var(--field-border-width) var(--field-border-style) var(--field-border-color);
92
+ border-radius: var(--field-radius);
93
+ font-size: var(--font-size);
94
+ box-sizing: border-box;
95
+ font-family: inherit;
96
+ }
97
+ .field input::placeholder,
98
+ .field textarea::placeholder {
99
+ color: #888;
100
+ }
101
+ .buttoncontainer {
102
+ display: flex;
103
+ justify-content: var(--btn-alignment);
104
+ margin-top: 0.25rem;
105
+ }
106
+ .button {
107
+ padding: var(--input-padding);
108
+ border-radius: var(--btn-radius);
109
+ border: var(--btn-border-width) var(--btn-border-style) var(--btn-border-color);
110
+ background-color: var(--btn-bg-color);
111
+ color: var(--btn-text-color);
112
+ cursor: pointer;
113
+ font-size: var(--font-size);
114
+ font-weight: 600;
115
+ min-width: var(--button-min-width);
116
+ transition:
117
+ background-color 0.2s ease,
118
+ color 0.2s ease,
119
+ border-color 0.2s ease,
120
+ opacity 0.2s ease;
121
+ }
122
+ .button:hover {
123
+ background-color: var(--btn-hover-bg-color);
124
+ color: var(--btn-hover-text-color);
125
+ border-color: var(--btn-hover-border-color);
126
+ opacity: 0.95;
127
+ }
128
+ .status {
129
+ min-height: 1.5rem;
130
+ font-size: calc(var(--font-size) - 2px);
131
+ margin-top: 0.25rem;
132
+ }
133
+ .statusOk {
134
+ color: var(--status-ok-color);
135
+ }
136
+ .statusError {
137
+ color: var(--status-error-color);
138
+ }
139
+ .honeypot {
140
+ position: absolute;
141
+ left: -9999px;
142
+ top: -9999px;
143
+ }
144
+ .withDecorativeX {
145
+ position: relative;
146
+ padding-top: 2.5rem;
147
+ padding-bottom: 2.5rem;
148
+ }
149
+ .decorativeXTop,
150
+ .decorativeXBottom {
151
+ position: absolute;
152
+ left: 50%;
153
+ transform: translateX(-50%);
154
+ font-size: 0.5rem;
155
+ font-weight: 300;
156
+ color: var(--decorative-x-color, currentColor);
157
+ opacity: 1;
158
+ pointer-events: none;
159
+ background-color: var(--wrapper-bg-color, transparent);
160
+ padding: 0 0.3rem;
161
+ line-height: 1;
162
+ z-index: 1;
163
+ }
164
+ .decorativeXTop {
165
+ top: 0;
166
+ transform: translate(-50%, -50%);
167
+ }
168
+ .decorativeXBottom {
169
+ bottom: 0;
170
+ transform: translate(-50%, 50%);
171
+ }
172
+
173
+ /* src/components/forms/xnewsletter/XNewsletter.module.css */
174
+ .container {
175
+ --nws-accent: var(--accent);
176
+ --nws-text: var(--text);
177
+ --nws-border: var(--border);
178
+ --nws-btn-text: var(--accent-text);
179
+ width: 100%;
180
+ font-family: "EB Garamond", serif;
181
+ }
182
+ .form {
183
+ display: flex;
184
+ gap: 1rem;
185
+ }
186
+ .horizontal {
187
+ flex-direction: column;
188
+ align-items: center;
189
+ justify-content: center;
190
+ }
191
+ @media (min-width: 768px) {
192
+ .horizontal {
193
+ flex-direction: row;
194
+ }
195
+ }
196
+ .vertical {
197
+ flex-direction: column;
198
+ align-items: flex-start;
199
+ width: 100%;
200
+ max-width: 24rem;
201
+ margin: 0 auto;
202
+ }
203
+ .title {
204
+ font-size: 0.875rem;
205
+ white-space: nowrap;
206
+ font-weight: 500;
207
+ color: var(--nws-text);
208
+ }
209
+ .input {
210
+ width: 100%;
211
+ padding: 0.5rem 1rem;
212
+ font-size: 0.875rem;
213
+ border-radius: 0.5rem;
214
+ border: 1px solid var(--nws-border);
215
+ background-color: transparent;
216
+ outline: none;
217
+ transition: border-color 0.2s ease;
218
+ color: var(--nws-text);
219
+ caret-color: var(--nws-accent);
220
+ font-family: inherit;
221
+ }
222
+ .horizontal .input {
223
+ }
224
+ @media (min-width: 768px) {
225
+ .horizontal .input {
226
+ width: 16rem;
227
+ }
228
+ }
229
+ .input:focus {
230
+ border-color: var(--nws-accent);
231
+ }
232
+ .actions {
233
+ display: flex;
234
+ gap: 1rem;
235
+ }
236
+ .actionsHorizontal {
237
+ flex-direction: row;
238
+ align-items: center;
239
+ }
240
+ .actionsVertical {
241
+ flex-direction: column;
242
+ align-items: flex-start;
243
+ width: 100%;
244
+ }
245
+ .checkboxLabel {
246
+ display: flex;
247
+ align-items: center;
248
+ gap: 0.5rem;
249
+ font-size: 0.75rem;
250
+ white-space: nowrap;
251
+ cursor: pointer;
252
+ color: var(--nws-text);
253
+ }
254
+ .checkboxLabel span {
255
+ opacity: 0.7;
256
+ }
257
+ .checkbox {
258
+ height: 0.875rem;
259
+ width: 0.875rem;
260
+ border-radius: 0.125rem;
261
+ cursor: pointer;
262
+ accent-color: var(--nws-accent);
263
+ }
264
+ .termsLink {
265
+ text-decoration: underline;
266
+ color: var(--nws-accent);
267
+ transition: opacity 0.2s ease;
268
+ }
269
+ .termsLink:hover {
270
+ opacity: 1;
271
+ }
272
+ .button {
273
+ padding: 0.5rem 1rem;
274
+ font-size: 0.875rem;
275
+ border-radius: 0.5rem;
276
+ border: 1px solid var(--nws-accent);
277
+ color: var(--nws-accent);
278
+ background-color: transparent;
279
+ transition: all 0.2s ease;
280
+ white-space: nowrap;
281
+ cursor: pointer;
282
+ }
283
+ .button:hover:not(:disabled) {
284
+ background-color: var(--nws-accent);
285
+ color: var(--nws-btn-text);
286
+ }
287
+ .button:disabled,
288
+ .input:disabled,
289
+ .checkbox:disabled {
290
+ opacity: 0.5;
291
+ cursor: not-allowed;
292
+ }
293
+ .actionsVertical .button {
294
+ width: 100%;
295
+ }
296
+ .message {
297
+ margin-top: 0.75rem;
298
+ font-size: 0.75rem;
299
+ color: var(--nws-accent);
300
+ }
301
+ .messageHorizontal {
302
+ text-align: center;
303
+ }
304
+ .messageVertical {
305
+ text-align: left;
306
+ }
307
+
308
+ /* src/components/navigation/xnavbar/XNavbar.module.css */
309
+ .header {
310
+ height: 100%;
311
+ display: flex;
312
+ align-items: center;
313
+ justify-content: space-between;
314
+ padding: 2rem 3rem;
315
+ background: var(--bg);
316
+ color: var(--text);
317
+ font-size: 1.25rem;
318
+ z-index: 60;
319
+ }
320
+ @media (min-width: 640px) {
321
+ .header {
322
+ padding-inline: 2rem;
323
+ }
324
+ }
325
+ @media (min-width: 768px) {
326
+ .header {
327
+ padding-inline: 3rem;
328
+ }
329
+ }
330
+ @media (min-width: 1024px) {
331
+ .header {
332
+ padding-inline: 5rem;
333
+ }
334
+ }
335
+ @media (min-width: 1280px) {
336
+ .header {
337
+ padding-inline: 12rem;
338
+ }
339
+ }
340
+ .desktopNav {
341
+ display: none;
342
+ align-items: center;
343
+ width: 100%;
344
+ grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
345
+ padding-bottom: 0.5rem;
346
+ }
347
+ @media (min-width: 768px) {
348
+ .desktopNav {
349
+ display: grid;
350
+ }
351
+ }
352
+ .desktopLinksLeft,
353
+ .desktopLinksRight {
354
+ display: flex;
355
+ align-items: center;
356
+ gap: 1.5rem;
357
+ min-width: 0;
358
+ }
359
+ .desktopLinksLeft {
360
+ justify-content: flex-end;
361
+ }
362
+ .desktopLinksRight {
363
+ justify-content: flex-start;
364
+ }
365
+ .logoSlot {
366
+ display: flex;
367
+ justify-content: center;
368
+ align-items: center;
369
+ }
370
+ .logoWrapper {
371
+ position: relative;
372
+ margin-inline: 1rem;
373
+ display: flex;
374
+ align-items: center;
375
+ }
376
+ .logoBtn {
377
+ font-weight: 700;
378
+ font-size: 1.5rem;
379
+ line-height: 1;
380
+ user-select: none;
381
+ background: none;
382
+ border: none;
383
+ cursor: pointer;
384
+ color: var(--text);
385
+ padding: 0;
386
+ }
387
+ .iconTray {
388
+ position: absolute;
389
+ top: 50%;
390
+ transform: translateY(-50%);
391
+ pointer-events: none;
392
+ }
393
+ .iconTrayRight {
394
+ left: 100%;
395
+ padding-left: 0.75rem;
396
+ }
397
+ .iconTrayLeft {
398
+ right: 100%;
399
+ padding-right: 0.75rem;
400
+ }
401
+ .navLink {
402
+ padding: 0.25rem;
403
+ border-bottom: 2px solid transparent;
404
+ transition:
405
+ border-color 0.2s,
406
+ opacity 0.2s,
407
+ color 0.2s;
408
+ color: var(--xnav-link-color, var(--text));
409
+ text-decoration: none;
410
+ white-space: nowrap;
411
+ }
412
+ .navLink:hover {
413
+ color: var(--xnav-link-hover, var(--xnav-link-color, var(--text)));
414
+ opacity: var(--xnav-link-hover-opacity, 0.7);
415
+ }
416
+ .navLinkActive {
417
+ border-bottom-color: var(--xnav-link-active, var(--xnav-link-color, var(--text)));
418
+ font-weight: 600;
419
+ }
420
+ .navLinkExternal::after {
421
+ content: " \2197";
422
+ font-size: 0.7em;
423
+ opacity: 0.6;
424
+ }
425
+ .mobileToggle {
426
+ display: flex;
427
+ align-items: center;
428
+ justify-content: center;
429
+ }
430
+ @media (min-width: 768px) {
431
+ .mobileToggle {
432
+ display: none;
433
+ }
434
+ }
435
+ .hamburgerBtn {
436
+ width: 2.5rem;
437
+ height: 2rem;
438
+ display: flex;
439
+ flex-direction: column;
440
+ align-items: center;
441
+ justify-content: space-between;
442
+ background: none;
443
+ border: none;
444
+ cursor: pointer;
445
+ position: relative;
446
+ z-index: 80;
447
+ padding: 0;
448
+ }
449
+ .bar {
450
+ width: var(--xnav-bar-w, 2rem);
451
+ height: var(--xnav-bar-h, 3px);
452
+ background: var(--xnav-bar-color, var(--text));
453
+ border-radius: 2px;
454
+ }
455
+ .mobileOverlay {
456
+ position: fixed;
457
+ inset: 0;
458
+ width: 100vw;
459
+ height: 100svh;
460
+ background: var(--bg);
461
+ color: var(--text);
462
+ display: flex;
463
+ flex-direction: column;
464
+ align-items: center;
465
+ justify-content: center;
466
+ gap: 2rem;
467
+ font-size: 2.5rem;
468
+ z-index: 9999;
469
+ }
470
+ .mobileCloseBtn {
471
+ position: fixed;
472
+ top: 2rem;
473
+ left: 1rem;
474
+ width: 2.5rem;
475
+ height: 2rem;
476
+ display: flex;
477
+ align-items: center;
478
+ justify-content: center;
479
+ background: none;
480
+ border: none;
481
+ cursor: pointer;
482
+ color: var(--xnav-bar-color, var(--text));
483
+ z-index: 10000;
484
+ -webkit-tap-highlight-color: transparent;
485
+ }
486
+ .closeBar {
487
+ display: block;
488
+ position: absolute;
489
+ width: 2rem;
490
+ height: 3px;
491
+ border-radius: 2px;
492
+ background: currentColor;
493
+ }
494
+ .mobileLogo {
495
+ font-weight: 700;
496
+ font-size: 3rem;
497
+ user-select: none;
498
+ pointer-events: none;
499
+ }
500
+ .mobileNavLink {
501
+ font-size: 2.5rem;
502
+ color: var(--xnav-link-color, var(--text));
503
+ text-decoration: none;
504
+ border-bottom: 2px solid transparent;
505
+ transition:
506
+ border-color 0.2s,
507
+ color 0.2s,
508
+ opacity 0.2s;
509
+ padding: 0.25rem;
510
+ }
511
+ .mobileNavLink:hover {
512
+ color: var(--xnav-link-hover, var(--xnav-link-color, var(--text)));
513
+ opacity: var(--xnav-link-hover-opacity, 0.7);
514
+ }
515
+ .mobileNavLinkActive {
516
+ font-weight: 600;
517
+ border-bottom-color: var(--xnav-link-active, var(--xnav-link-color, var(--text)));
518
+ }
519
+ .themeToggleMobile {
520
+ margin-top: 1rem;
521
+ font-size: 1rem;
522
+ padding: 0.5rem 1rem;
523
+ border: 1px solid var(--border);
524
+ border-radius: 0.375rem;
525
+ display: flex;
526
+ align-items: center;
527
+ gap: 0.5rem;
528
+ background: none;
529
+ color: var(--text);
530
+ cursor: pointer;
531
+ transition: opacity 0.2s;
532
+ }
533
+ .themeToggleMobile:hover {
534
+ opacity: 0.7;
535
+ }
536
+
537
+ /* src/components/layout/xfooter/XFooter.module.css */
538
+ .XFooter {
539
+ width: 100%;
540
+ background-color: var(--xf-bg, transparent);
541
+ color: var(--xf-text, #333);
542
+ padding: var(--xf-py, 0.9rem) 0.6rem;
543
+ }
544
+ .container {
545
+ max-width: 1280px;
546
+ margin: 0 auto;
547
+ display: flex;
548
+ flex-direction: column;
549
+ align-items: center;
550
+ gap: 0.6rem;
551
+ }
552
+ .nav {
553
+ display: grid;
554
+ gap: 0.5rem 1.5rem;
555
+ grid-template-columns: repeat(var(--xf-cols, 1), minmax(0, auto));
556
+ justify-content: center;
557
+ text-align: center;
558
+ width: 100%;
559
+ }
560
+ .navVertical {
561
+ display: flex;
562
+ flex-direction: column;
563
+ align-items: center;
564
+ gap: 0.75rem;
565
+ }
566
+ .link {
567
+ color: var(--xf-accent, inherit);
568
+ text-decoration: none;
569
+ font-size: 0.9rem;
570
+ transition: opacity 0.2s;
571
+ white-space: nowrap;
572
+ }
573
+ .link:hover {
574
+ opacity: 0.7;
575
+ }
576
+ .copyright {
577
+ font-size: 0.75rem;
578
+ opacity: 0.6;
579
+ width: 100%;
580
+ text-align: center;
581
+ }
582
+
583
+ /* src/components/layout/xseparator/XSeparator.module.css */
584
+ .separatorContainer {
585
+ position: relative;
586
+ display: flex;
587
+ align-items: center;
588
+ justify-content: center;
589
+ width: 100%;
590
+ --x-color: var(--separator-color);
591
+ --x-bg: white;
592
+ }
593
+ .iconWrapper {
594
+ position: absolute;
595
+ left: 50%;
596
+ top: 50%;
597
+ transform: translate(-50%, -50%);
598
+ background-color: var(--x-bg);
599
+ padding: 0 10px;
600
+ color: var(--x-color);
601
+ font-family: system-ui, sans-serif;
602
+ font-weight: bold;
603
+ font-size: 1.2rem;
604
+ line-height: 1;
605
+ user-select: none;
606
+ }
607
+ .separator {
608
+ --separator-color: #e2e8f0;
609
+ --separator-thickness: 1px;
610
+ --separator-margin: 1rem;
611
+ border: 0;
612
+ background-color: var(--separator-color);
613
+ }
614
+ .dashed {
615
+ background-color: transparent !important;
616
+ border-bottom: var(--separator-thickness) dashed var(--separator-color);
617
+ }
618
+ .dotted {
619
+ background-color: transparent !important;
620
+ border-bottom: var(--separator-thickness) dotted var(--separator-color);
621
+ }
622
+ .faded {
623
+ mask-image:
624
+ linear-gradient(
625
+ to right,
626
+ transparent,
627
+ black 20%,
628
+ black 80%,
629
+ transparent);
630
+ }
631
+ .vertical.faded {
632
+ mask-image:
633
+ linear-gradient(
634
+ to bottom,
635
+ transparent,
636
+ black 20%,
637
+ black 80%,
638
+ transparent);
639
+ }
640
+ .horizontal {
641
+ width: 100%;
642
+ height: var(--separator-thickness);
643
+ margin: var(--separator-margin) 0;
644
+ }
645
+ .vertical {
646
+ width: var(--separator-thickness);
647
+ height: 100%;
648
+ display: inline-block;
649
+ margin: 0 var(--separator-margin);
650
+ vertical-align: middle;
651
+ }
652
+
653
+ /* src/components/layout/xzigzaglayout/XZigZagLayout.module.css */
654
+ .layout {
655
+ width: min(100%, 72rem);
656
+ margin: 0 auto;
657
+ display: flex;
658
+ flex-direction: column;
659
+ gap: var(--x-zigzag-gap, 0.5rem);
660
+ padding-inline: clamp(0.5rem, 2vw, 1rem);
661
+ position: relative;
662
+ }
663
+ .svgLine {
664
+ position: absolute;
665
+ top: 0;
666
+ left: 0;
667
+ width: 100%;
668
+ height: 100%;
669
+ pointer-events: none;
670
+ z-index: 0;
671
+ }
672
+ .item {
673
+ width: 100%;
674
+ display: grid;
675
+ grid-template-columns: repeat(12, minmax(0, 1fr));
676
+ }
677
+ .item > * {
678
+ width: 100%;
679
+ text-align: inherit;
680
+ }
681
+ .contentWrapper {
682
+ width: 100%;
683
+ }
684
+ .textLeft > * {
685
+ text-align: left;
686
+ }
687
+ .textRight > * {
688
+ text-align: right;
689
+ }
690
+ .left > * {
691
+ grid-column: 2 / 8;
692
+ }
693
+ .right > * {
694
+ grid-column: 6 / 12;
695
+ }
696
+ @media (max-width: 768px) {
697
+ .left > * {
698
+ grid-column: 1 / 11;
699
+ }
700
+ .right > * {
701
+ grid-column: 3 / 13;
702
+ }
703
+ }
704
+
705
+ /* src/components/content/xinteractivephrase/XInteractivePhrase.module.css */
706
+ .container {
707
+ padding: 1rem 0;
708
+ color: var(--text, #000);
709
+ width: 100%;
710
+ }
711
+ .title {
712
+ margin: 0;
713
+ padding: 0;
714
+ line-height: 1.3;
715
+ font-weight: inherit;
716
+ text-align: inherit;
717
+ }
718
+ h1.title {
719
+ font-size: clamp(2rem, 6vw, 2.2rem);
720
+ font-weight: 800;
721
+ margin: 0;
722
+ padding: 0;
723
+ text-align: inherit;
724
+ }
725
+ h2.title {
726
+ font-size: clamp(1.675rem, 4vw, 1.8rem);
727
+ font-weight: 700;
728
+ margin: 0;
729
+ padding: 0;
730
+ text-align: inherit;
731
+ }
732
+ h3.title {
733
+ font-size: clamp(1.4rem, 3vw, 1.95rem);
734
+ font-weight: 700;
735
+ margin: 0;
736
+ padding: 0;
737
+ text-align: inherit;
738
+ }
739
+ h4.title {
740
+ font-size: clamp(1.25rem, 3vw, 2rem);
741
+ font-weight: 600;
742
+ margin: 0;
743
+ padding: 0;
744
+ text-align: inherit;
745
+ }
746
+ h5.title {
747
+ font-size: clamp(1.125rem, 3vw, 1.5rem);
748
+ font-weight: 600;
749
+ margin: 0;
750
+ padding: 0;
751
+ text-align: inherit;
752
+ }
753
+ h6.title {
754
+ font-size: clamp(1rem, 2.5vw, 1.25rem);
755
+ font-weight: 600;
756
+ margin: 0;
757
+ padding: 0;
758
+ text-align: inherit;
759
+ }
760
+ p.title {
761
+ font-size: 1rem;
762
+ font-weight: 400;
763
+ margin: 0;
764
+ padding: 0;
765
+ text-align: inherit;
766
+ }
767
+ .title strong {
768
+ font-weight: 900;
769
+ color: var(--accent, #0070f3);
770
+ }
771
+ .title em {
772
+ font-style: italic;
773
+ font-family: serif;
774
+ }
775
+ .underlineEffect {
776
+ position: relative;
777
+ cursor: pointer;
778
+ color: var(--accent, #0070f3);
779
+ display: inline-block;
780
+ transition: color 0.3s ease;
781
+ }
782
+ .underlineEffect::after {
783
+ content: "";
784
+ position: absolute;
785
+ bottom: -2px;
786
+ left: 0;
787
+ height: 0.15em;
788
+ width: 100%;
789
+ background:
790
+ repeating-linear-gradient(
791
+ 45deg,
792
+ transparent,
793
+ transparent 2px,
794
+ currentColor 2px,
795
+ currentColor 4px);
796
+ transition: opacity 0.3s ease;
797
+ }
798
+ .underlineEffect:hover::after {
799
+ opacity: 0;
800
+ }
801
+ .buttonEffect {
802
+ display: inline-block;
803
+ padding: 0.1em 0.6em;
804
+ border: 2px dashed currentColor;
805
+ border-radius: 9999px;
806
+ cursor: pointer;
807
+ color: var(--accent, #0070f3);
808
+ transition: all 0.3s ease;
809
+ }
810
+ .buttonEffect:hover {
811
+ background: currentColor;
812
+ color: var(--bg, #fff);
813
+ }
814
+ .blurEffect {
815
+ display: inline-block;
816
+ transition: filter 0.7s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.7s ease;
817
+ }
818
+ .isVisible {
819
+ filter: blur(0);
820
+ opacity: 1;
821
+ }
822
+ .isHidden {
823
+ filter: blur(10px);
824
+ opacity: 0.3;
825
+ user-select: none;
826
+ }
827
+ .lineBreak {
828
+ display: block;
829
+ height: 0.8rem;
830
+ }
831
+ .underlineEffect:focus-visible,
832
+ .buttonEffect:focus-visible {
833
+ outline: 2px solid var(--accent, #0070f3);
834
+ outline-offset: 4px;
835
+ }
836
+
837
+ /* src/components/gallery/xmicrogallerytext/XMicroGalleryText.module.css */
838
+ .container {
839
+ display: flex;
840
+ flex-direction: column;
841
+ gap: 2rem;
842
+ width: 100%;
843
+ align-items: center;
844
+ margin: 2rem 0;
845
+ }
846
+ @media (min-width: 1024px) {
847
+ .container {
848
+ flex-direction: row;
849
+ align-items: center;
850
+ gap: 4rem;
851
+ }
852
+ .reverse {
853
+ flex-direction: row-reverse;
854
+ }
855
+ }
856
+ .textContent {
857
+ flex: 1;
858
+ opacity: 0;
859
+ transform: translateY(30px);
860
+ transition: opacity 0.8s ease-out, transform 0.8s ease-out;
861
+ color: var(--foreground);
862
+ }
863
+ .textContent.visible {
864
+ opacity: 1;
865
+ transform: translateY(0);
866
+ }
867
+ .textLeft {
868
+ text-align: left;
869
+ }
870
+ .textRight {
871
+ text-align: right;
872
+ }
873
+ .textCenter {
874
+ text-align: center;
875
+ }
876
+ .textContent p,
877
+ .textContent div,
878
+ .textContent span,
879
+ .textContent em,
880
+ .textContent strong,
881
+ .textContent a {
882
+ text-align: inherit;
883
+ max-width: none;
884
+ margin-left: unset;
885
+ margin-right: unset;
886
+ }
887
+ .gallery {
888
+ flex: 1.5;
889
+ width: 100%;
890
+ }
891
+ .artisticGrid {
892
+ display: grid;
893
+ grid-template-columns: repeat(3, 1fr);
894
+ grid-template-rows: 380px 220px;
895
+ gap: 1rem;
896
+ }
897
+ .imageWrapper {
898
+ position: relative;
899
+ overflow: hidden;
900
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
901
+ border-radius: 20px;
902
+ opacity: 0;
903
+ transform: translateY(50px) scale(0.95);
904
+ transition:
905
+ opacity 0.6s ease-out,
906
+ transform 0.6s ease-out,
907
+ box-shadow 0.3s ease;
908
+ }
909
+ .imageWrapper.visible {
910
+ opacity: 1;
911
+ transform: translateY(0) scale(1);
912
+ }
913
+ .imageWrapper:hover {
914
+ transform: translateY(-5px);
915
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
916
+ }
917
+ .previewImage {
918
+ object-fit: cover;
919
+ }
920
+ .artisticGrid .artistic1 .previewImage {
921
+ object-position: center top;
922
+ transform: translateY(0);
923
+ }
924
+ .artistic1 {
925
+ grid-column: 1 / 4;
926
+ grid-row: 1 / 2;
927
+ transition-delay: 0.2s;
928
+ }
929
+ .artistic2 {
930
+ grid-column: 1 / 2;
931
+ grid-row: 2 / 3;
932
+ transition-delay: 0.3s;
933
+ }
934
+ .artistic3 {
935
+ grid-column: 2 / 4;
936
+ grid-row: 2 / 3;
937
+ transition-delay: 0.4s;
938
+ }
939
+ @media (max-width: 768px) {
940
+ .artisticGrid {
941
+ grid-template-columns: 1fr;
942
+ grid-template-rows: 240px 180px 180px;
943
+ }
944
+ .artistic1,
945
+ .artistic2,
946
+ .artistic3 {
947
+ grid-column: 1 / 2;
948
+ }
949
+ .artistic1 {
950
+ grid-row: 1 / 2;
951
+ }
952
+ .artistic2 {
953
+ grid-row: 2 / 3;
954
+ }
955
+ .artistic3 {
956
+ grid-row: 3 / 4;
957
+ }
958
+ }
959
+ @media (max-width: 480px) {
960
+ .artisticGrid {
961
+ grid-template-rows: 200px 140px 140px;
962
+ }
963
+ }
964
+
965
+ /* src/components/gallery/xstaticgallery/XStaticGallery.module.css */
966
+ .galleryContainer {
967
+ width: 100%;
968
+ max-width: 80rem;
969
+ margin: 0 auto;
970
+ padding: 1rem 1rem 3rem;
971
+ }
972
+ .galleryTitle {
973
+ font-size: 1.875rem;
974
+ text-align: right;
975
+ color: var(--primary);
976
+ margin-bottom: 3rem;
977
+ opacity: 0.8;
978
+ }
979
+ .masonryGrid {
980
+ gap: 1rem;
981
+ }
982
+ .masonryItem {
983
+ break-inside: avoid;
984
+ position: relative;
985
+ border-radius: 1rem;
986
+ overflow: hidden;
987
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
988
+ margin-bottom: 1rem;
989
+ opacity: 0;
990
+ transform: translateY(20px);
991
+ transition:
992
+ opacity 0.5s ease-out,
993
+ transform 0.5s ease-out,
994
+ box-shadow 0.3s ease;
995
+ }
996
+ .masonryItem.visible {
997
+ opacity: 1;
998
+ transform: translateY(0);
999
+ }
1000
+ .masonryItem:hover {
1001
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
1002
+ }
1003
+ .imageContainer {
1004
+ position: relative;
1005
+ width: 100%;
1006
+ overflow: hidden;
1007
+ border-radius: 1rem;
1008
+ }
1009
+ .galleryImage {
1010
+ width: 100%;
1011
+ height: auto;
1012
+ object-fit: cover;
1013
+ display: block;
1014
+ transition: transform 0.5s ease-out;
1015
+ }
1016
+ .masonryItem:hover .galleryImage {
1017
+ transform: scale(1.05);
1018
+ }
1019
+ .imageOverlay {
1020
+ position: absolute;
1021
+ inset: 0;
1022
+ background: rgba(0, 0, 0, 0);
1023
+ transition: background 0.3s ease;
1024
+ pointer-events: none;
1025
+ }
1026
+ .masonryItem:hover .imageOverlay {
1027
+ background: rgba(0, 0, 0, 0.1);
1028
+ }
1029
+ .cols1 {
1030
+ columns: 1;
1031
+ }
1032
+ .cols2 {
1033
+ columns: 2;
1034
+ }
1035
+ .cols3 {
1036
+ columns: 3;
1037
+ }
1038
+ .cols4 {
1039
+ columns: 4;
1040
+ }
1041
+ .cols5 {
1042
+ columns: 5;
1043
+ }
1044
+ @media (max-width: 1280px) {
1045
+ .cols4,
1046
+ .cols5 {
1047
+ columns: 3;
1048
+ }
1049
+ }
1050
+ @media (max-width: 768px) {
1051
+ .cols3,
1052
+ .cols4,
1053
+ .cols5 {
1054
+ columns: 2;
1055
+ }
1056
+ }
1057
+ @media (max-width: 640px) {
1058
+ .cols2,
1059
+ .cols3,
1060
+ .cols4,
1061
+ .cols5 {
1062
+ columns: 1;
1063
+ }
1064
+ }
1065
+
1066
+ /* src/components/social/xsocialcontact/XSocialContact.module.css */
1067
+ .container {
1068
+ --columns: 3;
1069
+ --gap: 1.5rem;
1070
+ --padding: 1.5rem;
1071
+ --text-size: 1rem;
1072
+ --alignment: center;
1073
+ --text-align: center;
1074
+ --icon-gap: 1.5rem;
1075
+ --border-radius: 0.5rem;
1076
+ --bg-color: transparent;
1077
+ --icon-color: currentColor;
1078
+ --icon-hover-color: currentColor;
1079
+ --border-color: transparent;
1080
+ --border-width: 0px;
1081
+ --border-style: solid;
1082
+ --text-color: inherit;
1083
+ display: grid;
1084
+ grid-template-columns: repeat(var(--columns), 1fr);
1085
+ gap: var(--gap);
1086
+ padding: var(--padding);
1087
+ background-color: var(--bg-color);
1088
+ border: var(--border-width) var(--border-style) var(--border-color);
1089
+ border-radius: var(--border-radius);
1090
+ justify-items: var(--alignment);
1091
+ }
1092
+ .small {
1093
+ --icon-gap: 1rem;
1094
+ --gap: 1rem;
1095
+ --padding: 1rem;
1096
+ --text-size: 0.875rem;
1097
+ }
1098
+ .medium {
1099
+ --icon-gap: 1.5rem;
1100
+ --gap: 1.5rem;
1101
+ --padding: 1.5rem;
1102
+ --text-size: 1rem;
1103
+ }
1104
+ .large {
1105
+ --icon-gap: 2rem;
1106
+ --gap: 2rem;
1107
+ --padding: 2rem;
1108
+ --text-size: 1.125rem;
1109
+ }
1110
+ .rows1 {
1111
+ grid-template-rows: auto;
1112
+ }
1113
+ .rows2 {
1114
+ grid-template-rows: repeat(2, auto);
1115
+ }
1116
+ .rows3 {
1117
+ grid-template-rows: repeat(3, auto);
1118
+ }
1119
+ .rows4 {
1120
+ grid-template-rows: repeat(4, auto);
1121
+ }
1122
+ .item {
1123
+ display: flex;
1124
+ flex-direction: column;
1125
+ align-items: center;
1126
+ gap: calc(var(--icon-gap) * 0.5);
1127
+ text-decoration: none;
1128
+ transition: opacity 0.2s ease;
1129
+ color: inherit;
1130
+ }
1131
+ .item:hover {
1132
+ opacity: 0.8;
1133
+ }
1134
+ .iconWrapper {
1135
+ --item-icon-color: var(--icon-color);
1136
+ --item-icon-hover-color: var(--icon-hover-color);
1137
+ display: flex;
1138
+ align-items: center;
1139
+ justify-content: center;
1140
+ width: var(--icon-gap);
1141
+ height: var(--icon-gap);
1142
+ color: var(--item-icon-color);
1143
+ transition: color 0.2s ease;
1144
+ }
1145
+ .item:hover .iconWrapper {
1146
+ color: var(--item-icon-hover-color);
1147
+ }
1148
+ .text {
1149
+ font-size: var(--text-size);
1150
+ color: var(--text-color);
1151
+ text-align: var(--text-align);
1152
+ word-break: break-word;
1153
+ max-width: 100%;
1154
+ }
1155
+ @media (max-width: 768px) {
1156
+ .container {
1157
+ --columns: 2;
1158
+ --gap: calc(var(--gap) * 0.75);
1159
+ --padding: calc(var(--padding) * 0.75);
1160
+ }
1161
+ .rows2,
1162
+ .rows3,
1163
+ .rows4 {
1164
+ grid-template-columns: repeat(2, 1fr);
1165
+ grid-template-rows: repeat(2, auto);
1166
+ }
1167
+ }
1168
+ @media (max-width: 480px) {
1169
+ .container {
1170
+ --columns: 1;
1171
+ --gap: calc(var(--gap) * 0.5);
1172
+ --padding: calc(var(--padding) * 0.5);
1173
+ }
1174
+ .rows2,
1175
+ .rows3,
1176
+ .rows4 {
1177
+ grid-template-columns: 1fr;
1178
+ grid-template-rows: auto;
1179
+ }
1180
+ }
1181
+ /*# sourceMappingURL=index.css.map */