Custom theme aplikacji pobierany z serwera

0

Cześć,

Szukam pomysłu na na zrealizowanie takiego scenariusza.

  1. Apka - Angular 16
  2. Stosunkowo prosta aplikacja - 80% CRUD
  3. Aplikacja multitenant - admin tworzy grupy ktore maja odrebny i indywidualny dostep do fukcjonalnosci aplikacji - sa calkowicie niezlezne
  4. Theme bazowy wykorzystujacy bardzo intensywnie SCSS i mixiny
  5. User (Admin) moze dynamicznie ustalac kolory - kolory beda zmieniane per grupa (tenant), theme moze sie zmienic po przeladowaniu
  6. Wartosci kolorow zapisane sa na serwerze i pobierane przez API
  7. W 90% przypadkow stylowaniu podlegaja elementy statyczne - czyli jak sidebar, niektore kolory tekstow, tlo itd
  8. Moze istniec jakas czesc "bootstrapu" aplikacji ktora nie bedzie miala stylowania, ale oprocz tego tam gdzie sie da to stylowanie powinno byc
  9. Idealnie gdyby zmiana koloru bazowego miala efekt podobny ro rekompliacji scss, czyli uwzglednione byly pojasnienia, pociemnienia itd, ale nie jest to 100% must have

Czy macie pomysly w jaki sposob mozna to zrealizowac ?

Kombinowalem ze zmiennymi CSS, ale nie dzialaja one z mixinami ktre sa obecne teraz w istniejacym stylu.
Opcja ktora biore pod uwage to to zmiana w kazdym komponencie ktory tego wymaga tla i innych zmiennych za pomoca js - przypisuję predefiniowanej klasie okreslone wartosci pobrane z API - srednio mi sie to podba bo nie spelnia pkt 9

Czy na przyklad server-side-rendering sprawdzi sie tutaj? Pytam bo jestem backendowcem wrzuconym we frontend :-D

1
W2K napisał(a):

Kombinowalem ze zmiennymi CSS, ale nie dzialaja one z mixinami ktre sa obecne teraz w istniejacym stylu.

Możesz podać jakiś przyklad? Wydaje mi się, że tak byłoby najprościej.

0
W2K napisał(a):

Kombinowalem ze zmiennymi CSS, ale nie dzialaja one z mixinami ktre sa obecne teraz w istniejacym stylu.

Czemu nie działają? Może system budujący CSS podmienia nazwę zmiennych użytych w mixinach na jakąś randomową i dlatego nie łapie? (nie wiem, zgaduję).

1 użytkowników online, w tym zalogowanych: 0, gości: 1