2023 Redesign v1
This commit is contained in:
parent
15719f74da
commit
a0db33067c
22 changed files with 381 additions and 126 deletions
181
package-lock.json
generated
181
package-lock.json
generated
|
@ -8,12 +8,10 @@
|
|||
"name": "jbuk-frontend",
|
||||
"version": "0.0.1",
|
||||
"license": "CC0-1.0",
|
||||
"dependencies": {
|
||||
"normalize.css": "^8.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.21.4",
|
||||
"@babel/preset-env": "^7.21.4",
|
||||
"@csstools/postcss-oklab-function": "^2.2.0",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"babel-loader": "^9.1.2",
|
||||
"browserlist": "^1.0.1",
|
||||
|
@ -28,6 +26,7 @@
|
|||
"postcss-combine-media-query": "^1.0.1",
|
||||
"postcss-import": "^15.1.0",
|
||||
"postcss-loader": "^7.2.4",
|
||||
"postcss-nesting": "^11.2.2",
|
||||
"stylelint": "^15.4.0",
|
||||
"stylelint-config-standard": "^32.0.0",
|
||||
"stylelint-webpack-plugin": "^4.1.0",
|
||||
|
@ -1681,6 +1680,57 @@
|
|||
"@jridgewell/sourcemap-codec": "^1.4.10"
|
||||
}
|
||||
},
|
||||
"node_modules/@csstools/color-helpers": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-2.0.0.tgz",
|
||||
"integrity": "sha512-VcPjEnp07RNgz/D+oI2uIALg+IPCSl6mj0XhA3pl3F2bM2B95vgzatExmmzSg/X0zkh+R2v+jFY/J2pV/bnwpw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^14 || ^16 || >=18"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/csstools"
|
||||
}
|
||||
},
|
||||
"node_modules/@csstools/css-calc": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.0.1.tgz",
|
||||
"integrity": "sha512-VBI8X0bmStfc85wWTa2bsbnlBQxgW4FmJ0Ts9ar9UqytE6kii3yg6GO+wpgzht2oK5Qlbpkm1Fy2kcqVmu6f3Q==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^14 || ^16 || >=18"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/csstools"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@csstools/css-parser-algorithms": "^2.0.1",
|
||||
"@csstools/css-tokenizer": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@csstools/css-color-parser": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-1.0.0.tgz",
|
||||
"integrity": "sha512-u3JrK+pQIGGnXe+YhohWwAwOum2y25NRdEjRQFD3moMnOJgmU/nj8BPAF6DDQAooy8Ty9RNKiAh2njuqwMgUNQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@csstools/color-helpers": "^2.0.0",
|
||||
"@csstools/css-calc": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14 || ^16 || >=18"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/csstools"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@csstools/css-parser-algorithms": "^2.1.0",
|
||||
"@csstools/css-tokenizer": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@csstools/css-parser-algorithms": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.1.0.tgz",
|
||||
|
@ -1727,6 +1777,47 @@
|
|||
"@csstools/css-tokenizer": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@csstools/postcss-oklab-function": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-2.2.0.tgz",
|
||||
"integrity": "sha512-5QMtgn9IWpeTbbt8DwLvr41CQRJef2fKhznTFQI1Og/v3zr/uKYu+aSKZEEaoZnO9OophM4YJnkVJne3CqvJDQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@csstools/css-color-parser": "^1.0.0",
|
||||
"@csstools/css-parser-algorithms": "^2.0.1",
|
||||
"@csstools/css-tokenizer": "^2.1.0",
|
||||
"@csstools/postcss-progressive-custom-properties": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14 || ^16 || >=18"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/csstools"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@csstools/postcss-progressive-custom-properties": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-2.1.1.tgz",
|
||||
"integrity": "sha512-6p8eO5+j+9hn4h2Klr9dbmya0GIb9SRrnPaCxqR1muVlV1waAZq6YkmlApEwXrox9qxggSwGZD5TnLRIY9f7WA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"postcss-value-parser": "^4.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14 || ^16 || >=18"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/csstools"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@csstools/selector-specificity": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz",
|
||||
|
@ -4974,11 +5065,6 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/normalize.css": {
|
||||
"version": "8.0.1",
|
||||
"resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz",
|
||||
"integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
|
||||
},
|
||||
"node_modules/nth-check": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
|
||||
|
@ -5558,6 +5644,26 @@
|
|||
"postcss": "^8.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss-nesting": {
|
||||
"version": "11.2.2",
|
||||
"resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-11.2.2.tgz",
|
||||
"integrity": "sha512-aOTiUniAB1bcPE6GGiynWRa6PZFPhOTAm5q3q5cem6QeSijIHHkWr6gs65ukCZMXeak8yXeZVbBJET3VM+HlhA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@csstools/selector-specificity": "^2.0.0",
|
||||
"postcss-selector-parser": "^6.0.10"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14 || ^16 || >=18"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/csstools"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.4"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss-normalize-charset": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz",
|
||||
|
@ -8474,6 +8580,29 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"@csstools/color-helpers": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-2.0.0.tgz",
|
||||
"integrity": "sha512-VcPjEnp07RNgz/D+oI2uIALg+IPCSl6mj0XhA3pl3F2bM2B95vgzatExmmzSg/X0zkh+R2v+jFY/J2pV/bnwpw==",
|
||||
"dev": true
|
||||
},
|
||||
"@csstools/css-calc": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.0.1.tgz",
|
||||
"integrity": "sha512-VBI8X0bmStfc85wWTa2bsbnlBQxgW4FmJ0Ts9ar9UqytE6kii3yg6GO+wpgzht2oK5Qlbpkm1Fy2kcqVmu6f3Q==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"@csstools/css-color-parser": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-1.0.0.tgz",
|
||||
"integrity": "sha512-u3JrK+pQIGGnXe+YhohWwAwOum2y25NRdEjRQFD3moMnOJgmU/nj8BPAF6DDQAooy8Ty9RNKiAh2njuqwMgUNQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@csstools/color-helpers": "^2.0.0",
|
||||
"@csstools/css-calc": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"@csstools/css-parser-algorithms": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.1.0.tgz",
|
||||
|
@ -8494,6 +8623,27 @@
|
|||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"@csstools/postcss-oklab-function": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-2.2.0.tgz",
|
||||
"integrity": "sha512-5QMtgn9IWpeTbbt8DwLvr41CQRJef2fKhznTFQI1Og/v3zr/uKYu+aSKZEEaoZnO9OophM4YJnkVJne3CqvJDQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@csstools/css-color-parser": "^1.0.0",
|
||||
"@csstools/css-parser-algorithms": "^2.0.1",
|
||||
"@csstools/css-tokenizer": "^2.1.0",
|
||||
"@csstools/postcss-progressive-custom-properties": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"@csstools/postcss-progressive-custom-properties": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-2.1.1.tgz",
|
||||
"integrity": "sha512-6p8eO5+j+9hn4h2Klr9dbmya0GIb9SRrnPaCxqR1muVlV1waAZq6YkmlApEwXrox9qxggSwGZD5TnLRIY9f7WA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"postcss-value-parser": "^4.2.0"
|
||||
}
|
||||
},
|
||||
"@csstools/selector-specificity": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz",
|
||||
|
@ -10913,11 +11063,6 @@
|
|||
"integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
|
||||
"dev": true
|
||||
},
|
||||
"normalize.css": {
|
||||
"version": "8.0.1",
|
||||
"resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz",
|
||||
"integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
|
||||
},
|
||||
"nth-check": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
|
||||
|
@ -11297,6 +11442,16 @@
|
|||
"icss-utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"postcss-nesting": {
|
||||
"version": "11.2.2",
|
||||
"resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-11.2.2.tgz",
|
||||
"integrity": "sha512-aOTiUniAB1bcPE6GGiynWRa6PZFPhOTAm5q3q5cem6QeSijIHHkWr6gs65ukCZMXeak8yXeZVbBJET3VM+HlhA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@csstools/selector-specificity": "^2.0.0",
|
||||
"postcss-selector-parser": "^6.0.10"
|
||||
}
|
||||
},
|
||||
"postcss-normalize-charset": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz",
|
||||
|
|
16
package.json
16
package.json
|
@ -4,12 +4,10 @@
|
|||
"version": "0.0.1",
|
||||
"repository": "https://github.com/jonnybarnes/jonnybarnes.uk",
|
||||
"license": "CC0-1.0",
|
||||
"dependencies": {
|
||||
"normalize.css": "^8.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.21.4",
|
||||
"@babel/preset-env": "^7.21.4",
|
||||
"@csstools/postcss-oklab-function": "^2.2.0",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"babel-loader": "^9.1.2",
|
||||
"browserlist": "^1.0.1",
|
||||
|
@ -24,6 +22,7 @@
|
|||
"postcss-combine-media-query": "^1.0.1",
|
||||
"postcss-import": "^15.1.0",
|
||||
"postcss-loader": "^7.2.4",
|
||||
"postcss-nesting": "^11.2.2",
|
||||
"stylelint": "^15.4.0",
|
||||
"stylelint-config-standard": "^32.0.0",
|
||||
"stylelint-webpack-plugin": "^4.1.0",
|
||||
|
@ -31,15 +30,8 @@
|
|||
"webpack-cli": "^5.0.1"
|
||||
},
|
||||
"scripts": {
|
||||
"compress": "scripts/compress",
|
||||
"copy-dist": "cp ./node_modules/normalize.css/normalize.css ./public/assets/frontend/",
|
||||
"lint:es6": "eslint resources/es/*.js",
|
||||
"lint:sass": "stylelint --syntax=scss resources/sass/**/*.scss",
|
||||
"make-orig": "npm run make:css && npm run make:js",
|
||||
"make": "npm run lint:sass && npm run webpack",
|
||||
"make:css": "npm run lint:sass && npm run sass && npm run postcss",
|
||||
"make:js": "npm run lint:es6 && npm run webpack && npm run uglifyjs",
|
||||
"webpack": "webpack"
|
||||
"dev": "webpack",
|
||||
"prod": "NODE_ENV=production webpack"
|
||||
},
|
||||
"browserslist": [
|
||||
"last 2 versions",
|
||||
|
|
4
postcss.config.js
vendored
4
postcss.config.js
vendored
|
@ -2,6 +2,10 @@ module.exports = {
|
|||
plugins: {
|
||||
'postcss-import': {},
|
||||
'autoprefixer': {},
|
||||
'@csstools/postcss-oklab-function': {
|
||||
preserve: true
|
||||
},
|
||||
'postcss-nesting': {},
|
||||
'postcss-combine-media-query': {},
|
||||
'postcss-combine-duplicated-selectors': {
|
||||
removeDuplicatedProperties: true,
|
||||
|
|
7
public/assets/app.css
vendored
7
public/assets/app.css
vendored
|
@ -1,6 +1 @@
|
|||
/*!***************************************************************************************************************************************************************************!*\
|
||||
!*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./resources/css/app.css ***!
|
||||
\***************************************************************************************************************************************************************************/
|
||||
:root{--font-stack-body:"Whitney SSm A","Whitney SSm B",sans-serif;--font-stack-headings:"Quarto A","Quarto B",serif;--font-stack-monospace:"Operator Mono SSm A","Operator Mono SSm B",monospace;--color-background:#004643;--color-headline:#fffffe;--color-paragraph:#abd1c6;--color-button:#f9bc60;--color-button-text:#001e1d;--color-stroke:#001e1d;--color-main:#e8e4e6;--color-highlight:#f9bc60;--color-secondary:#abd1c6;--color-tertiary:#e16162}body{-webkit-box-orient:vertical;-webkit-box-direction:normal;background-color:var(--color-background);color:var(--color-paragraph);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-family:var(--font-stack-body);font-size:2rem;font-style:normal;font-weight:400}h1,h2,h3,h4,h5,h6{font-family:var(--font-stack-headings);font-style:normal;font-weight:800}code,pre{font-family:var(--font-stack-monospace);font-style:normal;font-weight:400}a{color:var(--color-highlight);text-decoration:none}.h-feed>.h-entry,.h-feed>.note{margin-top:4rem}main{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:auto}main img{max-width:100%}main .h-entry:first-child>.bookmark-link{padding-top:2rem}.note{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.note,.note-metadata{-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex}.note-metadata{-webkit-box-orient:horizontal;-webkit-box-pack:justify;-ms-flex-pack:justify;-ms-flex-direction:row;flex-direction:row;justify-content:space-between}.note .client{word-break:break-all}.note .syndication-links svg{height:1em;width:1em}.note>.e-content>.naked-link .u-photo{margin:2rem 0}article header>h1{margin-bottom:0}.post-info{font-size:1.4rem}.pagination{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-pack:space-evenly;-ms-flex-pack:space-evenly;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;justify-content:space-evenly;list-style-type:none;max-width:90vw}.personal-bio{padding:0 2rem}footer{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin-top:1.5rem}.iwc-logo{max-width:100%}#top-header{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-pack:center;-ms-flex-pack:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;justify-content:center}#top-header h1{text-align:center;width:100%}nav{-webkit-box-pack:center;-ms-flex-pack:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;justify-content:center}nav a{margin:0 .5rem}.post-info a,.syndication-links .u-syndication{text-decoration:none}.hovercard,.p-bridgy-facebook-content,.p-bridgy-twitter-content{display:none}@media screen and (max-width:699px){main{margin-left:5px;margin-right:5px}input{max-width:95vw}footer{margin-left:5px;margin-right:5px}}@media screen and (min-width:700px){main{max-width:700px}main>.h-entry,main>.note{padding:0 1rem}}
|
||||
|
||||
/*# sourceMappingURL=app.css.map*/
|
||||
:root{--font-family-headings:"Archer SSm A","Archer SSm B",serif;--font-family-body:"Verlag A","Verlag B",sans-serif;--font-family-monospace:"Operator Mono SSm A","Operator Mono SSm B",monospace;--font-size-sm:0.75rem;--font-size-base:1rem;--font-size-md:1.25rem;--font-size-lg:1.5rem;--font-size-xl:1.75rem;--font-size-xxl:2rem;--font-size-xxxl:2.25rem;--color-primary:#334800;--color-secondary:#e3ffb5;--color-link:#0064a5;--color-link-visited:#be76ff;--color-primary-shadow:rgba(15,25,0,.4)}@supports (color:color(display-p3 0 0 0)){:root{--color-primary:color(display-p3 0.21567 0.27838 0.03615);--color-secondary:color(display-p3 0.91016 0.99842 0.74082);--color-link:color(display-p3 0.01045 0.38351 0.63618);--color-link-visited:color(display-p3 0.70467 0.47549 0.99958);--color-primary-shadow:color(display-p3 0.06762 0.09646 0.00441/0.4)}}@supports (color:oklch(0% 0 0)){:root{--color-primary:oklch(36.8% 0.1 125.505);--color-secondary:oklch(96.3% 0.1 125.505);--color-link:oklch(48.09% 0.146 241.41);--color-link-visited:oklch(70.44% 0.21 304.41);--color-primary-shadow:oklch(19.56% 0.054 125.505/40%)}}body{background-color:var(--color-secondary);color:var(--color-primary);font-family:var(--font-family-body);font-size:var(--font-size-md)}code{font-family:var(--font-family-monospace)}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-headings)}.grid{display:grid;grid-template-columns:5vw 1fr 5vw;grid-template-rows:-webkit-min-content 1fr -webkit-min-content;grid-template-rows:min-content 1fr min-content;row-gap:1rem}#site-header{grid-column:2/3;grid-row:1/2}main{grid-row:2/3}footer,main{grid-column:2/3}footer{grid-row:3/4}footer .iwc-logo{max-width:85vw}a{color:var(--color-link)}a:visited{color:var(--color-link-visited)}#site-header a:visited{color:var(--color-link)}.hljs{border-radius:.5rem}.p-bridgy-twitter-content{display:none}.h-card .hovercard{-webkit-box-orient:vertical;-webkit-box-direction:normal;background-color:var(--color-secondary);border-radius:1rem;-webkit-box-shadow:0 .5rem .5rem .5rem var(--color-primary-shadow);box-shadow:0 .5rem .5rem .5rem var(--color-primary-shadow);display:none;-ms-flex-direction:column;flex-direction:column;gap:.5rem;opacity:0;padding:1rem;position:absolute;-webkit-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;z-index:100}.h-card .hovercard .u-photo{max-width:6rem}.h-card .hovercard .social-icon{height:1rem;width:1rem}.h-card:hover .hovercard{display:-webkit-box;display:-ms-flexbox;display:flex;opacity:1}.h-entry{-webkit-border-start:1px solid var(--color-primary);-webkit-padding-start:.5rem;border-inline-start:1px solid var(--color-primary);padding-inline-start:.5rem}.h-entry .reply-to{font-style:italic}.h-entry .post-info a{text-decoration:none}.h-entry .note-metadata{-webkit-box-orient:horizontal;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;gap:1rem}.h-entry .note-metadata .syndication-links{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.h-entry .note-metadata .syndication-links a{text-decoration:none}.h-entry .note-metadata .syndication-links a svg{height:1rem;width:1rem}
|
||||
|
|
Binary file not shown.
68
public/assets/app.js
vendored
68
public/assets/app.js
vendored
|
@ -1,68 +0,0 @@
|
|||
/******/ (function() { // webpackBootstrap
|
||||
/******/ "use strict";
|
||||
/******/ var __webpack_modules__ = ({
|
||||
|
||||
/***/ "./resources/css/app.css":
|
||||
/*!*******************************!*\
|
||||
!*** ./resources/css/app.css ***!
|
||||
\*******************************/
|
||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
// extracted by mini-css-extract-plugin
|
||||
|
||||
|
||||
/***/ })
|
||||
|
||||
/******/ });
|
||||
/************************************************************************/
|
||||
/******/ // 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
|
||||
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/************************************************************************/
|
||||
/******/ /* webpack/runtime/make namespace object */
|
||||
/******/ !function() {
|
||||
/******/ // define __esModule on exports
|
||||
/******/ __webpack_require__.r = function(exports) {
|
||||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
/******/ }
|
||||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||
/******/ };
|
||||
/******/ }();
|
||||
/******/
|
||||
/************************************************************************/
|
||||
var __webpack_exports__ = {};
|
||||
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
||||
!function() {
|
||||
/*!*****************************!*\
|
||||
!*** ./resources/js/app.js ***!
|
||||
\*****************************/
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _css_app_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../css/app.css */ "./resources/css/app.css");
|
||||
|
||||
}();
|
||||
/******/ })()
|
||||
;
|
||||
//# sourceMappingURL=app.js.map
|
Binary file not shown.
BIN
public/assets/img/memoji-orange-bg-small-fs8.png
Normal file
BIN
public/assets/img/memoji-orange-bg-small-fs8.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
6
resources/css-2023/app.css
vendored
Normal file
6
resources/css-2023/app.css
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
@import "variables.css";
|
||||
@import "fonts.css";
|
||||
@import "layout.css";
|
||||
@import "colours.css";
|
||||
@import "code.css";
|
||||
@import "content.css";
|
3
resources/css-2023/code.css
vendored
Normal file
3
resources/css-2023/code.css
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
.hljs {
|
||||
border-radius: .5rem;
|
||||
}
|
18
resources/css-2023/colours.css
vendored
Normal file
18
resources/css-2023/colours.css
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
body {
|
||||
background-color: var(--color-secondary);
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--color-link);
|
||||
|
||||
&:visited {
|
||||
color: var(--color-link-visited);
|
||||
}
|
||||
}
|
||||
|
||||
#site-header {
|
||||
& a:visited {
|
||||
color: var(--color-link);
|
||||
}
|
||||
}
|
36
resources/css-2023/content.css
vendored
Normal file
36
resources/css-2023/content.css
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
@import "posse.css";
|
||||
@import "h-card.css";
|
||||
|
||||
.h-entry {
|
||||
border-inline-start: 1px solid var(--color-primary);
|
||||
padding-inline-start: .5rem;
|
||||
|
||||
& .reply-to {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
& .post-info {
|
||||
& a {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
& .note-metadata {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 1rem;
|
||||
|
||||
& .syndication-links {
|
||||
flex-flow: row wrap;
|
||||
|
||||
& a {
|
||||
text-decoration: none;
|
||||
|
||||
& svg {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
17
resources/css-2023/fonts.css
vendored
Normal file
17
resources/css-2023/fonts.css
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
body {
|
||||
font-family: var(--font-family-body);
|
||||
font-size: var(--font-size-md);
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: var(--font-family-monospace);
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: var(--font-family-headings);
|
||||
}
|
32
resources/css-2023/h-card.css
vendored
Normal file
32
resources/css-2023/h-card.css
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
.h-card {
|
||||
& .hovercard {
|
||||
display: none;
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
padding: 1rem;
|
||||
border-radius: 1rem;
|
||||
box-shadow: 0 .5rem .5rem .5rem var(--color-primary-shadow);
|
||||
background-color: var(--color-secondary);
|
||||
width: fit-content;
|
||||
transition: opacity 0.5s ease-in-out;
|
||||
opacity: 0;
|
||||
flex-direction: column;
|
||||
gap: .5rem;
|
||||
|
||||
& .u-photo {
|
||||
max-width: 6rem;
|
||||
}
|
||||
|
||||
& .social-icon {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
& .hovercard {
|
||||
display: flex;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
25
resources/css-2023/layout.css
vendored
Normal file
25
resources/css-2023/layout.css
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: 5vw 1fr 5vw;
|
||||
grid-template-rows: min-content 1fr min-content;
|
||||
row-gap: 1rem;
|
||||
}
|
||||
|
||||
#site-header {
|
||||
grid-column: 2 / 3;
|
||||
grid-row: 1 / 2;
|
||||
}
|
||||
|
||||
main {
|
||||
grid-column: 2 / 3;
|
||||
grid-row: 2 / 3;
|
||||
}
|
||||
|
||||
footer {
|
||||
grid-column: 2 / 3;
|
||||
grid-row: 3 / 4;
|
||||
|
||||
& .iwc-logo {
|
||||
max-width: 85vw;
|
||||
}
|
||||
}
|
3
resources/css-2023/posse.css
vendored
Normal file
3
resources/css-2023/posse.css
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
.p-bridgy-twitter-content {
|
||||
display: none;
|
||||
}
|
22
resources/css-2023/variables.css
vendored
Normal file
22
resources/css-2023/variables.css
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
:root {
|
||||
/* Font Family */
|
||||
--font-family-headings: "Archer SSm A", "Archer SSm B", serif;
|
||||
--font-family-body: "Verlag A", "Verlag B", sans-serif;
|
||||
--font-family-monospace: "Operator Mono SSm A", "Operator Mono SSm B", monospace;
|
||||
|
||||
/* Font Size */
|
||||
--font-size-sm: 0.75rem; /* 12px */
|
||||
--font-size-base: 1rem; /* 16px, base */
|
||||
--font-size-md: 1.25rem; /* 20px */
|
||||
--font-size-lg: 1.5rem; /* 24px */
|
||||
--font-size-xl: 1.75rem; /* 28px */
|
||||
--font-size-xxl: 2rem; /* 32px */
|
||||
--font-size-xxxl: 2.25rem; /* 36px */
|
||||
|
||||
/* Colours */
|
||||
--color-primary: oklch(36.8% 0.1 125.505);
|
||||
--color-secondary: oklch(96.3% 0.1 125.505);
|
||||
--color-link: oklch(48.09% 0.146 241.41);
|
||||
--color-link-visited: oklch(70.44% 0.21 304.41);
|
||||
--color-primary-shadow: oklch(19.56% 0.054 125.505 / 40%);
|
||||
}
|
2
resources/js/app.js
vendored
2
resources/js/app.js
vendored
|
@ -1 +1 @@
|
|||
import '../css/app.css';
|
||||
import '../css-2023/app.css';
|
||||
|
|
|
@ -4,8 +4,9 @@
|
|||
<meta charset="UTF-8">
|
||||
<title>@yield('title'){{ config('app.display_name') }}</title>
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="stylesheet" href="/assets/frontend/normalize.css">
|
||||
@if (!empty(config('app.font_link')))<link rel="stylesheet" href="{{ config('app.font_link') }}">@endif
|
||||
@if (!empty(config('app.font_link')))
|
||||
<link rel="stylesheet" href="{{ config('app.font_link') }}">
|
||||
@endif
|
||||
<link rel="stylesheet" href="/assets/app.css">
|
||||
<link rel="stylesheet" href="/assets/highlight/zenburn.css">
|
||||
<link rel="alternate" type="application/rss+xml" title="Blog RSS Feed" href="/blog/feed.rss">
|
||||
|
@ -22,11 +23,11 @@
|
|||
<link rel="token_endpoint" href="{{ config('app.url') }}/api/token">
|
||||
<link rel="micropub" href="{{ config('app.url') }}/api/post">
|
||||
<link rel="webmention" href="{{ config('app.url') }}/webmention">
|
||||
<link rel="shortcut icon" href="/assets/img/jmb-bw.png">
|
||||
<link rel="shortcut icon" href="{{ config('app.url') }}/assets/img/memoji-orange-bg-small-fs8.png">
|
||||
<link rel="pgpkey" href="/assets/jonnybarnes-public-key-ecc.asc">
|
||||
</head>
|
||||
<body>
|
||||
<header id="top-header">
|
||||
<body class="grid">
|
||||
<header id="site-header">
|
||||
<h1>
|
||||
<a rel="author" href="/">{{ config('app.display_name') }}</a>
|
||||
</h1>
|
||||
|
@ -58,22 +59,5 @@
|
|||
<!--scripts go here when needed-->
|
||||
@section('scripts')
|
||||
@show
|
||||
@if(config('fathom.id'))
|
||||
<!-- Fathom - simple website analytics - https://github.com/usefathom/fathom -->
|
||||
<script>
|
||||
(function(f, a, t, h, o, m){
|
||||
a[h]=a[h]||function(){
|
||||
(a[h].q=a[h].q||[]).push(arguments)
|
||||
};
|
||||
o=f.createElement('script'),
|
||||
m=f.getElementsByTagName('script')[0];
|
||||
o.async=1; o.src=t; o.id='fathom-script';
|
||||
m.parentNode.insertBefore(o,m)
|
||||
})(document, window, '//fathom.jonnybarnes.uk/tracker.js', 'fathom');
|
||||
fathom('set', 'siteId', '{{ config('fathom.id') }}');
|
||||
fathom('trackPageview');
|
||||
</script>
|
||||
<!-- / Fathom -->
|
||||
@endif
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1 +1,16 @@
|
|||
<span class="u-category h-card mini-h-card"><a class="u-url p-name" href="{{ $contact->homepage }}">{!! $contact->name !!}</a><span class="hovercard">@if ($contact->facebook)<a class="u-url" href="https://www.facebook.com/{{ $contact->facebook }}"><img class="social-icon" src="/assets/img/social-icons/facebook.svg"> Facebook</a>@endif @if ($contact->twitter)<a class="u-url" href="https://twitter.com/{{ $contact->twitter }}"><img class="social-icon" src="/assets/img/social-icons/twitter.svg"> {{ $contact->twitter }}</a>@endif<img class="u-photo" alt="" src="{{ $contact->photo }}"></span></span>
|
||||
<span class="u-category h-card mini-h-card">
|
||||
<a class="u-url p-name" href="{{ $contact->homepage }}">{!! $contact->name !!}</a>
|
||||
<span class="hovercard">
|
||||
<img class="u-photo" alt="" src="{{ $contact->photo }}">
|
||||
@if ($contact->facebook)
|
||||
<a class="u-url" href="https://www.facebook.com/{{ $contact->facebook }}">
|
||||
<img class="social-icon" src="/assets/img/social-icons/facebook.svg"> Facebook
|
||||
</a>
|
||||
@endif
|
||||
@if ($contact->twitter)
|
||||
<a class="u-url" href="https://twitter.com/{{ $contact->twitter }}">
|
||||
<img class="social-icon" src="/assets/img/social-icons/twitter.svg"> {{ $contact->twitter }}
|
||||
</a>
|
||||
@endif
|
||||
</span>
|
||||
</span>
|
||||
|
|
|
@ -46,7 +46,15 @@ class NotesTest extends TestCase
|
|||
public function defaultImageUsedAsFallbackInMakehcardsMethod(): void
|
||||
{
|
||||
// phpcs:ignore
|
||||
$expected = '<p>Hi <span class="u-category h-card mini-h-card"><a class="u-url p-name" href="http://tantek.com">Tantek Çelik</a><span class="hovercard"> <a class="u-url" href="https://twitter.com/t"><img class="social-icon" src="/assets/img/social-icons/twitter.svg"> t</a><img class="u-photo" alt="" src="/assets/profile-images/default-image"></span></span></p>' . PHP_EOL;
|
||||
$expected = '<p>Hi <span class="u-category h-card mini-h-card">
|
||||
<a class="u-url p-name" href="http://tantek.com">Tantek Çelik</a>
|
||||
<span class="hovercard">
|
||||
<img class="u-photo" alt="" src="/assets/profile-images/default-image">
|
||||
<a class="u-url" href="https://twitter.com/t">
|
||||
<img class="social-icon" src="/assets/img/social-icons/twitter.svg"> t
|
||||
</a>
|
||||
</span>
|
||||
</span></p>' . PHP_EOL;
|
||||
Contact::factory()->create([
|
||||
'nick' => 'tantek',
|
||||
'name' => 'Tantek Çelik',
|
||||
|
@ -84,7 +92,15 @@ class NotesTest extends TestCase
|
|||
]);
|
||||
|
||||
// phpcs:ignore
|
||||
$expected = '<p>Hi <span class="u-category h-card mini-h-card"><a class="u-url p-name" href="https://aaronparecki.com">Aaron Parecki</a><span class="hovercard"><a class="u-url" href="https://www.facebook.com/123456"><img class="social-icon" src="/assets/img/social-icons/facebook.svg"> Facebook</a> <img class="u-photo" alt="" src="/assets/profile-images/aaronparecki.com/image"></span></span></p>' . PHP_EOL;
|
||||
$expected = '<p>Hi <span class="u-category h-card mini-h-card">
|
||||
<a class="u-url p-name" href="https://aaronparecki.com">Aaron Parecki</a>
|
||||
<span class="hovercard">
|
||||
<img class="u-photo" alt="" src="/assets/profile-images/aaronparecki.com/image">
|
||||
<a class="u-url" href="https://www.facebook.com/123456">
|
||||
<img class="social-icon" src="/assets/img/social-icons/facebook.svg"> Facebook
|
||||
</a>
|
||||
</span>
|
||||
</span></p>' . PHP_EOL;
|
||||
$this->assertEquals($expected, $note->note);
|
||||
}
|
||||
|
||||
|
|
2
webpack.config.js
vendored
2
webpack.config.js
vendored
|
@ -53,7 +53,7 @@ module.exports = {
|
|||
}),
|
||||
new StyleLintPlugin({
|
||||
configFile: path.resolve(__dirname + '/.stylelintrc'),
|
||||
context: path.resolve(__dirname + '/resources/css'),
|
||||
context: path.resolve(__dirname + '/resources/css-2023'),
|
||||
files: '**/*.css',
|
||||
}),
|
||||
new EslintPlugin({
|
||||
|
|
Loading…
Add table
Reference in a new issue