🚀 DAY 4 OF LAUNCH WEEK:Introducing Socket Scanning for OpenVSX Extensions.Learn more
Socket
Book a DemoInstallSign in
Socket

@weirdoo-srl/woffice

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
Package was removed
Sorry, it seems this package was removed from the registry

@weirdoo-srl/woffice

React component library for Weirdoo - a complete design system with TypeScript and SCSS

latest
Source
npmnpm
Version
1.1.16
Version published
Maintainers
1
Created
Source

WOffice - Design System di Weirdoo

Version License Storybook Live Demo

WOffice è la libreria di componenti ufficiale di Weirdoo, progettata per garantire coerenza, accessibilità e qualità nei nostri prodotti digitali.

🎯 Missione

WOffice nasce dall'esigenza di standardizzare l'esperienza utente attraverso tutti i prodotti Weirdoo, fornendo ai nostri team di sviluppo e design uno strumento condiviso per creare interfacce moderne, accessibili e performanti.

✨ Caratteristiche Principali

  • 🎨 Design System Completo: Colori, tipografia, spacing e componenti coerenti
  • ♿ Accessibilità: Componenti conformi alle linee guida WCAG 2.1
  • 📱 Responsive: Design ottimizzato per tutti i dispositivi
  • ⚡ Performance: Componenti ottimizzati per velocità e efficienza
  • 🔧 Personalizzabile: Sistema di variabili e temi flessibile
  • 📚 Documentazione: Storybook integrato per esplorare e testare i componenti
  • 🧪 Testing: Suite di test completa per garantire qualità

🚀 Iniziare

Prerequisiti

  • Node.js 20+
  • Yarn o npm
  • React 19+

Installazione

# Clona il repository
git clone https://github.com/weirdoo/woffice.git
cd woffice

# Installa le dipendenze
yarn install

# Avvia Storybook per esplorare i componenti
yarn storybook

# Oppure visualizza la versione online
# https://68b7f08cda73791b842e0029-uczerdchdj.chromatic.com/

Utilizzo nei Progetti

# Installa WOffice come dipendenza
yarn add woffice

# Oppure per sviluppo locale
yarn add file:../woffice
import { WButton, WInput, WTextarea, WErrorMessage } from 'woffice';

function MyForm() {
  return (
    <form>
      <WInput
        name="email"
        label="Email"
        type="email"
        required
      />
      <WTextarea
        name="description"
        label="Descrizione"
        placeholder="Inserisci la tua descrizione..."
        rows={4}
        resize="vertical"
        maxLength={500}
        minLength={10}
      />
      <WButton variant="primary" type="submit">
        Invia
      </WButton>
      <WErrorMessage error="Email non valida" />
    </form>
  );
}

🏗️ Architettura

Struttura del Progetto

src/
├── components/           # Componenti React
│   ├── atoms/           # Componenti atomici (WInput, WErrorMessage)
│   ├── molecules/       # Componenti molecolari
│   └── organisms/       # Componenti organismici
├── styles/              # Sistema di design
│   ├── _breakpoints.scss # Breakpoints responsive
│   ├── _utils.scss      # Funzioni di utilità
│   ├── _index.scss      # Import principale
│   └── themes/          # Sistema di temi
│       ├── _base.scss   # Variabili base
│       ├── _wtheme.scss # Tema WOffice
│       └── _chtheme.scss # Tema Chiron
├── models/              # Tipi TypeScript
└── types/               # Dichiarazioni di tipo

Sistema di Design

WOffice utilizza un sistema di design basato su:

  • 🎨 Colori: CSS Custom Properties per temi dinamici (WTheme con palette verde)
  • 📝 Tipografia: Sistema di font con scale predefinite
  • 📏 Spacing: Sistema di spacing consistente (4px grid)
  • 📱 Breakpoints: Breakpoints responsive standardizzati
  • 🔧 Utilità: Funzioni SCSS per conversioni e calcoli
  • 🎭 Temi: Sistema di temi flessibile per diversi applicativi

🧩 Componenti Disponibili

Atoms (Componenti Base)

  • WErrorMessage: Messaggio di errore animato
  • WSpinner: Spinner di caricamento animato
  • WSvg: Icone SVG scalabili
  • WThemeSwitcher: Componente per cambiare tema

Molecules (Composizioni)

  • WButton: Pulsante con varianti, stati e icone SVG
  • WInput: Campo di input completo con validazione e stati
  • WTextarea: Campo textarea con opzioni di ridimensionamento e validazione
  • WFormField: Campo form completo con label e validazione
  • WCard: Card con header, body e footer
  • WNavigation: Navigazione con breadcrumb

Organisms (Sezioni Complesse)

  • WHeader: Header dell'applicazione
  • WFooter: Footer con link e informazioni
  • WSidebar: Sidebar di navigazione

🎨 Personalizzazione

Sistema di Temi

WOffice supporta un sistema di temi flessibile e facilmente estendibile. Vedi la documentazione completa sui temi per dettagli su:

  • Come utilizzare i temi esistenti
  • Come aggiungere nuovi temi
  • Personalizzazione di colori e font
  • API completa e best practices
// Personalizza i colori tramite CSS Custom Properties
[data-theme="mytema"] {
  --wo-color-primary: #your-brand-color;
  --wo-color-secondary: #your-secondary-color;
  --wo-font-family-primary: 'YourFont', sans-serif;
  // ... altre variabili
}

🧪 Testing

Storybook

# Avvia Storybook
yarn storybook

# Build per produzione
yarn build-storybook

# Test interattivi
yarn test-storybook

# Test in modalità CI
yarn test-storybook:ci

# Test in modalità watch
yarn test-storybook:watch

Test Automatici con Chromatic

WOffice utilizza Chromatic per test automatici completi durante le Pull Request:

  • 🧪 Test automatici di tutti i componenti
  • 🎨 Visual regression testing
  • Accessibility testing
  • 🏗️ Build verification
# Test locale con Chromatic
yarn chromatic

# Test solo componenti modificati
npx chromatic --only-changed

📖 Guida completa ai test con Chromatic
🔍 Configurazione Status Checks

Test Unitari

# Esegui tutti i test
yarn test

# Test con coverage
yarn test:coverage

# Test in modalità watch
yarn test:watch

Test E2E

# Test con Playwright
yarn test:e2e

# Test specifici
yarn test:e2e:components

📚 Documentazione

Storybook

La documentazione completa è disponibile in Storybook, dove puoi:

  • 📖 Esplorare tutti i componenti
  • 🎮 Interagire con le varianti
  • 📱 Testare la responsività
  • ♿ Verificare l'accessibilità
  • 💻 Copiare il codice

🌐 Visualizza Storybook Online

Il link è pubblico e accessibile a tutti senza registrazione!

API Reference

Ogni componente include:

  • Props: Descrizione completa delle proprietà
  • Varianti: Esempi di utilizzo
  • Stati: Comportamento in diverse condizioni
  • Accessibilità: Linee guida per l'uso corretto

🤝 Contribuire

Linee Guida per i Contributi

⚠️ Importante: Prima di contribuire, assicurati di aver letto e compreso gli Standard di Sviluppo Weirdoo. Questi standard garantiscono coerenza e qualità in tutto il codicebase.

  • Fork il repository
  • Crea un branch per la feature (git checkout -b feature/nuova-feature)
  • Commit le modifiche (git commit -am 'Aggiunge nuova feature')
  • Push al branch (git push origin feature/nuova-feature)
  • Crea una Pull Request

Standard di Codice

  • TypeScript: Tipizzazione completa per tutti i componenti
  • SCSS: Utilizzo del sistema di design centralizzato
  • Testing: Coverage minimo dell'80%
  • Accessibilità: Conformità WCAG 2.1 AA
  • Performance: Bundle size ottimizzato

Formattazione automatica (Prettier/ESLint)

Per garantire uno stile di codice coerente, il repository è configurato con formattazione automatica al commit:

  • Husky + lint-staged eseguono automaticamente:
    • Prettier (formattazione) sui file staged
    • ESLint con fix automatico sui file TypeScript/JavaScript
    • Stylelint con fix automatico sui file SCSS/CSS

Non è necessario fare nulla manualmente: al comando git commit verranno eseguiti i check e la formattazione dei file modificati.

Comandi utili:

# Esegui Prettier su tutto il progetto
npx prettier --write "src/**/*.{ts,tsx,js,jsx,scss,css,json,md}"

# Esegui i task di lint-staged (sui file staged)
npx lint-staged

# Lint completo del progetto con ESLint
yarn lint

# Lint completo degli stili con Stylelint
yarn lint:styles

Configurazione rilevante:

  • Hook Git: .husky/pre-commit → esegue npx lint-staged
  • package.json → sezione lint-staged con pattern: src/**/*.{ts,tsx,js,jsx,scss,css,md,json}

📖 Standard di Sviluppo

Per garantire coerenza e qualità nel codice, tutti i componenti WOffice devono seguire gli standard definiti nel nostro repository di onboarding:

📚 Onboarding Weirdoo

Questo repository contiene:

  • Convenzioni di Naming: Standard per file, componenti e funzioni
  • Pattern di Codice: Best practices per React e TypeScript
  • Struttura dei Componenti: Template e organizzazione del codice
  • Linee Guida Git: Workflow per commit, branch e pull request
  • Code Review: Checklist e criteri di valutazione

Processo di Review

Ogni contributo passa attraverso:

  • Linting: ESLint e Prettier
  • Testing: Test unitari e integrazione
  • Accessibilità: Audit automatici
  • Performance: Analisi del bundle
  • Code Review: Review da parte del team

📦 Distribuzione

Versioning

WOffice segue Semantic Versioning:

  • Major: Cambiamenti breaking
  • Minor: Nuove feature compatibili
  • Patch: Bug fix e miglioramenti

Release

# Build per produzione
yarn build

# Pubblica su npm
yarn publish

# Genera changelog
yarn changelog

🏢 Weirdoo

WOffice è sviluppato e mantenuto da Weirdoo, azienda specializzata in:

  • 🎨 Design Digitale: Interfacce moderne e intuitive
  • 💻 Sviluppo Software: Soluzioni personalizzate
  • 📱 App Mobile: Applicazioni native e cross-platform
  • 🌐 Web Development: Siti e applicazioni web
  • 🚀 Innovazione: Tecnologie emergenti e soluzioni creative

Contatti

📄 Licenza

Questo progetto è rilasciato sotto licenza MIT. Vedi il file LICENSE per i dettagli.

WOffice - Costruiamo il futuro digitale insieme 🚀

Sviluppato con ❤️ dal team Weirdoo

Keywords

react

FAQs

Package last updated on 10 Sep 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts