All Projects → italia → design-react-kit

italia / design-react-kit

Licence: BSD-3-Clause license
A React toolkit that implements the Italia design system

Programming Languages

typescript
32286 projects
CSS
56736 projects

Projects that are alternatives of or similar to design-react-kit

Typescene
Strongly typed front-end framework
Stars: ✭ 197 (+47.01%)
Mutual labels:  toolkit
Xrtk Core
The Official Mixed Reality Framework for Unity
Stars: ✭ 219 (+63.43%)
Mutual labels:  toolkit
Framevuerk
Fast, Responsive, Multi Language, Both Direction Support and Configurable UI Framework based on Vue.js.
Stars: ✭ 252 (+88.06%)
Mutual labels:  toolkit
Mola
A Modular Optimization framework for Localization and mApping (MOLA)
Stars: ✭ 206 (+53.73%)
Mutual labels:  toolkit
Spiceypy
SpiceyPy: a Pythonic Wrapper for the SPICE Toolkit.
Stars: ✭ 218 (+62.69%)
Mutual labels:  toolkit
Mercury
Mercury is a hacking tool used to collect information and use the information to further hurt the target
Stars: ✭ 236 (+76.12%)
Mutual labels:  toolkit
Bootstrap Italia
Bootstrap Italia è un tema Bootstrap 4 conforme alle linee guida di design per i servizi web della PA
Stars: ✭ 193 (+44.03%)
Mutual labels:  toolkit
nightingale
NHS-Generic Frontend Framework.
Stars: ✭ 34 (-74.63%)
Mutual labels:  toolkit
Phonia
Phonia Toolkit is one of the most advanced toolkits to scan phone numbers using only free resources. The goal is to first gather standard information such as country, area, carrier and line type on any international phone numbers with a very good accuracy.
Stars: ✭ 221 (+64.93%)
Mutual labels:  toolkit
Jfa Pwa Toolkit
⚡️ PWA Features to Any Website (very Fast & Easy)
Stars: ✭ 245 (+82.84%)
Mutual labels:  toolkit
Luminoth
Deep Learning toolkit for Computer Vision.
Stars: ✭ 2,386 (+1680.6%)
Mutual labels:  toolkit
Bedops
🔬 BEDOPS: high-performance genomic feature operations
Stars: ✭ 215 (+60.45%)
Mutual labels:  toolkit
Pk3ds
Pokémon (3DS) ROM Editor & Randomizer
Stars: ✭ 244 (+82.09%)
Mutual labels:  toolkit
Hiddeneye Legacy
Modern Phishing Tool With Advanced Functionality And Multiple Tunnelling Services [ Android-Support-Available ]
Stars: ✭ 2,568 (+1816.42%)
Mutual labels:  toolkit
dt-utils
前端常用工具函数
Stars: ✭ 23 (-82.84%)
Mutual labels:  toolkit
Asu
facebook hacking toolkit
Stars: ✭ 197 (+47.01%)
Mutual labels:  toolkit
Staplr
PDF Toolkit. 📎 🔨 🔧 ✂️ 📑 📁📎 🔖 🚧 👷
Stars: ✭ 221 (+64.93%)
Mutual labels:  toolkit
VIZIA
A declarative GUI library written in Rust
Stars: ✭ 551 (+311.19%)
Mutual labels:  toolkit
blog
个人博客,关注前端工程化及移动端
Stars: ✭ 17 (-87.31%)
Mutual labels:  toolkit
Bioperl Live
Core BioPerl 1.x code
Stars: ✭ 244 (+82.09%)
Mutual labels:  toolkit

CircleCI Partecipa sul canale #design-devel Ricevi un invito a Slack

Read this in other languages: English.

Importante: questo kit è stato progettato per funzionare con la versione 1.x di Bootstrap Italia. Non esiste al momento un kit per la versione 2.x di Bootstrap Italia.

Intro

Design React kit è un set di componenti React che implementa Bootstrap Italia e gli stili presenti su Design UI Kit, come mostrato su InVision.

Per navigare la libreria e visualizzare i componenti, è stato utilizzato Storybook.

La versione pubblica dello Storybook è disponibile qui per l'ultima release stabile pubblicata, mentre qui per la versione di sviluppo relativa al branch master.

Indice

Requisiti

  • NodeJS
  • Yarn

Come usare il kit

Per utilizzare Design React come dipendenza in un'app è possibile installarla da npm. Suggeriamo di usare create-react-app per creare una nuova webapp React, come segue:

$ create-react-app nome-app
$ cd nome-app
$ yarn add design-react-kit --save

Aggiungere bootstrap-italia ed i font

Il design-react-kit non include il CSS ed i file font, ed è quindi necessario installarli a parte:

$ yarn add bootstrap-italia typeface-lora typeface-roboto-mono typeface-titillium-web --save

App.js

A questo punto, è sufficiente importare esplicitamente nella app CSS e font se si è usato create-react-app all'interno del file ./src/App.js:

import React from 'react';
import './App.css';
import { Alert } from 'design-react-kit';
import 'bootstrap-italia/dist/css/bootstrap-italia.min.css';
import 'typeface-titillium-web';
import 'typeface-roboto-mono';
import 'typeface-lora';

const App = () => {
    return (
        <Alert>This is an Alert</Alert>
    );
};

export default App;

Caricamento Font

Il tema Bootstrap Italia utilizza un set specifico di font typeface: titillium-web, roboto-mono e lora. Il caricamento di questi font è lasciato al browser ma, volendo può essere controllato tramite l'apposito componente FontLoader. È sufficiente dichiarare il componente FontLoader in cima all'app react per permettere il caricamento.

In alternativa è necessario gestire il caricamento dei font manualmente mediante il pacchetto webfontloader:

const WebFont = require('webfontloader')
WebFont.load({
    custom: {
        families: [
          'Titillium Web:300,400,600,700:latin-ext',
          'Lora:400,700:latin-ext',
          'Roboto Mono:400,700:latin-ext'
        ]
    }
})

Peer dependencies

La libreria non include react e react-dom, evitando clashing di versioni e aumento inutile delle dimensioni del bundle. Per questo motivo per lo sviluppo in locale sarà necessario installare manualmente le dipendenze.

Il comando da eseguire è

$ yarn install --peers

oppure in alternativa manualmente

$ yarn install react react-dom

Come iniziare

Clona il repository ed esegui yarn per installare le dipendenze. Quindi esegui yarn storybook:serve per avviare il server di sviluppo.

Storybook sarà quindi disponibile all'indirizzo http://localhost:9001/

storybook

Storybook è stato arricchito con alcuni addons che lo rendono più parlante.

Come creare nuovi componenti

Questa sezione guiderà alla creazione di nuovi componenti nel repository. Tutti i componenti risiedono nella cartella src: ogni componente possiede una sua cartella con tutto ciò che è necessario per farlo funzionare. Le storie Storybook invece sono sotto stories. I test unitari risiedono nella cartella test. Il componente Button ad esempio è presente sotto il percorso src/Button e la sua struttura è la seguente:

src
    └── Button
        ├── Button.tsx
stories
    └── Button
        ├── Button.stories.mdx
        ├── Button.stories.tsx
test
    ├── Button.test.tsx

Alcune regole di base per strutturare i componenti:

  • I file TSX file del componente utilizza la sintassi JSX.
  • I file .stories.tsx dovrebbero contenere solo quanto relativo al componente stesso.
  • I file .stories.mdx dovrebbero contenere solo documentazione relativa al componente stesso
  • I file .test.tsx dovrebbero contenere solo test relativi al componente stesso.

Una volta creato un nuovo componente, con la sua story, avviando Storybook sarà possibile controllare che tutto funzioni come dovrebbe.

Come contribuire

Per inviare nuovi contenuti o bug fix è necessario fare un fork del repository, quindi partire dal branch master per un nuovo branch contenente la funzionalità: una volta completa la funzionalità (con relativi test ove possibile), sarà necessario fare una PR sul repository principale.

Snapshot tests

Il sistema di testing prevede un controllo delle storie presenti, mediante una tecnica chiamata "snapshot" testing: il contenuto della storia Storybook verrà copiato in un file speciale e preservato per notificare eventuali cambiamenti in futuro. Questo fa si che l'aggiunta di nuove storie potrebbe risultare in un fallimento del task "test" in una PR. Qualora fosse stata aggiunta una nuova storia o modificata una già presente, sarà necessario aggiornare il file di snapshot come segue:

yarn test -u

A questo punto creare un nuovo commit ed aggiornare la PR con il file di snapshot aggiornato. Controllare che le modifiche apportate siano corrette prima di aggiornare la PR.

Publishing

E' disponibile un comando per generare una versione statica del catalogo Storybook così che possa essere deployato senza utilizzo di un webserver.

$ yarn storybook:build

Le pagine statiche ottenute dal processo di build saranno generate sotto la folder storybook-static.

Compilazione libreria

Per compilare la libreria e generare i file nella cartella dist, è sufficiente lanciare il comando dedicato:

$ yarn build

Supporto browsers

Il kit segue le indicazioni riportate nelle Linee Guida di Design per i servizi web della Pubblica Amministrazione, sezione 6.3.1.2.1. Supporto browser mediante l'utilizzo del pacchetto browserslist-config-design-italia.

TypeScript typings

La libreria è stata portata a Typescript ed i tipi sono esportati con essa.

Ringraziamenti

Chromatic

Grazie a Chromatic per aver fornito la piattaforma di visual testing che ci aiuta a revisionare cambiamenti UI e intercettare regressioni visuali.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].