Farmbot-Web-App/frontend/css/farm_designer/farm_designer.scss

726 lines
13 KiB
SCSS
Raw Normal View History

2017-06-29 12:54:02 -06:00
.farm-designer {
2018-09-13 14:26:53 -06:00
position: relative;
2017-07-25 10:35:21 -06:00
height: 100vh;
2017-06-29 12:54:02 -06:00
overflow-y: hidden;
2019-04-11 21:17:18 -06:00
.garden-map-legend {
@media screen and (max-width: 450px) {
&.panel-open {
display: none;
}
&.short-panel {
top: 35rem;
}
&.panel-closed {
top: 15rem;
}
}
}
2017-06-29 12:54:02 -06:00
}
.farm-designer-map {
display: inline-block;
2018-09-13 14:26:53 -06:00
min-width: 100%;
2018-04-18 20:35:12 -06:00
padding: 16rem 2rem 2rem 2rem; // at zoom = 1.0: 160px 20px 20px 20px
2017-06-29 12:54:02 -06:00
height: 100%;
overflow: auto;
&.panel-open {
padding: 11rem 2rem 2rem 31.8rem; // at zoom = 1.0: 110px 20px 20px 318px
}
2019-04-11 21:17:18 -06:00
&.short-panel {
padding: 35rem 2rem 2rem 2rem; // at zoom = 1.0: 350px 20px 20px 20px
}
2019-11-21 15:32:05 -07:00
transition: 0.2s ease;
2020-02-20 19:38:50 -07:00
&::-webkit-scrollbar {
display: none;
}
2017-06-29 12:54:02 -06:00
}
.drop-area {
svg {
width: 100%;
height: 100%;
2017-09-08 06:01:26 -06:00
overflow: visible;
2017-09-15 19:34:50 -06:00
text {
pointer-events: none;
}
text::selection {
background: none;
2018-09-13 14:26:53 -06:00
}
2017-06-29 12:54:02 -06:00
}
}
2018-09-13 14:26:53 -06:00
.drop-area-svg {
2017-09-08 06:01:26 -06:00
width: 100%;
height: 100%;
overflow: visible;
}
2017-09-21 22:38:26 -06:00
.drop-area-background a {
cursor: default !important;
}
2017-06-29 12:54:02 -06:00
.crop-drag-info-image {
2017-12-19 17:21:35 -07:00
width: 100% !important;
2017-06-29 12:54:02 -06:00
}
.plant-catalog-image {
width: 100%;
background-position: center center !important;
background-size: 158% !important;
background-color: $translucent;
height: 12rem;
}
.crop-search-result-wrapper {
max-height: calc(100vh - 19rem);
overflow-y: auto;
overflow-x: hidden;
margin-right: -10px;
2019-06-14 16:59:11 -06:00
padding-bottom: 5rem;
2017-06-29 12:54:02 -06:00
.plant-catalog-tile {
position: relative;
cursor: pointer;
&:nth-child(4n),
&:nth-child(4n-1) {
margin-bottom: 2rem;
}
&:nth-child(4n-2),
&:nth-child(4n-3) {
margin-bottom: 2rem;
}
label {
2018-09-13 14:26:53 -06:00
position: absolute;
2017-06-29 12:54:02 -06:00
left: 15px;
2018-09-13 14:26:53 -06:00
bottom: -5px;
2017-06-29 12:54:02 -06:00
right: 15px;
margin-top: 0 !important;
padding: 0.4rem 0.6rem 0.2rem;
background: rgba(0, 0, 0, 0.5);
color: $white;
font-size: 1.2rem !important;
}
}
}
.crop-info-overlay {
2018-09-13 14:26:53 -06:00
display: flex;
2017-06-29 12:54:02 -06:00
position: relative;
bottom: 3rem;
z-index: 2;
background-color: $dark_gray;
font-style: italic;
color: $off_white;
justify-content: center;
/* align horizontal */
align-items: center;
/* align vertical */
height: 3rem;
width: 100%;
}
.thin-search-wrapper {
2019-03-05 11:59:22 -07:00
width: 100%;
2017-06-29 12:54:02 -06:00
.text-input-wrapper {
position: relative;
2018-09-13 14:26:53 -06:00
margin: 1rem;
2019-04-11 21:17:18 -06:00
border-bottom: 1px solid $dark_gray;
2017-06-29 12:54:02 -06:00
&:before,
&:after {
content: "";
position: absolute;
2018-09-13 14:26:53 -06:00
bottom: 0;
2019-04-11 21:17:18 -06:00
background: $dark_gray;
2017-06-29 12:54:02 -06:00
width: 1px;
2019-04-11 21:17:18 -06:00
height: 3px;
2017-06-29 12:54:02 -06:00
}
&:before {
left: 0;
}
&:after {
right: 0;
}
2019-04-11 21:17:18 -06:00
i {
font-size: 1.5rem;
}
2017-06-29 12:54:02 -06:00
.fa-search {
position: absolute;
top: 0.8rem;
left: 1rem;
2019-06-21 15:43:46 -06:00
cursor: default !important;
2017-06-29 12:54:02 -06:00
}
}
input {
background: transparent;
box-shadow: none !important;
padding-left: 3rem !important;
font-size: 1.4rem !important;
&:active,
&:focus {
background: transparent !important;
}
&::-webkit-input-placeholder {
2018-09-13 14:26:53 -06:00
color: $placeholder_gray;
2017-06-29 12:54:02 -06:00
}
}
}
.panel-content {
2017-06-29 12:54:02 -06:00
.select-results-container {
top: 4rem;
margin-bottom: 12rem;
max-height: none;
}
.select-result {
padding: 0;
margin-bottom: 1rem;
background: transparent;
border-bottom: none;
transition: all 0.4s ease;
&:last-child {
margin-bottom: 14rem;
}
&:hover {
background: rgba(0, 0, 0, 0.1);
transition: all 0.2s ease;
}
}
2019-10-25 09:33:33 -06:00
%panel-item-base {
text-align: right;
font-size: 1rem;
padding-right: 1rem;
line-height: 3rem;
float: right;
}
2019-10-25 09:33:33 -06:00
.plant-search-item,
.group-search-item {
2017-06-29 12:54:02 -06:00
cursor: pointer;
2017-09-06 15:07:13 -06:00
padding: 0.5rem 1rem;
2017-06-29 12:54:02 -06:00
img {
margin-right: 0.5rem;
height: 3rem;
width: 3rem;
}
&.quick-del {
&:hover {
background: lighten($red, 10%) !important;
&:after {
content: "x";
margin-left: 1rem;
color: $darkest_red;
font-weight: bold;
}
}
2017-06-29 12:54:02 -06:00
}
}
.plant-search-item-age {
@extend %panel-item-base;
}
.group-item-count {
@extend %panel-item-base;
padding-top: 0.6rem;
line-height: 1rem;
}
2017-06-29 12:54:02 -06:00
.plant-search-item-name {
2018-09-13 14:26:53 -06:00
display: inline-block;
2017-06-29 12:54:02 -06:00
vertical-align: middle;
white-space: nowrap;
width: 8em;
overflow: hidden;
text-overflow: ellipsis;
margin-left: 1rem;
}
.weed-search-item,
2019-08-23 15:18:28 -06:00
.point-search-item {
cursor: pointer;
padding: 0.5rem 1rem;
.saucer {
display: inline-block;
height: 3rem;
width: 3rem;
2019-08-23 15:18:28 -06:00
vertical-align: middle;
margin-right: 0.25rem;
2019-08-23 15:18:28 -06:00
}
}
.weed-search-item-info,
2019-08-23 15:18:28 -06:00
.point-search-item-info {
text-align: right;
font-size: 1rem;
padding-right: 1rem;
line-height: 3rem;
2019-08-23 15:18:28 -06:00
float: right;
}
.weed-search-item-name,
2019-08-23 15:18:28 -06:00
.point-search-item-name {
display: inline-block;
vertical-align: middle;
white-space: nowrap;
2019-08-26 12:20:46 -06:00
width: 40%;
2019-08-23 15:18:28 -06:00
overflow: hidden;
text-overflow: ellipsis;
margin-left: 1.25rem;
}
.tool-search-item,
.tool-slot-search-item {
line-height: 4rem;
cursor: pointer;
.row {
margin-left: 0;
margin-right: 0;
}
.tool-slot-search-item-name {
margin-left: -1rem;
}
p {
font-size: 1rem;
line-height: 4rem;
&.tool-status,
&.tool-slot-position {
float: right;
}
}
svg {
vertical-align: middle;
}
.tool-slot-position-info {
padding: 0;
padding-right: 1.75rem;
}
2019-08-23 15:18:28 -06:00
}
2017-06-29 12:54:02 -06:00
}
2018-11-28 15:29:46 -07:00
.thin-search {
.spinner-container {
position: absolute;
top: 0;
right: 0;
width: 2rem;
height: 2rem;
padding: 0;
margin-right: 1rem;
}
}
2017-06-29 12:54:02 -06:00
.hovered-plant-copy {
cursor: pointer;
transform-origin: center;
2018-01-29 19:28:51 -07:00
transform-box: fill-box;
2017-06-29 12:54:02 -06:00
}
.plant-link-wrapper {
&.is-chosen-true.is-editing-true {
cursor: -webkit-grab !important;
&:active {
cursor: -webkit-grabbing !important;
}
}
}
.plant-indicator.is-chosen-true {
2019-08-27 14:54:43 -06:00
&.animate {
animation: plant-selection-pop 0.2s 1 cubic-bezier(0, 0, 0, 0.9), pulse-and-rotate 4s 0.2s infinite linear;
}
transform-origin: center;
2018-01-29 19:28:51 -07:00
transform-box: fill-box;
}
2019-11-07 12:17:50 -07:00
.map-point {
cursor: pointer !important;
2019-11-07 12:17:50 -07:00
stroke-width: 2;
stroke-opacity: 0.3;
fill-opacity: 0.1;
}
.map-weed {
cursor: pointer !important;
}
.weed-image,
.plant-image {
transform-origin: bottom;
2018-01-29 19:28:51 -07:00
transform-box: fill-box;
2017-10-04 23:02:38 -06:00
&.animate {
animation: plant-growth 0.25s cubic-bezier(0, 0, 0, 1.4);
}
2017-06-29 12:54:02 -06:00
}
2018-04-11 22:44:18 -06:00
.bug {
z-index: 10;
transform-origin: bottom;
transform-box: fill-box;
&.animate {
animation: plant-growth 0.25s cubic-bezier(0, 0, 0, 1.4);
}
&.dead {
z-index: 5;
pointer-events: none;
}
}
2017-09-12 07:48:09 -06:00
.soil-cloud {
animation: soil-poof 0.5s cubic-bezier(0, 0, 0, 1);
transform-origin: center;
2018-01-29 19:28:51 -07:00
transform-box: fill-box;
2017-09-12 07:48:09 -06:00
}
2017-09-05 19:40:09 -06:00
.spread {
transform-origin: center;
2018-01-29 19:28:51 -07:00
transform-box: fill-box;
2017-09-14 02:02:08 -06:00
pointer-events: none;
2017-10-04 23:02:38 -06:00
&.animate {
animation: spread-pop 0.2s cubic-bezier(0, 0, 0, 1);
}
2017-06-29 12:54:02 -06:00
}
2020-02-07 16:05:16 -07:00
.zones-layer {
[id*="zones-1D-"] {
stroke: $black;
stroke-width: 5;
}
[id*="zones-"] {
opacity: 0.1;
&.current {
opacity: 0.25;
fill: $white;
stroke: $white;
}
&:hover {
opacity: 0.15;
}
2020-02-07 16:05:16 -07:00
}
}
2018-04-28 00:54:52 -06:00
.virtual-bot-trail,
2018-01-23 16:39:38 -07:00
.virtual-peripherals {
pointer-events: none;
}
2017-11-01 02:07:02 -06:00
.water-spray {
&.animate {
animation-duration: 3s;
animation-iteration-count: infinite;
animation-name: water-spray-animation;
transform-origin: center;
2018-01-29 19:28:51 -07:00
transform-box: fill-box;
2017-11-01 02:07:02 -06:00
opacity: 0;
}
}
.delay-1 {
animation-delay: 1s;
}
.delay-2 {
animation-delay: 2s;
}
@keyframes water-spray-animation {
2018-09-13 14:26:53 -06:00
0% {
transform: scale(0.7) rotate(0deg);
opacity: 0;
}
50% {
opacity: 1;
}
100% {
transform: scale(1.1) rotate(10deg);
opacity: 0;
}
2017-11-01 02:07:02 -06:00
}
.vacuum {
&.animate {
animation-duration: 3s;
animation-iteration-count: infinite;
animation-name: vacuum-animation;
transform-origin: center;
2018-01-29 19:28:51 -07:00
transform-box: fill-box;
2017-11-01 02:07:02 -06:00
opacity: 0;
}
}
@keyframes vacuum-animation {
2018-09-13 14:26:53 -06:00
0% {
transform: scale(1);
opacity: 0;
}
100% {
transform: scale(0);
opacity: 1;
}
2017-11-01 02:07:02 -06:00
}
2018-09-13 16:00:14 -06:00
.saved-garden-indicator {
position: fixed;
top: 80px;
left: 50%;
z-index: 3;
padding: 2rem;
2018-10-25 18:02:54 -06:00
background: rgba(255, 255, 255, .75);
2018-09-13 16:00:14 -06:00
border-radius: 5px;
box-shadow: 0px 1px 4px #555;
text-align: center;
label {
display: block;
}
button {
margin: 0.5rem;
float: unset;
}
}
2018-11-01 11:56:41 -06:00
.garden-snapshot {
button {
&.pseudo-disabled {
cursor: not-allowed;
}
}
}
2018-09-13 16:00:14 -06:00
.saved-garden-list {
2019-11-20 12:48:14 -07:00
.saved-garden-search-item {
2018-09-13 16:00:14 -06:00
padding: 0.25rem;
button {
margin-bottom: 1rem;
}
.saved-garden-info div {
2019-11-06 10:01:05 -07:00
height: 3rem;
line-height: 3rem;
2018-09-13 16:00:14 -06:00
cursor: pointer;
padding-right: 0;
2019-11-20 12:48:14 -07:00
span {
2019-11-06 10:01:05 -07:00
margin: 0;
pointer-events: none;
margin-left: 1rem;
2018-11-01 11:56:41 -06:00
}
p {
2019-11-06 10:01:05 -07:00
float: right;
line-height: 3rem;
text-align: center;
margin-right: 1rem;
2018-11-01 11:56:41 -06:00
}
2018-09-13 16:00:14 -06:00
}
}
}
2017-06-29 12:54:02 -06:00
.garden-map-legend {
position: fixed;
2017-08-16 10:30:46 -06:00
top: 110px;
right: -120px;
2018-04-20 20:17:50 -06:00
z-index: 3;
2017-06-29 12:54:02 -06:00
transition: all 0.4s ease;
box-shadow: 0px 1px 4px #555;
2017-08-24 13:06:42 -06:00
max-width: 120px;
2017-06-29 12:54:02 -06:00
&.active {
2017-08-16 10:30:46 -06:00
transform: translateX(-140px);
2017-06-29 12:54:02 -06:00
}
.content {
display: flex;
flex-direction: column;
flex-wrap: wrap;
2018-10-25 18:02:54 -06:00
background: rgba(255, 255, 255, .75);
2018-09-13 14:26:53 -06:00
padding: 10px;
border-radius: 5px;
2017-06-29 12:54:02 -06:00
>*+* {
margin-top: 1rem;
}
label {
display: flex;
flex-direction: column;
align-items: center;
}
2019-03-05 11:59:22 -07:00
}
2017-06-29 12:54:02 -06:00
.toggle-buttons {
display: flex;
flex-direction: column;
align-items: center;
2018-02-20 17:09:40 -07:00
fieldset {
width: 100%;
}
2018-02-15 03:51:38 -07:00
label {
margin-bottom: 0;
}
button {
2018-02-20 17:09:40 -07:00
float: none;
2018-02-15 03:51:38 -07:00
margin-bottom: 0.5rem;
2018-02-20 17:09:40 -07:00
margin-left: 2rem;
2018-02-15 03:51:38 -07:00
}
}
.caret-menu-button {
display: inline;
2018-05-15 17:05:35 -06:00
margin-left: 0.25rem;
2018-02-15 03:51:38 -07:00
font-weight: bold;
font-size: medium;
cursor: pointer;
2017-06-29 12:54:02 -06:00
}
2018-04-11 22:44:18 -06:00
.more-bugs,
.move-to-mode {
button {
margin-right: 1rem;
}
2018-04-20 19:04:33 -06:00
p {
text-align: center;
padding-top: 2rem;
}
}
2017-06-29 12:54:02 -06:00
.menu-pullout {
position: absolute;
left: -4.5rem;
2018-09-13 14:26:53 -06:00
color: $white;
cursor: pointer;
2017-06-29 12:54:02 -06:00
transition: all 0.4s ease;
text-shadow: 0px 1px 1px #555;
&.active {
left: -4.5rem;
transform: rotate(180deg);
text-shadow: 1px 0px 0px #555;
&:hover {
left: -4.5rem;
span {
opacity: 0;
}
}
}
&:hover {
left: -5rem;
span {
opacity: 1;
}
}
span {
2018-09-13 14:26:53 -06:00
position: absolute;
top: 0.6rem;
left: -4.6rem;
2017-06-29 12:54:02 -06:00
transition-delay: 0.6s;
transition: all 0.4s ease;
opacity: 0;
}
}
2019-04-16 11:00:00 -06:00
.map-rotate-button {
text-align: center;
.fb-button {
float: none;
}
}
2017-08-24 13:06:42 -06:00
}
2018-02-15 03:51:38 -07:00
2019-06-14 16:59:11 -06:00
.farmbot-origin {
margin: auto;
width: 120px;
.quadrants {
display: flex;
flex-wrap: wrap;
border: 1px solid $dark_gray;
}
.quadrant {
display: inline-block;
position: relative;
background-image: linear-gradient(rgba(0, 0, 0, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.05) 1px, transparent 1px), linear-gradient(rgba(0, 0, 0, 0.05) 2px, transparent 2px), linear-gradient(90deg, rgba(0, 0, 0, 0.05) 2px, transparent 2px);
background-size: 4px 4px, 4px 4px, 100px 100px, 100px 100px;
cursor: pointer;
border: 1px solid $dark_gray;
width: 50%;
height: 24px;
transition: all 0.2s ease-in-out;
&:hover {
background-color: rgba(0, 0, 0, 0.1);
}
&.selected {
box-shadow: inset 0 0 8px $dark_gray;
} // Quadrant 1
&:nth-child(2) {
&:before {
top: 0;
right: 0;
}
&:after {
top: 8px;
right: 16px;
}
} // Quadrant 2
&:nth-child(1) {
&:before {
top: 0;
left: 0;
}
&:after {
top: 8px;
left: 16px;
}
} // Quadrant 3
&:nth-child(3) {
&:before {
left: 0;
bottom: 0;
}
&:after {
left: 16px;
bottom: 8px;
}
} // Quadrant 4
&:nth-child(4) {
&:before {
bottom: 0;
right: 0;
}
&:after {
bottom: 8px;
right: 16px;
}
}
&:before {
content: "";
position: absolute;
background: $black;
width: 8px;
height: 8px;
border-radius: 50%;
}
&:after {
content: "";
position: absolute;
background: $green;
width: 8px;
height: 8px;
border-radius: 50%;
}
}
}
2018-09-20 13:59:13 -06:00
.map-points-submenu {
display: flex;
flex-direction: column;
align-items: center;
fieldset {
display: flex;
margin-top: 1rem;
flex-direction: column;
align-items: center;
}
label {
margin-top: 0.75rem;
}
button {
margin: auto;
}
}
2018-02-15 03:51:38 -07:00
.image-filter-menu {
2018-02-20 17:09:40 -07:00
width: 32rem;
2018-02-15 03:51:38 -07:00
th {
text-align: center;
}
2018-09-28 13:22:28 -06:00
.bp3-slider {
2018-02-20 17:09:40 -07:00
margin-left: 3rem;
margin-top: 1rem;
width: 25rem;
}
2018-09-28 13:22:28 -06:00
.bp3-slider-label {
2018-02-20 17:09:40 -07:00
white-space: nowrap;
text-align: center;
}
2018-02-20 17:21:15 -07:00
input {
background: $white;
}
2018-02-15 03:51:38 -07:00
}