Front-end React & Tailwind CSS componenten-bibliotheek: Showcase

Nyef
Nyef
·
Front-end React & Tailwind CSS componenten-bibliotheek: Showcase

Als freelance softwareontwikkelaar werk ik voortdurend aan React front-end dashboard-omgevingen. Bijvoorbeeld, een admin-pagina om alle gebruikers van een SaaS-platform te beheren. Om te voorkomen dat ik continu dezelfde componenten voor ieder project ontwikkel, heb ik een componenten-library ontwikkeld: Peggirkit.

Voorbeeld dashboard-pagina met Peggirkit gebouwd

Gebruikte front-end ontwikkeltechnologieën

Bij het ontwikkelen van deze component library heb ik gebruik gemaakt van een reeks technologieën.

React & Typescript

In de basis is het een Node.js, NPM, React & Typescript project. In principe gebruik ik standaard Typescript in mijn Javascript (ES6) projecten.

Vanwege de toevoeging van types, levert Typescript een groot voordeel op. Door de juiste typehints te definiëren aan de component-props, is het voor gebruikers van Peggirkit intuïtiever om de library te gebruiken. Daarnaast maakt het de code een stuk robuuster en minder foutgevoelig.

Babel

Babel transpileert alle componenten vanuit ES6 tijdens het build-proces. Vervolgens worden deze in een aparte dist-map geplaatst. Dit gebeurt na het starten van een eigen script uit package.json: npm run dist.

Tailwind CSS & Tailwind Plus

Voor de vormgeving en het stijlen van de front-end componenten, maakt Peggirkit van Tailwind CSS gebruik. Tailwind CSS biedt voorgedefinieerde CSS-classes die het mogelijk maken om snel HTML-elementen vorm te geven. Daarnaast hoeven er geen aparte CSS (of Sass, enz.) bestanden te worden geschreven.

Omdat ik geen tijd wilde besteden aan het zelf ontwerpen van iedere component, heb ik gekozen om Tailwind Plus (voormalig Tailwind UI) te gebruiken. Tailwind Plus biedt component-ontwerpen aan voor verschillende soorten doeleinden, zoals webshops. In mijn geval bieden ze ook ontwerpen aan voor webapplicatie interfaces.

De ontwerpen heb ik tevens niet 1-op-1 overgenomen. Hier en daar verschillen ze, maar het grootste verschil is dat ik donkere modus-ondersteuning aan de React componenten heb toegevoegd.

Tailwind Plus component dark en light

Storybook

Aangezien Peggirkit losse React-componenten betreft, is het ook handig om deze geïsoleerd te bouwen, testen en documenteren. Vandaar dat ik Storybook gebruik.

“Storybook is a frontend workshop for building UI components and pages in isolation. Thousands of teams use it for UI development, testing, and documentation. It’s open source and free.”

React component in Storybook

Componenten

Niet alle componenten in deze front-end library zijn overigens zichtbaar in de user interface. Sommige zijn React hooks of bieden een context.

UI componenten

Peggirkit bevat een aantal tientallen UI-componenten. Denk aan buttons, invoervelden, spinners, enz. Sommige daarvan zijn samengestelde componenten: een combinatie uit meerdere. Bijvoorbeeld, in de afbeelding hieronder zie je een error-pagina component. Deze bevat weer een breadcrumb-, heading-, lijst- en footer-component.

Error-pagina bestaande uit verschillende React-componenten

React hooks

Peggirkit bevat tevens een aantal React hooks. Deze bieden een interne logica die kunnen worden hergebruikt. Zo houdt useResponsive bij wat de dimensie van de huidige window is samen met de huidige Tailwind breakpoint.

UseResponsive React hook

React context API

Omdat veel front-end applicaties die ik bouw besloten omgevingen zijn, voor bijvoorbeeld geregistreerde gebruikers of admins, bevat Peggirkit onder andere authenticatie-logica.

Door gebruik te maken van de React Context API, kan ik eenvoudig authenticatie functionaliteiten inbouwen. Denk aan het inloggen, uitloggen en een bezoeker omleiden wanneer deze een pagina niet mag bezoeken.

In combinatie met die AuthProvider, is er ook een login-pagina preset. Tevens ondersteunt deze ook 2FA (op basis van TOTP).

Authenticatie support met 2FA

Resultaat

Peggirkit is nog steeds een work-in-progress. Ik ben het continu aan het uitbouwen en refactoren. Het werken aan deze library helpt mij om m'n front-end skills te verbeteren.

Nieuwsgierig naar Peggirkit? De Storybook site is publiekelijk beschikbaar, neem gerust een kijkje!

Helaas kan ik deze React component library niet publiekelijk aanbieden zodat iedereen zo'n dashboard interface kan maken. Dat heeft te maken met de licentie van Tailwind UI. Op lange termijn wil ik afstappen van Tailwind UI en de gehele front-end library open-source aanbieden.

React front-end components

Delen

Ervaren software engineer nodig?

Ik help bedrijven met softwareoplossingen (SaaS, automatiseren en meer) — van backend tot frontend. Neem vrijblijvend contact op om te kijken hoe ik kan bijdragen aan jouw project.

  • Robuuste backend: Java/Kotlin, SQL, Spring Framework
  • Gebruiksvriendelijke front-end: Next.js, React, Typescript, ES6
  • Snelle doorontwikkeling: Continuous integration & deployment, Jenkins
  • Efficiënte samenwerking: Agile, Scrum, Jira, Git, Bitbucket, GitHub
  • Freelance software-ontwikkelaar uit Arnhem