Co je to?
Poznámka pro administrátory: Tato funkce vám umožňuje přizpůsobit vzhled a chování platformy vašim specifickým obchodním potřebám. Můžete přidat vlastní tlačítka pro vaše nejčastější úkoly, vytvářet informační panely pro vaše zaměstnance a dokonce měnit barvy pro zvýraznění důležitých dat (například nízkého stavu zásob).
Pro koho je to určeno? Administrátoři by si to měli přečíst, aby pochopili, jak mohou optimalizovat pracovní prostor svého týmu. I když si tyto změny můžete naplánovat sami, nastavení vlastních tlačítek a panelů obvykle vyžaduje pomoc vašeho vývojáře, aby je propojil se správnými URL adresami nebo automatizovanými pracovními postupy.
Klíčové výhody pro e-shop:
- Rychlejší pracovní postupy: Přidejte „Zkratky“ (vlastní tlačítka) pro nejčastější akce vašeho týmu, jako je export konkrétní zprávy nebo aktualizace stavu produktu.
- Vylepšená viditelnost: Použijte „Barvy sloupců“ k okamžitému rozpoznání naléhavých položek, jako jsou zpožděné objednávky nebo produkty, které vyžadují vaši pozornost.
- Integrované nástroje: Vložte své další obchodní aplikace (jako je CRM nebo helpdesk) přímo do rozhraní editoru pomocí „Vlastních panelů“.
- Kontextové odkazy: Přidejte chytré odkazy vedle datových polí, které jediným kliknutím otevřou správnou stránku ve vašich dalších systémech.
Přehled
Systém přizpůsobení vám umožňuje rozšířit uživatelské rozhraní přidáním vlastních tlačítek, panelů, odkazů polí a vizuálního stylu do různých částí aplikace. Tato přizpůsobení jsou specifická pro entitu a lze je nakonfigurovat tak, aby se zobrazovala v různých kontextech na základě uživatelských oprávnění, stavu systému a vlastních podmínek.
Čtyři typy přizpůsobení
- Vlastní tlačítka — Interaktivní akce v datových mřížkách a detailech
- Vlastní panely — Další informační panely v rozhraní editoru
- Vlastní odkazy — Odkazy na úrovni polí na externí systémy na základě dat záznamu
- Barvy sloupců — Podmíněné barvy pozadí buněk v datových mřížkách
card: Vlastní tlačítka
Interaktivní tlačítka, která se zobrazují v datových mřížkách nebo detailech dat a mohou provádět vlastní akce s vybranými záznamy. Podporují otevírání URL s kontextovými proměnnými nebo spouštění automatizovaných pracovních postupů.
card: Vlastní panely
Skládací panely, které se zobrazují v rozhraní editoru a slouží k zobrazení dalších informací, vložení externího obsahu nebo poskytnutí vlastních ovládacích prvků pro vylepšené pracovní postupy.
card: Vlastní odkazy
Odkazy na úrovni polí, které se zobrazují u polí editoru a otevírají externí aplikace s kontextovými daty. Viditelné pouze, když má pole hodnotu a jsou splněny volitelné podmínky.
card: Barvy sloupců
Podmíněné barvy pozadí pro buňky datové mřížky na základě výrazů filtru. Použijte pro všechny sloupce nebo konkrétní sloupce pro vizuální zvýraznění dat.
Klíčové funkce
- Specifické pro entitu — Připojte přizpůsobení k jakékoli datové entitě
- Kontextově citlivé — Přístup k informacím o uživateli, vybraným záznamům a stavu systému
- Podmíněná viditelnost — Zobrazit/skrýt na základě vlastních výrazů filtru
- Citlivé na sady změn a režim pouze pro čtení — Respektuje systémové režimy a oprávnění
Vlastní tlačítka [badge:Buttons|warning]
Interaktivní tlačítka, která vylepšují funkčnost seznamu dat nebo detailů dat
[try:/customButtons|Spravovat vlastní tlačítka →|right]
Klíčové funkce
- Zobrazují se v datových mřížkách vedle standardních akčních tlačítek
- Provádějí vlastní akce s vybranými záznamy
- Podporují výběr jednoho i více záznamů
- Mohou být podmíněně zobrazeny na základě stavu záznamu
- Respektují omezení sady změn a režimu pouze pro čtení
Konfigurační pole
Základní vlastnosti
name— Popisek tlačítka zobrazený uživatelůmentityId— Cílová entita pro tlačítkoicon— Ikona zobrazená na tlačítkucolor— Barevné téma tlačítka
Chování
allowMultiple— Zda tlačítko funguje s více vybranými záznamycondition— Volitelný výraz filtru pro povolení/zakázání tlačítkaaction— Typ akce: “openUrl” nebo “runAutomation”url— Cílová URL (pro akci openUrl)automation_id— Cílová automatizace (pro akci runAutomation)
Kontrola viditelnosti
allowInChangeSet— Zobrazit tlačítko, když je sada změn aktivníallowInReadOnly— Zobrazit tlačítko v režimu pouze pro čtení
Typy akcí
openUrl — Akce Otevřít URL
Otevře URL v prohlížeči s kontextovými informacemi z UI. To umožňuje výkonné vlastní integrace a připojení k externím systémům.
Dostupné kontextové proměnné:
{user.id}— ID aktuálního uživatele{user.email}— E-mail aktuálního uživatele{selectedIds}— Seznam ID vybraných záznamů oddělených čárkami{entityId}— Identifikátor cílové entity{orgId}— ID aktuální organizace
Příklad URL:
https://external-system.com/api/export?records={selectedIds}&user={user.id}&org={orgId}
runAutomation — Akce Spustit automatizaci
Spustí předdefinovaný automatizační pracovní postup na vybraných záznamech. To umožňuje komplexní zpracování dat, transformace a provádění obchodní logiky.
Možnosti automatizace:
- Úpravy a aktualizace dat
- Výpočty a transformace polí
- Integrace s externími systémy
- Operace dávkového zpracování
- Spouštění triggerů pracovního postupu
Příklady použití:
- Hromadné aktualizace cen na základě kalkulací nákladů
- Automatická synchronizace zásob
- Pracovní postupy pro obohacení zákaznických dat
- Generování a distribuce sestav
Příklady konfigurací
Příklad akce OpenUrl:
{
"name": "Export to PDF",
"entityId": "products",
"icon": "FileText",
"color": "blue",
"allowMultiple": true,
"allowInChangeSet": false,
"allowInReadOnly": true,
"condition": "status = 'active'",
"action": "openUrl",
"url": "https://export.company.com/pdf?ids={selectedIds}&user={user.id}"
}
Příklad akce RunAutomation:
{
"name": "Update Prices",
"entityId": "products",
"icon": "euro",
"color": "green",
"allowMultiple": true,
"allowInChangeSet": true,
"allowInReadOnly": false,
"condition": "category.code = 'ELEC'",
"action": "runAutomation",
"automation_id": "code:bulk-price-update-automation"
}
Vlastní panely [badge:Panels|info]
Skládací panely, které rozšiřují rozhraní editoru
[try:/customPanels|Spravovat vlastní panely→|right]
Klíčové vlastnosti
- Zobrazují se v postranním panelu editoru vedle standardních panelů
- Skládací s koordinovaným chováním rozbalení/sbalení
- Mohou zobrazovat vlastní obsah, data nebo ovládací prvky
- Podporují různé pozice (vlevo, vpravo, nahoře, dole)
- Mohou se zobrazovat v zobrazení seznamu, detailním zobrazení nebo v obou
- Podpora pro panely nezávislé na datech s možností
requiresData - Respektují omezení režimu sady změn a režimu pouze pro čtení
Konfigurační pole
Základní vlastnosti
name— Název panelu zobrazený uživatelůmentityId— Cílová entita pro panelicon— Ikona zobrazená v záhlaví paneluposition— Umístění panelu (vlevo, vpravo, nahoře, dole)location— Kde zobrazit panel (seznam, detail, obojí)size— Velikost panelu (tiny, small, medium, large)
Obsah a chování
action— Typ akce: “openUrl” nebo “showHtml”body— HTML obsah k zobrazení (pro akci showHtml)url— Cílová URL (pro akci openUrl)requiresData— Zda panel závisí na vybraných datechcondition— Volitelný výraz filtru pro zobrazení/skrytí panelu
Ovládání viditelnosti
allowInChangeSet— Zobrazit panel, když je sada změn aktivníallowInReadOnly— Zobrazit panel v režimu pouze pro čtení
Typy akcí
openUrl — Akce Otevřít URL
Otevře URL v prohlížeči s kontextovými informacemi z uživatelského rozhraní, stejně jako CustomButtons. To umožňuje externí integrace a dynamický obsah založený na aktuálním kontextu.
Podporuje stejné kontextové proměnné jako CustomButtons:
{user.id},{user.email}— Informace o aktuálním uživateli{selectedIds}— ID vybraných záznamů{entityId},{orgId}— Identifikátory kontextu
⚠️ Důležité: Požadavky na vkládání Iframe
Pokud je URL načtena v iframe v rámci aplikace, cílový server musí být správně nakonfigurován:
- `X-Frame-Options: ALLOW-FROM {HOSTNAME}` — Povolit vkládání z vašeho serveru
- `Content-Security-Policy: frame-ancestors 'self' {HOSTNAME}` — Moderní alternativa CSP
- HTTPS je vyžadováno, pokud rodičovská aplikace používá HTTPS (zásady smíšeného obsahu)
- Soubory cookie nemusí fungovat správně kvůli omezením SameSite v cross-origin iframech
showHtml — Akce Zobrazit HTML
Zobrazí obsah z pole body jako HTML v rámci panelu. To umožňuje bohatě formátovaný obsah přímo v rozhraní.
Omezení HTML:
- Z bezpečnostních důvodů je podporována omezená podmnožina HTML
- JavaScript není povolen
- Externí skriptové tagy a obsluhy událostí jsou odfiltrovány
- Podporovány jsou bezpečné tagy jako nadpisy, odstavce, seznamy a základní formátování
Příklad těla HTML:
<h3>Product Information</h3><p>Additional details about this product...</p><ul><li>Feature 1</li><li>Feature 2</li></ul>
Závislosti dat
Vlastnost requiresData
Určuje, zda panel závisí na aktuálně vybraných datech. Pokud je nastaveno na false, panel se může zobrazit i v případě, že nejsou vybrána žádná data, čímž se stává nezávislým na aktuálním stavu výběru.
requiresData: true— Panel se zobrazí pouze, když jsou vybrána data. Kontextové proměnné jako selectedIds budou k dispozici.requiresData: false— Panel se může zobrazit nezávisle. Užitečné pro text nápovědy, statické informace nebo globální akce.
Příklady konfigurací
Příklad akce ShowHtml:
{
"name": "Product Help",
"entityId": "products",
"icon": "HelpCircle",
"position": "right",
"location": "detail",
"size": "small",
"requiresData": false,
"allowInChangeSet": true,
"allowInReadOnly": true,
"action": "showHtml",
"body": "<h3>Product Guidelines</h3><p>Follow these steps when editing products...</p>"
}
Příklad akce OpenUrl:
{
"name": "Product Analytics",
"entityId": "products",
"icon": "BarChart",
"position": "right",
"location": "detail",
"size": "medium",
"requiresData": true,
"allowInChangeSet": true,
"allowInReadOnly": true,
"action": "openUrl",
"url": "https://analytics.company.com/product?id={selectedIds}&user={user.id}"
}
Ovládání viditelnosti
Pochopení, kdy jsou přizpůsobení zobrazena nebo skryta
Stavy systému
Režim sady změn
Když je sada změn aktivní, jsou viditelná pouze přizpůsobení s allowInChangeSet: true.
Režim pouze pro čtení
V režimu pouze pro čtení jsou viditelná pouze přizpůsobení s allowInReadOnly: true.
Matice viditelnosti
| Režim | allowInChangeSet | allowInReadOnly | Viditelné |
|---|---|---|---|
| Normální | - | - | ✅ |
| Sada změn aktivní | true | - | ✅ |
| Sada změn aktivní | false | - | ❌ |
| Pouze pro čtení | - | true | ✅ |
| Pouze pro čtení | - | false | ❌ |
Důležité informace k vkládání do iframe
Důležité technické požadavky a omezení při vkládání externího obsahu
⚠️ Kritické požadavky na konfiguraci serveru
Externí URL načítané ve vlastních panelech musí být speciálně navrženy pro vkládání do iframe. Cílový server MUSÍ poskytovat správné hlavičky zabezpečení HTTP, aby bylo vkládání povoleno.
Požadované hlavičky HTTP
Kritické — Hlavička X-Frame-Options:
X-Frame-Options: ALLOW-FROM {HOSTNAME}
Použijte svou skutečnou doménu aplikace. Tato hlavička umožňuje vaší aplikaci vložit externí obsah do iframe.
Moderní alternativa — Content Security Policy (CSP):
Content-Security-Policy: frame-ancestors 'self' {HOSTNAME}
Moderní prohlížeče preferují CSP před X-Frame-Options. Tato direktiva řídí, které domény mohou stránku vkládat do rámců. Nahraďte svou skutečnou doménou aplikace.
Doporučené — Další hlavičky zabezpečení:
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Referrer-Policy: strict-origin-when-cross-origin
Další hlavičky zabezpečení, které zlepšují bezpečnostní postavení vloženého obsahu.
Běžné problémy a řešení s iframe
HTTPS Smíšený obsah
Problém: Prohlížeč blokuje obsah HTTP, když nadřazená stránka používá HTTPS
Řešení: Zajistěte, aby všechny externí URL používaly protokol HTTPS. Moderní prohlížeče vyžadují zabezpečená připojení pro vkládání do iframe.
✅ https://external-app.com/panel
❌ http://external-app.com/panel
Problémy s cookies/relacemi
Problém: Ověřovací soubory cookie nefungují v iframech s různým původem
Řešení: Použijte SameSite=None; Secure pro soubory cookie, které musí fungovat v iframech, nebo implementujte ověřování založené na tokenech prostřednictvím parametrů URL.
Skripty pro zamezení vkládání do rámce
Problém: Kód JavaScriptu brání vkládání do iframe
Řešení: Odstraňte nebo upravte skripty, které kontrolují window.top !== window.self nebo podobnou logiku pro zamezení vkládání do rámce.
Responzivní design
Problém: Obsah se dobře nepřizpůsobuje omezením iframe
Řešení: Navrhněte rozvržení specifická pro iframe nebo použijte responzivní CSS, které dobře funguje v omezených prostorech. Zvažte nastavení velikosti panelu (velmi malý, malý, střední, velký).
Komunikace
Problém: Omezená komunikace mezi iframe a nadřazenou stránkou
Řešení: Použijte API postMessage pro bezpečnou komunikaci napříč původy, pokud vložený obsah potřebuje interagovat s nadřazenou aplikací.
Příklady konfigurace serveru
📝 Konfigurace domény — nahraďte {HOSTNAME} svou skutečnou doménou aplikace.
Apache (.htaccess):
Header always append X-Frame-Options "ALLOW-FROM {HOSTNAME}"
Header always set Content-Security-Policy "frame-ancestors 'self' {HOSTNAME}"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Nginx:
add_header X-Frame-Options "ALLOW-FROM {HOSTNAME}" always;
add_header Content-Security-Policy "frame-ancestors 'self' {HOSTNAME}" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
Node.js/Express:
app.use((req, res, next) => {
res.setHeader('X-Frame-Options', 'ALLOW-FROM {HOSTNAME}');
res.setHeader('Content-Security-Policy', "frame-ancestors 'self' {HOSTNAME}");
res.setHeader('X-Content-Type-Options', 'nosniff');
res.setHeader('X-XSS-Protection', '1; mode=block');
next();
});
💡 Testování kompatibility iframe: Před nasazením otestujte svou externí URL vytvořením jednoduchého souboru HTML s iframem směřujícím na váš obsah. Otevřete jej v prohlížeči a zkontrolujte konzoli pro vývojáře, zda neobsahuje chyby související s rámcem.
Vlastní odkazy [badge:Links|info]
Odkazy na úrovni pole, které se zobrazují na polích editoru a otevírají externí aplikace s kontextovými daty
[try:/customLinks|Spravovat vlastní odkazy →|right]
K čemu jsou vlastní odkazy dobré?
Vlastní odkazy vám umožňují přidávat kontextové odkazy ke konkrétním polím v rozhraní editoru. Tyto odkazy mohou otevírat externí aplikace, vyhledávat v databázích nebo navigovat do souvisejících systémů, všechny naplněné daty z aktuálního záznamu.
- Přidejte odkazy přímo k popiskům polí, ikonám vedle vstupních polí nebo tlačítkům pod poli
- Otevírejte externí aplikace s kontextem z aktuálního záznamu (např. jméno, ID, uživatelské informace)
- Odkazy jsou viditelné pouze tehdy, když má vybrané pole hodnotu
- Podpora podmíněného zobrazení na základě výrazů filtru
- Respektují omezení sady změn a režimu pouze pro čtení
Běžné případy použití
🔗 Odkaz na systém CRM
Přidejte odkaz na pole jména zákazníka, který otevře záznam zákazníka ve vašem systému CRM.
🔍 Vyhledat v databázi EAN
Přidejte odkaz na pole EAN pro vyhledání informací o produktu v externí databázi.
🛒 Otevřít v e-commerce
Přidejte odkaz pro zobrazení produktu na frontendu vaší e-commerce platformy.
Pozice odkazů
Vlastní odkazy se mohou zobrazit ve třech různých pozicích vzhledem k poli:
Pozice popisku
Popisek pole se stane klikatelným odkazem. Po kliknutí se otevře externí URL. To je užitečné pro zviditelnění celého popisku jako interaktivního prvku.
Pozice ikony
Malé tlačítko s ikonou se zobrazí za vstupním polem. Více odkazů s ikonami se může zobrazit vedle sebe. To je užitečné pro rychlý přístup bez změny vzhledu pole.
Pozice pod
Odkaz se zobrazí jako malý textový odkaz pod vstupním polem. Více odkazů se může zalomit na více řádků. To je užitečné pro sekundární akce, které nepotřebují okamžitou viditelnost.
Konfigurační pole
Základní vlastnosti
name— Text odkazu zobrazený uživatelůmentityId— Cílová entita pro odkazcolumns— Pole ID polí, kde se má odkaz zobraziticon— Ikona zobrazená s odkazem (pro pozice ikony a pod)position— Kde se má odkaz zobrazit: “label”, “icon” nebo “under”
Konfigurace akce
action— Typ akce (aktuálně je podporováno pouze “openUrl”)url— Šablona cílové URL s proměnnými zástupnými symboly
Podmíněné zobrazení
condition— Volitelný výraz filtru pro zobrazení/skrytí odkazuallowInChangeSet— Zobrazit odkaz, když je sada změn aktivníallowInReadOnly— Zobrazit odkaz v režimu pouze pro čtení
Proměnné šablony URL
URL může obsahovat zástupné symboly, které jsou nahrazeny skutečnými daty po kliknutí na odkaz:
Data záznamu
{data.fieldName}— Hodnota libovolného pole z aktuálního záznamu (např.{data.name},{data.ean}){objectIds}— ID aktuálního záznamu{entityId}— Identifikátor entity
Informace o uživateli
{user.id}— ID aktuálního uživatele{user.username}— Uživatelské jméno aktuálního uživatele{user.email}— E-mailová adresa aktuálního uživatele
Systémové informace
{language}— Kód aktuálního jazyka UI{orgId}— ID aktuální organizace
Příklad šablony URL:
https://crm.example.com/customer?name={data.name}&email={data.email}&lang={language}&user={user.username}
Pravidla viditelnosti
⚠️ Důležité: Požadavek na hodnotu pole
Vlastní odkazy jsou **viditelné pouze tehdy, když má přidružené pole hodnotu**. Pokud je pole prázdné (null, undefined nebo prázdný řetězec), odkaz se nezobrazí, i když jsou splněny všechny ostatní podmínky.
Příklad podmíněného zobrazení
Můžete použít výrazy filtru k zobrazení odkazů pouze tehdy, když jsou splněny konkrétní podmínky:
platform.code = 'shoptet'
Tento odkaz se zobrazí pouze tehdy, když je produkt na platformě Shoptet.
Příklad konfigurace
Kompletní příklad vlastního odkazu:
{
"name": "View in CRM",
"entityId": "products",
"columns": ["name", "ean"],
"icon": "ExternalLink",
"position": "icon",
"action": "openUrl",
"url": "https://crm.example.com/product?ean={data.ean}&name={data.name}&user={user.email}",
"condition": "platform.code = 'shoptet' AND status = 'active'",
"allowInChangeSet": false,
"allowInReadOnly": true,
"disabled": false
}
Tento odkaz se zobrazí jako ikona vedle polí “name” a “ean”, když je produkt na platformě Shoptet, je aktivní a pole má hodnotu. Otevře CRM s EAN produktu, názvem a e-mailem aktuálního uživatele.
💡 Doporučené postupy
- Použijte pozici ikony pro často přístupné odkazy, aby bylo UI čisté
- Použijte pozici popisku, když je odkaz primární akcí pro dané pole
- Použijte pozici pod pro sekundární nebo méně běžné akce
- Názvy odkazů udržujte krátké a popisné
- Testujte šablony URL s různými daty záznamů, abyste zajistili správnou funkci
- Používejte podmínky k zobrazení odkazů pouze tehdy, když jsou relevantní
- Zvažte použití `allowInReadOnly=true` pro odkazy pouze pro zobrazení
Barvy sloupců [badge:Colours|success]
Podmíněné barvy pozadí pro buňky datové mřížky
[try:/columnColours|Spravovat vlastní barvy →|right]
Klíčové vlastnosti
- Aplikujte barvy pozadí na buňky datové mřížky na základě podmínek filtru
- Cílí na všechny sloupce nebo konkrétní sloupce v entitě
- Pro každou entitu lze definovat více pravidel barev
- Vyhodnocováno v reálném čase, jak se data mění
- Skvělé pro vizuální zvýraznění důležitých dat (např. položky po splatnosti, úrovně zásob)
Konfigurační pole
Základní vlastnosti
name— Popisný název pro pravidlo barvyentityId— Cílová entita pro pravidlo barvycolour— Barva pozadí (hex formát, např. #ff0000)description— Volitelný popis pravidla
Filtrování
filter— Podmínka podobná SQL, která určuje, kdy se má barva použít- Příklad:
status = 'overdue' AND priority = 'high'
- Příklad:
Cílení na sloupce
allColumns— Použít barvu na všechny sloupce v řádkucolumns— Pole konkrétních názvů sloupců k obarvení (pokud je allColumns false)- Příklad:
["price", "discount", "total"]
- Příklad:
Ovládání
disabled— Dočasně zakázat pravidlo barvy bez jeho smazání
Případy použití
Zvýraznění stavu
Zvýrazněte řádky na základě hodnot stavu. Například zobrazte úkoly po splatnosti červeně, dokončené úkoly zeleně a probíhající úkoly žlutě.
Příklad konfigurace:
Entity: tasks
Filter: status = 'overdue'
Colour: #ffcccc (light red)
All Columns: true
Upozornění na prahové hodnoty
Zvýrazněte konkrétní sloupce, když hodnoty překročí prahové hodnoty. Například zvýrazněte sloupec zásob červeně, když inventář klesne pod minimální úroveň.
Příklad konfigurace:
Entity: products
Filter: stock < minimumStock
Colour: #ff6666 (red)
All Columns: false
Columns: ["stock"]
Vizualizace priorit
Použijte různé barvy pro různé úrovně priorit, abyste uživatelům pomohli rychle identifikovat položky s vysokou prioritou ve velkých datových sadách.
Příklad konfigurace:
Entity: orders
Filter: priority = 'urgent'
Colour: #ffe6e6 (light red)
All Columns: true
Finanční ukazatele
Zvýrazněte finanční data na základě podmínek, jako jsou záporné zůstatky, neuhrazené platby nebo ziskové marže pod cílovými hodnotami.
Příklad konfigurace:
Entity: invoices
Filter: balance < 0
Colour: #fff3cd (light yellow)
All Columns: false
Columns: ["balance", "status"]
Chování a priorita
Pořadí vyhodnocení
Pravidla pro barvení sloupců se vyhodnocují pro každý řádek v mřížce. Pokud se řádku shoduje více pravidel, použije se poslední odpovídající pravidlo (v pořadí, v jakém se objevují v databázi).
Dopady na výkon
Barvy sloupců se vyhodnocují v reálném čase, jak se mění data. Pro nejlepší výkon, zejména u velkých datových sad, udržujte výrazy filtru jednoduché a efektivní.
Deaktivovaná pravidla
Použijte pole disabled k dočasnému vypnutí pravidel pro barvení bez jejich odstranění. To je užitečné pro testování nebo sezónní úpravy.
💡 Doporučené postupy
- Používejte jemné barvy, které nenarušují čitelnost textu
- Omezte počet pravidel pro barvení na entitu, abyste předešli vizuálnímu přeplnění
- Testujte barevné kombinace z hlediska přístupnosti (kontrastní poměry)
- Dávejte pravidlům popisné názvy, abyste je později snáze udržovali
- Zvažte uživatelské preference – někteří uživatelé mohou být barvoslepí
Poznámky k implementaci
Výkon
Přizpůsobení se načítají a filtrují efektivně pomocí React hooků se správnou správou závislostí a atomickými aktualizacemi stavu, aby se zabránilo blikání uživatelského rozhraní.
Zabezpečení
Všechna přizpůsobení respektují základní systém oprávnění a řízení přístupu k entitám. Uživatelé mohou vidět a interagovat pouze s přizpůsobeními pro entity, ke kterým mají přístup.