commit 54e1a9278c271fc460f2afb269f503d77122d298 Author: Steb Date: Thu Mar 19 23:40:35 2026 +0100 init diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..e0644d6 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,16 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf + +#Setting up lfs for relevant files +##Sound files +*.ogg filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.mp3 filter=lfs diff=lfs merge=lfs -text +## Images +*.png filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +## Videos +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.ogv filter=lfs diff=lfs merge=lfs -text +## Fonts +*.ttf filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..992780a --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +dev/ +src/public/ +.hugo_build.lock + +# IDE +.vscode/ + +*.png~ +*.jpg~ +*.bmp~ \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..a568e64 --- /dev/null +++ b/readme.md @@ -0,0 +1,30 @@ +# SIWA - Game Site + +The following repository stores SIWA game site. + +Requirements: + +- Hugo 0.158.0 + +## Environment setup + +You can put any environment-specific file in the `./dev` folder as it has been added to the `.gitignore` file. + +You will want to copy Hugo executable to `./dev/hugo` folder and add it to your `PATH` environment variable. + +If using VS Code or similar, this can be achieved by opening your workspace settings and adding the following content: + +```json +"terminal.integrated.env.": { + "PATH": "${env:PATH};${workspaceFolder}/dev/hugo" + } +} +``` + +where `` must be replaced by `windows`, `linux`, or `macos`. + +``` +cd src +hugo server --disableFastRender --ignoreCache +hgo build +``` diff --git a/src/archetypes/default.md b/src/archetypes/default.md new file mode 100644 index 0000000..25b6752 --- /dev/null +++ b/src/archetypes/default.md @@ -0,0 +1,5 @@ ++++ +date = '{{ .Date }}' +draft = true +title = '{{ replace .File.ContentBaseName "-" " " | title }}' ++++ diff --git a/src/content/about.md b/src/content/about.md new file mode 100644 index 0000000..f6aed0a --- /dev/null +++ b/src/content/about.md @@ -0,0 +1,3 @@ +D'hostiles monstres de métal ont atterri sur les terres de la paisible communauté des Asmah. + +Revêt le masque du sacrifié et prend le chemin de la ville pour t'offrir au Dieu-Roi et à son culte solaire, seule force à même de contrer la menace mécanique. \ No newline at end of file diff --git a/src/content/explore.md b/src/content/explore.md new file mode 100644 index 0000000..1827ad8 --- /dev/null +++ b/src/content/explore.md @@ -0,0 +1,6 @@ +--- +titles: + - "PROGRESSE" + - "JUSQU'À TA PROPRE FIN" +--- +Explore grottes, champs et forêts jusqu'au lieu du sacrifice. Suis les sources d'eau fertile et résous des puzzles environnementaux dans une aventure contemplative teintée d'éléments horrifiques. \ No newline at end of file diff --git a/src/content/features/eveille.md b/src/content/features/eveille.md new file mode 100644 index 0000000..1862e90 --- /dev/null +++ b/src/content/features/eveille.md @@ -0,0 +1,8 @@ +--- +titles: + - "ÉVEILLE-TOI" + - "AU MONDE DES ESPRITS" +image: "/images/thumbnail_Esprit.png" +order: 2 +--- +Écoute les esprits qui occupent les ténèbres de l'Inframonde, décrypte leur langage et apprend à réenchanter le monde grâce à la puissance du rituel. \ No newline at end of file diff --git a/src/content/features/renaitre.md b/src/content/features/renaitre.md new file mode 100644 index 0000000..7600b86 --- /dev/null +++ b/src/content/features/renaitre.md @@ -0,0 +1,8 @@ +--- +titles: + - "FAIT RENAÎTRE" + - "LES MYTHES OUBLIÉS" +image: "/images/thumbnail_Mythe.png" +order: 1 +--- +Renoue avec les civilisations qui ont vécu sur tes terres en découvrant des secrets et ruines anciennes. Apporte la lumière sur le mythe originel pour empêcher aux puissants de faire basculer le cours de l'histoire. \ No newline at end of file diff --git a/src/content/gallery/index.md b/src/content/gallery/index.md new file mode 100644 index 0000000..e69de29 diff --git a/src/content/gallery/screen_01.png b/src/content/gallery/screen_01.png new file mode 100644 index 0000000..9f09de1 --- /dev/null +++ b/src/content/gallery/screen_01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb9ebbec5e9ff21a3f2eaa6189d1e7e64e8e698c074ff168c81c61a672b86fbc +size 1267261 diff --git a/src/content/gallery/screen_02.png b/src/content/gallery/screen_02.png new file mode 100644 index 0000000..d65222b --- /dev/null +++ b/src/content/gallery/screen_02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6a94dac485f5d75e7e5cdc7e6064235795f4dac73212728636af3ae151e9dda +size 1238926 diff --git a/src/content/gallery/screen_03.png b/src/content/gallery/screen_03.png new file mode 100644 index 0000000..5950e1e --- /dev/null +++ b/src/content/gallery/screen_03.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c274d9d0394383e1113bdd0fc6bf015adc91cd29765b9a88557ac9eed01e1ec +size 1765836 diff --git a/src/content/gallery/screen_04.png b/src/content/gallery/screen_04.png new file mode 100644 index 0000000..a5df475 --- /dev/null +++ b/src/content/gallery/screen_04.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1c29490d7570de3ee01815486380aae35cdbd172140fa1e517f868290e5cd6c +size 1214308 diff --git a/src/content/gallery/screen_05.png b/src/content/gallery/screen_05.png new file mode 100644 index 0000000..a0edaba --- /dev/null +++ b/src/content/gallery/screen_05.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57d0c71e83e8df759afb8a71e8b70ed6515cb427ee378ca58d811b2b98779ff9 +size 632557 diff --git a/src/content/gallery/screen_06.png b/src/content/gallery/screen_06.png new file mode 100644 index 0000000..b2af686 --- /dev/null +++ b/src/content/gallery/screen_06.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce538fdd57c1a2c574e2bced55bfbd7ac00490dae5a5d52c5b14f19cae6e4dd6 +size 1131638 diff --git a/src/content/gallery/screen_07.png b/src/content/gallery/screen_07.png new file mode 100644 index 0000000..3f587bc --- /dev/null +++ b/src/content/gallery/screen_07.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2c0012408ea289f8ddeeb397761c8d68ed77c8c61a6ed4540e3bc7cd90f1d24 +size 686455 diff --git a/src/content/gallery/screen_08.png b/src/content/gallery/screen_08.png new file mode 100644 index 0000000..181bcaf --- /dev/null +++ b/src/content/gallery/screen_08.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dac8ff35d267dcb2212f1a1c3447abf5bd8e529a8758cdc53299ae3bc48b2e1c +size 1406105 diff --git a/src/content/trouve.md b/src/content/trouve.md new file mode 100644 index 0000000..988bdd1 --- /dev/null +++ b/src/content/trouve.md @@ -0,0 +1,6 @@ +--- +titles: + - "TROUVE LES FAILLES" + - "DES CRÉATURES DE MÉTAL" +--- +Infiltre-toi dans les entrailles mécaniques de tes ennemis. Déjoue leurs protocoles et manipule leurs circuits pour provoquer leur destruction. \ No newline at end of file diff --git a/src/data/configuration.toml b/src/data/configuration.toml new file mode 100644 index 0000000..b8855ea --- /dev/null +++ b/src/data/configuration.toml @@ -0,0 +1,136 @@ +# Info + +[info] +[info.logo] +image = "/images/tampon.png" +top = 20 +left = 20 +width = 100 +height = 85 + +[info.company] +name = "Cute Little Monsters" +copyrightYear = "2026" + +[info.developedBy] +name = "CLeM" +url = "" + +[info.designedBy] +name = "CLeM" +url = "" + +# Global + +[global] +backgroundColor = "gray" +scripts = [ + "extra" +] +styles = [ + "extra" +] + +[global.font] +url = "/fonts/JosefinSans-VariableFont_wght.ttf" +color = "white" + +[global.button] +padding = 1 + +[global.button.default] +image = "" +color = "transparent" + +[global.button.hover] +image = "" +color = "" + +[global.button.pressed] +image = "" +color = "" + +[global.button.large] +padding = 1 + +# Footer + +[footer] +logo = "" +height = 400 + +[footer.background] +image = "/images/thumbnail_Roi_cropped.jpg" +colorFrom = "" +colorTo = "" + +# Menu + +[menu] +height = 180 +width = 650 +backgroundImage = "/images/header.png" +backgroundColor = "" +centered = false +groups = [ + "navigation" +] + +[[menu.entries]] +text = "" +group = "navigation" +link = "#overview" +[menu.entries.icon] +image = "/images/icons/eye.png" +width = 60 +height = 40 + +[[menu.entries]] +text = "À PROPOS" +icon = "" +group = "navigation" +link = "#about" + +[[menu.entries]] +text = "LE JEU" +icon = "" +group = "navigation" +link = "#explore" + +[[menu.entries]] +text = "GALERIE" +icon = "" +group = "navigation" +link = "#gallery" + +[[menu.entries]] +text = "ITCH" +icon = "" +group = "navigation" +link = "https://cutelittlemonsters.itch.io/siwa" + +# Sections + +[[sections]] +id = "overview" +type = "logo" + +[[sections]] +id = "about" +type = "logo-with-text" + +[[sections]] +id = "explore" +type = "simple" + +[[sections]] +id = "features" +type = "ping-pong" + +[[sections]] +id = "trouve" +type = "simple" + +[[sections]] +id = "gallery" +type = "gallery" \ No newline at end of file diff --git a/src/data/sections/about.toml b/src/data/sections/about.toml new file mode 100644 index 0000000..b20290c --- /dev/null +++ b/src/data/sections/about.toml @@ -0,0 +1,17 @@ +height = 100 +shadow = true +shadowOpacity = 0.8 +content = "about.md" +zIndex = 20 +padding = 40 + +[logo] +image = "/images/logos/SIWA_full.png" +textBefore = "" +textAfter = "" + +[background] +image = "/images/bg1.png" +colorFrom = "" +colorTo = "" +scale = 1.1 \ No newline at end of file diff --git a/src/data/sections/explore.toml b/src/data/sections/explore.toml new file mode 100644 index 0000000..25a8f11 --- /dev/null +++ b/src/data/sections/explore.toml @@ -0,0 +1,5 @@ +content = "explore.md" +parallax = true + +[background] +image = "/images/thumbnail_Explore.png" \ No newline at end of file diff --git a/src/data/sections/features.toml b/src/data/sections/features.toml new file mode 100644 index 0000000..f943826 --- /dev/null +++ b/src/data/sections/features.toml @@ -0,0 +1,12 @@ +contentFolder = "features" +height = 20 +shadow = true +shadowOpacity = 0.8 +padding = 20 +zIndex = 20 + +[background] +image = "/images/bg_mythe.png" +colorFrom = "" +colorTo = "" +scale = 1.05 \ No newline at end of file diff --git a/src/data/sections/gallery.toml b/src/data/sections/gallery.toml new file mode 100644 index 0000000..ad6a947 --- /dev/null +++ b/src/data/sections/gallery.toml @@ -0,0 +1,29 @@ +title = "GALERIE" +contentFolder = "gallery" +height = 100 +shadow = true +shadowOpacity = 0.8 +padding = 0 +fontColor = "white" +zIndex = 20 + +[container] +location = "start" + +[innerTopRibbon] +height = 25 +left = "/images/separateur.png" +right = "/images/separateur.png" +middle = [ + "/images/ribbon-eye.png", +] + +[bottomRibbon] +height = 25 +image = "/images/separateur.png" + +[background] +image = "/images/bg2.png" +colorFrom = "" +colorTo = "" +scale = 1.05 \ No newline at end of file diff --git a/src/data/sections/overview.toml b/src/data/sections/overview.toml new file mode 100644 index 0000000..b10446c --- /dev/null +++ b/src/data/sections/overview.toml @@ -0,0 +1,27 @@ +height = 100 +video = "/videos/bg_header.mp4" +parallax = true + +[logo] +image = "/images/logos/SIWA_full.png" +width = 80 + +[background] +image = "" +colorFrom = "" +colorTo = "" + +[[buttons]] +text = "SOUTENIR" +icon = "" +link = "https://docs.getgrist.com/forms/mwCShmbmmgMnq3gL32brmV/24" +fontColor = "" +color = "" + +[[buttons]] +text = "JOUER" +icon = "" +link = "https://cutelittlemonsters.itch.io/siwa" +fontColor = "" +color = "" + diff --git a/src/data/sections/transition1.toml b/src/data/sections/transition1.toml new file mode 100644 index 0000000..1832851 --- /dev/null +++ b/src/data/sections/transition1.toml @@ -0,0 +1,7 @@ +height = 40 +parallax = true + +[background] +image = "/images/thumbnail_Roi_cropped.jpg" +colorFrom = "" +colorTo = "" \ No newline at end of file diff --git a/src/data/sections/trouve.toml b/src/data/sections/trouve.toml new file mode 100644 index 0000000..2602b74 --- /dev/null +++ b/src/data/sections/trouve.toml @@ -0,0 +1,5 @@ +content = "trouve.md" +parallax = true + +[background] +image = "/images/bg3.png" \ No newline at end of file diff --git a/src/hugo.toml b/src/hugo.toml new file mode 100644 index 0000000..51e9353 --- /dev/null +++ b/src/hugo.toml @@ -0,0 +1,4 @@ +baseURL = 'https://example.org/' +locale = 'en-us' +title = 'SIWA' +theme = 'siwa' \ No newline at end of file diff --git a/src/static/css/extra.css b/src/static/css/extra.css new file mode 100644 index 0000000..d18249f --- /dev/null +++ b/src/static/css/extra.css @@ -0,0 +1,141 @@ +.large-button .button-arrow { + display: inline-block; + width: 24px; + height: 20px; + background-image: url("/images/Fleche_changement_de_zone.png"); + background-size: 100% auto; + background-position: center center; + background-repeat: no-repeat; + rotate: 90deg; + margin-left: 10px; + translate: 0px 0px; + transition: all 0.25s ease; +} + +.large-button:hover .button-arrow { + translate: 10px 0px; +} + +.button, +.large-button { + border-style: solid; + border-image: url("/images/button.png") 28 28 28 28 repeat repeat; +} + +.large-button { + border-width: 25px 25px 25px 25px; +} + +.button { + border-width: 15px 15px 15px 15px; +} + +.sprite { + position: absolute; + z-index: 50; +} + +#menu li { + margin-left: 15px; + margin-right: 15px; +} + +#spirit-fish { + top: -154px; + left: -174px; + rotate: 45deg; + opacity: 0.2; +} + +#spirit-doggo { + top: calc(100% - 140px); + left: calc(100% - 185px); + rotate: 0deg; + opacity: 0.2; +} + +#spirit-butterfly-1 { + top: -35px; + left: calc(100% - 128px); + rotate: -20deg; + opacity: 0.2; + scale: 0.7; +} + +#spirit-snow-1 { + top: -2px; + left: 26px; + rotate: 124deg; + opacity: 0.2; +} + +#spirit-snow-2 { + top: 19px; + left: 144px; + rotate: 26deg; + opacity: 0.1; + scale: 0.8; +} + +#spirit-bird { + top: -100px; + left: calc(100% - 281px); + rotate: 0deg; + opacity: 0.2; + scale: 0.8; +} + +#spirit-large-fish { + top: 409px; + left: calc(100% - 254px); + rotate: -4deg; + opacity: 0.2; + scale: 0.8; +} + +#spirit-snow-3 { + top: calc(100% - 570px); + left: 54px; + rotate: 6deg; + opacity: 0.1; + scale: 1; +} + +#spirit-butterfly-2 { + top: calc(100% - 142px); + left: 64px; + rotate: -156deg; + opacity: 0.1; + scale: 1.5; +} + +#tree-1 { + top: calc(100% - 752px); + left: calc(100% - 322px); + rotate: 0deg; + scale: 0.7; + z-index: 0; +} + +#tree-2 { + top: calc(100% - 750px); + left: -422px; + rotate: -24deg; + scale: 0.7; + z-index: 0; + transform: scaleX(-1); +} + +.arrow { + display: inline-block; + background-size: contain; + background-position: center center; + background-repeat: no-repeat; + background-image: url("/images/ribbon-arrows.png"); + padding: 17px; + rotate: 90deg; +} + +#menu { + background-position-y: -38px; +} \ No newline at end of file diff --git a/src/static/favicon.ico b/src/static/favicon.ico new file mode 100644 index 0000000..39c4743 Binary files /dev/null and b/src/static/favicon.ico differ diff --git a/src/static/fonts/JosefinSans-Bold.ttf b/src/static/fonts/JosefinSans-Bold.ttf new file mode 100644 index 0000000..c9b2866 --- /dev/null +++ b/src/static/fonts/JosefinSans-Bold.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da0bfc0a721eeed9caddc619953fa1177d216c548ab9660ebc5a7b1e7bad0c21 +size 59756 diff --git a/src/static/fonts/JosefinSans-Italic-VariableFont_wght.ttf b/src/static/fonts/JosefinSans-Italic-VariableFont_wght.ttf new file mode 100644 index 0000000..b902a75 --- /dev/null +++ b/src/static/fonts/JosefinSans-Italic-VariableFont_wght.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37e217e7e4ad62e9067e37dd0e1984c2202756f83fbbf4faa2b9d86cbb61bed7 +size 125560 diff --git a/src/static/fonts/JosefinSans-SemiBold.ttf b/src/static/fonts/JosefinSans-SemiBold.ttf new file mode 100644 index 0000000..c45717c --- /dev/null +++ b/src/static/fonts/JosefinSans-SemiBold.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:baf1508974afaa5f6856d129c52910248678350667060528b8396812ab340556 +size 59892 diff --git a/src/static/fonts/JosefinSans-VariableFont_wght.ttf b/src/static/fonts/JosefinSans-VariableFont_wght.ttf new file mode 100644 index 0000000..74a3e0b --- /dev/null +++ b/src/static/fonts/JosefinSans-VariableFont_wght.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c073d8e2472bb5cc5519d2a44b2fa2e28d9c12b4be53a5316af3336dd39213cf +size 117720 diff --git a/src/static/images/Angle_box_X4.png b/src/static/images/Angle_box_X4.png new file mode 100644 index 0000000..85a33df --- /dev/null +++ b/src/static/images/Angle_box_X4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1db54c3b2ff96ae5066346a4beb5564f42c15f6c341931bbfd9a960cfd54861b +size 16829 diff --git a/src/static/images/Fleche_changement_de_zone.png b/src/static/images/Fleche_changement_de_zone.png new file mode 100644 index 0000000..bc695b4 --- /dev/null +++ b/src/static/images/Fleche_changement_de_zone.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d394a7b7b51d667f97a8f37f0586dca14ce0ded9312d833af6beedcfc49cf856 +size 3063 diff --git a/src/static/images/Sil_03.png b/src/static/images/Sil_03.png new file mode 100644 index 0000000..550b5ab --- /dev/null +++ b/src/static/images/Sil_03.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a907d780cc0205e249add51c738b99fd7a86d39bcb8087e655b9ca8e292f589 +size 107251 diff --git a/src/static/images/Sil_04.png b/src/static/images/Sil_04.png new file mode 100644 index 0000000..4ba8a58 --- /dev/null +++ b/src/static/images/Sil_04.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53aa7766ea2b9bd8f0d18f4c5b26e390900d7d7f76be83457f40cf5db7257d93 +size 121791 diff --git a/src/static/images/bg1.png b/src/static/images/bg1.png new file mode 100644 index 0000000..96809d9 --- /dev/null +++ b/src/static/images/bg1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:681951d75e3abb682836e34168430e5580c6126f692154611006e6af546cbf6d +size 1266460 diff --git a/src/static/images/bg2.png b/src/static/images/bg2.png new file mode 100644 index 0000000..37893ee --- /dev/null +++ b/src/static/images/bg2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5078ff668956bdfd1995627e63b28825576c8e25349c6d6be9ff6cdefe59a38b +size 361233 diff --git a/src/static/images/bg3.png b/src/static/images/bg3.png new file mode 100644 index 0000000..3cf42b5 --- /dev/null +++ b/src/static/images/bg3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3328dc970f313f90932c3edee9d0c644b6be39cf2c7c03b4dcfbe4c3f711096 +size 2643854 diff --git a/src/static/images/bg_mythe.png b/src/static/images/bg_mythe.png new file mode 100644 index 0000000..507d1e1 --- /dev/null +++ b/src/static/images/bg_mythe.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:328a751a670b5ea65d02d0207fffb245dae450c45f100c82421e65290b1341ec +size 180424 diff --git a/src/static/images/button.png b/src/static/images/button.png new file mode 100644 index 0000000..6aeb32a --- /dev/null +++ b/src/static/images/button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f213c5ac62b2e33c22074a5a0b71c8cbd34744e1e9bec1362ad71106d525d2cc +size 2451 diff --git a/src/static/images/header.png b/src/static/images/header.png new file mode 100644 index 0000000..8336e5c --- /dev/null +++ b/src/static/images/header.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49e916ae7b3b34ebec84decd3d9c9fe8506362c559ae9d1a6af8b719c2dab91b +size 13606 diff --git a/src/static/images/icons/eye.png b/src/static/images/icons/eye.png new file mode 100644 index 0000000..292a2c5 --- /dev/null +++ b/src/static/images/icons/eye.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21aafcabce874e181dd74b154085269c69803c81ce69016232df75e5bbbff48a +size 7855 diff --git a/src/static/images/logos/SIWA_full.png b/src/static/images/logos/SIWA_full.png new file mode 100644 index 0000000..10f66a3 --- /dev/null +++ b/src/static/images/logos/SIWA_full.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d91ef18febe1b94540a4ed38a7fd476b7b40e1960fffe6e4d8656bff591263ce +size 155967 diff --git a/src/static/images/logos/SIWA_grey.png b/src/static/images/logos/SIWA_grey.png new file mode 100644 index 0000000..371adf3 --- /dev/null +++ b/src/static/images/logos/SIWA_grey.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52f0ece6c9ae60fe9a48b396217f45eb0c4af65c40b2fbeae00b9f1daa4c6209 +size 4123 diff --git a/src/static/images/logos/SIWA_white.png b/src/static/images/logos/SIWA_white.png new file mode 100644 index 0000000..08a023a --- /dev/null +++ b/src/static/images/logos/SIWA_white.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d77ed99e80174afe1b7fafe1ea85a59fb189503170e7d458b46f4263b7738c11 +size 70824 diff --git a/src/static/images/logos/main.png b/src/static/images/logos/main.png new file mode 100644 index 0000000..b5617c0 --- /dev/null +++ b/src/static/images/logos/main.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7baab28bb5a6d328d1d082de29360ab29509caaa60f96d51f13af71259e688a3 +size 8018 diff --git a/src/static/images/ribbon-arrows.png b/src/static/images/ribbon-arrows.png new file mode 100644 index 0000000..3564a49 --- /dev/null +++ b/src/static/images/ribbon-arrows.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a43e7a90a14563343326c6095cf969c46a92862de27dc6e6b59920da75efe35f +size 3194 diff --git a/src/static/images/ribbon-eye.png b/src/static/images/ribbon-eye.png new file mode 100644 index 0000000..292a2c5 --- /dev/null +++ b/src/static/images/ribbon-eye.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21aafcabce874e181dd74b154085269c69803c81ce69016232df75e5bbbff48a +size 7855 diff --git a/src/static/images/scene-1.png b/src/static/images/scene-1.png new file mode 100644 index 0000000..ceba4d6 --- /dev/null +++ b/src/static/images/scene-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:476a715fe5f038e509aec5eab176f865f58b4f2361966f0df3adbfa37c8d32c0 +size 2070793 diff --git a/src/static/images/separateur.png b/src/static/images/separateur.png new file mode 100644 index 0000000..b5a6bbe --- /dev/null +++ b/src/static/images/separateur.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34e81d296e8c867fde46ad6389587adabaf2070d54e54295e2eb173c766541e3 +size 4079 diff --git a/src/static/images/sous_titre_v2.png b/src/static/images/sous_titre_v2.png new file mode 100644 index 0000000..94a8ef2 --- /dev/null +++ b/src/static/images/sous_titre_v2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:884ad356df04f26b571ac77f45704e88642506f1c7cb1a4ef5ea432119708583 +size 374762 diff --git a/src/static/images/spirits/1.png b/src/static/images/spirits/1.png new file mode 100644 index 0000000..e23078f --- /dev/null +++ b/src/static/images/spirits/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfa846d9d6d747c6c3bcf4e62d2699cb72caa867fed1b43cc3a0757249b1d673 +size 3674 diff --git a/src/static/images/spirits/10.png b/src/static/images/spirits/10.png new file mode 100644 index 0000000..87e7581 --- /dev/null +++ b/src/static/images/spirits/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4a2913dc8e4dcf6114a4e51bf75576dcdee59a5160287b326a208d644098199 +size 12007 diff --git a/src/static/images/spirits/2.png b/src/static/images/spirits/2.png new file mode 100644 index 0000000..e2f44e3 --- /dev/null +++ b/src/static/images/spirits/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97894ab003ee323048b4842361d2a7e5d3ac24b6d2a69c509b3020103e75513c +size 18183 diff --git a/src/static/images/spirits/3.png b/src/static/images/spirits/3.png new file mode 100644 index 0000000..6626cb2 --- /dev/null +++ b/src/static/images/spirits/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b653bcf32647078f35b6dedb5ccef073dafd38d09fa5369255157432a70d4c37 +size 5407 diff --git a/src/static/images/spirits/4.png b/src/static/images/spirits/4.png new file mode 100644 index 0000000..729f002 --- /dev/null +++ b/src/static/images/spirits/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2461a9c0d294714cc99c5f9ef23b29ea97035cac1cf89bad32c5aaca4c0ce2d +size 7471 diff --git a/src/static/images/spirits/5.png b/src/static/images/spirits/5.png new file mode 100644 index 0000000..4972f79 --- /dev/null +++ b/src/static/images/spirits/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:092c51d9ab3b1eb96ef36008f2fa95a74f2e011c244fc87b67962cdc00990580 +size 17593 diff --git a/src/static/images/spirits/6.png b/src/static/images/spirits/6.png new file mode 100644 index 0000000..7ff9e44 --- /dev/null +++ b/src/static/images/spirits/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1572bd7532fd1db0a96f6cd70316541c1ffdfc01f597289671f61adaa72f0393 +size 2297 diff --git a/src/static/images/spirits/7.png b/src/static/images/spirits/7.png new file mode 100644 index 0000000..902df87 --- /dev/null +++ b/src/static/images/spirits/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e896f6a70364902c311323721a9b1fbb6a26de65dcbefb941e4c00fd7297c70d +size 7608 diff --git a/src/static/images/spirits/8.png b/src/static/images/spirits/8.png new file mode 100644 index 0000000..0725b44 --- /dev/null +++ b/src/static/images/spirits/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb4369560645108939761ccd67b829d49cdbe6ab9c5dbc5f73eedd473e1a7b0f +size 6738 diff --git a/src/static/images/spirits/9.png b/src/static/images/spirits/9.png new file mode 100644 index 0000000..46f96eb --- /dev/null +++ b/src/static/images/spirits/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16b4b98ad67303a71bafe89cdf2c0b7eb4dd59b0079b8b3607d4e43ee9a68fed +size 26137 diff --git a/src/static/images/tampon.png b/src/static/images/tampon.png new file mode 100644 index 0000000..867d17e --- /dev/null +++ b/src/static/images/tampon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72f6003697f2f383b277d1a3839c69625d1b373cbef3d44737c540d2771b2e66 +size 4139 diff --git a/src/static/images/thumbnail_Esprit.png b/src/static/images/thumbnail_Esprit.png new file mode 100644 index 0000000..aa3b2e6 --- /dev/null +++ b/src/static/images/thumbnail_Esprit.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9231fd8822064e5087f712bcdd36b8c001f50847e55d2a2a94c307998b9e6db +size 606794 diff --git a/src/static/images/thumbnail_Explore.png b/src/static/images/thumbnail_Explore.png new file mode 100644 index 0000000..9601c03 --- /dev/null +++ b/src/static/images/thumbnail_Explore.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:678a056bd26d716627bc3cf08f032c4f5953488900d5f992a7a3c4f83ebedcae +size 1376134 diff --git a/src/static/images/thumbnail_Mythe.png b/src/static/images/thumbnail_Mythe.png new file mode 100644 index 0000000..6625ca6 --- /dev/null +++ b/src/static/images/thumbnail_Mythe.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7ef45555849db6d659fc82f7a39bd731f515a1ae84bfd9acd73c1bf1da8fc48 +size 1356335 diff --git a/src/static/images/thumbnail_Roi.jpg b/src/static/images/thumbnail_Roi.jpg new file mode 100644 index 0000000..92731e8 --- /dev/null +++ b/src/static/images/thumbnail_Roi.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58e87f516381f4ce5ec0ddea94506f7a3d1063ad0a9b692d979b0873000f2344 +size 702548 diff --git a/src/static/images/thumbnail_Roi_cropped.jpg b/src/static/images/thumbnail_Roi_cropped.jpg new file mode 100644 index 0000000..159f758 --- /dev/null +++ b/src/static/images/thumbnail_Roi_cropped.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08b34494fbdf4cff40e2e36d644a57154be28cdd6b10dfe48b81252d53913244 +size 388909 diff --git a/src/static/images/tree.png b/src/static/images/tree.png new file mode 100644 index 0000000..dac02b0 --- /dev/null +++ b/src/static/images/tree.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79c51c3bed1a24ebafe32bd183d30c36236355409de7df823ce6702329ca9c80 +size 394507 diff --git a/src/static/images/tree1.png b/src/static/images/tree1.png new file mode 100644 index 0000000..b33fe00 --- /dev/null +++ b/src/static/images/tree1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79fabf62705ebd71b3cd51941063f54a32632efacabb4dd2568c5767dca977e6 +size 86434 diff --git a/src/static/images/tree2.png b/src/static/images/tree2.png new file mode 100644 index 0000000..b313744 --- /dev/null +++ b/src/static/images/tree2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30e7ede5eb1f0ad390c73b6db46ba86b80aafa89de8f62e1b9a89be44914776c +size 159197 diff --git a/src/static/scripts/extra.js b/src/static/scripts/extra.js new file mode 100644 index 0000000..eaa1ebd --- /dev/null +++ b/src/static/scripts/extra.js @@ -0,0 +1,36 @@ +function addSpriteOnSection(section, id, url) { + const spirit = document.createElement("img"); + spirit.src = url; + spirit.id = id; + spirit.classList.add("sprite"); + section.appendChild(spirit); +} + +const buttons = document.querySelectorAll(".button, .large-button"); + +for(const button of buttons) { + button.innerHTML += ""; +} + +const gallery = document.querySelector("#gallery"); +addSpriteOnSection(gallery, "spirit-fish", "/images/spirits/9.png"); +addSpriteOnSection(gallery, "spirit-doggo", "/images/spirits/10.png"); +addSpriteOnSection(gallery, "spirit-butterfly-1", "/images/spirits/8.png"); + +const features = document.querySelector("#features"); +addSpriteOnSection(features, "spirit-snow-1", "/images/spirits/1.png"); +addSpriteOnSection(features, "spirit-snow-2", "/images/spirits/1.png"); +addSpriteOnSection(features, "spirit-bird", "/images/spirits/5.png"); +addSpriteOnSection(features, "spirit-large-fish", "/images/spirits/2.png"); +addSpriteOnSection(features, "spirit-snow-3", "/images/spirits/3.png"); +addSpriteOnSection(features, "spirit-butterfly-2", "/images/spirits/4.png"); + +const overview = document.querySelector("#overview"); +addSpriteOnSection(overview, "tree-1", "/images/tree.png"); +addSpriteOnSection(overview, "tree-2", "/images/tree.png"); + +const titles = document.querySelectorAll("div > h1:first-child"); + +for(const title of titles) { + title.innerHTML = "" + title.innerHTML; +} \ No newline at end of file diff --git a/src/static/videos/bg_header.mp4 b/src/static/videos/bg_header.mp4 new file mode 100644 index 0000000..af0fc14 --- /dev/null +++ b/src/static/videos/bg_header.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2785cc209658fc9bdbb0dac4b6d12b83fc310c449b10efa0159bfbde23057f66 +size 2739822 diff --git a/src/themes/siwa/archetypes/default.md b/src/themes/siwa/archetypes/default.md new file mode 100644 index 0000000..25b6752 --- /dev/null +++ b/src/themes/siwa/archetypes/default.md @@ -0,0 +1,5 @@ ++++ +date = '{{ .Date }}' +draft = true +title = '{{ replace .File.ContentBaseName "-" " " | title }}' ++++ diff --git a/src/themes/siwa/assets/css/components/footer.css b/src/themes/siwa/assets/css/components/footer.css new file mode 100644 index 0000000..80ec08f --- /dev/null +++ b/src/themes/siwa/assets/css/components/footer.css @@ -0,0 +1,37 @@ +footer { + display: flex; + flex-direction: column; + text-align: center; + min-height: 200px; + position: relative; + z-index:10; +} + +#footer-logo { + flex: 0 0 70px; +} + +#footer-logo>img { + max-height: 70px; + margin-top: -35px; +} + +#footer-logos { + flex: 1; + display: flex; + align-items: center; + justify-content: center; +} + +#footer-logos>a { + margin: 10px; +} + +#footer-logos>a>img { + max-width: 200px; + max-height: 70px; +} + +#footer-credits { + min-height: 50px; +} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/components/gallery.css b/src/themes/siwa/assets/css/components/gallery.css new file mode 100644 index 0000000..ee55ef8 --- /dev/null +++ b/src/themes/siwa/assets/css/components/gallery.css @@ -0,0 +1,62 @@ +.gallery-container { + text-align: center; +} + +.gallery-container>.page-container:not(:first-child) { + display: none; +} + +.gallery-container>.page-container>img { + width: 20%; + min-width: 200px; + margin: 0.5%; + aspect-ratio: 16/9; + object-fit: cover; + cursor: pointer; +} + +.gallery-container>.page-container>.empty { + width: 20%; + min-width: 200px; + margin: 0.5%; + aspect-ratio: 16/9; + display: inline-block; + background: #222; +} + +.gallery-container .pages { + display: flex; + align-items: center; + justify-content: center; +} + +.gallery-container .pages>.page { + display: flex; + align-items: center; + justify-content: center; + width: 30px; + height: 30px; + margin: 5px; + cursor: pointer; +} + +.gallery-viewer { + position: fixed; + display: flex; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); + opacity: 0; + transition: all 0.5s ease; + align-items: center; + justify-content: center; + z-index: 10000; + top: 0; + left: 0; + visibility: hidden; +} + +.gallery-viewer.opened { + opacity: 1; + visibility: visible; +} diff --git a/src/themes/siwa/assets/css/components/menu.css b/src/themes/siwa/assets/css/components/menu.css new file mode 100644 index 0000000..5d130a3 --- /dev/null +++ b/src/themes/siwa/assets/css/components/menu.css @@ -0,0 +1,33 @@ +#logo { + display: flex; + align-items: center; + justify-content: center; +} + +#logo>img { + width: 100%; + height: 100%; +} + +#menu a { + text-decoration: none; +} + +#menu>ul { + margin: 0; + padding: 0; + list-style-type: none; + display: flex; + align-items: center; +} + +#menu>ul>li { + padding: 16px; + text-align: center; + display: inline-block; +} + +#menu>ul>li>a { + display: flex; + align-items: center; +} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/components/ping-pong.css b/src/themes/siwa/assets/css/components/ping-pong.css new file mode 100644 index 0000000..c51d0ea --- /dev/null +++ b/src/themes/siwa/assets/css/components/ping-pong.css @@ -0,0 +1,39 @@ +.ping-pong { + width: 100%; + display: flex; + flex-direction: row; + align-items: center; + margin-top: 80px; + margin-bottom: 80px; +} + +.ping-pong:nth-child(2n) { + flex-flow: row-reverse; + text-align: right; +} + +.ping-pong-image-container { + position: relative; +} + +.ping-pong-image-container::after { + box-shadow: inset 0px 0px 0px 16px rgba(0, 0, 0, 0.3); + content: ''; + display: block; + height: 100%; + position: absolute; + top: 0; + width: 100%; +} + +.ping-pong-image-container>img { + aspect-ratio: 16/9; + object-fit: cover; + width: 100%; +} + +.ping-pong>div { + margin-left: 50px; + margin-right: 50px; + max-width: 50%; +} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/components/section.css b/src/themes/siwa/assets/css/components/section.css new file mode 100644 index 0000000..65db375 --- /dev/null +++ b/src/themes/siwa/assets/css/components/section.css @@ -0,0 +1,48 @@ +.ribbon { + display: flex; + align-items: center; + flex: 1; + width:100%; + margin-top: 10px; + margin-bottom: 10px; +} + +.ribbon-part { + display: flex; + align-items: center; + height: 100%; +} + +.ribbon-part>img { + width: 100%; + object-fit: fill; +} + +.section-background-image { + position: absolute; + width: 100%; + height: 100%; + object-fit: cover; + z-index: -1; +} + +.section-background-color { + position: absolute; + width: 100%; + height: 100%; + z-index: -2; +} + +.section-video-container { + position: absolute; + width: 100%; + height: 100%; + z-index: -3; +} + +.section-video-container > video { + object-fit: cover; + width: 100%; + height: 100%; + aspect-ratio: 16/9; +} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/main.css b/src/themes/siwa/assets/css/main.css new file mode 100644 index 0000000..0d0c54e --- /dev/null +++ b/src/themes/siwa/assets/css/main.css @@ -0,0 +1,113 @@ +@import "components/ping-pong.css"; +@import "components/gallery.css"; +@import "components/menu.css"; +@import "components/footer.css"; +@import "components/section.css"; + +html, +body { + margin: 0; + padding: 0; + min-width: 800px; +} + +html { + overflow-x: auto; +} + +body { + font-family: "main-font", sans-serif; + position: relative; + z-index: -1000; + overflow-x: hidden; +} + +h1 { + font-size: 45px; + font-weight: 400; +} + +.button, +.large-button { + text-decoration: none; + margin: 5px; + text-align: center; + background-color: black; + color: white; +} + +.button { + padding: 10px; +} + +.button-icon { + display: inline-block; + background-size: contain; + background-position: center center; + background-repeat: no-repeat; +} + +.large-button { + padding: 20px; + font-size: 28px; +} + +.mw-m { + min-width: 100px; +} + +.mw-l { + min-width: 200px; +} + +.fs-xs { + font-size: 10px; +} + +.fs-s { + font-size: 14px; +} + +.fs-m { + font-size: 20px; +} + +.fs-l { + font-size: 28px; +} + +.fs-xl { + font-size: 40px; +} + +.lh-m { + line-height: 50px; +} + +.ta-l { + text-align: left; +} + +.ta-c { + text-align: center; +} + +.tt-u { + text-transform: uppercase; +} + +.f-1 { + flex: 1; +} + +.m-0 { + margin: 0; +} + +.flip-h { + transform: scale(-1, 1); +} + +.flip-v { + transform: scale(1, -1); +} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/templates/button.css b/src/themes/siwa/assets/css/templates/button.css new file mode 100644 index 0000000..61edf56 --- /dev/null +++ b/src/themes/siwa/assets/css/templates/button.css @@ -0,0 +1,35 @@ +{{- $config := site.Data.configuration }} + +{{- $button := $config.global.button }} +{{- with $button }} +{{- if ne $button.padding nil -}} +.button { + padding: {{ $button.padding }}px; +} +{{- end }} +{{- with $button.default }} +{{- with .color }} +.button { + background-color: {{ . | safeCSS }}; +} +{{- end }} +{{- end }} +{{- end }} + +{{- $largeButton := cond $config.global.button.large $config.global.button.large $button }} +{{- with $largeButton }} +{{- $largeButtonPadding := cond $largeButton.padding $largeButton.padding $button.padding }} +{{- $largeButtonDefault := cond $largeButton.default $largeButton.default $button.default }} +{{- if ne $largeButtonPadding nil -}} +.large-button { + padding: {{ $largeButtonPadding }}px; +} +{{- end }} +{{- with $largeButtonDefault }} +{{- with .color }} +.large-button { + background-color: {{ . | safeCSS }}; +} +{{- end }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/templates/global.css b/src/themes/siwa/assets/css/templates/global.css new file mode 100644 index 0000000..148bb07 --- /dev/null +++ b/src/themes/siwa/assets/css/templates/global.css @@ -0,0 +1,36 @@ +{{- $config := site.Data.configuration }} + +{{- $backgroundColor := $config.global.backgroundColor | default "black" }} +{{- $fontColor := $config.global.font.color | default "white" -}} +html { + background-color: {{ $backgroundColor | safeCSS }}; + color: {{ $fontColor | safeCSS }}; +} + +{{- with $config.global.font.url -}} +@font-face { + font-family: "main-font"; + src: url("{{ . }}"); + font-display: auto; + font-style: normal; + font-stretch: normal; +} +{{- end }} + +{{- $menuHeight := $config.menu.height | default 80 }} +{{- $menuAlignItems := cond $config.menu.centered "center" "stretch" }} +header { + position: fixed; + width: 100%; + display: flex; + height: {{ $menuHeight }}px; + align-items: {{ $menuAlignItems | safeCSS }}; + justify-content: space-between; + z-index: 1000; + pointer-events: none; +} + +{{- $footerHeight := $config.footer.height | default 200 -}} +footer { + min-height: {{ $footerHeight }}px !important; +} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/templates/menu.css b/src/themes/siwa/assets/css/templates/menu.css new file mode 100644 index 0000000..4bc7cee --- /dev/null +++ b/src/themes/siwa/assets/css/templates/menu.css @@ -0,0 +1,35 @@ +{{- $config := site.Data.configuration }} + +{{- $logoWidth := $config.info.logo.width | default 100 }} +{{- $logoHeight := $config.info.logo.height | default 100 }} +{{- $logoTop := $config.info.logo.top | default 10 }} +{{- $logoLeft := $config.info.logo.left | default 10 -}} +{{- $fontColor := $config.global.font.color | default "white" }} + +#logo { + height: {{ $logoWidth }}px; + min-width: {{ $logoHeight }}px; + margin-top: {{ $logoTop }}px; + margin-left: {{ $logoLeft }}px; +} + +{{- $menuBackgroundImage := cond (ne $config.menu.backgroundImage nil) (printf "url(%s)" $config.menu.backgroundImage) "none" }} +{{- $menuBackgroundColor := $config.menu.backgroundColor | default "transparent" -}} +{{- $menuMinWidth := $config.menu.width | default 1 -}} +#menu { + flex: 0 0 auto; + display: flex; + flex-direction: row; + background-image: {{ $menuBackgroundImage | safeCSS }}; + background-color: {{ $menuBackgroundColor | safeCSS }}; + background-size: 100% auto; + background-repeat: no-repeat; + align-items: start; + justify-content: end; + min-width: {{ $menuMinWidth }}px; + pointer-events: auto; +} + +#menu a { + color: {{ $fontColor | safeCSS }}; +} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/templates/section/base.css b/src/themes/siwa/assets/css/templates/section/base.css new file mode 100644 index 0000000..d032a38 --- /dev/null +++ b/src/themes/siwa/assets/css/templates/section/base.css @@ -0,0 +1,41 @@ +{{- $id := .id }} +{{- $config := index site.Data.sections $id }} + +{{- $height := cond (ne $config.height nil) $config.height 100 }} +{{- $shadow := $config.shadow | default false }} +{{- $shadowOpacity := $config.shadowOpacity | default 0.4 }} +{{- $centeredContainerWidth := sub 100 (cond (ne $config.padding nil) $config.padding 30) }} +{{- $fontColor := $config.fontColor | default "inherit" }} +{{- $containerLocation := $config.container.location | default "center" }} +{{- $containerMarginLeft := cond (ne $config.container.margins.left nil) $config.container.margins.left 0 }} +{{- $containerMarginRight := cond (ne $config.container.margins.right nil) $config.container.margins.right 0 }} +{{- $containerMarginTop := cond (ne $config.container.margins.top nil) $config.container.margins.top 50 }} +{{- $containerMarginBottom := cond (ne $config.container.margins.bottom nil) $config.container.margins.bottom 50 }} +{{- $containerMarginUnit := cond $config.container.margins.usePercentage "%" "px" }} +{{- $zIndex := cond (ne $config.zIndex nil) $config.zIndex "auto" -}} + +#{{ $id }} { + color: {{ $fontColor }}; + width: 100%; + min-height: {{ $height }}vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: {{ $containerLocation }}; + position: relative; + background-size: cover; + box-shadow: {{ cond $shadow ((printf "0px 0px 64px 24px rgba(0, 0, 0, %f)" $shadowOpacity) | safeCSS) "none" }}; + z-index: {{ $zIndex | safeCSS }}; +} + +#{{ $id }}-centered-container { + width: {{ $centeredContainerWidth }}%; + display: flex; + flex-direction: column; + align-items: center; + z-index: 10; + margin-left: {{ $containerMarginLeft }}{{ $containerMarginUnit }}; + margin-right: {{ $containerMarginRight }}{{ $containerMarginUnit }}; + margin-top: {{ $containerMarginTop }}{{ $containerMarginUnit }}; + margin-bottom: {{ $containerMarginBottom }}{{ $containerMarginUnit }}; +} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/templates/section/gallery.css b/src/themes/siwa/assets/css/templates/section/gallery.css new file mode 100644 index 0000000..6cb1f00 --- /dev/null +++ b/src/themes/siwa/assets/css/templates/section/gallery.css @@ -0,0 +1,2 @@ +{{- $id := .id }} +{{- $config := index site.Data.sections $id -}} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/templates/section/logo-with-text.css b/src/themes/siwa/assets/css/templates/section/logo-with-text.css new file mode 100644 index 0000000..4779318 --- /dev/null +++ b/src/themes/siwa/assets/css/templates/section/logo-with-text.css @@ -0,0 +1,7 @@ +{{- $id := .id }} +{{- $config := index site.Data.sections $id -}} + +#{{ $id }}-centered-container > img { + width: 60%; + min-width: 400px; +} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/templates/section/logo.css b/src/themes/siwa/assets/css/templates/section/logo.css new file mode 100644 index 0000000..d9e1389 --- /dev/null +++ b/src/themes/siwa/assets/css/templates/section/logo.css @@ -0,0 +1,14 @@ +{{- $id := .id }} +{{- $config := index site.Data.sections $id }} + +{{- $logoWidth := $config.logo.width | default 40 -}} + +#{{ $id }}-centered-container > img { + width: {{ $logoWidth }}%; + min-width: 400px; +} + +#{{ $id }}-buttons { + display: flex; + flex-direction: row; +} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/templates/section/ping-pong.css b/src/themes/siwa/assets/css/templates/section/ping-pong.css new file mode 100644 index 0000000..6cb1f00 --- /dev/null +++ b/src/themes/siwa/assets/css/templates/section/ping-pong.css @@ -0,0 +1,2 @@ +{{- $id := .id }} +{{- $config := index site.Data.sections $id -}} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/templates/section/simple.css b/src/themes/siwa/assets/css/templates/section/simple.css new file mode 100644 index 0000000..bce9da8 --- /dev/null +++ b/src/themes/siwa/assets/css/templates/section/simple.css @@ -0,0 +1,13 @@ +{{- $id := .id }} +{{- $config := index site.Data.sections $id -}} + +#{{ $id }}-centered-container { + align-items: start !important; + width: 40% !important; + margin: 5%; +} + +#{{ $id }} { + justify-content: end !important; + align-items: start !important; +} \ No newline at end of file diff --git a/src/themes/siwa/assets/css/templates/section/transition.css b/src/themes/siwa/assets/css/templates/section/transition.css new file mode 100644 index 0000000..6cb1f00 --- /dev/null +++ b/src/themes/siwa/assets/css/templates/section/transition.css @@ -0,0 +1,2 @@ +{{- $id := .id }} +{{- $config := index site.Data.sections $id -}} \ No newline at end of file diff --git a/src/themes/siwa/assets/js/main.js b/src/themes/siwa/assets/js/main.js new file mode 100644 index 0000000..eaf849e --- /dev/null +++ b/src/themes/siwa/assets/js/main.js @@ -0,0 +1,46 @@ +const imgs = document.querySelectorAll("section > img.parallax, section > div.parallax > video"); +const screenRatio = 1.77; + +function updateParallax() { + for(const img of imgs) { + let bbox = img.getBoundingClientRect(); + img.style.objectPosition = `center ${(-bbox.top) * 0.3}px`; + img.style.width = `${Math.max(100, ((outerHeight / outerWidth) / screenRatio) * 100)}%`; + } +} + +onscroll = () => updateParallax(); +onresize = () => updateParallax(); + +const galleries = document.querySelectorAll(".gallery-container"); +let galleryViewer = null; + +if(galleries.length > 0) { + galleryViewer = document.createElement("div"); + galleryViewer.classList.add("gallery-viewer"); + document.body.appendChild(galleryViewer); + galleryViewer.onclick = () => { + galleryViewer.classList.remove("opened"); + }; +} + +for(const gallery of galleries) { + const pages = new Array(...gallery.querySelectorAll(".page-container")).toSorted((a, b) => parseInt(a.dataset.page) - parseInt(b.dataset.page)); + const buttons = new Array(...gallery.querySelectorAll(".page")).toSorted((a, b) => parseInt(a.dataset.page) - parseInt(b.dataset.page)); + const images = gallery.querySelectorAll("img"); + + for(const button of buttons) { + button.onclick = () => { + for(const page of pages) { + page.style.display = page.dataset.page === button.dataset.page ? "block" : "none"; + } + }; + } + + for(const image of images) { + image.onclick = () => { + galleryViewer.classList.add("opened"); + galleryViewer.innerHTML = ``; + }; + } +} \ No newline at end of file diff --git a/src/themes/siwa/data/configuration.toml b/src/themes/siwa/data/configuration.toml new file mode 100644 index 0000000..05c4f90 --- /dev/null +++ b/src/themes/siwa/data/configuration.toml @@ -0,0 +1,40 @@ +backgroundColor = "#19ffcd" +companyName = "My Company Name" +copyrightYear = "2026" +developedBy = "My Company Name" +developedByUrl = "" +designedBy = "My Company Name" +designedByUrl = "" +logo = "" +font = "" + +# Footer + +[footer] +logo = "" + +# [[footer.logos]] +# image = "" +# url = "" +# width = 200 + +# Menu + +[menu] +height = 160 +backgroundImage = "" +backgroundColor = "" +centered = false +groups = [] + +# [[menu.entries]] +# text = "Home" +# icon = "" +# group = "navigation" +# link = "#overview" + +# Sections + +[[sections]] +id = "overview" +type = "logo" \ No newline at end of file diff --git a/src/themes/siwa/layouts/_partials/css.html b/src/themes/siwa/layouts/_partials/css.html new file mode 100644 index 0000000..926f9ab --- /dev/null +++ b/src/themes/siwa/layouts/_partials/css.html @@ -0,0 +1,42 @@ +{{- $config := site.Data.configuration }} +{{- with resources.Get "css/main.css" | resources.ExecuteAsTemplate "css/main.css" . }} +{{- $opts := dict + "minify" (cond hugo.IsDevelopment false true) + "sourceMap" (cond hugo.IsDevelopment "linked" "none") +}} +{{- with . | css.Build $opts }} +{{- if hugo.IsDevelopment -}} + +{{- else }} +{{- with . | fingerprint -}} + +{{- end }} +{{- end }} +{{- end }} +{{- end }} +{{ $dataHash := md5 (printf "%v" $config) }} +{{- with resources.Get "css/templates/global.css" | resources.ExecuteAsTemplate (printf "css/templates/global-%s.css" $dataHash) . | resources.Minify | resources.Fingerprint -}} + +{{- end }} +{{- with resources.Get "css/templates/button.css" | resources.ExecuteAsTemplate (printf "css/templates/button-%s.css" $dataHash) . | resources.Minify | resources.Fingerprint -}} + +{{- end }} +{{- with resources.Get "css/templates/menu.css" | resources.ExecuteAsTemplate (printf "css/templates/menu-%s.css" $dataHash) . | resources.Minify | resources.Fingerprint -}} + +{{- end }} +{{- range $config.sections }} +{{- $section := . }} +{{- $sectionConfig := index site.Data.sections $section.id }} +{{- $sectionDataHash := md5 (printf "%v" $sectionConfig) }} +{{- with resources.Get "css/templates/section/base.css" | resources.ExecuteAsTemplate (printf "css/templates/%s/base-%s.css" $section.id $sectionDataHash) (dict "id" $section.id) | resources.Minify | resources.Fingerprint -}} + +{{- end }} +{{- with resources.Get (printf "css/templates/section/%s.css" $section.type) | resources.ExecuteAsTemplate (printf "css/templates/%s/%s-%s.css" $section.id $section.type $sectionDataHash) (dict "id" $section.id) | resources.Minify | resources.Fingerprint -}} + +{{- end }} +{{- end }} +{{- with $config.global.styles }} +{{- range $config.global.styles -}} + +{{- end }} +{{- end }} \ No newline at end of file diff --git a/src/themes/siwa/layouts/_partials/js.html b/src/themes/siwa/layouts/_partials/js.html new file mode 100644 index 0000000..f6c40b6 --- /dev/null +++ b/src/themes/siwa/layouts/_partials/js.html @@ -0,0 +1,21 @@ +{{- $config := site.Data.configuration }} +{{- with resources.Get "js/main.js" }} +{{- $opts := dict + "minify" (cond hugo.IsDevelopment false true) + "sourceMap" (cond hugo.IsDevelopment "linked" "none") +}} +{{- with . | js.Build $opts }} +{{- if hugo.IsDevelopment -}} + +{{- else }} +{{- with . | fingerprint -}} + +{{- end }} +{{- end }} +{{- end }} +{{- end }} +{{- with $config.global.scripts }} +{{- range $config.global.scripts -}} + +{{- end }} +{{- end }} \ No newline at end of file diff --git a/src/themes/siwa/layouts/_partials/ribbon.html b/src/themes/siwa/layouts/_partials/ribbon.html new file mode 100644 index 0000000..a510619 --- /dev/null +++ b/src/themes/siwa/layouts/_partials/ribbon.html @@ -0,0 +1,29 @@ +{{ $ribbon := .ribbon -}} + +{{ if $ribbon.image -}} +
+
+ {{ with $ribbon.image -}} + + {{- end }} +
+
+{{ else -}} +
+
+ {{ with $ribbon.left -}} + + {{- end }} +
+ {{ range $ribbon.middle -}} +
+ +
+ {{- end }} +
+ {{ with $ribbon.right -}} + + {{- end }} +
+
+{{- end }} \ No newline at end of file diff --git a/src/themes/siwa/layouts/_partials/sections/base.html b/src/themes/siwa/layouts/_partials/sections/base.html new file mode 100644 index 0000000..5643c54 --- /dev/null +++ b/src/themes/siwa/layouts/_partials/sections/base.html @@ -0,0 +1,35 @@ +{{- $id := .id }} +{{- $type := print "sections/" .type }} +{{- $config := index site.Data.sections $id }} +{{- $parallax := cond $config.parallax " parallax" "" -}} + +
+ {{- with $config.background.image }} + {{- $backgroundScale := $config.background.scale | default 1 -}} + + {{- end }} + + {{- with $config.background.colorFrom -}} +
+
+ {{- end }} + + {{- with $config.video -}} +
+ +
+ {{- end -}} + +
+ {{- with $config.topRibbon }} + {{- partial "ribbon" (dict "ribbon" $config.topRibbon) }} + {{- end -}} + + {{ partial $type (dict "id" $id "config" $config) }} + + {{- with $config.bottomRibbon }} + {{- partial "ribbon" (dict "ribbon" $config.bottomRibbon) }} + {{- end -}} +
+
\ No newline at end of file diff --git a/src/themes/siwa/layouts/_partials/sections/gallery.html b/src/themes/siwa/layouts/_partials/sections/gallery.html new file mode 100644 index 0000000..1cfe0bd --- /dev/null +++ b/src/themes/siwa/layouts/_partials/sections/gallery.html @@ -0,0 +1,38 @@ +{{- $id := .id }} +{{- $config := .config }} + +{{- with site.GetPage $config.contentFolder -}} +

{{ $config.title }}

+ +{{- with $config.innerTopRibbon -}} +{{ partial "ribbon" (dict "ribbon" $config.innerTopRibbon) }} +{{- end -}} + + + {{- end -}} +
+ {{- end -}} + + {{- end }} + {{- $remaining := mod (len $images) 8 }} + {{- if gt $remaining 0 }} + {{- range $i := seq (add $remaining 1) 8 -}} +
+ {{- end }} + {{- end -}} +
+
+ {{- $pageCount := div (len $images) 8 }} + {{- if gt $pageCount 1 }} + {{- range $i := seq 0 (sub $pageCount 1) -}} +
{{ add $i 1 }}
+ {{- end -}} + {{- end -}} +
+ +{{- end }} \ No newline at end of file diff --git a/src/themes/siwa/layouts/_partials/sections/logo-with-text.html b/src/themes/siwa/layouts/_partials/sections/logo-with-text.html new file mode 100644 index 0000000..4d97064 --- /dev/null +++ b/src/themes/siwa/layouts/_partials/sections/logo-with-text.html @@ -0,0 +1,18 @@ +{{- $id := .id }} +{{- $config := .config -}} + +{{- with $config.logo.textBefore -}} +

{{ . }}

+{{- end }} + +{{- with $config.logo.image -}} + +{{- end }} + +{{- with $config.logo.textAfter -}} +

{{ . }}

+{{- end }} + +{{- with site.GetPage $config.content -}} +
{{ .Content }}
+{{- end }} \ No newline at end of file diff --git a/src/themes/siwa/layouts/_partials/sections/logo.html b/src/themes/siwa/layouts/_partials/sections/logo.html new file mode 100644 index 0000000..b64f2b3 --- /dev/null +++ b/src/themes/siwa/layouts/_partials/sections/logo.html @@ -0,0 +1,14 @@ +{{- $id := .id }} +{{- $config := .config }} + +{{- with $config.logo.image -}} + +{{- end -}} + +
+ {{- range $config.buttons }} + {{- $color := .color | default "revert-layer" }} + {{- $fontColor := .fontColor | default "revert-layer" -}} + {{ .text }} + {{- end -}} +
\ No newline at end of file diff --git a/src/themes/siwa/layouts/_partials/sections/ping-pong.html b/src/themes/siwa/layouts/_partials/sections/ping-pong.html new file mode 100644 index 0000000..7af9d27 --- /dev/null +++ b/src/themes/siwa/layouts/_partials/sections/ping-pong.html @@ -0,0 +1,22 @@ +{{- $id := .id }} +{{- $config := .config }} + +{{- with site.GetPage $config.contentFolder }} +{{- range sort .Pages "Params.order" "asc" -}} +
+ {{- with .Params.image -}} +
+ +
+ {{- end -}} +
+ {{- with .Params.titles }} + {{- range . -}} +

{{ . }}

+ {{- end }} + {{- end -}} +
{{ .Content }}
+
+
+{{- end }} +{{- end }} \ No newline at end of file diff --git a/src/themes/siwa/layouts/_partials/sections/simple.html b/src/themes/siwa/layouts/_partials/sections/simple.html new file mode 100644 index 0000000..dd165d4 --- /dev/null +++ b/src/themes/siwa/layouts/_partials/sections/simple.html @@ -0,0 +1,12 @@ +{{- $id := .id }} +{{- $config := .config }} + +{{- with site.GetPage $config.content }} +{{- range .Params.titles -}} +

{{ . }}

+{{- end }} +{{- end }} + +{{- with site.GetPage $config.content -}} +
{{ .Content }}
+{{- end }} \ No newline at end of file diff --git a/src/themes/siwa/layouts/_partials/sections/transition.html b/src/themes/siwa/layouts/_partials/sections/transition.html new file mode 100644 index 0000000..e69de29 diff --git a/src/themes/siwa/layouts/baseof.html b/src/themes/siwa/layouts/baseof.html new file mode 100644 index 0000000..6314928 --- /dev/null +++ b/src/themes/siwa/layouts/baseof.html @@ -0,0 +1,17 @@ + + + + + + + {{ if .IsHome }}{{ site.Title }}{{ else }}{{ printf "%s | %s" .Title site.Title }}{{ end }} + {{ partial "css.html" . }} + {{ partial "js.html" . }} + + + + {{ block "main" . -}} + {{- end }} + + + \ No newline at end of file diff --git a/src/themes/siwa/layouts/index.html b/src/themes/siwa/layouts/index.html new file mode 100644 index 0000000..0881309 --- /dev/null +++ b/src/themes/siwa/layouts/index.html @@ -0,0 +1,49 @@ +{{- define "main" -}} +{{- $config := site.Data.configuration -}} +
+ + +
+{{- range $config.sections -}} +{{- partial "sections/base.html" (dict "id" .id "type" .type) }} +{{- end -}} + +{{- end }} \ No newline at end of file diff --git a/src/themes/siwa/static/favicon.ico b/src/themes/siwa/static/favicon.ico new file mode 100644 index 0000000..67f8b77 Binary files /dev/null and b/src/themes/siwa/static/favicon.ico differ diff --git a/src/themes/siwa/theme.toml b/src/themes/siwa/theme.toml new file mode 100644 index 0000000..db252ee --- /dev/null +++ b/src/themes/siwa/theme.toml @@ -0,0 +1,5 @@ +name = "SIWA" +license = "MIT" +licenselink = "https://opensource.org/licenses/MIT" +homepage = "https://example.com" +description = "A clean, multilingual Hugo theme." \ No newline at end of file