2 --bs-blue: #0A58CA; /* $blue-600 in BS5 */
4 --bs-blue-rgb: 10,88,202;
5 --bs-primary-rgb: 10,88,202;
6 --bs-green: #198754; /* $green ($green-500) in BS5 */
8 --bs-green-rgb: 25,135,84;
9 --bs-success-rgb: 25,135,84;
10 --bs-cyan: #087990; /* $cyan-700 in BS5 */
12 --bs-cyan-rgb: 8,121,144;
13 --bs-info-rgb: 8,121,144;
15 --bs-red-rgb: 220,53,69;
16 --bs-red-600: #B02A37;
17 --bs-red-700: #58151C;
18 --bs-orange-rgb: 253, 126, 20;
19 --bs-orange-600: #CA6510;
20 --bs-orange-700: #653208;
23 /* Create some padding at bottom of the page for breathing room */
24 body { padding-bottom: 50px; }
26 /* --------------------------------------------------------------------------
27 * Simple default navbar style adjustements to apply the Evergreen color.
28 * TODO: style other components to match EG color scheme
30 #top-navbar.navbar-default {
31 background: -webkit-linear-gradient(#00593d, #007a54);
32 background-color: #007a54;
35 #top-navbar.navbar-default .navbar-nav>li>a {
38 #top-navbar.navbar-default .navbar-nav>li>a:hover {
41 #top-navbar.navbar-default .navbar-nav > .open > a,
42 #top-navbar.navbar-default .navbar-nav > .open > a:focus,
43 #top-navbar.navbar-default .navbar-nav > .open > a:hover {
44 background-color: #7a7a7a;
46 #top-navbar.navbar-default .navbar-nav>.dropdown>a .caret {
47 border-top-color: #fff;
48 border-bottom-color: #fff;
50 #top-navbar.navbar-default .navbar-nav>.dropdown>a:hover .caret {
51 border-top-color: #ddd;
52 border-bottom-color: #ddd;
55 /* Hatch / WebSockets / Etc. connectivity status indicator */
57 color: rgb(92, 184, 92); /* success */
61 color: #000; /* note: this is not comprehensive; changing Bootstrap's
62 default text color from #333 to #000 would require
66 /* --------------------------------------------------------------------------
67 * Structural modifications
70 #top-content-container {
71 /* allow the primary container to occupy most of the page,
72 * but leave some narrow gutters along the side, much
73 * narrower than the default Bootstrapp container gutters.
80 /* --------------------------------------------------------------------------
81 * Temporaray local CSS required to make angular-ui-bootstrap
82 * version 0.6.0 look right with Bootstrap CSS 3.0
84 .nav, .pagination, .carousel a { cursor: pointer; }
103 /* --------------------------------------------------------------------------
104 /* Form Validation CSS - http://docs.angularjs.org/guide/forms
105 * TODO: these colors are harsh and don't fit the EG color scheme
107 .form-validated input.ng-invalid.ng-dirty {
108 background-color: #FA787E;
110 .form-validated input.ng-valid.ng-dirty {
111 background-color: #78FA89;
113 .form-validated textarea.ng-invalid.ng-dirty {
114 background-color: #FA787E;
116 .form-validated textarea.ng-valid.ng-dirty {
117 background-color: #78FA89;
120 /* --------------------------------------------------------------------------
124 /* change default link color to provide adequate contrast */
131 /* no bootstrap way to directly disable a link. */
133 pointer-events: none;
135 color: #888 !important;
141 #splash-nav .panel-body div {
142 padding-bottom: 10px;
145 table.list tr.selected td { /* deprecated? */
147 background-color: #F5F5F5;
150 .pad-horiz {padding : 0px 10px 0px 10px; }
151 .pad-vert {padding : 20px 0px 10px 0px;}
152 .pad-left {padding-left: 10px;}
153 .pad-right {padding-right: 10px;}
154 .pad-right-min {padding-right: 5px;}
155 .pad-all-min {padding : 5px; }
156 .pad-all-min2 {padding : 2px; }
157 .pad-all {padding : 10px; }
159 #print-div { display: none; }
161 /* by default, give all tab panes some top padding */
162 .tab-pane { padding-top: 20px; }
164 .nav-pills-like-tabs {
165 border-bottom:1px solid #CCC;
169 /* sometimes you don't want buttons scrunched together -- add some margin */
173 /* button styling by Cory LaViska from
174 http://www.abeautifulsite.net/whipping-file-inputs-into-shape-with-bootstrap-3/
180 .btn-file input[type=file] {
188 filter: alpha(opacity=0);
222 /* barcode inputs are everywhere. Let's have a consistent style. */
223 .barcode { width: 16em !important; }
225 /* use strike-through to mark something that has been acknowledged,
226 e.g., a item alert */
227 .acknowledged { text-decoration: line-through; }
229 /* eg-help-popover directive doesn't need a border around its <button> */
230 .no-border.glyphicon-question-sign,
231 .no-border.glyphicon-info-sign {
235 /* bootstrap alerts are heavily padded. use this to reduce */
236 .alert-less-pad {padding: 5px;}
238 /* text displayed inside a <progressbar>, typically the max/progress values */
244 /* embedded UI iframe */
248 .eg-embed-frame iframe {
255 /* Useful for grid-like things that aren't proper grids.
256 * Mimics the grids color scheme. */
258 background-color: rgb(248, 248, 248);
261 /* Reduces the vertical space added by form-group's. Especially useful
262 * for tall modal windows.
264 .tight-vert-form .form-group {
269 /* ----------------------------------------------------------------------
271 * ---------------------------------------------------------------------- */
273 .eg-grid-primary-label {
279 /* odd/even row styling */
280 .eg-grid-content-body > div:nth-child(odd):not(.eg-grid-row-selected) {
281 background-color: rgb(248, 248, 248);
287 border: 1px solid #ccc;
290 .eg-grid-row:not(.eg-grid-header-row):not(.eg-grid-conf-row) {
291 /* TODO: remove, pretty sure this is no longer needed w/ nowrap */
295 .eg-grid-action-row {
297 /* margin should not have to be this large; something's up */
301 .eg-grid-header-row {
305 .eg-grid-header-row > .eg-grid-cell {
306 border-right: 1px solid #CCC;
309 /* vertically align header cell text by treating
310 each header cell as a vertical flex container */
312 flex-direction:column;
313 justify-content:flex-end;
317 /* avoid text flowing into adjacent cells */
319 text-overflow: ellipsis;
323 /* in config display, make cells more obvious */
324 .eg-grid-as-conf .eg-grid-row {
325 border: 1px solid #777;
327 .eg-grid-as-conf .eg-grid-cell {
328 border-right: 1px solid #777;
331 /* stock columns need fixed-width controls */
332 .eg-grid-cell-stock {
337 /* the conf header must be twice the stock flex */
338 .eg-grid-cell-conf-header {
343 .eg-grid-cell-stock-status {
348 /* the conf header must be 4x the stock width when status is present */
349 .eg-grid-cell-conf-header-status {
354 .eg-grid-row-selected {
356 background-color: rgb(201, 221, 225);
357 border-bottom: 1px solid #888;
360 /* Improve ::selection styling by only allowing selection on text
361 * content cells within the main body of the grid. Otherwise, the browser
362 * styles row background and text (all dark blue?) when shift-click or
363 * click-drag is used.
365 .eg-grid-content-body .eg-grid-row {
367 -moz-user-select: none;
368 -webkit-user-select: none;
370 .eg-grid-content-body .eg-grid-cell-content {
372 -moz-user-select: text;
373 -webkit-user-select: text;
375 .eg-grid-cell-content::-moz-selection {
377 background: rgb(201, 221, 225);
378 border-bottom: 1px solid #888;
381 /* patron bill row-highlighting */
382 /* background colors are !important because Bootstrap 4 table striping is greedy */
384 color: var(--bs-body);
385 background-color: rgba(var(--bs-red-rgb), 0.10) !important;
386 border-left: 2px solid var(--bs-red);
389 .overdue-row a:link, .overdue-row a:visited,
390 .overdue-row .eg-grid-cell-stock-status {
391 color: var(--bs-red-700);
392 border-color: var(--bs-red-700);
396 color: var(--bs-body);
397 background-color: rgba(var(--bs-orange-rgb), 0.25) !important;
398 border-left: 2px solid var(--bs-orange-600);
402 .longoverdue-row a:link, .longoverdue-row a:visited,
403 .longoverdue-row .eg-grid-cell-stock-status {
404 color: var(--bs-orange-700);
405 border-color: var(--bs-orange-700);
409 color: var(--bs-body);
410 background-color: rgba(var(--bs-red-rgb), 0.25) !important;
411 border-left: 2px solid var(--bs-red-600);
415 .lost-row a:link, .lost-row a:visited,
416 .lost-row .eg-grid-cell-stock-status {
417 color: var(--bs-red-700);
418 border-color: var(--bs-red-700);
421 .eg-grid-row-selected.overdue-row {
422 background-color: rgba(var(--bs-red-rgb), 0.15) !important;
423 border-left: 2px solid var(--bs-red);
425 .eg-grid-row-selected.longoverdue-row {
426 background-color: rgba(var(--bs-orange-rgb), 0.30) !important;
427 border-left: 2px solid var(--bs-orange);
429 .eg-grid-row-selected.lost-row {
430 background-color: rgba(var(--bs-red-rgb), 0.30) !important;
431 border-left: 2px solid var(--bs-red-600);
434 .eg-grid-cell-content::selection {
436 background: rgb(201, 221, 225);
437 border-bottom: 1px solid #888;
439 .eg-grid-cell-content a {
440 text-decoration: underline;
443 .eg-grid-conf-cell-entry {
449 .eg-grid-conf-cell-entry:not(:first-child) {
450 border-top:1px solid #ccc;
454 background-color: #dff0d8;
455 border-color: #d6e9c6;
458 .eg-grid-conf-row:first-child {
459 /* alignment fix; account for one missing border */
463 .eg-grid-column-move-handle:hover {
467 .eg-grid-column-move-handle-active,
468 .eg-grid-column-move-handle-active:active {
469 /* similar to label-primary, sans padding */
470 background-color: rgb(66, 139, 202);
475 /* similar to label-success, sans padding */
476 background-color: rgb(92, 184, 92);
480 .eg-grid-column-resize-handle {
483 .eg-grid-column-resize-handle:hover {
487 /* for these to be useful, they would have to be applied
488 * to the dragover targets. not yet done */
489 .eg-grid-column-resize-handle-west {
492 .eg-grid-column-resize-handle-east {
496 .eg-grid-column-last-mod {
497 background-color: #78FA89;
505 /* hack to make the header columns line up with the content columns
506 when the scroll bar is visible along the right side of the content
507 columns. TODO: if this varies enough by browser, we'll need to
508 calculate the width instead. */
510 .eg-grid-scroll > .eg-grid-header-row,
511 .eg-grid-scroll > .eg-grid-conf-row {
514 .eg-grid-scroll > .eg-grid-content-body {
519 .eg-grid-column-picker {
529 /* avoid visited "blue" links over black background */
535 /* ----------------------------------------------------------------------
537 * ---------------------------------------------------------------------- */
540 /* simple flex container for consistent-width cell-based structures */
541 .flex-container-striped > .flex-row:nth-child(odd) {
542 background-color: #f5f5f5;
544 .flex-container-bordered .flex-cell {
545 border-bottom: 1px solid #ddd;
550 .flex-row.padded div {
553 .flex-row.left-anchored > div {
558 padding: 4px; /* bootstrap default is much bigger */
561 min-height: 2.5em; /* don't let empty wells scrunch down */
562 margin-bottom: 5px; /* bootstrap default is 20px */
564 .flex-2 { /* meh, convience */
567 .flex-3 { /* meh, convience */
570 .flex-4 { /* meh, convience */
574 /* 768px equals Bootstrap "md" col resizing */
575 @media all and (max-width: 768px) {
577 flex-direction: column;
580 flex-direction: column;
582 #top-navbar.navbar-default .navbar-nav>li>ul>li>a {
585 #top-navbar.navbar-default .navbar-nav>li>ul>li>a:hover {
590 /* optional class to make 'lg' Bootstrap modals even wider */
591 @media (min-width: 768px) {
592 .eg-wide-modal .modal-lg {
597 @media all and (min-width: 768px) {
598 /* scrollable menus for full-size screens */
606 .eg-modal-progress progress {
611 .eg-grid-columns-modal-body {
616 .eg-grid-columns-modal-body .row {
617 padding: 2px 0px 2px 0px;
618 border-bottom: 1px solid #aaa;
621 .eg-grid-columns-modal-body .visible {
623 background-color: rgb(201, 221, 225);
624 border-bottom: 1px solid #888;
632 .eg-grid-tooltip .tooltip-inner {