diva.js 6.0.2 → 7.2.3

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 (131) hide show
  1. package/.clang-format +7 -0
  2. package/.github/workflows/npm-publish.yml +45 -0
  3. package/LICENSE +55 -0
  4. package/Makefile +75 -0
  5. package/README.md +15 -114
  6. package/elm.json +32 -0
  7. package/package.json +12 -59
  8. package/review/elm.json +52 -0
  9. package/review/src/ReviewConfig.elm +87 -0
  10. package/scripts/elm-esm.sh +40 -0
  11. package/scripts/minify-css.mjs +31 -0
  12. package/src/Filters.elm +1044 -0
  13. package/src/Main.elm +1217 -0
  14. package/src/Model.elm +213 -0
  15. package/src/Msg.elm +59 -0
  16. package/src/Utilities.elm +46 -0
  17. package/src/View/CollectionExplorer.elm +172 -0
  18. package/src/View/Helpers.elm +86 -0
  19. package/src/View/HtmlRenderer.elm +136 -0
  20. package/src/View/Icons.elm +159 -0
  21. package/src/View/ManifestInfoModal.elm +363 -0
  22. package/src/View/PageViewModal.elm +1046 -0
  23. package/src/View/Sidebar.elm +786 -0
  24. package/src/View/Toolbar.elm +189 -0
  25. package/src/View.elm +244 -0
  26. package/src/diva.ts +802 -0
  27. package/src/filters.ts +1843 -0
  28. package/src/styles/app.css +328 -0
  29. package/src/styles/collection.css +75 -0
  30. package/src/styles/modal.css +388 -0
  31. package/src/styles/sidebar.css +215 -0
  32. package/src/styles/theme.css +39 -0
  33. package/src/styles/toolbar.css +154 -0
  34. package/src/viewer-element.ts +1307 -0
  35. package/testing/index.html +52 -0
  36. package/testing/testing.html +231 -0
  37. package/tsconfig.json +12 -0
  38. package/AUTHORS +0 -22
  39. package/build/diva.css +0 -554
  40. package/build/diva.css.map +0 -1
  41. package/build/diva.js +0 -9
  42. package/build/diva.js.map +0 -1
  43. package/build/plugins/download.js +0 -2
  44. package/build/plugins/download.js.map +0 -1
  45. package/build/plugins/manipulation.js +0 -2
  46. package/build/plugins/manipulation.js.map +0 -1
  47. package/build/plugins/metadata.js +0 -2
  48. package/build/plugins/metadata.js.map +0 -1
  49. package/index.html +0 -28
  50. package/karma.conf.js +0 -87
  51. package/source/css/_mixins.scss +0 -43
  52. package/source/css/_variables.scss +0 -50
  53. package/source/css/_viewer.scss +0 -462
  54. package/source/css/diva.scss +0 -15
  55. package/source/css/plugins/_manipulation.scss +0 -228
  56. package/source/css/plugins/_metadata.scss +0 -31
  57. package/source/img/adjust.svg +0 -11
  58. package/source/img/book-view.svg +0 -6
  59. package/source/img/close.svg +0 -6
  60. package/source/img/download.svg +0 -6
  61. package/source/img/from-fullscreen.svg +0 -8
  62. package/source/img/grid-fewer.svg +0 -6
  63. package/source/img/grid-more.svg +0 -6
  64. package/source/img/grid-view.svg +0 -6
  65. package/source/img/link.svg +0 -6
  66. package/source/img/metadata.svg +0 -9
  67. package/source/img/page-view.svg +0 -6
  68. package/source/img/to-fullscreen.svg +0 -11
  69. package/source/img/zoom-in.svg +0 -6
  70. package/source/img/zoom-out.svg +0 -7
  71. package/source/js/composite-image.js +0 -174
  72. package/source/js/diva-global.js +0 -7
  73. package/source/js/diva.js +0 -1543
  74. package/source/js/document-handler.js +0 -180
  75. package/source/js/document-layout.js +0 -286
  76. package/source/js/exceptions.js +0 -26
  77. package/source/js/gesture-events.js +0 -190
  78. package/source/js/grid-handler.js +0 -122
  79. package/source/js/iiif-source-adapter.js +0 -63
  80. package/source/js/image-cache.js +0 -113
  81. package/source/js/image-manifest.js +0 -157
  82. package/source/js/image-request-handler.js +0 -76
  83. package/source/js/interpolate-animation.js +0 -122
  84. package/source/js/page-layouts/book-layout.js +0 -161
  85. package/source/js/page-layouts/grid-layout.js +0 -97
  86. package/source/js/page-layouts/index.js +0 -38
  87. package/source/js/page-layouts/page-dimensions.js +0 -9
  88. package/source/js/page-layouts/singles-layout.js +0 -27
  89. package/source/js/page-overlay-manager.js +0 -102
  90. package/source/js/page-tools-overlay.js +0 -95
  91. package/source/js/parse-iiif-manifest.js +0 -302
  92. package/source/js/plugins/_filters.js +0 -679
  93. package/source/js/plugins/download.js +0 -83
  94. package/source/js/plugins/manipulation.js +0 -837
  95. package/source/js/plugins/metadata.js +0 -190
  96. package/source/js/renderer.js +0 -584
  97. package/source/js/settings-view.js +0 -30
  98. package/source/js/tile-coverage-map.js +0 -25
  99. package/source/js/toolbar.js +0 -573
  100. package/source/js/utils/dragscroll.js +0 -106
  101. package/source/js/utils/elt.js +0 -94
  102. package/source/js/utils/events.js +0 -190
  103. package/source/js/utils/get-scrollbar-width.js +0 -29
  104. package/source/js/utils/hash-params.js +0 -86
  105. package/source/js/utils/parse-label-value.js +0 -34
  106. package/source/js/utils/vanilla.kinetic.js +0 -527
  107. package/source/js/validation-runner.js +0 -177
  108. package/source/js/viewer-core.js +0 -1514
  109. package/source/js/viewport.js +0 -143
  110. package/test/_setup.js +0 -13
  111. package/test/composite-image_test.js +0 -94
  112. package/test/diva_test.js +0 -43
  113. package/test/hash-params_test.js +0 -221
  114. package/test/image-cache_test.js +0 -106
  115. package/test/main.js +0 -6
  116. package/test/manifests/beromunsterManifest.json +0 -15514
  117. package/test/manifests/iiifv2.json +0 -11032
  118. package/test/manifests/iiifv2pages.json +0 -30437
  119. package/test/manifests/iiifv3.json +0 -10965
  120. package/test/navigation_test.js +0 -355
  121. package/test/parse-iiif-manifest_test.js +0 -68
  122. package/test/public_test.js +0 -881
  123. package/test/settings_test.js +0 -487
  124. package/test/utils/book-layout_test.js +0 -148
  125. package/test/utils/elt_test.js +0 -102
  126. package/test/utils/events_test.js +0 -245
  127. package/test/utils/hash-params_test.js +0 -79
  128. package/test/utils/parse-label-value_test.js +0 -45
  129. package/test/z_plugins_test.js +0 -180
  130. package/webpack.config.js +0 -58
  131. package/webpack.config.test.js +0 -45
@@ -0,0 +1,388 @@
1
+ /* Modal and filter panel styles (Page View + Manifest Info). */
2
+
3
+ .modal-overlay {
4
+ display: flex;
5
+ align-items: center;
6
+ justify-content: center;
7
+ position: fixed;
8
+ inset: 0;
9
+ background-color: var(--diva-overlay-bg);
10
+ padding: 24px;
11
+ z-index: 100;
12
+ }
13
+
14
+ .viewer-status-overlay {
15
+ display: flex;
16
+ align-items: center;
17
+ justify-content: center;
18
+ position: absolute;
19
+ inset: 0;
20
+ background-color: var(--diva-overlay-bg);
21
+ padding: 24px;
22
+ z-index: 40;
23
+ }
24
+
25
+ .modal-overlay.is-fullscreen {
26
+ padding: 0;
27
+ }
28
+
29
+ .modal {
30
+ background-color: var(--diva-page-bg);
31
+ color: var(--diva-text-primary);
32
+ border-radius: 10px;
33
+ width: min(1440px, 96vw);
34
+ max-height: 90vh;
35
+ display: flex;
36
+ flex-direction: column;
37
+ box-shadow: 0 20px 40px var(--diva-shadow-modal);
38
+ }
39
+
40
+ .modal.is-narrow {
41
+ width: min(960px, 94vw);
42
+ }
43
+
44
+ .modal.is-page-view {
45
+ height: 80vh;
46
+ max-height: 80vh;
47
+ }
48
+
49
+ .modal.is-fullscreen {
50
+ border-radius: 0;
51
+ width: 100vw;
52
+ height: 100vh;
53
+ max-height: 100vh;
54
+ }
55
+
56
+ .modal-header {
57
+ display: flex;
58
+ justify-content: space-between;
59
+ align-items: center;
60
+ padding: 16px 20px 0 20px;
61
+ }
62
+
63
+ .modal-actions {
64
+ display: flex;
65
+ gap: 8px;
66
+ }
67
+
68
+ .modal-close-action .canvas-toolbar-button {
69
+ background-color: transparent;
70
+ color: var(--diva-danger);
71
+ border: none;
72
+ box-shadow: none;
73
+ backdrop-filter: none;
74
+ -webkit-backdrop-filter: none;
75
+ width: auto;
76
+ height: auto;
77
+ padding: 2px;
78
+ }
79
+
80
+ .modal-close-action .canvas-toolbar-button:hover {
81
+ background-color: rgb(211 47 47 / 12%);
82
+ border-color: transparent;
83
+ }
84
+
85
+ .modal-close-action .canvas-toolbar-item {
86
+ width: 32px;
87
+ gap: 2px;
88
+ }
89
+
90
+ .modal-close-action .canvas-toolbar-label {
91
+ font-size: var(--diva-font-xs);
92
+ min-height: auto;
93
+ }
94
+
95
+ .modal-title-stack {
96
+ display: flex;
97
+ flex-direction: column;
98
+ gap: 4px;
99
+ }
100
+
101
+ .modal-title {
102
+ font-size: var(--diva-font-lg);
103
+ font-weight: 600;
104
+ }
105
+
106
+ .modal-subtitle {
107
+ font-size: var(--diva-font-lg);
108
+ color: var(--diva-text-primary);
109
+ }
110
+
111
+ .modal-subtitle.is-muted {
112
+ font-size: var(--diva-font-md);
113
+ }
114
+
115
+ .modal-body {
116
+ display: grid;
117
+ grid-template-columns: minmax(0, 1fr) 240px;
118
+ gap: 16px;
119
+ padding: 16px 20px 20px 20px;
120
+ flex: 1;
121
+ min-height: 0;
122
+ }
123
+
124
+ .modal-body.is-no-gap {
125
+ gap: 0;
126
+ }
127
+
128
+ .modal-body.is-two-column {
129
+ grid-template-columns: minmax(0, 1fr) 200px;
130
+ align-items: start;
131
+ }
132
+
133
+ .modal-body.is-no-sidebar {
134
+ grid-template-columns: minmax(0, 1fr);
135
+ }
136
+
137
+ .modal-body.is-fullscreen {
138
+ flex: 1;
139
+ min-height: 0;
140
+ }
141
+
142
+ .modal-body.is-with-choices {
143
+ grid-template-columns: 120px minmax(0, 1fr) 240px;
144
+ }
145
+
146
+ .modal-body.is-with-choices-no-sidebar {
147
+ grid-template-columns: 120px minmax(0, 1fr);
148
+ }
149
+
150
+ .modal-viewer {
151
+ background-color: var(--diva-dark-bg);
152
+ overflow: hidden;
153
+ border: 1px solid var(--diva-dark-border);
154
+ height: 100%;
155
+ }
156
+
157
+ .modal-viewer.is-fullscreen {
158
+ height: 100%;
159
+ border-radius: 0;
160
+ }
161
+
162
+ .modal-viewer.is-outer-left {
163
+ border-radius: 6px 0 0 6px;
164
+ }
165
+
166
+ .modal-canvas {
167
+ display: block;
168
+ width: 100%;
169
+ height: 100%;
170
+ }
171
+
172
+ .modal-sidebar {
173
+ background-color: var(--diva-white);
174
+ border-top: 1px solid var(--diva-border);
175
+ border-right: 1px solid var(--diva-border);
176
+ border-bottom: 1px solid var(--diva-border);
177
+ border-radius: 0 6px 6px 0;
178
+ padding: 16px;
179
+ overflow: auto;
180
+ }
181
+
182
+ .manifest-info-logo-wrap {
183
+ display: flex;
184
+ flex-direction: column;
185
+ gap: 8px;
186
+ align-items: center;
187
+ text-align: center;
188
+ }
189
+
190
+ .manifest-info-logo {
191
+ width: 100%;
192
+ height: auto;
193
+ max-width: 180px;
194
+ }
195
+
196
+ .page-view-choices {
197
+ display: flex;
198
+ flex-direction: column;
199
+ gap: 8px;
200
+ background-color: var(--diva-dark-bg);
201
+ border-radius: 6px 0 0 6px;
202
+ padding: 8px;
203
+ overflow: auto;
204
+ }
205
+
206
+ .page-view-choice {
207
+ border: 2px solid transparent;
208
+ display: flex;
209
+ flex-direction: column;
210
+ gap: 4px;
211
+ }
212
+
213
+ .page-view-choice:focus-visible {
214
+ outline: 2px solid var(--diva-accent);
215
+ outline-offset: 2px;
216
+ }
217
+
218
+ .page-view-choice:hover {
219
+ background-color: var(--diva-dark-bg);
220
+ }
221
+
222
+ .page-view-choice.is-active {
223
+ border-color: var(--diva-accent-light);
224
+ background-color: var(--diva-dark-bg);
225
+ }
226
+
227
+ .page-view-choice-thumb {
228
+ display: block;
229
+ width: 100%;
230
+ height: auto;
231
+ border-radius: 3px;
232
+ }
233
+
234
+ .page-view-choice-label {
235
+ font-size: var(--diva-font-xs);
236
+ line-height: 1.2;
237
+ color: var(--diva-text-muted);
238
+ overflow: hidden;
239
+ text-overflow: ellipsis;
240
+ white-space: nowrap;
241
+ }
242
+
243
+ .filter-group {
244
+ margin-bottom: 12px;
245
+ padding-bottom: 12px;
246
+ border-bottom: 1px solid var(--diva-border);
247
+ }
248
+
249
+ .filter-title-button {
250
+ background-color: transparent;
251
+ border: none;
252
+ padding: 0;
253
+ text-align: left;
254
+ cursor: pointer;
255
+ width: 100%;
256
+ display: flex;
257
+ align-items: center;
258
+ gap: 8px;
259
+ font-size: var(--diva-font-sm);
260
+ font-weight: 600;
261
+ text-transform: uppercase;
262
+ letter-spacing: 0.08em;
263
+ color: var(--diva-text-muted);
264
+ margin-bottom: 8px;
265
+ }
266
+
267
+ .filter-title-button.is-collapsed {
268
+ margin-bottom: 0;
269
+ }
270
+
271
+ .filter-title-icon {
272
+ display: inline-block;
273
+ width: 0;
274
+ height: 0;
275
+ border-top: 4px solid transparent;
276
+ border-bottom: 4px solid transparent;
277
+ border-left: 6px solid var(--diva-text-muted);
278
+ transition: transform 150ms ease;
279
+ }
280
+
281
+ .filter-title-icon.is-expanded {
282
+ transform: rotate(90deg);
283
+ }
284
+
285
+ .filter-row {
286
+ display: flex;
287
+ flex-wrap: wrap;
288
+ gap: 8px;
289
+ align-items: center;
290
+ margin-bottom: 8px;
291
+ }
292
+
293
+ .filter-toggle {
294
+ display: flex;
295
+ align-items: center;
296
+ gap: 8px;
297
+ font-size: var(--diva-font-md);
298
+ margin-bottom: 8px;
299
+ }
300
+
301
+ .filter-toggle.is-inline {
302
+ margin-bottom: 0;
303
+ }
304
+
305
+ .filter-range-group {
306
+ display: flex;
307
+ flex-direction: column;
308
+ gap: 6px;
309
+ margin-bottom: 10px;
310
+ }
311
+
312
+ .filter-range-header {
313
+ display: flex;
314
+ align-items: center;
315
+ justify-content: space-between;
316
+ gap: 8px;
317
+ }
318
+
319
+ .filter-range-header-right {
320
+ display: flex;
321
+ align-items: center;
322
+ gap: 8px;
323
+ }
324
+
325
+ .filter-range-input {
326
+ width: 100%;
327
+ }
328
+
329
+ .filter-value {
330
+ font-size: var(--diva-font-sm);
331
+ color: var(--diva-text-muted);
332
+ width: 40px;
333
+ text-align: right;
334
+ }
335
+
336
+ .filter-reset {
337
+ font-size: var(--diva-font-xs);
338
+ padding: 2px 6px;
339
+ background-color: var(--diva-surface);
340
+ border: 1px solid var(--diva-border);
341
+ border-radius: 3px;
342
+ cursor: pointer;
343
+ color: var(--diva-text-muted);
344
+ }
345
+
346
+ .filter-reset:hover {
347
+ background-color: var(--diva-border);
348
+ }
349
+
350
+ .filter-json {
351
+ width: 100%;
352
+ min-height: 120px;
353
+ padding: 6px 8px;
354
+ font-size: var(--diva-font-sm);
355
+ border: 1px solid var(--diva-border);
356
+ border-radius: 4px;
357
+ background-color: var(--diva-white);
358
+ resize: vertical;
359
+ font-family: Menlo, Monaco, Consolas, "Liberation Mono", monospace;
360
+ }
361
+
362
+ .filter-json-error {
363
+ font-size: var(--diva-font-sm);
364
+ color: var(--diva-danger);
365
+ margin-top: 4px;
366
+ }
367
+
368
+ .filter-label {
369
+ font-size: var(--diva-font-sm);
370
+ color: var(--diva-text-muted);
371
+ }
372
+
373
+ .filter-select {
374
+ padding: 4px 6px;
375
+ border-radius: 4px;
376
+ border: 1px solid var(--diva-border);
377
+ background-color: var(--diva-white);
378
+ font-size: var(--diva-font-sm);
379
+ }
380
+
381
+ .filter-color-input {
382
+ width: 42px;
383
+ height: 28px;
384
+ padding: 0;
385
+ border-radius: 4px;
386
+ border: 1px solid var(--diva-border);
387
+ background-color: var(--diva-white);
388
+ }
@@ -0,0 +1,215 @@
1
+ /* Sidebar-only styles to replace elm-css for the sidebar components. */
2
+
3
+ .sidebar-panel {
4
+ width: 320px;
5
+ height: 100%;
6
+ display: flex;
7
+ flex-direction: column;
8
+ min-height: 0;
9
+ border: 1px solid var(--diva-dark-border);
10
+ border-radius: 0 6px 6px 0;
11
+ background-color: var(--diva-page-bg);
12
+ overflow: hidden;
13
+ }
14
+
15
+ .sidebar-panel.is-overlay {
16
+ /* mobile-only overlay styles are applied in the media query below */
17
+ }
18
+
19
+ .sidebar-panel.is-mobile-hidden {
20
+ /* mobile-only hidden styles are applied in the media query below */
21
+ }
22
+
23
+ .sidebar-tabs {
24
+ display: flex;
25
+ border: 1px solid var(--diva-surface);
26
+ border-radius: 0 6px 0 0;
27
+ background-color: var(--diva-surface);
28
+ }
29
+
30
+ .sidebar-tab-button {
31
+ flex: 1;
32
+ background-color: transparent;
33
+ border: none;
34
+ padding: 10px 12px;
35
+ font-size: var(--diva-font-md);
36
+ text-transform: uppercase;
37
+ cursor: pointer;
38
+ color: var(--diva-text-muted);
39
+ }
40
+
41
+ .sidebar-tab-button.is-active {
42
+ background-color: var(--diva-white);
43
+ font-weight: 600;
44
+ }
45
+
46
+ .sidebar-content {
47
+ flex: 1;
48
+ min-height: 0;
49
+ background-color: var(--diva-page-bg);
50
+ position: relative;
51
+ overflow: hidden;
52
+ display: flex;
53
+ flex-direction: column;
54
+ }
55
+
56
+ .sidebar-pane {
57
+ width: 100%;
58
+ flex: 1;
59
+ min-height: 0;
60
+ }
61
+
62
+ .sidebar-pane.is-hidden {
63
+ display: none;
64
+ }
65
+
66
+ .thumbs {
67
+ width: 100%;
68
+ height: 100%;
69
+ flex: 1;
70
+ min-height: 0;
71
+ overflow-y: auto;
72
+ display: grid;
73
+ grid-template-columns: repeat(3, minmax(0, 1fr));
74
+ align-content: start;
75
+ gap: 10px;
76
+ scroll-behavior: smooth;
77
+ background-color: var(--diva-dark-bg);
78
+ padding: 12px;
79
+ }
80
+
81
+ .thumbs.is-fullscreen {
82
+ height: 100%;
83
+ }
84
+
85
+ .thumbs-item {
86
+ display: flex;
87
+ flex-direction: column;
88
+ justify-content: flex-start;
89
+ align-items: stretch;
90
+ border: 1px solid var(--diva-dark-border);
91
+ text-align: left;
92
+ max-width: none;
93
+ }
94
+
95
+ .thumbs-item:focus-visible {
96
+ outline: 2px solid var(--diva-accent);
97
+ outline-offset: 2px;
98
+ }
99
+
100
+ .thumbs-item.is-active {
101
+ border-color: var(--diva-accent-light);
102
+ box-shadow: 0 0 0 var(--diva-shadow-focus);
103
+ background-color: var(--diva-dark-bg);
104
+ outline: 2px solid var(--diva-accent-light);
105
+ outline-offset: 2px;
106
+ }
107
+
108
+ .thumbs-image {
109
+ display: block;
110
+ width: 100%;
111
+ height: auto;
112
+ border-radius: 3px;
113
+ }
114
+
115
+ .thumbs-label {
116
+ margin-top: 6px;
117
+ font-size: var(--diva-font-sm);
118
+ line-height: 1.3;
119
+ color: var(--diva-text-muted-on-dark);
120
+ }
121
+
122
+ .thumbs-label.is-active {
123
+ color: var(--diva-white);
124
+ }
125
+
126
+ .contents-panel {
127
+ height: 100%;
128
+ overflow: auto;
129
+ padding: 12px;
130
+ }
131
+
132
+ .contents-title {
133
+ font-size: var(--diva-font-lg);
134
+ font-weight: 600;
135
+ color: var(--diva-text-muted);
136
+ margin-bottom: 10px;
137
+ }
138
+
139
+ .contents-view-tabs {
140
+ display: flex;
141
+ gap: 8px;
142
+ margin-bottom: 12px;
143
+ }
144
+
145
+ .contents-view-button {
146
+ background-color: var(--diva-surface);
147
+ border: 1px solid var(--diva-border);
148
+ border-radius: 6px;
149
+ padding: 4px 10px;
150
+ font-size: var(--diva-font-sm);
151
+ color: var(--diva-text-muted);
152
+ cursor: pointer;
153
+ }
154
+
155
+ .contents-view-button.is-active {
156
+ background-color: var(--diva-white);
157
+ border-color: var(--diva-accent);
158
+ color: var(--diva-text-primary);
159
+ }
160
+
161
+ .contents-list-nested {
162
+ padding-left: 16px;
163
+ margin-top: 6px;
164
+ }
165
+
166
+ .contents-item {
167
+ margin-bottom: 6px;
168
+ }
169
+
170
+ .contents-meta {
171
+ border: 1px solid var(--diva-dark-border);
172
+ padding: 8px;
173
+ margin-top: 6px;
174
+ }
175
+
176
+ .contents-button:hover {
177
+ color: var(--diva-accent);
178
+ }
179
+
180
+ @media (max-width: 720px) {
181
+ .sidebar-panel {
182
+ width: 100% !important;
183
+ height: auto;
184
+ border-radius: 6px;
185
+ }
186
+
187
+ .sidebar-panel.is-overlay {
188
+ position: absolute;
189
+ top: 0;
190
+ left: 0;
191
+ right: 0;
192
+ bottom: 0;
193
+ width: 100%;
194
+ height: 100%;
195
+ border-radius: 0;
196
+ z-index: 100;
197
+ box-shadow: 0 12px 24px var(--diva-shadow-dark);
198
+ }
199
+
200
+ .sidebar-panel.is-mobile-hidden {
201
+ display: none;
202
+ }
203
+
204
+ .thumbs {
205
+ width: 100%;
206
+ height: auto;
207
+ grid-template-columns: repeat(3, minmax(0, 1fr));
208
+ overflow-x: auto;
209
+ overflow-y: hidden;
210
+ }
211
+
212
+ .thumbs-item {
213
+ min-width: 120px;
214
+ }
215
+ }
@@ -0,0 +1,39 @@
1
+ /* Shared CSS variables for the Diva theme. */
2
+
3
+ :root {
4
+ --diva-accent: rgba(90, 107, 255, 1);
5
+ --diva-accent-light: rgba(154, 164, 255, 1);
6
+ --diva-border: rgba(217, 212, 206, 1);
7
+ --diva-danger: rgba(211, 47, 47, 1);
8
+ --diva-dark-bg: rgba(28, 29, 34, 1);
9
+ --diva-dark-border: rgba(44, 45, 51, 1);
10
+ --diva-overlay-bg: rgba(16, 17, 20, 0.6);
11
+ --diva-page-bg: rgba(247, 245, 241, 1);
12
+ --diva-shadow-dark: rgba(0, 0, 0, 0.15);
13
+ --diva-shadow-focus: rgba(154, 164, 255, 0.35);
14
+ --diva-shadow-modal: rgba(0, 0, 0, 0.25);
15
+ --diva-surface: rgba(230, 225, 220, 1);
16
+ --diva-text-muted: rgba(92, 90, 85, 1);
17
+ --diva-text-muted-on-dark: rgba(255, 255, 255, 0.7);
18
+ --diva-text-primary: rgba(27, 27, 27, 1);
19
+ --diva-toolbar-button-bg: rgb(82 88 98 / 42%);
20
+ --diva-toolbar-button-bg-hover: rgb(92 99 110 / 52%);
21
+ --diva-toolbar-button-bg-fullscreen: rgb(82 88 98 / 52%);
22
+ --diva-toolbar-button-bg-fullscreen-hover: rgb(96 104 116 / 62%);
23
+ --diva-toolbar-button-border: rgb(255 255 255 / 35%);
24
+ --diva-toolbar-button-border-hover: rgb(255 255 255 / 45%);
25
+ --diva-toolbar-button-border-fullscreen-hover: rgb(255 255 255 / 60%);
26
+ --diva-toolbar-button-icon: rgba(44, 45, 51, 1);
27
+ --diva-toolbar-button-shadow:
28
+ inset 0 1px 0 rgb(255 255 255 / 55%),
29
+ inset 0 -1px 0 rgb(255 255 255 / 18%);
30
+ --diva-toolbar-button-shadow-hover:
31
+ inset 0 1px 0 rgb(255 255 255 / 70%),
32
+ inset 0 -1px 0 rgb(255 255 255 / 24%);
33
+ --diva-white: rgba(255, 255, 255, 1);
34
+ --diva-font-lg: 16px;
35
+ --diva-font-md: 13px;
36
+ --diva-font-sm: 11px;
37
+ --diva-font-xs: 10px;
38
+ --diva-font-xl: 20px;
39
+ }