jekyll-theme-conference 4.0.0 → 4.0.2

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 (110) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -4
  3. data/_includes/get_program_config.html +5 -1
  4. data/_includes/get_start_times.html +12 -0
  5. data/_layouts/program.html +74 -30
  6. data/_sass/bootstrap/scss/_accordion.scss +153 -0
  7. data/_sass/bootstrap/scss/_alert.scss +68 -0
  8. data/_sass/bootstrap/scss/_badge.scss +38 -0
  9. data/_sass/bootstrap/scss/_breadcrumb.scss +40 -0
  10. data/_sass/bootstrap/scss/_button-group.scss +147 -0
  11. data/_sass/bootstrap/scss/_buttons.scss +216 -0
  12. data/_sass/bootstrap/scss/_card.scss +238 -0
  13. data/_sass/bootstrap/scss/_carousel.scss +226 -0
  14. data/_sass/bootstrap/scss/_close.scss +66 -0
  15. data/_sass/bootstrap/scss/_containers.scss +41 -0
  16. data/_sass/bootstrap/scss/_dropdown.scss +250 -0
  17. data/_sass/bootstrap/scss/_forms.scss +9 -0
  18. data/_sass/bootstrap/scss/_functions.scss +302 -0
  19. data/_sass/bootstrap/scss/_grid.scss +39 -0
  20. data/_sass/bootstrap/scss/_helpers.scss +12 -0
  21. data/_sass/bootstrap/scss/_images.scss +42 -0
  22. data/_sass/bootstrap/scss/_list-group.scss +199 -0
  23. data/_sass/bootstrap/scss/_maps.scss +174 -0
  24. data/_sass/bootstrap/scss/_mixins.scss +42 -0
  25. data/_sass/bootstrap/scss/_modal.scss +240 -0
  26. data/_sass/bootstrap/scss/_nav.scss +197 -0
  27. data/_sass/bootstrap/scss/_navbar.scss +289 -0
  28. data/_sass/bootstrap/scss/_offcanvas.scss +147 -0
  29. data/_sass/bootstrap/scss/_pagination.scss +109 -0
  30. data/_sass/bootstrap/scss/_placeholders.scss +51 -0
  31. data/_sass/bootstrap/scss/_popover.scss +196 -0
  32. data/_sass/bootstrap/scss/_progress.scss +68 -0
  33. data/_sass/bootstrap/scss/_reboot.scss +617 -0
  34. data/_sass/bootstrap/scss/_root.scss +187 -0
  35. data/_sass/bootstrap/scss/_spinners.scss +86 -0
  36. data/_sass/bootstrap/scss/_tables.scss +171 -0
  37. data/_sass/bootstrap/scss/_toasts.scss +73 -0
  38. data/_sass/bootstrap/scss/_tooltip.scss +119 -0
  39. data/_sass/bootstrap/scss/_transitions.scss +27 -0
  40. data/_sass/bootstrap/scss/_type.scss +106 -0
  41. data/_sass/bootstrap/scss/_utilities.scss +806 -0
  42. data/_sass/bootstrap/scss/_variables-dark.scss +102 -0
  43. data/_sass/bootstrap/scss/_variables.scss +1753 -0
  44. data/_sass/bootstrap/scss/bootstrap-grid.scss +62 -0
  45. data/_sass/bootstrap/scss/bootstrap-reboot.scss +10 -0
  46. data/_sass/bootstrap/scss/bootstrap-utilities.scss +19 -0
  47. data/_sass/bootstrap/scss/bootstrap.scss +52 -0
  48. data/_sass/bootstrap/scss/forms/_floating-labels.scss +97 -0
  49. data/_sass/bootstrap/scss/forms/_form-check.scss +189 -0
  50. data/_sass/bootstrap/scss/forms/_form-control.scss +214 -0
  51. data/_sass/bootstrap/scss/forms/_form-range.scss +91 -0
  52. data/_sass/bootstrap/scss/forms/_form-select.scss +80 -0
  53. data/_sass/bootstrap/scss/forms/_form-text.scss +11 -0
  54. data/_sass/bootstrap/scss/forms/_input-group.scss +132 -0
  55. data/_sass/bootstrap/scss/forms/_labels.scss +36 -0
  56. data/_sass/bootstrap/scss/forms/_validation.scss +12 -0
  57. data/_sass/bootstrap/scss/helpers/_clearfix.scss +3 -0
  58. data/_sass/bootstrap/scss/helpers/_color-bg.scss +7 -0
  59. data/_sass/bootstrap/scss/helpers/_colored-links.scss +30 -0
  60. data/_sass/bootstrap/scss/helpers/_focus-ring.scss +5 -0
  61. data/_sass/bootstrap/scss/helpers/_icon-link.scss +25 -0
  62. data/_sass/bootstrap/scss/helpers/_position.scss +36 -0
  63. data/_sass/bootstrap/scss/helpers/_ratio.scss +26 -0
  64. data/_sass/bootstrap/scss/helpers/_stacks.scss +15 -0
  65. data/_sass/bootstrap/scss/helpers/_stretched-link.scss +15 -0
  66. data/_sass/bootstrap/scss/helpers/_text-truncation.scss +7 -0
  67. data/_sass/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
  68. data/_sass/bootstrap/scss/helpers/_vr.scss +8 -0
  69. data/_sass/bootstrap/scss/mixins/_alert.scss +18 -0
  70. data/_sass/bootstrap/scss/mixins/_backdrop.scss +14 -0
  71. data/_sass/bootstrap/scss/mixins/_banner.scss +7 -0
  72. data/_sass/bootstrap/scss/mixins/_border-radius.scss +78 -0
  73. data/_sass/bootstrap/scss/mixins/_box-shadow.scss +24 -0
  74. data/_sass/bootstrap/scss/mixins/_breakpoints.scss +127 -0
  75. data/_sass/bootstrap/scss/mixins/_buttons.scss +70 -0
  76. data/_sass/bootstrap/scss/mixins/_caret.scss +69 -0
  77. data/_sass/bootstrap/scss/mixins/_clearfix.scss +9 -0
  78. data/_sass/bootstrap/scss/mixins/_color-mode.scss +21 -0
  79. data/_sass/bootstrap/scss/mixins/_color-scheme.scss +7 -0
  80. data/_sass/bootstrap/scss/mixins/_container.scss +11 -0
  81. data/_sass/bootstrap/scss/mixins/_deprecate.scss +10 -0
  82. data/_sass/bootstrap/scss/mixins/_forms.scss +163 -0
  83. data/_sass/bootstrap/scss/mixins/_gradients.scss +47 -0
  84. data/_sass/bootstrap/scss/mixins/_grid.scss +151 -0
  85. data/_sass/bootstrap/scss/mixins/_image.scss +16 -0
  86. data/_sass/bootstrap/scss/mixins/_list-group.scss +26 -0
  87. data/_sass/bootstrap/scss/mixins/_lists.scss +7 -0
  88. data/_sass/bootstrap/scss/mixins/_pagination.scss +10 -0
  89. data/_sass/bootstrap/scss/mixins/_reset-text.scss +17 -0
  90. data/_sass/bootstrap/scss/mixins/_resize.scss +6 -0
  91. data/_sass/bootstrap/scss/mixins/_table-variants.scss +24 -0
  92. data/_sass/bootstrap/scss/mixins/_text-truncate.scss +8 -0
  93. data/_sass/bootstrap/scss/mixins/_transition.scss +26 -0
  94. data/_sass/bootstrap/scss/mixins/_utilities.scss +97 -0
  95. data/_sass/bootstrap/scss/mixins/_visually-hidden.scss +38 -0
  96. data/_sass/bootstrap/scss/utilities/_api.scss +47 -0
  97. data/_sass/bootstrap/scss/vendor/_rfs.scss +348 -0
  98. data/_sass/bootstrap-icons/font/bootstrap-icons.css +2106 -0
  99. data/_sass/bootstrap-icons/font/bootstrap-icons.min.css +5 -0
  100. data/_sass/bootstrap-icons/font/bootstrap-icons.scss +2118 -0
  101. data/_sass/bootstrap.scss +45 -0
  102. data/_sass/conference.scss +19 -0
  103. data/_sass/leaflet/dist/leaflet.css +661 -0
  104. data/_sass/leaflet-easybutton/src/easy-button.css +56 -0
  105. data/_sass/leaflet.locatecontrol/dist/L.Control.Locate.css +61 -0
  106. data/_sass/theme.scss +217 -0
  107. data/assets/css/conference-only.bundle.css +1 -1
  108. data/assets/css/conference.bundle.css +1 -1
  109. data/assets/js/leaflet.bundle.js +3 -3
  110. metadata +104 -2
@@ -0,0 +1,56 @@
1
+ .leaflet-bar button,
2
+ .leaflet-bar button:hover {
3
+ background-color: #fff;
4
+ border: none;
5
+ border-bottom: 1px solid #ccc;
6
+ width: 26px;
7
+ height: 26px;
8
+ line-height: 26px;
9
+ display: block;
10
+ text-align: center;
11
+ text-decoration: none;
12
+ color: black;
13
+ }
14
+
15
+ .leaflet-bar button {
16
+ background-position: 50% 50%;
17
+ background-repeat: no-repeat;
18
+ overflow: hidden;
19
+ display: block;
20
+ }
21
+
22
+ .leaflet-bar button:hover {
23
+ background-color: #f4f4f4;
24
+ }
25
+
26
+ .leaflet-bar button:first-of-type {
27
+ border-top-left-radius: 4px;
28
+ border-top-right-radius: 4px;
29
+ }
30
+
31
+ .leaflet-bar button:last-of-type {
32
+ border-bottom-left-radius: 4px;
33
+ border-bottom-right-radius: 4px;
34
+ border-bottom: none;
35
+ }
36
+
37
+ .leaflet-bar.disabled,
38
+ .leaflet-bar button.disabled {
39
+ cursor: default;
40
+ pointer-events: none;
41
+ opacity: .4;
42
+ }
43
+
44
+ .easy-button-button .button-state{
45
+ display: block;
46
+ width: 100%;
47
+ height: 100%;
48
+ position: relative;
49
+ }
50
+
51
+
52
+ .leaflet-touch .leaflet-bar button {
53
+ width: 30px;
54
+ height: 30px;
55
+ line-height: 30px;
56
+ }
@@ -0,0 +1,61 @@
1
+ .leaflet-control-locate a {
2
+ cursor: pointer;
3
+ }
4
+ .leaflet-control-locate a .leaflet-control-locate-location-arrow {
5
+ display: inline-block;
6
+ width: 16px;
7
+ height: 16px;
8
+ margin: 7px;
9
+ background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="black" d="M445 4 29 195c-48 23-32 93 19 93h176v176c0 51 70 67 93 19L508 67c16-38-25-79-63-63z"/></svg>');
10
+ }
11
+ .leaflet-control-locate a .leaflet-control-locate-spinner {
12
+ display: inline-block;
13
+ width: 16px;
14
+ height: 16px;
15
+ margin: 7px;
16
+ background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="black" d="M304 48a48 48 0 1 1-96 0 48 48 0 0 1 96 0zm-48 368a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm208-208a48 48 0 1 0 0 96 48 48 0 0 0 0-96zM96 256a48 48 0 1 0-96 0 48 48 0 0 0 96 0zm13 99a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm294 0a48 48 0 1 0 0 96 48 48 0 0 0 0-96zM109 61a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"/></svg>');
17
+ animation: leaflet-control-locate-spin 2s linear infinite;
18
+ }
19
+ .leaflet-control-locate.active a .leaflet-control-locate-location-arrow {
20
+ background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="rgb(32, 116, 182)" d="M445 4 29 195c-48 23-32 93 19 93h176v176c0 51 70 67 93 19L508 67c16-38-25-79-63-63z"/></svg>');
21
+ }
22
+ .leaflet-control-locate.following a .leaflet-control-locate-location-arrow {
23
+ background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="rgb(252, 132, 40)" d="M445 4 29 195c-48 23-32 93 19 93h176v176c0 51 70 67 93 19L508 67c16-38-25-79-63-63z"/></svg>');
24
+ }
25
+
26
+ .leaflet-touch .leaflet-bar .leaflet-locate-text-active {
27
+ width: 100%;
28
+ max-width: 200px;
29
+ text-overflow: ellipsis;
30
+ white-space: nowrap;
31
+ overflow: hidden;
32
+ padding: 0 10px;
33
+ }
34
+ .leaflet-touch .leaflet-bar .leaflet-locate-text-active .leaflet-locate-icon {
35
+ padding: 0 5px 0 0;
36
+ }
37
+
38
+ .leaflet-control-locate-location circle {
39
+ animation: leaflet-control-locate-throb 4s ease infinite;
40
+ }
41
+
42
+ @keyframes leaflet-control-locate-throb {
43
+ 0% {
44
+ stroke-width: 1;
45
+ }
46
+ 50% {
47
+ stroke-width: 3;
48
+ transform: scale(0.8, 0.8);
49
+ }
50
+ 100% {
51
+ stroke-width: 1;
52
+ }
53
+ }
54
+ @keyframes leaflet-control-locate-spin {
55
+ 0% {
56
+ transform: rotate(0deg);
57
+ }
58
+ 100% {
59
+ transform: rotate(360deg);
60
+ }
61
+ }
data/_sass/theme.scss ADDED
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Conference Theme Styles
3
+ */
4
+
5
+ // Import Bootstrap functions, variables, and mixins for responsive utilities
6
+ @import "bootstrap/scss/functions";
7
+ @import "bootstrap-variables";
8
+ @import "bootstrap/scss/variables";
9
+ @import "bootstrap/scss/mixins";
10
+
11
+ // Program Overview
12
+ .program-table {
13
+ border-collapse: separate !important;
14
+ border-spacing: 0 !important;
15
+
16
+ .program-time {
17
+ position: sticky;
18
+ left: 0;
19
+ z-index: 900;
20
+
21
+ width: 4rem;
22
+ min-width: 4rem;
23
+ max-width: 4rem;
24
+ }
25
+
26
+ .program-talk {
27
+ width: 15rem;
28
+ min-width: 15rem;
29
+ max-width: 15rem;
30
+ }
31
+
32
+ .program-space {
33
+ width: 1rem;
34
+ min-width: 1rem;
35
+ max-width: 1rem;
36
+ }
37
+ }
38
+
39
+ .program-table-container {
40
+ scroll-snap-type: x mandatory;
41
+ scroll-padding-left: 4rem;
42
+
43
+ tbody .program-talk {
44
+ scroll-snap-align: start;
45
+ }
46
+ }
47
+
48
+ // Speaker Columns
49
+ @mixin generate-col-count-classes($max-cols: 6) {
50
+
51
+ // Generate base classes without breakpoint (col-count-1, col-count-2, etc.)
52
+ @for $idx from 1 through $max-cols {
53
+ .col-count-#{$idx} {
54
+ column-count: $idx;
55
+ }
56
+ }
57
+
58
+ // Generate responsive classes for each breakpoint using Bootstrap's $grid-breakpoints
59
+ @each $breakpoint in map-keys($grid-breakpoints) {
60
+ @if $breakpoint !='xs' {
61
+ @include media-breakpoint-up($breakpoint) {
62
+ @for $idx from 1 through $max-cols {
63
+ .col-count-#{$breakpoint}-#{$idx} {
64
+ column-count: $idx;
65
+ }
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
71
+
72
+ // Call the mixin to generate all classes
73
+ @include generate-col-count-classes();
74
+
75
+ .col-count {
76
+ break-inside: avoid-column;
77
+ }
78
+
79
+ // Remove bottom margin on last paragraph in alert
80
+ .alert>p:last-of-type {
81
+ margin-bottom: 0;
82
+ }
83
+
84
+ // Dark mode
85
+ .mode-light {
86
+ display: initial;
87
+ }
88
+
89
+ .mode-dark {
90
+ display: none;
91
+ }
92
+
93
+ [data-bs-theme="dark"] .mode-light {
94
+ display: none;
95
+ }
96
+
97
+ [data-bs-theme="dark"] .mode-dark {
98
+ display: initial;
99
+ }
100
+
101
+ // PWA
102
+ .d-pwa-block {
103
+ display: none;
104
+ }
105
+
106
+ @media (display-mode: standalone), (display-mode: fullscreen) {
107
+ .d-pwa-none {
108
+ display: none;
109
+ }
110
+
111
+ .d-pwa-block {
112
+ display: block;
113
+ }
114
+ }
115
+
116
+ [data-pwa="true"] {
117
+ .d-pwa-none {
118
+ display: none;
119
+ }
120
+
121
+ .d-pwa-block {
122
+ display: block;
123
+ }
124
+ }
125
+
126
+ // Map
127
+ #map {
128
+ min-height: 400px;
129
+ }
130
+
131
+ // Live Button and Icon
132
+ .live-button {
133
+ // corresponds to text-bg-dark, see
134
+ // https://github.com/twbs/bootstrap/blob/main/scss/helpers/_color-bg.scss
135
+ color: color-contrast($dark);
136
+ background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1));
137
+
138
+ &:hover {
139
+ color: shade-color(color-contrast($dark), $link-shade-percentage);
140
+ }
141
+ }
142
+
143
+ [data-bs-theme="dark"] .live-button {
144
+ // corresponds to text-bg-light, see
145
+ // https://github.com/twbs/bootstrap/blob/main/scss/helpers/_color-bg.scss
146
+ color: color-contrast($light);
147
+ background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1));
148
+
149
+ &:hover {
150
+ color: shade-color(color-contrast($light), $link-shade-percentage);
151
+ }
152
+ }
153
+
154
+ .live-icon {
155
+ width: 0.75em;
156
+ height: 0.75em;
157
+
158
+ @keyframes live-icon-pulse {
159
+
160
+ 0%,
161
+ 6% {
162
+ opacity: 0;
163
+ }
164
+
165
+ 8%,
166
+ 100% {
167
+ opacity: 1;
168
+ }
169
+ }
170
+
171
+ @keyframes live-icon-arc-small {
172
+
173
+ 0%,
174
+ 8% {
175
+ opacity: 0;
176
+ }
177
+
178
+ 10%,
179
+ 100% {
180
+ opacity: 1;
181
+ }
182
+ }
183
+
184
+ @keyframes live-icon-arc-large {
185
+
186
+ 0%,
187
+ 10% {
188
+ opacity: 0;
189
+ }
190
+
191
+ 12%,
192
+ 100% {
193
+ opacity: 1;
194
+ }
195
+ }
196
+
197
+ .live-icon-arc-small {
198
+ animation: live-icon-pulse 8s ease infinite;
199
+ }
200
+
201
+ .live-icon-arc-medium {
202
+ animation: live-icon-arc-small 8s ease infinite;
203
+ }
204
+
205
+ .live-icon-arc-large {
206
+ animation: live-icon-arc-large 8s ease infinite;
207
+ }
208
+
209
+ @media (prefers-reduced-motion: reduce) {
210
+
211
+ .live-icon-arc-small,
212
+ .live-icon-arc-medium,
213
+ .live-icon-arc-large {
214
+ animation: none;
215
+ }
216
+ }
217
+ }