You might be able to do something with the alpha aesthetic of ggplot.
library(ggplot2)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
DF <- data.frame(continent = c("NA", "NA", "Europe", "Europe", "Europe", "Asia", "Asia", "Asia"),
country = c("USA", "Canada", "Germany", "France", "England", "China", "India", "Vietnam"),
Value = c(5,4,7,3,8,4,7,3))
DF <- DF %>% group_by(continent) %>% mutate(Index = LETTERS[1:n()])
ggplot(DF, aes(x = country, y = Value, alpha = Index, fill = continent)) + geom_col() +
scale_alpha_manual(values = c("A" = 0.4, "B" = 0.6, "C" = 0.8), guide = NULL)

Created on 2021-06-16 by the reprex package (v0.3.0)