+
+
diff --git a/config/_default/hugo.yml b/config/_default/hugo.yml index 862d6eba3f3..75d1b3cc97b 100644 --- a/config/_default/hugo.yml +++ b/config/_default/hugo.yml @@ -8,6 +8,7 @@ dataDir: data archetypeDir: archetypes disableKinds: ["taxonomy"] enableEmoji: true +timeout: 300s pagination: path: blog markup: @@ -22,33 +23,6 @@ languages: languageName: English weight: 0 -# menus: -# main: -# - name: events -# pageRef: /events -# weight: -150 -# identifier: events -# - name: blog -# pageRef: /blog -# weight: -140 -# identifier: blog -# - name: sponsor -# pageRef: /sponsor -# weight: -130 -# identifier: sponsor -# - name: speaking -# pageRef: /speaking -# weight: -120 -# identifier: speaking -# - name: organizing -# pageRef: /organizing -# weight: -110 -# identifier: organizing -# - name: about -# pageRef: /about -# weight: -100 -# identifier: about - permalinks: page: /:contentbasename/ blog: /blog/:year/:month/:day/:title/ @@ -102,10 +76,7 @@ minify: build: buildStats: - disableClasses: true - disableIDs: true - disableTags: true - enable: true + enable: false cacheBusters: - source: (postcss|tailwind)\.config\.js target: (css|styles|scss|sass) @@ -116,6 +87,9 @@ caches: assets: dir: ":resourceDir/_gen" maxAge: -1 + getresource: + dir: ":resourceDir/_gen" + maxAge: -1 images: dir: ":resourceDir/_gen" maxAge: -1 diff --git a/package-lock.json b/package-lock.json index 59c54f42553..2414e2bfe61 100644 --- a/package-lock.json +++ b/package-lock.json @@ -847,13 +847,6 @@ "resolved": "https://registry.npmjs.org/@import-maps/resolve/-/resolve-1.0.1.tgz", "integrity": "sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==" }, - "node_modules/netlify-cli/node_modules/@ioredis/commands": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", - "optional": true, - "peer": true - }, "node_modules/netlify-cli/node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -3941,11 +3934,10 @@ "cpu": [ "arm" ], - "optional": true, + "extraneous": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-android-arm64": { "version": "4.31.0", @@ -3954,11 +3946,10 @@ "cpu": [ "arm64" ], - "optional": true, + "extraneous": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-darwin-arm64": { "version": "4.31.0", @@ -3967,11 +3958,10 @@ "cpu": [ "arm64" ], - "optional": true, + "extraneous": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-darwin-x64": { "version": "4.31.0", @@ -3980,11 +3970,10 @@ "cpu": [ "x64" ], - "optional": true, + "extraneous": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-freebsd-arm64": { "version": "4.31.0", @@ -3993,11 +3982,10 @@ "cpu": [ "arm64" ], - "optional": true, + "extraneous": true, "os": [ "freebsd" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-freebsd-x64": { "version": "4.31.0", @@ -4006,11 +3994,10 @@ "cpu": [ "x64" ], - "optional": true, + "extraneous": true, "os": [ "freebsd" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-arm-gnueabihf": { "version": "4.31.0", @@ -4019,11 +4006,10 @@ "cpu": [ "arm" ], - "optional": true, + "extraneous": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-arm-musleabihf": { "version": "4.31.0", @@ -4032,11 +4018,10 @@ "cpu": [ "arm" ], - "optional": true, + "extraneous": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-arm64-gnu": { "version": "4.31.0", @@ -4045,11 +4030,10 @@ "cpu": [ "arm64" ], - "optional": true, + "extraneous": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-arm64-musl": { "version": "4.31.0", @@ -4058,11 +4042,10 @@ "cpu": [ "arm64" ], - "optional": true, + "extraneous": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-loongarch64-gnu": { "version": "4.31.0", @@ -4071,11 +4054,10 @@ "cpu": [ "loong64" ], - "optional": true, + "extraneous": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-powerpc64le-gnu": { "version": "4.31.0", @@ -4084,11 +4066,10 @@ "cpu": [ "ppc64" ], - "optional": true, + "extraneous": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-riscv64-gnu": { "version": "4.31.0", @@ -4097,11 +4078,10 @@ "cpu": [ "riscv64" ], - "optional": true, + "extraneous": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-s390x-gnu": { "version": "4.31.0", @@ -4110,11 +4090,10 @@ "cpu": [ "s390x" ], - "optional": true, + "extraneous": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.31.0", @@ -4123,11 +4102,10 @@ "cpu": [ "x64" ], - "optional": true, + "extraneous": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-linux-x64-musl": { "version": "4.31.0", @@ -4136,11 +4114,10 @@ "cpu": [ "x64" ], - "optional": true, + "extraneous": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-win32-arm64-msvc": { "version": "4.31.0", @@ -4149,11 +4126,10 @@ "cpu": [ "arm64" ], - "optional": true, + "extraneous": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-win32-ia32-msvc": { "version": "4.31.0", @@ -4162,11 +4138,10 @@ "cpu": [ "ia32" ], - "optional": true, + "extraneous": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@rollup/rollup-win32-x64-msvc": { "version": "4.31.0", @@ -4175,11 +4150,10 @@ "cpu": [ "x64" ], - "optional": true, + "extraneous": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/netlify-cli/node_modules/@sindresorhus/is": { "version": "5.6.0", @@ -4292,8 +4266,7 @@ "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "optional": true, - "peer": true, + "extraneous": true, "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -4303,8 +4276,7 @@ "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "optional": true, - "peer": true, + "extraneous": true, "dependencies": { "@types/node": "*" } @@ -4318,8 +4290,7 @@ "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "optional": true, - "peer": true, + "extraneous": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -4331,8 +4302,7 @@ "version": "4.17.28", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "optional": true, - "peer": true, + "extraneous": true, "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -4377,8 +4347,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "optional": true, - "peer": true + "extraneous": true }, "node_modules/netlify-cli/node_modules/@types/node": { "version": "22.10.7", @@ -4397,15 +4366,13 @@ "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "optional": true, - "peer": true + "extraneous": true }, "node_modules/netlify-cli/node_modules/@types/range-parser": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "optional": true, - "peer": true + "extraneous": true }, "node_modules/netlify-cli/node_modules/@types/retry": { "version": "0.12.1", @@ -4416,8 +4383,7 @@ "version": "1.13.10", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "optional": true, - "peer": true, + "extraneous": true, "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -6016,16 +5982,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/netlify-cli/node_modules/cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/netlify-cli/node_modules/color": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", @@ -6814,16 +6770,6 @@ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, - "node_modules/netlify-cli/node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10" - } - }, "node_modules/netlify-cli/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -9101,31 +9047,6 @@ "kind-of": "^6.0.2" } }, - "node_modules/netlify-cli/node_modules/ioredis": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", - "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", - "optional": true, - "peer": true, - "dependencies": { - "@ioredis/commands": "^1.1.1", - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.4", - "denque": "^2.1.0", - "lodash.defaults": "^4.2.0", - "lodash.isarguments": "^3.1.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" - } - }, "node_modules/netlify-cli/node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -9869,25 +9790,11 @@ "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=" }, - "node_modules/netlify-cli/node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "optional": true, - "peer": true - }, "node_modules/netlify-cli/node_modules/lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" }, - "node_modules/netlify-cli/node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", - "optional": true, - "peer": true - }, "node_modules/netlify-cli/node_modules/lodash.isboolean": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", @@ -12156,29 +12063,6 @@ "node": ">= 12.13.0" } }, - "node_modules/netlify-cli/node_modules/redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/netlify-cli/node_modules/redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "optional": true, - "peer": true, - "dependencies": { - "redis-errors": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/netlify-cli/node_modules/registry-auth-token": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", @@ -12338,8 +12222,7 @@ "version": "4.31.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz", "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==", - "optional": true, - "peer": true, + "extraneous": true, "dependencies": { "@types/estree": "1.0.6" }, @@ -12886,13 +12769,6 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, - "node_modules/netlify-cli/node_modules/standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", - "optional": true, - "peer": true - }, "node_modules/netlify-cli/node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -15308,13 +15184,6 @@ "resolved": "https://registry.npmjs.org/@import-maps/resolve/-/resolve-1.0.1.tgz", "integrity": "sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==" }, - "@ioredis/commands": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", - "optional": true, - "peer": true - }, "@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -17196,134 +17065,115 @@ "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz", "integrity": "sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-android-arm64": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz", "integrity": "sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-darwin-arm64": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz", "integrity": "sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-darwin-x64": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz", "integrity": "sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-freebsd-arm64": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz", "integrity": "sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-freebsd-x64": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz", "integrity": "sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-linux-arm-gnueabihf": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz", "integrity": "sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-linux-arm-musleabihf": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz", "integrity": "sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-linux-arm64-gnu": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz", "integrity": "sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-linux-arm64-musl": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz", "integrity": "sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-linux-loongarch64-gnu": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz", "integrity": "sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-linux-powerpc64le-gnu": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz", "integrity": "sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-linux-riscv64-gnu": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz", "integrity": "sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-linux-s390x-gnu": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz", "integrity": "sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-linux-x64-gnu": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz", "integrity": "sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-linux-x64-musl": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz", "integrity": "sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-win32-arm64-msvc": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz", "integrity": "sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-win32-ia32-msvc": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz", "integrity": "sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==", - "optional": true, - "peer": true + "extraneous": true }, "@rollup/rollup-win32-x64-msvc": { "version": "4.31.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz", "integrity": "sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==", - "optional": true, - "peer": true + "extraneous": true }, "@sindresorhus/is": { "version": "5.6.0", @@ -17404,8 +17254,7 @@ "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "optional": true, - "peer": true, + "extraneous": true, "requires": { "@types/connect": "*", "@types/node": "*" @@ -17415,8 +17264,7 @@ "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "optional": true, - "peer": true, + "extraneous": true, "requires": { "@types/node": "*" } @@ -17430,8 +17278,7 @@ "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "optional": true, - "peer": true, + "extraneous": true, "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -17443,8 +17290,7 @@ "version": "4.17.28", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "optional": true, - "peer": true, + "extraneous": true, "requires": { "@types/node": "*", "@types/qs": "*", @@ -17489,8 +17335,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "optional": true, - "peer": true + "extraneous": true }, "@types/node": { "version": "22.10.7", @@ -17509,15 +17354,13 @@ "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "optional": true, - "peer": true + "extraneous": true }, "@types/range-parser": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "optional": true, - "peer": true + "extraneous": true }, "@types/retry": { "version": "0.12.1", @@ -17528,8 +17371,7 @@ "version": "1.13.10", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "optional": true, - "peer": true, + "extraneous": true, "requires": { "@types/mime": "^1", "@types/node": "*" @@ -18633,13 +18475,6 @@ } } }, - "cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "optional": true, - "peer": true - }, "color": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", @@ -19192,13 +19027,6 @@ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, - "denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "optional": true, - "peer": true - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -20818,23 +20646,6 @@ "kind-of": "^6.0.2" } }, - "ioredis": { - "version": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", - "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", - "optional": true, - "peer": true, - "requires": { - "@ioredis/commands": "^1.1.1", - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.4", - "denque": "^2.1.0", - "lodash.defaults": "^4.2.0", - "lodash.isarguments": "^3.1.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - } - }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -21354,25 +21165,11 @@ "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=" }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "optional": true, - "peer": true - }, "lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", - "optional": true, - "peer": true - }, "lodash.isboolean": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", @@ -22953,23 +22750,6 @@ "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==" }, - "redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "optional": true, - "peer": true - }, - "redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "optional": true, - "peer": true, - "requires": { - "redis-errors": "^1.0.0" - } - }, "registry-auth-token": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", @@ -23080,8 +22860,7 @@ "version": "4.31.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz", "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==", - "optional": true, - "peer": true, + "extraneous": true, "requires": { "@rollup/rollup-android-arm-eabi": "4.31.0", "@rollup/rollup-android-arm64": "4.31.0", @@ -23493,13 +23272,6 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, - "standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", - "optional": true, - "peer": true - }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", diff --git a/themes/devopsdays-theme/assets/scss/custom.scss b/themes/devopsdays-theme/assets/scss/custom.scss index f2da1a2519e..fed2bcdff21 100644 --- a/themes/devopsdays-theme/assets/scss/custom.scss +++ b/themes/devopsdays-theme/assets/scss/custom.scss @@ -1,13 +1,43 @@ html { - font-size: 14px; - line-height: 1.4; + font-size: 16px; + line-height: 1.6; + scroll-behavior: smooth; } body { font-size: 1em; font-weight: 300; - color: #000000; + color: #1a1a1a; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +// Skip link for keyboard/screen reader accessibility +.skip-link { + position: absolute; + top: -100%; + left: 1rem; + z-index: 10000; + padding: 0.75rem 1.5rem; + background: $devopsdays-blue; + color: #fff; + font-weight: 600; + text-decoration: none; + border-radius: 0 0 4px 4px; + + &:focus { + top: 0; + color: #fff; + outline: 3px solid #ffbf47; + outline-offset: 0; + } +} + +// Global focus styles for keyboard accessibility +*:focus-visible { + outline: 3px solid $devopsdays-blue; + outline-offset: 2px; } .fixed-top-2 { @@ -15,123 +45,173 @@ body { } h1 { - font-size: 2.5em; + font-size: 2.25rem; font-weight: 700; text-transform: capitalize; + line-height: 1.2; + margin-bottom: 0.75rem; } h2 { - font-size: 2em; + font-size: 1.75rem; font-weight: 700; text-transform: capitalize; + line-height: 1.3; + margin-bottom: 0.5rem; } + h3 { - font-size: 1.5em; - font-weight: 300; + font-size: 1.35rem; + font-weight: 400; text-transform: capitalize; + line-height: 1.4; +} + +p, li { + line-height: 1.7; + max-width: 75ch; } a { - color: #0082AB; + color: #006d8f; + transition: color 0.15s ease; + + &:hover { + color: darken(#006d8f, 15%); + } + + &:focus-visible { + outline: 3px solid $devopsdays-blue; + outline-offset: 2px; + } } b, strong { font-weight: 600; } -.event-logo-homepage { - position:relative; - padding: 0; - margin-bottom: 20px; - margin-top: 10px; +img { + max-width: 100%; + height: auto; +} +.event-logo-homepage { + position: relative; + padding: 0; + margin-bottom: 20px; + margin-top: 10px; } -/* set a max-width for horizontal fluid layout and make it centered */ .container-fluid { - max-width: 1600px; /* or 950px */ + max-width: 1400px; + padding-left: 2rem; + padding-right: 2rem; } -/* Navigation */ +// ============================================ +// Navigation +// ============================================ .nav-item { - font-family: 'Roboto', sans-serif; - color: #0082AB; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; + color: #006d8f; } .nav-link { - color: #0082AB; + color: #006d8f; white-space: nowrap; + padding: 0.5rem 0.75rem; + border-radius: 4px; + transition: background-color 0.15s ease, color 0.15s ease; + + &:hover, + &:focus { + color: darken(#006d8f, 15%); + background-color: rgba(0, 130, 171, 0.08); + } } .navbar-brand { - font-family: 'Roboto', sans-serif; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; text-transform: lowercase; + font-weight: 700; + font-size: 1.2rem; + color: #1a1a1a; + display: flex; + align-items: center; + gap: 0.5rem; } .global-navigation { - font-family: 'Roboto', sans-serif; - font-weight: 900; - color: #0082AB; - font-size: .9em; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; + font-weight: 700; + color: #006d8f; + font-size: 0.9rem; text-transform: uppercase; -} - -.navbar>li>a{ - color: red; + letter-spacing: 0.03em; } .event-navigation { font-family: 'Roboto Condensed', sans-serif; - font-weight: 300; - font-size: 9pt; - color: green; + font-weight: 400; + font-size: 0.85rem; text-transform: uppercase; + border-bottom: 2px solid rgba(0, 130, 171, 0.15); + margin-bottom: 1rem; } .event-navigation-icon { padding-left: 5px; padding-right: 5px; - color: #0082AB; + color: $devopsdays-blue; } .navbar-light { - background-color:transparent !important; - border-color:transparent; - background-image:none; - box-shadow:none; + background-color: #fff !important; + border-bottom: 1px solid #e8e8e8; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04); +} + +// ============================================ +// Sidebar / Left navigation +// ============================================ + +.sidebar { + padding-top: 1.5rem; + border-right: 1px solid #e8e8e8; } -/* Left navigation */ -/* TODO: all of these left-nav elements can probably be collapsed */ .left-nav-navs { - font-family: 'Roboto', sans-serif; - font-weight: 300; - font-size: 9pt; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; + font-weight: 600; + font-size: 0.8rem; text-transform: uppercase; - color: #000000; + letter-spacing: 0.05em; + color: #1a1a1a; + display: inline-block; + margin-bottom: 1rem; } .left-nav-months { - font-family: 'Roboto', sans-serif; - font-weight: 300; - font-size: 9pt; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; + font-weight: 400; + font-size: 0.8rem; text-transform: uppercase; - color: #000000; + color: #4a4a4a; margin-top: 1.5rem; } -/* set the current month style */ .left-nav-months.current { - font-weight: 900; - color: #0082AB; + font-weight: 700; + color: $devopsdays-blue; } .left-nav-year { - font-family: 'Roboto', sans-serif; - font-weight: 100; - font-size: 18pt; - color: #000000; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; + font-weight: 300; + font-size: 1.25rem; + color: #1a1a1a; + margin-top: 0.5rem; } .left-nav-year + .left-nav-months { @@ -140,68 +220,97 @@ b, strong { .left-nav-event { display: block; - font-family: 'Roboto', sans-serif; - font-weight: 100; - font-size: 9pt; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; + font-weight: 400; + font-size: 0.8rem; text-transform: capitalize; - margin-bottom: .35rem; + margin-bottom: 0.35rem; +} + +// ============================================ +// Footer +// ============================================ + +.site-footer { + margin-top: 3rem; } -/* Footer */ .footer-nav { - font-family: 'Roboto', sans-serif; - font-weight: 900; - font-size: 1.3em; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; + font-weight: 700; + font-size: 1.1rem; text-transform: uppercase; - color: #0082AB; - margin-bottom: 1.5rem; + letter-spacing: 0.03em; + color: $devopsdays-blue; + margin-bottom: 1.25rem; +} + +.footer-blog-title { + font-family: 'Roboto Condensed', 'Roboto', sans-serif; + font-size: 1rem; + font-weight: 600; + color: $devopsdays-blue; + display: block; + margin-top: 0.5rem; } +.footer-blog-meta { + font-family: 'Roboto Condensed', 'Roboto', sans-serif; + font-size: 0.85rem; + font-weight: 300; + color: #666; + display: block; + margin-bottom: 0.25rem; +} + +// Keep legacy footer-heading for any templates still using it .footer-heading { - font-family: 'Roboto', sans-serif; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; text-transform: capitalize; - color: #0082AB; - font-size: 1.3em; + color: $devopsdays-blue; + font-size: 1rem; } h1.footer-heading { - font-size: 1.2em; - font-weight: 400; + font-size: 1rem; + font-weight: 600; } h2.footer-heading { - font-size: 1.1em; + font-size: 0.85rem; font-weight: 300; + color: #666; } .footer-content { - font-family: 'Roboto', sans-serif; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; font-weight: 300; - font-size: .9em; - color: #000; + font-size: 0.9rem; + color: #1a1a1a; } + a.footer-content { - font-weight: 300; - color: #0082AB; + font-weight: 400; + color: #006d8f; } .footer-nav-background { - background-color: #f7f7f7; - padding-top: 20px; - border-top: 2px solid #0082AB; - padding-left:40px; - padding-right:40px; + background-color: #f8f9fa; + padding: 2rem 2.5rem; + border-top: 3px solid $devopsdays-blue; } .footer-nav-col { - padding-bottom: 30px; + padding-bottom: 2rem; } .footer-nav-row { - margin-top:20px; + margin-top: 1.5rem; } -/* Sponsors */ +// ============================================ +// Sponsors +// ============================================ .sponsor-row { display: flex; @@ -209,57 +318,68 @@ a.footer-content { } .sponsor-cta { - font-family: 'Roboto', sans-serif; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; text-transform: uppercase; - color: #000000; + color: #1a1a1a; } .cta-row { - background-color: lighten(#bfbfc1, 20%); + background-color: #f0f0f1; padding-top: 10px; padding-bottom: 10px; margin-top: 15px; margin-bottom: 15px; + border-radius: 4px; } a.sponsor-cta { - color: #0082AB; + color: $devopsdays-blue; } img.sponsor { margin-top: 20px; margin-bottom: 20px; - width: 200x; - height: 200x; - max-width: 100%; - height: auto; + width: 200px; + height: 200px; + max-width: 100%; + height: auto; } -/* Homepage */ +// ============================================ +// Homepage +// ============================================ .homepage-grid-col { - padding-top: 30px; - padding-bottom: 30px; + padding: 1.5rem 1rem; text-align: center; + transition: transform 0.15s ease, box-shadow 0.15s ease; + border-radius: 8px; + + &:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); + } } + .homepage-grid-date { - font-family: 'Roboto', sans-serif; - font-weight: 300; - font-size: 9pt; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; + font-weight: 400; + font-size: 0.8rem; text-transform: uppercase; - color: #000000; + letter-spacing: 0.04em; + color: #666; display: inline-block; width: 100%; - margin: auto; + margin: 0.5rem auto 0; text-align: center; } .homepage-grid-city { - font-family: 'Roboto', sans-serif; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; font-weight: 700; - font-size: 2em; - text-transform: capitalize;; - color: #000000; + font-size: 1.5rem; + text-transform: capitalize; + color: #1a1a1a; display: inline-block; width: 100%; margin: auto; @@ -268,56 +388,78 @@ img.sponsor { .homepage-grid-city a { word-break: break-word; - color: #000000; + color: #1a1a1a; + text-decoration: none; + + &:hover { + color: $devopsdays-blue; + } } .homepage-grid-desc { - font-family: 'Roboto', sans-serif; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; font-weight: 300; - font-size: 9pt; - color: #000000; + font-size: 0.8rem; + color: #4a4a4a; } -/* Program */ +// ============================================ +// Program +// ============================================ + button.accordion { - background-color: #eee; - color: #444; - cursor: pointer; - padding: 18px; - width: 100%; - border: none; - text-align: left; - outline: none; - font-size: 15px; - transition: 0.4s; + background-color: #f0f0f1; + color: #1a1a1a; + cursor: pointer; + padding: 1rem 1.25rem; + width: 100%; + border: none; + text-align: left; + outline: none; + font-size: 1rem; + transition: background-color 0.2s ease; + border-radius: 4px; + margin-bottom: 2px; + + &:focus-visible { + outline: 3px solid $devopsdays-blue; + outline-offset: 2px; + } } -button.accordion.active, button.accordion:hover { - background-color: #ddd; +button.accordion.active, +button.accordion:hover { + background-color: #e4e4e4; } div.panel { - padding: 0 18px; - background-color: white; - max-height: 0; - overflow: hidden; - transition: max-height 0.2s ease-out; + padding: 0 1.25rem; + background-color: white; + max-height: 0; + overflow: hidden; + transition: max-height 0.2s ease-out; } -// speaker page +// ============================================ +// Speaker pages +// ============================================ + .speaker-page { - font-family: 'Roboto', sans-serif; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; font-weight: 300; - color: #000000; + color: #1a1a1a; } + h2.speaker-page { - font-size: 2em; + font-size: 1.75rem; font-weight: 700; } + h3.speaker-page { - font-size: 1.5em; - font-weight: 300; + font-size: 1.35rem; + font-weight: 400; } + img.speaker-page { margin-top: 20px; margin-bottom: 20px; @@ -325,26 +467,33 @@ img.speaker-page { height: 600px; max-width: 100%; object-fit: cover; + border-radius: 8px; } .speaker-bio-talks { padding-top: 15px; } -// speakers page +// ============================================ +// Speakers list page +// ============================================ + .speakers-page { - font-family: 'Roboto', sans-serif; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; font-weight: 300; - color: #000000; + color: #1a1a1a; } + h2.speakers-page { - font-size: 2em; + font-size: 1.75rem; font-weight: 700; } + h3.speakers-page { - font-size: 1.5em; - font-weight: 300; + font-size: 1.35rem; + font-weight: 400; } + img.speakers-page { margin-top: 20px; margin-bottom: 20px; @@ -352,25 +501,33 @@ img.speakers-page { height: 300px; max-width: 100%; object-fit: cover; + border-radius: 8px; } -// talk page +// ============================================ +// Talk page +// ============================================ .talk-page { -font-family: 'Roboto', sans-serif; -font-weight: 300; -color: #000000; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; + font-weight: 300; + color: #1a1a1a; } h2.talk-page { - font-size: 2em; + font-size: 1.75rem; font-weight: 700; } + h3.talk-page { - font-size: 1.5em; - font-weight: 300; + font-size: 1.35rem; + font-weight: 400; } +// ============================================ +// Welcome / Event landing pages +// ============================================ + h1.welcome-page { color: #FFF; } @@ -379,37 +536,35 @@ h1.welcome-page { text-transform: uppercase; } -// Note that welcome-page-masthead is also defined in templates/welcome.html so we cannot use SCSS here .welcome-page-masthead { - background: #bfbfc1; /* For browsers that do not support gradients */ - background: -webkit-linear-gradient(#0082AB, #bfbfc1); /* For Safari 5.1 to 6.0 */ - background: -o-linear-gradient(#0082AB, #bfbfc1); /* For Opera 11.1 to 12.0 */ - background: -moz-linear-gradient(#0082AB, #bfbfc1); /* For Firefox 3.6 to 15 */ - background: linear-gradient(#0082AB, #bfbfc1); /* Standard syntax */ - padding: 20px; - margin-bottom:20px; - margin-top:20px; + background: linear-gradient(135deg, $devopsdays-blue, lighten($devopsdays-blue, 15%)); + padding: 2rem; + margin-bottom: 1.5rem; + margin-top: 1rem; + border-radius: 8px; } a.welcome-page-masthead-link { color: white; + text-decoration: underline; + text-decoration-color: rgba(255, 255, 255, 0.4); + text-underline-offset: 2px; } a:hover.welcome-page-masthead-link { - color: #bfbfc1; - border-color: #bfbfc1; + color: rgba(255, 255, 255, 0.85); text-decoration: none; } .welcome-page-masthead-venue { - font-size: 1.2em; + font-size: 1.15rem; } .welcome-page-cta { margin-left: 5px; margin-right: 5px; - padding-left: 0px; - padding-right: 0px; + padding-left: 0; + padding-right: 0; } .welcome-page-cta:first-child { @@ -419,7 +574,7 @@ a:hover.welcome-page-masthead-link { @media only screen and (min-width: 768px) { .welcome-page-cta:first-child { - margin-left: 0px; + margin-left: 0; margin-right: 5px; } } @@ -428,6 +583,10 @@ a:hover.welcome-page-masthead-link { max-width: 50%; } +// ============================================ +// Organizers +// ============================================ + .organizer-card { padding-bottom: 20px; } @@ -439,12 +598,15 @@ img.organizer-image { height: 300px; max-width: 100%; object-fit: cover; - // height: auto; + border-radius: 8px; } -.event-page-nav-home{ - padding-left: .9rem; +// ============================================ +// Events pages +// ============================================ +.event-page-nav-home { + padding-left: 0.9rem; } @media only screen and (min-width: 1024px) { @@ -454,46 +616,48 @@ img.organizer-image { } .events-page-col { - padding: 30px; + padding: 2rem; } .events-page-months { - font-family: 'Roboto', sans-serif; - font-weight: 300; - font-size: 14pt; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; + font-weight: 400; + font-size: 1rem; text-transform: uppercase; - color: #000000; + letter-spacing: 0.03em; + color: #1a1a1a; } .events-page-event { - font-family: 'Roboto', sans-serif; - font-weight: 100; - font-size: 11pt; + font-family: 'Roboto Condensed', 'Roboto', sans-serif; + font-weight: 400; + font-size: 0.9rem; text-transform: capitalize; } .event-cta-button:first-child { - margin-left: 0px; + margin-left: 0; } .event-cta-button { margin-left: 5px; } - +// ============================================ // Program page items +// ============================================ h3.program-page { - margin-top:8px; + margin-top: 8px; } .program-page-desc { - font-size: .85em; + font-size: 0.85rem; } .program-element { overflow: hidden; - height: 1% + height: 1%; } @media only screen and (min-width: 768px) { @@ -501,61 +665,61 @@ h3.program-page { border-radius: 5px; margin-right: 5px; overflow: hidden; - height: 1% + height: 1%; } } .program-custom { - background-color: lighten( $devopsdays-gray, 15% ); - color: #000; + background-color: lighten($devopsdays-gray, 15%); + color: #1a1a1a; - >a { - color: #000; + > a { + color: #1a1a1a; } } .program-talk { - background-color: lighten( $devopsdays-blue, 50% ); - color: #000; + background-color: lighten($devopsdays-blue, 50%); + color: #1a1a1a; } -.program-talk>a{ - color: #000; +.program-talk > a { + color: #1a1a1a; } .program-ignite { background-color: lighten(#00C342, 50%); - color: #000; + color: #1a1a1a; } -.program-ignite>ul>li{ - color: #000; +.program-ignite > ul > li { + color: #1a1a1a; } -.program-ignite>ul { - margin-bottom: 0px; +.program-ignite > ul { + margin-bottom: 0; } -.program-ignite>ul>li>a{ - color: #000; +.program-ignite > ul > li > a { + color: #1a1a1a; } .program-open-space { - background-color: lighten( #FF8300, 20%); - color: #000; + background-color: lighten(#FF8300, 20%); + color: #1a1a1a; } -.program-open-space>a{ - color: #000; +.program-open-space > a { + color: #1a1a1a; } .program-workshop { background-color: #FFFA99; - color: #000 + color: #1a1a1a; } -.program-workshop>a{ - color: #000; +.program-workshop > a { + color: #1a1a1a; } .program-row { @@ -564,123 +728,122 @@ h3.program-page { padding-right: 10px; } -// legacy styles +// ============================================ +// Legacy styles +// ============================================ .box { - padding:1.5em; - margin-bottom:1.5em; - background:#E5ECF9; + padding: 1.5em; + margin-bottom: 1.5em; + background: #E5ECF9; + border-radius: 4px; } -//formatting for content provided by events, pages, etc -.content-text h1, h2, h3 { +.content-text h1, +.content-text h2, +.content-text h3 { text-transform: none; } +// ============================================ // 404 page +// ============================================ .page-404-header { color: $devopsdays-blue; - font-size: 2.5em; + font-size: 2.5rem; font-weight: 700; text-transform: capitalize; } .page-404-content { - color: darken($devopsdays-gray, 50%); - font-size: 1.5em; + color: #4a4a4a; + font-size: 1.25rem; font-weight: 300; } -.social-bsky { - color: black; +// ============================================ +// Social icons (consolidated) +// ============================================ + +.social-icon { + color: #1a1a1a; height: 50px; padding: 12px; font-size: 30px; text-decoration: none; display: inline-block; + transition: color 0.15s ease; } -.social-bksy:hover { - color: rgb(17, 134, 243); - text-decoration: none; + +.social-bsky { + @extend .social-icon; + &:hover { color: rgb(17, 134, 243); text-decoration: none; } } + .social-li { - color: black; - height: 50px; - padding: 12px; - font-size: 30px; - text-decoration: none; - display: inline-block; -} -.social-li:hover { - color: rgb(29, 96, 196); - text-decoration: none; + @extend .social-icon; + &:hover { color: rgb(29, 96, 196); text-decoration: none; } } + .social-envelope { - color: black; - height: 50px; - padding: 12px; - font-size: 30px; - text-decoration: none; - display: inline-block; -} -.social-envelope:hover { - color: rgb(46, 124, 43); - text-decoration: none; + @extend .social-icon; + &:hover { color: rgb(46, 124, 43); text-decoration: none; } } + .social-mstd { - color: black; - height: 50px; - padding: 12px; - font-size: 30px; - text-decoration: none; - display: inline-block; -} -.social-mstd:hover { - color: rgb(110, 99, 218); - text-decoration: none; + @extend .social-icon; + &:hover { color: rgb(110, 99, 218); text-decoration: none; } } + .social-slack { - color: black; - height: 50px; - padding: 12px; - font-size: 30px; - text-decoration: none; - display: inline-block; -} -.social-slack:hover { - color: rgb(223, 180, 42); - text-decoration: none; + @extend .social-icon; + &:hover { color: rgb(223, 180, 42); text-decoration: none; } } + .social-x { - color: black; - height: 50px; - padding: 12px; - font-size: 30px; - text-decoration: none; - display: inline-block; -} -.social-x:hover { - color: rgb(95, 92, 92); - text-decoration: none; + @extend .social-icon; + &:hover { color: rgb(95, 92, 92); text-decoration: none; } } + .social-yt { - color: black; - height: 50px; - padding: 12px; - font-size: 30px; - text-decoration: none; - display: inline-block; -} -.social-yt:hover { - color: rgb(224, 52, 52); - text-decoration: none; + @extend .social-icon; + &:hover { color: rgb(224, 52, 52); text-decoration: none; } } +// ============================================ +// Utility +// ============================================ + .footnotes { - font-size: 0.75rem; + font-size: 0.8rem; } .small-table-text { - font-size: 0.75rem; -} \ No newline at end of file + font-size: 0.8rem; +} + +// Better responsive images in content +.content-text img { + max-width: 100%; + height: auto; + border-radius: 4px; +} + +// Blog post improvements +.blog-post-meta { + color: #666; + font-size: 0.9rem; + margin-bottom: 1.5rem; +} + +.blog-summary { + margin-bottom: 2rem; + padding-bottom: 1.5rem; + border-bottom: 1px solid #e8e8e8; +} + +.blog-read-more { + font-weight: 600; + white-space: nowrap; +} diff --git a/themes/devopsdays-theme/layouts/_default/baseof.html b/themes/devopsdays-theme/layouts/_default/baseof.html index 206acad149f..bf8e7165832 100644 --- a/themes/devopsdays-theme/layouts/_default/baseof.html +++ b/themes/devopsdays-theme/layouts/_default/baseof.html @@ -1,52 +1,61 @@ - +
{{- partial "head.html" . -}} - + + Skip to main content {{- partialCached "global_navbar.html" . -}} - {{- if and (eq (index (split (.Permalink | relURL) "/") 1) "events") (ne .Type "events") -}} - {{- partial "events/event_navbar.html" . -}} + {{- $section := index (split (.Permalink | relURL) "/") 1 -}} + {{- if and (eq $section "events") (ne .Type "events") -}} + {{- $eventDir := "" -}}{{- with .File -}}{{- $eventDir = .Dir -}}{{- end -}} + {{- partialCached "events/event_navbar.html" . $eventDir -}} {{- end -}} -