DurstRechner/assets/style/stylesheet.css

117 lines
No EOL
3 KiB
CSS

/**
* Here are some variables that are used in the whole application.
*/
:root {
--currency-symbol: '€';
--separator: '|';
--price-color-light-mode: var(--bs-primary-rgb);
--price-color-dark-mode: var(--bs-info-rgb);
}
/**
* Let the user never select the text in the product list, cart items, alert and navbar brand.
* This is used to prevent the user from selecting the text in the product list and cart items. (Usability)
*/
.cart-items, .product-list, .alert, .navbar-brand, .settings-product-list {
user-select: none;
-webkit-user-select: none;
-webkit-user-drag: none;
}
/**
* Make product boxes, cart items and settings product list clickable
* This is generally used for product list and cart items
*/
.product-box, .cart-items, .settings-product-list, .navbar-brand {
cursor: pointer;
}
/**
* This is a dummy element, that can be copied via JavaScript
* and will be filled dynamically with some data.
*/
[data-template] {
display: none !important;
}
/**
* This is the cart with its line items
*/
.cart {
.line-item-details {
.amount {
display: inline-block;
min-width: 1.5em;
}
.price {
display: inline-block;
min-width: 3em;
}
.name {
margin-left: 1em;
font-weight: bold;
}
}
.product-deposit {
cursor: default;
}
}
/**
* Product list contains all available products,
* which are displayed in a grid layout. The grid scaling is done by bootstrap.
*/
.product-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 4fr));
gap: .4em;
padding-bottom: 1em;
@media screen and (max-width: 500px) {
grid-template-columns: repeat(auto-fill, minmax(150px, 4fr));
}
/**
* Product box for product list
* @param {string} data-attr - product attribute
*/
.product-box {
/* Product box should be clickable */
cursor: pointer;
/* Images shouldn't drag in user interface */
img {
-webkit-user-drag: none;
-khtml-user-drag: none;
user-drag: none;
}
/* Break the words on the card body */
.card-body span {
word-wrap: break-word;
}
/* Slightly bold font for the price attribute */
.product-box small[data-attr=price] {
font-weight: 400;
}
}
}
/* When using dark mode, use info color for price */
[data-bs-theme="dark"] {
.product-box small[data-attr=price] {
color: rgba(var(--price-color-dark-mode));
}
}
/* When using light mode, use primary color for price */
[data-bs-theme="light"] {
.product-box small[data-attr=price] {
color: rgba(var(--price-color-light-mode));
}
}
/* Insert currency symbol after each value */
.currency-value::after {
content: ' ' var(--currency-symbol);
}
/* Insert separator */
.separator::after {
content: ' ' var(--separator) ' ';
}
/* Insert times x symbol after an amount */
.quantity-value::after {
content: 'x ';
}