Ai-Xis 6
Wprowadzenie

Układ aplikacji

Ekran aplikacji ma stały układ we wszystkich modułach.

Ekran aplikacji ma stały układ we wszystkich modułach. To, co się zmienia, to zawartość obszaru roboczego w środku ramki — reszta stoi w tym samym miejscu, żeby przełączenie modułu nie było przeprowadzką.

Rama obszaru roboczego

Całość zamyka jedna krawędź z poświatą. Ramka obszaru roboczego wypełnia całą ramę — od lewej krawędzi do prawej (od 2026-09-24): slidery jej nie zwężają, bo leżą NAD nią (patrz „Szuflady boczne" niżej). Widok mapy biegnie więc pod nimi przez pełną szerokość.

Animacja tła (migoczące kwadraty) działa tylko na stronie PROJEKTY, czyli podczas wyboru projektu. Po otwarciu projektu i przejściu do dowolnego innego modułu animacja znika, a rama ma jednolite tło w tym samym kolorze.

Paski boczne ramki

W modułach z mapą ramka ma po obu stronach pionowy pasek szerokości 50 px. Pasek menu u góry, stopka i paski boczne mają ten sam kolor ramy (od 2026-09-14 — wcześniej paski boczne były jaśniejsze), więc tworzą jedną obwódkę wokół obszaru roboczego; między nimi nie ma krawędzi, a sam środek ramki jest przezroczysty. W modułach bez mapy (PROJEKTY, ZADANIA…) pasków nie ma — przez cały obszar przeziera tło ramy (w PROJEKTY z animacją), a moduł stoi we własnej ramie z pełnym tłem:

  • Lewy pasek niesie toolbox rysowania w jednej kolumnie ikon (zestaw lucide, od 2026-09-13): przesuwaj, wybierz; punkt, linia, polilinia, poligon, prostokąt, trójkąt, okrąg (promień), okrąg (średnica); przetnij, wydłuż, podziel, odsuń, odbij; cofnij, ponów; zmierz (pomiar między dwoma wskazanymi punktami), prostopadły; dodaj warstwę. Ikony 20 px na przyciskach 36 px (od 2026-09-13). PRZESUWAJ jest wciśnięty, gdy żadne narzędzie nie jest czynne — mapa jest wtedy oddana zwykłemu przesuwaniu. Wciśnięty przycisk pokazuje czynne narzędzie, podpowiedź w tytule mówi, na jakim etapie stoi. Przy narzędziu ODSUŃ pod ikoną pojawia się pole odległości w metrach. Toolbox jest widoczny w GEO i CAD2D; w innych modułach pasek stoi pusty.
  • Stopka mapy: wskaźnik kursora, przyciąganie, siatka krzyży i grubości linii (ikona logs, od 2026-09-13) — przełączniki obok współrzędnych.
  • Prawy pasek jest na razie pusty — rezerwa na przyszłe przełączniki.
  • Uchwyt zmiany szerokości każdej szuflady to wąski pas na jej krawędzi od strony mapy: niewidoczny, dopóki nie najedzie na niego kursor (zmienia się wtedy na strzałki). Szerokość ciągnie się myszą, a po ustawieniu na nim fokusu — także strzałkami w lewo i w prawo.

Pasek górny

Zawiera przełącznik przestrzeni roboczej (GEO, CAD2D, CAD3D, GIS, BIM), okruszki z nazwą bieżącego modułu, szukanie i menu avatara. Z menu avatara wchodzi się w Ustawienia i przełącza jasność — od 2026-09-12 pasek nie ma osobnych przycisków motywu, a od 2026-09-18 nie ma też podmenu Paleta: aplikacja ma jedną paletę, BRAND (barwy strony ai-xis.com), w trybie jasnym i ciemnym. Pozycja Wyloguj (od 2026-09-20) zdejmuje projekt bieżący z sesji karty i wraca na stronę główną ai-xis.com; konta użytkownika jeszcze nie ma, więc nie ma czego wylogowywać poza tym.

Zakładki stoją w dwóch segmentach (od 2026-09-14, wzór Origin UI comp-431): przestrzenie robocze oraz moduły wspólne. Zakładki jednego segmentu są zlane w pasek z ramką. Czynna ma jaśniejsze tło i kreskę w kolorze akcentu u dołu. Moduł okienkowy, którego okno jest zminimalizowane, ma tę kreskę przygaszoną.

Lewy pasek menu i karta modułów

DRIVE, TABLICA, TERMINAL i ZADANIA nie mają zakładek w pasku górnym (od 2026-09-14) — otwiera się je wyłącznie ikoną w lewym pasku. Ikona modułu okienkowego (TABLICA, TERMINAL) otwiera okno albo przywraca je z minimalizacji; okno schowane ikona pokazuje obrysem. Bez otwartego projektu ikony tych modułów są wyszarzone, tak jak zakładki na górze. USTAWIENIA też nie mają zakładki — otwiera je ikona w lewym pasku albo pozycja Ustawienia w menu avatara. Pasek górny nie ma też menu NARZĘDZIA (od 2026-09-14): DOC i JSON Canvas otwiera ikona w lewym pasku.

Ikony modułów po lewej pochodzą z jednego rejestru (src/powloka/moduly.ts); ta sama lista karmi kartę menu wysuwaną z dolnego paska i okruszki w nagłówku. Dodanie modułu to dopisanie pozycji w rejestrze, nie zmiana w trzech komponentach.

Slider lewy — narzędzia

Slider z narzędziami mają wyłącznie moduły, które mają co w nim położyć: GEO, CAD2D, GIS, CAD3D. Przy przejściu do modułu wypełniającego cały obszar roboczy (DOC, TABLICA, ZADANIA) powłoka zwija slider sama.

Pozycji GEO nie ma w pasku (od 2026-09-24): niesie ją zakładka GEO-CAD2D u góry — przycisk w słupku był drugim wejściem do tego samego widoku. Zakładka przestrzeni jest zarazem drogą powrotu: kliknięta wraca na pierwszy moduł przestrzeni także wtedy, gdy już się w niej jest. Do tego dnia nic nie robiła w takiej sytuacji, więc z CAD2D nie było czym wrócić na mapę.

Pozycja Znaki umowne zeszła z paska tego samego dnia: otwierała edytor stylów nad mapą, a biblioteka znaków ma własną zakładkę S-BASE w pasku górnym — z listą bibliotek, edytorem i grafem modelu danych. Dwa wejścia do tej samej rzeczy, jedno uboższe; zostało bogatsze.

S-BASE korzysta z obu szuflad, ale tylko w edytorze biblioteki (od 2026-09-24): wejście w bibliotekę otwiera lewą (spis obiektów) i prawą (podgląd i mapowanie), a wyjście z edytora zamyka obie. Lista bibliotek zostaje bez szuflad — to strona wyboru, nie pracy.

Po otwarciu projektu oba slidery są rozwinięte — prawy (DANE) od 2026-09-22, lewy (NARZĘDZIA) od 2026-09-23. Każdy rozwija się raz na otwarcie projektu — jeżeli go zwiniesz, zostaje zwinięty przy zmianie modułu i przy zmianie szerokości okna, a rozwinie się ponownie dopiero po powrocie na listę projektów i otwarciu projektu na nowo. Poza tym otwiera je przycisk we własnym pasku, a prawy także wskazanie obiektu na mapie. Na oknie węższym niż 1280 px prawy slider startuje zwinięty mimo to (lewy — poniżej 1024 px): nie ma dla nich miejsca obok obszaru roboczego.

Kolejność jest ustalona: najpierw rama, potem szuflady (od 2026-09-25). Rama obszaru roboczego wchodzi łagodnym pojawieniem (0,22 s), a szuflady wjeżdżają dopiero po nim — wcześniej wszystkie trzy ruchy szły w tych samych klatkach, w których mapa stawiała pierwszy widok rysunku, i otwarcie szarpało. Dotyczy to wyłącznie rozwinięcia z automatu: szuflada otwarta przyciskiem rusza natychmiast, bo zwłoka po kliknięciu czyta się jak zacinanie. Zwijanie nigdy nie czeka.

Szuflady boczne

Oba slidery są SZUFLADAMI nad obszarem roboczym (od 2026-09-24): wjeżdżają i zjeżdżają za krawędź ramy, a nie rozpychają widoku. W tle cały czas widać mapę — obszar roboczy sięga obu krawędzi ramy niezależnie od tego, czy szuflady są otwarte. Wcześniej były panelami w jednym rzędzie z mapą, więc każde otwarcie zwężało rysunek.

Dwa skutki uboczne tej zmiany:

  • rozwinięcie szuflady nie rusza rysunku ani o piksel — mapa nie zmienia rozmiaru, więc nie ma czego przeliczać (wcześniej płótno WebGL dostawało nowy rozmiar w każdej klatce animacji);
  • treść szuflady stoi w miejscu przez cały ruch — przesuwa się cała szuflada, więc nagłówek z zakładkami i treść idą jednym tempem.

Pasek boczny jest częścią szuflady (od 2026-09-24) i stoi po jej wewnętrznej stronie — z lewej: toolbox na prawo od slidera, z prawej odwrotnie. Jedzie razem z szufladą, ale poza jej krawędzią, więc:

  • szuflada zwinięta — pasek ląduje przy krawędzi ramy i zostaje widoczny,
  • szuflada rozwinięta — pasek i płyta stoją obok siebie jako jedna powierzchnia, tej samej wysokości (obie kończą się 40 px nad dołem ramy, równo z pasem konsoli).

Jedyna linia i zaokrąglenie są od strony mapy — tam, gdzie naprawdę coś rozdziela. Między paskiem a płytą nie ma ani kreski, ani cienia, a płyta nie ma bocznych marginesów: przylega i do toolboxu, i do krawędzi ramy. Od strony ramy jej narożniki są proste, zaokrąglone tylko od środka. Uchwyt zmiany szerokości leży na krawędzi od strony mapy i nie zabiera miejsca.

Paski przewijania są przezroczyste (od 2026-09-24): bieżnia nie ma tła, suwak jest półprzezroczysty w kolorze obrysu i gęstnieje pod kursorem.

POMOC też korzysta z obu szuflad (od 2026-09-24): rozdziały z lewej, spis treści strony z prawej. To jedyny moduł, który otwiera szuflady bez otwartego projektu — jego treść nie zależy od opracowania.

Moduły bez mapy ustępują szufladom (od 2026-09-24): nakładka jest właściwa tam, gdzie pod spodem coś widać, czyli nad mapą. Tam, gdzie w obszarze roboczym stoi tekst, treść dostaje odstęp równy szufladzie — inaczej nagłówek ramy chowałby się pod nią, a kolumna tekstu środkowała się względem całej ramy zamiast względem tego, co widać. Odstęp przesuwa się razem z szufladą, tym samym tempem.

Ramka treści w obu sliderach zaczyna się 8 px pod paskiem górnym (od 2026-09-21; wcześniej 40 px, równo z pasem PLIK/NARZĘDZIA) i kończy 40 px nad dołem, równo z konsolą.

Środek slidera jest jaśniejszy od ramy (od 2026-09-14) — w obu motywach.

Treść rozwiniętego slidera stoi we własnej ramce (od 2026-09-14): jednym obrysem i zaokrągleniem jak rama obszaru roboczego — po lewej i po prawej tak samo. Ramka zaczyna się i kończy równo z obszarem roboczym: od góry i od dołu odsuwa ją wysokość pasów ramy (PLIK/NARZĘDZIA u góry, konsola u dołu), z boków — wąski odstęp od krawędzi slidera. Zakładki slidera (z lewej WARSTWY / GESUT / EGIB / BDOT500, z prawej Info / Tabela) stoją wyśrodkowane w górnym pasie tej ramki, w układzie zakładek navbara (wzór Origin UI comp-431): zlane w jeden pasek z ramką, czynna z jaśniejszym tłem. Napisy mają zwykłą czcionkę aplikacji, nie krój logo, i są pisane WIELKIMI LITERAMI. Treść w ramce ma odstęp od obrysu z lewej, z prawej i od góry. Widok mapy ma zaokrąglone narożniki, jak ramki sliderów.

Oba slidery mają tę samą budowę (od 2026-09-14): ramka jest zbudowana jak frame coss p-frame-1 — w jej nagłówku stoją zakładki (z lewej WARSTWY / GESUT / EGIB / BDOT500, z prawej INFO / TABELA), a poniżej jest jeden najjaśniejszy panel z treścią, dosunięty do boków ramki. Jeden obrys, bez zagnieżdżonych ramek; slider bez zakładek nie pokazuje pustego nagłówka. Pod czynną zakładką stoi kreska w kolorze akcentu, która przy zmianie zakładki przesuwa się płynnie na nową pozycję.

Mapa nie przerysowuje się przy ruchu szuflady (od 2026-09-24 wprost: szuflada nie zmienia rozmiaru mapy, więc nie ma czego dopasowywać). Zasada z 2026-09-14 — jedno dopasowanie płótna na koniec ruchu panelu, zamiast dopasowania w każdej klatce — obowiązuje dalej tam, gdzie panele resizable nadal dzielą widok wewnątrz modułu (S-BASE, FLOW).

Treść modułu w ramie

Większość modułów stoi w ramie z panelem treści odsuniętym od krawędzi — własny margines i zaokrąglone rogi. Moduł, którego treść sama niesie marginesy i przewija się na całej wysokości, dostaje panel do krawędzi ramy: tak stoi POMOC (od 2026-09-24). Margines panelu rysował wokół artykułu drugi obrys i zabierał pas z góry, z dołu i z obu stron.

Przyciski nawigacji mapy

Przyciski nawigacji stoją w pasku bocznym prawej szuflady — lustrzanie do toolboxa rysowania w pasku lewym. Cztery: przybliż, oddal, obrót na północ, dopasowanie widoku do rysunku.

Pasek służy nawigacji, nie panelom (od 2026-09-25). Dokumentacja prawna i wydruk PDF zeszły z niego do menu PLIK — obie pozycje otwierają panele, a to należy do menu.

Do 2026-09-24 była to kolumna unosząca się nad mapą przy prawym górnym rogu: zabierała rysunkowi właśnie ten róg i musiała mieć własne wypełnienie, żeby nie ginąć na tle mapy. W pasku nic pod nią nie leży, więc przyciski wyglądają tak samo jak w toolboxie, a mapa ma cały obszar ramy.

W przestrzeni GEO w lewym sliderze mieszka drzewo obiektów: to tam, a nie w osobnych modułach, żyją grupy GESUT, EGiB i BDOT500.

Slider prawy — panele

Po prawej otwierają się panele kontekstowe: atrybuty wskazanego obiektu, warstwy, współrzędne, wydruk, DXF, kartoteka EGiB. Panel otwiera się w odpowiedzi na wskazanie obiektu albo na przycisk, nigdy sam z siebie.

Asystent AI

W prawym sliderze mieszka też asystent — rozmowa z modelem językowym.

Model działa na tym komputerze, a rozmowa nie wychodzi poza stanowisko. Aplikacja pyta lokalną Ollamę pod localhost:11434, a domyślnym modelem jest Bielik-Minitron-7B-v3.0-Instruct — polski model, destylat bazy Bielik-11B. Pytanie nie idzie do żadnej usługi w chmurze i nie potrzebuje klucza.

Pasek nad rozmową mówi, czym się rozmawia. Zielona kropka i nazwa modelu znaczą, że jest gotowy; pomarańczowa — że nie ma z czym rozmawiać, a zdanie pod spodem mówi dlaczego (Ollama nie działa, brak modelu, albo aplikacja otwarta jest z wdrożenia w chmurze, które do modelu na Twoim komputerze nie ma dostępu).

Odpowiedź pojawia się w trakcie pisania, słowo po słowie — model 7B pisze wolniej, niż się czyta, więc czekanie na całość byłoby czekaniem w ciszy. Przycisk obok pola zmienia się wtedy w PRZERWIJ i naprawdę przerywa: to, co zdążyło dojść, zostaje na ekranie. Enter wysyła, Shift+Enter łamie wiersz.

Pierwsze pytanie po dłuższej przerwie trwa dłużej — model waży 4,5 GB i musi wejść do pamięci. Kolejne odpowiedzi przychodzą w sekundach.

Asystent ma dostęp do bazy i do poleceń aplikacji (od 2026-09-13, tylko lokalnie i na serwerze aplikacji — wdrożenie w chmurze nie ma bazy pod ręką). Model dostaje schemat bazy (tabele robocze z kolumnami, nazwy tabel urzędowych), identyfikator projektu bieżącego i listę poleceń konsoli. Trzy rodzaje działań:

  • Zapytanie odczytu (SELECT) model pisze w bloku sql; serwer wykonuje je od razu w transakcji tylko do odczytu (limit 5 s, 200 wierszy), a w rozmowie pojawia się karta ZAPYTANIE DO BAZY z treścią i podglądem wyniku. Model dostaje wynik i odpowiada na jego podstawie — najwyżej trzy takie rundy na jedno pytanie.
  • Zmiana w bazie (INSERT, UPDATE, DELETE) trafia do rozmowy jako karta PROPONOWANA ZMIANA W BAZIE z przyciskiem WYKONAJ. Nic nie dzieje się bez kliknięcia; zmiana idzie w jednej transakcji, a wynik (polecenie i liczba wierszy) trafia do rozmowy i do konsoli. Asystent nie tworzy ani nie usuwa baz, schematów, ról i rozszerzeń.
  • Polecenie aplikacji (te same, co w konsoli po pomoc) — karta PROPONOWANE POLECENIE z przyciskiem WYKONAJ; wykonuje je przeglądarka przez rejestr poleceń, wynik w rozmowie i w konsoli.

Asystent bywa w błędzie. To model siedmiomiliardowy, nie źródło prawa. Ma polecenie mówić „nie wiem", zamiast zmyślać, ale numer rozporządzenia albo wartość liczbową z jego odpowiedzi sprawdź, zanim trafi do operatu.

Pasek dolny

Pasek dolny biegnie przez całą szerokość okna pod railami i ramą, w kolorze paska górnego — dół aplikacji wygląda jak jej góra. Rama pracy i slidery dochodzą do niego bez odstępu. Od 2026-09-14 na środku paska dolnego stoi blok skali, układów i pozycji kursora, a przy prawej krawędzi przełączniki wskaźnika, przyciągania, siatki i grubości linii. Konsola stoi w stopce ramy roboczej (niżej).

Stopka i konsola

Na dole stoi pasek podsumowania: skala rysunku, menu SKALA ADNOTACJE (grupy TEKST i LINIE, każda z przełącznikiem skalowania z widokiem i współczynnikiem rozmiaru ×1, ×1/2, ×1/10, ×1/100 względem wydruku 1:500; od 2026-09-20 zamiast podmenu skal i własnej skali; na górze pozycja WYŁĄCZ zerująca obie grupy do stanu WYŁĄCZONE), układy, pozycja kursora, a po prawej rząd ikon: wskaźnik kursora, przyciąganie, siatka krzyży i grubości linii (od 2026-09-12 ikona zamiast napisu SZEROKOŚĆ; od 2026-09-21 trzy pasy o rosnącej grubości z pakietu ikon aplikacji; domyślnie wyłączona — rysunek otwiera się włoskowo, grubości z rozporządzenia włącza się kliknięciem; potwierdzone 2026-09-20 także przy włączonym skalowaniu z widokiem; od 2026-09-21 skalowanie z widokiem startuje wyłączone, co znaczy: wymiary jak na wydruku 1:500 w terenie, rosnące z przybliżeniem; włączone = stały rozmiar na ekranie — od 2026-09-23 tak samo w grupie TEKST i w grupie LINIE, a więc także dla symboli, wzorów linii i kreskowań wypełnień). Zakładki obu sliderów i przyciski PLIK / NARZĘDZIA / USTAWIENIA stoją 2 px od górnej krawędzi swojego pasa (od 2026-09-23, polecenie „przyciski tabs przesuń wyżej") — wcześniej były w nim wyśrodkowane. Górne krawędzie wszystkich trzech pasów leżą przez to na jednej linii, a płyta slidera zaczyna się jak dotąd na 40 px, równo z mapą.

Znak nie zmienia kształtu w trakcie zoomu (od 2026-09-24): przy włączonym skalowaniu z widokiem (stały rozmiar ekranowy) znaki rysowane pasem po osi — ściana oporowa OTDN, ekran akustyczny OTKY — wyglądają jak drabinka: dwie burty i szczeble w równych odstępach. Szerokość burt i wielkość szczebla liczą się co klatkę, ale ich rozstaw to punkty w terenie, przeliczane na wątku głównym. W trakcie gestu zoomu szły one dotąd dopiero po odjechaniu skali o 40 %, więc odstępy pełzły przez cały gest i wracały na miejsce po puszczeniu — przy okresie 10 mm to 4 mm rozjazdu. Teraz wzory odświeżają się w geście przy tych samych 10 %, co poza nim; kreskowanie wypełnień, o rząd droższe w liczeniu, zostaje przy 40 % i na końcu gestu, żeby zoom był dalej płynny.

Włoskowość nie blokuje skalowania (od 2026-09-20): linie zostają 1 px w obu stanach menu SKALA ADNOTACJE, a wzór kreskowania przy włączonym skalowaniu z widokiem rośnie razem z rysunkiem. Długość kresek na ekranie jest przy tym taka sama jak przy grubościach z rozporządzenia — w obu silnikach rysowania (GeoJSON i Deck.gl) kreska 5 mm ma 19 px. Od 2026-09-14 ten blok razem z przełącznikami stoi w pasku dolnym aplikacji, na jego środku (patrz wyżej), a stopka ramy roboczej niesie samą konsolę aplikacji — linię poleceń i ostatni komunikat. Rozwinięta historia konsoli wysuwa się nad stopkę i nie zabiera miejsca mapie. Stopka z konsolą stoi na każdej stronie poza listą projektów (od 2026-09-22): PROJEKTY nie mają rysunku, do którego konsola mogłaby mówić, więc pas byłby tam pustym wierszem. Ta sama konsola w pełnym oknie to moduł Terminal.

Na liście projektów zakładki przestrzeni (GEO-CAD2D, GES-CAD…) są wyszarzone (od 2026-09-22). Do pracy wchodzi się przyciskiem OTWÓRZ przy projekcie — to on ustawia projekt bieżący i moduł, w którym ten projekt pracuje. Zakładka wyglądała na drugie, równorzędne wejście, a wracała tylko tam, gdzie stał poprzednio otwarty projekt.

Okna usuwania — zawsze na czerwono

Każde okno, które pyta o usunięcie (projekt, styl, obiekt biblioteki, nowy rysunek kasujący wszystkie obiekty), ma od 2026-09-13 ten sam wygląd: czerwoną krawędź, tytuł w kolorze ostrzeżenia z ikoną trójkąta i czerwony przycisk potwierdzenia. Okno edycji nigdy tak nie wygląda, więc kolor mówi od razu, że coś zniknie. Czerwień jest niezależna od reszty barw (od 2026-09-14) — kiedy palet było kilkanaście, te z rejestru niosły w tym miejscu złoto albo czerń; token ostrzeżenia zostaje czerwony niezależnie od trybu.

Gdy moduł się zatrzyma

Błąd w module — na przykład w mapie — zatrzymuje ten moduł, nie aplikację. W obszarze roboczym pojawia się komunikat z treścią błędu (przepisz ją do zgłoszenia) i przycisk SPRÓBUJ PONOWNIE, który montuje moduł od nowa. Pasek górny, slidery i stopka działają dalej, więc zawsze da się przejść do PROJEKTÓW albo odświeżyć stronę.

Warstwy tła — najciemniej na zewnątrz, najjaśniej w środku

Wypełnienia powierzchni idą w czterech poziomach, od zewnątrz do środka coraz jaśniej: pasek górny, raile ikon i pasek dolny (najciemniej) → rama pracy i slidery → paski boczne ramki, pasek menu i stopka → treść modułu i tło mapy (najjaśniej). Poziomy nie są wpisane na sztywno: liczą się z tokenu tła palety osobno dla trybu jasnego i ciemnego, więc przełączenie jasności przestawia wszystkie cztery naraz, a kierunek (ciemne → jasne do środka) zostaje w obu trybach.

Rama modułu — jedna linia obramowania

Każda strona bez mapy (PROJEKTY, ZADANIA, S-BASE, DRIVE, DOC…) i każde okno pływające stoi w tej samej ramie: jeden obrys z dużym promieniem naroży (od 2026-09-13 komponent Frame z coss ui, wcześniej wzorzec ReUI c-frame-17), belka nagłówka jako pas koloru bez własnej ramki, a treść w panelu z jednym obrysem. Belka jest ciemniejsza od treści (od 2026-09-14) — ten sam odcień, co nagłówki ramek sliderów, a panel treści pod nią jest najjaśniejszy. Nagłówek ramki slidera widać także wtedy, gdy slider nie ma zakładek (np. w PROJEKTY). Nagłówki sliderów i ich krawędzie na stykach z paskami nie mają linii — granice daje różnica tła.

Szerokość okna — desktop i tablet

Układ dopasowuje się do szerokości okna w trzech progach (jak klasy Tailwinda): od 1280 px pełny widok; między 1024 a 1280 px zakładki w pasku górnym są ciaśniejsze, przyciski AI-AGENT, MENU i SZUKAJ pokazują same ikony, prawy slider danych startuje zwinięty (mimo reguły „rozwinięty po otwarciu projektu"), a lista projektów chowa kolumnę ZMIENIONO; poniżej 1024 px (tablet) także lewy slider startuje zwinięty, raile i paski boczne są węższe, a lista projektów chowa OPIS i UKŁAD POZIOMY. Zakładki, które nie mieszczą się w pasku górnym, przewija się kółkiem albo palcem — bez widocznego paska przewijania. Slidery zawsze da się rozwinąć ręką przyciskami na railach. Telefon (poniżej 640 px) nie jest jeszcze obsługiwany.

Reguły interfejsu

Reguły obowiązują całą aplikację i stoją w jednym miejscu — warstwie bazowej src/index.css — a nie w każdym module z osobna:

  • Podpisy przycisków piszemy WIELKIMI LITERAMI. Zmienia się prezentacja, nie tekst — czytnik ekranu i testy widzą napis taki, jak w kodzie.
  • Opisy kolumn tabel też idą wielkimi literami.
  • Zero natywnych okien — żadnych alert, prompt ani confirm. Każde pytanie do użytkownika jest dialogiem aplikacji.
  • Jeden styl przycisku — obrysowy, 10 px, w całej aplikacji.
  • Kąty w module GEO podajemy w gradach; stopnie zostają wyłącznie wewnątrz kodu mapy.
  • Cienie wg Material Design (od 2026-09-14, wzór Quasar „CSS Shadows"): klasy shadow-1 … shadow-24 rzucają cień w dół, shadow-up-1 … shadow-up-24 w górę, inset-shadow i inset-shadow-down dają cień wklęsły u góry i u dołu, no-shadow zdejmuje cień, a shadow-transition wygasza jego zmianę. Kolor bierze się z tokenu --kolor-cienia — osobno w motywie jasnym i ciemnym. Cień nie kasuje obrysu (ring-*) na tym samym elemencie.
  • Jeden układ ramki na każdej stronie. Każdy moduł bez mapy stoi w ramce złożonej z trzech pasów: belka tytułu w pełnym kolorze (nazwa i opis z rejestru modułów), pod nią panel przycisków modułu — jeśli moduł jakieś ma — a niżej panel treści. Moduł nie stawia własnego nagłówka ani drugiego paska pod belką: oddaje przyciski ramce i dostaje dla nich osobne pole. Pływające okno składa się z tych samych trzech pasów, więc ten sam moduł wygląda tak samo w oknie i na pełnym ekranie.

Na tej stronie