decred.org/dcrdex@v1.0.3/client/webserver/site/src/css/market.scss (about)

     1  @import "mixins";
     2  
     3  div[data-handler=markets] {
     4    .ordertable-wrap {
     5      width: 100%;
     6  
     7      &:first-child {
     8        @include border-bottom;
     9      }
    10  
    11      &:last-child {
    12        @include border-top;
    13      }
    14  
    15      tbody#sellRows {
    16        @include border-top;
    17      }
    18    }
    19  
    20    .orderbook {
    21      min-width: 225px;
    22  
    23      & > div:first-child { // buy orders
    24        order: 3;
    25      }
    26  
    27      & > div:nth-child(2) { // header
    28        order: 1;
    29      }
    30  
    31      & > div:last-child { // sell orders
    32        order: 2;
    33      }
    34    }
    35  
    36    .order-panel {
    37      min-width: 375px;
    38  
    39      #orderForm {
    40        input[type=number] {
    41          height: 30px;
    42          border-radius: 0;
    43          font-size: 14px;
    44        }
    45  
    46        input:focus {
    47          outline: none;
    48        }
    49  
    50        span.unitbox {
    51          position: absolute;
    52          font-size: 14px;
    53          font-weight: bold;
    54          right: 5px;
    55          top: 48%; // Looks better than 50 for some reason.
    56          transform: translateY(-50%);
    57          white-space: nowrap;
    58        }
    59  
    60        button {
    61          padding: 5px 25px;
    62          border: 1px solid #78787877;
    63          border-radius: 3px;
    64          background-color: var(--section-bg);
    65          color: var(--market-btn-color);
    66  
    67          &:disabled {
    68            opacity: 0.4;
    69          }
    70        }
    71  
    72        button:hover,
    73        button.selected {
    74          color: var(--market-btn-selected-color);
    75        }
    76  
    77        button.submit {
    78          color: var(--market-btn-selected-color);
    79        }
    80  
    81        button.selected,
    82        button.submit {
    83          &.buygreen-bg {
    84            background-color: var(--market-buygreen-bg);
    85          }
    86  
    87          &.sellred-bg {
    88            background-color: var(--market-sellred-bg);
    89          }
    90        }
    91  
    92        #orderPreview,
    93        .h21 {
    94          height: 21px;
    95        }
    96      }
    97  
    98      .ico-unlocked {
    99        color: $success;
   100      }
   101  
   102      .ico-disconnected {
   103        color: var(--text-warning);
   104      }
   105    }
   106  
   107    .market-chart {
   108      @extend .flex-center;
   109  
   110      flex-grow: 1;
   111      position: relative;
   112      min-width: 100px; // Letting it go to zero can be problematic, causing some major cpu during chart calcs
   113      min-height: 250px;
   114  
   115      canvas {
   116        position: absolute;
   117        left: 0;
   118        top: 0;
   119        user-select: none;
   120      }
   121    }
   122  
   123    #unreadyOrdersMsg {
   124      color: $danger;
   125    }
   126  
   127    .unready-user-order {
   128      background-color: #6e0909;
   129    }
   130  
   131    .user-order {
   132      &:not(:last-child) {
   133        border-bottom-style: none !important;
   134      }
   135  
   136      &:last-child .order-details {
   137        border-bottom-style: none !important;
   138        padding-bottom: 0;
   139      }
   140  
   141      .user-order-header {
   142        @extend .flex-center;
   143  
   144        padding: 5px 10px 5px 20px;
   145        font-size: 14px;
   146        position: relative;
   147        // border: 1px solid grey;
   148  
   149        .side-indicator {
   150          position: absolute;
   151          left: 0;
   152          top: 0;
   153          bottom: 0;
   154          width: 8px;
   155  
   156          &.buy {
   157            background-color: var(--buy-color);
   158          }
   159  
   160          &.sell {
   161            background-color: var(--market-sell-color);
   162          }
   163  
   164          &.inactive {
   165            opacity: 0.5;
   166          }
   167        }
   168  
   169        .active-indicator {
   170          height: 8px;
   171          border-radius: 4px;
   172  
   173          &.active {
   174            margin: 0 5px;
   175            width: 8px;
   176            background-color: var(--buy-color);
   177          }
   178        }
   179      }
   180  
   181      .order-details {
   182        margin-bottom: 25px;
   183        padding: 0 10px 10px;
   184        display: grid;
   185        grid-template-columns: 1fr 1fr 1fr 1fr;
   186        row-gap: 10px;
   187        column-gap: 5px;
   188        line-height: 1;
   189  
   190        .user-order-datum {
   191          flex-grow: 1;
   192          display: flex;
   193          flex-direction: column;
   194          align-items: flex-start;
   195  
   196          & > span:first-child {
   197            font-size: 12px;
   198            font-family: $demi-sans;
   199            color: grey;
   200            margin-bottom: 2px;
   201          }
   202  
   203          & > span:nth-child(2) {
   204            font-size: 14px;
   205          }
   206  
   207          &.full-span {
   208            grid-column: 1 / -1;
   209          }
   210        }
   211      }
   212    }
   213  
   214    .markettab {
   215      height: 30px;
   216      border-style: none;
   217      background-color: var(--section-bg);
   218  
   219      &.selected {
   220        background-color: var(--market-markettab-selected-bg);
   221      }
   222    }
   223  
   224    .numorders {
   225      background-color: var(--market-numorders-bg);
   226      padding: 1px 2px;
   227    }
   228  
   229    #leftMarketDock {
   230      position: absolute;
   231      display: flex;
   232      top: 0;
   233      left: 0;
   234      z-index: 2;
   235      min-height: -webkit-fill-available; // for webkit browsers
   236      background-color: var(--section-bg);
   237  
   238      &.default,
   239      &.stashed {
   240        display: none;
   241      }
   242  
   243      #searchBoxV1 {
   244        height: 55px;
   245      }
   246  
   247      &.stashed {
   248        display: none;
   249      }
   250  
   251      #marketSearchV1:focus {
   252        border: none;
   253        outline: none;
   254      }
   255  
   256      #marketSearchV1 {
   257        @extend .fill-abs;
   258  
   259        width: 100%; // firefox needs, for some reason
   260        z-index: 2;
   261        background-color: transparent;
   262        font-size: 25px;
   263        text-align: center;
   264        font-family: $demi-sans;
   265        font-variant: small-caps;
   266        border: none;
   267  
   268        & + .ico-search {
   269          z-index: 1;
   270          position: absolute;
   271          left: 50%;
   272          top: 50%;
   273          transform: translateX(-50%) translateY(-50%);
   274          opacity: 0.25;
   275        }
   276  
   277        &:hover + .ico-search {
   278          opacity: 0.5;
   279        }
   280  
   281        &:not(:placeholder-shown) + .ico-search,
   282        &:focus + .ico-search {
   283          display: none;
   284        }
   285      }
   286  
   287      #marketListV1 {
   288        height: 100%;
   289        min-width: 275px;
   290  
   291        & > div {
   292          .dexname {
   293            max-width: 60px;
   294            overflow: hidden;
   295            text-overflow: ellipsis;
   296          }
   297  
   298          &.selected {
   299            background-color: #7773;
   300          }
   301        }
   302      }
   303    }
   304  
   305    #mainContent {
   306      display: flex;
   307      flex-direction: column;
   308      align-items: center;
   309  
   310      & > div,
   311      & > section {
   312        min-height: 500px;
   313        display: flex;
   314  
   315        &:first-child { // order book
   316          max-height: 1000px;
   317          order: 3;
   318        }
   319  
   320        &:nth-child(2) { // charts
   321          order: 1;
   322        }
   323  
   324        &:last-child { // order form, wallets, user orders
   325          order: 2;
   326        }
   327      }
   328    }
   329  
   330    #epochLine,
   331    #durBttnBox {
   332      position: absolute;
   333      left: 65px;
   334      top: 5px;
   335      background-color: var(--section-bg);
   336      z-index: 1;
   337    }
   338  
   339    #durBttnBox {
   340      .candle-dur-bttn {
   341        background-color: var(--section-bg);
   342        padding: 2px 4px;
   343        font-size: 14px;
   344        line-height: 1;
   345        margin: 0 2px;
   346  
   347        &:hover {
   348          background-color: #7777;
   349        }
   350  
   351        &:hover,
   352        &.selected {
   353          border-color: var(--text-warning);
   354          color: var(--text-warning);
   355        }
   356      }
   357    }
   358  
   359    #epochLine {
   360      @extend .flex-center;
   361  
   362      .epoch-line {
   363        display: inline-block;
   364        border-top: 3px dotted #626262;
   365        width: 25px;
   366        height: 0;
   367        margin-right: 5px;
   368        position: relative;
   369        top: 1px;
   370      }
   371    }
   372  
   373    #loaderMsg {
   374      color: #777;
   375    }
   376  
   377    #bondCreationPending {
   378      .title {
   379        font-weight: bold;
   380        margin-bottom: 5px;
   381        color: #9b8c09;
   382      }
   383    }
   384  
   385    #registrationStatus {
   386      .title {
   387        font-weight: bold;
   388        margin-bottom: 5px;
   389      }
   390  
   391      &.waiting {
   392        .title {
   393          color: #9b8c09;
   394        }
   395      }
   396  
   397      &.completed {
   398        .title {
   399          color: $success;
   400        }
   401  
   402        #regStatusMessage {
   403          display: none;
   404        }
   405      }
   406  
   407      &.error {
   408        .title {
   409          color: $danger;
   410        }
   411      }
   412    }
   413  
   414    #approveTokenForm {
   415      width: 450px;
   416    }
   417  
   418    #verifyForm {
   419      .echo-data span {
   420        margin: 0 5px;
   421      }
   422  
   423      .disclaimer {
   424        text-align: justify;
   425      }
   426  
   427      header {
   428        &.buygreen-bg {
   429          background-color: var(--market-buygreen-bg);
   430        }
   431  
   432        &.sellred-bg {
   433          background-color: var(--market-sellred-bg);
   434        }
   435      }
   436  
   437      button {
   438        &.buygreen-bg {
   439          background-color: var(--market-buygreen-bg);
   440        }
   441  
   442        &.sellred-bg {
   443          background-color: var(--market-sellred-bg);
   444        }
   445      }
   446  
   447      .loader {
   448        height: 40px;
   449      }
   450  
   451      .order-opt {
   452        opacity: 0.7;
   453  
   454        &:not(.selected) {
   455          cursor: pointer;
   456        }
   457  
   458        &.selected {
   459          opacity: 1;
   460          background-color: var(--form-opt-selected-bg);
   461  
   462          div.opt-check {
   463            background-color: $success;
   464          }
   465        }
   466      }
   467    }
   468  
   469    #vDetailPane {
   470      max-width: 425px;
   471  
   472      .indent {
   473        border-left: 2px solid var(--border-color);
   474      }
   475  
   476      table.fee-breakout {
   477        td {
   478          text-align: center;
   479          padding: 2px 5px;
   480        }
   481      }
   482    }
   483  
   484  
   485    #marketReopener {
   486      display: none;
   487      padding: 10px 0;
   488      position: absolute;
   489      top: 0;
   490      left: 0;
   491      background-color: var(--section-bg);
   492      z-index: 10;
   493    }
   494  
   495    #leftHider,
   496    #marketReopener {
   497      .ico-arrowleft,
   498      .ico-arrowright {
   499        transform: scaleX(0.5);
   500        opacity: 0.5;
   501      }
   502  
   503      &:hover .ico-arrowleft,
   504      &:hover .ico-arrowright {
   505        opacity: 1;
   506      }
   507    }
   508  }
   509  
   510  .market-stats {
   511    display: flex;
   512    margin: 0 5px;
   513    gap: 15px;
   514  
   515    .statgrid {
   516      display: grid;
   517      grid-template-columns: auto auto auto;
   518    }
   519  
   520    &.listopen .ico-arrowdown {
   521      display: none;
   522    }
   523  
   524    &:not(.listopen) .ico-arrowup {
   525      display: none;
   526    }
   527  }
   528  
   529  #headerSpace .market-stats {
   530    display: none;
   531  }
   532  
   533  
   534  #recentMatchesBox {
   535    @extend .stylish-overflow;
   536  
   537    max-height: 350px;
   538  }
   539  
   540  #recentMatchesTable {
   541    th {
   542      align-items: center;
   543  
   544      &:hover {
   545        opacity: 0.7;
   546      }
   547  
   548      .ico-arrowdown {
   549        display: inline-block;
   550        visibility: hidden;
   551        vertical-align: middle;
   552        font-size: 10px;
   553        margin-left: 5px;
   554      }
   555  
   556      &.sorted-dsc {
   557        .ico-arrowdown {
   558          visibility: visible;
   559        }
   560      }
   561  
   562      &.sorted-asc {
   563        .ico-arrowdown {
   564          visibility: visible;
   565          transform: rotate(180deg);
   566        }
   567      }
   568    }
   569  }
   570  
   571  @include media-breakpoint-up(xl) {
   572    #main .market-stats {
   573      display: none;
   574      border-top: none;
   575    }
   576  
   577    #headerSpace .market-stats {
   578      display: flex;
   579      border-bottom: none !important;
   580    }
   581  
   582    div[data-handler=markets] #leftMarketDock {
   583      position: relative;
   584  
   585      &.default {
   586        display: flex;
   587      }
   588    }
   589  }
   590  
   591  @include media-breakpoint-up(lg) {
   592    div[data-handler=markets] {
   593      #mainContent {
   594        @include fill-abs;
   595  
   596        overflow: hidden;
   597        flex-direction: row;
   598        align-items: stretch;
   599  
   600        & > section,
   601        & > div {
   602          min-height: none;
   603          display: flex;
   604  
   605          &:nth-child(n) { // need nth-child for specificity
   606            min-height: auto;
   607          }
   608  
   609          &:first-child { // order book
   610            order: 1;
   611          }
   612  
   613          &:nth-child(2) { // charts
   614            order: 2;
   615          }
   616  
   617          &:last-child { // order form, wallets, user orders
   618            order: 3;
   619          }
   620        }
   621      }
   622  
   623      .ordertable-wrap {
   624        height: calc(50% - 15px);
   625        display: flex;
   626  
   627        &.reversible {
   628          flex-direction: column-reverse;
   629        }
   630  
   631        tbody {
   632          display: flex;
   633          align-items: stretch;
   634        }
   635  
   636        tbody#sellRows {
   637          flex-direction: column-reverse;
   638          border-top: none;
   639        }
   640  
   641        tbody#buyRows {
   642          flex-direction: column;
   643        }
   644      }
   645  
   646      .orderbook {
   647        width: auto;
   648  
   649        & > div:first-child { // sell orders
   650          order: 1;
   651        }
   652  
   653        & > div:nth-child(2) { // header
   654          order: 2;
   655        }
   656  
   657        & > div:last-child { // buy orders
   658          order: 3;
   659        }
   660      }
   661  
   662      .order-panel {
   663        & > div {
   664          @include fill-abs;
   665          @include stylish-overflow;
   666  
   667          height: 100%;
   668          overflow-x: hidden;
   669        }
   670      }
   671  
   672      #leftMarketDock.stashed + #marketReopener {
   673        display: block;
   674      }
   675    }
   676  
   677    #recentMatchesBox {
   678      overflow: visible;
   679      max-height: none;
   680      border-bottom: none;
   681    }
   682  
   683    #candlesLegend,
   684    #depthLegend {
   685      z-index: 10;
   686      position: absolute;
   687      top: 0;
   688      right: 0;
   689      background-color: var(--section-bg);
   690    }
   691  }
   692  
   693  .user-order-floaty-menu {
   694    position: absolute;
   695    display: flex;
   696    align-items: center;
   697    z-index: 5;
   698    border-style: none solid solid;
   699    border-width: 0 2px 2px 1px;
   700    border-color: var(--border-color);
   701    background-color: var(--section-bg);
   702    cursor: pointer;
   703    overflow: hidden;
   704  
   705    & > span,
   706    & > a {
   707      margin: 0 5px;
   708      padding-right: 10px;
   709      padding-left: 10px;
   710  
   711      &:hover {
   712        background-color: #7775;
   713      }
   714    }
   715  }
   716  
   717  .bot-problems-section {
   718    background-color: #f00a;
   719    margin-top: 2px;
   720    margin-bottom: 2px;
   721    padding-left: 2px;
   722    border-radius: 5px;
   723  }