Automated summary
Provides the Soneta / enova365 design system rules (light and dark palettes, typography, layout, components, spacing, shadows, animations) for building web interfaces that look consistent with the enova365 ERP.
Strengths
- Thorough colour tokens documented separately for the light and dark themes (header, sidebar, surfaces, text, row states)
- Covers the core components of a business app: buttons, forms, tables, sidebar, header, tiles and modals
- Stack-agnostic: the rules apply equally to plain HTML/CSS, React, Vue or Tailwind
- Enforces a consistent six-state model for every component (default, hover, focus, pressed, selected, disabled)
Limitations
- It is a text-only reference: no CSS variables file or ready-made component library ships with it, so everything must be transcribed by hand
- The semantic colour table is incomplete (it stops at the danger red), so error and warning values must be filled in by the implementer
- Written in Polish and silent on accessibility concerns such as contrast, keyboard navigation and ARIA
Use it when you need to design or restyle a dashboard, form, login page or admin panel in the green enterprise look of enova365.
Avoid it if the project does not target Soneta/enova365 branding, or if you need a finished, accessibility-certified component library.
Security analysis
SafeThe document is a pure UI/design-system reference (color tokens, typography tables, layout guidance) written in Polish. It declares no tools, contains no code that executes, no shell commands, no network calls, no credential handling, and no instructions to disable safety mechanisms. The only minor consideration is that it reproduces what appear to be vendor/proprietary design tokens and font names from enova365, which is an IP concern rather than an execution risk. Overall there is no meaningful attack surface in listing this skill.
No concerns found
How this analysis is madeExamples
Zbuduj w React dashboard w stylu enova365: szmaragdowy header, ciemnozielony sidebar z pozycjami menu, karty z KPI i tabela faktur z hoverem i wierszem zaznaczonym.Create a login page styled after the Soneta enova365 design system, with the #016E46 brand colour, light theme surfaces and proper focus states on the inputs.Take this existing Tailwind admin panel and adapt it to the enova365 design system, adding a light/dark theme switch that follows the Soneta colour tokens.name: soneta-ui-style description: "Design system Soneta / enova365 do budowania aplikacji webowych spójnych wizualnie z enova365 ERP: palety kolorów (jasny/ciemny), typografia, layout, komponenty UI (przyciski, formularze, tabele, sidebar, header, kafelki, modale), odstępy, cienie, ikony SVG, animacje, responsywność. Używaj gdy użytkownik: (1) prosi o zaprojektowanie, zbudowanie lub ostylowanie strony/aplikacji w stylu Soneta/enova365; (2) wspomina 'styl enova', 'styl Soneta', 'design system enova365', 'UI enova'; (3) chce dashboard, formularz, stronę logowania, panel administracyjny w estetyce enova365; (4) prosi o landing page lub aplikację z zielonym motywem enterprise w stylu Soneta; (5) pyta o kolory, czcionki, komponenty lub wzorce UI enova365/Soneta. Działa z każdym stackiem (HTML/CSS, React, Vue, Tailwind, itp.)."
Soneta / enova365 — Design System
Ten skill opisuje reguły projektowania interfejsów użytkownika wizualnie spójnych z aplikacją enova365 ERP firmy Soneta. Stosuj te reguły budując strony internetowe, dashboardy, formularze i aplikacje webowe w estetyce Soneta.
Zasady przewodnie
- Szmaragdowa zieleń jako kolor wiodący —
#016E46dominuje w headerze, sidebarze (motyw jasny), przyciskach akcji, stanach focus i linkach - Enterprise minimalizm — czysty, profesjonalny interfejs bez ozdobników, nacisk na czytelność danych
- Wysoka gęstość informacji — kompaktowe wiersze (
30-36px), pola blisko siebie, minimalne marginesy - Płaski design z subtelnymi cieniami — brak skeuomorfizmu, delikatne bordery i cienie
- Hierarchia przez wagę czcionki, nie rozmiar — różnice wynikają z
font-weight(400 vs 600), a nie drastycznych zmian rozmiaru - Dwa motywy: jasny i ciemny — oba używają tego samego systemu zmiennych CSS
- Spójność stanów — każdy komponent definiuje 6 stanów: default, hover, focus, pressed, selected, disabled
1. Kolory
1.1 Brand (wspólne)
| Token | Wartość | Użycie |
|-------|---------|--------|
| --brand_500 | #016E46 | Kolor główny — header, focus, linki |
| --brand_600 | #015436 | Brand ciemny |
| --brand_700 | #01422A | Brand najciemniejszy |
| --brand_300 | #3A8E6F | Brand jasny |
| --brand_200 | #02E391 | Brand najjaśniejszy |
| Akcent cyjan | #31e2b8 | Logo — turkusowy |
| Akcent błękitny | #6acbf3 | Logo — jasny niebieski |
1.2 Motyw jasny (White)
| Przeznaczenie | Kolor |
|---------------|-------|
| Tło główne (content area) | rgb(230, 231, 231) — jasnoszare, wydziela białe karty |
| Tło headera | #016E46 — szmaragdowy |
| Tło sidebara | #003320 — bardzo ciemna zieleń, ciemniejszy niż header |
| Sidebar hover | rgba(0, 70, 38) |
| Sidebar selected | rgba(0, 88, 48) |
| Tekst sidebara | #FFFFFF |
| Tło surface/karty | #FFFFFF |
| Tło sekcji | #F5F5F5 – #FAFAFA |
| Tekst podstawowy | #212121 – #333333 |
| Tekst drugorzędny | #757575 – #A3A3A3 |
| Tekst etykiet | #616161 |
| Obramowanie inputów | #BDBDBD – #E0E0E0 |
| Obramowanie focus | #016E46 |
| Wiersz zaznaczony | rgba(46, 125, 50, 0.08) |
| Wiersz hover | rgba(0, 0, 0, 0.04) |
| Separator | #E0E0E0 |
1.3 Motyw ciemny (Black)
| Przeznaczenie | Kolor |
|---------------|-------|
| Tło główne | #1E1E1E – #212121 |
| Tło headera | #1B5E20 – #0D3B14 — ciemnozielony |
| Tło sidebara | #262626 — grafitowy, nie zielony |
| Tło surface/karty | #2A2A2A – #303030 |
| Tekst podstawowy | #E0E0E0 – #F0F0F0 |
| Tekst drugorzędny | #A3A3A3 |
| Tekst etykiet | #BDBDBD |
| Obramowanie inputów | #424242 – #555555 |
| Obramowanie focus | #016E46 — identyczny jak w jasnym |
| Wiersz zaznaczony | rgba(46, 125, 50, 0.15) |
| Wiersz hover | rgba(255, 255, 255, 0.05) |
| Separator | #424242 |
| Overlay modal | rgba(0, 0, 0, 0.7) |
1.4 Kolory semantyczne
| Przeznaczenie | Kolor |
|---------------|-------|
| Success / Primary action | #2E7D32 — przyciski "Zapisz" |
| Danger | #C62828 – #D32F2F — przyciski "Zamknij" |
| Warning | #F57C00 |
| Info | #1976D2 |
| Link | #016E46 |
| Disabled | #A3A3A3 z opacity |
1.5 Paleta neutralna (z PaletteBase.css)
Wartości w formacie RGB (bez rgb()):
| Token | Wartość | HEX |
|-------|---------|-----|
| --neutral_0 | 255, 255, 255 | #FFFFFF |
| --neutral_100 | 245, 245, 245 | #F5F5F5 |
| --neutral_200 | 229, 229, 229 | #E5E5E5 |
| --neutral_300 | 212, 212, 212 | #D4D4D4 |
| --neutral_500 | 109, 115, 113 | #6D7371 |
| --neutral_700 | 77, 81, 80 | #4D5150 |
| --neutral_800 | 38, 38, 38 | #262626 |
| --neutral_850 | 33, 33, 33 | #212121 |
| --neutral_900 | 23, 23, 23 | #171717 |
Semantyczne: --red_600: #DC2626, --green_400: #10C200, --blue_500: #3B82F6, --orange_500: #F97316, --yellow_400: #F3D930, --emerald_400: #139041.
2. Typografia
Czcionki
| Przeznaczenie | Czcionka | Fallback |
|---------------|----------|----------|
| Główna (--primaryFont) | "FiraSans" | Arial, sans-serif |
| Alternatywna (--tertiaryFont) | "ROBOTO" | sans-serif |
| Nagłówki | "SourceSansSemiBold" | Arial, sans-serif |
| Branding/logo | "Lato" | sans-serif |
| Monospace | Consolas | "Courier New", monospace |
Gdy nie możesz załadować czcionek Soneta, użyj "Roboto", "Segoe UI", Arial, sans-serif jako bezpiecznego zamiennika.
Rozmiary
| Przeznaczenie | Rozmiar |
|---------------|---------|
| Captions | 10px – 11px |
| Etykiety pól | 12px (--font_size_label: 9pt) |
| Tekst w inputach | 13px – 14px |
| Body (podstawowy) | 14px |
| Nagłówki sekcji | 14px – 16px + font-weight: 600 |
| Tytuł formularza | 16px – 18px |
| Duże nagłówki | 20px – 24px |
| Logo / ekran logowania | 24px – 32px |
Grubości
| Styl | Wartość | Użycie |
|------|---------|--------|
| Light | 300 | Delikatne teksty |
| Regular | 400 | Domyślna |
| Medium | 500 | Przyciski |
| Semi-bold | 600 | Nagłówki sekcji, aktywne menu |
| Bold | 700 | Tytuły |
Wysokość linii
Body: 18-20px, wiersze tabeli: 20-24px, inputy: 24-26px, nagłówki: 28-32px.
Letter-spacing
Normalny tekst: 0–0.1px, etykiety: 0.15–0.25px, przyciski uppercase: 0.6–2px.
3. Layout
Struktura główna
┌──────────────────────────────────────────────────────┐
│ HEADER BAR (~48-56px) │
│ [Logo] [Search] [Ikony] [Avatar] │
├──────────┬───────────────────────────────────────────┤
│ │ BREADCRUMB (~32px) │
│ ├───────────────────────────────────────────┤
│ SIDEBAR │ TOOLBAR + TABS (~44-48px) │
│ (250px) ├───────────────────────────────────────────┤
│ │ │
│ Drzewo │ CONTENT AREA │
│ nawigacji│ (Formularz / Lista / Dashboard) │
│ │ │
├──────────┴───────────────────────────────────────────┤
│ STATUS BAR (opcjonalnie) │
└──────────────────────────────────────────────────────┘
Wymiary
| Element | Wymiar |
|---------|--------|
| Header bar | 48px – 56px |
| Sidebar rozwinięty | 240px – 260px |
| Sidebar zwinięty | 48px – 56px |
| Breadcrumb | 28px – 32px |
| Toolbar | 40px – 48px |
| Status bar | 24px – 28px |
| Min width | 1024px |
System layoutu
- Flexbox dominuje —
flex-direction: rowdla sidebar+content,columndla sekcji - Grid sporadycznie — dashboard kafelków
justify-content: space-betweenw toolbarzealign-items: centerpraktycznie wszędzie
4. Komponenty UI
4.1 Przyciski
| Wariant | Tło | Tekst | Border | Użycie |
|---------|-----|-------|--------|--------|
| Primary | #2E7D32 | #FFF | brak | "Zapisz", "Zaloguj" |
| Secondary | przezroczyste | inherit | 1px solid szary | "Czynności" |
| Tertiary | przezroczyste | inherit | brak | Ikony toolbar |
| Danger | #C62828 | #FFF | brak | "Zamknij" |
Wymiary: height 32-38px (standard) / 40-44px (duży), padding 6px 12px / 8px 16px / 10px 20px, border-radius 4-6px, font 13-14px weight 500-600, gap ikona+tekst 6-8px.
Stany: hover — lekkie rozjaśnienie; focus — box-shadow: inset 0 0 3px 1px #016E46; pressed — przyciemnienie; disabled — opacity 0.5-0.6.
/* Przykład: przycisk Primary */
.btn-primary {
background-color: #2E7D32;
color: #FFFFFF;
border: none;
border-radius: 4px;
padding: 6px 16px;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: background-color 0.2s ease;
}
.btn-primary:hover { filter: brightness(1.1); }
.btn-primary:focus { box-shadow: inset 0 0 3px 1px #016E46; }
.btn-primary:disabled { opacity: 0.5; cursor: default; }
4.2 Pola formularza
| Właściwość | Jasny | Ciemny |
|------------|-------|--------|
| Tło | #FFFFFF | #2A2A2A |
| Tekst | #212121 | #E0E0E0 |
| Border | 1px solid #BDBDBD | 1px solid #555555 |
| Border-radius | 4px | 4px |
| Wysokość | 30-32px | 30-32px |
| Padding | 4px 8px | 4px 8px |
| Font-size | 13-14px | 13-14px |
Focus: border #016E46 + opcjonalnie box-shadow: inset 0 0 3px 1px #016E46. Error: czerwony shadow. Warning: pomarańczowy shadow. Disabled: tło #F5F5F5 / #1A1A1A.
Etykiety: font 12px, kolor #757575 (jasny) / #BDBDBD (ciemny), weight 400.
Układ formularza: siatka 2-4 kolumn, etykieta po lewej (~100-140px stała szerokość), input flex: 1, gap między wierszami 8-12px, sekcje oddzielone nagłówkami z marginesem 16-24px.
4.3 Checkbox
Rozmiar 16-18px, border-radius 2-3px, checked: zielone tło #2E7D32 z białym checkmarkiem.
4.4 Tabele / Listy
Nagłówek: tło #F5F5F5 (jasny) / #2A2A2A (ciemny), tekst #616161 / #BDBDBD, font 12-13px weight 600, padding 8px 12px.
Wiersze: tło naprzemienne #FFF / #FAFAFA (jasny), #1E1E1E / #252525 (ciemny), height 30-36px, padding 4-6px 12px, font 13-14px. Hover: rgba(0,0,0,0.04) / rgba(255,255,255,0.05). Selected: zielony tint rgba(46,125,50,0.08) / 0.15.
4.5 Zakładki (Tabs)
Styl outline: padding 6px 12px, border 1px solid szary, border-radius 4px, font 13px, aktywna — zielone tło lub zielony border, gap 4-6px.
Styl page tabs: przylegające (gap: 0), aktywna — wyróżnione tło + pogrubiony tekst.
4.6 Header Bar
- Tło:
#016E46(jasny) /#1B5E20(ciemny) - Wysokość:
48-56px, padding:0 16px - Logo: ZAWSZE osadzać poniższe oficjalne SVG inline (nie wymyślać własnego logo!):
<svg viewBox="0 0 200 33.5" height="22" fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg">
<path d="M69.7,0.1C60.5,0.1,53,7.6,53,16.7c0,9.2,7.5,16.7,16.7,16.7c9.2,0,16.7-7.5,16.7-16.7C86.4,7.6,78.9,0.1,69.7,0.1z M153.2,4.7c-2.8,0-5.4,0.9-6.7,1.8l1,3.2c1-0.6,2.9-1.5,4.8-1.5c2.6,0,3.7,1.3,3.7,3c0,2.3-2.6,3.2-4.6,3.2h-2v3.2h2c2.7,0,5.3,1.2,5.3,4c0,1.8-1.3,3.7-4.7,3.7c-2.2,0-4.4-0.9-5.3-1.4l-1,3.4c1.3,0.8,3.7,1.6,6.6,1.6c5.8,0,9.1-3.1,9.1-7.1c0-3.2-2.3-5.3-5.2-5.8v-0.1c2.9-1,4.3-3,4.3-5.5C160.5,7.3,158,4.7,153.2,4.7L153.2,4.7z M178.3,4.7c-0.4,0-0.8,0-1.3,0.1c-3.3,0.3-6.2,1.4-8.3,3.5c-2.4,2.3-4.1,5.9-4.1,10.4c0,5.8,3.1,10.1,8.8,10.1c5,0,8.3-3.9,8.3-8.4c0-4.8-3.1-7.6-7.2-7.6c-2.3,0-4.1,0.9-5.3,2.3h-0.1c0.6-3.2,2.9-6.2,7.9-6.8c0.9-0.1,1.6-0.1,2.2-0.1V4.7C179,4.7,178.7,4.7,178.3,4.7L178.3,4.7z M187.1,5.1l-1.5,11.8c0.9-0.1,1.9-0.2,3.2-0.2c4.7,0,6.6,1.8,6.6,4.5c0,2.8-2.5,4.3-5.1,4.3c-2.1,0-4.1-0.7-5.2-1.2l-0.9,3.4c1.2,0.7,3.5,1.4,6.2,1.4c5.7,0,9.4-3.6,9.4-8.1c0-2.8-1.3-4.8-3.1-5.9c-1.5-1-3.6-1.5-5.7-1.5c-0.7,0-1.2,0-1.7,0.1l0.7-4.7h9V5.1C199.3,5.1,187.1,5.1,187.1,5.1z M65.3,7.1c0.3,0,0.8,0.2,1.4,0.5l12.7,7.7c0.5,0.3,0.9,0.9,0.9,1.5c0,0.6-0.4,1.2-0.9,1.6l-13.1,7.9c-0.3,0.2-0.6,0.2-0.9,0.2c-1,0-1.8-0.8-1.8-1.8V8.9C63.5,7.9,64.4,7.1,65.3,7.1z M173.2,16.1c2.6,0,4.1,1.9,4.1,4.6c0,2.8-1.5,4.8-3.7,4.8c-2.9,0-4.4-2.5-4.4-5.6c0-0.6,0.1-1,0.3-1.4C170,17.1,171.5,16.1,173.2,16.1z"/>
<path d="M93.1,4.3c-0.2,0-0.3,0.1-0.5,0.1l-0.4,0.2c-0.7,0.4-1.1,1.3-0.8,2.1l9,21.1c0.5,0.6,1.6,1,2.8,1c1.2,0,2.3-0.4,2.8-1.1l8.5-21.3c0.1-0.8-0.3-1.7-1.1-2l-0.3-0.1c-0.1,0-0.2-0.1-0.3-0.1h-0.5c-0.5,0.1-1,0.3-1.3,0.8l-7.8,20.1L95,5.2c-0.3-0.5-0.8-0.9-1.4-0.9C93.6,4.3,93.1,4.3,93.1,4.3z M9.1,4.4C3,4.4,0,7.8,0,14.9v3c0,7.5,5.1,10.5,11.2,10.5h4.7c0.9-0.1,1.5-0.7,1.7-1.6v-0.5c-0.1-0.8-0.8-1.5-1.6-1.6h-4.8c-2.7,0-7.3,0-7.4-6h12.4c1,0,1.9-0.8,1.9-1.9v-1.8C18,7.7,15.2,4.4,9.1,4.4z M28.9,4.4c-1,0-1.9,0.8-1.9,1.9v20.3c0,0.9,0.7,1.6,1.6,1.8h0.5c0.8-0.1,1.5-0.8,1.6-1.6V8.1h3.8c3.2,0,7.5,0.4,7.5,6.8v12c0.2,0.8,0.9,1.4,1.7,1.4h0.3c0.9,0,1.6-0.7,1.7-1.5V14.9c0-7.4-5-10.5-11.3-10.5C34.6,4.4,28.9,4.4,28.9,4.4z M121.1,4.4c-0.9,0.1-1.6,0.9-1.6,1.8v0.1c0,0.9,0.7,1.7,1.6,1.8h6.4c2.9,0,4.8,0.4,5.2,5.2H128c-2.2,0-8.9,0-8.9,7.4c0,5.6,3.9,7.6,7.3,7.6h8.2c1,0,1.9-0.8,1.9-1.9V14.9c0-7.4-2.7-10.5-8.9-10.5L121.1,4.4L121.1,4.4z M9.1,8.1c2.8,0,5.2,0.5,5.2,6.7H3.7C3.7,8.6,6.3,8.1,9.1,8.1z M128,17h4.7v7.6h-6.4c-1.6,0-3.6-0.7-3.6-3.9C122.8,18.2,123.5,17,128,17z"/>
</svg>
- Search: białe tło, ciemny tekst, ikona lupy, border-radius
4px - Ikony: białe SVG
20-24px - Avatar: kółko
32-36px, zielone tło + biały inicjał - Shadow:
0 2px 4px rgba(0,0,0,0.1)na dole
4.7 Sidebar
Motyw jasny: tło #003320 (ciemniejsza zieleń niż header), biały tekst, białe ikony SVG 16-18px. Motyw ciemny: tło #262626 (grafitowy), jasnoszary tekst.
Kształt: border-radius 8-12px, margin 4-6px (góra/lewo/dół) — pływający panel z zaokrąglonymi rogami.
Struktura: (1) pasek sterowania "Zwiń"/"Odepnij", (2) pole wyszukiwania, (3) drzewo nawigacji z chevronami.
Hover: rgba(255,255,255,0.08) (jasny) / 0.05 (ciemny). Aktywny: rgba(255,255,255,0.12) + pogrubienie. Padding elementu: 8px 16px, wcięcie podpoziomów: +16-20px.
4.8 Breadcrumb
Wysokość 28-32px, font 12px, kolor #757575 (linki), ostatni segment #212121 (nie-link), separator > kolor #BDBDBD z margin: 0 4px, ikona Home SVG 14-16px, padding 4px 16px.
4.9 Modal / Dialog
| Właściwość | Jasny | Ciemny |
|------------|-------|--------|
| Overlay | rgba(0,0,0,0.5) | rgba(0,0,0,0.7) |
| Tło | #FFFFFF | #2A2A2A |
| Border-radius | 8-12px | 8-12px |
| Shadow | 0 4px 20px rgba(0,0,0,0.25) | …0.5) |
| Padding | 20-25px | 20-25px |
| Szerokość | 400-600px | 400-600px |
4.10 Dropdown / Menu kontekstowe
Tło białe/ciemne, border 1px solid #E0E0E0 / #424242, border-radius 8px, shadow 0 4px 12px rgba(0,0,0,0.15) / 0.4, padding elementu 8px 16px, font 13-14px, ikony kolorowe 16-20px po lewej.
4.11 Ekran logowania
Dwuczęściowy layout ~50/50: lewa — zdjęcie/branding z logo, prawa — formularz logowania wycentrowany w pionie. Logo "enova365" z akcentami kolorystycznymi. Hasło: "System ERP dla ambitnego biznesu" 22px kursywa. Przycisk "Zaloguj": zielony, pełna szerokość, 40px height. Footer: "by Soneta ®".
4.12 Dashboard — Kafelki (Tiles)
Tło content area: rgb(230, 231, 231) (jasny) — wydziela białe kafelki.
Kafelek: width 352px, min-height 80px, border-radius 12px, tło białe/ciemne, border-left 4px solid [kolor_modułu] — kolorowy akcent, shadow 0 0 10px 1px rgba(229,229,229), padding 10px 16px.
Układ wewnętrzny kafelka: display: flex; align-items: center; gap: 10px — ikona po lewej, tekst (tytuł + opis) po prawej. Ikona jest wycentrowana w pionie względem bloku tekstowego.
Ikona w kafelku: rozmiar 20px × 20px, kolor = kolor modułu (taki sam jak border-left). Ikona to czyste SVG liniowe (outline) — same kontury, bez koła/okręgu za ikoną, bez żadnego tła pod ikoną. Ikona renderowana bezpośrednio na białym tle kafelka.
Katalog SvgResources/ tego skilla zawiera ~370 gotowych ikon SVG enova365. Każda ikona ma viewBox="0 0 160 160" i używa fill na elementach <path> (cienkie kształty dające efekt liniowy). Aby użyć ikony w kafelku, skopiuj zawartość pliku SVG, ustaw width="20" height="20" i nadaj kolor modułu przez atrybut fill na elemencie <svg> lub <path>.
Mapowanie modułów na pliki ikon SVG (katalog SvgResources/):
| Moduł | Plik ikony | Kolor |
|-------|-----------|-------|
| Terminarz | kalendarz.svg | Zielony #2E7D32 |
| Kadry i płace | osoba.svg | Pomarańczowy #F57C00 |
| Księgowość | kalkulator.svg | Fioletowy #7B1FA2 |
| Handel | towar.svg | Żółty #F9A825 |
| CRM | crm.svg | Zielonkawy #2E7D32 |
| Produkcja | fabryka.svg | Magenta #C2185B |
| Ewidencja dokumentów | dokument.svg | Niebieski #1976D2 |
| Ewidencja Środków Pieniężnych | monety.svg | Cyjan #00838F |
| Księga inwentarzowa | portfel.svg | Oliwkowy #827717 |
| Ewidencja pojazdów | samochod.svg | Czerwony #C62828 |
| Business Intelligence | wykres.svg | Złoty #F9A825 |
Przykład osadzenia ikony z pliku kalendarz.svg w kafelku:
<svg width="20" height="20" viewBox="0 0 160 160" fill="#2E7D32" xmlns="http://www.w3.org/2000/svg">
<path d="M150 15.002h-40.035V5.037c0-2.762-2.237-5-5-5s-5 2.238-5 5V15h-40V5.037c0-2.762-2.238-5-5-5s-5 2.238-5 5V15H10C4.478 15 0 19.477 0 25v125c0 5.522 4.478 10 10 10h140c5.522 0 10-4.478 10-10V25c0-5.52-4.478-9.998-10-9.998zM150 150H10V25h39.965v5.038c0 2.762 2.238 5 5 5s5-2.238 5-5v-5.036h40v5.038c0 2.763 2.237 5 5 5s5-2.237 5-5v-5.037H150V150zm-35-69.998h10c2.76 0 5-2.24 5-5v-10c0-2.76-2.24-5-5-5h-10c-2.76 0-5 2.24-5 5v10c0 2.76 2.24 5 5 5zM115 120h10a5 5 0 0 0 5-5v-10c0-2.76-2.24-5-5-5h-10c-2.76 0-5 2.24-5 5v10c0 2.765 2.24 5 5 5zm-30-20H75c-2.76 0-5 2.24-5 5v10a5 5 0 0 0 5 5h10a5 5 0 0 0 5-5v-10c0-2.757-2.24-5-5-5zm0-39.998H75c-2.76 0-5 2.24-5 5v10c0 2.76 2.24 5 5 5h10c2.76 0 5-2.24 5-5v-10a5 5 0 0 0-5-5zm-40 0H35c-2.76 0-5 2.24-5 5v10c0 2.76 2.24 5 5 5h10c2.76 0 5-2.24 5-5v-10a5 5 0 0 0-5-5zM45 100H35c-2.76 0-5 2.24-5 5v10a5 5 0 0 0 5 5h10a5 5 0 0 0 5-5v-10c0-2.757-2.24-5-5-5z"/>
</svg>
Jeśli nie masz dostępu do plików SVG, narysuj prostą ikonę liniową inline — cienkie ścieżki <path> z fill="[kolor_modułu]", viewBox 0 0 160 160, bez tła i bez koła.
Tytuł: Roboto 16px weight 600, line-height 28px. Opis: Roboto 14px weight 400, kolor rgb(68, 70, 69), line-height 16px.
Layout kafelków: flex-wrap, gap 8px, tytuł grupy: 16px weight 500 uppercase.
Hover: tło #F5F5F5, active: brak shadow, focus: outline 2px.
4.13 Toolbar
Wysokość 40-48px, border-bottom separator, flex row align-items: center, gap 4-8px, padding 4px 16px. Przyciski outline/tertiary 30-32px height. Filtry: zielone tło, pill shape border-radius: 16-20px.
4.14 Scrollbar
Track przezroczysty, thumb #BDBDBD (jasny) / #555555 (ciemny), thumb hover #999 / #777, width 8-10px, border-radius 4-5px.
5. System odstępów (skala 4px)
| Token | Wartość | Użycie |
|-------|---------|--------|
| xs | 2px | Mikro-gap ikona↔tekst |
| sm | 4px | Padding małych elementów |
| md | 8px | Standardowy padding/gap |
| lg | 12px | Padding komórek, gap przycisków |
| xl | 16px | Padding sekcji, margin grup |
| 2xl | 20px | Padding kart/modali |
| 3xl | 24px | Margin między sekcjami |
| 4xl | 32px | Duże odstępy |
| 5xl | 40px | Bardzo duże odstępy |
6. Border-radius
| Element | Wartość |
|---------|---------|
| Inputy | 4px |
| Przyciski | 4-6px |
| Karty/kafelki | 8-12px |
| Modale | 8-12px |
| Pill/badge | 16-20px |
| Avatary | 50% |
| Tooltipy | 4-6px |
7. Cienie
| Kontekst | Wartość |
|----------|---------|
| Subtelny (karty) | 0 1px 3px rgba(0,0,0,0.08) |
| Standardowy (dropdown) | 0 2px 8px rgba(0,0,0,0.15) |
| Wyraźny (modal) | 0 4px 20px rgba(0,0,0,0.25) |
| Focus inset | inset 0 0 3px 1px #016E46 |
| Header | 0 2px 4px rgba(0,0,0,0.1) |
| Ciemny motyw | Alpha ×1.5 – ×2 |
8. Ikony
System ikon enova365: liniowe SVG (outline), viewBox 0 0 160 160, kolor przez fill (nie stroke), fill: currentColor lub bezpośredni kolor.
| Rozmiar | Wartość | Użycie |
|---------|---------|--------|
| Mały | 14-16px | Inline tekst, sidebar |
| Standardowy | 18-20px | Toolbar, menu |
| Duży | 24-32px | Nagłówki, dashboard |
Kolory: #616161 (jasny content), #BDBDBD (ciemny), #FFFFFF (na zielonym tle), #2E7D32 (aktywny).
Główne ikony: szukaj.svg (lupa), dom.svg (home), ustawienia.svg (trybik), dzwonek.svg (powiadomienia), osoba.svg (użytkownik), folder.svg, dokument.svg, dodaj.svg (+), usun.svg (kosz), zapisz.svg (dyskietka), anuluj.svg (X), filtr.svg.
Logo: Oficjalne SVG logo enova365 jest osadzone w sekcji 4.6 (Header Bar) powyżej. ZAWSZE kopiuj dokładnie ten kod SVG — nigdy nie wymyślaj własnej wersji logo ani nie próbuj odtwarzać go z tekstu + ikon. Na ciemnym tle użyj fill="#FFFFFF", na jasnym fill="#000000".
9. Animacje
| Właściwość | Wartość |
|------------|---------|
| Transition domyślny | all 0.2s ease |
| Hover | background-color 0.2s, color 0.2s |
| Opacity | opacity 0.3s ease |
| Sidebar collapse | width 0.3s ease |
10. Responsywność
| Breakpoint | Zachowanie | |------------|------------| | Desktop (>1200px) | Pełny layout: sidebar + content | | Tablet (768–1200px) | Sidebar zwinięty, rozwijany overlay | | Mobile (<768px) | Wersja mobilna — osobna aplikacja |
11. CSS Variables — konwencja nazewnictwa
Format: --{komponent}_{wariant}_{stan}_{właściwość}
Prefiksy: command_ (przyciski), input_ (formularze), nav_tree_ (sidebar), headerbar_, modal_, tooltip_, popup_, checkbox_, radio_, dp_ (date picker), scroll_, spinner_, dashboard_, bookmark_ (zakładki), path_ (breadcrumb), label_, verifier_ (walidacja).
Przykłady: --command_primary_hover_bg, --nav_tree_item_selected, --input_focused_border, --modal_bar_title_fg.
12. Kolory ikon modułów (menu główne)
Na dashboardzie ikony w kolorowych kółkach (border-radius 50%, 32-40px):
| Moduł | Kolor | |-------|-------| | Terminarz | Zielony | | Ewidencja dokumentów | Niebieski | | Kadry i płace | Pomarańczowy | | Księgowość | Fioletowy | | Handel | Żółty | | Produkcja | Magenta | | CRM | Zielonkawy |
Materiały referencyjne
Pełny przewodnik projektowy z większą ilością szczegółów: przeczytaj enova365-design-guide.md w katalogu tego skilla.
Pliki CSS z pełnymi paletami zmiennych:
wzorce/css/standard/PaletteBase.css— paleta jasna (~830 zmiennych)wzorce/css/standard/PaletteDark.css— paleta ciemna
Ikony SVG: katalog SvgResources/ zawiera ~370 ikon liniowych.
Pliki SCSS komponentów: katalog wzorce/css/fullbrowser/ — style poszczególnych komponentów (TileItem, Login, HeaderBar, NavPanelTree, Grid, itd.).
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/soneta-enova365-ui-design-system-mrwakfxo/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/soneta-enova365-ui-design-system-mrwakfxo/download' --output '.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo/SKILL.md.part' && mv '.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo/SKILL.md.part' '.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo/SKILL.md' && test -s '.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/soneta-ui-style' && cp -R '.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo' '.claude/skills/soneta-ui-style'Cursor
test -f '.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo/SKILL.md' && test -s '.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/soneta-ui-style' && cp -R '.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo' '.cursor/skills/soneta-ui-style'Codex
test -f '.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo/SKILL.md' && test -s '.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/soneta-ui-style' && cp -R '.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo' '.agents/skills/soneta-ui-style'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/soneta-enova365-ui-design-system-mrwakfxo'openskills read 'soneta-enova365-ui-design-system-mrwakfxo'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/soneta-enova365-ui-design-system-mrwakfxo/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.