Concentric effect with 6 leds

Hi everyone,

I’m really a newbie trying to get things working with 5 leds that shine and dime at a concentric sequence, contracting and expanding.

The problem i’m facing is that i don’t like the effect that i got, too linear. I would like somehow to overlap the fading between leds, and that if first light dimes at blue, second led would start from that blue, and so on.

Can anyone give me advice to continue exploring?

#include <FastSPI_LED2.h>
#define NUM_LEDS 6  
CRGB leds[NUM_LEDS];

// var for brightness
int fade0 = 0;
int fade1 = 0;
int fade2 = 0;
int fade3 = 0;
int fade4 = 0;
int fade5 = 0;

int color1 = random8();
int color2 = random8();
int color3 = random8();
int color4 = random8();
int color5 = random8();
int color6 = random8();

int state = 0;
int color = 0;


void setup()
{ 
LEDS.addLeds<WS2812B, 2>(leds, NUM_LEDS);
//Serial.begin(9600); 
}
void loop()
{

if(color==2000){
  color = 0;
}else{
  color ++;
}
  
  
if (state == 0){
  if(fade0 == 255){
    state++;
  }else{
    fade0++;
  }
}

if (state == 1){
  if(fade0 == 0){
    state++;
    fade0=0;
  }else{
    fade0--;
  }
}

if (state == 2){
  if(fade1 == 255){
    state++;
  }else{
    fade1++;
  }
}

if (state == 3){
  if(fade1 == 0){
    state++;
    fade1=0;
  }else{
    fade1--;
  }
}

if (state == 4){
  if(fade2 == 255){
   state++;
  }else{
    fade2++;
  }
}

if (state == 5){
  if(fade2 == 0){
    state++;
    fade2=0;
  }else{
    fade2--;
  }
}

if (state == 6){
  if(fade1 == 255){
    state++;
  }else{
    fade1++;
  }
}

if (state == 7){
  if(fade1 == 0){
    state++;
    fade1=0;
  }else{
    fade1--;
  }
}
if (state == 8){
  if(fade0 == 255){
    state++;
  }else{
    fade0++;
  }
}

if (state == 9){
  if(fade0 == 0){
    state=0;
    fade0=0;
  }else{
    fade0--;
  }
}
 
fill_solid( &(leds[0]), 1 , CHSV( color, 255, fade0) ); 
fill_solid( &(leds[1]), 1 , CHSV( color, 255, fade1) ); 
fill_solid( &(leds[2]), 1 , CHSV( color, 255, fade2) ); 
fill_solid( &(leds[3]), 1 , CHSV( color, 255, fade1) ); 
fill_solid( &(leds[4]), 1 , CHSV( color, 255, fade0) ); 
LEDS.show();  

delay(50);

}