This tool is provided as-is with no warranty of any kind. Use at your own risk.
No support is provided. The author is under no obligation to fix bugs, answer questions, or update this tool. That said, bug reports and feature requests are always welcome at texturizer@cnckitchen.com.
The author shall not be held liable for any damages, data loss, or issues arising from the use of this tool.
+
Want to license or embed this tool for your own business or website? Contact us at contact@cnckitchen.com.
Responsible party (Verantwortlicher gem. Art. 4 Abs. 7 DSGVO): Stefan Hermann, Bahnhofstr. 2, 88145 Hergatz, Germany.
+
+
This website is hosted on GitHub Pages (GitHub Inc. / Microsoft Corp., 88 Colin P Kelly Jr St, San Francisco, CA 94107, USA). When you visit this site, GitHub may process your IP address in server logs. Legal basis: Art. 6(1)(f) DSGVO (legitimate interest in providing the website). See GitHub’s Privacy Statement.
+
This tool stores user preferences (language, theme) in your browser’s localStorage. This data never leaves your device and is not transmitted to any server.
+
This website does not use cookies, analytics, or any tracking technologies.
+
This site contains links to external websites (e.g., CNCKitchen.STORE, PayPal). These sites have their own privacy policies, over which we have no control.
+
Under the GDPR you have the right to access, rectification, erasure, restriction of processing, data portability, and the right to lodge a complaint with a supervisory authority.
+
+
+
+
diff --git a/js/i18n.js b/js/i18n.js
index 3f98640..5dd912e 100644
--- a/js/i18n.js
+++ b/js/i18n.js
@@ -152,6 +152,22 @@ export const TRANSLATIONS = {
'license.item4': 'This tool is provided as-is with no warranty of any kind. Use at your own risk.',
'license.item5': 'No support is provided. The author is under no obligation to fix bugs, answer questions, or update this tool. That said, bug reports and feature requests are always welcome at texturizer@cnckitchen.com.',
'license.item6': 'The author shall not be held liable for any damages, data loss, or issues arising from the use of this tool.',
+ 'license.item7': 'Want to license or embed this tool for your own business or website? Contact us at contact@cnckitchen.com.',
+
+ // Imprint & Privacy
+ 'imprint.btn': 'Imprint & Privacy',
+ 'imprint.title': 'Imprint & Privacy Policy',
+ 'imprint.sectionImprint': 'Imprint (Impressum)',
+ 'imprint.info': 'CNC Kitchen Stefan Hermann Bahnhofstr. 2 88145 Hergatz Germany',
+ 'imprint.contact': 'Email: contact@cnckitchen.com Phone: +49 175 2011824 The phone number is for legal/business inquiries only \u2014 not for support.',
+ 'imprint.odr': 'EU Online Dispute Resolution platform: https://ec.europa.eu/consumers/odr',
+ 'imprint.sectionPrivacy': 'Privacy Policy (Datenschutzerkl\u00e4rung)',
+ 'imprint.privacyIntro': 'Responsible party (Verantwortlicher gem. Art. 4 Abs. 7 DSGVO): Stefan Hermann, Bahnhofstr. 2, 88145 Hergatz, Germany.',
+ 'imprint.privacyHosting': 'This website is hosted on GitHub Pages (GitHub Inc. / Microsoft Corp., 88 Colin P Kelly Jr St, San Francisco, CA 94107, USA). When you visit this site, GitHub may process your IP address in server logs. Legal basis: Art. 6(1)(f) DSGVO (legitimate interest in providing the website). See GitHub\u2019s Privacy Statement.',
+ 'imprint.privacyLocal': 'This tool stores user preferences (language, theme) in your browser\u2019s localStorage. This data never leaves your device and is not transmitted to any server.',
+ 'imprint.privacyNoCookies':'This website does not use cookies, analytics, or any tracking technologies.',
+ 'imprint.privacyExternal':'This site contains links to external websites (e.g., CNCKitchen.STORE, PayPal). These sites have their own privacy policies, over which we have no control.',
+ 'imprint.privacyRights': 'Under the GDPR you have the right to access, rectification, erasure, restriction of processing, data portability, and the right to lodge a complaint with a supervisory authority.',
// Sponsor modal
'sponsor.title': 'Thanks for using BumpMesh by CNC Kitchen!',
@@ -320,6 +336,22 @@ export const TRANSLATIONS = {
'license.item4': 'Dieses Tool wird ohne jegliche Gew\u00e4hrleistung bereitgestellt. Nutzung auf eigene Gefahr.',
'license.item5': 'Es wird kein Support geleistet. Der Autor ist nicht verpflichtet, Fehler zu beheben, Fragen zu beantworten oder das Tool zu aktualisieren. Fehlerberichte und Funktionswünsche sind aber jederzeit willkommen unter texturizer@cnckitchen.com.',
'license.item6': 'Der Autor haftet nicht f\u00fcr Sch\u00e4den, Datenverlust oder Probleme, die durch die Nutzung dieses Tools entstehen.',
+ 'license.item7': 'Sie m\u00f6chten dieses Tool f\u00fcr Ihr eigenes Unternehmen oder Ihre Website lizenzieren oder einbinden? Kontaktieren Sie uns unter contact@cnckitchen.com.',
+
+ // Impressum & Datenschutz
+ 'imprint.btn': 'Impressum & Datenschutz',
+ 'imprint.title': 'Impressum & Datenschutzerkl\u00e4rung',
+ 'imprint.sectionImprint': 'Impressum',
+ 'imprint.info': 'CNC Kitchen Stefan Hermann Bahnhofstr. 2 88145 Hergatz Deutschland',
+ 'imprint.contact': 'E-Mail: contact@cnckitchen.com Telefon: +49 175 2011824 Die Telefonnummer ist ausschlie\u00dflich f\u00fcr rechtliche/gesch\u00e4ftliche Anfragen \u2014 nicht f\u00fcr Support.',
+ 'imprint.odr': 'Plattform der EU-Kommission zur Online-Streitbeilegung: https://ec.europa.eu/consumers/odr',
+ 'imprint.sectionPrivacy': 'Datenschutzerkl\u00e4rung',
+ 'imprint.privacyIntro': 'Verantwortlicher gem. Art. 4 Abs. 7 DSGVO: Stefan Hermann, Bahnhofstr. 2, 88145 Hergatz, Deutschland.',
+ 'imprint.privacyHosting': 'Diese Website wird auf GitHub Pages (GitHub Inc. / Microsoft Corp., 88 Colin P Kelly Jr St, San Francisco, CA 94107, USA) gehostet. Beim Besuch dieser Seite kann GitHub Ihre IP-Adresse in Server-Logs verarbeiten. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an der Bereitstellung der Website). Siehe Datenschutzerkl\u00e4rung von GitHub.',
+ 'imprint.privacyLocal': 'Dieses Tool speichert Nutzereinstellungen (Sprache, Theme) im localStorage Ihres Browsers. Diese Daten verlassen Ihr Ger\u00e4t nicht und werden nicht an einen Server \u00fcbertragen.',
+ 'imprint.privacyNoCookies':'Diese Website verwendet keine Cookies, Analyse-Tools oder sonstige Tracking-Technologien.',
+ 'imprint.privacyExternal':'Diese Seite enth\u00e4lt Links zu externen Websites (z.B. CNCKitchen.STORE, PayPal). F\u00fcr deren Datenschutzrichtlinien \u00fcbernehmen wir keine Verantwortung.',
+ 'imprint.privacyRights': 'Nach der DSGVO haben Sie das Recht auf Auskunft, Berichtigung, L\u00f6schung, Einschr\u00e4nkung der Verarbeitung, Daten\u00fcbertragbarkeit sowie das Recht auf Beschwerde bei einer Aufsichtsbeh\u00f6rde.',
// Sponsor modal
'sponsor.title': 'Danke für die Nutzung von BumpMesh by CNC Kitchen!',
diff --git a/js/main.js b/js/main.js
index 6015b7e..93fc802 100644
--- a/js/main.js
+++ b/js/main.js
@@ -235,6 +235,9 @@ const precisionWarning = document.getElementById('precision-warning');
const licenseLink = document.getElementById('license-link');
const licenseOverlay = document.getElementById('license-overlay');
const licenseClose = document.getElementById('license-close');
+const imprintLink = document.getElementById('imprint-link');
+const imprintOverlay = document.getElementById('imprint-overlay');
+const imprintClose = document.getElementById('imprint-close');
// ── Scale slider log helpers ──────────────────────────────────────────────────
// Slider stores 0–1000; actual scale spans 0.05–10 on a log axis.
@@ -465,6 +468,13 @@ function wireEvents() {
if (e.target === licenseOverlay) licenseOverlay.classList.add('hidden');
});
+ // ── Imprint & Privacy ──
+ imprintLink.addEventListener('click', () => imprintOverlay.classList.remove('hidden'));
+ imprintClose.addEventListener('click', () => imprintOverlay.classList.add('hidden'));
+ imprintOverlay.addEventListener('click', (e) => {
+ if (e.target === imprintOverlay) imprintOverlay.classList.add('hidden');
+ });
+
// ── Support banner dismiss ──
document.getElementById('store-cta-dismiss').addEventListener('click', () => {
document.getElementById('store-cta-wrapper').classList.add('store-cta-hidden');
@@ -675,6 +685,7 @@ function wireEvents() {
if (placeOnFaceActive) togglePlaceOnFace(false);
if (exclusionTool) setExclusionTool(null);
licenseOverlay.classList.add('hidden');
+ imprintOverlay.classList.add('hidden');
}
});
}
diff --git a/style.css b/style.css
index dcb895a..308578d 100644
--- a/style.css
+++ b/style.css
@@ -1068,6 +1068,38 @@ input[type="number"].val:focus { outline: none; border-color: var(--accent); }
text-decoration: underline;
}
+/* ── Imprint modal extras ────────────────────────────────────────────────── */
+.imprint-modal {
+ max-width: 520px;
+ max-height: 85vh;
+ overflow-y: auto;
+}
+
+.imprint-section-heading {
+ font-size: 13px;
+ font-weight: 700;
+ color: var(--accent);
+ text-transform: uppercase;
+ letter-spacing: 0.04em;
+ margin: 6px 0 0;
+}
+
+.imprint-text {
+ font-size: 13px;
+ color: var(--text-muted);
+ line-height: 1.6;
+ margin: 0;
+}
+
+.imprint-text a {
+ color: var(--accent);
+ text-decoration: none;
+}
+
+.imprint-text a:hover {
+ text-decoration: underline;
+}
+
.license-close-btn {
position: absolute;
top: 14px;