12 Commits

Author SHA1 Message Date
606b38e022 fix: Track package-lock.json to enable npm ci in CI/CD
All checks were successful
Release Creation / build (release) Successful in 1m32s
Retire package-lock.json du .gitignore afin que npm ci puisse
fonctionner dans le workflow de release Gitea.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-01 09:19:35 +02:00
4d9fa45ab6 AJout workflow
Some checks failed
Release Creation / build (release) Failing after 2m18s
2026-04-01 09:05:20 +02:00
8a4e0ba0e4 ci: Make pack compilation explicit in release workflow
Remplace npm run build:full par 3 étapes séparées et nommées :
- Install dependencies (npm ci)
- Compile compendium packs (npm run pack:compile)
- Build CSS and JavaScript (npm run build)

Les compendiums sont désormais générés à la volée depuis packs-src/
à chaque release, indépendamment de l'état commité de packs/.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-01 08:51:39 +02:00
93df69a43e ci: Add Gitea release workflow
Adapté depuis fvtt-te-deum, avec :
- Étape npm ci + npm run build:full (compilation CSS et packs)
- Zip incluant css/ fonts/ images/ lang/ packs/ src/ templates/
- Substitution version/manifest/download dans system.json
- Publication sur le serveur FoundryVTT (compatibility 13)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-01 08:46:49 +02:00
6a5819b905 Ajout des compendiums et cleanup des images 2026-04-01 08:41:40 +02:00
389d4b8008 feat: Add per-type NPC icons + update compendium icons
6 new SVG icons in images/icons/, one per NPC type:
- icon-npc-esprit-animal.svg (amber) — paw print + yin-yang
- icon-npc-fantome.svg (cyan) — ghost silhouette + 鬼 character
- icon-npc-demon.svg (red) — horned demon face
- icon-npc-jiugwaai.svg (emerald) — hybrid creature + 怪 character
- icon-npc-dieu.svg (gold) — divine halo + lotus
- icon-npc-mortel.svg (steel blue) — human silhouette + talisman

All 49 NPC JSON files updated with type-specific icon paths.
Pack cde-npcs recompiled.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-31 23:12:27 +02:00
ce1ed17ce1 Ajout des compendiums et cleanup des images 2026-03-31 23:04:06 +02:00
ac4bcb4217 chore: Remove accidental temp/debug files from repo
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-31 22:58:44 +02:00
01861340ad feat: Add NPC compendium with 49 PNJs from the rulebook
- 9 esprits-animaux nommés (James Kam, Karen Sen, Susan Chow, Hyun Ci, Michelle Chun, Scott Zang, Pui Gan, Bui Hok, Sonia Tsui)
- 8 fantômes (Phil Mok, Tony Meng + 4 archétypes génériques)
- 13 démons (Je Maan, Good Boy, Charlie Fei, Zoeng, Ban Daan + 8 archétypes génériques)
- 4 jiugwaai (Juk Lyun + archétypes gaaujan, gwat jyun)
- 2 divinités (Ruby Jin Jin / tinneoi, Jing Tin)
- 3 mortels initiés nommés (Laureen Zoeng, Julian Po, John Wa)
- 8 PNJ du scénario L'Année du Lion (Alexander Weng, Maximilian Pang, Ginny Ching, Ken Luan, Jeffrey Chiu, Paul Fei, Leonie Fei, Carrie Suet)
- 3 archétypes mortels génériques (Fat si sorcier, Intermédiaire, Consultant ésotérique)
- Suppression du fichier modèle npc_Modele_Creature.json
- Recompilation du pack cde-npcs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-31 22:58:35 +02:00
6091d4bf58 feat(compendiums): add 54 ingredient items from rulebook (all disciplines)
- 27 general esoteric items (school=all)
- 6 Cinabre interne items
- 7 Alchimie items
- 7 Exorcisme items
- 7 Géomancie items
- No specific Maîtrise de la Voie items (not listed in rulebook)
- Template file removed

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-31 21:11:20 +02:00
bc9f4d9867 feat(compendiums): add 5 sanhei and 16 supernatural capacity items
- Add 5 pre-constructed sanhei from rulebook (p.216-218):
  Lance du Croc d'Argent, Gantelet aux Écailles irisées,
  Pinceau écarlate, Rouleau de la Monture céleste,
  Sceau du Dragon-gardien
- Each sanhei has 3 filled properties with name/heiCost/heiType/description
- Add 16 supernatural capacities from bestiary chapter (p.349-353):
  absorption_yang, arme, don_inne, immortalite, intangibilite,
  metamorphe (x5 sub-types), peur, possession, protection,
  regeneration, vol, venin
- Delete template placeholder files for both packs
- Recompile cde-sanhei and cde-supernaturals packs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-31 20:49:01 +02:00
2756d95ea5 feat(compendiums): add 25 spells and 20 martial arts from rulebook
- Extract all 25 magical speciality items from PDF (all 5 disciplines)
- Extract all 20 martial arts style items from PDF
- Fix Wing Chun technique 'La terre tourne autour du soleil'
- Fix La Paume des Huit Trigrammes technique 2 'Contourner l'obstacle'
- Fix Les Poignards volants with all 3 techniques from rulebook
- Delete template placeholder files
- Recompile all packs (cde-spells: 25, cde-kungfus: 20)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-31 20:32:36 +02:00
784 changed files with 12048 additions and 6 deletions

View File

@@ -0,0 +1,78 @@
name: Release Creation
on:
release:
types: [published]
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo "💡 The ${{ gitea.repository }} repository will be cloned to the runner."
- uses: https://github.com/RouxAntoine/checkout@v3.5.4
# Get part of the tag after the `v`
- name: Extract tag version number
id: get_version
uses: https://github.com/battila7/get-version-action@v2
- name: Setup Node.js
uses: https://github.com/actions/setup-node@v3
with:
node-version: "20"
- name: Install dependencies
run: npm ci
# Génération à la volée des compendiums (packs-src/ → packs/ LevelDB)
- name: Compile compendium packs
run: npm run pack:compile
# Compilation CSS (LESS → css/) et bundle JavaScript (src/ → dist/)
- name: Build CSS and JavaScript
run: npm run build
# Substitute the Manifest and Download URLs in the system.json
- name: Substitute Manifest and Download Links For Versioned Ones
id: sub_manifest_link_version
uses: https://github.com/microsoft/variable-substitution@v1
with:
files: "system.json"
env:
version: ${{steps.get_version.outputs.version-without-v}}
url: https://www.uberwald.me/gitea/${{gitea.repository}}
manifest: https://www.uberwald.me/gitea/public/fvtt-chroniques-de-l-etrange/releases/download/latest/system.json
download: https://www.uberwald.me/gitea/public/fvtt-chroniques-de-l-etrange/releases/download/${{github.event.release.tag_name}}/fvtt-chroniques-de-l-etrange.zip
# Create a zip file with all files required by the system
- run: |
apt update -y
apt install -y zip
- run: zip -r ./fvtt-chroniques-de-l-etrange.zip system.json README.md CHANGELOG.md LICENSE.txt css/ fonts/ images/ lang/ packs/ src/ templates/
- name: Setup Go
uses: https://github.com/actions/setup-go@v4
with:
go-version: ">=1.20.1"
- name: Upload release assets
id: use-go-action
uses: https://gitea.com/actions/release-action@main
with:
files: |-
./fvtt-chroniques-de-l-etrange.zip
system.json
api_key: "${{secrets.ALLOW_PUSH_RELEASE}}"
#- name: Publish to Foundry server
# uses: https://github.com/djlechuck/foundryvtt-publish-package-action@v1
# with:
# #token: ${{ secrets.FOUNDRYVTT_RELEASE_TOKEN }}
# id: 'fvtt-chroniques-de-l-etrange'
# version: ${{github.event.release.tag_name}}
# manifest: 'https://www.uberwald.me/gitea/public/fvtt-chroniques-de-l-etrange/releases/download/latest/system.json'
# notes: 'https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/fvtt-chroniques-de-l-etrange.zip'
# compatibility-minimum: '13'
# compatibility-verified: '13'

1
.gitignore vendored
View File

@@ -5,7 +5,6 @@
# Node Modules
node_modules/
package-lock.json
chroniquesdeletrange.lock
*.pdf

21
dist/system.js vendored
View File

@@ -648,7 +648,25 @@ var CDEActor = class extends Actor {
};
// src/documents/item.js
var DEFAULT_ICONS = {
kungfu: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-kungfu.svg",
spell: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-spell.svg",
supernatural: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-supernatural.svg",
weapon: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg",
armor: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-armor.svg",
sanhei: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-sanhei.svg",
ingredient: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-ingredient.svg",
item: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-item.svg"
};
var CDEItem = class extends Item {
/** @override */
async _preCreate(data, options, userId) {
await super._preCreate(data, options, userId);
const defaultIcon = DEFAULT_ICONS[this.type];
if (defaultIcon && (!data.img || data.img === Item.DEFAULT_ICON)) {
this.updateSource({ img: defaultIcon });
}
}
};
// src/ui/dice.js
@@ -2441,7 +2459,8 @@ Hooks.on("updateSetting", (setting) => {
*
* Chroniques de l'Étrange est un jeu de rôle édité par Antre-Monde Éditions.
* Ce système FoundryVTT est une implémentation indépendante et n'est pas
* affilié à Antre-Monde Éditions.
* affilié à Antre-Monde Éditions,
* mais a été réalisé avec l'autorisation d'Antre-Monde Éditions.
*
* @author LeRatierBretonnien
* @copyright 20242026 LeRatierBretonnien

4
dist/system.js.map vendored

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

View File

@@ -0,0 +1,58 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<radialGradient id="ar-glow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#4ecdc4" stop-opacity="0.3"/>
<stop offset="100%" stop-color="#4ecdc4" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Fond -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#ar-glow)"/>
<!-- Bouclier circulaire extérieur -->
<circle cx="50" cy="50" r="36" fill="#4ecdc4" fill-opacity="0.08" stroke="#4ecdc4" stroke-width="2.5"/>
<!-- Anneau décoratif intérieur -->
<circle cx="50" cy="50" r="30" fill="none" stroke="#4ecdc4" stroke-width="1" opacity="0.5"/>
<!-- 8 rivets décoratifs sur le bord extérieur du bouclier -->
<circle cx="50" cy="15" r="2" fill="#4ecdc4" opacity="0.8"/>
<circle cx="75" cy="25" r="2" fill="#4ecdc4" opacity="0.8"/>
<circle cx="85" cy="50" r="2" fill="#4ecdc4" opacity="0.8"/>
<circle cx="75" cy="75" r="2" fill="#4ecdc4" opacity="0.8"/>
<circle cx="50" cy="85" r="2" fill="#4ecdc4" opacity="0.8"/>
<circle cx="25" cy="75" r="2" fill="#4ecdc4" opacity="0.8"/>
<circle cx="15" cy="50" r="2" fill="#4ecdc4" opacity="0.8"/>
<circle cx="25" cy="25" r="2" fill="#4ecdc4" opacity="0.8"/>
<!-- Tête de tigre stylisée -->
<!-- Front / dessus de la tête -->
<path d="M34 40 Q50 30 66 40 Q68 48 64 54 Q58 62 50 64 Q42 62 36 54 Q32 48 34 40 Z"
fill="#4ecdc4" fill-opacity="0.15" stroke="#4ecdc4" stroke-width="2"/>
<!-- Oreilles de tigre -->
<path d="M34 40 Q28 30 32 24 Q36 32 40 38" fill="#4ecdc4" fill-opacity="0.2" stroke="#4ecdc4" stroke-width="1.5"/>
<path d="M66 40 Q72 30 68 24 Q64 32 60 38" fill="#4ecdc4" fill-opacity="0.2" stroke="#4ecdc4" stroke-width="1.5"/>
<!-- Yeux du tigre -->
<ellipse cx="43" cy="46" rx="5" ry="4" fill="none" stroke="#4ecdc4" stroke-width="1.5"/>
<ellipse cx="57" cy="46" rx="5" ry="4" fill="none" stroke="#4ecdc4" stroke-width="1.5"/>
<ellipse cx="43" cy="46" rx="2" ry="3" fill="#4ecdc4" fill-opacity="0.5"/>
<ellipse cx="57" cy="46" rx="2" ry="3" fill="#4ecdc4" fill-opacity="0.5"/>
<!-- Nez du tigre -->
<path d="M47 52 Q50 50 53 52 Q50 55 47 52 Z" fill="#4ecdc4" fill-opacity="0.6" stroke="#4ecdc4" stroke-width="1"/>
<!-- Moustaches -->
<line x1="32" y1="53" x2="45" y2="53" stroke="#4ecdc4" stroke-width="1" opacity="0.7"/>
<line x1="55" y1="53" x2="68" y2="53" stroke="#4ecdc4" stroke-width="1" opacity="0.7"/>
<line x1="33" y1="57" x2="45" y2="55" stroke="#4ecdc4" stroke-width="1" opacity="0.7"/>
<line x1="55" y1="55" x2="67" y2="57" stroke="#4ecdc4" stroke-width="1" opacity="0.7"/>
<!-- Rayures de tigre sur le front -->
<path d="M46 36 Q48 40 47 44" fill="none" stroke="#4ecdc4" stroke-width="1.5" stroke-linecap="round" opacity="0.6"/>
<path d="M50 34 Q50 38 50 42" fill="none" stroke="#4ecdc4" stroke-width="1.5" stroke-linecap="round" opacity="0.6"/>
<path d="M54 36 Q52 40 53 44" fill="none" stroke="#4ecdc4" stroke-width="1.5" stroke-linecap="round" opacity="0.6"/>
<!-- Crocs en bas -->
<path d="M46 60 L44 68 L46 64 L48 70 L50 63 L52 70 L54 64 L56 68 L54 60"
fill="none" stroke="#4ecdc4" stroke-width="1.5" stroke-linejoin="round" opacity="0.8"/>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -0,0 +1,53 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<radialGradient id="ig-glow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#98c379" stop-opacity="0.3"/>
<stop offset="100%" stop-color="#98c379" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Fond -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#ig-glow)"/>
<!-- Pilon (pestle) — en haut à droite -->
<line x1="62" y1="20" x2="52" y2="40" stroke="#98c379" stroke-width="3.5" stroke-linecap="round"/>
<!-- Tête du pilon (plus épaisse) -->
<ellipse cx="63" cy="19" rx="4" ry="3" fill="#98c379" fill-opacity="0.4" stroke="#98c379" stroke-width="1.5" transform="rotate(-30 63 19)"/>
<!-- Mortier (bol) -->
<!-- Corps extérieur du mortier -->
<path d="M22 54 Q22 76 50 80 Q78 76 78 54 Z"
fill="#98c379" fill-opacity="0.12" stroke="#98c379" stroke-width="2.5"/>
<!-- Bord supérieur du mortier (ellipse) -->
<ellipse cx="50" cy="54" rx="28" ry="8" fill="#98c379" fill-opacity="0.1" stroke="#98c379" stroke-width="2"/>
<!-- Contenu / intérieur sombre -->
<ellipse cx="50" cy="56" rx="22" ry="6" fill="#101622" fill-opacity="0.6"/>
<!-- Surface du contenu (herbes) -->
<ellipse cx="50" cy="55" rx="18" ry="4" fill="#98c379" fill-opacity="0.2" stroke="#98c379" stroke-width="0.8" opacity="0.6"/>
<!-- Ornements du mortier (gravures) -->
<!-- Motif vague (eau) sur le corps du mortier -->
<path d="M26 64 Q32 60 38 64 Q44 68 50 64 Q56 60 62 64 Q68 68 74 64"
fill="none" stroke="#98c379" stroke-width="1" opacity="0.5"/>
<!-- Fleur de lotus au-dessus du mortier -->
<!-- Pétales (6) -->
<path d="M50 44 Q46 36 42 30 Q46 34 50 32 Q54 34 58 30 Q54 36 50 44"
fill="#98c379" fill-opacity="0.2" stroke="#98c379" stroke-width="1.5"/>
<path d="M38 48 Q30 44 26 38 Q32 40 36 36 Q40 32 40 38 Q40 44 38 48"
fill="#98c379" fill-opacity="0.2" stroke="#98c379" stroke-width="1.5"/>
<path d="M62 48 Q70 44 74 38 Q68 40 64 36 Q60 32 60 38 Q60 44 62 48"
fill="#98c379" fill-opacity="0.2" stroke="#98c379" stroke-width="1.5"/>
<!-- Coeur du lotus -->
<circle cx="50" cy="46" r="4" fill="#98c379" fill-opacity="0.4" stroke="#98c379" stroke-width="1.5"/>
<circle cx="50" cy="46" r="1.5" fill="#98c379"/>
<!-- Vapeurs alchimiques -->
<path d="M36 52 Q32 46 36 40 Q34 44 38 46 Q36 48 38 52"
fill="none" stroke="#98c379" stroke-width="1" stroke-linecap="round" opacity="0.5"/>
<path d="M50 52 Q48 44 52 38 Q50 44 54 46 Q52 48 52 52"
fill="none" stroke="#98c379" stroke-width="1" stroke-linecap="round" opacity="0.5"/>
<path d="M64 52 Q68 46 64 40 Q66 44 62 46 Q64 48 62 52"
fill="none" stroke="#98c379" stroke-width="1" stroke-linecap="round" opacity="0.5"/>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,59 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<radialGradient id="it-glow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#00d4d4" stop-opacity="0.3"/>
<stop offset="100%" stop-color="#00d4d4" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Fond -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#it-glow)"/>
<!-- Coffret laqué (corps) -->
<!-- Couvercle -->
<rect x="20" y="26" width="60" height="20" rx="3" fill="#00d4d4" fill-opacity="0.12" stroke="#00d4d4" stroke-width="2.5"/>
<!-- Corps du coffret -->
<rect x="18" y="46" width="64" height="32" rx="3" fill="#00d4d4" fill-opacity="0.08" stroke="#00d4d4" stroke-width="2.5"/>
<!-- Ligne de séparation couvercle/corps -->
<line x1="18" y1="46" x2="82" y2="46" stroke="#00d4d4" stroke-width="1.5" opacity="0.7"/>
<!-- Ornements du couvercle -->
<!-- Motif de losanges (style laque chinoise) -->
<path d="M36 36 L50 28 L64 36 L50 44 Z" fill="none" stroke="#00d4d4" stroke-width="1" opacity="0.5"/>
<!-- Lignes décoratives côtés couvercle -->
<line x1="22" y1="30" x2="22" y2="42" stroke="#00d4d4" stroke-width="1" opacity="0.4"/>
<line x1="78" y1="30" x2="78" y2="42" stroke="#00d4d4" stroke-width="1" opacity="0.4"/>
<!-- Serrure yin-yang au centre du corps du coffret -->
<!-- Cercle de la serrure -->
<circle cx="50" cy="60" r="9" fill="#101622" stroke="#00d4d4" stroke-width="2"/>
<!-- Yin-yang simplifié dans la serrure -->
<!-- Moitié yang (gauche, claire) -->
<path d="M50 51 A9 9 0 0 0 50 69 A4.5 4.5 0 0 0 50 60 A4.5 4.5 0 0 1 50 51"
fill="#00d4d4" fill-opacity="0.4"/>
<!-- Petits cercles du yin-yang -->
<circle cx="50" cy="55.5" r="2" fill="#101622"/>
<circle cx="50" cy="64.5" r="2" fill="#00d4d4" fill-opacity="0.6"/>
<!-- Anneau de la serrure (trou de clé) -->
<rect x="48" y="66" width="4" height="5" rx="1" fill="#00d4d4" fill-opacity="0.5"/>
<!-- Ferrures du coffret (coins) -->
<!-- Coins du corps -->
<path d="M18 46 L18 54 L24 54" fill="none" stroke="#00d4d4" stroke-width="1.5" stroke-linecap="round"/>
<path d="M82 46 L82 54 L76 54" fill="none" stroke="#00d4d4" stroke-width="1.5" stroke-linecap="round"/>
<path d="M18 78 L18 70 L24 70" fill="none" stroke="#00d4d4" stroke-width="1.5" stroke-linecap="round"/>
<path d="M82 78 L82 70 L76 70" fill="none" stroke="#00d4d4" stroke-width="1.5" stroke-linecap="round"/>
<!-- Charnières du coffret (sur le côté droit) -->
<rect x="76" y="40" width="8" height="5" rx="2" fill="#00d4d4" fill-opacity="0.3" stroke="#00d4d4" stroke-width="1"/>
<rect x="76" y="50" width="8" height="5" rx="2" fill="#00d4d4" fill-opacity="0.3" stroke="#00d4d4" stroke-width="1"/>
<!-- Motif décoratif sur le bas du coffret -->
<path d="M26 72 Q50 68 74 72" fill="none" stroke="#00d4d4" stroke-width="1" stroke-dasharray="3 2" opacity="0.4"/>
<!-- Petits ornements latéraux sur le corps -->
<line x1="22" y1="56" x2="22" y2="68" stroke="#00d4d4" stroke-width="1" stroke-dasharray="2 2" opacity="0.4"/>
<line x1="78" y1="56" x2="78" y2="68" stroke="#00d4d4" stroke-width="1" stroke-dasharray="2 2" opacity="0.4"/>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -0,0 +1,38 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<!-- Fond circulaire -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#kg-glow)" fill-opacity="0.12"/>
<defs>
<radialGradient id="kg-glow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#ff3d5a" stop-opacity="0.4"/>
<stop offset="100%" stop-color="#ff3d5a" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Poing stylisé (vue de face, doigts repliés) -->
<!-- Paume / base -->
<rect x="32" y="52" width="36" height="20" rx="4" fill="#ff3d5a" fill-opacity="0.18" stroke="#ff3d5a" stroke-width="2"/>
<!-- Doigts repliés — 4 rangées -->
<rect x="33" y="38" width="8" height="16" rx="3" fill="#ff3d5a" fill-opacity="0.18" stroke="#ff3d5a" stroke-width="2"/>
<rect x="43" y="35" width="8" height="19" rx="3" fill="#ff3d5a" fill-opacity="0.18" stroke="#ff3d5a" stroke-width="2"/>
<rect x="53" y="36" width="8" height="18" rx="3" fill="#ff3d5a" fill-opacity="0.18" stroke="#ff3d5a" stroke-width="2"/>
<rect x="63" y="40" width="6" height="14" rx="3" fill="#ff3d5a" fill-opacity="0.18" stroke="#ff3d5a" stroke-width="2"/>
<!-- Pouce -->
<path d="M32 62 Q24 60 25 54 Q26 50 32 52" fill="#ff3d5a" fill-opacity="0.18" stroke="#ff3d5a" stroke-width="2" stroke-linejoin="round"/>
<!-- Éclairs de qi (3 rayons) -->
<!-- Éclair gauche-haut -->
<polyline points="24,28 19,20 25,22 20,13" fill="none" stroke="#ff3d5a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" opacity="0.9"/>
<!-- Éclair centre-haut -->
<polyline points="50,30 47,20 52,23 49,13" fill="none" stroke="#ff3d5a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" opacity="0.9"/>
<!-- Éclair droite-haut -->
<polyline points="74,32 80,22 74,24 79,14" fill="none" stroke="#ff3d5a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" opacity="0.9"/>
<!-- Petites étincelles -->
<circle cx="22" cy="35" r="1.5" fill="#ff3d5a" opacity="0.8"/>
<circle cx="78" cy="37" r="1.5" fill="#ff3d5a" opacity="0.8"/>
<circle cx="50" cy="26" r="1.5" fill="#ff3d5a" opacity="0.8"/>
<!-- Ligne de force sous le poing -->
<path d="M28 73 Q50 80 72 73" fill="none" stroke="#ff3d5a" stroke-width="1.5" stroke-dasharray="3 2" opacity="0.5"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,43 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<radialGradient id="dm-glow" cx="50%" cy="45%" r="50%">
<stop offset="0%" stop-color="#cc2222" stop-opacity="0.5"/>
<stop offset="100%" stop-color="#cc2222" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Fond -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#dm-glow)"/>
<!-- Flammes infernales en arrière-plan -->
<path d="M30 78 Q28 65 34 56 Q30 62 32 52 Q36 42 42 48 Q38 36 46 28 Q48 42 44 50 Q50 38 54 30 Q56 44 50 54 Q56 46 62 40 Q62 54 56 62 Q62 56 68 52 Q66 64 62 72 Q56 66 54 72 Q50 80 48 72 Q44 64 40 72 Q36 80 30 78 Z"
fill="#cc2222" fill-opacity="0.18" stroke="#cc2222" stroke-width="1" stroke-linejoin="round" opacity="0.7"/>
<!-- Visage de démon - contour de tête -->
<ellipse cx="50" cy="52" rx="20" ry="22" fill="#cc2222" fill-opacity="0.12" stroke="#cc2222" stroke-width="2"/>
<!-- Deux cornes -->
<path d="M36 35 Q32 20 38 16 Q40 24 38 30" fill="#cc2222" fill-opacity="0.7" stroke="#cc2222" stroke-width="1.5" stroke-linejoin="round"/>
<path d="M64 35 Q68 20 62 16 Q60 24 62 30" fill="#cc2222" fill-opacity="0.7" stroke="#cc2222" stroke-width="1.5" stroke-linejoin="round"/>
<!-- Yeux (forme de flamme) -->
<path d="M40 50 Q44 44 48 50 Q44 56 40 50 Z" fill="#cc2222" opacity="0.9"/>
<path d="M52 50 Q56 44 60 50 Q56 56 52 50 Z" fill="#cc2222" opacity="0.9"/>
<!-- Pupilles -->
<ellipse cx="44" cy="50" rx="1.5" ry="2.5" fill="#101622"/>
<ellipse cx="56" cy="50" rx="1.5" ry="2.5" fill="#101622"/>
<!-- Nez aplati (démon) -->
<path d="M47 58 Q50 60 53 58" fill="none" stroke="#cc2222" stroke-width="2" stroke-linecap="round" opacity="0.7"/>
<!-- Bouche avec crocs -->
<path d="M38 66 Q50 74 62 66" fill="none" stroke="#cc2222" stroke-width="2" stroke-linecap="round" opacity="0.8"/>
<!-- Crocs -->
<path d="M43 67 L42 73 L45 68" fill="#cc2222" opacity="0.7"/>
<path d="M57 67 L58 73 L55 68" fill="#cc2222" opacity="0.7"/>
<!-- Sourcils menaçants -->
<path d="M38 44 Q44 40 48 43" fill="none" stroke="#cc2222" stroke-width="2.5" stroke-linecap="round" opacity="0.8"/>
<path d="M52 43 Q56 40 62 44" fill="none" stroke="#cc2222" stroke-width="2.5" stroke-linecap="round" opacity="0.8"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,44 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<radialGradient id="dv-glow" cx="50%" cy="40%" r="55%">
<stop offset="0%" stop-color="#ddaa00" stop-opacity="0.5"/>
<stop offset="100%" stop-color="#ddaa00" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Fond -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#dv-glow)"/>
<!-- Rayons célestes (halo) -->
<line x1="50" y1="10" x2="50" y2="18" stroke="#ddaa00" stroke-width="2" opacity="0.6"/>
<line x1="68" y1="15" x2="64" y2="22" stroke="#ddaa00" stroke-width="2" opacity="0.6"/>
<line x1="80" y1="28" x2="74" y2="32" stroke="#ddaa00" stroke-width="2" opacity="0.6"/>
<line x1="32" y1="15" x2="36" y2="22" stroke="#ddaa00" stroke-width="2" opacity="0.6"/>
<line x1="20" y1="28" x2="26" y2="32" stroke="#ddaa00" stroke-width="2" opacity="0.6"/>
<line x1="86" y1="44" x2="80" y2="46" stroke="#ddaa00" stroke-width="1.5" opacity="0.5"/>
<line x1="14" y1="44" x2="20" y2="46" stroke="#ddaa00" stroke-width="1.5" opacity="0.5"/>
<!-- Halo circulaire doré -->
<circle cx="50" cy="36" r="14" fill="none" stroke="#ddaa00" stroke-width="2.5" opacity="0.8"/>
<circle cx="50" cy="36" r="16" fill="none" stroke="#ddaa00" stroke-width="0.8" opacity="0.4" stroke-dasharray="3,4"/>
<!-- Lotus (5 pétales) -->
<ellipse cx="50" cy="72" rx="8" ry="4" fill="#ddaa00" fill-opacity="0.6" transform="rotate(0,50,72)"/>
<ellipse cx="50" cy="72" rx="8" ry="4" fill="#ddaa00" fill-opacity="0.4" transform="rotate(36,50,72)"/>
<ellipse cx="50" cy="72" rx="8" ry="4" fill="#ddaa00" fill-opacity="0.4" transform="rotate(72,50,72)"/>
<ellipse cx="50" cy="72" rx="8" ry="4" fill="#ddaa00" fill-opacity="0.4" transform="rotate(108,50,72)"/>
<ellipse cx="50" cy="72" rx="8" ry="4" fill="#ddaa00" fill-opacity="0.4" transform="rotate(144,50,72)"/>
<!-- Cœur du lotus -->
<circle cx="50" cy="72" r="4" fill="#ddaa00" fill-opacity="0.8"/>
<!-- Silhouette divine — corps lumineux -->
<ellipse cx="50" cy="36" rx="8" ry="10" fill="#ddaa00" fill-opacity="0.25"/>
<!-- Corps stylisé (robe longue) -->
<path d="M44 44 Q40 58 42 72 Q50 68 58 72 Q60 58 56 44 Z"
fill="#ddaa00" fill-opacity="0.18" stroke="#ddaa00" stroke-width="1.5"/>
<!-- Mains en prière -->
<path d="M44 54 Q38 52 36 56 Q38 60 44 58" fill="#ddaa00" fill-opacity="0.3" stroke="#ddaa00" stroke-width="1.2"/>
<path d="M56 54 Q62 52 64 56 Q62 60 56 58" fill="#ddaa00" fill-opacity="0.3" stroke="#ddaa00" stroke-width="1.2"/>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,41 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<radialGradient id="ea-glow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#e8a030" stop-opacity="0.4"/>
<stop offset="100%" stop-color="#e8a030" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Fond -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#ea-glow)"/>
<!-- Anneau extérieur -->
<circle cx="50" cy="50" r="42" fill="none" stroke="#e8a030" stroke-width="1.2" opacity="0.4"/>
<!-- Yin-Yang stylisé (transformation) -->
<!-- Demi-cercle yang (clair) -->
<path d="M50 18 A32 32 0 0 1 50 82 A16 16 0 0 0 50 50 A16 16 0 0 1 50 18 Z"
fill="#e8a030" fill-opacity="0.25" stroke="#e8a030" stroke-width="1.5"/>
<!-- Demi-cercle yin (sombre) -->
<path d="M50 18 A32 32 0 0 0 50 82 A16 16 0 0 1 50 50 A16 16 0 0 0 50 18 Z"
fill="#e8a030" fill-opacity="0.05" stroke="#e8a030" stroke-width="1.5"/>
<!-- Petits cercles yin-yang -->
<circle cx="50" cy="34" r="6" fill="#e8a030" fill-opacity="0.6"/>
<circle cx="50" cy="66" r="6" fill="#e8a030" fill-opacity="0.15" stroke="#e8a030" stroke-width="1.2"/>
<!-- Patte d'animal (5 coussinets) -->
<!-- Coussinet principal (paume) -->
<ellipse cx="50" cy="55" rx="9" ry="7" fill="#e8a030" fill-opacity="0.7"/>
<!-- 4 orteils -->
<ellipse cx="40" cy="44" rx="4" ry="3.5" fill="#e8a030" fill-opacity="0.7" transform="rotate(-15,40,44)"/>
<ellipse cx="45" cy="41" rx="4" ry="3.5" fill="#e8a030" fill-opacity="0.7" transform="rotate(-5,45,41)"/>
<ellipse cx="55" cy="41" rx="4" ry="3.5" fill="#e8a030" fill-opacity="0.7" transform="rotate(5,55,41)"/>
<ellipse cx="60" cy="44" rx="4" ry="3.5" fill="#e8a030" fill-opacity="0.7" transform="rotate(15,60,44)"/>
<!-- Griffes stylisées -->
<path d="M38 42 Q35 38 34 34" fill="none" stroke="#e8a030" stroke-width="1.8" stroke-linecap="round" opacity="0.8"/>
<path d="M43 39 Q42 35 42 31" fill="none" stroke="#e8a030" stroke-width="1.8" stroke-linecap="round" opacity="0.8"/>
<path d="M57 39 Q58 35 58 31" fill="none" stroke="#e8a030" stroke-width="1.8" stroke-linecap="round" opacity="0.8"/>
<path d="M62 42 Q65 38 66 34" fill="none" stroke="#e8a030" stroke-width="1.8" stroke-linecap="round" opacity="0.8"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,41 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<radialGradient id="gh-glow" cx="50%" cy="40%" r="55%">
<stop offset="0%" stop-color="#88ccee" stop-opacity="0.45"/>
<stop offset="100%" stop-color="#88ccee" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Fond -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#gh-glow)"/>
<!-- Silhouette fantôme — tête arrondie -->
<path d="M34 44 Q34 24 50 22 Q66 24 66 44 L66 68 Q62 64 58 68 Q55 72 52 68 Q49 64 50 68 Q47 72 44 68 Q40 64 36 68 Q34 64 34 68 Z"
fill="#88ccee" fill-opacity="0.15" stroke="#88ccee" stroke-width="2" stroke-linejoin="round"/>
<!-- Yeux fantôme — vides, inquiétants -->
<ellipse cx="43" cy="42" rx="4" ry="5" fill="#101622" stroke="#88ccee" stroke-width="1.5" opacity="0.9"/>
<ellipse cx="57" cy="42" rx="4" ry="5" fill="#101622" stroke="#88ccee" stroke-width="1.5" opacity="0.9"/>
<!-- Lueurs dans les yeux -->
<ellipse cx="43" cy="42" rx="1.5" ry="2" fill="#88ccee" opacity="0.5"/>
<ellipse cx="57" cy="42" rx="1.5" ry="2" fill="#88ccee" opacity="0.5"/>
<!-- Kanji 鬼 stylisé en filigrane (simplifié) -->
<!-- Traits horizontaux et verticaux évoquant le caractère -->
<line x1="40" y1="53" x2="60" y2="53" stroke="#88ccee" stroke-width="1.5" opacity="0.5"/>
<line x1="50" y1="53" x2="50" y2="62" stroke="#88ccee" stroke-width="1.5" opacity="0.5"/>
<path d="M42 58 Q50 55 58 58" fill="none" stroke="#88ccee" stroke-width="1.5" opacity="0.5"/>
<!-- Traînée vaporeuse en bas -->
<path d="M38 68 Q36 75 38 82 Q40 88 44 84 Q46 78 48 84 Q50 88 52 84 Q54 78 56 84 Q58 88 62 82 Q64 75 62 68"
fill="#88ccee" fill-opacity="0.08" stroke="#88ccee" stroke-width="1.2" stroke-dasharray="3,3" opacity="0.6"/>
<!-- Chaînes (lien au monde des vivants) — deux petits maillons -->
<circle cx="32" cy="52" r="3" fill="none" stroke="#88ccee" stroke-width="1.5" opacity="0.5"/>
<circle cx="32" cy="58" r="3" fill="none" stroke="#88ccee" stroke-width="1.5" opacity="0.5"/>
<line x1="32" y1="49" x2="32" y2="55" stroke="#88ccee" stroke-width="1.5" opacity="0.5"/>
<circle cx="68" cy="52" r="3" fill="none" stroke="#88ccee" stroke-width="1.5" opacity="0.5"/>
<circle cx="68" cy="58" r="3" fill="none" stroke="#88ccee" stroke-width="1.5" opacity="0.5"/>
<line x1="68" y1="49" x2="68" y2="55" stroke="#88ccee" stroke-width="1.5" opacity="0.5"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,47 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<radialGradient id="jg-glow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#22cc88" stop-opacity="0.4"/>
<stop offset="100%" stop-color="#22cc88" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Fond -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#jg-glow)"/>
<!-- Cercle de transformation mystique -->
<circle cx="50" cy="50" r="38" fill="none" stroke="#22cc88" stroke-width="1.2" opacity="0.35" stroke-dasharray="4,3"/>
<!-- Silhouette multi-forme (créature hybride) -->
<!-- Corps central — humanoïde -->
<ellipse cx="50" cy="52" rx="12" ry="15" fill="#22cc88" fill-opacity="0.15" stroke="#22cc88" stroke-width="1.8"/>
<!-- Tête avec cornes/oreilles animales -->
<circle cx="50" cy="35" r="9" fill="#22cc88" fill-opacity="0.15" stroke="#22cc88" stroke-width="1.8"/>
<!-- Oreilles pointues (animal) -->
<path d="M41 30 L38 20 L45 28" fill="#22cc88" fill-opacity="0.5" stroke="#22cc88" stroke-width="1.5" stroke-linejoin="round"/>
<path d="M59 30 L62 20 L55 28" fill="#22cc88" fill-opacity="0.5" stroke="#22cc88" stroke-width="1.5" stroke-linejoin="round"/>
<!-- Yeux (regard surnaturel) -->
<ellipse cx="46" cy="35" rx="3" ry="2" fill="#22cc88" opacity="0.8"/>
<ellipse cx="54" cy="35" rx="3" ry="2" fill="#22cc88" opacity="0.8"/>
<!-- Queue spiralée -->
<path d="M62 60 Q72 58 74 65 Q76 72 68 74 Q62 74 62 68"
fill="none" stroke="#22cc88" stroke-width="2" stroke-linecap="round" opacity="0.7"/>
<!-- Tentacule / membre supplémentaire gauche -->
<path d="M38 55 Q26 52 22 60 Q20 68 28 66"
fill="none" stroke="#22cc88" stroke-width="2" stroke-linecap="round" opacity="0.6"/>
<!-- Écailles / motif sur le corps -->
<path d="M44 46 Q50 42 56 46 Q52 50 50 48 Q48 50 44 46 Z"
fill="#22cc88" fill-opacity="0.3" stroke="#22cc88" stroke-width="1"/>
<path d="M44 52 Q50 48 56 52 Q52 56 50 54 Q48 56 44 52 Z"
fill="#22cc88" fill-opacity="0.3" stroke="#22cc88" stroke-width="1"/>
<!-- Kanji 怪 (étrange) stylisé — simplifié -->
<text x="50" y="81" text-anchor="middle" font-size="11" font-family="serif"
fill="#22cc88" opacity="0.55"></text>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,41 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<radialGradient id="mt-glow" cx="50%" cy="40%" r="50%">
<stop offset="0%" stop-color="#6688aa" stop-opacity="0.35"/>
<stop offset="100%" stop-color="#6688aa" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Fond -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#mt-glow)"/>
<!-- Anneau ésotérique (cercle de protection) -->
<circle cx="50" cy="50" r="40" fill="none" stroke="#6688aa" stroke-width="1.2" opacity="0.4"/>
<circle cx="50" cy="50" r="38" fill="none" stroke="#6688aa" stroke-width="0.6" opacity="0.25" stroke-dasharray="5,4"/>
<!-- Silhouette humaine -->
<!-- Tête -->
<circle cx="50" cy="30" r="9" fill="#6688aa" fill-opacity="0.25" stroke="#6688aa" stroke-width="1.8"/>
<!-- Corps -->
<path d="M40 42 L36 66 L42 66 L45 56 L50 60 L55 56 L58 66 L64 66 L60 42 Z"
fill="#6688aa" fill-opacity="0.2" stroke="#6688aa" stroke-width="1.8" stroke-linejoin="round"/>
<!-- Bras gauche -->
<path d="M40 44 Q30 52 28 60" fill="none" stroke="#6688aa" stroke-width="2" stroke-linecap="round"/>
<!-- Bras droit (levé, tenant un talisman) -->
<path d="M60 44 Q70 48 72 42" fill="none" stroke="#6688aa" stroke-width="2" stroke-linecap="round"/>
<!-- Talisman / ofuda (papier de prière) -->
<rect x="68" y="32" width="10" height="14" rx="1"
fill="#6688aa" fill-opacity="0.2" stroke="#6688aa" stroke-width="1.5"/>
<!-- Lignes du talisman -->
<line x1="70" y1="36" x2="76" y2="36" stroke="#6688aa" stroke-width="1" opacity="0.7"/>
<line x1="70" y1="39" x2="76" y2="39" stroke="#6688aa" stroke-width="1" opacity="0.7"/>
<line x1="70" y1="42" x2="76" y2="42" stroke="#6688aa" stroke-width="1" opacity="0.7"/>
<!-- Symbole occulte sur la poitrine (trigramme Pa Kua simplifié) -->
<line x1="45" y1="46" x2="55" y2="46" stroke="#6688aa" stroke-width="1.5" opacity="0.6"/>
<line x1="45" y1="49" x2="55" y2="49" stroke="#6688aa" stroke-width="1.5" opacity="0.6"/>
<line x1="45" y1="52" x2="50" y2="52" stroke="#6688aa" stroke-width="1.5" opacity="0.6"/>
<line x1="52" y1="52" x2="55" y2="52" stroke="#6688aa" stroke-width="1.5" opacity="0.6"/>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -0,0 +1,58 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<radialGradient id="sh-glow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#cc44ff" stop-opacity="0.35"/>
<stop offset="100%" stop-color="#cc44ff" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Fond -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#sh-glow)"/>
<!-- Disque Bi (玉璧) — anneau de jade -->
<!-- Anneau extérieur -->
<circle cx="50" cy="50" r="32" fill="#cc44ff" fill-opacity="0.12" stroke="#cc44ff" stroke-width="2.5"/>
<!-- Trou central du bi -->
<circle cx="50" cy="50" r="14" fill="#101622" stroke="#cc44ff" stroke-width="2"/>
<!-- Gravures décoratives sur le disque (surface du bi) -->
<!-- Spirales de grain (yun wen) — motif traditionnel des bi -->
<circle cx="50" cy="50" r="23" fill="none" stroke="#cc44ff" stroke-width="0.8" stroke-dasharray="2.5 2" opacity="0.5"/>
<circle cx="50" cy="50" r="19" fill="none" stroke="#cc44ff" stroke-width="0.8" stroke-dasharray="1.5 3" opacity="0.4"/>
<!-- Petits motifs en spirale sur la surface du bi (8 grains) -->
<path d="M50 22 Q52 20 54 22 Q52 24 50 22" fill="none" stroke="#cc44ff" stroke-width="1" opacity="0.7"/>
<path d="M68 32 Q70 30 72 32 Q70 34 68 32" fill="none" stroke="#cc44ff" stroke-width="1" opacity="0.7"/>
<path d="M78 50 Q80 48 82 50 Q80 52 78 50" fill="none" stroke="#cc44ff" stroke-width="1" opacity="0.7"/>
<path d="M68 68 Q70 66 72 68 Q70 70 68 68" fill="none" stroke="#cc44ff" stroke-width="1" opacity="0.7"/>
<path d="M50 78 Q52 76 54 78 Q52 80 50 78" fill="none" stroke="#cc44ff" stroke-width="1" opacity="0.7"/>
<path d="M28 68 Q30 66 32 68 Q30 70 28 68" fill="none" stroke="#cc44ff" stroke-width="1" opacity="0.7"/>
<path d="M18 50 Q20 48 22 50 Q20 52 18 50" fill="none" stroke="#cc44ff" stroke-width="1" opacity="0.7"/>
<path d="M28 32 Q30 30 32 32 Q30 34 28 32" fill="none" stroke="#cc44ff" stroke-width="1" opacity="0.7"/>
<!-- 3 Perles (San = 3 en cantonais) flottant autour du bi -->
<!-- Perle 1 — haut -->
<circle cx="50" cy="10" r="5" fill="#cc44ff" fill-opacity="0.25" stroke="#cc44ff" stroke-width="1.8"/>
<circle cx="48" cy="8" r="1.5" fill="#cc44ff" fill-opacity="0.6"/>
<!-- Fil de perle haut -->
<line x1="50" y1="15" x2="50" y2="18" stroke="#cc44ff" stroke-width="1" stroke-dasharray="2 1" opacity="0.6"/>
<!-- Perle 2 — bas-gauche -->
<circle cx="26" cy="84" r="5" fill="#cc44ff" fill-opacity="0.25" stroke="#cc44ff" stroke-width="1.8"/>
<circle cx="24" cy="82" r="1.5" fill="#cc44ff" fill-opacity="0.6"/>
<!-- Fil perle bas-gauche -->
<line x1="30" y1="80" x2="34" y2="76" stroke="#cc44ff" stroke-width="1" stroke-dasharray="2 1" opacity="0.6"/>
<!-- Perle 3 — bas-droit -->
<circle cx="74" cy="84" r="5" fill="#cc44ff" fill-opacity="0.25" stroke="#cc44ff" stroke-width="1.8"/>
<circle cx="72" cy="82" r="1.5" fill="#cc44ff" fill-opacity="0.6"/>
<!-- Fil perle bas-droit -->
<line x1="70" y1="80" x2="66" y2="76" stroke="#cc44ff" stroke-width="1" stroke-dasharray="2 1" opacity="0.6"/>
<!-- Runes dans le trou central -->
<!-- Symbole 三 (3 traits) -->
<line x1="44" y1="46" x2="56" y2="46" stroke="#cc44ff" stroke-width="1.5" opacity="0.8"/>
<line x1="43" y1="50" x2="57" y2="50" stroke="#cc44ff" stroke-width="1.5" opacity="0.8"/>
<line x1="44" y1="54" x2="56" y2="54" stroke="#cc44ff" stroke-width="1.5" opacity="0.8"/>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1,62 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<radialGradient id="sp-glow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#4a9eff" stop-opacity="0.35"/>
<stop offset="100%" stop-color="#4a9eff" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Fond -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#sp-glow)"/>
<!-- Octogone extérieur (bagua) -->
<polygon points="50,18 68,24 79,40 79,60 68,76 50,82 32,76 21,60 21,40 32,24"
fill="none" stroke="#4a9eff" stroke-width="1.8" opacity="0.7"/>
<!-- 8 trigrammes sur les côtés (petites lignes stylisées) -->
<!-- Chaque trigramme = 3 lignes, positionnées sur les 8 côtés de l'octogone -->
<!-- Nord -->
<line x1="46" y1="13" x2="54" y2="13" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="46" y1="16" x2="54" y2="16" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="46" y1="19" x2="54" y2="19" stroke="#4a9eff" stroke-width="1.5"/>
<!-- Nord-Est -->
<line x1="66" y1="18" x2="72" y2="22" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="64" y1="21" x2="70" y2="25" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="62" y1="24" x2="66" y2="27" stroke="#4a9eff" stroke-width="1.5"/>
<!-- Est -->
<line x1="81" y1="46" x2="87" y2="46" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="81" y1="50" x2="87" y2="50" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="83" y1="54" x2="87" y2="54" stroke="#4a9eff" stroke-width="1.5"/>
<!-- Sud-Est -->
<line x1="66" y1="78" x2="72" y2="74" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="64" y1="75" x2="70" y2="71" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="62" y1="72" x2="68" y2="69" stroke="#4a9eff" stroke-width="1.5"/>
<!-- Sud -->
<line x1="46" y1="87" x2="54" y2="87" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="46" y1="84" x2="54" y2="84" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="46" y1="81" x2="54" y2="81" stroke="#4a9eff" stroke-width="1.5"/>
<!-- Sud-Ouest -->
<line x1="34" y1="78" x2="28" y2="74" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="36" y1="75" x2="30" y2="71" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="38" y1="72" x2="32" y2="69" stroke="#4a9eff" stroke-width="1.5"/>
<!-- Ouest -->
<line x1="19" y1="46" x2="13" y2="46" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="19" y1="50" x2="13" y2="50" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="17" y1="54" x2="13" y2="54" stroke="#4a9eff" stroke-width="1.5"/>
<!-- Nord-Ouest -->
<line x1="34" y1="18" x2="28" y2="22" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="36" y1="21" x2="30" y2="25" stroke="#4a9eff" stroke-width="1.5"/>
<line x1="38" y1="24" x2="34" y2="27" stroke="#4a9eff" stroke-width="1.5"/>
<!-- Cercle intérieur -->
<circle cx="50" cy="50" r="22" fill="none" stroke="#4a9eff" stroke-width="1.5" opacity="0.6"/>
<!-- Spirale de cinnabre (qi) — double spirale -->
<path d="M50 50 Q54 42 50 38 Q44 34 40 40 Q36 48 42 54 Q50 62 60 56 Q68 48 62 38 Q54 28 42 32"
fill="none" stroke="#4a9eff" stroke-width="2" stroke-linecap="round" opacity="0.9"/>
<!-- Point central (cinnabre) -->
<circle cx="50" cy="50" r="4" fill="#4a9eff" fill-opacity="0.5" stroke="#4a9eff" stroke-width="1.5"/>
<circle cx="50" cy="50" r="1.5" fill="#4a9eff"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1,49 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<radialGradient id="sn-glow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#cc44ff" stop-opacity="0.4"/>
<stop offset="100%" stop-color="#cc44ff" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Fond -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#sn-glow)"/>
<!-- Flammes surnaturelles (gauche) -->
<path d="M22 72 Q20 60 26 52 Q22 56 24 46 Q28 38 32 42 Q28 32 36 26 Q38 38 34 44 Q40 36 42 28 Q46 40 40 50 Q46 44 48 36 Q52 48 46 56 Q50 50 54 44 Q56 56 50 64 Q54 58 58 52 Q60 62 56 70 Q52 68 50 72"
fill="#cc44ff" fill-opacity="0.2" stroke="#cc44ff" stroke-width="1.5" stroke-linejoin="round" opacity="0.8"/>
<!-- Contour de l'œil (grand) -->
<path d="M20 50 Q35 30 50 30 Q65 30 80 50 Q65 70 50 70 Q35 70 20 50 Z"
fill="none" stroke="#cc44ff" stroke-width="2" opacity="0.9"/>
<!-- Remplissage doux de l'œil -->
<path d="M25 50 Q38 36 50 36 Q62 36 75 50 Q62 64 50 64 Q38 64 25 50 Z"
fill="#cc44ff" fill-opacity="0.08"/>
<!-- Iris de l'œil -->
<circle cx="50" cy="50" r="10" fill="none" stroke="#cc44ff" stroke-width="2" opacity="0.8"/>
<!-- Pupille verticale (reptilienne / surnaturelle) -->
<ellipse cx="50" cy="50" rx="3" ry="8" fill="#cc44ff" fill-opacity="0.6"/>
<!-- Reflet -->
<circle cx="47" cy="46" r="2" fill="#cc44ff" fill-opacity="0.5"/>
<!-- Flammes supérieures (au-dessus de l'œil) -->
<path d="M38 30 Q36 22 42 18 Q40 26 46 22 Q44 28 50 24 Q48 30 54 26 Q52 32 58 28 Q56 34 62 30"
fill="none" stroke="#cc44ff" stroke-width="1.8" stroke-linecap="round" opacity="0.9"/>
<!-- Lignes de rayonnement autour de l'œil -->
<line x1="50" y1="24" x2="50" y2="18" stroke="#cc44ff" stroke-width="1.5" opacity="0.6"/>
<line x1="50" y1="76" x2="50" y2="82" stroke="#cc44ff" stroke-width="1.5" opacity="0.6"/>
<line x1="14" y1="50" x2="8" y2="50" stroke="#cc44ff" stroke-width="1.5" opacity="0.6"/>
<line x1="86" y1="50" x2="92" y2="50" stroke="#cc44ff" stroke-width="1.5" opacity="0.6"/>
<!-- Diagonaux -->
<line x1="27" y1="27" x2="22" y2="22" stroke="#cc44ff" stroke-width="1.2" opacity="0.5"/>
<line x1="73" y1="27" x2="78" y2="22" stroke="#cc44ff" stroke-width="1.2" opacity="0.5"/>
<line x1="27" y1="73" x2="22" y2="78" stroke="#cc44ff" stroke-width="1.2" opacity="0.5"/>
<line x1="73" y1="73" x2="78" y2="78" stroke="#cc44ff" stroke-width="1.2" opacity="0.5"/>
<!-- Spirales surnaturelles aux coins -->
<path d="M16 22 Q20 16 26 20 Q22 24 18 22" fill="none" stroke="#cc44ff" stroke-width="1.2" opacity="0.6"/>
<path d="M84 22 Q80 16 74 20 Q78 24 82 22" fill="none" stroke="#cc44ff" stroke-width="1.2" opacity="0.6"/>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,46 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<radialGradient id="wp-glow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#ff6b35" stop-opacity="0.3"/>
<stop offset="100%" stop-color="#ff6b35" stop-opacity="0"/>
</radialGradient>
</defs>
<!-- Fond -->
<circle cx="50" cy="50" r="48" fill="#101622" stroke="#1a2436" stroke-width="2"/>
<circle cx="50" cy="50" r="48" fill="url(#wp-glow)"/>
<!-- Dao (sabre courbé) — de bas-gauche à haut-droit -->
<!-- Lame du dao (légèrement courbée) -->
<path d="M22 78 Q30 60 45 45 Q58 32 72 22"
fill="none" stroke="#ff6b35" stroke-width="3.5" stroke-linecap="round"/>
<!-- Dos de la lame (trait intérieur plus fin) -->
<path d="M25 76 Q33 58 47 44 Q59 33 72 24"
fill="none" stroke="#ff6b35" stroke-width="1" stroke-linecap="round" opacity="0.5"/>
<!-- Brillance de la lame -->
<path d="M28 73 Q38 56 52 42"
fill="none" stroke="#ff6b35" stroke-width="0.8" stroke-linecap="round" opacity="0.8" stroke-dasharray="2 3"/>
<!-- Garde du dao (petite croix ornementée) -->
<path d="M36 66 Q38 60 46 56 Q50 54 56 58 Q50 62 44 68 Z"
fill="#ff6b35" fill-opacity="0.3" stroke="#ff6b35" stroke-width="1.5"/>
<!-- Poignée du dao -->
<line x1="22" y1="78" x2="15" y2="86" stroke="#ff6b35" stroke-width="4" stroke-linecap="round" opacity="0.7"/>
<rect x="13" y="84" width="6" height="4" rx="2" fill="#ff6b35" fill-opacity="0.5" stroke="#ff6b35" stroke-width="1" transform="rotate(-45 16 86)"/>
<!-- Lance — de bas-droit à haut-gauche -->
<!-- Hampe de la lance -->
<line x1="78" y1="78" x2="22" y2="22" stroke="#ff6b35" stroke-width="2" stroke-linecap="round" opacity="0.7"/>
<!-- Pointe de la lance (haut-gauche) -->
<path d="M22 22 L16 14 L20 20 L14 18 Z" fill="#ff6b35" stroke="#ff6b35" stroke-width="1" stroke-linejoin="round"/>
<!-- Ornement milieu de hampe -->
<path d="M44 44 Q48 40 52 44 Q48 48 44 44 Z" fill="#ff6b35" fill-opacity="0.4" stroke="#ff6b35" stroke-width="1"/>
<!-- Embout de la lance (bas-droit) -->
<path d="M78 78 L84 85 L80 80 L86 82 Z" fill="#ff6b35" stroke="#ff6b35" stroke-width="1" stroke-linejoin="round" opacity="0.7"/>
<!-- Petites étincelles au croisement -->
<circle cx="50" cy="50" r="3" fill="#ff6b35" fill-opacity="0.3" stroke="#ff6b35" stroke-width="1.5"/>
<line x1="50" y1="44" x2="50" y2="40" stroke="#ff6b35" stroke-width="1" opacity="0.7"/>
<line x1="56" y1="50" x2="60" y2="50" stroke="#ff6b35" stroke-width="1" opacity="0.7"/>
<line x1="44" y1="50" x2="40" y2="50" stroke="#ff6b35" stroke-width="1" opacity="0.7"/>
<line x1="50" y1="56" x2="50" y2="60" stroke="#ff6b35" stroke-width="1" opacity="0.7"/>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 KiB

Some files were not shown because too many files have changed in this diff Show More