diff --git a/client/icons/customIcons.less b/client/icons/customIcons.less index 775f252d3..3e28089a5 100644 --- a/client/icons/customIcons.less +++ b/client/icons/customIcons.less @@ -31,6 +31,9 @@ .mask-corner { content: url('../icons/mask-corner.svg'); } +.mask-center { + content: url('../icons/mask-center.svg'); +} .fa-file-c { content: url('../icons/fa-file-c.svg'); } diff --git a/client/icons/mask-center.svg b/client/icons/mask-center.svg new file mode 100644 index 000000000..fba0eec29 --- /dev/null +++ b/client/icons/mask-center.svg @@ -0,0 +1,63 @@ + + diff --git a/install/README.WINDOWS.md b/install/README.WINDOWS.md new file mode 100644 index 000000000..c1a7b41cc --- /dev/null +++ b/install/README.WINDOWS.md @@ -0,0 +1,43 @@ +# Windows Installation Instructions + +## Before Installing + +These instructions assume that you are installing to a completely new, fresh Windows 10 installation. As such, some steps may not be necessary if you are installing to an existing Windows 10 instance. + +## Installation instructions + +1. Download the installation script from https://raw.githubusercontent.com/naturalcrit/homebrewery/master/install/windows/install.ps1. + +2. Run Powershell as an Administrator. + a. Click the Start menu or press the Windows key. + b. Type `powershell` into the Search box. + c. Right click on the Powershell app and select "Run As Administrator". + d. Click YES in the prompt that appears. + +3. Change the script execution policy. + a. Run the Powershell command `Set-ExecutionPolicy Bypass -Scope Process`. + b. Allow the change to be made - press Y at the prompt that appears. + +4. Run the installation script. + a. Navigate to the location of the script, e.g. `cd C:\Users\ExampleUser\Downloads`. + b. Start the script - `.\install.ps1` + +5. Once the script has completed, it will start the Homebrewery server. This will normally cause a Network Access prompt for NodeJS - if this appears, click "Allow". + +**NOTE:** At this time, the script **ONLY** installs HomeBrewery. It does **NOT** install the NaturalCrit login system, as that is currently a completely separate project. + +--- + +### Testing + +These installation instructions have been tested on the following Ubuntu releases: + +- *Windows 10 Home - OS Build 19045.2546* + +## Final Notes + +While this installation process works successfully at the time of writing (January 23, 2023), it relies on all of the Node.JS packages used in the HomeBrewery project retaining their cross-platform capabilities to continue to function. This is one of the inherent advantages of Node.JS, but it is by no means guaranteed and as such, functionality or even installation may fail without warning at some point in the future. + +Regards, +G +January 23, 2023 diff --git a/install/windows/install.ps1 b/install/windows/install.ps1 new file mode 100644 index 000000000..37bb6365e --- /dev/null +++ b/install/windows/install.ps1 @@ -0,0 +1,51 @@ +Write-Host Homebrewery Install -BackgroundColor Black -ForegroundColor Yellow +Write-Host =================== -BackgroundColor Black -ForegroundColor Yellow +Write-Host Install Chocolatey -BackgroundColor Black -ForegroundColor Yellow +Write-Host Instructions from https://chocolate.org/install -BackgroundColor Black -ForegroundColor Yellow + +Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) + +Write-Host Install Node JS v16.11.1 -BackgroundColor Black -ForegroundColor Yellow + +choco install nodejs --version=16.11.1 -y + +Write-Host Install MongoDB v 4.4.4 -BackgroundColor Black -ForegroundColor Yellow + +choco install mongodb --version=4.4.4 -y + +Write-Host Install GIT -BackgroundColor Black -ForegroundColor Yellow + +choco install git -y + +Write-Host Refresh Environment -BackgroundColor Black -ForegroundColor Yellow + +Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1" +Update-SessionEnvironment + +Write-Host Create Homebrewery directory - C:\Homebrewery -BackgroundColor Black -ForegroundColor Yellow + +mkdir C:\Hombrewery +cd C:\Hombrewery + +Write-Host Download Homebrewery project files -BackgroundColor Black -ForegroundColor Yellow + +git clone https://github.com/naturalcrit/homebrewery.git + +Write-Host Install Homebrewery files -BackgroundColor Black -ForegroundColor Yellow + +cd homebrewery + +npm install +npm audit fix + +Write-Host Set install type to 'local' -BackgroundColor Black -ForegroundColor Yellow + +[System.Environment]::SetEnvironmentVariable('NODE_ENV', 'local') + +Write-Host INSTALL COMPLETE -BackgroundColor Black -ForegroundColor Yellow +Write-Host To start Homebrewery in the future, open a terminal in the Homebrewery directory and run npm start -BackgroundColor Black -ForegroundColor Yellow +Write-Host ================================================================================================== -BackgroundColor Black -ForegroundColor Yellow + +Write-Host Start Homebrewery -BackgroundColor Black -ForegroundColor Yellow + +npm start \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b860f4b03..f142969f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,13 +14,13 @@ "@babel/plugin-transform-runtime": "^7.21.0", "@babel/preset-env": "^7.19.4", "@babel/preset-react": "^7.18.6", - "@googleapis/drive": "^5.0.1", + "@googleapis/drive": "^5.0.2", "body-parser": "^1.20.2", "classnames": "^2.3.2", "codemirror": "^5.65.6", "cookie-parser": "^1.4.6", "create-react-class": "^15.7.0", - "dedent-tabs": "^0.10.2", + "dedent-tabs": "^0.10.3", "express": "^4.18.2", "express-async-handler": "^1.2.0", "express-static-gzip": "2.1.7", @@ -33,13 +33,13 @@ "marked-extended-tables": "^1.0.5", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.29.4", - "mongoose": "^7.0.2", + "mongoose": "^7.0.3", "nanoid": "3.3.4", "nconf": "^0.12.0", "npm": "^9.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", - "react-frame-component": "4.1.3", + "react-frame-component": "5.2.6", "react-router-dom": "6.9.0", "sanitize-filename": "1.6.3", "superagent": "^6.1.0", @@ -1800,9 +1800,9 @@ } }, "node_modules/@googleapis/drive": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@googleapis/drive/-/drive-5.0.1.tgz", - "integrity": "sha512-TDwG6FuPxmJACMS468QiThZFnaOUQxDDqHjr159rV+RhXkkTx9CvDSryo2LIOitqt2G7YCm/CkRoIg/BAkBAFw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@googleapis/drive/-/drive-5.0.2.tgz", + "integrity": "sha512-7FhWlP26dkaUyO7kkRlEe27iPmNZUKM5130+9jOVA2IkJUqnsb4v9K2sI1f2F3LC8hZO0axjkUmkgAcNDstpCw==", "dependencies": { "googleapis-common": "^6.0.3" }, @@ -4406,9 +4406,9 @@ "dev": true }, "node_modules/dedent-tabs": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/dedent-tabs/-/dedent-tabs-0.10.2.tgz", - "integrity": "sha512-7IPaQ949TM7e8hKM+x09JB2o82dKRPLPQqZJybHBTFWCDQRIRgTDxEAmJufOYdlQmXQVMI1/Wuqxf6H0miNelw==" + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/dedent-tabs/-/dedent-tabs-0.10.3.tgz", + "integrity": "sha512-RYq1ewj+FDOEKxjhU9a2xwSJX+ODruTeIcMwt3KVAuUpOGFLDzmQWU3ByXRLVFHYAg584gcYSv1k+KheoLExsw==" }, "node_modules/deep-is": { "version": "0.1.4", @@ -9216,9 +9216,9 @@ } }, "node_modules/mongoose": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.0.2.tgz", - "integrity": "sha512-whX+5lAOLOs6VXRr9w+6m5qb8m/IXWLLb9+0/HRUh2TiIYtTt7UvajK92zW6wllCjBkrrnz/MDIOTCWMbs8K4g==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.0.3.tgz", + "integrity": "sha512-3n8vc1/mssuxKa6vfghSocp3MeiCFYzhX36Ok+PsDNNYzHC9tw3rNkAMLemIwZ2jgXqkZ7CfKOxkzjp/d/SWfg==", "dependencies": { "bson": "^5.0.1", "kareem": "2.5.1", @@ -13069,9 +13069,9 @@ } }, "node_modules/react-frame-component": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/react-frame-component/-/react-frame-component-4.1.3.tgz", - "integrity": "sha512-4PurhctiqnmC1F5prPZ+LdsalH7pZ3SFA5xoc0HBe8mSHctdLLt4Cr2WXfXOoajHBYq/yiipp9zOgx+vy8GiEA==", + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/react-frame-component/-/react-frame-component-5.2.6.tgz", + "integrity": "sha512-CwkEM5VSt6nFwZ1Op8hi3JB5rPseZlmnp5CGiismVTauE6S4Jsc4TNMlT0O7Cts4WgIC3ZBAQ2p1Mm9XgLbj+w==", "peerDependencies": { "prop-types": "^15.5.9", "react": ">= 16.3", diff --git a/package.json b/package.json index 6ba7a3156..28b5fab23 100644 --- a/package.json +++ b/package.json @@ -74,13 +74,13 @@ "@babel/plugin-transform-runtime": "^7.21.0", "@babel/preset-env": "^7.19.4", "@babel/preset-react": "^7.18.6", - "@googleapis/drive": "^5.0.1", + "@googleapis/drive": "^5.0.2", "body-parser": "^1.20.2", "classnames": "^2.3.2", "codemirror": "^5.65.6", "cookie-parser": "^1.4.6", "create-react-class": "^15.7.0", - "dedent-tabs": "^0.10.2", + "dedent-tabs": "^0.10.3", "express": "^4.18.2", "express-async-handler": "^1.2.0", "express-static-gzip": "2.1.7", @@ -93,13 +93,13 @@ "marked-extended-tables": "^1.0.5", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.29.4", - "mongoose": "^7.0.2", + "mongoose": "^7.0.3", "nanoid": "3.3.4", "nconf": "^0.12.0", "npm": "^9.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", - "react-frame-component": "4.1.3", + "react-frame-component": "5.2.6", "react-router-dom": "6.9.0", "sanitize-filename": "1.6.3", "superagent": "^6.1.0", diff --git a/themes/V3/Blank/snippets.js b/themes/V3/Blank/snippets.js index 33b819057..9d64496c3 100644 --- a/themes/V3/Blank/snippets.js +++ b/themes/V3/Blank/snippets.js @@ -101,6 +101,12 @@ module.exports = [ icon : 'fas fa-fill-drip', gen : WatercolorGen, }, + { + name : 'Watercolor Center', + icon : 'fac mask-center', + gen : ImageMaskGen.center, + experimental : true, + }, { name : 'Watercolor Edge', icon : 'fac mask-edge', diff --git a/themes/V3/Blank/snippets/imageMask.gen.js b/themes/V3/Blank/snippets/imageMask.gen.js index 5c6193a05..5ddef7a2a 100644 --- a/themes/V3/Blank/snippets/imageMask.gen.js +++ b/themes/V3/Blank/snippets/imageMask.gen.js @@ -2,6 +2,16 @@ const _ = require('lodash'); const dedent = require('dedent-tabs').default; module.exports = { + center :()=>{ + return dedent` + {{imageMaskCenter${_.random(1, 16)},--offsetX:0%,--offsetY:0%,--rotation:0; + ![](https://i.imgur.com/GZfjDWV.png){height:100%} + }} + \n\n`; + }, + edge : (side = 'bottom')=>{ const rotation = { 'bottom' : 0, @@ -10,10 +20,10 @@ module.exports = { 'right' : 270 }[side]; return dedent` - {{imageMaskEdge${_.random(1, 8)},--offset:0cm,--rotation:${rotation} + {{imageMaskEdge${_.random(1, 8)},--offset:0%,--rotation:${rotation} ![](https://i.imgur.com/GZfjDWV.png){height:100%} }} - \n\n`; }, diff --git a/themes/V3/Blank/style.less b/themes/V3/Blank/style.less index 6dda308e9..e0d6ba9f7 100644 --- a/themes/V3/Blank/style.less +++ b/themes/V3/Blank/style.less @@ -187,7 +187,6 @@ body { height : 100%; font-size : 120px; text-transform : uppercase; - color : black; mix-blend-mode : overlay; opacity : 30%; transform : rotate(-45deg); @@ -228,6 +227,7 @@ body { .watercolor12 { --wc : @watercolor12; } /* Image Masks */ + [class*="imageMask"] { position : absolute; height : 200%; @@ -288,14 +288,66 @@ body { } } - .imageMaskEdge1 { --wc : url(/assets/waterColorMasks/edge/0001.webp); } - .imageMaskEdge2 { --wc : url(/assets/waterColorMasks/edge/0002.webp); } - .imageMaskEdge3 { --wc : url(/assets/waterColorMasks/edge/0003.webp); } - .imageMaskEdge4 { --wc : url(/assets/waterColorMasks/edge/0004.webp); } - .imageMaskEdge5 { --wc : url(/assets/waterColorMasks/edge/0005.webp); } - .imageMaskEdge6 { --wc : url(/assets/waterColorMasks/edge/0006.webp); } - .imageMaskEdge7 { --wc : url(/assets/waterColorMasks/edge/0007.webp); } - .imageMaskEdge8 { --wc : url(/assets/waterColorMasks/edge/0008.webp); } + .imageMaskEdge { + &1 { --wc : url(/assets/waterColorMasks/edge/0001.webp); } + &2 { --wc : url(/assets/waterColorMasks/edge/0002.webp); } + &3 { --wc : url(/assets/waterColorMasks/edge/0003.webp); } + &4 { --wc : url(/assets/waterColorMasks/edge/0004.webp); } + &5 { --wc : url(/assets/waterColorMasks/edge/0005.webp); } + &6 { --wc : url(/assets/waterColorMasks/edge/0006.webp); } + &7 { --wc : url(/assets/waterColorMasks/edge/0007.webp); } + &8 { --wc : url(/assets/waterColorMasks/edge/0008.webp); } + } + + [class*="imageMaskCenter"] { + width : 100%; + height : 100%; + left : calc(var(--offsetX)); + bottom : calc(var(--offsetY)); + -webkit-mask-image : var(--wc), var(--revealer); + -webkit-mask-repeat : no-repeat; + -webkit-mask-size : 100% 100%; //Scale both dimensions to fit page size + -webkit-mask-position : 0% 0%; + mask-image : var(--wc), var(--revealer); + mask-repeat : no-repeat; + mask-size : 100% 100%; //Scale both dimensions to fit page size + mask-position : 50% 50%; + transform : rotate(calc(1deg * var(--rotation))) scaleX(var(--scaleX)) scaleY(var(--scaleY)); + + & > p:has(img) { + position : absolute; + width : 100%; + height : 100%; + bottom : 0; + left : 0; + transform : unset; + transform : scaleX(calc(1 / var(--scaleX))) scaleY(calc(1 / var(--scaleY))) + rotate(calc(-1deg * var(--rotation))) + translateX(calc(-1 * var(--offsetX))) + translateY(calc(1 * var(--offsetY))); + } + } + + .imageMaskCenter { + &1 { --wc : url(/assets/waterColorMasks/center/0001.webp); } + &2 { --wc : url(/assets/waterColorMasks/center/0002.webp); } + &3 { --wc : url(/assets/waterColorMasks/center/0003.webp); } + &4 { --wc : url(/assets/waterColorMasks/center/0004.webp); } + &5 { --wc : url(/assets/waterColorMasks/center/0005.webp); } + &6 { --wc : url(/assets/waterColorMasks/center/0006.webp); } + &7 { --wc : url(/assets/waterColorMasks/center/0007.webp); } + &8 { --wc : url(/assets/waterColorMasks/center/0008.webp); } + &9 { --wc : url(/assets/waterColorMasks/center/0009.webp); } + &10 { --wc : url(/assets/waterColorMasks/center/0010.webp); } + &11 { --wc : url(/assets/waterColorMasks/center/0011.webp); } + &12 { --wc : url(/assets/waterColorMasks/center/0012.webp); } + &13 { --wc : url(/assets/waterColorMasks/center/0013.webp); } + &14 { --wc : url(/assets/waterColorMasks/center/0014.webp); } + &15 { --wc : url(/assets/waterColorMasks/center/0015.webp); } + &16 { --wc : url(/assets/waterColorMasks/center/0016.webp); } + &special { --wc : url(/assets/waterColorMasks/center/special.webp); } + } + [class*="imageMaskCorner"] { height : 200%; @@ -310,7 +362,7 @@ body { mask-repeat : no-repeat; mask-size : 100% 100%; //Scale both dimensions to fit page size mask-position : 50% 50%; - transform : rotate(calc(1deg * var(--rotation))) scaleX(var(--scaleX)) scaleY(var(--scaleY));; + transform : rotate(calc(1deg * var(--rotation))) scaleX(var(--scaleX)) scaleY(var(--scaleY)); & > p:has(img) { width : 50%; height : 50%; //Complex transform below to handle mix of % and cm offsets @@ -322,44 +374,45 @@ body { translateY(calc(1 * var(--offsetY))); } } - - .imageMaskCorner1 { --wc : url(/assets/waterColorMasks/corner/0001.webp); } - .imageMaskCorner2 { --wc : url(/assets/waterColorMasks/corner/0002.webp); } - .imageMaskCorner3 { --wc : url(/assets/waterColorMasks/corner/0003.webp); } - .imageMaskCorner4 { --wc : url(/assets/waterColorMasks/corner/0004.webp); } - .imageMaskCorner5 { --wc : url(/assets/waterColorMasks/corner/0005.webp); } - .imageMaskCorner6 { --wc : url(/assets/waterColorMasks/corner/0006.webp); } - .imageMaskCorner7 { --wc : url(/assets/waterColorMasks/corner/0007.webp); } - .imageMaskCorner8 { --wc : url(/assets/waterColorMasks/corner/0008.webp); } - .imageMaskCorner9 { --wc : url(/assets/waterColorMasks/corner/0009.webp); } - .imageMaskCorner10 { --wc : url(/assets/waterColorMasks/corner/0010.webp); } - .imageMaskCorner11 { --wc : url(/assets/waterColorMasks/corner/0011.webp); } - .imageMaskCorner12 { --wc : url(/assets/waterColorMasks/corner/0012.webp); } - .imageMaskCorner13 { --wc : url(/assets/waterColorMasks/corner/0013.webp); } - .imageMaskCorner14 { --wc : url(/assets/waterColorMasks/corner/0014.webp); } - .imageMaskCorner15 { --wc : url(/assets/waterColorMasks/corner/0015.webp); } - .imageMaskCorner16 { --wc : url(/assets/waterColorMasks/corner/0016.webp); } - .imageMaskCorner17 { --wc : url(/assets/waterColorMasks/corner/0017.webp); } - .imageMaskCorner18 { --wc : url(/assets/waterColorMasks/corner/0018.webp); } - .imageMaskCorner19 { --wc : url(/assets/waterColorMasks/corner/0019.webp); } - .imageMaskCorner20 { --wc : url(/assets/waterColorMasks/corner/0020.webp); } - .imageMaskCorner21 { --wc : url(/assets/waterColorMasks/corner/0021.webp); } - .imageMaskCorner22 { --wc : url(/assets/waterColorMasks/corner/0022.webp); } - .imageMaskCorner23 { --wc : url(/assets/waterColorMasks/corner/0023.webp); } - .imageMaskCorner24 { --wc : url(/assets/waterColorMasks/corner/0024.webp); } - .imageMaskCorner25 { --wc : url(/assets/waterColorMasks/corner/0025.webp); } - .imageMaskCorner26 { --wc : url(/assets/waterColorMasks/corner/0026.webp); } - .imageMaskCorner27 { --wc : url(/assets/waterColorMasks/corner/0027.webp); } - .imageMaskCorner28 { --wc : url(/assets/waterColorMasks/corner/0028.webp); } - .imageMaskCorner29 { --wc : url(/assets/waterColorMasks/corner/0029.webp); } - .imageMaskCorner30 { --wc : url(/assets/waterColorMasks/corner/0030.webp); } - .imageMaskCorner31 { --wc : url(/assets/waterColorMasks/corner/0031.webp); } - .imageMaskCorner32 { --wc : url(/assets/waterColorMasks/corner/0032.webp); } - .imageMaskCorner33 { --wc : url(/assets/waterColorMasks/corner/0033.webp); } - .imageMaskCorner34 { --wc : url(/assets/waterColorMasks/corner/0034.webp); } - .imageMaskCorner35 { --wc : url(/assets/waterColorMasks/corner/0035.webp); } - .imageMaskCorner36 { --wc : url(/assets/waterColorMasks/corner/0036.webp); } - .imageMaskCorner37 { --wc : url(/assets/waterColorMasks/corner/0037.webp); } + .imageMaskCorner { + &1 { --wc : url(/assets/waterColorMasks/corner/0001.webp); } + &2 { --wc : url(/assets/waterColorMasks/corner/0002.webp); } + &3 { --wc : url(/assets/waterColorMasks/corner/0003.webp); } + &4 { --wc : url(/assets/waterColorMasks/corner/0004.webp); } + &5 { --wc : url(/assets/waterColorMasks/corner/0005.webp); } + &6 { --wc : url(/assets/waterColorMasks/corner/0006.webp); } + &7 { --wc : url(/assets/waterColorMasks/corner/0007.webp); } + &8 { --wc : url(/assets/waterColorMasks/corner/0008.webp); } + &9 { --wc : url(/assets/waterColorMasks/corner/0009.webp); } + &10 { --wc : url(/assets/waterColorMasks/corner/0010.webp); } + &11 { --wc : url(/assets/waterColorMasks/corner/0011.webp); } + &12 { --wc : url(/assets/waterColorMasks/corner/0012.webp); } + &13 { --wc : url(/assets/waterColorMasks/corner/0013.webp); } + &14 { --wc : url(/assets/waterColorMasks/corner/0014.webp); } + &15 { --wc : url(/assets/waterColorMasks/corner/0015.webp); } + &16 { --wc : url(/assets/waterColorMasks/corner/0016.webp); } + &17 { --wc : url(/assets/waterColorMasks/corner/0017.webp); } + &18 { --wc : url(/assets/waterColorMasks/corner/0018.webp); } + &19 { --wc : url(/assets/waterColorMasks/corner/0019.webp); } + &20 { --wc : url(/assets/waterColorMasks/corner/0020.webp); } + &21 { --wc : url(/assets/waterColorMasks/corner/0021.webp); } + &22 { --wc : url(/assets/waterColorMasks/corner/0022.webp); } + &23 { --wc : url(/assets/waterColorMasks/corner/0023.webp); } + &24 { --wc : url(/assets/waterColorMasks/corner/0024.webp); } + &25 { --wc : url(/assets/waterColorMasks/corner/0025.webp); } + &26 { --wc : url(/assets/waterColorMasks/corner/0026.webp); } + &27 { --wc : url(/assets/waterColorMasks/corner/0027.webp); } + &28 { --wc : url(/assets/waterColorMasks/corner/0028.webp); } + &29 { --wc : url(/assets/waterColorMasks/corner/0029.webp); } + &30 { --wc : url(/assets/waterColorMasks/corner/0030.webp); } + &31 { --wc : url(/assets/waterColorMasks/corner/0031.webp); } + &32 { --wc : url(/assets/waterColorMasks/corner/0032.webp); } + &33 { --wc : url(/assets/waterColorMasks/corner/0033.webp); } + &34 { --wc : url(/assets/waterColorMasks/corner/0034.webp); } + &35 { --wc : url(/assets/waterColorMasks/corner/0035.webp); } + &36 { --wc : url(/assets/waterColorMasks/corner/0036.webp); } + &37 { --wc : url(/assets/waterColorMasks/corner/0037.webp); } + } } //***************************** diff --git a/themes/assets/waterColorMasks/center/0001.webp b/themes/assets/waterColorMasks/center/0001.webp new file mode 100644 index 000000000..7e3d73476 Binary files /dev/null and b/themes/assets/waterColorMasks/center/0001.webp differ diff --git a/themes/assets/waterColorMasks/center/0002.webp b/themes/assets/waterColorMasks/center/0002.webp new file mode 100644 index 000000000..d60bbeaf5 Binary files /dev/null and b/themes/assets/waterColorMasks/center/0002.webp differ diff --git a/themes/assets/waterColorMasks/center/0003.webp b/themes/assets/waterColorMasks/center/0003.webp new file mode 100644 index 000000000..69d96c4cc Binary files /dev/null and b/themes/assets/waterColorMasks/center/0003.webp differ diff --git a/themes/assets/waterColorMasks/center/0004.webp b/themes/assets/waterColorMasks/center/0004.webp new file mode 100644 index 000000000..781de4fac Binary files /dev/null and b/themes/assets/waterColorMasks/center/0004.webp differ diff --git a/themes/assets/waterColorMasks/center/0005.webp b/themes/assets/waterColorMasks/center/0005.webp new file mode 100644 index 000000000..e6d14b48a Binary files /dev/null and b/themes/assets/waterColorMasks/center/0005.webp differ diff --git a/themes/assets/waterColorMasks/center/0006.webp b/themes/assets/waterColorMasks/center/0006.webp new file mode 100644 index 000000000..e4b606d68 Binary files /dev/null and b/themes/assets/waterColorMasks/center/0006.webp differ diff --git a/themes/assets/waterColorMasks/center/0007.webp b/themes/assets/waterColorMasks/center/0007.webp new file mode 100644 index 000000000..1af90ce25 Binary files /dev/null and b/themes/assets/waterColorMasks/center/0007.webp differ diff --git a/themes/assets/waterColorMasks/center/0008.webp b/themes/assets/waterColorMasks/center/0008.webp new file mode 100644 index 000000000..4487aff50 Binary files /dev/null and b/themes/assets/waterColorMasks/center/0008.webp differ diff --git a/themes/assets/waterColorMasks/center/0009.webp b/themes/assets/waterColorMasks/center/0009.webp new file mode 100644 index 000000000..3524c76b8 Binary files /dev/null and b/themes/assets/waterColorMasks/center/0009.webp differ diff --git a/themes/assets/waterColorMasks/center/0010.webp b/themes/assets/waterColorMasks/center/0010.webp new file mode 100644 index 000000000..ea7da913f Binary files /dev/null and b/themes/assets/waterColorMasks/center/0010.webp differ diff --git a/themes/assets/waterColorMasks/center/0011.webp b/themes/assets/waterColorMasks/center/0011.webp new file mode 100644 index 000000000..74bb72526 Binary files /dev/null and b/themes/assets/waterColorMasks/center/0011.webp differ diff --git a/themes/assets/waterColorMasks/center/0012.webp b/themes/assets/waterColorMasks/center/0012.webp new file mode 100644 index 000000000..5ee3e668f Binary files /dev/null and b/themes/assets/waterColorMasks/center/0012.webp differ diff --git a/themes/assets/waterColorMasks/center/0013.webp b/themes/assets/waterColorMasks/center/0013.webp new file mode 100644 index 000000000..cdc6cec28 Binary files /dev/null and b/themes/assets/waterColorMasks/center/0013.webp differ diff --git a/themes/assets/waterColorMasks/center/0014.webp b/themes/assets/waterColorMasks/center/0014.webp new file mode 100644 index 000000000..0801848c5 Binary files /dev/null and b/themes/assets/waterColorMasks/center/0014.webp differ diff --git a/themes/assets/waterColorMasks/center/0015.webp b/themes/assets/waterColorMasks/center/0015.webp new file mode 100644 index 000000000..90f36fe21 Binary files /dev/null and b/themes/assets/waterColorMasks/center/0015.webp differ diff --git a/themes/assets/waterColorMasks/center/0016.webp b/themes/assets/waterColorMasks/center/0016.webp new file mode 100644 index 000000000..0d7e68597 Binary files /dev/null and b/themes/assets/waterColorMasks/center/0016.webp differ diff --git a/themes/assets/waterColorMasks/center/special.webp b/themes/assets/waterColorMasks/center/special.webp new file mode 100644 index 000000000..1a3f6240a Binary files /dev/null and b/themes/assets/waterColorMasks/center/special.webp differ