· Szymon Berski · Portfolio  · 2 min czytania

EN / PL

Spoko Design System

Open source'owy Design System oparty na Astro z komponentami Vue 3 i stylami UnoCSS. Opublikowany jako pakiet npm, łączy stronę dokumentacji z biblioteką komponentów wielokrotnego użytku.

Open source'owy Design System oparty na Astro z komponentami Vue 3 i stylami UnoCSS. Opublikowany jako pakiet npm, łączy stronę dokumentacji z biblioteką komponentów wielokrotnego użytku.

Spoko Design System

Stworzyłem open source’owy Design System, który łączy stronę dokumentacji z biblioteką komponentów wielokrotnego użytku w jednym pakiecie. System jest zbudowany z wykorzystaniem nowoczesnych technologii (Astro, Vue 3, UnoCSS) i opublikowany na npm, co ułatwia integrację z projektami.

Architektura podwójnego zastosowania

To unikalne podejście pozwala projektowi pełnić dwie funkcje jednocześnie:

Strona dokumentacji - Interaktywna dokumentacja na sds.spoko.space z podglądem komponentów na żywo, przykładami kodu i kompleksowymi przewodnikami dla:

  • Podstawowych tokenów designu (kolory, typografia, odstępy, cienie)
  • Ponad 20 gotowych komponentów (przyciski, modale, formularze, karuzele)
  • Wzorców projektowych i zaawansowanych komponentów
  • Pełnej funkcjonalności wyszukiwania przez Pagefind

Pakiet npm - Instalowalna biblioteka komponentów (spoko-design-system) oferująca:

  • Importowalne komponenty Vue 3 z obsługą TypeScript
  • Eksportowalną konfigurację UnoCSS dla spójnego stylowania
  • Konfigurację systemu ikon z ponad 10 wyselekcjonowanymi kolekcjami Iconify
  • Eksporty wspierające tree-shaking dla optymalnego rozmiaru paczki

Kluczowe funkcje

Nowoczesna biblioteka komponentów

System zawiera starannie przygotowane komponenty, które działają w obu kontekstach - jako część strony dokumentacji Astro i jako importowalne komponenty z pakietu npm:

  • Interaktywne elementy UI (przyciski, pola tekstowe, modale, dropdown’y)
  • Komponenty nawigacji (navbar, breadcrumbs, paginacja)
  • Komponenty treści (karty, zakładki, akordeony)
  • Specjalistyczne komponenty motoryzacyjne (używane produkcyjnie w projektach polo.blue)

Spójne stylowanie z UnoCSS

Konfiguracja UnoCSS jest podzielona na łatwe w utrzymaniu moduły:

  • System motywów - Kolory, typografia, breakpointy, wymiary
  • Skróty komponentów - Prekonfigurowane style komponentów zorganizowane według kategorii
  • Eksportowalna konfiguracja - Użytkownicy mogą rozszerzać bazową konfigurację przez createSdsConfig()

Takie podejście zapewnia spójność między projektami, jednocześnie umożliwiając dostosowanie do indywidualnych potrzeb.

Dokumentacja SDSKomponent Post Split Jumbotron SDS

Integracja systemu ikon

Design System zawiera dwa skoordynowane systemy ikon współpracujące ze sobą:

  • UnoCSS Icons - Statyczne importy przez klasy i-{kolekcja}-{nazwa}
  • astro-icon - Dynamiczne importy dla komponentów Astro

Wyselekcjonowane kolekcje obejmują Material Design Icons, Lucide, Carbon, Boxicons oraz specjalistyczne zestawy ikon motoryzacyjnych i technologicznych.

Zastosowanie w praktyce

Design System jest sprawdzony w boju na produkcji w wielu działających projektach:

Dzięki temu komponenty są gotowe do produkcji i radzą sobie z rzeczywistymi przypadkami brzegowymi.

Zautomatyzowany proces wydawniczy

Projekt wykorzystuje semantic-release do zarządzania wersjami:

  • Konwencjonalne commity określają zmiany wersji
  • Automatyczne generowanie CHANGELOG
  • Tworzenie wydań na GitHub
  • Publikacja na npm po merge do main

To zapewnia spójne wersjonowanie i niezawodne aktualizacje pakietu.

Wykorzystane technologie

Astro

Nowoczesny generator stron statycznych zapewniający szybką stronę dokumentacji z częściową hydratacją dla optymalnej wydajności i SEO.

Vue.js

Reaktywne komponenty z obsługą TypeScript, umożliwiające tworzenie interaktywnych elementów UI działających zarówno w dokumentacji, jak i jako importowalny pakiet npm.

UnoCSS

Błyskawiczny silnik CSS typu atomic on-demand z eksportowalną konfiguracją, zapewniający spójne stylowanie we wszystkich projektach korzystających z Design Systemu.

TypeScript

Pełne bezpieczeństwo typów dla komponentów i narzędzi, zapewniające lepsze doświadczenie programisty i wychwytywanie błędów na etapie kompilacji.

Progressive Web App (PWA)

Dokumentacja działająca offline z szybkim dostępem i zwiększoną wydajnością dla niezawodnego doświadczenia programisty nawet bez połączenia z internetem.

Pagefind

Wyszukiwarka dla stron statycznych umożliwiająca szybkie przeszukiwanie dokumentacji po stronie klienta bez zewnętrznych zależności czy wywołań API.

Swiper

Nowoczesny slider dotykowy z akceleracją sprzętową dla karuzel i galerii, zapewniający płynne działanie na urządzeniach mobilnych.

Iconify

Zunifikowany framework ikon z ponad 10 wyselekcjonowanymi kolekcjami, udostępniający tysiące ikon przez jeden, spójny interfejs.

Design System jest open source (licencja MIT) i aktywnie rozwijany z automatycznymi aktualizacjami zależności przez Renovate oraz kontrolą jakości kodu przez SonarQube.

Powrót do portfolio

Powiązane wpisy

Czytaj więcej »
VW Polo 6R user manual

VW Polo 6R user manual

Virtual owner's manual for Volkswagen Polo 6R, designed as a PWA with dark mode and search functionality for easy access to essential vehicle information.

Parts & Accessories Catalog

Parts & Accessories Catalog

Comprehensive catalog for Volkswagen Polo 6R parts and accessories, featuring optimized product displays, efficient navigation, and the ability to function as a Progressive Web App.

SEO agency website

SEO agency website

Showcase for a freelance SEO expert dedicated to improving online visibility and driving organic traffic for businesses.

Modern Car Blog

Modern Car Blog

Automotive blog built with Astro, Vue3, UnoCSS, REST API, and WordPress.