1 /* You can add global styles to this file, and also import other style files */
3 /* bootstrap CSS only -- JS bits come from ng-bootstrap */
4 @import '~bootstrap-css-only/css/bootstrap.min.css';
6 /* Locally served material icon fonts */
7 @import '~material-design-icons-iconfont/dist/material-design-icons.css';
9 /** BS default fonts are huge */
10 body, .form-control, .btn, .input-group-text {
11 /* This more or less matches the font size of the angularjs client.
12 * The default BS4 font of 1rem is comically large.
21 h3 {font-size: 1.15rem}
22 h4 {font-size: 1.05rem}
23 h5 {font-size: .95rem}
25 .small-text-1 {font-size: 85%}
27 /** Use a default link color that achieves WCAG AAA
28 * color contrast against a white background
34 /** Ang5 routes on clicks to href's with no values, so we can't have
35 * bare href's to force anchor styling. Use this for anchors w/ no href.
36 * TODO: should we style all of them? a:not([href]) ....
44 /** BS has flex utility classes, but none for specifying flex widths.
45 * BS class="col" is roughly equivelent to flex-1, but col-2 is not
46 * equivalent to flex-2, since col-2 really means 2/12 width. */
54 /** BS deprecated the well, but it's replacement is not quite the same.
55 * Define our own version and expand it to a full "table".
60 .well-table .well-label {
69 .well-table .well-label-no-flex {
77 .well-table .well-value {
81 background-color: #f5f5f5;
83 box-shadow: inset 0 1px 1px rgba(0,0,0,.05);
89 .btn.disabled, .btn:disabled {
93 /* copies color/border/elements from above sans position elements */
95 background-color: #f5f5f5;
97 box-shadow: inset 0 1px 1px rgba(0,0,0,.05);
100 /* usefuf for mat-icon buttons without any background or borders */
101 .material-icon-button {
102 /* Transparent background */
104 background-color: rgba(0, 0, 0, 0.0);
105 padding-left: .25rem;
106 padding-right: .25rem; /* default .5rem */
109 .mat-icon-in-button {
110 line-height: inherit;
113 .mat-icon-shrunk-in-button {
114 line-height: inherit;
118 .material-icons.small {
122 .input-group .mat-icon-in-button {
123 font-size: .88rem !important; /* useful for buttons that cuddle up with inputs */
127 /** default is 24px which is pretty chunky */
131 /* allow spans/labels to vertically orient with material icons */
132 .label-with-material-icon {
133 display: inline-flex;
134 vertical-align: middle;
138 /* dropdown menu link/button with no downward carrot icon */
139 .no-dropdown-caret::after {
143 /* Default .card padding is extreme */
144 .tight-card .card-body,
145 .tight-card .list-group-item {
148 .tight-card .card-header {
152 @media all and (min-width: 800px) {
153 /* scrollable typeahead menus for full-size screens */
154 ngb-typeahead-window {
161 /* Limit size of dropdown menus and allow for scrolling */
169 /* Items stick to the top of the page once scrolled past,
170 * leaving room above for the nav bar */
171 .sticky-top-with-nav {
174 /* Sticky menus display above sticky grid headers */
178 /* --------------------------------------------------------------------------
179 /* Form Validation CSS - https://angular.io/guide/form-validation
180 * TODO: these colors don't fit the EG color scheme
181 * Required valid fields are left-border styled in green-ish.
182 * Invalid fields are left-border styled in red-ish.
184 .form-validated .ng-valid[required]:not(eg-combobox):not(eg-date-select),
185 .form-validated .ng-valid.required, input[formcontrolname].ng-valid {
186 border-left: 5px solid #78FA89;
188 .form-validated .ng-invalid:not(form):not(eg-combobox):not(eg-date-select),
189 input[formcontrolname].ng-invalid {
190 border-left: 5px solid #FA787E;
194 border-left: 5px solid #FA787E;
198 * Brings font size down 5% to squeeze a bit more in.
200 * Fixes some bootstrap margin funkiness with checkboxes for
201 * better vertical alignment.
202 * Optional faint odd or even row striping.
216 .common-form.striped-even .row:nth-child(even),
217 .striped-rows-even .row:nth-child(even) {
219 background-color: rgba(0,0,0,.03);
220 border-top: 1px solid rgba(0,0,0,.125);
221 border-bottom: 1px solid rgba(0,0,0,.125);
224 .common-form.striped-odd .row:nth-child(odd),
225 .striped-rows-odd .row:nth-child(odd) {
227 background-color: rgba(0,0,0,.03);
228 border-top: 1px solid rgba(0,0,0,.125);
229 border-bottom: 1px solid rgba(0,0,0,.125);
233 * Only display the print container when printing
235 #eg-print-container {
239 head {display: none} /* just to be safe */
240 body div:not([id="eg-print-container"]) {display: none}
242 @page {size: auto} /* work around Bootrap 4's default
243 of A3; specifying any paper
244 size stops browsers from letting
245 the user choose portrait or
246 landscape. LP#1986725 */
247 #eg-print-container {display: block}
248 #eg-print-container div {display: block}
249 #eg-print-container pre {border: none}
253 * Make sure that comboboxes (including org select
254 * are visible, even in nested modals.
256 * See https://github.com/ng-bootstrap/ng-bootstrap/issues/2505
257 * for the upstream issue that necessitates this.
259 body>.dropdown-menu {z-index: 2100;}
261 /* Styles for eg-daterange-select that don't work
262 * in the component's CSS file.
264 .ngb-dp-day:not(.disabled) .daterange-day.focused {
265 background-color: #e6e6e6;
267 .ngb-dp-day:not(.disabled) .daterange-day.range, .ngb-dp-day:not(.disabled) .daterange-day:hover {
268 background-color: #129a78;
272 .ngb-dp-day:not(.disabled) .daterange-day.faded {
273 background-color: #c9efe4;
277 /* Washed out version of the Bootstrap 'info' background.
278 * Useful for blocking out sections of a page/form without it
279 * being so intensely colorful */
281 /*background-color: rgb(204, 229, 255, 0.3);*/
284 /*background-color: rgb(217, 237, 247, 0.5);*/
286 background-color: rgba(0,0,0,.03);
289 /* Allow for larger XL dialogs */
290 @media (min-width: 1300px) { .modal-xl { max-width: 1200px; } }
291 @media (min-width: 1600px) { .modal-xl { max-width: 1500px; } }
292 @media (min-width: 1700px) { .modal-xl { max-width: 1600px; } }
294 /* Contrast for dialog titles */
295 .modal-header .modal-title {
300 .modal-header .close,
301 .modal-header .close:hover {
307 .modal-header .close:not(:disabled):not(.disabled):focus,
308 .modal-header .close:not(:disabled):not(.disabled):hover {
313 * Make the acquisitions search form's navigation tabs match
314 * those of the staff interface. This is a global rule because
315 * various approaches to doing it local to the acq search component
318 * 1. A rule bound to the container of the acq search tabset
319 * would make the entire background be grey.
320 * 2. ":host ::ng-deep" for a local rule works, but depends on a
321 * mechanism that is deprecated.
322 * 4. ng-tabset provides no hooks for custom styles for the nav-tab
324 * 5. Turning off view encapsulation for the acq search component
325 * breaks a lot of styles.
327 #acq-search-page ngbNav .nav.nav-tabs {
328 background-color: rgb(247, 247, 247);
332 * Similar to the CSS above for the search form, set some
333 * CSS for the line item worksheet. Ordinarily would be
334 * preferable to just add the CSS to the worksheet component,
335 * but untl a well-supported alternative to ng-deep comes along...
337 #worksheet-outlet thead th { font-weight: bold; background-color: #ccc; text-align: center; border-bottom: 1px #000 solid; border-right: 1px #000 solid; padding: 0
339 #worksheet-outlet tbody td { text-align: left; vertical-align: top; border: 1px #999 inset; padding: 0 2px; }
341 /* style for negative monetary values */
342 .negative-money-amount {
355 * Created initially for styled grid rows where full 'bg-danger' CSS is
356 * intense and not especially readable, more so when rows are stacked.
357 * http://web-accessibility.carnegiemuseums.org/design/color/
359 .less-intense-alert {
360 background-color: #f9dede;