From 151658a569ff50ffce6b773aa23b7a7b6a642f9f Mon Sep 17 00:00:00 2001 From: Gaelle Date: Wed, 26 Aug 2026 18:04:33 +0200 Subject: [PATCH 1/8] start new design documentation home --- package-lock.json | 249 +++++++-- package.json | 3 + src/.vitepress/components/Home.vue | 505 ++---------------- src/.vitepress/components/SearchBox.vue | 324 ----------- src/.vitepress/config.js | 5 +- src/.vitepress/snippets/viewer-cdn.js | 14 + src/.vitepress/theme/HomeSearch.vue | 26 + src/.vitepress/theme/buttons.css | 39 ++ .../theme/components/CodeTerminal.vue | 282 ++++++++++ src/.vitepress/theme/custom.css | 33 +- src/.vitepress/theme/tokens.css | 132 +++++ .../bimdata-documentation-logo_dark.svg | 26 + .../bimdata-documentation-logo_light.svg | 26 + 13 files changed, 804 insertions(+), 860 deletions(-) delete mode 100644 src/.vitepress/components/SearchBox.vue create mode 100644 src/.vitepress/snippets/viewer-cdn.js create mode 100644 src/.vitepress/theme/HomeSearch.vue create mode 100644 src/.vitepress/theme/buttons.css create mode 100644 src/.vitepress/theme/components/CodeTerminal.vue create mode 100644 src/.vitepress/theme/tokens.css create mode 100644 src/public/images/bimdata-documentation-logo_dark.svg create mode 100644 src/public/images/bimdata-documentation-logo_light.svg diff --git a/package-lock.json b/package-lock.json index 8dd435c..e26a0b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "documentation", "version": "2.0.0", "license": "MIT", + "dependencies": { + "shiki": "^4.4.3" + }, "devDependencies": { "@bimdata/design-system": "2.4.4", "sass-embedded": "^1.103.1", @@ -1603,23 +1606,80 @@ } }, "node_modules/@shikijs/langs": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-2.5.0.tgz", - "integrity": "sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==", - "dev": true, + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.4.3.tgz", + "integrity": "sha512-ePic0yfAJGOF83D5wBHK/00EjK65oahBYxFk5epgq33WRv7X9UuxLEV8PtR0szC0z8dl7INIpIodB99JRFlR+A==", "license": "MIT", "dependencies": { - "@shikijs/types": "2.5.0" + "@shikijs/types": "4.4.3" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/langs/node_modules/@shikijs/types": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.4.3.tgz", + "integrity": "sha512-UEJxmRR++MAGR6hugn0vgVS2W/6lWAts84FFSrnlH9sP0LNol7E5+NQ792pH8liWUhyMyjhTgSUH3k7iD7tc5g==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/primitive": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.4.3.tgz", + "integrity": "sha512-m0wBeLDQDeIxRdUmrCPdQqfuUamDwRL5isCfYbguKD6NiaKpVbsv+3J81DyIKgNW5h4WAIIr8T4EkgQrBBxvaQ==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.4.3", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/primitive/node_modules/@shikijs/types": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.4.3.tgz", + "integrity": "sha512-UEJxmRR++MAGR6hugn0vgVS2W/6lWAts84FFSrnlH9sP0LNol7E5+NQ792pH8liWUhyMyjhTgSUH3k7iD7tc5g==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, + "engines": { + "node": ">=20" } }, "node_modules/@shikijs/themes": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-2.5.0.tgz", - "integrity": "sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==", - "dev": true, + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.4.3.tgz", + "integrity": "sha512-w8UHjeUnIR965KMWJHUPXOc2mNJUnK3vpVLYLvw5IYU2mnTTJ89E24OrJDBNiJDQ0qzb0tc4l7mrIXx5cFeIyw==", "license": "MIT", "dependencies": { - "@shikijs/types": "2.5.0" + "@shikijs/types": "4.4.3" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/themes/node_modules/@shikijs/types": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.4.3.tgz", + "integrity": "sha512-UEJxmRR++MAGR6hugn0vgVS2W/6lWAts84FFSrnlH9sP0LNol7E5+NQ792pH8liWUhyMyjhTgSUH3k7iD7tc5g==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, + "engines": { + "node": ">=20" } }, "node_modules/@shikijs/transformers": { @@ -1648,7 +1708,6 @@ "version": "10.0.2", "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", - "dev": true, "license": "MIT" }, "node_modules/@swagger-api/apidom-ast": { @@ -2435,7 +2494,6 @@ "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz", "integrity": "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==", - "dev": true, "license": "MIT", "dependencies": { "@types/unist": "*" @@ -2463,7 +2521,6 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "dev": true, "license": "MIT", "dependencies": { "@types/unist": "*" @@ -2512,7 +2569,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true, "license": "MIT" }, "node_modules/@types/use-sync-external-store": { @@ -2533,7 +2589,6 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.3.tgz", "integrity": "sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==", - "dev": true, "license": "ISC" }, "node_modules/@vitejs/plugin-vue": { @@ -3081,7 +3136,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "dev": true, "license": "MIT", "funding": { "type": "github", @@ -3103,7 +3157,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "dev": true, "license": "MIT", "funding": { "type": "github", @@ -3114,7 +3167,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "dev": true, "license": "MIT", "funding": { "type": "github", @@ -3219,7 +3271,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "dev": true, "license": "MIT", "funding": { "type": "github", @@ -3362,7 +3413,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -3383,7 +3433,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "dev": true, "license": "MIT", "dependencies": { "dequal": "^2.0.0" @@ -3857,7 +3906,6 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", - "dev": true, "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", @@ -3881,7 +3929,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "dev": true, "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" @@ -3937,7 +3984,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", - "dev": true, "license": "MIT", "funding": { "type": "github", @@ -4393,7 +4439,6 @@ "version": "13.2.1", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", - "dev": true, "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", @@ -4672,7 +4717,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "dev": true, "funding": [ { "type": "GitHub Sponsors", @@ -4799,7 +4843,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "dev": true, "funding": [ { "type": "GitHub Sponsors", @@ -4873,7 +4916,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "dev": true, "funding": [ { "type": "GitHub Sponsors", @@ -4918,7 +4960,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "dev": true, "funding": [ { "type": "GitHub Sponsors", @@ -4935,7 +4976,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", - "dev": true, "funding": [ { "type": "GitHub Sponsors", @@ -5101,6 +5141,12 @@ "node": ">=0.10.0" } }, + "node_modules/oniguruma-parser": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz", + "integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==", + "license": "MIT" + }, "node_modules/oniguruma-to-es": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz", @@ -5298,7 +5344,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.2.0.tgz", "integrity": "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==", - "dev": true, "license": "MIT", "funding": { "type": "github", @@ -5534,7 +5579,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", - "dev": true, "license": "MIT", "dependencies": { "regex-utilities": "^2.3.0" @@ -5544,7 +5588,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", - "dev": true, "license": "MIT", "dependencies": { "regex-utilities": "^2.3.0" @@ -5554,7 +5597,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", - "dev": true, "license": "MIT" }, "node_modules/remark": { @@ -6242,20 +6284,89 @@ } }, "node_modules/shiki": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz", - "integrity": "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==", - "dev": true, + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.4.3.tgz", + "integrity": "sha512-Mb/GvXPHBAXdgGIcnfU5L3ldpn1XcxrGkPHwqgRx17/I2XRfqlFKk2vGkHWINn1kdXvzJZeuO3is6I9KLPFm0g==", "license": "MIT", "dependencies": { - "@shikijs/core": "2.5.0", - "@shikijs/engine-javascript": "2.5.0", - "@shikijs/engine-oniguruma": "2.5.0", - "@shikijs/langs": "2.5.0", - "@shikijs/themes": "2.5.0", - "@shikijs/types": "2.5.0", + "@shikijs/core": "4.4.3", + "@shikijs/engine-javascript": "4.4.3", + "@shikijs/engine-oniguruma": "4.4.3", + "@shikijs/langs": "4.4.3", + "@shikijs/themes": "4.4.3", + "@shikijs/types": "4.4.3", "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" + "@types/hast": "^3.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/shiki/node_modules/@shikijs/core": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.4.3.tgz", + "integrity": "sha512-QCR4q2ZO/ILJEuwiBMel4wdcTDb1JGwfjKTxPDF6x8ixOaluPrVqIn06C99AcRPhmYlBR56d/Fb+GN58GzExpg==", + "license": "MIT", + "dependencies": { + "@shikijs/primitive": "4.4.3", + "@shikijs/types": "4.4.3", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5", + "hast-util-to-html": "^9.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/shiki/node_modules/@shikijs/engine-javascript": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.4.3.tgz", + "integrity": "sha512-FbOjFJp9VLdo1Wevs10BBtVxiTWwNLqZh5Gkhjgda/ioL15YOgeSl9n+6XMa3qRlPQzfhFNe641SrynFHYG0nQ==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.4.3", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/shiki/node_modules/@shikijs/engine-oniguruma": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.4.3.tgz", + "integrity": "sha512-EcOQkxdxGQrc1Row/cC2c96/v1dbZqGnEVu1qTuT/MJmp6+cXCvQussowVmCv5Tqr3KuY3c7IbM6HTW3LJ1k9w==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.4.3", + "@shikijs/vscode-textmate": "^10.0.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/shiki/node_modules/@shikijs/types": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.4.3.tgz", + "integrity": "sha512-UEJxmRR++MAGR6hugn0vgVS2W/6lWAts84FFSrnlH9sP0LNol7E5+NQ792pH8liWUhyMyjhTgSUH3k7iD7tc5g==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/shiki/node_modules/oniguruma-to-es": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz", + "integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==", + "license": "MIT", + "dependencies": { + "oniguruma-parser": "^0.12.2", + "regex": "^6.1.0", + "regex-recursion": "^6.0.2" } }, "node_modules/short-unique-id": { @@ -6283,7 +6394,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "dev": true, "license": "MIT", "funding": { "type": "github", @@ -6326,7 +6436,6 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "dev": true, "license": "MIT", "dependencies": { "character-entities-html4": "^2.0.0", @@ -6668,7 +6777,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "dev": true, "license": "MIT", "funding": { "type": "github", @@ -6776,7 +6884,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", - "dev": true, "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" @@ -6790,7 +6897,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "dev": true, "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" @@ -6820,7 +6926,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" @@ -6834,7 +6939,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", - "dev": true, "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", @@ -6850,7 +6954,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", - "dev": true, "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", @@ -6900,7 +7003,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", @@ -6915,7 +7017,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", - "dev": true, "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", @@ -7057,6 +7158,43 @@ "url": "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/sponsors/okineadev" } }, + "node_modules/vitepress/node_modules/@shikijs/langs": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-2.5.0.tgz", + "integrity": "sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0" + } + }, + "node_modules/vitepress/node_modules/@shikijs/themes": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-2.5.0.tgz", + "integrity": "sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0" + } + }, + "node_modules/vitepress/node_modules/shiki": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz", + "integrity": "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "2.5.0", + "@shikijs/engine-javascript": "2.5.0", + "@shikijs/engine-oniguruma": "2.5.0", + "@shikijs/langs": "2.5.0", + "@shikijs/themes": "2.5.0", + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, "node_modules/vue": { "version": "3.5.41", "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.41.tgz", @@ -7194,7 +7332,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "dev": true, "license": "MIT", "funding": { "type": "github", diff --git a/package.json b/package.json index 29a1a06..71ae6b0 100644 --- a/package.json +++ b/package.json @@ -21,5 +21,8 @@ "swagger-ui-dist": "^5.32.14", "vitepress": "^1.6.4", "vitepress-plugin-llms": "^1.13.5" + }, + "dependencies": { + "shiki": "^4.4.3" } } diff --git a/src/.vitepress/components/Home.vue b/src/.vitepress/components/Home.vue index 48d994a..6de097c 100644 --- a/src/.vitepress/components/Home.vue +++ b/src/.vitepress/components/Home.vue @@ -1,484 +1,87 @@ - diff --git a/src/.vitepress/components/SearchBox.vue b/src/.vitepress/components/SearchBox.vue deleted file mode 100644 index b21b592..0000000 --- a/src/.vitepress/components/SearchBox.vue +++ /dev/null @@ -1,324 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/.vitepress/config.js b/src/.vitepress/config.js index 771191e..e7be0f9 100644 --- a/src/.vitepress/config.js +++ b/src/.vitepress/config.js @@ -8,7 +8,7 @@ export default defineConfig({ title: "Documentation", description: "BIMData Official Documentation", ignoreDeadLinks: "localhostLinks", - appearance: false, + appearance: true, markdown: { theme: 'one-dark-pro' }, @@ -25,7 +25,8 @@ export default defineConfig({ themeConfig: { siteTitle: false, logo: { - light: "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/images/logo.svg", + light: "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/images/bimdata-documentation-logo_light.svg", + dark: "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/images/bimdata-documentation-logo_dark.svg", alt: "BIMData", }, socialLinks: [ diff --git a/src/.vitepress/snippets/viewer-cdn.js b/src/.vitepress/snippets/viewer-cdn.js new file mode 100644 index 0000000..b02b724 --- /dev/null +++ b/src/.vitepress/snippets/viewer-cdn.js @@ -0,0 +1,14 @@ +export default ` + + + +
+ + + + \ No newline at end of file diff --git a/src/.vitepress/theme/buttons.css b/src/.vitepress/theme/buttons.css new file mode 100644 index 0000000..6e0a52d --- /dev/null +++ b/src/.vitepress/theme/buttons.css @@ -0,0 +1,39 @@ +html, body { + .button { + display: inline-flex; + align-items: center; + } + .button-filled { + height: 52px; + border-radius: 50px; + } + .button-xs { + height: 32px; + } + .button-sm { + height: 40px; + } + .button-md { + height: 52px; + } + .button-lg { + height: 60px; + } + .button-filled-primary { + background-color: var(--bimdata-blue); + color: var(--color-white); + border: none; + &:hover { + background-color: #2f87ce; + } + } + .button-filled-secondary { + background-color: rgba(35,120,196, .1); + color: var(--bimdata-blue); + border: solid 1px rgba(35,120,196, .15); + &:hover { + background-color: var(--bimdata-blue); + color: var(--color-white); + } + } +} \ No newline at end of file diff --git a/src/.vitepress/theme/components/CodeTerminal.vue b/src/.vitepress/theme/components/CodeTerminal.vue new file mode 100644 index 0000000..f0f3333 --- /dev/null +++ b/src/.vitepress/theme/components/CodeTerminal.vue @@ -0,0 +1,282 @@ + + + + + \ No newline at end of file diff --git a/src/.vitepress/theme/custom.css b/src/.vitepress/theme/custom.css index 1cd347b..67be937 100644 --- a/src/.vitepress/theme/custom.css +++ b/src/.vitepress/theme/custom.css @@ -1,31 +1,10 @@ @import "../../../node_modules/@bimdata/design-system/src/assets/css/design-system.css"; +@import "./tokens.css"; +@import "./buttons.css"; -:root { - --color-bg-subtle: #f0f5ff; - --color-bg-accent: #dce7ff; - --color-bg-primary: #205dbd; - --vp-c-brand-1: #205dbd; - --vp-c-brand-2: #205dbd; - --vp-c-brand-3: #205dbd; - - /* Fond du bloc de code */ - --vp-code-bg: rgba(27,31,35,.05); - --vp-code-block-bg: #282c34; - - /* Couleur du texte par défaut dans le code */ - --vp-code-color: #4d5a7a; - /* --vp-code-color: #e0e0e0; */ - - /* Onglets du code-group */ - --vp-code-tab-bg: #16213e; - --vp-code-tab-active-bg: #1a1a2e; - --vp-code-tab-text-color: #a0a0b0; - --vp-code-tab-active-text-color: #ffffff; - --vp-code-tab-hover-text-color: #ffffff; - --shiki-light: #E1E4E8; - - /* Typo */ - --vp-font-family-mono: 'Source Code Pro', monospace; +html, body { + font-family: var(--vp-font-family-base); + font-size: 16px; } .vp-doc { @@ -37,7 +16,7 @@ font-family: var(--vp-font-family-mono); } .VPImage.logo { - height: 36px !important; + height: 28px !important; } .VPHome { diff --git a/src/.vitepress/theme/tokens.css b/src/.vitepress/theme/tokens.css new file mode 100644 index 0000000..13d83ca --- /dev/null +++ b/src/.vitepress/theme/tokens.css @@ -0,0 +1,132 @@ + +:root { + /* ======================================== + BIMDATA — BRAND + ======================================== */ + --bimdata-blue: #2378c4; + --bimdata-blue-light: #4ea0e8; + --bimdata-primary: #2F374A; + --bimdata-yellow: #f9c72c; + + /* ======================================== + BIMDATA — NEUTRALS + ======================================== */ + --bimdata-navy: #102235; + --bimdata-slate: #5e7183; + + --bimdata-white: #ffffff; + + --bimdata-gray-50: #F5F8FC; + --bimdata-gray-100: #f1f6fa; + --bimdata-gray-200: #d9e4ee; + --bimdata-gray-300: #c3d5e3; + --bimdata-gray-400: #c2d2e0; + + /* ======================================== + VITEPRESS + ======================================== */ + --vp-c-brand-1: var(--bimdata-blue); + --vp-c-brand-2: #2f87ce; + --vp-c-brand-3: #1d69ac; + + --vp-c-brand-soft: rgba(35, 120, 196, 0.15); + + --vp-c-bg: var(--bimdata-gray-50); + --vp-c-bg-alt: var(--bimdata-white); + --vp-c-bg-elv: var(--bimdata-white); + + --vp-c-text-1: var(--bimdata-navy); + --vp-c-text-2: var(--bimdata-slate); + --vp-c-text-3: #718ba1; + + --vp-c-divider: var(--bimdata-gray-200); + --vp-c-gutter: var(--bimdata-gray-200); + + --vp-c-default-1: var(--bimdata-slate); + --vp-c-default-2: var(--bimdata-gray-300); + --vp-c-default-3: var(--bimdata-gray-100); + --vp-c-default-soft: var(--bimdata-gray-100); + + /* ======================================== + TYPOGRAPHY + ======================================== */ + --vp-font-family-base: "Roboto", sans-serif; + --vp-font-family-mono: "Roboto Mono", monospace; + + /* ======================================== + LAYOUT + ======================================== */ + --vp-layout-max-width: 1440px; + + /* ======================================== + SHAPES + ======================================== */ + --vp-button-brand-border: transparent; + --vp-button-brand-text: #ffffff; + --vp-button-brand-bg: var(--bimdata-blue); + --vp-button-brand-hover-border: transparent; + --vp-button-brand-hover-text: #ffffff; + --vp-button-brand-hover-bg: #2f87ce; + --vp-button-brand-active-border: transparent; + --vp-button-brand-active-text: #ffffff; + --vp-button-brand-active-bg: #1d69ac; +} +.dark { + /* ======================================== + BACKGROUND + ======================================== */ + + --vp-c-bg: #071a2b; + --vp-c-bg-alt: #0a1f32; + --vp-c-bg-elv: #0c263d; + + /* ======================================== + TEXT + ======================================== */ + + --vp-c-text-1: #ffffff; + --vp-c-text-2: #9fb0c0; + --vp-c-text-3: #718ba1; + + /* ======================================== + BORDERS + ======================================== */ + + --vp-c-divider: #15334e; + --vp-c-gutter: #15334e; + + /* ======================================== + BRAND + ======================================== */ + + --vp-c-brand-1: #4ea0e8; + --vp-c-brand-2: #65b0f2; + --vp-c-brand-3: #2378c4; + + --vp-c-brand-soft: rgba(78, 160, 232, 0.2); + + /* ======================================== + DEFAULT + ======================================== */ + + --vp-c-default-1: #9fb0c0; + --vp-c-default-2: #2c465e; + --vp-c-default-3: #102a42; + --vp-c-default-soft: #102a42; + + /* ======================================== + BUTTON + ======================================== */ + + --vp-button-brand-border: transparent; + --vp-button-brand-text: #ffffff; + --vp-button-brand-bg: #2378c4; + + --vp-button-brand-hover-border: transparent; + --vp-button-brand-hover-text: #ffffff; + --vp-button-brand-hover-bg: #4ea0e8; + + --vp-button-brand-active-border: transparent; + --vp-button-brand-active-text: #ffffff; + --vp-button-brand-active-bg: #1d69ac; +} \ No newline at end of file diff --git a/src/public/images/bimdata-documentation-logo_dark.svg b/src/public/images/bimdata-documentation-logo_dark.svg new file mode 100644 index 0000000..f4884ba --- /dev/null +++ b/src/public/images/bimdata-documentation-logo_dark.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/public/images/bimdata-documentation-logo_light.svg b/src/public/images/bimdata-documentation-logo_light.svg new file mode 100644 index 0000000..3738855 --- /dev/null +++ b/src/public/images/bimdata-documentation-logo_light.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + From 13702f942a50dff96c11d73df434f011a4af21d2 Mon Sep 17 00:00:00 2001 From: Gaelle Date: Mon, 31 Aug 2026 11:09:13 +0200 Subject: [PATCH 2/8] add footer, fix darkmode, improve responsive behavior of home page and code terminal --- src/.vitepress/components/Home.vue | 1126 ++++++++++++++++- src/.vitepress/config.js | 1 + src/.vitepress/theme/HomeSearch.vue | 26 - src/.vitepress/theme/buttons.css | 50 +- .../theme/components/CodeTerminal.vue | 74 +- src/.vitepress/theme/components/Footer.vue | 73 ++ .../theme/components/HomeSearch.vue | 23 + src/.vitepress/theme/custom.css | 77 +- src/.vitepress/theme/footer.css | 143 +++ src/.vitepress/theme/index.js | 12 +- src/.vitepress/theme/tokens.css | 48 +- src/public/images/arrow-icon.svg | 3 + src/public/images/bimdata-api_icon.svg | 3 + src/public/images/bimdata-changelog_icon.svg | 3 + .../images/bimdata-design-system_icon.svg | 6 + src/public/images/bimdata-examples_icon.svg | 4 + src/public/images/bimdata-github_icon.svg | 3 + src/public/images/bimdata-status_icon.svg | 3 + src/public/images/bimdata-support_icon.svg | 3 + src/public/images/bimdata-viewer_icon.svg | 3 + 20 files changed, 1531 insertions(+), 153 deletions(-) delete mode 100644 src/.vitepress/theme/HomeSearch.vue create mode 100644 src/.vitepress/theme/components/Footer.vue create mode 100644 src/.vitepress/theme/components/HomeSearch.vue create mode 100644 src/.vitepress/theme/footer.css create mode 100644 src/public/images/arrow-icon.svg create mode 100644 src/public/images/bimdata-api_icon.svg create mode 100644 src/public/images/bimdata-changelog_icon.svg create mode 100644 src/public/images/bimdata-design-system_icon.svg create mode 100644 src/public/images/bimdata-examples_icon.svg create mode 100644 src/public/images/bimdata-github_icon.svg create mode 100644 src/public/images/bimdata-status_icon.svg create mode 100644 src/public/images/bimdata-support_icon.svg create mode 100644 src/public/images/bimdata-viewer_icon.svg diff --git a/src/.vitepress/components/Home.vue b/src/.vitepress/components/Home.vue index 6de097c..017efcb 100644 --- a/src/.vitepress/components/Home.vue +++ b/src/.vitepress/components/Home.vue @@ -8,26 +8,314 @@ Upload, view, annotate and extract data from IFC, DWG/DXF, PDF, point clouds and 360° images using the BIMData API and viewer SDK.

-
+
+ SUPPORTED FORMATS + IFC + DWG + DXF + IMAGES + PDF + POINT CLOUDS + 360° IMAGES +
+
+
+
+
+
Start here
+ +

What are you trying to build?

+
+ +

+ Choose your goal and we'll guide you to the documentation, APIs and SDKs you need. +

+
+ + +
+
+
+
+
+
+
Quickstart
+

Build your first BIM application

+
+

+ Follow the shortest path from authentication to displaying your first BIM model. +

+
+ +
+ + +
+
+ 02 + API +
+

Upload a model

+

Create a project and upload your first IFC file.

+ Upload guide +
+ +
+
+ 03 + VIEWER +
+

Display your model

+

Load your model and display it using the BIMData Viewer.

+ Viewer guide +
+ +
+
+ 04 + DATA +
+

Query your data

+

Retrieve elements, properties and relationships from your BIM models.

+ API reference +
+
+
+
+ +
+ +
+ +
+ +
+ +
+ +
- - \ No newline at end of file diff --git a/src/.vitepress/theme/buttons.css b/src/.vitepress/theme/buttons.css index 6e0a52d..0af5ea5 100644 --- a/src/.vitepress/theme/buttons.css +++ b/src/.vitepress/theme/buttons.css @@ -1,5 +1,6 @@ html, body { .button { + padding: 0 26px; display: inline-flex; align-items: center; } @@ -23,17 +24,60 @@ html, body { background-color: var(--bimdata-blue); color: var(--color-white); border: none; + transition: background-color 0.2s ease-in-out; &:hover { background-color: #2f87ce; + color: var(--color-white); + transition: background-color 0.2s ease-in-out; } } .button-filled-secondary { background-color: rgba(35,120,196, .1); - color: var(--bimdata-blue); + color: var(--bimdata-primary); border: solid 1px rgba(35,120,196, .15); + transition: background-color 0.2s ease-in-out; &:hover { - background-color: var(--bimdata-blue); - color: var(--color-white); + background-color: rgba(35,120,196, .15); + transition: all 0.2s ease-in-out; + } + } + + .button-arrow { + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + &::after { + content: url('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/images/arrow-icon.svg'); + line-height: 1; + transition: transform 180ms ease; + } + &:hover::after { + transform: translateX(3px); + transition: transform 180ms ease; + } + } +} +.dark { + .button-filled-primary { + background-color: var(--bimdata-blue); + color: #06182A; + border: none; + transition: background-color 0.2s ease-in-out; + &:hover { + background-color: #2f87ce; + color: #06182A; + transition: background-color 0.2s ease-in-out; + } + } + .button-filled-secondary { + background-color: rgba(78,160,232, .13); + color: var(--color-white); + border: solid 1px rgba(78,160,232, .18); + transition: background-color 0.2s ease-in-out; + &:hover { + background-color: rgba(78,160,232, .15); + transition: all 0.2s ease-in-out; } } } \ No newline at end of file diff --git a/src/.vitepress/theme/components/CodeTerminal.vue b/src/.vitepress/theme/components/CodeTerminal.vue index f0f3333..e9477d9 100644 --- a/src/.vitepress/theme/components/CodeTerminal.vue +++ b/src/.vitepress/theme/components/CodeTerminal.vue @@ -38,8 +38,8 @@ @@ -104,45 +104,43 @@ export default { \ No newline at end of file diff --git a/src/.vitepress/theme/custom.css b/src/.vitepress/theme/custom.css index 67be937..a34e182 100644 --- a/src/.vitepress/theme/custom.css +++ b/src/.vitepress/theme/custom.css @@ -5,58 +5,35 @@ html, body { font-family: var(--vp-font-family-base); font-size: 16px; -} - -.vp-doc { - a { - text-decoration: none; + .vp-doc { + a { + text-decoration: none; + } } } -.vp-code-group { - font-family: var(--vp-font-family-mono); -} + +/* ======================================== + CUSTOM + ======================================== */ .VPImage.logo { height: 28px !important; } -.VPHome { - margin-bottom: 0 !important; -} - .VPHome .container { - max-width: none !important; - padding: 0 !important; -} - -.VPDoc { - .container:has(#bimdata-doc-swagger-ui) { - .aside { - display: none; - } - - .content .content-container { - max-width: none; - } - } - &.has-aside { - .content .content-container { - max-width: none; - } - } -} - -.VPNavBar { - .container { - max-width: var(--vp-layout-max-width); - } + max-width: none; + padding: 0; } +/* ======================================== + SEARCHBOX + ======================================== */ .VPNavBarSearch { .DocSearch-Button { width: 250px; - border: none; + border: 1px solid var(--vp-sidebar-border-color); background-color: var(--vp-sidebar-bg-color); - color: var(--color-granite-light); + color: #6F879C; + border-radius: 50px; &:hover { color: var(--color-granite); } @@ -97,25 +74,3 @@ html, body { } } -/* custom TABLE */ -.vp-doc div:has(> table) { - overflow-x: visible; /* supprime le scroll du wrapper */ -} -.vp-doc table { - display: table; - table-layout: fixed; - width: 100%; - th:nth-child(1), td:nth-child(1) { - width: 30%; - word-break: break-word; - } - th:nth-child(2), td:nth-child(2) { - width: 25%; - word-break: break-word; - } - th:nth-child(3), td:nth-child(3) { - width: 45%; - white-space: normal; - word-break: break-word; - } -} diff --git a/src/.vitepress/theme/footer.css b/src/.vitepress/theme/footer.css new file mode 100644 index 0000000..cd8f33c --- /dev/null +++ b/src/.vitepress/theme/footer.css @@ -0,0 +1,143 @@ +/* ======================================== + BIMData Footer + ======================================== */ +.bimdata-footer { + width: 100%; + background: var(--vp-c-bg-alt); + color: var(--vp-c-text-1); +} + +.bimdata-footer__container { + width: min(calc(100% - 48px), var(--vp-layout-max-width)); + margin: 0 auto; +} + +/* ======================================== + Main + ======================================== */ +.bimdata-footer__main { + display: grid; + grid-template-columns: minmax(320px, 2fr) repeat(3, minmax(140px, 1fr)); + column-gap: 64px; + padding: 64px 0 68px; +} + +/* ======================================== + Brand + ======================================== */ +.bimdata-footer__brand { + max-width: 360px; +} + +.bimdata-footer__description { + max-width: 320px; + margin: 24px 0 0; + color: var(--vp-c-text-2); + font-size: 13px; + line-height: 1.55; +} + +/* ======================================== + Columns + ======================================== */ +.bimdata-footer__column { + display: flex; + flex-direction: column; + gap: 10px; +} + +.bimdata-footer__column h2 { + margin: 0 0 8px; + color: var(--vp-c-text-1); + font-size: 11px; + font-weight: 700; + line-height: 1; + text-transform: uppercase; +} + +.bimdata-footer__column a { + width: fit-content; + color: var(--vp-c-text-2); + font-size: 13px; + line-height: 1.4; + text-decoration: none; + transition: color 0.2s ease; +} + +.bimdata-footer__column a:hover { + color: var(--vp-c-brand-1); +} + +/* ======================================== + Bottom + ======================================== */ +.bimdata-footer__bottom { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 50px; + border-top: 1px solid var(--vp-c-divider); + color: var(--vp-c-text-3); + font-size: 12px; +} + +.bimdata-footer__copyright { + line-height: 1.4; +} + +.bimdata-footer__legal { + display: flex; + align-items: center; + gap: 24px; +} + +.bimdata-footer__legal a { + color: inherit; + text-decoration: none; + transition: color 0.2s ease; +} + +.bimdata-footer__legal a:hover { + color: var(--vp-c-brand-1); +} + +/* ======================================== + Responsive + ======================================== */ +@media (max-width: 900px) { + .bimdata-footer__main { + grid-template-columns: 1fr 1fr; + gap: 48px 32px; + } + + .bimdata-footer__brand { + grid-column: 1 / -1; + } +} + +@media (max-width: 640px) { + .bimdata-footer__container { + width: calc(100% - 32px); + } + + .bimdata-footer__main { + grid-template-columns: 1fr; + gap: 36px; + padding: 48px 0; + } + + .bimdata-footer__brand { + grid-column: auto; + } + + .bimdata-footer__bottom { + align-items: flex-start; + flex-direction: column; + gap: 16px; + padding: 20px 0; + } + + .bimdata-footer__legal { + gap: 18px; + } +} \ No newline at end of file diff --git a/src/.vitepress/theme/index.js b/src/.vitepress/theme/index.js index 3a12f9a..c772430 100644 --- a/src/.vitepress/theme/index.js +++ b/src/.vitepress/theme/index.js @@ -1,12 +1,22 @@ import DefaultTheme from "vitepress/theme"; +import { h } from "vue"; + import "./custom.css"; +import "./footer.css"; import BIMDataViewer from "../components/BIMDataViewer.vue"; +import Footer from "./components/Footer.vue"; /** @type {import('vitepress').Theme} */ export default { extends: DefaultTheme, + + Layout: () => + h(DefaultTheme.Layout, null, { + "layout-bottom": () => h(Footer), + }), + enhanceApp({ app }) { app.component("BIMDataViewer", BIMDataViewer); }, -}; +}; \ No newline at end of file diff --git a/src/.vitepress/theme/tokens.css b/src/.vitepress/theme/tokens.css index 13d83ca..07e1118 100644 --- a/src/.vitepress/theme/tokens.css +++ b/src/.vitepress/theme/tokens.css @@ -8,6 +8,12 @@ --bimdata-primary: #2F374A; --bimdata-yellow: #f9c72c; + --bimdata-api: #2378C4; + --bimdata-viewer: #FE4A23; + --bimdata-on-premise: #A375FF; + --bimdata-platform: #F9C72C; + + /* ======================================== BIMDATA — NEUTRALS ======================================== */ @@ -29,7 +35,7 @@ --vp-c-brand-2: #2f87ce; --vp-c-brand-3: #1d69ac; - --vp-c-brand-soft: rgba(35, 120, 196, 0.15); + --vp-c-brand-soft: rgba(35, 120, 196, 0.05); --vp-c-bg: var(--bimdata-gray-50); --vp-c-bg-alt: var(--bimdata-white); @@ -47,6 +53,10 @@ --vp-c-default-3: var(--bimdata-gray-100); --vp-c-default-soft: var(--bimdata-gray-100); + --vp-sidebar-bg-color: var(--bimdata-white); + --vp-sidebar-border-color: #C3D5E3; + + /* ======================================== TYPOGRAPHY ======================================== */ @@ -70,20 +80,28 @@ --vp-button-brand-active-border: transparent; --vp-button-brand-active-text: #ffffff; --vp-button-brand-active-bg: #1d69ac; + + /* ======================================== + SURFACES & CARDS + ======================================== */ + --bimdata-surface-card: var(--bimdata-white); + --bimdata-surface-card-hover: var(--bimdata-gray-100); + --bimdata-border-card: var(--bimdata-gray-200); + + --radius-md: 12px; } .dark { /* ======================================== BACKGROUND ======================================== */ - --vp-c-bg: #071a2b; --vp-c-bg-alt: #0a1f32; - --vp-c-bg-elv: #0c263d; + --vp-c-bg-elv: #0B2237; + --vp-sidebar-bg-color: #0B2237; /* ======================================== TEXT ======================================== */ - --vp-c-text-1: #ffffff; --vp-c-text-2: #9fb0c0; --vp-c-text-3: #718ba1; @@ -91,33 +109,37 @@ /* ======================================== BORDERS ======================================== */ - --vp-c-divider: #15334e; --vp-c-gutter: #15334e; + --vp-sidebar-border-color: #24516F; /* ======================================== BRAND ======================================== */ - + --bimdata-blue: #4ea0e8; --vp-c-brand-1: #4ea0e8; --vp-c-brand-2: #65b0f2; --vp-c-brand-3: #2378c4; - --vp-c-brand-soft: rgba(78, 160, 232, 0.2); /* ======================================== - DEFAULT + NEUTRAL ======================================== */ + --bimdata-navy: var(--bimdata-white); + --bimdata-slate: #9DB0C2; + /* ======================================== + DEFAULT + ======================================== */ --vp-c-default-1: #9fb0c0; --vp-c-default-2: #2c465e; --vp-c-default-3: #102a42; --vp-c-default-soft: #102a42; + /* ======================================== BUTTON ======================================== */ - --vp-button-brand-border: transparent; --vp-button-brand-text: #ffffff; --vp-button-brand-bg: #2378c4; @@ -129,4 +151,12 @@ --vp-button-brand-active-border: transparent; --vp-button-brand-active-text: #ffffff; --vp-button-brand-active-bg: #1d69ac; + + /* ======================================== + SURFACES & CARDS + ======================================== */ + --bimdata-surface-card: #0b2237; + --bimdata-surface-card-hover: #102a42; + + --bimdata-border-card: #1B4261; } \ No newline at end of file diff --git a/src/public/images/arrow-icon.svg b/src/public/images/arrow-icon.svg new file mode 100644 index 0000000..cfe23bf --- /dev/null +++ b/src/public/images/arrow-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/public/images/bimdata-api_icon.svg b/src/public/images/bimdata-api_icon.svg new file mode 100644 index 0000000..8fcec37 --- /dev/null +++ b/src/public/images/bimdata-api_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/public/images/bimdata-changelog_icon.svg b/src/public/images/bimdata-changelog_icon.svg new file mode 100644 index 0000000..ba85228 --- /dev/null +++ b/src/public/images/bimdata-changelog_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/public/images/bimdata-design-system_icon.svg b/src/public/images/bimdata-design-system_icon.svg new file mode 100644 index 0000000..bde37cd --- /dev/null +++ b/src/public/images/bimdata-design-system_icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/public/images/bimdata-examples_icon.svg b/src/public/images/bimdata-examples_icon.svg new file mode 100644 index 0000000..64e28de --- /dev/null +++ b/src/public/images/bimdata-examples_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/public/images/bimdata-github_icon.svg b/src/public/images/bimdata-github_icon.svg new file mode 100644 index 0000000..dc775d0 --- /dev/null +++ b/src/public/images/bimdata-github_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/public/images/bimdata-status_icon.svg b/src/public/images/bimdata-status_icon.svg new file mode 100644 index 0000000..a1a6f9f --- /dev/null +++ b/src/public/images/bimdata-status_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/public/images/bimdata-support_icon.svg b/src/public/images/bimdata-support_icon.svg new file mode 100644 index 0000000..e98f88f --- /dev/null +++ b/src/public/images/bimdata-support_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/public/images/bimdata-viewer_icon.svg b/src/public/images/bimdata-viewer_icon.svg new file mode 100644 index 0000000..f0f2e60 --- /dev/null +++ b/src/public/images/bimdata-viewer_icon.svg @@ -0,0 +1,3 @@ + + + From 45d10db49018c3ab45d51f382147613f2e4f4e5c Mon Sep 17 00:00:00 2001 From: Gaelle Date: Mon, 31 Aug 2026 11:29:41 +0200 Subject: [PATCH 3/8] fix searchbar in responsive --- src/.vitepress/theme/custom.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/.vitepress/theme/custom.css b/src/.vitepress/theme/custom.css index a34e182..a03f5e4 100644 --- a/src/.vitepress/theme/custom.css +++ b/src/.vitepress/theme/custom.css @@ -29,6 +29,7 @@ html, body { ======================================== */ .VPNavBarSearch { .DocSearch-Button { + padding: 0 12px; width: 250px; border: 1px solid var(--vp-sidebar-border-color); background-color: var(--vp-sidebar-bg-color); From 08304eea3a336906356f6abb1c78d50fb6f406a6 Mon Sep 17 00:00:00 2001 From: Gaelle Date: Mon, 31 Aug 2026 11:45:09 +0200 Subject: [PATCH 4/8] add links to homepage --- src/.vitepress/components/Home.vue | 60 ++++++++++--------- .../theme/components/CodeTerminal.vue | 2 +- src/.vitepress/theme/custom.css | 3 + 3 files changed, 36 insertions(+), 29 deletions(-) diff --git a/src/.vitepress/components/Home.vue b/src/.vitepress/components/Home.vue index 017efcb..d76f762 100644 --- a/src/.vitepress/components/Home.vue +++ b/src/.vitepress/components/Home.vue @@ -9,10 +9,10 @@ images using the BIMData API and viewer SDK.

@@ -47,8 +47,10 @@

Create an application

Get your credentials and create your first BIMData application.

-
Authentication + Authentication @@ -137,42 +141,42 @@
- +
BIMData changelog
@@ -263,15 +267,15 @@ Viewer updates & releases
- + - +
Github
@@ -279,7 +283,7 @@ Open source code & SDKs
- +
Design system
@@ -287,7 +291,7 @@ Vue.js UI components
- +
Support
@@ -295,7 +299,7 @@ Team help & community
- +
Examples
@@ -736,7 +740,7 @@ export default { ======================================== */ .resource-grid { display: grid; - grid-template-columns: repeat(6, 1fr); + grid-template-columns: repeat(5, 1fr); gap: 10px; .resource-card { diff --git a/src/.vitepress/theme/components/CodeTerminal.vue b/src/.vitepress/theme/components/CodeTerminal.vue index e9477d9..a3ab73c 100644 --- a/src/.vitepress/theme/components/CodeTerminal.vue +++ b/src/.vitepress/theme/components/CodeTerminal.vue @@ -38,7 +38,7 @@
diff --git a/src/.vitepress/theme/custom.css b/src/.vitepress/theme/custom.css index a03f5e4..fc6f5b2 100644 --- a/src/.vitepress/theme/custom.css +++ b/src/.vitepress/theme/custom.css @@ -10,6 +10,9 @@ html, body { text-decoration: none; } } + p { + font-weight: 400; + } } /* ======================================== From c9d8f91e08eedce7ea003287f46dc099b4afc5d3 Mon Sep 17 00:00:00 2001 From: Gaelle Date: Mon, 31 Aug 2026 12:05:58 +0200 Subject: [PATCH 5/8] change favicon --- src/.vitepress/config.js | 2 +- src/public/favicon.svg | 4 ++++ src/public/images/favicon.svg | 18 ------------------ 3 files changed, 5 insertions(+), 19 deletions(-) create mode 100644 src/public/favicon.svg delete mode 100644 src/public/images/favicon.svg diff --git a/src/.vitepress/config.js b/src/.vitepress/config.js index f4d5597..8682486 100644 --- a/src/.vitepress/config.js +++ b/src/.vitepress/config.js @@ -13,7 +13,7 @@ export default defineConfig({ theme: 'one-dark-pro' }, head: [ - ["link", { rel: "icon", href: "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/images/favicon.svg", type: "image/svg+xml" }], + ["link", { rel: "icon", href: "/favicon.svg", type: "image/svg+xml" }], [ "link", { diff --git a/src/public/favicon.svg b/src/public/favicon.svg new file mode 100644 index 0000000..ae76ac1 --- /dev/null +++ b/src/public/favicon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/public/images/favicon.svg b/src/public/images/favicon.svg deleted file mode 100644 index 4a7a3dc..0000000 --- a/src/public/images/favicon.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - From 8da739555a3aa3bea77af94a0e1ca51bf5dc2b7f Mon Sep 17 00:00:00 2001 From: Gaelle Date: Mon, 31 Aug 2026 19:48:46 +0200 Subject: [PATCH 6/8] custom swagger ui for dark theme --- src/.vitepress/components/ViewerMainPage.vue | 24 ++-- .../theme/components/CodeTerminal.vue | 28 ++--- .../theme/components/HomeSearch.vue | 3 + src/.vitepress/theme/custom.css | 119 ++++++++++++++++-- src/.vitepress/theme/footer.css | 4 +- src/.vitepress/theme/tokens.css | 26 +++- 6 files changed, 169 insertions(+), 35 deletions(-) diff --git a/src/.vitepress/components/ViewerMainPage.vue b/src/.vitepress/components/ViewerMainPage.vue index 70e1526..e6a6221 100644 --- a/src/.vitepress/components/ViewerMainPage.vue +++ b/src/.vitepress/components/ViewerMainPage.vue @@ -1,6 +1,6 @@