Project

General

Profile

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