cdm-vaadin / src / main / webapp / VAADIN / themes / edit-valo / edit-valo.scss @ 79295d9d
History | View | Annotate | Download (13.1 KB)
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 |
$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 |
|
47 |
// ========================================== // |
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 |
@import "valo-fix.scss"; |
55 |
|
56 |
@import "custom-fields.scss"; |
57 |
|
58 |
|
59 |
// ========================================== // |
60 |
|
61 |
// import custom font icons TODO rename font |
62 |
@include v-font(IcoMoon, "../../../../../fonts/icomoon"); |
63 |
|
64 |
.IcoMoon { |
65 |
font-family: IcoMoon; |
66 |
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 |
// ========================================== // |
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 |
$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 |
$status-rejected-color: adjust-color($plain-red, $hue: 0deg); |
83 |
$status-curation-color: adjust-color($plain-red, $hue: 35deg); |
84 |
$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 |
@mixin edit-valo { |
91 |
@include valo; |
92 |
|
93 |
// Insert your own theme rules here |
94 |
|
95 |
// --- 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 |
.logo_giant { |
110 |
font-size: 400%; |
111 |
} |
112 |
|
113 |
.v-button-giant { |
114 |
font-size: 32px; |
115 |
.v-icon { |
116 |
font-size: 64px; |
117 |
line-height: 50px; |
118 |
} |
119 |
} |
120 |
|
121 |
.v-label .caption { |
122 |
font-size: $v-font-size--small; |
123 |
} |
124 |
|
125 |
// label with caption and icon horizonatally aligned |
126 |
// to apply this to a Vaadin Label set 'label-nowrap' |
127 |
// as style |
128 |
|
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 |
} |
138 |
} |
139 |
|
140 |
.friendly-foreground { |
141 |
color: $v-friendly-color; |
142 |
} |
143 |
|
144 |
.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 |
|
148 |
.dashboard-actions { |
149 |
margin: 0 10%; |
150 |
|
151 |
.dashboard-action-2 { |
152 |
width: 50%; |
153 |
.v-label { |
154 |
white-space: normal; |
155 |
} |
156 |
} |
157 |
.dashboard-action-3 { |
158 |
width: 33%; |
159 |
.v-label { |
160 |
white-space: normal; |
161 |
} |
162 |
} |
163 |
&[width-range~="-650px"] { |
164 |
.dashboard-action-2, .dashboard-action-3 { |
165 |
width: 100%; |
166 |
} |
167 |
} |
168 |
} |
169 |
|
170 |
|
171 |
// ===== workflow ==== // |
172 |
|
173 |
#workflow-container { |
174 |
text-align: center; |
175 |
margin-top: $v-unit-size; |
176 |
} |
177 |
|
178 |
$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 |
$workflow-caption-font-size: $workflow-icon-size * $workflow-caption-shrink; |
187 |
|
188 |
.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 |
|
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 |
#workingset { |
236 |
padding: round($v-unit-size / 2); |
237 |
.registration-list, .registration-list-item { |
238 |
margin-top: round($v-unit-size / 2); |
239 |
} |
240 |
|
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 |
} |
247 |
|
248 |
// --------------------------------------------------- // |
249 |
|
250 |
.registration-list-item { |
251 |
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 |
.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 |
} |
260 |
|
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 |
// use $v-unit-size instead of $v-font-size * 3? |
267 |
.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 |
} |
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 |
} |
329 |
|
330 |
// ----------------------------------------------- // |
331 |
|
332 |
// status colors --------------------------------- // |
333 |
.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 |
|
366 |
#registration-list { |
367 |
/* --- 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 |
// for grid rows |
378 |
.status-REJECTED { |
379 |
color: $status-rejected-color; |
380 |
td.registrationType, td.status { |
381 |
color: $status-rejected-color; |
382 |
} |
383 |
} |
384 |
.status-CURATION { |
385 |
color: $status-curation-color; |
386 |
td.registrationType, td.status { |
387 |
color: $status-curation-color; |
388 |
} |
389 |
} |
390 |
.status-PREPARATION { |
391 |
color: $status-preparation-color; |
392 |
td.registrationType, td.status { |
393 |
color: $status-preparation-color; |
394 |
} |
395 |
} |
396 |
.status-PUBLISHED { |
397 |
color: $status-published-color; |
398 |
td.registrationType, td.status { |
399 |
color: $status-published-color; |
400 |
} |
401 |
} |
402 |
.status-READY { |
403 |
color: $status-ready-color; |
404 |
td.registrationType, td.status { |
405 |
color: $status-ready-color; |
406 |
} |
407 |
} |
408 |
|
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 |
height: round(2 * $v-unit-size/3 ) |
418 |
// margin: 0 round($v-unit-size/4); |
419 |
} |
420 |
.v-label { |
421 |
display: inline; |
422 |
white-space: normal; |
423 |
} |
424 |
} |
425 |
|
426 |
// ---------- 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 |
|
435 |
|
436 |
} |