grocy/public/css/grocy.css
4lloyd 76cbf796b6
[WIP] Simplified overviews on mobile (#1115)
* Simplified stock overview on mobile.

* Stock table horizontally scrollable

* Use the new mobile views for all pages (except the shopping list page, use the existing special handling there for now)
And add a clear filter button to all pages

Co-authored-by: Bernd Bestel <bernd@berrnd.de>
2020-11-07 14:53:45 +01:00

593 lines
9.8 KiB
CSS
Executable File

/* Main style customizations */
body {
font-family: 'Noto Sans', sans-serif;
}
.content-text {
font-size: 0.85rem;
}
.responsive-button {
white-space: normal;
}
.timeago-contextual {
font-style: italic;
font-size: 0.8em;
}
a.discrete-link {
color: inherit !important;
transition: all 0.3s !important;
}
a.discrete-link:hover {
color: #337ab7 !important;
text-decoration: none !important;
}
a.discrete-link:focus {
color: #ab2230 !important;
text-decoration: none !important;
}
.grocy-card .card-header {
background-color: inherit;
}
.grocy-card .card-title {
color: #495157;
}
.grocy-card .card-icons a {
font-size: 18px;
color: #495157;
padding: 2px 4px;
text-decoration: none;
text-align: center;
}
.grocy-card .card-icons i {
width: 18px;
}
.content-text .invalid-feedback {
font-size: 95%;
}
.fullscreen {
z-index: 8888;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: auto;
background-color: #ffffff;
width: 100%;
}
/* Fixes smooth scrolling on iOS */
#sidebarResponsive,
.fullscreen {
-webkit-overflow-scrolling: touch;
}
.fullscreen-card .card-header-fullscreen {
z-index: 9999;
width: 100%;
position: fixed;
top: 0;
left: 0;
}
body.fullscreen-card {
overflow: hidden;
}
.fullscreen-card .hide-on-fullscreen-card {
display: none;
}
.fullscreen.card .card-img-top {
width: 50%;
margin: 0 auto;
}
.form-check-input.is-valid ~ .form-check-label,
.was-validated .form-check-input:valid ~ .form-check-label {
color: inherit;
}
.text-strike-through {
text-decoration: line-through;
}
button.disabled {
pointer-events: none;
}
.embedded .hide-when-embedded {
display: none;
}
body.embedded.fixed-nav {
padding-top: 0;
}
.embedded .content-wrapper {
margin-left: 0;
}
iframe {
border: 0;
}
/* Hide the default up/down arrow buttons for number inputs because we use our own buttons in numberpicker */
input[type='number'] {
-moz-appearance: textfield;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
/* Navigation style customizations */
#mainNav {
line-height: 1;
background-color: #e5e5e5 !important;
border-bottom: 2px solid !important;
border-color: #d6d6d6 !important;
padding-bottom: 0.3rem;
}
#mainNav .dropdown-menu {
line-height: 1.5;
}
.navbar-sidenav {
overflow-x: hidden;
overflow-y: overlay;
border-top: 2px solid !important;
}
.navbar-sidenav,
.sidenav-second-level {
background-color: #e5e5e5 !important;
border-right: 2px solid !important;
border-color: #d6d6d6 !important;
}
.navbar-nav .dropdown-menu {
background-color: #e5e5e5 !important;
border: 0;
border-radius: 0;
}
.navbar-nav .dropdown-divider,
.nav-item-divider {
border-top: 2px solid !important;
border-color: #d6d6d6 !important;
}
.sidenav-toggler {
background-color: #d6d6d6 !important;
border-right: 2px solid !important;
border-color: #d6d6d6 !important;
}
.navbar-sidenav > li,
.sidenav-second-level > li {
transition: all 0.3s !important;
}
.navbar-sidenav > li:hover,
.sidenav-second-level > li:hover,
.navbar-nav .dropdown-item:hover {
box-shadow: inset 5px 0 0 #337ab7 !important;
background-color: #d6d6d6 !important;
}
.navbar-sidenav > li > a:focus,
.sidenav-second-level > li > a:focus,
.navbar-nav .dropdown-item:focus {
box-shadow: inset 5px 0 0 #ab2230 !important;
background-color: #d6d6d6 !important;
}
.active-page {
box-shadow: inset 5px 0 0 #ab2230 !important;
background-color: #d6d6d6 !important;
}
.navbar-brand {
margin-right: 0;
}
.cursor-link {
cursor: pointer;
}
.cursor-busy {
cursor: wait;
}
.expandable-text .collapse, .module .collapsing {
height: 2.4rem;
}
.expandable-text .collapse {
position: relative;
display: block;
overflow: hidden;
}
.expandable-text .collapse:before {
position: absolute;
right: 0;
bottom: 0;
}
.expandable-text .collapse.show {
height: auto;
}
.expandable-text .collapse.show:before {
display: none;
}
.table-inline-menu.dropdown-menu {
padding-left: 12px;
padding-right: 12px;
width: 96vw; /* Set width of popup menu to screen size */
}
/* Set width of popup menu to fixed value on larger devices */
@media (min-width: 400px) {
.table-inline-menu.dropdown-menu {
width: 400px;
}
}
.table-inline-menu .dropdown-item {
width: auto;
text-indent: -24px;
}
.table-inline-menu .dropdown-item .dropdown-item-icon {
min-width: 24px;
padding-left:20px;
text-align: center;
display: inline;
}
.table-inline-menu .dropdown-item .dropdown-item-text {
display: inline;
padding: 0;
word-wrap: break-word;
white-space: pre-wrap;
color: inherit;
}
/* Barcodescanner Quagga */
#barcodescanner-container {
max-height: 90vw;
}
#livestream-container {
max-height: 100%;
}
#barcodescanner-livestream video {
width: 100%;
}
#barcodescanner-livestream canvas {
width: 100%;
}
/* Third party component customizations - Bootstrap */
/* Hide the form validation feedback icons introduced in Bootstrap 4.2.0 - a colored border is enough */
.form-control.is-invalid,
.was-validated .form-control:invalid,
.form-control.is-valid,
.was-validated .form-control:valid {
background-size: 0 0;
}
/* There is a little too much padding on form inputs */
.form-control {
padding-right: 0.75rem !important;
}
.btn-group-xs > .btn, .btn-xs {
padding : 0.25rem 0.4rem;
font-size : 0.875rem;
line-height : 0.5;
border-radius: 0.2rem;
}
.text-larger {
font-size: 125%;
}
.input-group > .form-control:focus {
z-index: inherit;
}
.list-group {
flex-shrink: 0;
}
/* Always show modals over everything else */
.modal {
z-index: 99998;
}
/* Third party component customizations - DataTables */
.dataTable td {
vertical-align: middle !important;
}
.table td.fit-content,
.table th.fit-content {
white-space: nowrap;
width: 1%;
}
.dataTables_filter,
.dataTables_info {
display: none;
}
.grab-cursor {
cursor: grab;
}
.grab-cursor:active {
cursor: grabbing;
}
/* Third party component customizations - toastr */
#toast-container > div {
opacity: 1;
filter: alpha(opacity=100);
}
.toast-success {
background-color: #28a745;
}
.toast-error {
background-color: #dc3545;
}
#toast-container > div {
box-shadow: none;
}
/* Third party component customizations - Font Awesome */
.fa-custom-sigma-sign:before {
content: "\03a3";
font-family: sans-serif;
}
/* Third party component customizations - SB Admin 2 */
#mainNav .navbar-collapse .navbar-nav > .nav-item.dropdown > .nav-link:after,
#mainNav .navbar-collapse .navbar-sidenav .nav-link-collapse:after {
font-family: 'Font Awesome 5 Free';
font-weight: 900;
}
@media (max-width:992px) {
#mainNav .navbar-collapse .navbar-sidenav > .nav-item > .nav-link {
padding: 0.8em;
}
}
@media (min-width:992px) {
#mainNav .navbar-collapse .navbar-sidenav {
margin-top: 46px;
}
#mainNav.fixed-top .navbar-sidenav {
height: calc(100vh - 94px)
}
#mainNav.fixed-top .sidenav-toggler {
margin-top:calc(100vh - 48px);
}
.content-wrapper {
margin-left: 245px;
}
}
@media (max-width: 767.98px) {
.width-xs-sm-100 {
width: 100%;
}
}
body.fixed-nav {
padding-top: 54px;
}
html {
min-height: inherit;
}
.dropdown-toggle::after {
margin-left: -0.15em !important;
}
#mainNav .navbar-collapse .navbar-sidenav > .nav-item > .nav-link {
padding-right: 1.25em !important;
}
#sidebarResponsive .nav-item-sidebar {
line-height: 1;
}
/* Third party component customizations - Tempus Dominus */
.bootstrap-datetimepicker-widget.dropdown-menu {
width: auto !important;
}
/* Third party component customizations - Bootstrap Combobox */
.typeahead .active {
background-color: #e5e5e5;
}
/* Third party component customizations - Popper.js */
.tooltip {
pointer-events: none;
z-index: 99999 !important;
}
/* Third party component customizations - QuaggaJS */
canvas.drawing,
canvas.drawingBuffer {
position: absolute;
left: 0;
top: 0;
}
.warning-message,
.error-message,
.normal-message {
padding: 12px;
font-weight: bold;
width: fit-content;
border-top: 6px solid;
}
.warning-message {
background-color: #fffaeb;
color: #7c5e10;
border-top-color: #e9b949;
}
.error-message {
background-color: #ffeeee;
color: #780a0a;
border-top-color: #ba2525;
}
.normal-message {
background-color: #e0e8f9;
color: #2d3a8c;
border-top-color: #4c63b6;
}
.status-filter-message,
.user-filter-message {
display: inline-block;
cursor: pointer;
}
.related-links .btn {
font-size: 14px;
}
.title {
display: inline-block;
margin-bottom: 0 !important;
}
.title-related-links {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
}
.form-control-lg .custom-control-label {
padding-top: 7px;
padding-left: 10px;
}
.custom-control-label {
padding-top: 13px;
padding-left: 10px;
}
.custom-control-label::before,
.custom-control-label::after {
top: 0.8rem;
width: 1.25rem;
height: 1.25rem;
}
.recipe-servings-input {
width: 125px;
}
.fc-event{
cursor: pointer;
}
.grocy-tabs .nav-link {
color: #767676;
text-transform: uppercase;
}
.grocy-tabs .nav-link {
border: 2px solid transparent;
transition: border-bottom-color ease-in 0.1s;
}
.grocy-tabs .nav-link.active {
border: 2px solid transparent;
border-bottom-color: #0b024c !important;
}
.grocy-tabs .nav-link:hover {
border: 2px solid transparent;
border-bottom-color: #0b024c7d;
}
.grocy-tabs .nav-item {
margin-bottom: -2px;
}
.grocy-tabs.card-header-tabs {
margin-bottom: -.65rem;
}
.grocy-tabs.tab-content > .active {
display: flex;
flex-direction: column;
}
.recipe-card img {
height: 14rem;
width: 100%;
object-fit: cover;
}
@media print {
.grocy-tabs.print.tab-content > .tab-pane {
display: flex !important;
flex-direction: column !important;
opacity: 1 !important;
visibility: visible !important;
overflow: visible !important;
width: auto !important;
height: auto !important;
}
.grocy-tabs.break > .tab-pane {
page-break-after: always;
}
.print-view {
width: 100%;
max-width: 100%;
flex-basis: 100%;
}
}
.not-allowed {
pointer-events: none;
opacity: 0.5;
}