1
|
// Global variable overrides. Must be declared before importing Valo.
|
2
|
|
3
|
// Defines the plaintext font size, weight and family. Font size affects general component sizing.
|
4
|
$v-font-size: 14px; // default in valo is 16px
|
5
|
//$v-font-weight: 300;
|
6
|
$v-font-family: "Open Sans", sans-serif;
|
7
|
|
8
|
// Defines the border used by all components.
|
9
|
//$v-border: 1px solid (v-shade 0.7);
|
10
|
//$v-border-radius: 4px;
|
11
|
|
12
|
// Affects the color of some component elements, e.g Button, Panel title, etc
|
13
|
//$v-background-color: hsl(210, 0%, 98%);
|
14
|
// Affects the color of content areas, e.g Panel and Window content, TextField input etc
|
15
|
//$v-app-background-color: $v-background-color;
|
16
|
|
17
|
// Affects the visual appearance of all component
|
18
|
//$v-gradient: v-linear 8%;
|
19
|
//$v-bevel-depth: 30%;
|
20
|
//$v-shadow-opacity: 5%;
|
21
|
|
22
|
// Defines colors for indicating status (focus, success, failure)
|
23
|
//$v-focus-color: valo-focus-color(); // Calculates a suitable color automatically
|
24
|
//$v-friendly-color: #2c9720;
|
25
|
//$v-error-indicator-color: #ed473b;
|
26
|
|
27
|
// ================== DARK ================ //
|
28
|
|
29
|
// $v-app-loading-text: "Dark Valo";
|
30
|
/*
|
31
|
*/
|
32
|
$v-background-color: #444d50;
|
33
|
$v-focus-color: #07a9ca;
|
34
|
$v-focus-style: 0 0 3px 2px $v-focus-color;
|
35
|
$v-bevel-depth: 40%;
|
36
|
$v-gradient: v-linear 12%;
|
37
|
$v-border-radius: 10px;
|
38
|
$v-font-family: Roboto, sans-serif;
|
39
|
$v-font-weight: 400;
|
40
|
$v-font-weight--header: 400;
|
41
|
$v-bevel: inset 0 1px 2px v-tint, inset 0 0 1px (v-tint 0.1);
|
42
|
$v-shadow: 0 0 0 3px rgba(0,0,0,0.32), 0 1px 0 3px rgba(255,255,255,0.14);
|
43
|
$v-textfield-bevel: inset 0 2px 2px v-shade;
|
44
|
$v-textfield-shadow: $v-shadow;
|
45
|
$v-unit-size: 40px;
|
46
|
$v-overlay-shadow: 0 0 0 3px (v-shade 8), 0 5px 10px (v-shade 4);
|
47
|
$v-component-group-spacing: 6px;
|
48
|
|
49
|
// ========================================== //
|
50
|
|
51
|
// For more information, see: https://vaadin.com/book/-/page/themes.valo.html
|
52
|
// Example variants can be copy/pasted from https://vaadin.com/wiki/-/wiki/Main/Valo+Examples
|
53
|
|
54
|
@import "../valo/valo.scss";
|
55
|
|
56
|
@import "valo-fix.scss";
|
57
|
|
58
|
@import "custom-fields.scss";
|
59
|
|
60
|
|
61
|
// ========================================== //
|
62
|
|
63
|
// import custom font icons TODO rename font
|
64
|
@include v-font(IcoMoon, "../../../../../fonts/icomoon");
|
65
|
|
66
|
.IcoMoon {
|
67
|
font-family: IcoMoon;
|
68
|
font-style: normal;
|
69
|
font-weight: normal;
|
70
|
-webkit-font-smoothing: antialiased;
|
71
|
-moz-osx-font-smoothing: grayscale;
|
72
|
display: inline-block;
|
73
|
text-align: center;
|
74
|
}
|
75
|
|
76
|
// ========================================== //
|
77
|
// Status colors for the redistration
|
78
|
//
|
79
|
// change-color cant be used since this is not fully supported by the vaadin sass-compiler
|
80
|
// see https://github.com/vaadin/sass-compiler/issues/147
|
81
|
$status-reference-color:$v-focus-color;
|
82
|
$hue-offset: hue($status-reference-color);
|
83
|
$plain-red: adjust-color($status-reference-color, $hue: -1 * $hue-offset); // red as 0 degree hue
|
84
|
$status-rejected-color: adjust-color($plain-red, $hue: 0deg);
|
85
|
$status-curation-color: adjust-color($plain-red, $hue: 35deg);
|
86
|
$status-preparation-color: adjust-color($plain-red, $hue: 60deg);
|
87
|
$status-published-color: adjust-color($plain-red, $hue: 105deg);
|
88
|
$status-ready-color: adjust-color($plain-red, $hue: 180deg);
|
89
|
// ========================================== //
|
90
|
|
91
|
|
92
|
@mixin edit-valo {
|
93
|
@include valo;
|
94
|
|
95
|
// Insert your own theme rules here
|
96
|
|
97
|
// --- AbstractPageView --- //
|
98
|
#header {
|
99
|
text-align: center;
|
100
|
margin: round($v-layout-spacing-vertical/2); // corresponds to layout spacing
|
101
|
font-size: $v-font-size--huge; // corresponds to valo style huge (26px)
|
102
|
}
|
103
|
|
104
|
#subheader {
|
105
|
text-align: center;
|
106
|
margin: round($v-layout-spacing-vertical/2);
|
107
|
font-size: $v-font-size; // valo default font size (16px)
|
108
|
}
|
109
|
// ------------------- //
|
110
|
|
111
|
.logo_giant {
|
112
|
font-size: 400%;
|
113
|
}
|
114
|
|
115
|
.v-button-giant {
|
116
|
font-size: 32px;
|
117
|
.v-icon {
|
118
|
font-size: 64px;
|
119
|
line-height: 50px;
|
120
|
}
|
121
|
}
|
122
|
|
123
|
.v-label .caption {
|
124
|
font-size: $v-font-size--small;
|
125
|
}
|
126
|
|
127
|
// label with caption and icon horizonatally aligned
|
128
|
// to apply this to a Vaadin Label set 'label-nowrap'
|
129
|
// as style
|
130
|
|
131
|
.v-caption-label-nowrap, .v-label-label-nowrap {
|
132
|
display: inline;
|
133
|
}
|
134
|
.v-label-label-nowrap {
|
135
|
// margin-left: 8px; // TODO use sass variable here
|
136
|
// vertical-align: baseline;
|
137
|
.v-icon {
|
138
|
display : inline;
|
139
|
}
|
140
|
}
|
141
|
|
142
|
.friendly-foreground {
|
143
|
color: $v-friendly-color;
|
144
|
}
|
145
|
|
146
|
.v-button .button-badge {
|
147
|
@include valo-badge-style($states: inactive, $background-color: lighten($v-background-color, 10%), $active-color: $v-focus-color);
|
148
|
}
|
149
|
|
150
|
.dashboard-actions {
|
151
|
margin: 0 10%;
|
152
|
|
153
|
.dashboard-action-2 {
|
154
|
width: 50%;
|
155
|
.v-label {
|
156
|
white-space: normal;
|
157
|
}
|
158
|
}
|
159
|
.dashboard-action-3 {
|
160
|
width: 33%;
|
161
|
.v-label {
|
162
|
white-space: normal;
|
163
|
}
|
164
|
}
|
165
|
&[width-range~="-650px"] {
|
166
|
.dashboard-action-2, .dashboard-action-3 {
|
167
|
width: 100%;
|
168
|
}
|
169
|
}
|
170
|
}
|
171
|
|
172
|
// ===== workflow ==== //
|
173
|
|
174
|
#workflow {
|
175
|
.registration-list {
|
176
|
.v-gridlayout-slot {
|
177
|
border-bottom: valo-border($border: $v-border, $color: $v-background-color, $strength: 1.4);
|
178
|
}
|
179
|
.v-panel-content {
|
180
|
padding-left: round($v-unit-size / 4);
|
181
|
}
|
182
|
}
|
183
|
.v-gridlayout-registration-list-item {
|
184
|
padding: 0 round($v-unit-size / 4);
|
185
|
}
|
186
|
}
|
187
|
|
188
|
$workflow-icon-size: 110px;
|
189
|
// can not be set per css as this need to set as property to the component in vaadin
|
190
|
$workflow-timeline-bar-height: 10px;
|
191
|
// the fator by which the caption should be smaller than the circe
|
192
|
$workflow-caption-shrink: 0.64;
|
193
|
|
194
|
$workflow-icon-margin-h: $workflow-icon-size / 5;
|
195
|
$workflow-icon-left: $workflow-icon-margin-h / 2;
|
196
|
$workflow-caption-font-size: $workflow-icon-size * $workflow-caption-shrink;
|
197
|
|
198
|
.workflow {
|
199
|
.steps {
|
200
|
z-index: 10;
|
201
|
|
202
|
.v-csslayout {
|
203
|
width: $workflow-icon-size + 2 * $workflow-icon-margin-h;
|
204
|
.v-label {
|
205
|
display: block;
|
206
|
text-align: center;
|
207
|
}
|
208
|
}
|
209
|
}
|
210
|
.timeline {
|
211
|
display: block;
|
212
|
position: relative;
|
213
|
top: ($workflow-icon-size / 2) + $workflow-timeline-bar-height / 2;
|
214
|
padding: 0 $workflow-icon-size / 2;
|
215
|
.timeline-bar {
|
216
|
z-index: 0;
|
217
|
background-color: $v-font-color;
|
218
|
}
|
219
|
}
|
220
|
}
|
221
|
|
222
|
.workflow-item {
|
223
|
.v-button {
|
224
|
margin: 0 $workflow-icon-margin-h;
|
225
|
font-size: $workflow-icon-size;
|
226
|
height: $workflow-icon-size;
|
227
|
width: $workflow-icon-size;
|
228
|
line-height: $workflow-icon-size;
|
229
|
|
230
|
.v-icon, .v-button-caption {
|
231
|
position: absolute;
|
232
|
left: $workflow-icon-left;
|
233
|
top: 0px;
|
234
|
}
|
235
|
.v-button-caption {
|
236
|
font-family: monospace;
|
237
|
left: (($workflow-icon-size - $workflow-caption-font-size) / 2) + $workflow-icon-left; // 30px;
|
238
|
top: -2px;
|
239
|
color: $v-background-color;
|
240
|
font-size: $workflow-caption-font-size; // 70px;
|
241
|
}
|
242
|
}
|
243
|
}
|
244
|
|
245
|
|
246
|
// --------------------------------------------------- //
|
247
|
|
248
|
.registration-list-item {
|
249
|
.blocked {
|
250
|
color: $v-focus-color;
|
251
|
}
|
252
|
}
|
253
|
|
254
|
// --------------------------------------------------- //
|
255
|
|
256
|
#workingset {
|
257
|
padding: round($v-unit-size / 2);
|
258
|
.registration-list, .registration-list-item {
|
259
|
margin-top: round($v-unit-size / 2);
|
260
|
}
|
261
|
|
262
|
.registration-list {
|
263
|
.v-gridlayout-slot {
|
264
|
border-bottom: valo-border($border: $v-border, $color: $v-background-color, $strength: 1.4);
|
265
|
}
|
266
|
}
|
267
|
}
|
268
|
|
269
|
// --------------------------------------------------- //
|
270
|
|
271
|
.registration-list-item {
|
272
|
border-top: valo-border($border: $v-border, $color: $v-background-color, $strength: 0.7);
|
273
|
padding-top: 4px; // avoid button group to overlap with border
|
274
|
.v-label-registration-state {
|
275
|
margin-right: round($v-unit-size / 4);
|
276
|
}
|
277
|
.v-caption-submitter {
|
278
|
margin-right: round($v-unit-size / 8);
|
279
|
}
|
280
|
}
|
281
|
|
282
|
.registration-workflow-item {
|
283
|
border: valo-border($border: $v-border, $color: $v-background-color, $strength: 0.7);
|
284
|
}
|
285
|
|
286
|
// tab element being part of a process ----------- //
|
287
|
// use $v-unit-size instead of $v-font-size * 3?
|
288
|
.workflow-step-wrap {
|
289
|
padding-right: 10px;
|
290
|
height: $v-font-size * 3;
|
291
|
background-color: scale-color(lighten($v-app-background-color, 20%), $saturation: -20%);
|
292
|
@include box-shadow(inset 0 0 5px $v-app-background-color);
|
293
|
}
|
294
|
.workflow-step {
|
295
|
line-height: $v-font-size * 3;
|
296
|
}
|
297
|
.v-caption-workflow-step {
|
298
|
vertical-align: top;
|
299
|
padding: 0;
|
300
|
.v-icon {
|
301
|
line-height: $v-font-size * 3;
|
302
|
font-size: $v-font-size * 3.5;
|
303
|
padding-right: 10px;
|
304
|
color: $v-background-color;
|
305
|
}
|
306
|
}
|
307
|
|
308
|
.workflow-tabsheet {
|
309
|
|
310
|
table.v-tabsheet-tabs, .v-tabsheet-tabs tr, .v-tabsheet-tabs tbody {
|
311
|
width: 100%;
|
312
|
}
|
313
|
|
314
|
.v-tabsheet-tabitemcell {
|
315
|
width: 25%;
|
316
|
}
|
317
|
|
318
|
.v-tabsheet-tabitem {
|
319
|
|
320
|
// background-color: scale-color(lighten($v-app-background-color, 20%), $saturation: -20%);
|
321
|
// @include valo-gradient($color: $v-background-color, $gradient: $v-gradient, $fallback: null, $direction: to right);
|
322
|
// @include box-shadow(inset 0 0 5px $v-app-background-color);
|
323
|
// background-color: $v-font-color
|
324
|
|
325
|
// border: valo-border($border: 2px solid, $color: $v-font-color, $strength: 1);
|
326
|
|
327
|
background-color: scale-color(lighten($v-app-background-color, 20%), $saturation: -20%);
|
328
|
@include box-shadow(inset 0 0 5px $v-app-background-color);
|
329
|
border: valo-border($border: 2px solid, $color: $v-app-background-color, $strength: 1);
|
330
|
border-color: $v-app-background-color;
|
331
|
.v-caption {
|
332
|
// line-height: $v-unit-size;
|
333
|
margin: 0;
|
334
|
padding: 0;
|
335
|
padding-right: $v-unit-size / 2;
|
336
|
border: 0px none;
|
337
|
}
|
338
|
.v-icon {
|
339
|
line-height: $v-unit-size;
|
340
|
font-size: $v-unit-size * 1.8;
|
341
|
vertical-align: middle;
|
342
|
// padding-right: $v-unit-size / 2;
|
343
|
|
344
|
//color: $v-font-color;
|
345
|
|
346
|
color: $v-app-background-color;
|
347
|
}
|
348
|
}
|
349
|
}
|
350
|
|
351
|
// ----------------------------------------------- //
|
352
|
|
353
|
// status colors --------------------------------- //
|
354
|
.status-REJECTED {
|
355
|
color: $status-rejected-color;
|
356
|
}
|
357
|
.status-CURATION {
|
358
|
color: $status-curation-color;
|
359
|
}
|
360
|
.status-PREPARATION {
|
361
|
color: $status-preparation-color;
|
362
|
}
|
363
|
.status-PUBLISHED {
|
364
|
color: $status-published-color;
|
365
|
}
|
366
|
.status-READY {
|
367
|
color: $status-ready-color;
|
368
|
}
|
369
|
|
370
|
.bg-status-REJECTED {
|
371
|
background-color: $status-rejected-color;
|
372
|
}
|
373
|
.bg-status-CURATION {
|
374
|
background-color: $status-curation-color;
|
375
|
}
|
376
|
.bg-status-PREPARATION {
|
377
|
background-color: $status-preparation-color;
|
378
|
}
|
379
|
.bg-status-PUBLISHED {
|
380
|
background-color: $status-published-color;
|
381
|
}
|
382
|
.bg-status-READY {
|
383
|
background-color: $status-ready-color;
|
384
|
}
|
385
|
// ----------------------------------------------- //
|
386
|
|
387
|
#registration-list {
|
388
|
/* --- for the css layout --- */
|
389
|
overflow: auto;
|
390
|
height: 100%;
|
391
|
padding-left: round($v-unit-size/3);
|
392
|
padding-right: round($v-unit-size/3);
|
393
|
|
394
|
border: valo-border($border: $v-border, $color: $v-background-color, $strength: 1.4);
|
395
|
border-radius: $v-border-radius - first-number($v-border) $v-border-radius - first-number($v-border) 0 0;
|
396
|
/* ----------------------------------------------- */
|
397
|
|
398
|
// for grid rows
|
399
|
.status-REJECTED {
|
400
|
color: $status-rejected-color;
|
401
|
td.registrationType, td.status {
|
402
|
color: $status-rejected-color;
|
403
|
}
|
404
|
}
|
405
|
.status-CURATION {
|
406
|
color: $status-curation-color;
|
407
|
td.registrationType, td.status {
|
408
|
color: $status-curation-color;
|
409
|
}
|
410
|
}
|
411
|
.status-PREPARATION {
|
412
|
color: $status-preparation-color;
|
413
|
td.registrationType, td.status {
|
414
|
color: $status-preparation-color;
|
415
|
}
|
416
|
}
|
417
|
.status-PUBLISHED {
|
418
|
color: $status-published-color;
|
419
|
td.registrationType, td.status {
|
420
|
color: $status-published-color;
|
421
|
}
|
422
|
}
|
423
|
.status-READY {
|
424
|
color: $status-ready-color;
|
425
|
td.registrationType, td.status {
|
426
|
color: $status-ready-color;
|
427
|
}
|
428
|
}
|
429
|
|
430
|
}
|
431
|
|
432
|
// ---------------- custom components ----------------------- //
|
433
|
|
434
|
.edit-button-group {
|
435
|
margin-top: round($v-unit-size/10);
|
436
|
.v-button {
|
437
|
padding: 0 round($v-unit-size/4);
|
438
|
height: round(2 * $v-unit-size/3 )
|
439
|
// margin: 0 round($v-unit-size/4);
|
440
|
}
|
441
|
.v-label {
|
442
|
display: inline;
|
443
|
white-space: normal;
|
444
|
}
|
445
|
}
|
446
|
|
447
|
// ---------- popup editor windows ---------------------------------//
|
448
|
.v-window-top-toolbar {
|
449
|
margin-bottom: round($v-unit-size/4);
|
450
|
.v-component-group {
|
451
|
float: right;
|
452
|
}
|
453
|
}
|
454
|
|
455
|
|
456
|
}
|