web2019/sass/css/_shop.scss
sovanna e025f66f3e feat(place-order): Adds order hardware system
fix(place-order): Avoids colliding with page var

feat(place-order): Adds drag(copy)/drop system
Finally get this to work..
Still some minor issues while drag(copy)/drop
This commit allows to drag(copy)/drop inside the crate.
Allows to reorder the crate

feat(place-order): Adds basic summary of shopping cart
allows to delete item

feat(place-order): Adds form
also applies some cosmetcis css

feat(place-order): Applies custom css to drag/drop process

feat(place-order): Improves crate UI

feat(place-order): Adds missing assets

feat(place-order): Updates icon button add

feat(place-order): Changes cart layout to increase space
- moves up the control crate type (rack/desktop)
- increase card size a bit
- reduces some padding
- adding some space above card title
- re-organise react component to achieve this layout

feat(place-order): Updates icon remove in summary price
- uses icon instead of shitty html/css
- re-organises react component

fix(place-order): Reduces overlay gradient effect on the aside
also increases padding-bottom to avoid overlay above content

feat(place-order): Updates summary price layout

feat(place-order): Updates CrateMode using data
this avoid using hard text in component
and also, adding crate mode in data.js will be helpful
for other component too (e.g OrderSummary)

feat(place-order): Adds crate mode in OrderSummary
Allows to add fees to rack mode for exemple

feat(place-order): Allows to delete all items in the crate at once

feat(place-order): Updates typo
uses currentMode instead of crateMode

feat(place-order): Displays selection shadow on card when user hover delete button

feat(place-order): Allows to add item to the crate

feat(place-order): Corrects typo

feat(place-order): Corrects layout for browser support

feat(place-order): Adds first automatic rules
this allows to test how things could be done

feat(place-order): Allows to remove card when drop out of crate

feat(place-order): Adds icon reminder to rules

feat(place-order): Uses internal js production assets

feat(place-order): Uses production file

feat(place-order): Adds kali first as initialisation

feat(place-order): Simulates slots in crate (desktop/rack)

feat(place-order): Updates data that prepare for rules algo

feat(place-order): Adds some rules

feat(place-order): Removes rule 2kasli when no more kasli
it's a fix

feat(place-order): Corrects typo rules koster

fix(place-order): Removes PWA prompt

fix(place-order): Corrects size card inside crate

refactor(place-order): Reduces padding between items in listing

refactor(place-order): Uses USD currency

feat(place-order): Upgrades algo for rules

feat(place-order): Adds progress bar to kasli/kasli w/backplane

feat(place-order): Refactores a bit rule handler

feat(place-order): Adds all other rules

fix(place-order): Corrects typo

fix(place-order): Corrects count zotino/hd68 when IDC-BNC does not follow each others

feat(place-order): Backups dev script call just in case
For now, I can work with prod build even debugging production code

feat(place-order): Adds super tooltip to progress bar

feat(place-order): Adds tooltip for zotino/hd68 too

refactor(place-order): Updates typo rule for Koster

feat(place-order/WIP): Adds warning

feat(place-order): Adds Mirny
adds css changes from previous commit (i've forgotten)

feat(place-order): Updates build

feat(place-order): Set RJ45-DIO to occupy 2 EEMs

feat(place-order): Make clocker progress bar visible
It was hidden by horizontal scrollbar inside crate

feat(place-order): Remove red warning for 2 kaslis following each other

feat(place-order): Adds rule for cards that need a resource controller

feat(place-order): Corrects typo, adds point to end of message

feat(place-order): Changes idc-bnc info into a warning one

feat(place-order): Moves down warning box

feat(place-order): Updates some cosmetics css

fix(place-order): Removes IDC-BNC from Kasli connectors count

feat(place-order): Displays warning on hover warning icon

feat(place-order): Updates design hover item in listing

feat(place-order): Updates price estimate

feat(place-order): Displays warning in summary

feat(place-order): Allows to select item

feat(place-order): Allows to send request quote through client email

fix(place-order): Allows to click on remove inside summary list

feat(place-order): Adds btn remove for each cards inside crate

feat(place-order): Builds

fix(place-order): Updates icon warning

fix(place-order): Corrects recipient email address
LOL, forgot to remove mine haha

fix(place-order): Removes typo (kasli double)

fix(place-order): Removes num from email title subject

fix(place-order): Adds warning resources to mirny, zotino
Also updates message text

feat(place-order): Adds clocker counter

feat(place-order): Uses warning for id68 instead of reminder

feat(place-order): Adds crate type into the json

feat(place-order): Adds btn order hardware in homepage

refactor(place-order): Cleans a bit

fix(place-order): Improves a bit ux remove item from crate

fix(place-order): Improves a bit ux remove item from crate

feat(place-order): Builds

fix(place-order): Uses cursor pointer on remove button

fix(place-order): Corrects card need a resources card

chore(place-order): Removes call to ap.js

fix(place-order): Tries with fixed height on warning icon

fix(place-order): Adds fixed height to other element

fix(place-order): Tries to remove up container height to let flex to its job

fix(place-order): Removes .trim call which block multiline and augments row to 5

feat(place-order): Builds

fix(place-order): Adds min-height for the crate
2019-11-06 14:49:00 +08:00

451 lines
12 KiB
SCSS

#root-shop, #root-shop > div {
width: 100%;
height: calc(100vh - 72px);
overflow: hidden;
}
button {
outline: none!important;
}
#root-shop {
.layout {
display: flex;
> aside.aside {
flex: 2;
background-color: $color-primary;
overflow-y: scroll;
overflow-x: hidden;
position: relative;
/*padding-bottom: 4rem!important;*/
}
> aside.aside:after {
position: fixed;
bottom: 0;
height: 100px;
width: calc(2 / 6 * 100%);
content: "";
background: linear-gradient(
to top,
rgba(13, 53, 71, 1),
rgba(13, 53, 71, 0)
);
pointer-events: none;
}
> section.main {
flex: 4;
max-width: calc(4 / 6 * 100%);
overflow-y: scroll;
}
}
.productItem {
display: flex;
color: white;
padding: 3rem 2rem 1rem;
.content {
flex: 1;
display: flex;
flex-direction: column;
> *:not(:last-child) {
margin-bottom: 20px;
}
img {
height: 400px;
align-self: center;
border: 0;
}
h3 {
color: white;
}
button {
background-color: inherit;
align-self: center;
border: 0;
img {
width: 40px;
height: auto;
}
}
.price {
align-self: flex-start;
padding: .5rem 1rem;
border: 2px solid $btn-primary-2;
border-radius: 3px;
font-weight: 700;
}
ul {
font-size: .8rem;
margin: 0;
padding-left: 20px;
li::before {
color: white;
}
li {
padding: .3rem 0;
}
}
}
}
.backlog-container {
padding-bottom: 4rem;
}
.rule {
margin-bottom: .3rem;
font-size: .8rem;
img {
width: 20px;
}
}
.panel {
padding: 3rem;
overflow: hidden;
h2 {
padding-bottom: .5rem;
}
.control {
display: flex;
font-size: .8rem;
> p {
width: 50%;
padding-right: 30px;
}
.crate-mode {
text-align: right;
width: 50%;
a {
cursor: pointer;
margin-right: 1rem;
color: inherit;
text-decoration: none;
padding-bottom: 5px;
}
a.active {
font-weight: 700;
border-bottom: 3px solid $btn-primary-2;
}
}
}
.summary {
display: flex;
margin: 2rem 0;
> .summary-price {
flex: 1;
font-size: .8rem;
table {
max-width: 350px;
}
.summary-remove-all {
padding-bottom: 1rem;
.item-card-name {
color: $btn-primary-2;
}
}
.item-card-name {
font-weight: 700;
}
.price {
text-align: left;
}
.item-card-name > div,
.price > div {
display: inline;
}
.item-card-name,
.price {
> .alert-warning {
background-color: inherit;
height: inherit;
width: 20px;
padding-bottom: 3px;
}
}
thead, tbody, tfoot {
display: block;
/*max-height: 200px;
overflow-y: auto;*/
tr {
display: table;
table-layout: fixed;
width: 100%;
}
tr.hoverable {
cursor: pointer;
}
tr.hoverable:hover,
tr.hoverable.selected {
background-color: $color-hover;
}
td {
padding: 1px 5px;
}
}
tfoot {
color: $btn-primary-2;
font-size: 1.2rem;
td {
padding: 1.2rem 0;
}
}
button {
background-color: inherit;
border: 0;
margin-left: 20px;
img {
width: 20px;
height: auto;
}
}
}
> .summary-form {
flex: 1;
display: flex;
flex-direction: column;
align-items: flex-end;
form {
display: flex;
flex-direction: column;
width: 80%;
input:not([type="submit"]),
textarea {
border: 1px solid $color-secondary;
border-radius: 3px;
margin: 0 0 1rem;
padding: .4rem;
}
input[type="submit"] {
background-color: $btn-primary-2;
font-weight: 700;
color: white;
padding: .7rem;
border: 0;
border-radius: 3px;
}
}
}
}
.crate {
position: relative;
.crate-products {
box-shadow: 0 .5rem 1rem rgba(0,0,0,.15);
padding: .5rem .5rem 1rem;
.items-cart-list {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar;
min-height: 345px;
background-color: #ebebeb;
padding: 5px 5px 12px;
position: relative;
> div {
display: flex;
flex-direction: column;
max-width: 96px;
justify-content: flex-start;
align-content: center;
align-items: center;
margin-right: 8px;
flex-shrink: 0;
padding: 5px 3px;
}
h6 {
font-size: .6rem;
text-align: center;
white-space: nowrap;
}
img {
height: 250px;
border: 0;
flex-shrink: 0;
}
.nbr-connectors, .nbr-clocks {
width: 100%;
height: 6px;
margin-top: 5px;
border: 1px solid #0d3547;
> div {
height: 100%;
width: 0%;
}
}
.nbr-connectors > div {
background-color: $brand-color;
}
.nbr-clocks > div {
background-color: #d689bf;
}
.progress-container {
width: 100%;
text-align: center;
> .alert-warning {
background-color: inherit;
height: inherit;
width: 20px;
padding-bottom: 3px;
}
.k-popup-connectors,
.k-popup-warning {
position: absolute;
background-color: $color-primary;
color: white;
font-weight: 700;
font-size: .6rem;
padding: .8rem 1rem;
box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
text-align: left;
p {
margin-bottom: 0;
}
p + p {
padding-bottom: 8px;
}
}
.k-popup-connectors {
min-width: 200px;
bottom: 50px;
}
.k-popup-warning {
background-color: #c75e5e;
min-width: 350px;
.rule.warning {
display: flex;
font-size: .75rem;
img {
margin-right: 10px;
height: 100%;
}
}
}
}
.overlayRemove {
bottom: 0;
width: 100%;
height: 70px;
margin-top: -70px;
display: flex;
align-items: center;
justify-content: center;
background-color: $brand-color;
color: white;
flex-direction: column;
cursor: pointer;
img {
width: 20px;
height: 20px;
}
p {
font-size: .65rem;
margin: 0;
}
}
}
.hovered {
box-shadow: 0 0 5px rgba(255, 0, 0, .8);
}
}
.crate-info {
padding: 1rem 0 0;
}
}
}
.arrow_box {
position: relative;
background: #c75e5e;
border: 2px solid #c75e5e;
}
.arrow_box:after, .arrow_box:before {
top: 100%;
left: 5%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.arrow_box:after {
border-color: rgba(199, 94, 94, 0);
border-top-color: #c75e5e;
border-width: 10px;
margin-left: -10px;
}
.arrow_box:before {
border-color: rgba(199, 94, 94, 0);
border-top-color: #c75e5e;
border-width: 10px;
margin-left: -10px;
}
}