Wie referenziere ich Variablen in einer Map, bevor die gesamte Map definiert ist?

Ich beginne mit meinem Code, da es einfacher sein sollte zu verstehen, was ich tun möchte:

@function get-color($color, $lightness) {
  @return map-get(map-get($colors, $color), $lightness);
}

$colors: (
  green: (
    light: #A4EDE1,
    mid: darken(get-color(green, light), 20%),
    dark: darken(get-color(green, mid), 20%)
  ),

  red: (
    light: complement(get-color(green, light)),
    mid: complement(get-color(green, mid)),
    dark: complement(get-color(green, dark))
  )
);

ie Sie sehen, habe ich eine mehrdimensionale Karte mit meinen Farbwerten erstellt.
m Moment möchte ich die anderen Farben erstellen, durch diedarken() und dercomplement() Funktionen. Das Problem dabei ist, dass ich Variablen innerhalb des @ referenzieren mu$colors Variable, bevor es vollständig gefüllt ist. Dies führt zu einem Fehler für meinget-color() -Funktion, die mir sagt, es gibt kein$colors variable.

Ich weiß, es wäre möglich, die Farben außerhalb meines @ zu ände$colorsmap, aber der Vorteil dabei ist, dass ich immer wieder zurückkehren und Farbwerte definieren kann, die nicht generiert werden. Dies wäre ein großer Vorteil für die Aufrechterhaltung des Projekts.

So hier meine Frage: Gibt es eine Möglichkeit, eine andere Variable in der Karte zu referenzieren, bevor die gesamte Karte definiert ist?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage