Compare commits

...

3 Commits

Author SHA1 Message Date
Andreas Knuth 87cd5beaac 'anton':
'bebas-neue':
'dancing-script':
'montserrat':
'orbitron':
'pacifico':
'playfair-display
'poppins': [
2025-08-04 23:01:46 -05:00
Andreas Knuth 2587880a1f Anpassungen 2025-08-04 22:53:25 -05:00
Andreas Knuth 7f63454701 removed .next folder 2025-08-04 18:35:39 -05:00
90 changed files with 3991 additions and 10526 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
node_modules node_modules
.next

View File

@ -1,32 +0,0 @@
{
"polyfillFiles": [
"static/chunks/polyfills.js"
],
"devFiles": [
"static/chunks/react-refresh.js"
],
"ampDevFiles": [],
"lowPriorityFiles": [
"static/development/_buildManifest.js",
"static/development/_ssgManifest.js"
],
"rootMainFiles": [],
"pages": {
"/": [
"static/chunks/webpack.js",
"static/chunks/main.js",
"static/chunks/pages/index.js"
],
"/_app": [
"static/chunks/webpack.js",
"static/chunks/main.js",
"static/chunks/pages/_app.js"
],
"/_error": [
"static/chunks/webpack.js",
"static/chunks/main.js",
"static/chunks/pages/_error.js"
]
},
"ampFirstPages": []
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +0,0 @@
{"type": "commonjs"}

View File

@ -1 +0,0 @@
{}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST="[]"

View File

@ -1,34 +0,0 @@
self.__BUILD_MANIFEST = {
"polyfillFiles": [
"static/chunks/polyfills.js"
],
"devFiles": [
"static/chunks/react-refresh.js"
],
"ampDevFiles": [],
"lowPriorityFiles": [],
"rootMainFiles": [],
"pages": {
"/": [
"static/chunks/webpack.js",
"static/chunks/main.js",
"static/chunks/pages/index.js"
],
"/_app": [
"static/chunks/webpack.js",
"static/chunks/main.js",
"static/chunks/pages/_app.js"
],
"/_error": [
"static/chunks/webpack.js",
"static/chunks/main.js",
"static/chunks/pages/_error.js"
]
},
"ampFirstPages": []
};
self.__BUILD_MANIFEST.lowPriorityFiles = [
"/static/" + process.env.__NEXT_BUILD_ID + "/_buildManifest.js",
,"/static/" + process.env.__NEXT_BUILD_ID + "/_ssgManifest.js",
];

View File

@ -1,6 +0,0 @@
{
"version": 3,
"middleware": {},
"functions": {},
"sortedMiddleware": []
}

View File

@ -1 +0,0 @@
self.__REACT_LOADABLE_MANIFEST="{}"

View File

@ -1 +0,0 @@
self.__NEXT_FONT_MANIFEST="{\"pages\":{},\"app\":{},\"appUsingSizeAdjust\":false,\"pagesUsingSizeAdjust\":false}"

View File

@ -1 +0,0 @@
{"pages":{},"app":{},"appUsingSizeAdjust":false,"pagesUsingSizeAdjust":false}

View File

@ -1,6 +0,0 @@
{
"/_document": "pages/_document.js",
"/_app": "pages/_app.js",
"/_error": "pages/_error.js",
"/": "pages/index.js"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,35 +0,0 @@
"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "vendor-chunks/@swc";
exports.ids = ["vendor-chunks/@swc"];
exports.modules = {
/***/ "./node_modules/@swc/helpers/cjs/_interop_require_default.cjs":
/*!********************************************************************!*\
!*** ./node_modules/@swc/helpers/cjs/_interop_require_default.cjs ***!
\********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
eval("\n\nexports._ = exports._interop_require_default = _interop_require_default;\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuY2pzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFNBQVMsR0FBRyxnQ0FBZ0M7QUFDNUM7QUFDQSwyQ0FBMkM7QUFDM0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mYW5jeXRleHQtZ2VuZXJhdG9yLy4vbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9janMvX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0LmNqcz8zYmQ2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl8gPSBleHBvcnRzLl9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdDtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\n");
/***/ }),
/***/ "./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs":
/*!*********************************************************************!*\
!*** ./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
eval("\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nexports._ = exports._interop_require_wildcard = _interop_require_wildcard;\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmNqcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFNBQVMsR0FBRyxpQ0FBaUM7QUFDN0M7QUFDQTtBQUNBLHVGQUF1Rjs7QUFFdkY7O0FBRUE7O0FBRUEsbUJBQW1CO0FBQ25COztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mYW5jeXRleHQtZ2VuZXJhdG9yLy4vbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9janMvX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZC5janM/Nzc5NyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsO1xuXG4gICAgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5leHBvcnRzLl8gPSBleHBvcnRzLl9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQgPSBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHJldHVybiBvYmo7XG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHsgZGVmYXVsdDogb2JqIH07XG5cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuXG4gICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG5cbiAgICB2YXIgbmV3T2JqID0geyBfX3Byb3RvX186IG51bGwgfTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIGVsc2UgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuXG4gICAgaWYgKGNhY2hlKSBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuXG4gICAgcmV0dXJuIG5ld09iajtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\n");
/***/ })
};
;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,237 +0,0 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
/******/ (() => { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({});
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ var threw = true;
/******/ try {
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ threw = false;
/******/ } finally {
/******/ if(threw) delete __webpack_module_cache__[moduleId];
/******/ }
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = __webpack_modules__;
/******/
/************************************************************************/
/******/ /* webpack/runtime/async module */
/******/ (() => {
/******/ var webpackQueues = typeof Symbol === "function" ? Symbol("webpack queues") : "__webpack_queues__";
/******/ var webpackExports = typeof Symbol === "function" ? Symbol("webpack exports") : "__webpack_exports__";
/******/ var webpackError = typeof Symbol === "function" ? Symbol("webpack error") : "__webpack_error__";
/******/ var resolveQueue = (queue) => {
/******/ if(queue && queue.d < 1) {
/******/ queue.d = 1;
/******/ queue.forEach((fn) => (fn.r--));
/******/ queue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));
/******/ }
/******/ }
/******/ var wrapDeps = (deps) => (deps.map((dep) => {
/******/ if(dep !== null && typeof dep === "object") {
/******/ if(dep[webpackQueues]) return dep;
/******/ if(dep.then) {
/******/ var queue = [];
/******/ queue.d = 0;
/******/ dep.then((r) => {
/******/ obj[webpackExports] = r;
/******/ resolveQueue(queue);
/******/ }, (e) => {
/******/ obj[webpackError] = e;
/******/ resolveQueue(queue);
/******/ });
/******/ var obj = {};
/******/ obj[webpackQueues] = (fn) => (fn(queue));
/******/ return obj;
/******/ }
/******/ }
/******/ var ret = {};
/******/ ret[webpackQueues] = x => {};
/******/ ret[webpackExports] = dep;
/******/ return ret;
/******/ }));
/******/ __webpack_require__.a = (module, body, hasAwait) => {
/******/ var queue;
/******/ hasAwait && ((queue = []).d = -1);
/******/ var depQueues = new Set();
/******/ var exports = module.exports;
/******/ var currentDeps;
/******/ var outerResolve;
/******/ var reject;
/******/ var promise = new Promise((resolve, rej) => {
/******/ reject = rej;
/******/ outerResolve = resolve;
/******/ });
/******/ promise[webpackExports] = exports;
/******/ promise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise["catch"](x => {}));
/******/ module.exports = promise;
/******/ body((deps) => {
/******/ currentDeps = wrapDeps(deps);
/******/ var fn;
/******/ var getResult = () => (currentDeps.map((d) => {
/******/ if(d[webpackError]) throw d[webpackError];
/******/ return d[webpackExports];
/******/ }))
/******/ var promise = new Promise((resolve) => {
/******/ fn = () => (resolve(getResult));
/******/ fn.r = 0;
/******/ var fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));
/******/ currentDeps.map((dep) => (dep[webpackQueues](fnQueue)));
/******/ });
/******/ return fn.r ? promise : getResult();
/******/ }, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));
/******/ queue && queue.d < 0 && (queue.d = 0);
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ var getter = module && module.__esModule ?
/******/ () => (module['default']) :
/******/ () => (module);
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/ensure chunk */
/******/ (() => {
/******/ __webpack_require__.f = {};
/******/ // This file contains only the entry chunk.
/******/ // The chunk loading function for additional chunks
/******/ __webpack_require__.e = (chunkId) => {
/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {
/******/ __webpack_require__.f[key](chunkId, promises);
/******/ return promises;
/******/ }, []));
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/get javascript chunk filename */
/******/ (() => {
/******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
/******/ __webpack_require__.u = (chunkId) => {
/******/ // return url for filenames based on template
/******/ return "" + chunkId + ".js";
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/startup entrypoint */
/******/ (() => {
/******/ __webpack_require__.X = (result, chunkIds, fn) => {
/******/ // arguments: chunkIds, moduleId are deprecated
/******/ var moduleId = chunkIds;
/******/ if(!fn) chunkIds = result, fn = () => (__webpack_require__(__webpack_require__.s = moduleId));
/******/ chunkIds.map(__webpack_require__.e, __webpack_require__)
/******/ var r = fn();
/******/ return r === undefined ? result : r;
/******/ }
/******/ })();
/******/
/******/ /* webpack/runtime/require chunk loading */
/******/ (() => {
/******/ // no baseURI
/******/
/******/ // object to store loaded chunks
/******/ // "1" means "loaded", otherwise not loaded yet
/******/ var installedChunks = {
/******/ "webpack-runtime": 1
/******/ };
/******/
/******/ // no on chunks loaded
/******/
/******/ var installChunk = (chunk) => {
/******/ var moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;
/******/ for(var moduleId in moreModules) {
/******/ if(__webpack_require__.o(moreModules, moduleId)) {
/******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
/******/ }
/******/ }
/******/ if(runtime) runtime(__webpack_require__);
/******/ for(var i = 0; i < chunkIds.length; i++)
/******/ installedChunks[chunkIds[i]] = 1;
/******/
/******/ };
/******/
/******/ // require() chunk loading for javascript
/******/ __webpack_require__.f.require = (chunkId, promises) => {
/******/ // "1" is the signal for "already loaded"
/******/ if(!installedChunks[chunkId]) {
/******/ if("webpack-runtime" != chunkId) {
/******/ installChunk(require("./" + __webpack_require__.u(chunkId)));
/******/ } else installedChunks[chunkId] = 1;
/******/ }
/******/ };
/******/
/******/ module.exports = __webpack_require__;
/******/ __webpack_require__.C = installChunk;
/******/
/******/ // no HMR
/******/
/******/ // no HMR manifest
/******/ })();
/******/
/************************************************************************/
/******/
/******/
/******/ })()
;

View File

@ -1,28 +0,0 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["/_error"],{
/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2Fmnt%2Fc%2FUsers%2Fa931627%2FDocuments%2Ffancytextstuff%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error!":
/*!******************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2Fmnt%2Fc%2FUsers%2Fa931627%2FDocuments%2Ffancytextstuff%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error! ***!
\******************************************************************************************************************************************************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
eval(__webpack_require__.ts("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_error\",\n function () {\n return __webpack_require__(/*! ./node_modules/next/dist/pages/_error.js */ \"./node_modules/next/dist/pages/_error.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_error\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/YWJzb2x1dGVQYWdlUGF0aD0lMkZtbnQlMkZjJTJGVXNlcnMlMkZhOTMxNjI3JTJGRG9jdW1lbnRzJTJGZmFuY3l0ZXh0c3R1ZmYlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRnBhZ2VzJTJGX2Vycm9yLmpzJnBhZ2U9JTJGX2Vycm9yISIsIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtQkFBTyxDQUFDLDBGQUEwQztBQUNqRTtBQUNBO0FBQ0EsT0FBTyxJQUFVO0FBQ2pCLE1BQU0sVUFBVTtBQUNoQjtBQUNBLE9BQU87QUFDUDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8/ZGU5MSJdLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICAod2luZG93Ll9fTkVYVF9QID0gd2luZG93Ll9fTkVYVF9QIHx8IFtdKS5wdXNoKFtcbiAgICAgIFwiL19lcnJvclwiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZShcIi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9wYWdlcy9fZXJyb3IuanNcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL19lcnJvclwiXSlcbiAgICAgIH0pO1xuICAgIH1cbiAgIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2Fmnt%2Fc%2FUsers%2Fa931627%2FDocuments%2Ffancytextstuff%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error!\n"));
/***/ })
},
/******/ function(__webpack_require__) { // webpackRuntimeModules
/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
/******/ __webpack_require__.O(0, ["main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2Fmnt%2Fc%2FUsers%2Fa931627%2FDocuments%2Ffancytextstuff%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error!"); });
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
/******/ }
]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,28 +0,0 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/_error"],{
/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_error&page=%2F_error!":
/*!***********************************************************************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_error&page=%2F_error! ***!
\***********************************************************************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
eval(__webpack_require__.ts("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_error\",\n function () {\n return __webpack_require__(/*! private-next-pages/_error */ \"./node_modules/next/dist/pages/_error.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_error\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/YWJzb2x1dGVQYWdlUGF0aD1wcml2YXRlLW5leHQtcGFnZXMlMkZfZXJyb3ImcGFnZT0lMkZfZXJyb3IhIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsMkVBQTJCO0FBQ2xEO0FBQ0E7QUFDQSxPQUFPLElBQVU7QUFDakIsTUFBTSxVQUFVO0FBQ2hCO0FBQ0EsT0FBTztBQUNQO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLz84MDdiIl0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICh3aW5kb3cuX19ORVhUX1AgPSB3aW5kb3cuX19ORVhUX1AgfHwgW10pLnB1c2goW1xuICAgICAgXCIvX2Vycm9yXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19lcnJvclwiKTtcbiAgICAgIH1cbiAgICBdKTtcbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKCkge1xuICAgICAgICB3aW5kb3cuX19ORVhUX1AucHVzaChbXCIvX2Vycm9yXCJdKVxuICAgICAgfSk7XG4gICAgfVxuICAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_error&page=%2F_error!\n"));
/***/ })
},
/******/ function(__webpack_require__) { // webpackRuntimeModules
/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=private-next-pages%2F_error&page=%2F_error!"); });
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
/******/ }
]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
self.__BUILD_MANIFEST = {__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/":["static\u002Fchunks\u002Fpages\u002Findex.js"],"/_error":["static\u002Fchunks\u002Fpages\u002F_error.js"],sortedPages:["\u002F","\u002F_app","\u002F_error"]};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()

View File

@ -1 +0,0 @@
self.__SSG_MANIFEST=new Set;self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()

View File

@ -1 +0,0 @@
{"c":["webpack"],"r":[],"m":[]}

View File

@ -1 +0,0 @@
{"c":[],"r":[],"m":[]}

View File

@ -1,18 +0,0 @@
"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
self["webpackHotUpdate_N_E"]("webpack",{},
/******/ function(__webpack_require__) { // webpackRuntimeModules
/******/ /* webpack/runtime/getFullHash */
/******/ !function() {
/******/ __webpack_require__.h = function() { return "d1363c6e2dfbe09d"; }
/******/ }();
/******/
/******/ }
);

File diff suppressed because one or more lines are too long

View File

@ -96,6 +96,9 @@ const PerformanceOptimizedFontCard = forwardRef(({
const getFontStyle = useCallback((name) => { const getFontStyle = useCallback((name) => {
const baseStyle = { wordBreak: "break-word", lineHeight: "1.3", willChange: "auto" }; const baseStyle = { wordBreak: "break-word", lineHeight: "1.3", willChange: "auto" };
const fontEntry = fontTransforms[name]; const fontEntry = fontTransforms[name];
if (!fontEntry) {
console.warn(`Font definition missing for ${name}`);
}
if (!fontEntry) return baseStyle; if (!fontEntry) return baseStyle;
const style = { ...baseStyle }; const style = { ...baseStyle };

View File

@ -1,6 +1,5 @@
// components/fontTransforms.jsx // components/fontTransforms.jsx
// 1) Unicode-Blöcke
const unicodeBlocks = { const unicodeBlocks = {
sansSerif: { upperStart: 0x1D5A0, lowerStart: 0x1D5BA }, sansSerif: { upperStart: 0x1D5A0, lowerStart: 0x1D5BA },
sansSerifBold: { upperStart: 0x1D5D4, lowerStart: 0x1D5EE }, sansSerifBold: { upperStart: 0x1D5D4, lowerStart: 0x1D5EE },
@ -12,7 +11,6 @@ const unicodeBlocks = {
fullwidth: { upperStart: 0xFF21, lowerStart: 0xFF41 } fullwidth: { upperStart: 0xFF21, lowerStart: 0xFF41 }
}; };
// 2) Unicode-Mapping-Funktion
const mapUnicode = (char, block) => { const mapUnicode = (char, block) => {
const code = char.charCodeAt(0); const code = char.charCodeAt(0);
if (code >= 65 && code <= 90) return String.fromCodePoint(block.upperStart + (code - 65)); if (code >= 65 && code <= 90) return String.fromCodePoint(block.upperStart + (code - 65));
@ -23,27 +21,18 @@ const mapUnicode = (char, block) => {
const createTransform = (blockKey) => (text) => const createTransform = (blockKey) => (text) =>
text.split('').map((c) => mapUnicode(c, unicodeBlocks[blockKey])).join(''); text.split('').map((c) => mapUnicode(c, unicodeBlocks[blockKey])).join('');
// 3) Font-Definitionen
const fontList = [ const fontList = [
"abril-fatface", "alegreya", "alfa-slab-one", "almendra", "amatic-sc", "andika", "Anton", "Bebas Neue", "Dancing Script", "Montserrat", "Orbitron", "Pacifico",
"architects-daughter", "audiowide", "averia-libre", "bebas-neue", "black-ops-one", "Playfair Display", "Poppins"
"caveat", "cinzel-decorative", "courgette", "dancing-script", "exo", "fjalla-one",
"germania-one", "glass-antiqua", "gloria-hallelujah", "great-vibes", "holtwood-one-sc",
"indie-flower", "italiana", "jost", "kaushan-script", "lato", "metal-mania", "montserrat",
"neucha", "noto-sans", "open-sans", "orbitron", "oswald", "pacifico", "permanent-marker",
"philosopher", "playfair-display", "poppins", "press-start-2p", "questrial", "quicksand",
"rajdhani", "raleway", "righteous", "roboto", "sacramento", "satisfy", "space-mono",
"spectral", "staatliches", "stint-ultra-condensed", "syncopate", "ultra", "unica-one",
"work-sans", "yellowtail"
]; ];
// 4) Kategorie-Regeln (vereinfacht)
const getCategory = (name) => { const getCategory = (name) => {
if (["caveat", "dancing-script", "pacifico", "amatic-sc", "kaushan-script", "courgette", "great-vibes", "satisfy", "sacramento", "neucha", "gloria-hallelujah", "almendra", "indie-flower", "architects-daughter"].includes(name)) return "handwriting"; const normalizedName = name.toLowerCase().replace(/ /g, "-");
if (["bebas-neue", "black-ops-one", "holtwood-one-sc", "abril-fatface", "playfair-display", "permanent-marker", "alfa-slab-one", "germania-one", "oswald", "stint-ultra-condensed"].includes(name)) return "statement"; if (["dancing-script", "pacifico"].includes(normalizedName)) return "handwriting";
if (["exo", "orbitron", "audiowide", "rajdhani", "space-mono", "questrial", "syncopate", "unica-one", "italiana", "staatliches"].includes(name)) return "futuristic"; if (["anton", "bebas-neue", "playfair-display"].includes(normalizedName)) return "statement";
if (["press-start-2p", "righteous", "metal-mania", "alegreya", "spectral", "fjalla-one", "glass-antiqua", "cinzel-decorative", "andika"].includes(name)) return "aesthetic"; if (["orbitron"].includes(normalizedName)) return "futuristic";
return "modern"; if (["montserrat", "poppins"].includes(normalizedName)) return "modern";
return "aesthetic";
}; };
const blockForCategory = { const blockForCategory = {
@ -56,14 +45,13 @@ const blockForCategory = {
export const fontTransforms = Object.fromEntries( export const fontTransforms = Object.fromEntries(
fontList.map((font) => { fontList.map((font) => {
const name = font.replace(/-/g, " ").replace(/\b\w/g, (l) => l.toUpperCase()); const normalizedFont = font.toLowerCase().replace(/ /g, "-");
const category = getCategory(font); const category = getCategory(font);
const block = blockForCategory[category]; return [font, {
return [name, { transform: (text) => text, // Echte Fonts verwenden, keine Unicode-Transformation
transform: createTransform(block),
category, category,
description: `${name} Unicode-Stil automatisch zugewiesen` , description: `${font} Echte Schriftart verwendet`,
className: `font-${font}` className: `font-${normalizedFont}`
}]; }];
}) })
); );
@ -77,7 +65,7 @@ export const transformText = (text, fontName) => {
}; };
}; };
export const getPopularFonts = () => Object.keys(fontTransforms).slice(0, 10); export const getPopularFonts = () => Object.keys(fontTransforms).slice(0, 5);
export const getFontsByCategory = (category) => export const getFontsByCategory = (category) =>
category === "all" category === "all"

View File

@ -1,73 +0,0 @@
// lib/fonts.js
export const fonts = {
// 🔤 Modern
montserrat: "font-montserrat",
lato: "font-lato",
raleway: "font-raleway",
poppins: "font-poppins",
opensans: "font-open-sans",
roboto: "font-roboto",
worksans: "font-work-sans",
notosans: "font-noto-sans",
jost: "font-jost",
quicksand: "font-quicksand",
averialibre: "font-averia-libre",
philosopher: "font-philosopher",
// ✍️ Handwriting
pacifico: "font-pacifico",
sacramento: "font-sacramento",
caveat: "font-caveat",
dancingscript: "font-dancing-script",
indieflower: "font-indie-flower",
amatic: "font-amatic-sc",
kaushan: "font-kaushan-script",
architects: "font-architects-daughter",
neucha: "font-neucha",
greatvibes: "font-great-vibes",
satisfy: "font-satisfy",
yellowtail: "font-yellowtail",
gloria: "font-gloria-hallelujah",
courgette: "font-courgette",
almendra: "font-almendra",
// 🧑‍🎤 Statement
oswald: "font-oswald",
bebasneue: "font-bebas-neue",
ultra: "font-ultra",
stint: "font-stint-ultra-condensed",
playfair: "font-playfair-display",
abril: "font-abril-fatface",
permanentmarker: "font-permanent-marker",
alfaslab: "font-alfa-slab-one",
blackops: "font-black-ops-one",
germania: "font-germania-one",
holtwood: "font-holtwood-one-sc",
// 🚀 Futuristic
exo: "font-exo",
orbitron: "font-orbitron",
audiowide: "font-audiowide",
rajdhani: "font-rajdhani",
spacemono: "font-space-mono",
questrial: "font-questrial",
syncopate: "font-syncopate",
unicaone: "font-unica-one",
italiana: "font-italiana",
staatliches: "font-staatliches",
// 🧢 Aesthetic
pressstart2p: "font-press-start-2p",
righteous: "font-righteous",
metalmania: "font-metal-mania",
alegreya: "font-alegreya",
spectral: "font-spectral",
fjallaone: "font-fjalla-one",
glassantiqua: "font-glass-antiqua",
cinzeldecorative: "font-cinzel-decorative",
andika: "font-andika",
};
export const getFontData = (key) =>
fonts[key?.toLowerCase()] ?? fonts["montserrat"];

View File

@ -1,68 +0,0 @@
/**
* Enthält **nur** die CSSVariablenNamen, die next/font im Browser setzt.
* In fonts.js oder per @font-face werden sie erzeugt hier referenzieren wir sie.
*/
export default {
montserrat: "--font-montserrat",
lato: "--font-lato",
raleway: "--font-raleway",
poppins: "--font-poppins",
"open-sans": "--font-open-sans",
roboto: "--font-roboto",
"work-sans": "--font-work-sans",
"noto-sans": "--font-noto-sans",
jost: "--font-jost",
quicksand: "--font-quicksand",
"averia-libre": "--font-averia-libre",
philosopher: "--font-philosopher",
pacifico: "--font-pacifico",
sacramento: "--font-sacramento",
caveat: "--font-caveat",
"dancing-script": "--font-dancing-script",
"indie-flower": "--font-indie-flower",
"amatic-sc": "--font-amatic-sc",
"kaushan-script": "--font-kaushan-script",
"architects-daughter": "--font-architects-daughter",
neucha: "--font-neucha",
"great-vibes": "--font-great-vibes",
satisfy: "--font-satisfy",
yellowtail: "--font-yellowtail",
"gloria-hallelujah": "--font-gloria-hallelujah",
oswald: "--font-oswald",
"bebas-neue": "--font-bebas-neue",
ultra: "--font-ultra",
"stint-ultra-condensed": "--font-stint-ultra-condensed",
"playfair-display": "--font-playfair-display",
"abril-fatface": "--font-abril-fatface",
"permanent-marker": "--font-permanent-marker",
"alfa-slab-one": "--font-alfa-slab-one",
"black-ops-one": "--font-black-ops-one",
"germania-one": "--font-germania-one",
"holtwood-one-sc": "--font-holtwood-one-sc",
courgette: "--font-courgette",
exo: "--font-exo",
orbitron: "--font-orbitron",
audiowide: "--font-audiowide",
rajdhani: "--font-rajdhani",
"space-mono": "--font-space-mono",
questrial: "--font-questrial",
syncopate: "--font-syncopate",
"unica-one": "--font-unica-one",
italiana: "--font-italiana",
staatliches: "--font-staatliches",
"press-start-2p": "--font-press-start-2p",
righteous: "--font-righteous",
"metal-mania": "--font-metal-mania",
alegreya: "--font-alegreya",
spectral: "--font-spectral",
"fjalla-one": "--font-fjalla-one",
"glass-antiqua": "--font-glass-antiqua",
"cinzel-decorative": "--font-cinzel-decorative",
andika: "--font-andika",
almendra: "--font-almendra",
};

View File

@ -1,12 +0,0 @@
// next.config.mjs
import path from "path";
import withFlowbiteReact from "flowbite-react/plugin/nextjs";
const nextConfig = {
webpack: (config) => {
config.resolve.alias["@"] = path.resolve(process.cwd());
return config;
},
};
export default withFlowbiteReact(nextConfig);

View File

@ -1,18 +1,6 @@
// pages/_app.jsx import "@/styles/tailwind.build.css"; // dein Tailwind-Build
import "@/styles/tailwind.build.css"; // dein TailwindBuild import "../styles/globals.css";
import { fonts } from "@/lib/fonts";
import "../styles/local-fonts.css";
// CSS-Variablen für alle Fonts aus next/font/google
const allFontVars = Object.values(fonts)
.filter((f) => f?.variable)
.map((f) => f.variable)
.join(" ");
export default function MyApp({ Component, pageProps }) { export default function MyApp({ Component, pageProps }) {
return ( return <Component {...pageProps} />;
<main className={allFontVars}>
<Component {...pageProps} />
</main>
);
} }

View File

@ -1,639 +1,246 @@
/* in globals.css oder styles/index.css */ /* globals.css */
@import "./local-fonts.css";
@tailwind base; @tailwind base;
@tailwind components; @tailwind components;
@tailwind utilities; @tailwind utilities;
/* === Lokale Fonts via woff2 einbinden === */ /* === Font-Definitionen === */
@font-face { @font-face {
font-family: "AbrilFatface"; font-family: 'Anton';
src: url("/fonts/abril-fatface.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Alegreya";
src: url("/fonts/alegreya.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "AlfaSlabOne";
src: url("/fonts/alfa-slab-one.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Almendra";
src: url("/fonts/almendra.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "AmaticSc";
src: url("/fonts/amatic-sc.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Andika";
src: url("/fonts/andika.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "ArchitectsDaughter";
src: url("/fonts/architects-daughter.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Audiowide";
src: url("/fonts/audiowide.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "AveriaLibre";
src: url("/fonts/averia-libre.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "BebasNeue";
src: url("/fonts/bebas-neue.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "BlackOpsOne";
src: url("/fonts/black-ops-one.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Caveat";
src: url("/fonts/caveat.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "CinzelDecorative";
src: url("/fonts/cinzel-decorative.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Courgette";
src: url("/fonts/courgette.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "DancingScript";
src: url("/fonts/dancing-script.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Exo";
src: url("/fonts/exo.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "FjallaOne";
src: url("/fonts/fjalla-one.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "GermaniaOne";
src: url("/fonts/germania-one.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "GlassAntiqua";
src: url("/fonts/glass-antiqua.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "GloriaHallelujah";
src: url("/fonts/gloria-hallelujah.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "GreatVibes";
src: url("/fonts/great-vibes.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "HoltwoodOneSc";
src: url("/fonts/holtwood-one-sc.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "IndieFlower";
src: url("/fonts/indie-flower.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Italiana";
src: url("/fonts/italiana.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Jost";
src: url("/fonts/jost.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "KaushanScript";
src: url("/fonts/kaushan-script.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Lato";
src: url("/fonts/lato.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "MetalMania";
src: url("/fonts/metal-mania.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Montserrat";
src: url("/fonts/montserrat.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Neucha";
src: url("/fonts/neucha.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "NotoSans";
src: url("/fonts/noto-sans.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "OpenSans";
src: url("/fonts/open-sans.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Orbitron";
src: url("/fonts/orbitron.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Oswald";
src: url("/fonts/oswald.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Pacifico";
src: url("/fonts/pacifico.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "PermanentMarker";
src: url("/fonts/permanent-marker.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Philosopher";
src: url("/fonts/philosopher.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "PlayfairDisplay";
src: url("/fonts/playfair-display.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Poppins";
src: url("/fonts/poppins.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "PressStart2P";
src: url("/fonts/press-start-2p.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Questrial";
src: url("/fonts/questrial.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Quicksand";
src: url("/fonts/quicksand.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Rajdhani";
src: url("/fonts/rajdhani.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Raleway";
src: url("/fonts/raleway.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Righteous";
src: url("/fonts/righteous.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Roboto";
src: url("/fonts/roboto.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Sacramento";
src: url("/fonts/sacramento.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Satisfy";
src: url("/fonts/satisfy.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "SpaceMono";
src: url("/fonts/space-mono.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Spectral";
src: url("/fonts/spectral.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Staatliches";
src: url("/fonts/staatliches.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "StintUltraCondensed";
src: url("/fonts/stint-ultra-condensed.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Syncopate";
src: url("/fonts/syncopate.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Ultra";
src: url("/fonts/ultra.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "UnicaOne";
src: url("/fonts/unica-one.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "WorkSans";
src: url("/fonts/work-sans.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Yellowtail";
src: url("/fonts/yellowtail.woff2") format("woff2");
font-weight: 400;
font-style: normal; font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/anton/v26/1Ptgg87LROyAm3K8-C8QSw.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Anton';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/anton/v26/1Ptgg87LROyAm3K9-C8QSw.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Anton';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/anton/v26/1Ptgg87LROyAm3Kz-C8.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Bebas Neue';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/bebasneue/v15/JTUSjIg69CK48gW7PXoo9Wdhyzbi.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Bebas Neue';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/bebasneue/v15/JTUSjIg69CK48gW7PXoo9Wlhyw.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Dancing Script';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/dancingscript/v28/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3Rep8ltA.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Dancing Script';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/dancingscript/v28/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3ROp8ltA.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Dancing Script';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/dancingscript/v28/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3Sup8.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 500;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/montserrat/v30/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtZ6Hw0aXpsog.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 500;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/montserrat/v30/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtZ6Hw9aXpsog.woff2) format('woff2');
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 500;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/montserrat/v30/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtZ6Hw2aXpsog.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 500;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/montserrat/v30/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtZ6Hw3aXpsog.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 500;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/montserrat/v30/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtZ6Hw5aXo.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Orbitron';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/orbitron/v34/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nyGy6BoWgz.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Pacifico';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/pacifico/v22/FwZY7-Qmy14u9lezJ-6K6MmTpA.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: 'Pacifico';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/pacifico/v22/FwZY7-Qmy14u9lezJ-6D6MmTpA.woff2) format('woff2');
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: 'Pacifico';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/pacifico/v22/FwZY7-Qmy14u9lezJ-6I6MmTpA.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Pacifico';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/pacifico/v22/FwZY7-Qmy14u9lezJ-6J6MmTpA.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Pacifico';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/pacifico/v22/FwZY7-Qmy14u9lezJ-6H6Mk.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Playfair Display';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/playfairdisplay/v39/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKdFvXDTbtPY_Q.woff2) format('woff2');
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: 'Playfair Display';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/playfairdisplay/v39/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKdFvXDYbtPY_Q.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Playfair Display';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/playfairdisplay/v39/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKdFvXDZbtPY_Q.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Playfair Display';
font-style: normal;
font-weight: 400;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/playfairdisplay/v39/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKdFvXDXbtM.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 500;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/poppins/v23/pxiByp8kv8JHgFVrLGT9Z11lFc-K.woff2) format('woff2');
unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 500;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/poppins/v23/pxiByp8kv8JHgFVrLGT9Z1JlFc-K.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 500;
font-display: swap;
src: ur[](https://fonts.gstatic.com/s/poppins/v23/pxiByp8kv8JHgFVrLGT9Z1xlFQ.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
} }
/* === Tailwind Utility-Klassen === */
@layer utilities { @layer utilities {
.font-abril-fatface { .font-anton {
font-family: "AbrilFatface", serif; font-family: 'Anton', sans-serif;
} }
.font-alegreya {
font-family: "Alegreya", sans-serif;
}
.font-alfa-slab-one {
font-family: "AlfaSlabOne", sans-serif;
}
.font-almendra {
font-family: "Almendra", serif;
}
.font-amatic-sc {
font-family: "AmaticSc", cursive;
}
.font-andika {
font-family: "Andika", sans-serif;
}
.font-architects-daughter {
font-family: "ArchitectsDaughter", cursive;
}
.font-audiowide {
font-family: "Audiowide", sans-serif;
}
.font-averia-libre {
font-family: "AveriaLibre", cursive;
}
.font-bebas-neue { .font-bebas-neue {
font-family: "BebasNeue", sans-serif; font-family: 'Bebas Neue', sans-serif;
} }
.font-black-ops-one {
font-family: "BlackOpsOne", sans-serif;
}
.font-caveat {
font-family: "Caveat", cursive;
}
.font-cinzel-decorative {
font-family: "CinzelDecorative", serif;
}
.font-courgette {
font-family: "Courgette", cursive;
}
.font-dancing-script { .font-dancing-script {
font-family: "DancingScript", cursive; font-family: 'Dancing Script', cursive;
} }
.font-exo {
font-family: "Exo", sans-serif;
}
.font-fjalla-one {
font-family: "FjallaOne", sans-serif;
}
.font-germania-one {
font-family: "GermaniaOne", sans-serif;
}
.font-glass-antiqua {
font-family: "GlassAntiqua", cursive;
}
.font-gloria-hallelujah {
font-family: "GloriaHallelujah", cursive;
}
.font-great-vibes {
font-family: "GreatVibes", cursive;
}
.font-holtwood-one-sc {
font-family: "HoltwoodOneSc", sans-serif;
}
.font-indie-flower {
font-family: "IndieFlower", cursive;
}
.font-italiana {
font-family: "Italiana", serif;
}
.font-jost {
font-family: "Jost", sans-serif;
}
.font-kaushan-script {
font-family: "KaushanScript", cursive;
}
.font-lato {
font-family: "Lato", sans-serif;
}
.font-metal-mania {
font-family: "MetalMania", sans-serif;
}
.font-montserrat { .font-montserrat {
font-family: "Montserrat", sans-serif; font-family: 'Montserrat', sans-serif;
} }
.font-neucha {
font-family: "Neucha", sans-serif;
}
.font-noto-sans {
font-family: "NotoSans", sans-serif;
}
.font-open-sans {
font-family: "OpenSans", sans-serif;
}
.font-orbitron { .font-orbitron {
font-family: "Orbitron", sans-serif; font-family: 'Orbitron', sans-serif;
} }
.font-oswald {
font-family: "Oswald", sans-serif;
}
.font-pacifico { .font-pacifico {
font-family: "Pacifico", cursive; font-family: 'Pacifico', cursive;
} }
.font-permanent-marker {
font-family: "PermanentMarker", sans-serif;
}
.font-philosopher {
font-family: "Philosopher", serif;
}
.font-playfair-display { .font-playfair-display {
font-family: "PlayfairDisplay", serif; font-family: 'Playfair Display', serif;
} }
.font-poppins { .font-poppins {
font-family: "Poppins", sans-serif; font-family: 'Poppins', sans-serif;
}
.font-press-start-2p {
font-family: "PressStart2P", monospace;
}
.font-questrial {
font-family: "Questrial", sans-serif;
}
.font-quicksand {
font-family: "Quicksand", sans-serif;
}
.font-rajdhani {
font-family: "Rajdhani", sans-serif;
}
.font-raleway {
font-family: "Raleway", serif;
}
.font-righteous {
font-family: "Righteous", sans-serif;
}
.font-roboto {
font-family: "Roboto", sans-serif;
}
.font-sacramento {
font-family: "Sacramento", cursive;
}
.font-satisfy {
font-family: "Satisfy", cursive;
}
.font-space-mono {
font-family: "SpaceMono", sans-serif;
}
.font-spectral {
font-family: "Spectral", sans-serif;
}
.font-staatliches {
font-family: "Staatliches", serif;
}
.font-stint-ultra-condensed {
font-family: "StintUltraCondensed", sans-serif;
}
.font-syncopate {
font-family: "Syncopate", sans-serif;
}
.font-ultra {
font-family: "Ultra", serif;
}
.font-unica-one {
font-family: "UnicaOne", sans-serif;
}
.font-work-sans {
font-family: "WorkSans", sans-serif;
}
.font-yellowtail {
font-family: "Yellowtail", cursive;
} }
} }
/* Komponenten */ /* Komponenten */
@layer components { @layer components {
.text-shadow-lg { .text-shadow-lg {

View File

@ -1,522 +0,0 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
/* ========== FONT-FACE DEFINITIONS ========== */
@font-face {
font-family: "abril-fatface";
src: url("/fonts/abril-fatface.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "alegreya";
src: url("/fonts/alegreya.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "alfa-slab-one";
src: url("/fonts/alfa-slab-one.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "almendra";
src: url("/fonts/almendra.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "amatic-sc";
src: url("/fonts/amatic-sc.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "andika";
src: url("/fonts/andika.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "architects-daughter";
src: url("/fonts/architects-daughter.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "audiowide";
src: url("/fonts/audiowide.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "averia-libre";
src: url("/fonts/averia-libre.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "bebas-neue";
src: url("/fonts/bebas-neue.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "black-ops-one";
src: url("/fonts/black-ops-one.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "caveat";
src: url("/fonts/caveat.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "cinzel-decorative";
src: url("/fonts/cinzel-decorative.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "courgette";
src: url("/fonts/courgette.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "dancing-script";
src: url("/fonts/dancing-script.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "exo";
src: url("/fonts/exo.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "fjalla-one";
src: url("/fonts/fjalla-one.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "germania-one";
src: url("/fonts/germania-one.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "glass-antiqua";
src: url("/fonts/glass-antiqua.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "gloria-hallelujah";
src: url("/fonts/gloria-hallelujah.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "great-vibes";
src: url("/fonts/great-vibes.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "holtwood-one-sc";
src: url("/fonts/holtwood-one-sc.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "indie-flower";
src: url("/fonts/indie-flower.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "italiana";
src: url("/fonts/italiana.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "jost";
src: url("/fonts/jost.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "kaushan-script";
src: url("/fonts/kaushan-script.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "lato";
src: url("/fonts/lato.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "metal-mania";
src: url("/fonts/metal-mania.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "montserrat";
src: url("/fonts/montserrat.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "neucha";
src: url("/fonts/neucha.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "noto-sans";
src: url("/fonts/noto-sans.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "open-sans";
src: url("/fonts/open-sans.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "orbitron";
src: url("/fonts/orbitron.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "oswald";
src: url("/fonts/oswald.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "pacifico";
src: url("/fonts/pacifico.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "permanent-marker";
src: url("/fonts/permanent-marker.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "philosopher";
src: url("/fonts/philosopher.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "playfair-display";
src: url("/fonts/playfair-display.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "poppins";
src: url("/fonts/poppins.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "press-start-2p";
src: url("/fonts/press-start-2p.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "questrial";
src: url("/fonts/questrial.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "quicksand";
src: url("/fonts/quicksand.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "rajdhani";
src: url("/fonts/rajdhani.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "raleway";
src: url("/fonts/raleway.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "righteous";
src: url("/fonts/righteous.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "roboto";
src: url("/fonts/roboto.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "sacramento";
src: url("/fonts/sacramento.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "satisfy";
src: url("/fonts/satisfy.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "space-mono";
src: url("/fonts/space-mono.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "spectral";
src: url("/fonts/spectral.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "staatliches";
src: url("/fonts/staatliches.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "stint-ultra-condensed";
src: url("/fonts/stint-ultra-condensed.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "syncopate";
src: url("/fonts/syncopate.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "ultra";
src: url("/fonts/ultra.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "unica-one";
src: url("/fonts/unica-one.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "work-sans";
src: url("/fonts/work-sans.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "yellowtail";
src: url("/fonts/yellowtail.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
/* ========== TAILWIND UTILITY CLASSES ========== */
@layer utilities {
.font-abril-fatface {
font-family: "abril-fatface", sans-serif;
}
.font-alegreya {
font-family: "alegreya", sans-serif;
}
.font-alfa-slab-one {
font-family: "alfa-slab-one", sans-serif;
}
.font-almendra {
font-family: "almendra", sans-serif;
}
.font-amatic-sc {
font-family: "amatic-sc", sans-serif;
}
.font-andika {
font-family: "andika", sans-serif;
}
.font-architects-daughter {
font-family: "architects-daughter", sans-serif;
}
.font-audiowide {
font-family: "audiowide", sans-serif;
}
.font-averia-libre {
font-family: "averia-libre", sans-serif;
}
.font-bebas-neue {
font-family: "bebas-neue", sans-serif;
}
.font-black-ops-one {
font-family: "black-ops-one", sans-serif;
}
.font-caveat {
font-family: "caveat", sans-serif;
}
.font-cinzel-decorative {
font-family: "cinzel-decorative", sans-serif;
}
.font-courgette {
font-family: "courgette", sans-serif;
}
.font-dancing-script {
font-family: "dancing-script", sans-serif;
}
.font-exo {
font-family: "exo", sans-serif;
}
.font-fjalla-one {
font-family: "fjalla-one", sans-serif;
}
.font-germania-one {
font-family: "germania-one", sans-serif;
}
.font-glass-antiqua {
font-family: "glass-antiqua", sans-serif;
}
.font-gloria-hallelujah {
font-family: "gloria-hallelujah", sans-serif;
}
.font-great-vibes {
font-family: "great-vibes", sans-serif;
}
.font-holtwood-one-sc {
font-family: "holtwood-one-sc", sans-serif;
}
.font-indie-flower {
font-family: "indie-flower", sans-serif;
}
.font-italiana {
font-family: "italiana", sans-serif;
}
.font-jost {
font-family: "jost", sans-serif;
}
.font-kaushan-script {
font-family: "kaushan-script", sans-serif;
}
.font-lato {
font-family: "lato", sans-serif;
}
.font-metal-mania {
font-family: "metal-mania", sans-serif;
}
.font-montserrat {
font-family: "montserrat", sans-serif;
}
.font-neucha {
font-family: "neucha", sans-serif;
}
.font-noto-sans {
font-family: "noto-sans", sans-serif;
}
.font-open-sans {
font-family: "open-sans", sans-serif;
}
.font-orbitron {
font-family: "orbitron", sans-serif;
}
.font-oswald {
font-family: "oswald", sans-serif;
}
.font-pacifico {
font-family: "pacifico", sans-serif;
}
.font-permanent-marker {
font-family: "permanent-marker", sans-serif;
}
.font-philosopher {
font-family: "philosopher", sans-serif;
}
.font-playfair-display {
font-family: "playfair-display", sans-serif;
}
.font-poppins {
font-family: "poppins", sans-serif;
}
.font-press-start-2p {
font-family: "press-start-2p", sans-serif;
}
.font-questrial {
font-family: "questrial", sans-serif;
}
.font-quicksand {
font-family: "quicksand", sans-serif;
}
.font-rajdhani {
font-family: "rajdhani", sans-serif;
}
.font-raleway {
font-family: "raleway", sans-serif;
}
.font-righteous {
font-family: "righteous", sans-serif;
}
.font-roboto {
font-family: "roboto", sans-serif;
}
.font-sacramento {
font-family: "sacramento", sans-serif;
}
.font-satisfy {
font-family: "satisfy", sans-serif;
}
.font-space-mono {
font-family: "space-mono", sans-serif;
}
.font-spectral {
font-family: "spectral", sans-serif;
}
.font-staatliches {
font-family: "staatliches", sans-serif;
}
.font-stint-ultra-condensed {
font-family: "stint-ultra-condensed", sans-serif;
}
.font-syncopate {
font-family: "syncopate", sans-serif;
}
.font-ultra {
font-family: "ultra", sans-serif;
}
.font-unica-one {
font-family: "unica-one", sans-serif;
}
.font-work-sans {
font-family: "work-sans", sans-serif;
}
.font-yellowtail {
font-family: "yellowtail", sans-serif;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -8,13 +8,22 @@ module.exports = {
], ],
theme: { theme: {
extend: { extend: {
// Keine fontFamily-Einträge mehr hier nötig! fontFamily: {
'anton': ['"Anton"', 'sans-serif'],
'bebas-neue': ['"Bebas Neue"', 'sans-serif'],
'dancing-script': ['"Dancing Script"', 'cursive'],
'montserrat': ['"Montserrat"', 'sans-serif'],
'orbitron': ['"Orbitron"', 'sans-serif'],
'pacifico': ['"Pacifico"', 'cursive'],
'playfair-display': ['"Playfair Display"', 'serif'],
'poppins': ['"Poppins"', 'sans-serif'],
},
}, },
}, },
plugins: [], plugins: [],
safelist: [ safelist: [
{ {
pattern: /^font-/, pattern: /^font-(anton|bebas-neue|dancing-script|montserrat|orbitron|pacifico|playfair-display|poppins)$/,
variants: ["sm", "md", "lg", "xl"], variants: ["sm", "md", "lg", "xl"],
}, },
], ],

View File

@ -1,25 +0,0 @@
import tailwindFonts from "./lib/tailwind-font-map.js"; // ← **ASCIIMinus wichtig!**
/** @type {import('tailwindcss').Config} */
export default {
content: [
"./pages/**/*.{js,jsx,ts,tsx}",
"./components/**/*.{js,jsx,ts,tsx}",
"./entities/**/*.{js,jsx,ts,tsx}",
".flowbite-react/class-list.json",
],
theme: {
extend: {
fontFamily: {
// Dynamische Zuordnung: z.B. roboto: ['var(--font-roboto)']
...Object.fromEntries(
Object.entries(tailwindFonts).map(([key, cssVar]) => [
key,
[`var(${cssVar})`],
])
),
},
},
},
plugins: [],
};