github.com/argoproj/argo-cd/v3@v3.2.1/ui/src/app/applications/components/application-resource-tree/application-resource-tree.scss (about)

     1  @import 'node_modules/argo-ui/src/styles/config';
     2  @import 'node_modules/argo-ui/src/styles/theme';
     3  
     4  .application-resource-tree {
     5      position: relative;
     6      overflow: hidden;
     7  
     8      &__line {
     9          position: absolute;
    10          z-index: -1;
    11          transition: all 0.2s linear;
    12          border-top: 1px dashed $argo-color-gray-5;
    13      }
    14  
    15      &__edge {
    16          .application-resource-tree__line {
    17              &:last-child {
    18                  &:after {
    19                      content: '\25BA';
    20                      position: absolute;
    21                      color: #A3A3A3;
    22                      font-size: 10px;
    23                      top: -9px;
    24                      transform: rotate(180deg);
    25                  }
    26              }
    27          }
    28      }
    29  
    30      &--network {
    31          .application-resource-tree__line {
    32              background-image: linear-gradient(90deg, $argo-color-teal-5 50%, transparent 50%);
    33              background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
    34              background-size: 20px 3px, 0px 0px, 0px 0px, 0px 0px;
    35              background-position: left top, right bottom, left bottom, right top;
    36              animation: network-flow 1s infinite linear;
    37              height: 3px;
    38              border-top: none;
    39          }
    40          @keyframes network-flow {
    41              0% {
    42                  background-position: left 20px top, right 20px bottom , left bottom 20px , right top 20px;
    43              }
    44              100% {
    45                  background-position: left top, right bottom, left bottom, right top;
    46              }
    47          }
    48  
    49          .application-resource-tree__edge {
    50              .application-resource-tree__line {
    51                  &:last-child {
    52                      &:after {
    53                          content: none;
    54                      }
    55                  }
    56              }
    57          }
    58      }
    59  
    60      $pod-size: 25px;
    61      $gutter: 3px;
    62      $pods-per-row: 8;
    63      $pods-per-column: 4;
    64      $max-rows: 5;
    65      $num-stats: 2;
    66  
    67      &__node {
    68          position: absolute;
    69          transition: all 0.2s linear;
    70          padding-left: 3.5em;
    71          padding-right: 1em;
    72          margin: 10px;
    73          box-shadow: 1px 1px 1px $argo-color-gray-4;
    74          @include themify($themes) {
    75              background-color: themed('background-2');
    76              color: themed('text-2');
    77          }
    78          border-radius: 4px;
    79          border: 1px solid transparent;
    80          cursor: pointer;
    81  
    82          .theme-dark & {
    83              box-shadow: 1px 1px 1px $argo-color-gray-7;
    84          }
    85  
    86          .icon {
    87              font-size: 2em;
    88          }
    89  
    90          .icon-background
    91          {
    92              color: $argo-color-gray-4;
    93          }
    94  
    95          .fa-filter {
    96              margin-left: 8px;
    97              padding: 2px;
    98          }
    99  
   100          &.active {
   101              border-color: $argo-color-teal-6;
   102          }
   103  
   104          &--orphaned {
   105              @include themify($themes) {
   106                  background-color: themed('light-argo-gray-2') !important;
   107              }
   108          }
   109  
   110          &--grouped-node {
   111              cursor: default;
   112          }
   113  
   114          &__top-part {
   115              cursor: pointer;
   116          }
   117  
   118          &--load-balancer {
   119              cursor: default;
   120              background-color: $argo-color-teal-2;
   121          }
   122  
   123          &--expansion {
   124              position: absolute;
   125              flex-shrink: 0px;
   126              z-index: 10;
   127              font-size: 0.5em;
   128              padding: 2px;
   129              box-shadow: 1px 1px 1px $argo-color-gray-4;
   130              @include themify($themes) {
   131                  background-color: themed('background-2');
   132              }
   133              margin-top: 9px;
   134              margin-left: 215px;
   135  
   136              .theme-dark & {
   137                  box-shadow: 1px 1px 1px $argo-color-gray-7;
   138              }
   139          }
   140  
   141          &--podgroup--expansion {
   142              position: absolute;
   143              flex-shrink: 0px;
   144              z-index: 10;
   145              font-size: 0.5em;
   146              padding: 2px;
   147              box-shadow: 1px 1px 1px $argo-color-gray-4;
   148              background-color: white;
   149              margin-left: 215px;
   150              @include themify($themes) {
   151                  background-color: themed('background-2');
   152              }
   153  
   154              .theme-dark & {
   155                  box-shadow: 1px 1px 1px $argo-color-gray-7;
   156              }
   157          }
   158  
   159          &--pod {
   160              @include themify($themes) {
   161                  background-color: themed('pod-cyan') !important;
   162              }
   163          }
   164  
   165          &--lower-section {
   166              left: 8px;
   167              right: 10px;
   168              margin-top: 10px;
   169              margin-bottom: 10px;
   170              $pod-container-width: $pods-per-row * ($pod-size + (2 * $gutter)) + 4 * $gutter;
   171              $pod-container-height: $pods-per-column * ($pod-size + (2 * $gutter)) + 4 * $gutter;
   172              $padding: 1px;
   173              $stat-width: 1px;
   174              padding: $padding;
   175              transition: all 1s linear;
   176              position: absolute;
   177  
   178              &__pod-group {
   179                  $pod-container-width: $pods-per-row * ($pod-size + (2 * $gutter)) + 4 * $gutter;
   180                  $pod-container-height: $pods-per-column * ($pod-size + (2 * $gutter)) + 4 * $gutter;
   181                  padding: $padding;
   182                  width: $pod-container-width + 2 * $padding;
   183  
   184                  &__label {
   185                      margin-top: 1em;
   186                      font-size: 10px;
   187                      text-align: center;
   188                  }
   189                  &__pod-container {
   190                      flex-direction: column;
   191                      width: $pod-container-width;
   192                      margin-top: auto;
   193                      &__pods {
   194                          display: flex;
   195                          flex-wrap: wrap;
   196                          width: 100%;
   197                          background-color: $argo-color-gray-3;
   198                          border-radius: 3px;
   199                          align-items: center;
   200                          padding: $gutter * 2;
   201                          margin-right: -1 * $gutter;
   202                          margin-bottom: -1 * $gutter;
   203                      }
   204                  }
   205  
   206                  &__pod {
   207                      border-radius: 3px;
   208                      width: $pod-size;
   209                      height: $pod-size;
   210                      margin: $gutter;
   211                      cursor: pointer;
   212                      display: flex;
   213                      align-items: center;
   214                      justify-content: center;
   215                      background-color: $argo-color-gray-5;
   216                      transition: all 0.2s ease-in-out;
   217                      i.fa {
   218                          color: white !important;
   219                      }
   220                      &--succeeded,
   221                      &--healthy {
   222                          background-color: $argo-success-color;
   223                          &:hover {
   224                              background-color: $argo-success-color-dark;
   225                          }
   226                      }
   227                      &--pending,
   228                      &--suspended {
   229                          background-color: $argo-status-warning-color;
   230                          &:hover {
   231                              background-color: darken($argo-status-warning-color, 10%);
   232                          }
   233                      }
   234                      &--running,
   235                      &--progressing {
   236                          background-color: $argo-running-color;
   237                          &:hover {
   238                              background-color: $argo-running-color-dark;
   239                          }
   240                      }
   241                      &--failed,
   242                      &--degraded {
   243                          background-color: $argo-failed-color;
   244                          border: 2px solid rgba(0, 0, 0, 0.3);
   245                          &:hover {
   246                              background-color: $argo-failed-color-dark;
   247                          }
   248                      }
   249                      &--unknown,
   250                      &--missing {
   251                          background-color: $argo-color-gray-5;
   252                          &:hover {
   253                              background-color: $argo-color-gray-6;
   254                          }
   255                      }
   256                      &__star-icon {
   257                          background: none;
   258                          color: #ffce25;
   259                          display: block;
   260                          left: 20px;
   261                          margin: 0px;
   262                          position: absolute;
   263                          top: -5px;
   264                      }
   265                      &__stat-tooltip {
   266                          text-align: left;
   267  
   268                          i {
   269                              display: inline-block;
   270                              height: 1em;
   271                              width: 1em;
   272                              border-radius: 5px;
   273                          }
   274                      }
   275  
   276                      &__stat-icon-app {
   277                          background-color: $argo-color-teal-7;
   278                      }
   279  
   280                      &__stat-icon-neighbors {
   281                          background-color: $argo-color-gray-6;
   282                      }
   283  
   284                      &__stat {
   285                          &__bar {
   286                              background-color: $argo-color-gray-4;
   287                              height: $max-rows * $pod-size;
   288                              width: $stat-width;
   289                              position: relative;
   290                              border-radius: 2px;
   291                              margin: 0 $gutter * 2;
   292                              overflow: hidden;
   293                              cursor: pointer;
   294  
   295                              &--fill {
   296                                  position: absolute;
   297                                  background-color: $argo-color-teal-7;
   298                                  width: 100%;
   299                                  bottom: 0;
   300                              }
   301  
   302                              &--neighbors {
   303                                  background-color: $argo-color-gray-6;
   304                              }
   305  
   306                              &:hover > &--fill {
   307                                  background-color: $argo-color-teal-8;
   308                              }
   309  
   310                              &:hover &--neighbors {
   311                                  background-color: $argo-color-gray-7;
   312                              }
   313                          }
   314                      }
   315                  }
   316              }
   317          }
   318      }
   319  
   320      &__filtered-indicator {
   321          z-index: -1;
   322      }
   323  
   324      &__node-animation {
   325          position: absolute;
   326          left: 0;
   327          right: 0;
   328          top: 0;
   329          bottom: 0;
   330          animation: shadow-pulse 1s 1;
   331          pointer-events: none;
   332      }
   333  
   334      @keyframes shadow-pulse {
   335          0% {
   336              box-shadow: 0 0 0 0px rgba(0, 0, 0, 0.2);
   337          }
   338          100% {
   339              box-shadow: 0 0 0 15px rgba(0, 0, 0, 0);
   340          }
   341      }
   342      &__node-menu {
   343          position: absolute;
   344          right: 0px;
   345          top: 7px;
   346      }
   347  
   348      &__node-content {
   349          overflow: hidden;
   350          text-overflow: ellipsis;
   351          white-space: nowrap;
   352      }
   353  
   354      &__node-kind-icon {
   355          text-align: center;
   356          position: absolute;
   357          left: 0;
   358          top: 8px;
   359          width: 60px;
   360          line-height: 1;
   361          color: $argo-color-gray-7;
   362  
   363          &--big {
   364              background: $argo-color-gray-5;
   365              position: absolute;
   366              width: 65px;
   367              height: 65px;
   368              border-radius: 33px;
   369              left: -20px;
   370              top: -8px;
   371              text-align: center;
   372  
   373              @include themify($themes) {
   374                  border: 4px solid themed('background-2');
   375              }
   376  
   377              i {
   378                  color: $white-color;
   379                  line-height: 56px;
   380                  font-size: 28px;
   381              }
   382          }
   383      }
   384  
   385      &__node-labels {
   386          position: absolute;
   387          bottom: -14px;
   388          right: 0;
   389      }
   390  
   391      &__node-label {
   392          background-color: $argo-color-gray-4;
   393          color: $argo-color-gray-7;
   394          border: 1px solid $argo-color-gray-5;
   395          border-radius: 5px;
   396          padding: 0 5px;
   397          font-size: 0.6em;
   398          text-transform: lowercase;
   399          margin-right: 1px;
   400      }
   401  
   402  
   403      &__node-kind {
   404          font-size: 0.7em;
   405          color: $argo-color-gray-6;
   406      }
   407  
   408      &__node-content {
   409          padding: 10px 20px 10px 10px;
   410          line-height: 0.95;
   411          display: flex;
   412          flex-direction: column;
   413      }
   414  
   415      &__node-title {
   416          font-size: 0.8em;
   417          padding-bottom: 5px;
   418          overflow: hidden;
   419          text-overflow: ellipsis;
   420          text-align: left;
   421  
   422      }
   423  
   424      &__fullname {
   425          white-space: normal
   426      }
   427  
   428      &__node-status-icon {
   429          font-size: 0.8em;
   430          i, svg {
   431              margin-right: 2px;
   432          }
   433      }
   434      &__direction-left {
   435          direction: ltl;
   436      }
   437      &__direction-right {
   438          direction: rtl;
   439      }
   440      &__direction-center-left {
   441          overflow: hidden;
   442          padding-top: 15px;
   443          padding-left: 15px;
   444  
   445      }
   446  
   447  }