Lv_led color in off state how to change from black to transparent of white

I want to emulate a LED VU meter, 16 LEDs. 9 green, 4 orange, 3 red.
I tried a bar with gradients but can’t go behind 2 gradients (core paniced…) and i need hard limits not gradients.
I tried lv_led but i cant get them to be transparant or white when off, it’s allways black.
I tried setting bg to transparent but when on i have a hole in my led.
Any suggestions?
It needs to be fast in updates, it’s used in an amplifier.

static lv_style_t led_style1;
lv_style_set_radius(&led_style1, 0);
lv_style_set_bg_opa(&led_style1, LV_OPA_TRANSP);
lv_style_set_bg_color(&led_style1, lv_color_white());

led_effect1_l1 = lv_led_create(tabeffect1);
lv_obj_add_style(led_effect1_l1, &led_style1, LV_PART_MAIN);

lv_obj_set_size(led_effect1_l1, 16, 16);
lv_led_set_color(led_effect1_l1, lv_color_hex(0x00ff00));
lv_obj_align(led_effect1_l1, LV_ALIGN_TOP_LEFT, 100, 80);
lv_led_on(led_effect1_l1);

I gave up on the led object and used a standard lv_obj rectangular object and changed color but after going from 2x16 to 2x20 the refresh became very choppy, i ended up drawing the rectangles directly with native tft_espi commands