# Structure LESS pour BoL

Ce dossier contient tous les fichiers LESS qui sont compilés en CSS pour le système BoL.

## Structure des fichiers

```
styles/
├── bol.less                    # Fichier principal (importe tous les autres)
├── global/                     # Styles globaux
│   ├── typography.less         # Fonts et styles de texte
│   ├── foundry-overrides.less  # Overrides Foundry VTT
│   ├── flex.less               # Utilitaires Flexbox
│   ├── forms.less              # Styles de formulaires
│   ├── item-list.less          # Listes d'items
│   ├── colors.less             # Couleurs pré-définies
│   └── chat.less               # Messages de chat
└── components/                 # Composants spécifiques
    ├── common.less             # Styles communs aux sheets
    ├── actor.less              # Feuilles d'acteurs
    └── item.less               # Feuilles d'items
```

## Compilation

### Commande unique
```bash
npm run css
```

### Mode watch (recompile automatiquement)
```bash
gulp
```
ou
```bash
npm start
```

## Modification des styles

1. **NE PAS modifier** directement `css/bol.css`
2. Modifier les fichiers `.less` appropriés dans `styles/`
3. Compiler avec `npm run css`
4. Le fichier `css/bol.css` sera régénéré automatiquement

## Organisation

### Global (`styles/global/`)

- **typography.less** : Définition des @font-face et styles de texte de base
- **foundry-overrides.less** : Overrides des styles Foundry (pause, scrollbar, etc.)
- **flex.less** : Classes utilitaires flexbox (.flexrow, .flexcol, etc.)
- **forms.less** : Tous les styles de formulaires (inputs, selects, labels, etc.)
- **item-list.less** : Styles des listes d'items (.items-list)
- **colors.less** : Classes de couleurs pré-définies (.red, .bg-red, etc.)
- **chat.less** : Styles des messages de chat et résultats de dés

### Components (`styles/components/`)

- **common.less** : Styles communs à toutes les sheets (.bol.sheet)
  - Window header/content
  - Sheet header avec banner
  - Tabs
  - Sheet body

- **actor.less** : Styles spécifiques aux feuilles d'acteurs
  - Dimensions et layout
  - Images d'attributs (vigor, agility, etc.)
  - Footer
  - Stats, resources
  - HUD et tooltips

- **item.less** : Styles spécifiques aux feuilles d'items
  - Dimensions
  - Properties list
  - Dialog

## Avantages de LESS

1. **Variables** : Réutilisables dans tout le code
2. **Nesting** : Code plus lisible et maintenable
3. **Mixins** : Réutilisation de blocs de styles
4. **Imports** : Organisation modulaire
5. **Opérations** : Calculs CSS (calc() amélioré)

## Exemple d'utilisation

### Avant (CSS)
```css
.bol.sheet.actor .window-content form .sidebar .profile-img {
  cursor: pointer;
  border: none;
}
```

### Après (LESS)
```less
.bol.sheet.actor {
  .window-content {
    form {
      .sidebar {
        .profile-img {
          cursor: pointer;
          border: none;
        }
      }
    }
  }
}
```

## Notes importantes

- La compilation LESS → CSS se fait automatiquement avec gulp
- Le fichier `css/bol.css` est généré et ne doit pas être modifié manuellement
- Tous les imports sont dans `styles/bol.less`
- Les chemins des images/fonts sont relatifs au fichier CSS final dans `css/`
