@event-calendar/core 2.3.3 → 2.4.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 CHANGED
@@ -133,6 +133,7 @@ Inspired by [FullCalendar](https://fullcalendar.io/), implements similar options
133
133
  - [Resource object](#resource-object)
134
134
  - [Parsing resource from a plain object](#parsing-resource-from-a-plain-object)
135
135
  - [View object](#view-object)
136
+ - [Theming](#theming)
136
137
  - [Browser support](#browser-support)
137
138
 
138
139
  ## Usage
@@ -196,8 +197,8 @@ import '@event-calendar/core/index.css';
196
197
  ### Pre-built browser ready bundle
197
198
  Include the following lines of code in the `<head>` section of your page:
198
199
  ```html
199
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@event-calendar/build@2.3.3/event-calendar.min.css">
200
- <script src="https://cdn.jsdelivr.net/npm/@event-calendar/build@2.3.3/event-calendar.min.js"></script>
200
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@event-calendar/build@2.4.0/event-calendar.min.css">
201
+ <script src="https://cdn.jsdelivr.net/npm/@event-calendar/build@2.4.0/event-calendar.min.js"></script>
201
202
  ```
202
203
 
203
204
  <details>
@@ -2244,7 +2245,7 @@ Returns the [View](#view-object) object for the current view.
2244
2245
  Clears the current selection. See [selectable](#selectable).
2245
2246
 
2246
2247
  ## Content
2247
- The content can be presented in the following forms:
2248
+ The content value can be presented in the following forms:
2248
2249
 
2249
2250
  * a string containing text `'some text'`
2250
2251
  * an object containing the HTML string `{html: '<p>some HTML</p>'}`
@@ -2720,6 +2721,30 @@ Here are all properties that exist in View object:
2720
2721
  </tr>
2721
2722
  </table>
2722
2723
 
2724
+ ## Theming
2725
+
2726
+ The library provides a built-in dark theme. This theme is activated automatically if the current [preferred color theme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme) is a dark one.
2727
+
2728
+ You can also activate the dark theme manually by adding the `ec-dark` CSS class to any parent element of the calendar, e.g. `<body class="ec-dark">`.
2729
+
2730
+ <details>
2731
+ <summary>Note</summary>
2732
+
2733
+ > Use the `ec-light` CSS class to manually activate the light theme when the current [preferred color theme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme) is a dark theme, e.g. `<body class="ec-light">`.
2734
+
2735
+ </details>
2736
+
2737
+ Please note that the dark theme does not change the background and font color in the calendar. It is assumed that the page background and font color are set by page styles, and the calendar inherits these styles.
2738
+
2739
+ If you do need to set the background or font color of the calendar, use local CSS variables for this:
2740
+ ```css
2741
+ .ec {
2742
+ --ec-bg-color: #22272e;
2743
+ --ec-text-color: #adbac7;
2744
+ }
2745
+ ```
2746
+ A list of all available CSS variables can be found [here](packages/core/src/styles/theme.scss).
2747
+
2723
2748
  ## Browser support
2724
2749
 
2725
2750
  The latest versions of Chrome, Firefox, Safari, and Edge are supported.
package/index.css CHANGED
@@ -1,3 +1,76 @@
1
+ .ec {
2
+ /* HSL */
3
+ color-scheme: light;
4
+ --ec-h: 0;
5
+ --ec-s: 0%;
6
+ --ec-l-300: 91.00%;
7
+ --ec-l-500: 83.50%;
8
+ --ec-l-600: 78.40%;
9
+ --ec-l-700: 71.40%;
10
+ --ec-bg-fallback-color: #fff;
11
+ --ec-hs: var(--ec-h), var(--ec-s);
12
+ /* Main color */
13
+ --ec-color-300: hsl(var(--ec-hs), var(--ec-l-300));
14
+ --ec-color-500: hsl(var(--ec-hs), var(--ec-l-500));
15
+ --ec-color-600: hsl(var(--ec-hs), var(--ec-l-600));
16
+ --ec-color-700: hsl(var(--ec-hs), var(--ec-l-700));
17
+ /* General props */
18
+ --ec-border-color: var(--ec-color-500);
19
+ --ec-accent-color: var(--ec-color-600);
20
+ /* Buttons */
21
+ --ec-button-bg-color: var(--ec-bg-color);
22
+ --ec-button-border-color: var(--ec-color-600);
23
+ --ec-button-text-color: var(--ec-text-color);
24
+ --ec-button-active-bg-color: var(--ec-color-300);
25
+ --ec-button-active-border-color: var(--ec-color-700);
26
+ --ec-button-active-text-color: var(--ec-button-text-color);
27
+ /* Events */
28
+ --ec-event-bg-color: #039be5;
29
+ --ec-event-text-color: #fff;
30
+ --ec-bg-event-color: var(--ec-color-500);
31
+ --ec-bg-event-opacity: 0.3;
32
+ /* Days */
33
+ --ec-list-day-bg-color: var(--ec-bg-color, var(--ec-bg-fallback-color));
34
+ --ec-today-bg-color: rgba(255, 220, 40, .15);
35
+ --ec-highlight-color: rgba(188, 232, 241, .3);
36
+ /* Popup */
37
+ --ec-popup-bg-color: var(--ec-bg-color, var(--ec-bg-fallback-color));
38
+ /* Now Indicator */
39
+ --ec-now-indicator-color: #ea4335;
40
+ }
41
+ .ec-dark .ec {
42
+ color-scheme: dark;
43
+ --ec-h: 215;
44
+ --ec-s: 15%;
45
+ --ec-l-300: 25.50%;
46
+ --ec-l-500: 42.40%;
47
+ --ec-l-600: 49.80%;
48
+ --ec-l-700: 57.30%;
49
+ --ec-bg-fallback-color: #22272e;
50
+ }
51
+ @media (prefers-color-scheme: dark) {
52
+ .ec {
53
+ color-scheme: dark;
54
+ --ec-h: 215;
55
+ --ec-s: 15%;
56
+ --ec-l-300: 25.50%;
57
+ --ec-l-500: 42.40%;
58
+ --ec-l-600: 49.80%;
59
+ --ec-l-700: 57.30%;
60
+ --ec-bg-fallback-color: #22272e;
61
+ }
62
+ .ec-light .ec {
63
+ color-scheme: light;
64
+ --ec-h: 0;
65
+ --ec-s: 0%;
66
+ --ec-l-300: 91.00%;
67
+ --ec-l-500: 83.50%;
68
+ --ec-l-600: 78.40%;
69
+ --ec-l-700: 71.40%;
70
+ --ec-bg-fallback-color: #fff;
71
+ }
72
+ }
73
+
1
74
  /* Grid */
2
75
  .ec-days,
3
76
  .ec-day,
@@ -11,21 +84,24 @@
11
84
  .ec {
12
85
  display: flex;
13
86
  flex-direction: column;
87
+ color: var(--ec-text-color);
88
+ background-color: var(--ec-bg-color);
14
89
  -webkit-tap-highlight-color: transparent;
15
90
  /* Scrollbar */
16
91
  }
17
92
  .ec ::-webkit-scrollbar {
18
- background: #fff;
93
+ background-color: transparent;
19
94
  }
20
95
  .ec ::-webkit-scrollbar-thumb {
21
- border: 4px solid #fff;
96
+ border: 4px solid transparent;
22
97
  box-shadow: none;
23
- background: #dadce0;
98
+ background-color: var(--ec-border-color);
99
+ background-clip: padding-box;
24
100
  border-radius: 8px;
25
101
  min-height: 40px;
26
102
  }
27
103
  .ec :hover::-webkit-scrollbar-thumb {
28
- background: #bdc1c6;
104
+ background-color: var(--ec-accent-color);
29
105
  }
30
106
 
31
107
  .ec-hidden-scroll {
@@ -61,20 +137,22 @@
61
137
  }
62
138
 
63
139
  .ec-button {
64
- background-color: #fff;
65
- border: 1px solid #ced4da;
140
+ background-color: var(--ec-button-bg-color);
141
+ border: 1px solid var(--ec-button-border-color);
66
142
  padding: 0.375rem 0.75rem;
67
143
  font-size: 1rem;
68
144
  line-height: 1.5;
69
145
  border-radius: 0.25rem;
70
146
  }
71
147
  .ec-button:not(:disabled) {
72
- color: #212529;
148
+ color: var(--ec-button-text-color);
73
149
  cursor: pointer;
74
150
  }
75
151
  .ec-button:not(:disabled):hover, .ec-button.ec-active {
76
- background-color: #ececec;
77
- border-color: #b1bbc4;
152
+ background-color: var(--ec-button-active-bg-color);
153
+ border-color: var(--ec-button-active-border-color);
154
+ color: var(--ec-button-active-text-color);
155
+ z-index: 1;
78
156
  }
79
157
 
80
158
  .ec-button-group {
@@ -99,8 +177,8 @@
99
177
  position: relative;
100
178
  width: 0.5em;
101
179
  height: 0.5em;
102
- border-top: 2px solid #212529;
103
- border-right: 2px solid #212529;
180
+ border-top: 2px solid currentcolor;
181
+ border-right: 2px solid currentcolor;
104
182
  display: inline-block;
105
183
  }
106
184
  .ec-icon.ec-prev:after {
@@ -116,7 +194,7 @@
116
194
  .ec-body,
117
195
  .ec-days,
118
196
  .ec-day {
119
- border: 1px solid #dadce0;
197
+ border: 1px solid var(--ec-border-color);
120
198
  }
121
199
 
122
200
  .ec-header {
@@ -224,10 +302,10 @@
224
302
  border-style: none none none solid;
225
303
  }
226
304
  .ec-day.ec-today {
227
- background-color: #fcf8e3;
305
+ background-color: var(--ec-today-bg-color);
228
306
  }
229
307
  .ec-day.ec-highlight {
230
- background-color: #e5f7fe;
308
+ background-color: var(--ec-highlight-color);
231
309
  }
232
310
  .ec-day-grid .ec-body .ec-day {
233
311
  min-height: 5em;
@@ -244,7 +322,7 @@
244
322
  }
245
323
  .ec-list .ec-day {
246
324
  flex: 1 0 auto;
247
- background-color: #fff;
325
+ background-color: var(--ec-list-day-bg-color);
248
326
  border-style: solid none;
249
327
  padding: 8px 14px;
250
328
  font-weight: bold;
@@ -288,10 +366,10 @@
288
366
  .ec-event {
289
367
  display: flex;
290
368
  padding: 2px;
291
- color: #fff;
369
+ color: var(--ec-event-text-color);
292
370
  box-sizing: border-box;
293
- box-shadow: 0 0 1px 0 #dadce0;
294
- background-color: #039be5;
371
+ box-shadow: 0 0 1px 0 var(--ec-border-color);
372
+ background-color: var(--ec-event-bg-color);
295
373
  border-radius: 3px;
296
374
  font-size: 0.85em;
297
375
  line-height: 1.5;
@@ -389,8 +467,8 @@
389
467
 
390
468
  .ec-bg-event {
391
469
  position: absolute;
392
- background-color: #dadce0;
393
- opacity: 0.3;
470
+ background-color: var(--ec-bg-event-color);
471
+ opacity: var(--ec-bg-event-opacity);
394
472
  width: 100%;
395
473
  z-index: 1;
396
474
  }
@@ -421,7 +499,7 @@
421
499
  content: "";
422
500
  position: absolute;
423
501
  width: 100%;
424
- border-bottom: 1px solid #dadce0;
502
+ border-bottom: 1px solid var(--ec-border-color);
425
503
  pointer-events: none;
426
504
  }
427
505
 
@@ -438,10 +516,11 @@
438
516
  min-width: 180px;
439
517
  z-index: 1010;
440
518
  padding: 8px 10px 14px;
441
- background-color: #fff;
519
+ background-color: var(--ec-popup-bg-color);
520
+ border: 1px solid var(--ec-border-color);
442
521
  border-radius: 6px;
443
522
  outline: 1px solid transparent;
444
- box-shadow: 0 1px 3px 0 rgba(60, 64, 67, 0.3), 0 4px 8px 3px rgba(60, 64, 67, 0.15);
523
+ box-shadow: 0 1px 3px 0 hsla(var(--ec-hs), 50%, 0.15), 0 4px 8px 3px hsla(var(--ec-hs), 50%, 0.15);
445
524
  }
446
525
  .ec-popup .ec-day-head {
447
526
  text-align: left;
@@ -471,11 +550,11 @@
471
550
  position: absolute;
472
551
  z-index: 1005;
473
552
  width: 100%;
474
- border-top: #ea4335 solid 2px;
553
+ border-top: var(--ec-now-indicator-color) solid 2px;
475
554
  pointer-events: none;
476
555
  }
477
556
  .ec-now-indicator:before {
478
- background: #ea4335;
557
+ background: var(--ec-now-indicator-color);
479
558
  border-radius: 50%;
480
559
  content: "";
481
560
  position: absolute;
package/index.js CHANGED
@@ -1091,7 +1091,7 @@ function validKey(key, state) {
1091
1091
  return state.hasOwnProperty(key) && key[0] !== '_';
1092
1092
  }
1093
1093
 
1094
- /* packages/core/src/Buttons.svelte generated by Svelte v4.1.1 */
1094
+ /* packages/core/src/Buttons.svelte generated by Svelte v4.2.2 */
1095
1095
 
1096
1096
  function get_each_context$2(ctx, list, i) {
1097
1097
  const child_ctx = ctx.slice();
@@ -1544,7 +1544,7 @@ class Buttons extends SvelteComponent {
1544
1544
  }
1545
1545
  }
1546
1546
 
1547
- /* packages/core/src/Toolbar.svelte generated by Svelte v4.1.1 */
1547
+ /* packages/core/src/Toolbar.svelte generated by Svelte v4.2.2 */
1548
1548
 
1549
1549
  function get_each_context$1(ctx, list, i) {
1550
1550
  const child_ctx = ctx.slice();
@@ -1930,7 +1930,7 @@ class Toolbar extends SvelteComponent {
1930
1930
  }
1931
1931
  }
1932
1932
 
1933
- /* packages/core/src/Auxiliary.svelte generated by Svelte v4.1.1 */
1933
+ /* packages/core/src/Auxiliary.svelte generated by Svelte v4.2.2 */
1934
1934
 
1935
1935
  function get_each_context(ctx, list, i) {
1936
1936
  const child_ctx = ctx.slice();
@@ -2138,7 +2138,7 @@ class Auxiliary extends SvelteComponent {
2138
2138
  }
2139
2139
  }
2140
2140
 
2141
- /* packages/core/src/Calendar.svelte generated by Svelte v4.1.1 */
2141
+ /* packages/core/src/Calendar.svelte generated by Svelte v4.2.2 */
2142
2142
 
2143
2143
  function create_fragment(ctx) {
2144
2144
  let div;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@event-calendar/core",
3
- "version": "2.3.3",
3
+ "version": "2.4.0",
4
4
  "title": "Event Calendar Core package",
5
5
  "description": "Full-sized drag & drop event calendar with resource view",
6
6
  "keywords": [
@@ -1,3 +1,5 @@
1
+ @use "theme";
2
+
1
3
  /* Grid */
2
4
  .ec-days,
3
5
  .ec-day,
@@ -11,23 +13,26 @@
11
13
  .ec {
12
14
  display: flex;
13
15
  flex-direction: column;
16
+ color: var(--ec-text-color);
17
+ background-color: var(--ec-bg-color);
14
18
  -webkit-tap-highlight-color: transparent;
15
19
 
16
20
  /* Scrollbar */
17
21
  ::-webkit-scrollbar {
18
- background: #fff;
22
+ background-color: transparent;
19
23
  }
20
24
 
21
25
  ::-webkit-scrollbar-thumb {
22
- border: 4px solid #fff;
26
+ border: 4px solid transparent;
23
27
  box-shadow: none;
24
- background: #dadce0;
28
+ background-color: var(--ec-border-color);
29
+ background-clip: padding-box;
25
30
  border-radius: 8px;
26
31
  min-height: 40px;
27
32
  }
28
33
 
29
34
  :hover::-webkit-scrollbar-thumb {
30
- background: #bdc1c6;
35
+ background-color: var(--ec-accent-color);
31
36
  }
32
37
  }
33
38
 
@@ -68,22 +73,24 @@
68
73
  }
69
74
 
70
75
  .ec-button {
71
- background-color: #fff;
72
- border: 1px solid #ced4da;
76
+ background-color: var(--ec-button-bg-color);
77
+ border: 1px solid var(--ec-button-border-color);
73
78
  padding: .375rem .75rem;
74
79
  font-size: 1rem;
75
80
  line-height: 1.5;
76
81
  border-radius: .25rem;
77
82
 
78
83
  &:not(:disabled) {
79
- color: #212529;
84
+ color: var(--ec-button-text-color);
80
85
  cursor: pointer;
81
86
  }
82
87
 
83
88
  &:not(:disabled):hover,
84
89
  &.ec-active {
85
- background-color: #ececec;
86
- border-color: #b1bbc4;
90
+ background-color: var(--ec-button-active-bg-color);
91
+ border-color: var(--ec-button-active-border-color);
92
+ color: var(--ec-button-active-text-color);
93
+ z-index: 1; // make all borders visible
87
94
  }
88
95
  }
89
96
 
@@ -112,8 +119,8 @@
112
119
  position: relative;
113
120
  width: .5em;
114
121
  height: .5em;
115
- border-top: 2px solid #212529;
116
- border-right: 2px solid #212529;
122
+ border-top: 2px solid currentcolor;
123
+ border-right: 2px solid currentcolor;
117
124
  display: inline-block;
118
125
  }
119
126
 
@@ -132,7 +139,7 @@
132
139
  .ec-body,
133
140
  .ec-days,
134
141
  .ec-day {
135
- border: 1px solid #dadce0;
142
+ border: 1px solid var(--ec-border-color);
136
143
  }
137
144
 
138
145
  .ec-header {
@@ -256,11 +263,11 @@
256
263
  border-style: none none none solid;
257
264
 
258
265
  &.ec-today {
259
- background-color: #fcf8e3;
266
+ background-color: var(--ec-today-bg-color);
260
267
  }
261
268
 
262
269
  &.ec-highlight {
263
- background-color: #e5f7fe;
270
+ background-color: var(--ec-highlight-color);
264
271
  }
265
272
 
266
273
  .ec-day-grid .ec-body & {
@@ -282,7 +289,7 @@
282
289
 
283
290
  .ec-list & {
284
291
  flex: 1 0 auto;
285
- background-color: #fff;
292
+ background-color: var(--ec-list-day-bg-color);
286
293
  border-style: solid none;
287
294
  padding: 8px 14px;
288
295
  font-weight: bold;
@@ -337,10 +344,10 @@
337
344
  .ec-event {
338
345
  display: flex;
339
346
  padding: 2px;
340
- color: #fff;
347
+ color: var(--ec-event-text-color);
341
348
  box-sizing: border-box;
342
- box-shadow: 0 0 1px 0 #dadce0;
343
- background-color: #039be5;
349
+ box-shadow: 0 0 1px 0 var(--ec-border-color);
350
+ background-color: var(--ec-event-bg-color);
344
351
  border-radius: 3px;
345
352
  font-size: .85em;
346
353
  line-height: 1.5;
@@ -451,8 +458,8 @@
451
458
 
452
459
  .ec-bg-event {
453
460
  position: absolute;
454
- background-color: #dadce0;
455
- opacity: 0.3;
461
+ background-color: var(--ec-bg-event-color);
462
+ opacity: var(--ec-bg-event-opacity);
456
463
  width: 100%;
457
464
  z-index: 1;
458
465
  }
@@ -485,7 +492,7 @@
485
492
  content: '';
486
493
  position: absolute;
487
494
  width: 100%;
488
- border-bottom: 1px solid #dadce0;
495
+ border-bottom: 1px solid var(--ec-border-color);
489
496
  pointer-events: none;
490
497
  }
491
498
 
@@ -502,10 +509,11 @@
502
509
  min-width: 180px;
503
510
  z-index: 1010;
504
511
  padding: 8px 10px 14px;
505
- background-color: #fff;
512
+ background-color: var(--ec-popup-bg-color);
513
+ border: 1px solid var(--ec-border-color);
506
514
  border-radius: 6px;
507
515
  outline: 1px solid transparent;
508
- box-shadow: 0 1px 3px 0 rgba(60, 64, 67, .3), 0 4px 8px 3px rgba(60, 64, 67, .15);
516
+ box-shadow: 0 1px 3px 0 hsla(var(--ec-hs), 50%, .15), 0 4px 8px 3px hsla(var(--ec-hs), 50%, .15);
509
517
 
510
518
  .ec-day-head {
511
519
  text-align: left;
@@ -538,11 +546,11 @@
538
546
  position: absolute;
539
547
  z-index: 1005;
540
548
  width: 100%;
541
- border-top: #ea4335 solid 2px;
549
+ border-top: var(--ec-now-indicator-color) solid 2px;
542
550
  pointer-events: none;
543
551
 
544
552
  &:before {
545
- background: #ea4335;
553
+ background: var(--ec-now-indicator-color);
546
554
  border-radius: 50%;
547
555
  content: "";
548
556
  position: absolute;
@@ -585,4 +593,4 @@
585
593
  }
586
594
  .ec-resizing-x {
587
595
  cursor: ew-resize!important;
588
- }
596
+ }
@@ -0,0 +1,96 @@
1
+ @mixin light-theme() {
2
+ color-scheme: light;
3
+ --ec-h: 0;
4
+ --ec-s: 0%;
5
+ //--ec-l-50: 97.30%;
6
+ //--ec-l-100: 95.70%;
7
+ //--ec-l-200: 93.70%;
8
+ --ec-l-300: 91.00%;
9
+ //--ec-l-400: 87.80%;
10
+ --ec-l-500: 83.50%;
11
+ --ec-l-600: 78.40%;
12
+ --ec-l-700: 71.40%;
13
+ //--ec-l-800: 62.40%;
14
+ //--ec-l-900: 48.20%;
15
+ //--ec-l-950: 13.30%;
16
+ --ec-bg-fallback-color: #fff;
17
+ }
18
+
19
+ @mixin dark-theme() {
20
+ color-scheme: dark;
21
+ --ec-h: 215;
22
+ --ec-s: 15%;
23
+ //--ec-l-50: 5.10%;
24
+ //--ec-l-100: 8.60%;
25
+ //--ec-l-200: 13.30%;
26
+ --ec-l-300: 25.50%;
27
+ //--ec-l-400: 34.10%;
28
+ --ec-l-500: 42.40%;
29
+ --ec-l-600: 49.80%;
30
+ --ec-l-700: 57.30%;
31
+ //--ec-l-800: 64.70%;
32
+ //--ec-l-900: 72.50%;
33
+ //--ec-l-950: 80.40%;
34
+ --ec-bg-fallback-color: #22272e;
35
+ }
36
+
37
+ .ec {
38
+ /* HSL */
39
+ @include light-theme;
40
+ --ec-hs: var(--ec-h), var(--ec-s);
41
+
42
+ /* Main color */
43
+ //--ec-color-50: hsl(var(--ec-hs), var(--ec-l-50));
44
+ //--ec-color-100: hsl(var(--ec-hs), var(--ec-l-100));
45
+ //--ec-color-200: hsl(var(--ec-hs), var(--ec-l-200));
46
+ --ec-color-300: hsl(var(--ec-hs), var(--ec-l-300));
47
+ //--ec-color-400: hsl(var(--ec-hs), var(--ec-l-400));
48
+ --ec-color-500: hsl(var(--ec-hs), var(--ec-l-500));
49
+ --ec-color-600: hsl(var(--ec-hs), var(--ec-l-600));
50
+ --ec-color-700: hsl(var(--ec-hs), var(--ec-l-700));
51
+ //--ec-color-800: hsl(var(--ec-hs), var(--ec-l-800));
52
+ //--ec-color-900: hsl(var(--ec-hs), var(--ec-l-900));
53
+ //--ec-color-950: hsl(var(--ec-hs), var(--ec-l-950));
54
+
55
+ /* General props */
56
+ //--ec-bg-color: <color>; // can be set by the user
57
+ //--ec-text-color: <color>; // can be set by the user
58
+ --ec-border-color: var(--ec-color-500);
59
+ --ec-accent-color: var(--ec-color-600);
60
+
61
+ /* Buttons */
62
+ --ec-button-bg-color: var(--ec-bg-color);
63
+ --ec-button-border-color: var(--ec-color-600);
64
+ --ec-button-text-color: var(--ec-text-color);
65
+ --ec-button-active-bg-color: var(--ec-color-300);
66
+ --ec-button-active-border-color: var(--ec-color-700);
67
+ --ec-button-active-text-color: var(--ec-button-text-color);
68
+
69
+ /* Events */
70
+ --ec-event-bg-color: #039be5;
71
+ --ec-event-text-color: #fff;
72
+ --ec-bg-event-color: var(--ec-color-500);
73
+ --ec-bg-event-opacity: 0.3;
74
+
75
+ /* Days */
76
+ --ec-list-day-bg-color: var(--ec-bg-color, var(--ec-bg-fallback-color));
77
+ --ec-today-bg-color: rgba(255, 220, 40, .15);
78
+ --ec-highlight-color: rgba(188, 232, 241, .3);
79
+
80
+ /* Popup */
81
+ --ec-popup-bg-color: var(--ec-bg-color, var(--ec-bg-fallback-color));
82
+
83
+ /* Now Indicator */
84
+ --ec-now-indicator-color: #ea4335;
85
+
86
+ .ec-dark & {
87
+ @include dark-theme;
88
+ }
89
+
90
+ @media (prefers-color-scheme: dark) {
91
+ @include dark-theme;
92
+ .ec-light & {
93
+ @include light-theme;
94
+ }
95
+ }
96
+ }