├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .husky
├── .gitignore
├── commit-msg
└── pre-commit
├── .prettierignore
├── .prettierrc.js
├── LICENSE.txt
├── README.md
├── commitlint.config.js
├── components
├── screen
│ └── Home
│ │ ├── Components
│ │ ├── CanvasWrapper.tsx
│ │ ├── EditorCanvas.tsx
│ │ ├── InputBox.tsx
│ │ └── index.ts
│ │ ├── Data
│ │ ├── FontPairs.ts
│ │ ├── Patterns.ts
│ │ └── index.ts
│ │ ├── Home.tsx
│ │ └── index.ts
└── shared
│ └── Header
│ ├── Header.tsx
│ └── index.ts
├── context
├── index.ts
└── inputContext.tsx
├── github
└── preview.png
├── hooks
├── index.ts
└── useAnalytics.tsx
├── lib
└── analytics
│ ├── analytics.ts
│ └── index.ts
├── next-env.d.ts
├── next-sitemap.config.js
├── next.config.js
├── package.json
├── pages
├── _app.tsx
├── _document.tsx
└── index.tsx
├── patterns
├── _defaults.js
├── _utils.js
├── anchors-away.js
├── architect.js
├── autumn.js
├── aztec.js
├── bamboo.js
├── bank-note.js
├── bathroom-floor.js
├── bevel-circle.js
├── boxes.js
├── brick-wall.js
├── bubbles.js
├── cage.js
├── charlie-brown.js
├── church-on-sunday.js
├── circles-and-squares.js
├── circuit-board.js
├── connections.js
├── cork-screw.js
├── current.js
├── curtain.js
├── cutout.js
├── death-star.js
├── diagonal-lines.js
├── diagonal-stripes.js
├── dominos.js
├── endless-clouds.js
├── eyes.js
├── falling-triangles.js
├── fancy-rectangles.js
├── flipped-diamonds.js
├── floating-cogs.js
├── floor-tile.js
├── formal-invitation.js
├── four-point-stars.js
├── glamorous.js
├── graph-paper.js
├── groovy.js
├── happy-intersection.js
├── heavy-rain.js
├── hexagons.js
├── hideout.js
├── houndstooth.js
├── i-like-food.js
├── intersecting-circles.js
├── jigsaw.js
├── jupiter.js
├── kiwi.js
├── leaf.js
├── lines-in-motion.js
├── lips.js
├── lisbon.js
├── melt.js
├── moroccan.js
├── morphing-diamonds.js
├── overcast.js
├── overlapping-circles.js
├── overlapping-diamonds.js
├── overlapping-hexagons.js
├── parkay-floor.js
├── piano-man.js
├── pie-factory.js
├── pixel-dots.js
├── plus.js
├── polka-dots.js
├── rails.js
├── rain.js
├── random-shapes.js
├── rounded-plus-connected.js
├── signal.js
├── skulls.js
├── slanted-stars.js
├── squares-in-squares.js
├── squares.js
├── stamp-collection.js
├── steel-beams.js
├── stripes.js
├── temple.js
├── texture.js
├── tic-tac-toe.js
├── tiny-checkers.js
├── topography.js
├── volcano-lamp.js
├── wallpaper.js
├── wiggle.js
├── x-equals.js
├── yyy.js
└── zig-zag.js
├── postcss.config.js
├── public
├── android-icon-144x144.png
├── android-icon-192x192.png
├── android-icon-36x36.png
├── android-icon-48x48.png
├── android-icon-72x72.png
├── android-icon-96x96.png
├── apple-icon-114x114.png
├── apple-icon-120x120.png
├── apple-icon-144x144.png
├── apple-icon-152x152.png
├── apple-icon-180x180.png
├── apple-icon-57x57.png
├── apple-icon-60x60.png
├── apple-icon-72x72.png
├── apple-icon-76x76.png
├── apple-icon-precomposed.png
├── apple-icon.png
├── browserconfig.xml
├── favicon-16x16.png
├── favicon-32x32.png
├── favicon-96x96.png
├── favicon.ico
├── manifest.json
├── ms-icon-144x144.png
├── ms-icon-150x150.png
├── ms-icon-310x310.png
├── ms-icon-70x70.png
├── robots.txt
├── sitemap-0.xml
└── sitemap.xml
├── styles
└── globals.css
├── tailwind.config.js
├── tailwind
├── tailwind.settings.fontSizes.js
├── tailwind.settings.js
└── tailwind.settings.screens.js
├── tsconfig.json
├── types
└── place.txt
├── utils
├── helpers
│ └── place.txt
└── scripts
│ └── place.txt
└── yarn.lock
/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .next
3 | tailwind
4 | tailwind.config.js
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | parser: '@typescript-eslint/parser',
4 | extends: [
5 | 'next',
6 | 'next/core-web-vitals',
7 | 'plugin:react/recommended',
8 | 'plugin:jsx-a11y/recommended',
9 | 'plugin:prettier/recommended',
10 | 'plugin:@typescript-eslint/recommended',
11 | ],
12 | plugins: ['react', 'simple-import-sort', 'import', '@typescript-eslint'],
13 | rules: {
14 | 'prettier/prettier': ['warn', {}, { usePrettierrc: true }],
15 | 'react/react-in-jsx-scope': 'off',
16 | 'react/prop-types': 'off',
17 | 'simple-import-sort/imports': 'error',
18 | 'simple-import-sort/exports': 'error',
19 | 'import/first': 'error',
20 | 'import/newline-after-import': 'error',
21 | 'import/no-duplicates': 'error',
22 | 'react/jsx-sort-props': [
23 | 'error',
24 | {
25 | ignoreCase: true,
26 | reservedFirst: true,
27 | },
28 | ],
29 | 'jsx-a11y/anchor-is-valid': [
30 | 'error',
31 | {
32 | components: ['Link'],
33 | specialLink: ['hrefLeft', 'hrefRight'],
34 | aspects: ['invalidHref', 'preferButton'],
35 | },
36 | ],
37 | },
38 | };
39 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 |
27 | # local env files
28 | .env.local
29 | .env.development.local
30 | .env.test.local
31 | .env.production.local
32 |
33 | # vercel
34 | .vercel
35 |
--------------------------------------------------------------------------------
/.husky/.gitignore:
--------------------------------------------------------------------------------
1 | _
2 |
--------------------------------------------------------------------------------
/.husky/commit-msg:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | yarn commitlint --edit $1
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | npm run precommit
5 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .next
--------------------------------------------------------------------------------
/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | semi: true,
3 | tabWidth: 2,
4 | printWidth: 80,
5 | singleQuote: true,
6 | trailingComma: 'es5',
7 | jsxBracketSameLine: true,
8 | useTabs: false,
9 | };
10 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2012-2022 Vadivazhagan Vadivel
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | OpenGrph
3 |
4 |
5 | Create open graph & cover images just by click of button 🚀
6 |
7 | 
8 |
9 | ## ⚡ Features
10 |
11 | - ❤️ 21 elegant looking font pairs to match your feel
12 | - ✨ 88 background patterns
13 | - 🎖️ 3 themes, 2 modes
14 | - ⚽ draggable elements in canvas
15 | - 📥 download images in `png` format
16 |
17 | ## ⚒️ Development
18 |
19 | ```
20 | git clone git@github.com:Grassper/OpenGrph.git
21 |
22 | yarn
23 |
24 | yarn dev // start local server
25 | ```
26 |
27 | ## 👇 Contribution
28 |
29 | Pull requests are welcome.
30 |
31 | _For major changes, please open an issue first to discuss what you would like to change._
32 |
33 | ## 🪪 License
34 |
35 | MIT - Vadivazhagan Vadivel 2022
36 |
37 | Don't forget to leave a ⭐ if you found this useful
38 |
--------------------------------------------------------------------------------
/commitlint.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | extends: ['@commitlint/config-conventional'],
3 | };
4 |
--------------------------------------------------------------------------------
/components/screen/Home/Components/CanvasWrapper.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { BsDownload } from 'react-icons/bs';
3 |
4 | import { InputContext } from '@/root/context';
5 |
6 | interface CanvasWrapper_ {
7 | children: React.ReactNode;
8 | }
9 |
10 | export const CanvasWrapper: React.FC = (props) => {
11 | const inputState = React.useContext(InputContext);
12 | const editorRef = React.useRef(null);
13 |
14 | const downloadHandler = async () => {
15 | const key = inputState.format as 'Png' | 'Jpeg';
16 |
17 | const { exportComponentAsJPEG, exportComponentAsPNG } = await import(
18 | 'react-component-export-image'
19 | );
20 |
21 | const formalFun = {
22 | Png: () =>
23 | exportComponentAsPNG(editorRef, {
24 | fileName: 'OpenGrph',
25 | }),
26 | Jpeg: () =>
27 | exportComponentAsJPEG(editorRef, {
28 | fileName: 'OpenGrph',
29 | }),
30 | };
31 |
32 | formalFun[key]();
33 | };
34 |
35 | return (
36 |
37 |
38 |
43 |
44 |
50 | {props.children}
51 |
52 |
53 | );
54 | };
55 |
--------------------------------------------------------------------------------
/components/screen/Home/Components/EditorCanvas.tsx:
--------------------------------------------------------------------------------
1 | import { motion } from 'framer-motion';
2 | import React from 'react';
3 |
4 | import { fontPairs, patterns } from '@/root/components/screen/Home/Data';
5 | import { InputContext } from '@/root/context';
6 |
7 | import { CanvasWrapper } from './CanvasWrapper';
8 |
9 | export const EditorCanvas = () => {
10 | const inputState = React.useContext(InputContext);
11 | const [backgroundImage, setBackgroundImage] = React.useState('');
12 |
13 | React.useEffect(() => {
14 | const patternHandler = async () => {
15 | if (inputState.pattern !== 'none') {
16 | const module = await import(
17 | `@/root/patterns/${patterns[inputState.pattern]}`
18 | );
19 | setBackgroundImage(module[Object.keys(module)[0]]('#fff'));
20 | } else {
21 | setBackgroundImage('');
22 | }
23 | };
24 |
25 | patternHandler();
26 | }, [inputState.pattern]);
27 |
28 | if (inputState.theme === 'Modern') {
29 | return (
30 |
31 |
32 |
33 |
47 | {inputState.title.substring(0, 70)}
48 |
49 |
65 | {inputState.description.substring(0, 160)}
66 |
67 |
68 |
74 |
75 |
76 | );
77 | }
78 |
79 | if (inputState.theme === 'Clean') {
80 | return (
81 |
82 |
83 |
84 |
98 | {inputState.title.substring(0, 70)}
99 |
100 |
116 | {inputState.description.substring(0, 160)}
117 |
118 |
119 |
120 |
121 | );
122 | }
123 |
124 | return (
125 |
126 |
127 |
133 |
134 |
147 | {inputState.title.substring(0, 70)}
148 |
149 |
165 | {inputState.description.substring(0, 160)}
166 |
167 |
168 |
169 |
170 | );
171 | };
172 |
--------------------------------------------------------------------------------
/components/screen/Home/Components/InputBox.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import {
4 | fontPairs as fontData,
5 | patterns as patternData,
6 | } from '@/root/components/screen/Home/Data';
7 | import { InputContext } from '@/root/context';
8 |
9 | export const InputBox: React.FC = () => {
10 | const inputState = React.useContext(InputContext);
11 |
12 | return (
13 |
14 |
15 |
16 |
Title
17 |
Max 70 chars
18 |
19 |
20 |
inputState.setTitle(e.target.value)}
24 | value={inputState.title}
25 | />
26 |
27 |
28 |
29 |
Description
30 |
Max 160 chars
31 |
32 |
inputState.setDescription(e.target.value)}
36 | value={inputState.description}
37 | />
38 |
39 |
40 |
Font pairs
41 |
68 |
69 |
70 |
71 |
Theme
72 |
80 |
81 |
82 |
Color
83 |
inputState.setColor(e.target.value)}
86 | type="color"
87 | value={inputState.color}
88 | />
89 |
90 |
91 |
92 |
93 |
Pattern
94 |
189 |
190 | {/*
191 |
Format
192 |
199 |
*/}
200 |
201 |
Mode
202 |
209 |
210 |
211 |
212 | );
213 | };
214 |
--------------------------------------------------------------------------------
/components/screen/Home/Components/index.ts:
--------------------------------------------------------------------------------
1 | export * from './EditorCanvas';
2 | export * from './InputBox';
3 |
--------------------------------------------------------------------------------
/components/screen/Home/Data/FontPairs.ts:
--------------------------------------------------------------------------------
1 | // leading-none line-height: 1;
2 | // leading-tight line-height: 1.25;
3 | // leading-snug line-height: 1.375;
4 | // leading-normal line-height: 1.5;
5 | // leading-relaxed line-height: 1.625;
6 | // leading-loose line-height: 2;
7 |
8 | export const fontPairs = {
9 | 'Open Sans + PT Sans': {
10 | title: {
11 | name: 'Open Sans',
12 | size: '45px',
13 | weight: 700,
14 | lineHeight: 1,
15 | fontStyle: 'normal',
16 | textTransform: 'none',
17 | },
18 | description: {
19 | name: 'PT Sans',
20 | size: '18px',
21 | weight: 400,
22 | lineHeight: 1.625,
23 | fontStyle: 'normal',
24 | textTransform: 'none',
25 | },
26 | },
27 | 'Quicksand + Source Sans Pro': {
28 | title: {
29 | name: 'Quicksand',
30 | size: '45px',
31 | weight: 700,
32 | lineHeight: 1,
33 | fontStyle: 'normal',
34 | textTransform: 'none',
35 | },
36 | description: {
37 | name: 'Source Sans Pro',
38 | size: '18px',
39 | weight: 400,
40 | lineHeight: 1.625,
41 | fontStyle: 'normal',
42 | textTransform: 'none',
43 | },
44 | },
45 | 'Yellowtail + Lato': {
46 | title: {
47 | name: 'Yellowtail',
48 | size: '45px',
49 | weight: 700,
50 | lineHeight: 1,
51 | fontStyle: 'normal',
52 | textTransform: 'none',
53 | },
54 | description: {
55 | name: 'Lato',
56 | size: '18px',
57 | weight: 400,
58 | lineHeight: 1.625,
59 | fontStyle: 'normal',
60 | textTransform: 'none',
61 | },
62 | },
63 | 'Yeseva One + Josefin Sans': {
64 | title: {
65 | name: 'Yeseva One',
66 | size: '45px',
67 | weight: 700,
68 | lineHeight: 1,
69 | fontStyle: 'normal',
70 | textTransform: 'none',
71 | },
72 | description: {
73 | name: 'Josefin Sans',
74 | size: '18px',
75 | weight: 400,
76 | lineHeight: 1.625,
77 | fontStyle: 'normal',
78 | textTransform: 'none',
79 | },
80 | },
81 | 'Open Sans Condensed + Lora': {
82 | title: {
83 | name: 'Open Sans Condensed',
84 | size: '45px',
85 | weight: 700,
86 | lineHeight: 1,
87 | fontStyle: 'normal',
88 | textTransform: 'none',
89 | },
90 | description: {
91 | name: 'Lora',
92 | size: '18px',
93 | weight: 400,
94 | lineHeight: 1.625,
95 | fontStyle: 'normal',
96 | textTransform: 'none',
97 | },
98 | },
99 | 'Raleway + Libre Baskerville': {
100 | title: {
101 | name: 'Raleway',
102 | size: '45px',
103 | weight: 700,
104 | lineHeight: 1,
105 | fontStyle: 'normal',
106 | textTransform: 'none',
107 | },
108 | description: {
109 | name: 'Libre Baskerville',
110 | size: '18px',
111 | weight: 400,
112 | lineHeight: 1.625,
113 | fontStyle: 'normal',
114 | textTransform: 'none',
115 | },
116 | },
117 | 'Rubik + Roboto Mono': {
118 | title: {
119 | name: 'Rubik',
120 | size: '45px',
121 | weight: 700,
122 | lineHeight: 1,
123 | fontStyle: 'normal',
124 | textTransform: 'none',
125 | },
126 | description: {
127 | name: 'Roboto Mono',
128 | size: '18px',
129 | weight: 400,
130 | lineHeight: 1.625,
131 | fontStyle: 'normal',
132 | textTransform: 'none',
133 | },
134 | },
135 | 'Playfair Display + Quattrocento Sans': {
136 | title: {
137 | name: 'Playfair Display',
138 | size: '45px',
139 | weight: 700,
140 | lineHeight: 1,
141 | fontStyle: 'normal',
142 | textTransform: 'none',
143 | },
144 | description: {
145 | name: 'Quattrocento Sans',
146 | size: '18px',
147 | weight: 400,
148 | lineHeight: 1.625,
149 | fontStyle: 'normal',
150 | textTransform: 'none',
151 | },
152 | },
153 | 'Merriweather Sans + Merriweather': {
154 | title: {
155 | name: 'Merriweather Sans',
156 | size: '45px',
157 | weight: 700,
158 | lineHeight: 1,
159 | fontStyle: 'normal',
160 | textTransform: 'none',
161 | },
162 | description: {
163 | name: 'Merriweather',
164 | size: '18px',
165 | weight: 400,
166 | lineHeight: 1.625,
167 | fontStyle: 'normal',
168 | textTransform: 'none',
169 | },
170 | },
171 | 'Oswald + Noto Serif': {
172 | title: {
173 | name: 'Oswald',
174 | size: '45px',
175 | weight: 700,
176 | lineHeight: 1,
177 | fontStyle: 'normal',
178 | textTransform: 'none',
179 | },
180 | description: {
181 | name: 'Noto Serif',
182 | size: '18px',
183 | weight: 400,
184 | lineHeight: 1.625,
185 | fontStyle: 'normal',
186 | textTransform: 'none',
187 | },
188 | },
189 | 'Lora + Poppins': {
190 | title: {
191 | name: 'Lora',
192 | size: '45px',
193 | weight: 700,
194 | lineHeight: 1,
195 | fontStyle: 'normal',
196 | textTransform: 'none',
197 | },
198 | description: {
199 | name: 'Poppins',
200 | size: '18px',
201 | weight: 400,
202 | lineHeight: 1.625,
203 | fontStyle: 'normal',
204 | textTransform: 'none',
205 | },
206 | },
207 | 'Lato + Crimson Text': {
208 | title: {
209 | name: 'Lato',
210 | size: '45px',
211 | weight: 700,
212 | lineHeight: 1,
213 | fontStyle: 'normal',
214 | textTransform: 'none',
215 | },
216 | description: {
217 | name: 'Crimson Text',
218 | size: '18px',
219 | weight: 400,
220 | lineHeight: 1.625,
221 | fontStyle: 'normal',
222 | textTransform: 'none',
223 | },
224 | },
225 | 'Great Vibes + Montserrat': {
226 | title: {
227 | name: 'Great Vibes',
228 | size: '45px',
229 | weight: 700,
230 | lineHeight: 1,
231 | fontStyle: 'normal',
232 | textTransform: 'none',
233 | },
234 | description: {
235 | name: 'Montserrat',
236 | size: '18px',
237 | weight: 400,
238 | lineHeight: 1.625,
239 | fontStyle: 'normal',
240 | textTransform: 'none',
241 | },
242 | },
243 | 'Mulish + Space Mono': {
244 | title: {
245 | name: 'Mulish',
246 | size: '45px',
247 | weight: 700,
248 | lineHeight: 1,
249 | fontStyle: 'normal',
250 | textTransform: 'none',
251 | },
252 | description: {
253 | name: 'Space Mono',
254 | size: '18px',
255 | weight: 400,
256 | lineHeight: 1.625,
257 | fontStyle: 'normal',
258 | textTransform: 'none',
259 | },
260 | },
261 | 'Fredoka One + ABeeZee': {
262 | title: {
263 | name: 'Fredoka One',
264 | size: '45px',
265 | weight: 700,
266 | lineHeight: 1,
267 | fontStyle: 'normal',
268 | textTransform: 'none',
269 | },
270 | description: {
271 | name: 'ABeeZee',
272 | size: '18px',
273 | weight: 400,
274 | lineHeight: 1.625,
275 | fontStyle: 'normal',
276 | textTransform: 'none',
277 | },
278 | },
279 | 'Fjalla One + Nunito': {
280 | title: {
281 | name: 'Fjalla One',
282 | size: '45px',
283 | weight: 700,
284 | lineHeight: 1,
285 | fontStyle: 'normal',
286 | textTransform: 'none',
287 | },
288 | description: {
289 | name: 'Nunito',
290 | size: '18px',
291 | weight: 400,
292 | lineHeight: 1.625,
293 | fontStyle: 'normal',
294 | textTransform: 'none',
295 | },
296 | },
297 | 'Teko + Montserrat': {
298 | title: {
299 | name: 'Teko',
300 | size: '45px',
301 | weight: 700,
302 | lineHeight: 1,
303 | fontStyle: 'normal',
304 | textTransform: 'none',
305 | },
306 | description: {
307 | name: 'Montserrat',
308 | size: '18px',
309 | weight: 400,
310 | lineHeight: 1.625,
311 | fontStyle: 'normal',
312 | textTransform: 'none',
313 | },
314 | },
315 | 'Bangers + Gudea': {
316 | title: {
317 | name: 'Bangers',
318 | size: '45px',
319 | weight: 700,
320 | lineHeight: 1,
321 | fontStyle: 'normal',
322 | textTransform: 'none',
323 | },
324 | description: {
325 | name: 'Gudea',
326 | size: '18px',
327 | weight: 400,
328 | lineHeight: 1.625,
329 | fontStyle: 'normal',
330 | textTransform: 'none',
331 | },
332 | },
333 | 'Copse + Mulish': {
334 | title: {
335 | name: 'Copse',
336 | size: '45px',
337 | weight: 700,
338 | lineHeight: 1,
339 | fontStyle: 'normal',
340 | textTransform: 'none',
341 | },
342 | description: {
343 | name: 'Mulish',
344 | size: '18px',
345 | weight: 400,
346 | lineHeight: 1.625,
347 | fontStyle: 'normal',
348 | textTransform: 'none',
349 | },
350 | },
351 | 'Anton + Roboto': {
352 | title: {
353 | name: 'Anton',
354 | size: '45px',
355 | weight: 700,
356 | lineHeight: 1,
357 | fontStyle: 'normal',
358 | textTransform: 'none',
359 | },
360 | description: {
361 | name: 'Roboto',
362 | size: '18px',
363 | weight: 400,
364 | lineHeight: 1.625,
365 | fontStyle: 'normal',
366 | textTransform: 'none',
367 | },
368 | },
369 | };
370 |
--------------------------------------------------------------------------------
/components/screen/Home/Data/Patterns.ts:
--------------------------------------------------------------------------------
1 | export const patterns = {
2 | none: '',
3 | jigsaw: 'jigsaw',
4 | overcast: 'overcast',
5 | formalInvitation: 'formal-invitation',
6 | topography: 'topography',
7 | texture: 'texture',
8 | jupiter: 'jupiter',
9 | architect: 'architect',
10 | cutout: 'cutout',
11 | hideout: 'hideout',
12 | graphPaper: 'graph-paper',
13 | yyy: 'yyy',
14 | squares: 'squares',
15 | fallingTriangles: 'falling-triangles',
16 | pianoMan: 'piano-man',
17 | pieFactory: 'pie-factory',
18 | dominos: 'dominos',
19 | hexagons: 'hexagons',
20 | charlieBrown: 'charlie-brown',
21 | autumn: 'autumn',
22 | temple: 'temple',
23 | stampCollection: 'stamp-collection',
24 | deathStar: 'death-star',
25 | churchOnSunday: 'church-on-sunday',
26 | iLikeFood: 'i-like-food',
27 | overlappingHexagons: 'overlapping-hexagons',
28 | fourPointStars: 'four-point-stars',
29 | bamboo: 'bamboo',
30 | bathroomFloor: 'bathroom-floor',
31 | corkScrew: 'cork-screw',
32 | happyIntersection: 'happy-intersection',
33 | kiwi: 'kiwi',
34 | lips: 'lips',
35 | lisbon: 'lisbon',
36 | randomShapes: 'random-shapes',
37 | steelBeams: 'steel-beams',
38 | tinyCheckers: 'tiny-checkers',
39 | xEquals: 'x-equals',
40 | anchorsAway: 'anchors-away',
41 | bevelCircle: 'bevel-circle',
42 | brickWall: 'brick-wall',
43 | fancyRectangles: 'fancy-rectangles',
44 | heavyRain: 'heavy-rain',
45 | overlappingCircles: 'overlapping-circles',
46 | plus: 'plus',
47 | roundedPlusConnected: 'rounded-plus-connected',
48 | volcanoLamp: 'volcano-lamp',
49 | wiggle: 'wiggle',
50 | bubbles: 'bubbles',
51 | cage: 'cage',
52 | connections: 'connections',
53 | current: 'current',
54 | diagonalStripes: 'diagonal-stripes',
55 | flippedDiamonds: 'flipped-diamonds',
56 | floatingCogs: 'floating-cogs',
57 | glamorous: 'glamorous',
58 | houndstooth: 'houndstooth',
59 | leaf: 'leaf',
60 | linesInMotion: 'lines-in-motion',
61 | moroccan: 'moroccan',
62 | morphingDiamonds: 'morphing-diamonds',
63 | rails: 'rails',
64 | rain: 'rain',
65 | skulls: 'skulls',
66 | squaresInSquares: 'squares-in-squares',
67 | stripes: 'stripes',
68 | ticTacToe: 'tic-tac-toe',
69 | zigZag: 'zig-zag',
70 | aztec: 'aztec',
71 | bankNote: 'bank-note',
72 | boxes: 'boxes',
73 | circlesAndSquares: 'circles-and-squares',
74 | circuitBoard: 'circuit-board',
75 | curtain: 'curtain',
76 | diagonalLines: 'diagonal-lines',
77 | endlessClouds: 'endless-clouds',
78 | eyes: 'eyes',
79 | floorTile: 'floor-tile',
80 | groovy: 'groovy',
81 | intersectingCircles: 'intersecting-circles',
82 | melt: 'melt',
83 | overlappingDiamonds: 'overlapping-diamonds',
84 | parkayFloor: 'parkay-floor',
85 | pixelDots: 'pixel-dots',
86 | polkaDots: 'polka-dots',
87 | signal: 'signal',
88 | slantedStars: 'slanted-stars',
89 | wallpaper: 'wallpaper',
90 | };
91 |
--------------------------------------------------------------------------------
/components/screen/Home/Data/index.ts:
--------------------------------------------------------------------------------
1 | export * from './FontPairs';
2 | export * from './Patterns';
3 |
--------------------------------------------------------------------------------
/components/screen/Home/Home.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import { Header } from '@/root/components/shared/Header';
4 | import { InputContextProvider } from '@/root/context';
5 |
6 | import { EditorCanvas, InputBox } from './Components';
7 |
8 | export const Home: React.FC = () => {
9 | return (
10 |
11 |
12 |
13 |
19 |
20 |
Graph editor is accessible only in bigger screen above 1440px
21 |
22 |
23 |
24 | );
25 | };
26 |
27 | export default Home;
28 |
--------------------------------------------------------------------------------
/components/screen/Home/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Home';
2 |
--------------------------------------------------------------------------------
/components/shared/Header/Header.tsx:
--------------------------------------------------------------------------------
1 | /* eslint-disable jsx-a11y/img-redundant-alt */
2 | /* eslint-disable @next/next/no-img-element */
3 | import Link from 'next/link';
4 | import React from 'react';
5 | import { AiFillGithub, AiFillStar } from 'react-icons/ai';
6 | import { BiDna } from 'react-icons/bi';
7 |
8 | export const Header: React.FC = () => {
9 | return (
10 |
11 |
12 |
13 |
14 |
15 |
16 | OpenGrph
17 |
18 |
19 |
42 |
43 |
44 |
45 | );
46 | };
47 |
--------------------------------------------------------------------------------
/components/shared/Header/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Header';
2 |
--------------------------------------------------------------------------------
/context/index.ts:
--------------------------------------------------------------------------------
1 | export * from './inputContext';
2 |
--------------------------------------------------------------------------------
/context/inputContext.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import {
4 | fontPairs as fontData,
5 | patterns as patternData,
6 | } from '@/root/components/screen/Home/Data';
7 |
8 | interface PropsTypes {
9 | children: React.ReactNode;
10 | }
11 |
12 | interface ContextValues {
13 | urlFetch: string;
14 | setUrlFetch: React.Dispatch>;
15 | title: string;
16 | setTitle: React.Dispatch>;
17 | description: string;
18 | setDescription: React.Dispatch>;
19 | theme: string;
20 | setTheme: React.Dispatch>;
21 | color: string;
22 | setColor: React.Dispatch>;
23 | pattern: keyof typeof patternData;
24 | setPattern: React.Dispatch>;
25 | format: string;
26 | setFormat: React.Dispatch>;
27 | mode: string;
28 | setMode: React.Dispatch>;
29 | fontPairs: keyof typeof fontData;
30 | setFontPairs: React.Dispatch>;
31 | }
32 |
33 | export const InputContext = React.createContext({
34 | urlFetch: '',
35 | setUrlFetch: () => undefined,
36 | title: '',
37 | setTitle: () => undefined,
38 | description: '',
39 | setDescription: () => undefined,
40 | theme: 'Minimal',
41 | setTheme: () => undefined,
42 | color: '#0B5351',
43 | setColor: () => undefined,
44 | pattern: 'jupiter',
45 | setPattern: () => undefined,
46 | format: '1200 x 630',
47 | setFormat: () => undefined,
48 | mode: 'Dark',
49 | setMode: () => undefined,
50 | fontPairs: 'Bangers + Gudea',
51 | setFontPairs: () => undefined,
52 | });
53 |
54 | export const InputContextProvider: React.FC = ({ children }) => {
55 | const [urlFetch, setUrlFetch] = React.useState('');
56 | const [title, setTitle] = React.useState('Hello buddy, checkout opengrph!');
57 | const [description, setDescription] = React.useState(
58 | 'Now, You have an ability to create opengraph cover just by click of buttton'
59 | );
60 | const [theme, setTheme] = React.useState('Minimal');
61 | const [color, setColor] = React.useState('#0B5351');
62 | const [mode, setMode] = React.useState('Dark');
63 | const [pattern, setPattern] =
64 | React.useState('jupiter');
65 | const [format, setFormat] = React.useState('Png');
66 | const [fontPairs, setFontPairs] =
67 | React.useState('Bangers + Gudea');
68 |
69 | const contextValues: ContextValues = {
70 | urlFetch,
71 | setUrlFetch,
72 | title,
73 | setTitle,
74 | description,
75 | setDescription,
76 | theme,
77 | setTheme,
78 | color,
79 | setColor,
80 | pattern,
81 | setPattern,
82 | format,
83 | setFormat,
84 | fontPairs,
85 | setFontPairs,
86 | mode,
87 | setMode,
88 | };
89 |
90 | return (
91 |
92 | {children}
93 |
94 | );
95 | };
96 |
--------------------------------------------------------------------------------
/github/preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/github/preview.png
--------------------------------------------------------------------------------
/hooks/index.ts:
--------------------------------------------------------------------------------
1 | export * from './useAnalytics';
2 |
--------------------------------------------------------------------------------
/hooks/useAnalytics.tsx:
--------------------------------------------------------------------------------
1 | import { useRouter } from 'next/router';
2 | import { useEffect } from 'react';
3 |
4 | import { pageview } from '@/root/lib/analytics';
5 |
6 | function handleRouteChange(url: URL) {
7 | if (process.env.NODE_ENV !== 'production') return;
8 | pageview(url);
9 | }
10 |
11 | export const useAnalytics = (): void => {
12 | const router = useRouter();
13 |
14 | useEffect(() => {
15 | router.events.on('routeChangeComplete', handleRouteChange);
16 |
17 | return function cleanup() {
18 | router.events.off('routeChangeComplete', handleRouteChange);
19 | };
20 | }, [router.events]);
21 | };
22 |
--------------------------------------------------------------------------------
/lib/analytics/analytics.ts:
--------------------------------------------------------------------------------
1 | interface GTagEvent {
2 | action: string;
3 | category: string;
4 | label: string;
5 | value: number;
6 | }
7 |
8 | export const GA_TRACKING_ID = process.env.NEXT_PUBLIC_GA_ID as string;
9 |
10 | export const pageview = (url: URL): void => {
11 | window.gtag('config', GA_TRACKING_ID, { page_path: url });
12 | };
13 |
14 | export const event = ({ action, category, label, value }: GTagEvent): void => {
15 | window.gtag('event', action, {
16 | event_category: category,
17 | event_label: label,
18 | value: value,
19 | });
20 | };
21 |
--------------------------------------------------------------------------------
/lib/analytics/index.ts:
--------------------------------------------------------------------------------
1 | export * from './analytics';
2 |
--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | // NOTE: This file should not be edited
5 | // see https://nextjs.org/docs/basic-features/typescript for more information.
6 |
--------------------------------------------------------------------------------
/next-sitemap.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | siteUrl: 'https://www.opengrph.blockscribers.com', // replace example with your domain
3 | generateRobotsTxt: true,
4 | sitemapSize: 7000,
5 | };
6 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | swcMinify: true,
3 | reactStrictMode: true,
4 | webpack: (config) => {
5 | Object.assign(config.resolve.alias, {
6 | react: 'preact/compat',
7 | 'react-dom/test-utils': 'preact/test-utils',
8 | 'react-dom': 'preact/compat',
9 | 'react/jsx-runtime': 'preact/jsx-runtime',
10 | });
11 |
12 | return config;
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nextjs-typescript-starter-kit",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "postbuild": "next-sitemap --config ./next-sitemap.config.js",
9 | "start": "next start",
10 | "prepare": "husky install",
11 | "lint": "eslint \"**/*.{js,jsx,ts,tsx}\"",
12 | "lint-fix": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix",
13 | "precommit": "lint-staged && pretty-quick --staged",
14 | "format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,css,md}\" --config ./.prettierrc.js"
15 | },
16 | "dependencies": {
17 | "@fontsource/abeezee": "^4.5.8",
18 | "@fontsource/anton": "^4.5.7",
19 | "@fontsource/bangers": "^4.5.7",
20 | "@fontsource/copse": "^4.5.8",
21 | "@fontsource/crimson-text": "^4.5.2",
22 | "@fontsource/fjalla-one": "^4.5.7",
23 | "@fontsource/fredoka-one": "^4.5.7",
24 | "@fontsource/great-vibes": "^4.5.8",
25 | "@fontsource/gudea": "^4.5.7",
26 | "@fontsource/josefin-sans": "^4.5.6",
27 | "@fontsource/lato": "^4.5.5",
28 | "@fontsource/libre-baskerville": "^4.5.5",
29 | "@fontsource/lora": "^4.5.6",
30 | "@fontsource/merriweather": "^4.5.8",
31 | "@fontsource/merriweather-sans": "^4.5.5",
32 | "@fontsource/montserrat": "^4.5.7",
33 | "@fontsource/montserrat-alternates": "^4.5.5",
34 | "@fontsource/mulish": "^4.5.7",
35 | "@fontsource/noto-serif": "^4.5.7",
36 | "@fontsource/nunito": "^4.5.8",
37 | "@fontsource/open-sans": "^4.5.8",
38 | "@fontsource/open-sans-condensed": "^4.5.5",
39 | "@fontsource/oswald": "^4.5.7",
40 | "@fontsource/playfair-display": "^4.5.6",
41 | "@fontsource/poppins": "^4.5.5",
42 | "@fontsource/pt-sans": "^4.5.5",
43 | "@fontsource/quattrocento-sans": "^4.5.5",
44 | "@fontsource/quicksand": "^4.5.6",
45 | "@fontsource/raleway": "^4.5.5",
46 | "@fontsource/roboto": "^4.5.5",
47 | "@fontsource/roboto-mono": "^4.5.7",
48 | "@fontsource/rubik": "^4.5.6",
49 | "@fontsource/source-code-pro": "^4.5.6",
50 | "@fontsource/source-sans-pro": "^4.5.6",
51 | "@fontsource/space-mono": "^4.5.5",
52 | "@fontsource/teko": "^4.5.5",
53 | "@fontsource/yellowtail": "^4.5.7",
54 | "@fontsource/yeseva-one": "^4.5.5",
55 | "framer-motion": "^6.3.3",
56 | "next": "12.1.5",
57 | "next-seo": "^5.4.0",
58 | "next-themes": "^0.1.1",
59 | "preact": "^10.7.1",
60 | "react": "18.1.0",
61 | "react-component-export-image": "^1.0.6",
62 | "react-dom": "18.1.0",
63 | "react-icons": "^4.3.1"
64 | },
65 | "devDependencies": {
66 | "@commitlint/cli": "^16.2.4",
67 | "@commitlint/config-conventional": "^16.2.4",
68 | "@types/gtag.js": "^0.0.10",
69 | "@types/nprogress": "^0.2.0",
70 | "@types/react": "18.0.8",
71 | "@typescript-eslint/eslint-plugin": "^5.21.0",
72 | "@typescript-eslint/parser": "^5.21.0",
73 | "autoprefixer": "^10.4.5",
74 | "eslint": "8.14.0",
75 | "eslint-config-next": "12.1.5",
76 | "eslint-config-prettier": "^8.3.0",
77 | "eslint-plugin-import": "^2.23.4",
78 | "eslint-plugin-jsx-a11y": "^6.5.1",
79 | "eslint-plugin-prettier": "^4.0.0",
80 | "eslint-plugin-react": "^7.29.4",
81 | "eslint-plugin-react-hooks": "^4.5.0",
82 | "eslint-plugin-simple-import-sort": "^7.0.0",
83 | "husky": "^7.0.4",
84 | "lint-staged": "^12.4.1",
85 | "next-sitemap": "^2.5.20",
86 | "postcss": "^8.4.12",
87 | "prettier": "^2.6.2",
88 | "pretty-quick": "^3.1.3",
89 | "tailwindcss": "^3.0.24",
90 | "typescript": "4.6.3"
91 | },
92 | "lint-staged": {
93 | "**/*.{js,jsx,ts,tsx}": "eslint --fix"
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/pages/_app.tsx:
--------------------------------------------------------------------------------
1 | import '../styles/globals.css';
2 | import '@fontsource/open-sans';
3 | import '@fontsource/pt-sans';
4 | import '@fontsource/quicksand';
5 | import '@fontsource/source-sans-pro';
6 | import '@fontsource/yellowtail';
7 | import '@fontsource/lato';
8 | import '@fontsource/yeseva-one';
9 | import '@fontsource/josefin-sans';
10 | import '@fontsource/open-sans-condensed';
11 | import '@fontsource/lora';
12 | import '@fontsource/raleway';
13 | import '@fontsource/libre-baskerville';
14 | import '@fontsource/rubik';
15 | import '@fontsource/roboto-mono';
16 | import '@fontsource/playfair-display';
17 | import '@fontsource/quattrocento-sans';
18 | import '@fontsource/merriweather-sans';
19 | import '@fontsource/merriweather';
20 | import '@fontsource/oswald';
21 | import '@fontsource/noto-serif';
22 | import '@fontsource/poppins';
23 | import '@fontsource/crimson-text';
24 | import '@fontsource/great-vibes';
25 | import '@fontsource/montserrat';
26 | import '@fontsource/mulish';
27 | import '@fontsource/space-mono';
28 | import '@fontsource/fredoka-one';
29 | import '@fontsource/abeezee';
30 | import '@fontsource/fjalla-one';
31 | import '@fontsource/nunito';
32 | import '@fontsource/teko';
33 | import '@fontsource/bangers';
34 | import '@fontsource/gudea';
35 | import '@fontsource/copse';
36 | import '@fontsource/anton';
37 | import '@fontsource/roboto';
38 | import '@fontsource/montserrat-alternates/400.css';
39 | import '@fontsource/montserrat-alternates/500.css';
40 | import '@fontsource/montserrat-alternates/600.css';
41 | import '@fontsource/montserrat-alternates/700.css';
42 | import '@fontsource/montserrat-alternates/800.css';
43 |
44 | import type { AppProps } from 'next/app';
45 | import { DefaultSeo, NextSeo } from 'next-seo';
46 | import { ThemeProvider } from 'next-themes';
47 |
48 | import { useAnalytics } from '@/root/hooks/useAnalytics';
49 |
50 | const MyApp: React.FC = ({ Component, pageProps }) => {
51 | useAnalytics();
52 |
53 | return (
54 | <>
55 |
60 |
173 |
174 |
175 |
176 | >
177 | );
178 | };
179 | export default MyApp;
180 |
--------------------------------------------------------------------------------
/pages/_document.tsx:
--------------------------------------------------------------------------------
1 | import Document, {
2 | DocumentContext,
3 | DocumentInitialProps,
4 | Head,
5 | Html,
6 | Main,
7 | NextScript,
8 | } from 'next/document';
9 |
10 | import { GA_TRACKING_ID } from '@/root/lib/analytics';
11 |
12 | export default class MyDocument extends Document {
13 | static async getInitialProps(
14 | ctx: DocumentContext
15 | ): Promise {
16 | const initialProps = await Document.getInitialProps(ctx);
17 | return initialProps;
18 | }
19 |
20 | render(): JSX.Element {
21 | return (
22 |
23 |
24 | {process.env.NODE_ENV === 'production' && (
25 | <>
26 | {/* Google analytics tracking */}
27 |
32 |
44 | >
45 | )}
46 |
47 |
48 |
49 |
50 |
51 |
52 | );
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/pages/index.tsx:
--------------------------------------------------------------------------------
1 | // import { BillBoard } from '@/root/components/shared/BillBoard';
2 |
3 | import { Home } from '@/root/components/screen/Home';
4 |
5 | const Index: React.FC = () => {
6 | return ;
7 | };
8 |
9 | export default Index;
10 |
--------------------------------------------------------------------------------
/patterns/_defaults.js:
--------------------------------------------------------------------------------
1 | export const defaultFill = '#000000';
2 | export const defaultOpacity = 1;
3 |
--------------------------------------------------------------------------------
/patterns/_utils.js:
--------------------------------------------------------------------------------
1 | export const unhex = (str) => str.substring(str.indexOf('#') + 1);
2 |
--------------------------------------------------------------------------------
/patterns/anchors-away.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const anchorsAway = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2280%22%20height%3D%2280%22%20viewBox%3D%220%200%2080%2080%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.392%2014v15.95c-3.278-.325-6.09-2.233-7.66-4.95l3.464-2L0%2020.804%202.885%2025.8C4.93%2029.498%208.87%2032%2013.392%2032c4.524%200%208.463-2.503%2010.508-6.2l2.885-4.996L18.588%2023l3.466%202c-1.57%202.717-4.384%204.625-7.662%204.95V14h5v-2h-5V7.874c1.726-.444%203-2.01%203-3.874%200-2.21-1.79-4-4-4s-4%201.79-4%204c0%201.864%201.275%203.43%203%203.874V12h-5v2h5zm1-8c1.105%200%202-.895%202-2s-.895-2-2-2c-1.104%200-2%20.895-2%202s.896%202%202%202zm39%2048v15.95c-3.278-.325-6.09-2.233-7.66-4.95l3.464-2L40%2060.804l2.885%204.997C44.93%2069.498%2048.87%2072%2053.392%2072c4.524%200%208.463-2.503%2010.508-6.2l2.885-4.996L58.588%2063l3.466%202c-1.57%202.717-4.384%204.625-7.662%204.95V54h5v-2h-5v-4.126c1.726-.444%203-2.01%203-3.874%200-2.21-1.79-4-4-4s-4%201.79-4%204c0%201.864%201.275%203.43%203%203.874V52h-5v2h5zm1-8c1.105%200%202-.895%202-2s-.895-2-2-2c-1.104%200-2%20.895-2%202s.896%202%202%202zm-40%2014c1.105%200%202-.895%202-2s-.895-2-2-2c-1.104%200-2%20.895-2%202s.896%202%202%202zm40-40c1.105%200%202-.895%202-2s-.895-2-2-2c-1.104%200-2%20.895-2%202s.896%202%202%202z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/architect.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const architect = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20width%3D%22100%22%20height%3D%22199%22%20viewBox%3D%220%200%20100%20199%22%3E%3Cpath%20d%3D%22M0%20199V0h1v1.99L100%20199h-1.12L1%204.22V199H0zM100%202h-.12l-1-2H100v2z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/autumn.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const autumn = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2288%22%20height%3D%2224%22%20viewBox%3D%220%200%2088%2024%22%3E%3Cpath%20d%3D%22M10%200l30%2015%202%201V2.18A10%2010%200%200%200%2041.76%200H39.7a8%208%200%200%201%20.3%202.18v10.58L14.47%200H10zm31.76%2024a10%2010%200%200%200-5.29-6.76L4%201%202%200v13.82a10%2010%200%200%200%205.53%208.94L10%2024h4.47l-6.05-3.02A8%208%200%200%201%204%2013.82V3.24l31.58%2015.78A8%208%200%200%201%2039.7%2024h2.06zM78%2024l2.47-1.24A10%2010%200%200%200%2086%2013.82V0l-2%201-32.47%2016.24A10%2010%200%200%200%2046.24%2024h2.06a8%208%200%200%201%204.12-4.98L84%203.24v10.58a8%208%200%200%201-4.42%207.16L73.53%2024H78zm0-24L48%2015l-2%201V2.18A10%2010%200%200%201%2046.24%200h2.06a8%208%200%200%200-.3%202.18v10.58L73.53%200H78z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/aztec.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const aztec = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2232%22%20height%3D%2264%22%20viewBox%3D%220%200%2032%2064%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eaztec%3C%2Ftitle%3E%3Cpath%20d%3D%22M0%2028h20V16h-4v8H4V4h28v28h-4V8H8v12h4v-8h12v20H0v-4zm12%208h20v4H16v24H0v-4h12V36zm16%2012h-4v12h8v4H20V44h12v12h-4v-8zM0%2036h8v20H0v-4h4V40H0v-4z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/bamboo.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const bamboo = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2232%22%20width%3D%2216%22%20viewBox%3D%220%200%2016%2032%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20d%3D%22M0%2024h4v2H0v-2zm0%204h6v2H0v-2zm0-8h2v2H0v-2zM0%200h4v2H0V0zm0%204h2v2H0V4zm16%2020h-6v2h6v-2zm0%204H8v2h8v-2zm0-8h-4v2h4v-2zm0-20h-6v2h6V0zm0%204h-4v2h4V4zm-2%2012h2v2h-2v-2zm0-8h2v2h-2V8zM2%208h10v2H2V8zm0%208h10v2H2v-2zm-2-4h14v2H0v-2zm4-8h6v2H4V4zm0%2016h6v2H4v-2zM6%200h2v2H6V0zm0%2024h2v2H6v-2z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/bank-note.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const bankNote = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%22100%22%20height%3D%2220%22%20viewBox%3D%220%200%20100%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Ebank-note%3C%2Ftitle%3E%3Cpath%20d%3D%22M21.184%2020c.357-.13.72-.264%201.088-.402l1.768-.661C33.64%2015.347%2039.647%2014%2050%2014c10.271%200%2015.362%201.222%2024.629%204.928.955.383%201.869.74%202.75%201.072h6.225c-2.51-.73-5.139-1.691-8.233-2.928C65.888%2013.278%2060.562%2012%2050%2012c-10.626%200-16.855%201.397-26.66%205.063l-1.767.662c-2.475.923-4.66%201.674-6.724%202.275h6.335zm0-20C13.258%202.892%208.077%204%200%204V2c5.744%200%209.951-.574%2014.85-2h6.334zM77.38%200C85.239%202.966%2090.502%204%20100%204V2c-6.842%200-11.386-.542-16.396-2h-6.225zM0%2014c8.44%200%2013.718-1.21%2022.272-4.402l1.768-.661C33.64%205.347%2039.647%204%2050%204c10.271%200%2015.362%201.222%2024.629%204.928C84.112%2012.722%2089.438%2014%20100%2014v-2c-10.271%200-15.362-1.222-24.629-4.928C65.888%203.278%2060.562%202%2050%202%2039.374%202%2033.145%203.397%2023.34%207.063l-1.767.662C13.223%2010.84%208.163%2012%200%2012v2z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/bathroom-floor.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const bathroomFloor = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2280%22%20width%3D%2280%22%20viewBox%3D%220%200%2080%2080%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20d%3D%22M0%200h40v40H0V0zm40%2040h40v40H40V40zm0-40h2l-2%202V0zm0%204l4-4h2l-6%206V4zm0%204l8-8h2L40%2010V8zm0%204L52%200h2L40%2014v-2zm0%204L56%200h2L40%2018v-2zm0%204L60%200h2L40%2022v-2zm0%204L64%200h2L40%2026v-2zm0%204L68%200h2L40%2030v-2zm0%204L72%200h2L40%2034v-2zm0%204L76%200h2L40%2038v-2zm0%204L80%200v2L42%2040h-2zm4%200L80%204v2L46%2040h-2zm4%200L80%208v2L50%2040h-2zm4%200l28-28v2L54%2040h-2zm4%200l24-24v2L58%2040h-2zm4%200l20-20v2L62%2040h-2zm4%200l16-16v2L66%2040h-2zm4%200l12-12v2L70%2040h-2zm4%200l8-8v2l-6%206h-2zm4%200l4-4v2l-2%202h-2z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/bevel-circle.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const bevelCircle = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2238%22%20height%3D%2238%22%20viewBox%3D%220%200%2038%2038%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10.414%2029l-8%208h33.172l-8-8H10.414zM9%2027.586l-8%208V2.414l8%208v17.172zM10.414%209l-8-8h33.172l-8%208H10.414zM29%2010.414l8-8v33.172l-8-8V10.414zM11%2011h16v16H11V11zm8%2014c3.314%200%206-2.686%206-6s-2.686-6-6-6-6%202.686-6%206%202.686%206%206%206zm0-2c2.21%200%204-1.79%204-4s-1.79-4-4-4-4%201.79-4%204%201.79%204%204%204zM0%200h38v38H0V0z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/boxes.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const boxes = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Ebozes%3C%2Ftitle%3E%3Cpath%20d%3D%22M0%200h20L0%2020z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/brick-wall.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const brickWall = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2242%22%20height%3D%2244%22%20viewBox%3D%220%200%2042%2044%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M0%200h42v44H0V0zm1%201h40v20H1V1zM0%2023h20v20H0V23zm22%200h20v20H22V23z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/bubbles.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const bubbles = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%22100%22%20height%3D%22100%22%20viewBox%3D%220%200%20100%20100%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Ebubbles%3C%2Ftitle%3E%3Cpath%20d%3D%22M11%2018c3.866%200%207-3.134%207-7s-3.134-7-7-7-7%203.134-7%207%203.134%207%207%207zm48%2025c3.866%200%207-3.134%207-7s-3.134-7-7-7-7%203.134-7%207%203.134%207%207%207zm-43-7c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm63%2031c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zM34%2090c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm56-76c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zM12%2086c2.21%200%204-1.79%204-4s-1.79-4-4-4-4%201.79-4%204%201.79%204%204%204zm28-65c2.21%200%204-1.79%204-4s-1.79-4-4-4-4%201.79-4%204%201.79%204%204%204zm23-11c2.761%200%205-2.239%205-5s-2.239-5-5-5-5%202.239-5%205%202.239%205%205%205zm-6%2060c2.21%200%204-1.79%204-4s-1.79-4-4-4-4%201.79-4%204%201.79%204%204%204zm29%2022c2.761%200%205-2.239%205-5s-2.239-5-5-5-5%202.239-5%205%202.239%205%205%205zM32%2063c2.761%200%205-2.239%205-5s-2.239-5-5-5-5%202.239-5%205%202.239%205%205%205zm57-13c2.761%200%205-2.239%205-5s-2.239-5-5-5-5%202.239-5%205%202.239%205%205%205zm-9-21c1.105%200%202-.895%202-2s-.895-2-2-2-2%20.895-2%202%20.895%202%202%202zM60%2091c1.105%200%202-.895%202-2s-.895-2-2-2-2%20.895-2%202%20.895%202%202%202zM35%2041c1.105%200%202-.895%202-2s-.895-2-2-2-2%20.895-2%202%20.895%202%202%202zM12%2060c1.105%200%202-.895%202-2s-.895-2-2-2-2%20.895-2%202%20.895%202%202%202z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/cage.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const cage = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2232%22%20height%3D%2226%22%20viewBox%3D%220%200%2032%2026%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Ecage%3C%2Ftitle%3E%3Cpath%20d%3D%22M14%200v3.994C14%207.864%2010.858%2011%207%2011c-3.866%200-7-3.138-7-7.006V0h2v4.005C2%206.764%204.239%209%207%209c2.756%200%205-2.236%205-4.995V0h2zm0%2026v-5.994C14%2016.138%2010.866%2013%207%2013c-3.858%200-7%203.137-7%207.006V26h2v-6.005C2%2017.236%204.244%2015%207%2015c2.761%200%205%202.236%205%204.995V26h2zm2-18.994C16%203.136%2019.142%200%2023%200c3.866%200%207%203.138%207%207.006v9.988C30%2020.864%2026.858%2024%2023%2024c-3.866%200-7-3.138-7-7.006V7.006zm2-.01C18%204.235%2020.244%202%2023%202c2.761%200%205%202.236%205%204.995v10.01C28%2019.764%2025.756%2022%2023%2022c-2.761%200-5-2.236-5-4.995V6.995z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/charlie-brown.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const charlieBrown = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2212%22%20viewBox%3D%220%200%2020%2012%22%3E%3Cpath%20d%3D%22M9.8%2012L0%202.2V.8l10%2010%2010-10v1.4L10.2%2012h-.4zm-4%200L0%206.2V4.8L7.2%2012H5.8zm8.4%200L20%206.2V4.8L12.8%2012h1.4zM9.8%200l.2.2.2-.2h-.4zm-4%200L10%204.2%2014.2%200h-1.4L10%202.8%207.2%200H5.8z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/church-on-sunday.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const churchOnSunday = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2280%22%20height%3D%2280%22%20viewBox%3D%220%200%2080%2080%22%3E%3Cpath%20d%3D%22M77.17%200H80v2.83l-.1.1A39.9%2039.9%200%200%201%2074.64%2020a39.9%2039.9%200%200%201%205.24%2017.06l.11.11v2.89c-.01%206.9-1.8%2013.79-5.35%2019.94A39.96%2039.96%200%200%201%2080%2079.94V80h-2.83L66.84%2069.66a39.83%2039.83%200%200%201-24.1%2010.25l.09.09h-5.66l.1-.1c-8.7-.58-17.22-4-24.1-10.23L2.82%2080H0v-.06c.01-6.9%201.8-13.8%205.35-19.94A39.96%2039.96%200%200%201%200%2040.06v-2.89l.1-.1A39.9%2039.9%200%200%201%205.36%2020%2039.9%2039.9%200%200%201%20.1%202.94L0%202.83V0h2.83l-.1.1a39.83%2039.83%200%200%201%2024.1%2010.24L37.18%200H40c0%206.92-1.78%2013.83-5.35%2020A39.96%2039.96%200%200%201%2040%2040c0-6.92%201.78-13.83%205.35-20A39.96%2039.96%200%200%201%2040%200h2.83l10.33%2010.34A39.83%2039.83%200%200%201%2077.26.09L77.17%200zm.77%2077.94c-.3-5.52-1.8-11-4.49-16a40.18%2040.18%200%200%201-5.17%206.34l9.66%209.66zm-12.52-9.7l-6.83-6.83-5.46%205.46-1.41%201.41-9.66%209.66c8.4-.45%2016.69-3.68%2023.36-9.7zm-23.07%206.58l7.99-7.98a40.05%2040.05%200%200%201-3.79-4.9%2037.88%2037.88%200%200%200-4.2%2012.88zM47.68%2060a37.98%2037.98%200%200%200%204.07%205.42L57.17%2060l-5.42-5.42A38%2038%200%200%200%2047.68%2060zm2.66-6.84a40.06%2040.06%200%200%200-3.79%204.9%2037.88%2037.88%200%200%201-4.2-12.88l7.99%207.98zm1.38-1.44l1.41%201.41%205.46%205.46%206.83-6.84a37.85%2037.85%200%200%200-23.36-9.7l9.66%209.67zM60%2060l6.87%206.87A38.1%2038.1%200%200%200%2072.32%2060a38.11%2038.11%200%200%200-5.45-6.87L60%2060zm-14.65%200a39.9%2039.9%200%200%200-5.24%2017.06l-.11.11-.1-.1A39.9%2039.9%200%200%200%2034.64%2060a39.9%2039.9%200%200%200%205.24-17.06l.11-.11.1.1A39.9%2039.9%200%200%200%2045.36%2060zm9.23-48.25a37.85%2037.85%200%200%201%2023.36-9.7l-9.66%209.67-1.41%201.41-5.46%205.46-6.83-6.84zm13.67%2013.67L62.83%2020l5.42-5.42A38%2038%200%200%201%2072.32%2020a37.98%2037.98%200%200%201-4.07%205.42zm5.2-3.47a40.05%2040.05%200%200%201-3.79%204.89l7.99%207.98c-.61-4.45-2.01-8.82-4.2-12.87zm-6.58%204.92l1.41%201.41%209.66%209.66a37.85%2037.85%200%200%201-23.36-9.7l6.83-6.83%205.46%205.46zM53.13%2013.13L60%2020l-6.87%206.87A38.11%2038.11%200%200%201%2047.68%2020a38.1%2038.1%200%200%201%205.45-6.87zm-1.41-1.41l-9.66-9.66c.3%205.52%201.8%2011%204.49%2016a40.18%2040.18%200%200%201%205.17-6.34zm-9.66%2026.22c.3-5.52%201.8-11%204.49-16a40.18%2040.18%200%200%200%205.17%206.34l-9.66%209.66zm26.22%2013.78l9.66-9.66c-.3%205.52-1.8%2011-4.49%2016a40.18%2040.18%200%200%200-5.17-6.34zm8.98-11.81L66.84%2050.34a39.83%2039.83%200%200%200-24.1-10.25l10.42-10.43a39.83%2039.83%200%200%200%2024.1%2010.25zm-7.6-26.75a40.06%2040.06%200%200%201%203.79%204.9%2037.88%2037.88%200%200%200%204.2-12.88l-7.99%207.98zm-31.72%2028.9c-8.4.45-16.69%203.68-23.36%209.7l6.83%206.83%205.46-5.46%201.41-1.41%209.66-9.66zM22.83%2060l5.42%205.42c1.54-1.7%202.9-3.52%204.07-5.42a38%2038%200%200%200-4.07-5.42L22.83%2060zm5.45%208.28l-1.41-1.41-5.46-5.46-6.83%206.84a37.85%2037.85%200%200%200%2023.36%209.7l-9.66-9.67zm9.37%206.54l-7.99-7.98a40.05%2040.05%200%200%200%203.79-4.9%2037.88%2037.88%200%200%201%204.2%2012.88zM20%2060l-6.87-6.87A38.11%2038.11%200%200%200%207.68%2060a38.11%2038.11%200%200%200%205.45%206.87L20%2060zm17.26-19.9L26.84%2029.65A39.83%2039.83%200%200%201%202.74%2039.9l10.42%2010.43a39.83%2039.83%200%200%201%2024.1-10.25zm-35.2%201.96l9.66%209.66a40.18%2040.18%200%200%200-5.17%206.33c-2.7-5-4.2-10.47-4.5-16zm4.49%2019.89c-2.7%205-4.2%2010.47-4.5%2016l9.67-9.67a40.18%2040.18%200%200%201-5.17-6.33zm31.1-16.77c-.61%204.45-2.01%208.82-4.2%2012.87a40.06%2040.06%200%200%200-3.79-4.89l7.99-7.98zm-4.2-23.23c2.7%205%204.2%2010.47%204.5%2016l-9.67-9.67c1.97-1.97%203.7-4.1%205.17-6.33zm-14.86-.54l6.83%206.84a37.85%2037.85%200%200%201-23.36%209.7l9.66-9.67%201.41-1.41%205.46-5.46zm-8.25%205.43l-7.99%207.98c.61-4.45%202.01-8.82%204.2-12.87a40.04%2040.04%200%200%200%203.79%204.89zm1.41-1.42A37.99%2037.99%200%200%201%207.68%2020a38%2038%200%200%201%204.07-5.42L17.17%2020l-5.42%205.42zm-5.2-7.37a40.04%2040.04%200%200%201%203.79-4.89L2.35%205.18c.61%204.45%202.01%208.82%204.2%2012.87zm6.58-4.92l-1.41-1.41-9.66-9.66a37.85%2037.85%200%200%201%2023.36%209.7l-6.83%206.83-5.46-5.46zm13.74%2013.74L20%2020l6.87-6.87A38.1%2038.1%200%200%201%2032.32%2020a38.1%2038.1%200%200%201-5.45%206.87zm6.58-8.82a40.18%2040.18%200%200%200-5.17-6.33l9.66-9.66c-.3%205.52-1.8%2011-4.49%2016z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/circles-and-squares.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const circlesAndSquares = (
5 | fill = defaultFill,
6 | opacity = defaultOpacity
7 | ) =>
8 | `url('data:image/svg+xml,%3Csvg%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%220%200%2040%2040%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Ecircle-squares%3C%2Ftitle%3E%3Cpath%20d%3D%22M0%200h20v20H0V0zm10%2017c3.866%200%207-3.134%207-7s-3.134-7-7-7-7%203.134-7%207%203.134%207%207%207zm20%200c3.866%200%207-3.134%207-7s-3.134-7-7-7-7%203.134-7%207%203.134%207%207%207zM10%2037c3.866%200%207-3.134%207-7s-3.134-7-7-7-7%203.134-7%207%203.134%207%207%207zm10-17h20v20H20V20zm10%2017c3.866%200%207-3.134%207-7s-3.134-7-7-7-7%203.134-7%207%203.134%207%207%207z%22%20fill%3D%22%23${unhex(
9 | fill
10 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
11 |
--------------------------------------------------------------------------------
/patterns/circuit-board.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const circuitBoard = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%22304%22%20height%3D%22304%22%20viewBox%3D%220%200%20304%20304%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EArtboard%203%20Copy%202%3C%2Ftitle%3E%3Cpath%20d%3D%22M44.1%20224c.463-2.282%202.481-4%204.9-4%202.761%200%205%202.239%205%205s-2.239%205-5%205c-2.419%200-4.437-1.718-4.9-4H0v-2h44.1zm160%2048c.463-2.282%202.481-4%204.9-4%202.761%200%205%202.239%205%205s-2.239%205-5%205c-2.419%200-4.437-1.718-4.9-4H82v-2h122.1zm57.8-46c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H304v2h-42.1zm0%2016c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H304v2h-42.1zm6.2-114c.463-2.282%202.481-4%204.9-4%202.761%200%205%202.239%205%205s-2.239%205-5%205c-2.419%200-4.437-1.718-4.9-4h-86.2c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204h86.2zm-256-48c.463-2.282%202.481-4%204.9-4%202.761%200%205%202.239%205%205s-2.239%205-5%205c-2.419%200-4.437-1.718-4.9-4H0v-2h12.1zm185.8%2034c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204h86.2c.463-2.282%202.481-4%204.9-4%202.761%200%205%202.239%205%205s-2.239%205-5%205c-2.419%200-4.437-1.718-4.9-4h-86.2zM258%2012.1c2.282.463%204%202.481%204%204.9%200%202.761-2.239%205-5%205s-5-2.239-5-5c0-2.419%201.718-4.437%204-4.9V0h2v12.1zm-64%20208c2.282.463%204%202.481%204%204.9%200%202.761-2.239%205-5%205s-5-2.239-5-5c0-2.419%201.718-4.437%204-4.9v-54.2c-2.282-.463-4-2.481-4-4.9%200-2.761%202.239-5%205-5s5%202.239%205%205c0%202.419-1.718%204.437-4%204.9v54.2zm48-198.2c2.282-.463%204-2.481%204-4.9%200-2.761-2.239-5-5-5s-5%202.239-5%205c0%202.419%201.718%204.437%204%204.9V82h64v-2h-62V21.9zm16%2016c2.282-.463%204-2.481%204-4.9%200-2.761-2.239-5-5-5s-5%202.239-5%205c0%202.419%201.718%204.437%204%204.9V66h48v-2h-46V37.9zm-128%2096c2.282-.463%204-2.481%204-4.9%200-2.761-2.239-5-5-5s-5%202.239-5%205c0%202.419%201.718%204.437%204%204.9V210h16v10.1c-2.282.463-4%202.481-4%204.9%200%202.761%202.239%205%205%205s5-2.239%205-5c0-2.419-1.718-4.437-4-4.9V208h-16v-74.1zm-5.9-21.9c.463-2.282%202.481-4%204.9-4%202.761%200%205%202.239%205%205s-2.239%205-5%205c-2.419%200-4.437-1.718-4.9-4H114v48H85.9c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H112v-48h12.1zm-6.2%20130c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H176v-74.1c-2.282-.463-4-2.481-4-4.9%200-2.761%202.239-5%205-5s5%202.239%205%205c0%202.419-1.718%204.437-4%204.9V242h-60.1zm-16-64c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H114v48h10.1c.463-2.282%202.481-4%204.9-4%202.761%200%205%202.239%205%205s-2.239%205-5%205c-2.419%200-4.437-1.718-4.9-4H112v-48h-10.1zM66%20284.1c2.282.463%204%202.481%204%204.9%200%202.761-2.239%205-5%205s-5-2.239-5-5c0-2.419%201.718-4.437%204-4.9V274H50v30h-2v-32h18v12.1zM236.1%20176c.463-2.282%202.481-4%204.9-4%202.761%200%205%202.239%205%205s-2.239%205-5%205c-2.419%200-4.437-1.718-4.9-4H226v94h48v32h-2v-30h-48v-98h12.1zm25.8-30c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H274v44.1c2.282.463%204%202.481%204%204.9%200%202.761-2.239%205-5%205s-5-2.239-5-5c0-2.419%201.718-4.437%204-4.9V146h-10.1zm-64%2096c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H208v-80h16v-14h-42.1c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H226v18h-16v80h-12.1zm86.2-210c.463-2.282%202.481-4%204.9-4%202.761%200%205%202.239%205%205s-2.239%205-5%205c-2.419%200-4.437-1.718-4.9-4H272V0h2v32h10.1zM98%20101.9c2.282-.463%204-2.481%204-4.9%200-2.761-2.239-5-5-5s-5%202.239-5%205c0%202.419%201.718%204.437%204%204.9V144H53.9c-.463-2.282-2.481-4-4.9-4-2.761%200-5%202.239-5%205s2.239%205%205%205c2.419%200%204.437-1.718%204.9-4H98v-44.1zM53.9%2034c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H80V0h2v34H53.9zm60.1%203.9c2.282-.463%204-2.481%204-4.9%200-2.761-2.239-5-5-5s-5%202.239-5%205c0%202.419%201.718%204.437%204%204.9V64H80v64H69.9c-.463-2.282-2.481-4-4.9-4-2.761%200-5%202.239-5%205s2.239%205%205%205c2.419%200%204.437-1.718%204.9-4H82V66h32V37.9zM101.9%2082c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H128V37.9c-2.282-.463-4-2.481-4-4.9%200-2.761%202.239-5%205-5s5%202.239%205%205c0%202.419-1.718%204.437-4%204.9V82h-28.1zm16-64c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H146v44.1c2.282.463%204%202.481%204%204.9%200%202.761-2.239%205-5%205s-5-2.239-5-5c0-2.419%201.718-4.437%204-4.9V18h-26.1zm102.2%20270c.463-2.282%202.481-4%204.9-4%202.761%200%205%202.239%205%205s-2.239%205-5%205c-2.419%200-4.437-1.718-4.9-4H98v14h-2v-16h124.1zM242%20149.9c2.282-.463%204-2.481%204-4.9%200-2.761-2.239-5-5-5s-5%202.239-5%205c0%202.419%201.718%204.437%204%204.9V162h16v30h-16v66h48v46h2v-48h-48v-62h16v-34h-16v-10.1zM53.9%2018c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H64V2H48V0h18v18H53.9zm112%2032c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H192V0h50v2h-48v48h-28.1zm-48-48c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5%200-.342.034-.677.1-1h2.07c-.11.313-.17.65-.17%201%200%201.657%201.343%203%203%203s3-1.343%203-3c0-.35-.06-.687-.17-1H178v34h-18V21.9c-2.282-.463-4-2.481-4-4.9%200-2.761%202.239-5%205-5s5%202.239%205%205c0%202.419-1.718%204.437-4%204.9V32h14V2h-58.1zm0%2096c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H137l32-32h39V21.9c-2.282-.463-4-2.481-4-4.9%200-2.761%202.239-5%205-5s5%202.239%205%205c0%202.419-1.718%204.437-4%204.9V66h-40.172l-32%2032H117.9zm28.1%2090.1c2.282.463%204%202.481%204%204.9%200%202.761-2.239%205-5%205s-5-2.239-5-5c0-2.419%201.718-4.437%204-4.9v-76.514L175.586%2080H224V21.9c-2.282-.463-4-2.481-4-4.9%200-2.761%202.239-5%205-5s5%202.239%205%205c0%202.419-1.718%204.437-4%204.9V82h-49.586L146%20112.414V188.1zm16%2032c2.282.463%204%202.481%204%204.9%200%202.761-2.239%205-5%205s-5-2.239-5-5c0-2.419%201.718-4.437%204-4.9v-99.514L184.586%2096H300.1c.398-1.96%201.94-3.502%203.9-3.9v2.07c-1.165.413-2%201.524-2%202.83s.835%202.417%202%202.83v2.07c-1.96-.398-3.502-1.94-3.9-3.9H185.414L162%20121.414V220.1zm-144-64c2.282.463%204%202.481%204%204.9%200%202.761-2.239%205-5%205s-5-2.239-5-5c0-2.419%201.718-4.437%204-4.9V152.586l48-48V48h32V0h2v50H66v55.414l-48%2048v2.686zM50%2053.9c2.282-.463%204-2.481%204-4.9%200-2.761-2.239-5-5-5s-5%202.239-5%205c0%202.419%201.718%204.437%204%204.9v42.686l-48%2048V210h28.1c.463%202.282%202.481%204%204.9%204%202.761%200%205-2.239%205-5s-2.239-5-5-5c-2.419%200-4.437%201.718-4.9%204H2v-62.586l48-48V53.9zm-16%2016c2.282-.463%204-2.481%204-4.9%200-2.761-2.239-5-5-5s-5%202.239-5%205c0%202.419%201.718%204.437%204%204.9v18.686l-32%2032v2.828l34-34V69.9zM12.1%2032c.463-2.282%202.481-4%204.9-4%202.761%200%205%202.239%205%205s-2.239%205-5%205c-2.419%200-4.437-1.718-4.9-4H9.414L0%2043.414v-2.828L8.586%2032H12.1zm265.8%2018c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204h18.686L304%2040.586v2.828L297.414%2050H277.9zm-16%20160c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H288v-71.414l16-16v2.828l-14%2014V210h-28.1zm-208%2032c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H64v-22.586L40.586%20194H21.9c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204h19.514L66%20216.586V242H53.9zm150.2%2014c.463-2.282%202.481-4%204.9-4%202.761%200%205%202.239%205%205s-2.239%205-5%205c-2.419%200-4.437-1.718-4.9-4H96v-56.598L56.598%20162H37.9c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204h19.502L98%20200.598V256h106.1zm-150.2%202c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204H80v-46.586L48.586%20178H21.9c-.463%202.282-2.481%204-4.9%204-2.761%200-5-2.239-5-5s2.239-5%205-5c2.419%200%204.437%201.718%204.9%204h27.514L82%20208.586V258H53.9zM97%20100c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0-16c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-48%2032c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm32%2048c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-16%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm32-16c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0-32c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16%2032c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm32%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0-16c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-16-64c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16%200c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16%2096c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16-144c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0%2032c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16-32c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16-16c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-96%200c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16-32c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm96%200c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-16-64c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16-16c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-32%200c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0-16c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-16%200c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-16%200c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-16%200c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zM49%2036c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-32%200c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm32%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zM33%2068c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16-48c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0%20240c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16%2032c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-16-64c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-16-32c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm80-176c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16%200c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-16-16c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm32%2048c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16-16c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0-32c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm112%20176c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm-16%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zM17%20180c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0%2016c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm0-32c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16%200c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zM17%2084c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm32%2064c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zm16-16c1.657%200%203-1.343%203-3s-1.343-3-3-3-3%201.343-3%203%201.343%203%203%203zM34%2039.793V0h-2v40.586L8.586%2064H0v2h9.414L34%2041.414v-1.621zM2%20300.1V258h14v46h2v-48H0V302.17c.313-.11.65-.17%201-.17%201.306%200%202.417.835%202.83%202H5.9c-.398-1.96-1.94-3.502-3.9-3.9zM34%20241v63h-2v-62H0v-2h34v1zM17%2018h1V0h-2v16H0v2h17zm273-2V0h-2v18h16v-2h-14zm-32%20273v15h-2v-14h-14v14h-2v-16h18v1zM0%2092.1c.323-.066.658-.1%201-.1%202.761%200%205%202.239%205%205s-2.239%205-5%205c-.342%200-.677-.034-1-.1v-2.07c.313.11.65.17%201%20.17%201.657%200%203-1.343%203-3s-1.343-3-3-3c-.35%200-.687.06-1%20.17V92.1zM80%20272h2v32h-2v-32zm37.9%2032c-.463-2.282-2.481-4-4.9-4-2.419%200-4.437%201.718-4.9%204h2.07c.413-1.165%201.524-2%202.83-2s2.417.835%202.83%202h2.07zM5.9%200c.066.323.1.658.1%201%200%202.761-2.239%205-5%205-.342%200-.677-.034-1-.1V3.83C.313%203.94.65%204%201%204c1.657%200%203-1.343%203-3%200-.35-.06-.687-.17-1H5.9zm294.2%200c-.066.323-.1.658-.1%201%200%202.419%201.718%204.437%204%204.9V3.83c-1.165-.413-2-1.524-2-2.83%200-.35.06-.687.17-1h-2.07zm3.9%20300.1c-1.96.398-3.502%201.94-3.9%203.9h2.07c.302-.852.978-1.528%201.83-1.83v-2.07z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/connections.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const connections = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2236%22%20height%3D%2236%22%20viewBox%3D%220%200%2036%2036%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Econnections%3C%2Ftitle%3E%3Cpath%20d%3D%22M36%200H0v36h36V0zM15.126%202H2v13.126c.367.094.714.24%201.032.428L15.554%203.032c-.188-.318-.334-.665-.428-1.032zM18%204.874V18H4.874c-.094-.367-.24-.714-.428-1.032L16.968%204.446c.318.188.665.334%201.032.428zM22.874%202h11.712L20%2016.586V4.874c1.406-.362%202.512-1.468%202.874-2.874zm10.252%2018H20v13.126c.367.094.714.24%201.032.428l12.522-12.522c-.188-.318-.334-.665-.428-1.032zM36%2022.874V36H22.874c-.094-.367-.24-.714-.428-1.032l12.522-12.522c.318.188.665.334%201.032.428zm0-7.748V3.414L21.414%2018h11.712c.362-1.406%201.468-2.512%202.874-2.874zm-18%2018V21.414L3.414%2036h11.712c.362-1.406%201.468-2.512%202.874-2.874zM4.874%2020h11.712L2%2034.586V22.874c1.406-.362%202.512-1.468%202.874-2.874z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/cork-screw.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const corkScrew = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2216%22%20width%3D%2220%22%20viewBox%3D%220%200%2020%2016%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20d%3D%22M0%20.04C2.6.22%204.99%201.1%207%202.5A13.94%2013.94%200%200%201%2015%200h4c.34%200%20.67.01%201%20.04v2A12%2012%200%200%200%207.17%2012h5.12A7%207%200%200%201%2020%207.07V14a5%205%200%200%200-3-4.58A5%205%200%200%200%2014%2014H0V7.07c.86.12%201.67.4%202.4.81.75-1.52%201.76-2.9%202.98-4.05C3.79%202.83%201.96%202.2%200%202.04v-2z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/current.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const current = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2276%22%20height%3D%2218%22%20viewBox%3D%220%200%2076%2018%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Ecurrent%3C%2Ftitle%3E%3Cpath%20d%3D%22M31.999%2018C29.571%2016.176%2028%2013.271%2028%2010c0-4.418-3.582-8-8-8H0V0h20c5.523%200%2010%204.477%2010%2010%200%204.418%203.582%208%208%208h20c4.418%200%208-3.582%208-8%200-5.523%204.477-10%2010-10v2c-4.418%200-8%203.582-8%208%200%203.271-1.57%206.176-3.999%208H31.999zM64.001%200C62.329%201.256%2060.251%202%2058%202H38c-2.252%200-4.33-.744-6.001-2h32.002z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/curtain.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const curtain = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2244%22%20height%3D%2212%22%20viewBox%3D%220%200%2044%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eup-down%3C%2Ftitle%3E%3Cpath%20d%3D%22M20%2012v-2L0%200v10l4%202h16zm18%200l4-2V0L22%2010v2h16zM20%200v8L4%200h16zm18%200L22%208V0h16z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/cutout.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const cutout = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2248%22%20height%3D%2248%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20viewBox%3D%220%200%2048%2048%22%3E%3Cpath%20d%3D%22M12%200h18v6h6v6h6v18h-6v6h-6v6H12v-6H6v-6H0V12h6V6h6V0zm12%206h-6v6h-6v6H6v6h6v6h6v6h6v-6h6v-6h6v-6h-6v-6h-6V6zm-6%2012h6v6h-6v-6zm24%2024h6v6h-6v-6z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/death-star.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const deathStar = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2280%22%20height%3D%22105%22%20viewBox%3D%220%200%2080%20105%22%3E%3Cpath%20d%3D%22M20%2010a5%205%200%200%201%2010%200v50a5%205%200%200%201-10%200V10zm15%2035a5%205%200%200%201%2010%200v50a5%205%200%200%201-10%200V45zM20%2075a5%205%200%200%201%2010%200v20a5%205%200%200%201-10%200V75zm30-65a5%205%200%200%201%2010%200v50a5%205%200%200%201-10%200V10zm0%2065a5%205%200%200%201%2010%200v20a5%205%200%200%201-10%200V75zM35%2010a5%205%200%200%201%2010%200v20a5%205%200%200%201-10%200V10zM5%2045a5%205%200%200%201%2010%200v50a5%205%200%200%201-10%200V45zm0-35a5%205%200%200%201%2010%200v20a5%205%200%200%201-10%200V10zm60%2035a5%205%200%200%201%2010%200v50a5%205%200%200%201-10%200V45zm0-35a5%205%200%200%201%2010%200v20a5%205%200%200%201-10%200V10z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/diagonal-lines.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const diagonalLines = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EArtboard%203%20Copy%202%3C%2Ftitle%3E%3Cg%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M5%200h1L0%206V5zM6%205v1H5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/diagonal-stripes.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const diagonalStripes = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%220%200%2040%2040%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Ediagonal-stripes%3C%2Ftitle%3E%3Cg%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M0%2040L40%200H20L0%2020zM40%2040V20L20%2040z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/dominos.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const dominos = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22126%22%20height%3D%2284%22%20viewBox%3D%220%200%20126%2084%22%3E%3Cpath%20d%3D%22M126%2083v1H0v-2h40V42H0v-2h40V0h2v40h40V0h2v40h40V0h2v83zm-2-1V42H84v40h40zM82%2042H42v40h40V42zm-50-6a4%204%200%201%201%200-8%204%204%200%200%201%200%208zM8%2012a4%204%200%201%201%200-8%204%204%200%200%201%200%208zm96%2012a4%204%200%201%201%200-8%204%204%200%200%201%200%208zm-42%200a4%204%200%201%201%200-8%204%204%200%200%201%200%208zm30-12a4%204%200%201%201%200-8%204%204%200%200%201%200%208zM20%2054a4%204%200%201%201%200-8%204%204%200%200%201%200%208zm12%2024a4%204%200%201%201%200-8%204%204%200%200%201%200%208zM8%2054a4%204%200%201%201%200-8%204%204%200%200%201%200%208zm24%200a4%204%200%201%201%200-8%204%204%200%200%201%200%208zM8%2078a4%204%200%201%201%200-8%204%204%200%200%201%200%208zm12%200a4%204%200%201%201%200-8%204%204%200%200%201%200%208zm54%200a4%204%200%201%201%200-8%204%204%200%200%201%200%208zM50%2054a4%204%200%201%201%200-8%204%204%200%200%201%200%208zm24%200a4%204%200%201%201%200-8%204%204%200%200%201%200%208zM50%2078a4%204%200%201%201%200-8%204%204%200%200%201%200%208zm54-12a4%204%200%201%201%200-8%204%204%200%200%201%200%208zm12%2012a4%204%200%201%201%200-8%204%204%200%200%201%200%208zM92%2054a4%204%200%201%201%200-8%204%204%200%200%201%200%208zm24%200a4%204%200%201%201%200-8%204%204%200%200%201%200%208zM92%2078a4%204%200%201%201%200-8%204%204%200%200%201%200%208zm24-42a4%204%200%201%201%200-8%204%204%200%200%201%200%208z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/endless-clouds.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const endlessClouds = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2256%22%20height%3D%2228%22%20viewBox%3D%220%200%2056%2028%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eclouds%3C%2Ftitle%3E%3Cpath%20d%3D%22M56%2026c-2.813%200-5.456.726-7.752%202H56v-2zm-26%202h4.087C38.707%2020.783%2046.795%2016%2056%2016v-2c-.672%200-1.339.024-1.999.07L54%2014c0-1.105.895-2%202-2v-2c-2.075%200-3.78%201.58-3.98%203.602-.822-1.368-1.757-2.66-2.793-3.862C50.644%207.493%2053.147%206%2056%206V4c-3.375%200-6.359%201.672-8.17%204.232-.945-.948-1.957-1.828-3.03-2.634C47.355%202.198%2051.42%200%2056%200h-7.752c-1.998%201.108-3.733%202.632-5.09%204.454-1.126-.726-2.307-1.374-3.536-1.936.63-.896%201.33-1.738%202.095-2.518H39.03c-.46.557-.893%201.137-1.297%201.737-1.294-.48-2.633-.866-4.009-1.152.12-.196.24-.392.364-.585H30l-.001.07C29.339.024%2028.672%200%2028%200c-.672%200-1.339.024-1.999.07L26%200h-4.087c.124.193.245.389.364.585-1.376.286-2.715.673-4.009%201.152-.404-.6-.837-1.18-1.297-1.737h-2.688c.764.78%201.466%201.622%202.095%202.518-1.23.562-2.41%201.21-3.536%201.936C11.485%202.632%209.75%201.108%207.752%200H0c4.58%200%208.645%202.199%2011.2%205.598-1.073.806-2.085%201.686-3.03%202.634C6.359%205.672%203.375%204%200%204v2c2.852%200%205.356%201.493%206.773%203.74-1.036%201.203-1.971%202.494-2.793%203.862C3.78%2011.58%202.075%2010%200%2010v2c1.105%200%202%20.895%202%202l-.001.07C1.339%2014.024.672%2014%200%2014v2c9.205%200%2017.292%204.783%2021.913%2012H26c0-1.105.895-2%202-2s2%20.895%202%202zM7.752%2028C5.456%2026.726%202.812%2026%200%2026v2h7.752zM56%2020c-6.832%200-12.936%203.114-16.971%208h2.688c3.63-3.703%208.688-6%2014.283-6v-2zm-39.029%208C12.936%2023.114%206.831%2020%200%2020v2c5.595%200%2010.653%202.297%2014.283%206h2.688zm15.01-.398c.821-1.368%201.756-2.66%202.792-3.862C33.356%2021.493%2030.853%2020%2028%2020c-2.852%200-5.356%201.493-6.773%203.74%201.036%201.203%201.971%202.494%202.793%203.862C24.22%2025.58%2025.925%2024%2028%2024s3.78%201.58%203.98%203.602zm14.287-11.865C42.318%209.864%2035.61%206%2028%206c-7.61%200-14.318%203.864-18.268%209.737-1.294-.48-2.633-.866-4.009-1.152C10.275%207.043%2018.548%202%2028%202c9.452%200%2017.725%205.043%2022.277%2012.585-1.376.286-2.715.673-4.009%201.152zm-5.426%202.717c1.126-.726%202.307-1.374%203.536-1.936C40.76%2011.367%2034.773%208%2028%208s-12.76%203.367-16.378%208.518c1.23.562%202.41%201.21%203.536%201.936C18.075%2014.537%2022.741%2012%2028%2012s9.925%202.537%2012.842%206.454zm-4.672%203.778c.945-.948%201.957-1.828%203.03-2.634C36.645%2016.198%2032.58%2014%2028%2014c-4.58%200-8.645%202.199-11.2%205.598%201.073.806%202.085%201.686%203.03%202.634C21.641%2019.672%2024.625%2018%2028%2018s6.359%201.672%208.17%204.232z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/eyes.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const eyes = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2220%22%20height%3D%2212%22%20viewBox%3D%220%200%2020%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eeyes%3C%2Ftitle%3E%3Cpath%20d%3D%22M6%2012c0-.622-.095-1.221-.27-1.785C6.818%2011.317%208.33%2012%2010%2012c1.67%200%203.182-.683%204.27-1.785-.175.564-.27%201.163-.27%201.785h2c0-2.21%201.79-4%204-4V6c-1.67%200-3.182.683-4.27%201.785C15.905%207.22%2016%206.622%2016%206c0-.622-.095-1.221-.27-1.785C16.818%205.317%2018.33%206%2020%206V4c-2.21%200-4-1.79-4-4h-2c0%20.622.095%201.221.27%201.785C13.182.683%2011.67%200%2010%200%208.33%200%206.818.683%205.73%201.785%205.905%201.22%206%20.622%206%200H4c0%202.21-1.79%204-4%204v2c1.67%200%203.182.683%204.27%201.785C4.095%207.22%204%206.622%204%206c0-.622.095-1.221.27-1.785C3.182%205.317%201.67%206%200%206v2c2.21%200%204%201.79%204%204h2zm-4%200c0-1.105-.895-2-2-2v2h2zm16%200c0-1.105.895-2%202-2v2h-2zM0%202c1.105%200%202-.895%202-2H0v2zm20%200c-1.105%200-2-.895-2-2h2v2zm-10%208c2.21%200%204-1.79%204-4s-1.79-4-4-4-4%201.79-4%204%201.79%204%204%204zm0-2c1.105%200%202-.895%202-2s-.895-2-2-2-2%20.895-2%202%20.895%202%202%202z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/falling-triangles.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const fallingTriangles = (
5 | fill = defaultFill,
6 | opacity = defaultOpacity
7 | ) =>
8 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2236%22%20height%3D%2272%22%20viewBox%3D%220%200%2036%2072%22%3E%3Cpath%20d%3D%22M2%206h12L8%2018%202%206zm18%2036h12l-6%2012-6-12z%22%20fill%3D%22%23${unhex(
9 | fill
10 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
11 |
--------------------------------------------------------------------------------
/patterns/fancy-rectangles.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const fancyRectangles = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2260%22%20height%3D%2248%22%20viewBox%3D%220%200%2060%2048%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M6%2012h6v12H6V12zm12%200h6v12h-6V12zm6-12h6v12h-6V0zM12%200h6v12h-6V0zm0%2024h6v12h-6V24zM0%200h6v12H0V0zm6%2036h6v12H6V36zm12%200h6v12h-6V36zm12-12h6v12h-6V24zM42%200h6v12h-6V0zm-6%2012h6v12h-6V12zm12%200h6v12h-6V12zM36%2036h6v12h-6V36zm12%200h6v12h-6V36zm-6-12h6v12h-6V24zm12%200h6v12h-6V24z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/flipped-diamonds.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const flippedDiamonds = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2220%22%20viewBox%3D%220%200%2016%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eflipped-diamonds%3C%2Ftitle%3E%3Cg%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M8%200v20L0%2010zM16%200v10L8%200zM16%2010v10H8z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/floor-tile.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const floorTile = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Efloor-tile%3C%2Ftitle%3E%3Cpath%20d%3D%22M0%2010h10v10H0V10zM10%200h10v10H10V0z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/formal-invitation.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const formalInvitation = (
5 | fill = defaultFill,
6 | opacity = defaultOpacity
7 | ) =>
8 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2218%22%20width%3D%22100%22%20viewBox%3D%220%200%20100%2018%22%3E%3Cpath%20fill%3D%22%23${unhex(
9 | fill
10 | )}%22%20fill-opacity%3D%22${opacity}%22%20d%3D%22M61.82%2018c3.47-1.45%206.86-3.78%2011.3-7.34C78%206.76%2080.34%205.1%2083.87%203.42%2088.56%201.16%2093.75%200%20100%200v6.16C98.76%206.05%2097.43%206%2096%206c-9.59%200-14.23%202.23-23.13%209.34-1.28%201.03-2.39%201.9-3.4%202.66h-7.65zm-23.64%200H22.52c-1-.76-2.1-1.63-3.4-2.66C11.57%209.3%207.08%206.78%200%206.16V0c6.25%200%2011.44%201.16%2016.14%203.42%203.53%201.7%205.87%203.35%2010.73%207.24%204.45%203.56%207.84%205.9%2011.31%207.34zM61.82%200h7.66a39.57%2039.57%200%200%201-7.34%204.58C57.44%206.84%2052.25%208%2046%208S34.56%206.84%2029.86%204.58A39.57%2039.57%200%200%201%2022.52%200h15.66C41.65%201.44%2045.21%202%2050%202c4.8%200%208.35-.56%2011.82-2z%22%2F%3E%3C%2Fsvg%3E')`;
11 |
--------------------------------------------------------------------------------
/patterns/four-point-stars.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const fourPointStars = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2224%22%20width%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20d%3D%22M8%204l4%202-4%202-2%204-2-4-4-2%204-2%202-4%202%204z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/glamorous.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const glamorous = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%22180%22%20height%3D%22180%22%20viewBox%3D%220%200%20180%20180%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eglamorous%3C%2Ftitle%3E%3Cpath%20d%3D%22M81.28%2088H68.413l19.298%2019.298L81.279%2088zm2.107%200h13.226L90%20107.838%2083.387%2088zm15.334%200h12.865l-19.298%2019.298L98.721%2088zm-32.928-2.207L73.586%2078h32.828l.5.5%207.293%207.293L115.414%2087l-24.707%2024.707-.707.707L64.586%2087l1.207-1.207zm2.621.207L74%2080.414%2079.586%2086H68.414zm16%200L90%2080.414%2095.586%2086H84.414zm16%200L106%2080.414%20111.586%2086h-11.172zm-8-6h11.172L98%2085.586%2092.414%2080zM82%2085.586L87.586%2080H76.414L82%2085.586zM17.414%200L.707%2016.707%200%2017.414V0h17.414zM4.28%200L0%2012.838V0h4.28zm10.307%200L2.288%2012.298%206.388%200h8.198zM180%2017.414L162.586%200H180v17.414zM165.414%200l12.298%2012.298L173.612%200h-8.198zM180%2012.838L175.72%200H180v12.838zM0%20163H16.414l.5.5%207.293%207.293L25.414%20172l-8%208H0v-17zm0%2010h6.613l-2.334%207H0v-7zm14.586%207l7-7H8.72l-2.334%207h8.199zM0%20165.414L5.586%20171H0v-5.586zM10.414%20171L16%20165.414%2021.586%20171H10.414zm-8-6h11.172L8%20170.586%202.414%20165zM180%20163H163.586l-7.793%207.793-1.207%201.207%208%208H180v-17zm-14.586%2017l-7-7h12.865l2.334%207h-8.199zM180%20173h-6.613l2.334%207H180v-7zm-21.586-2l5.586-5.586%205.586%205.586h-11.172zM180%20165.414L174.414%20171H180v-5.586zm-8%205.172l5.586-5.586h-11.172l5.586%205.586zM152.933%2025.653l1.414%201.414-33.941%2033.942-1.415-1.415%2033.942-33.94zm1.414%20127.28l-1.414%201.414-33.942-33.941%201.415-1.415%2033.94%2033.942zm-127.28%201.414l-1.414-1.414%2033.941-33.942%201.415%201.415-33.942%2033.94zm-1.414-127.28l1.414-1.414L61.01%2059.594l-1.415%201.415-33.94-33.942zM0%2085c2.21%200%204%201.79%204%204s-1.79%204-4%204v-8zm180%200c-2.21%200-4%201.79-4%204s1.79%204%204%204v-8zM94%200c0%202.21-1.79%204-4%204s-4-1.79-4-4h8zm0%20180c0-2.21-1.79-4-4-4s-4%201.79-4%204h8z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/graph-paper.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const graphPaper = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22100%22%20height%3D%22100%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cg%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20opacity%3D%22.5%22%20d%3D%22M96%2095h4v1h-4v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9zm-1%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-9-10h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm9-10v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-9-10h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm9-10v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-9-10h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm9-10v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-10%200v-9h-9v9h9zm-9-10h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9zm10%200h9v-9h-9v9z%22%2F%3E%3Cpath%20d%3D%22M6%205V0H5v5H0v1h5v94h1V6h94V5H6z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/groovy.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const groovy = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2240%22%20viewBox%3D%220%200%2024%2040%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Egroovy%3C%2Ftitle%3E%3Cpath%20d%3D%22M0%2040c5.523%200%2010-4.477%2010-10V0C4.477%200%200%204.477%200%2010v30zm22%200c-5.523%200-10-4.477-10-10V0c5.523%200%2010%204.477%2010%2010v30z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/happy-intersection.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const happyIntersection = (
5 | fill = defaultFill,
6 | opacity = defaultOpacity
7 | ) =>
8 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2288%22%20width%3D%2288%22%20viewBox%3D%220%200%2088%2088%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20fill%3D%22%23${unhex(
9 | fill
10 | )}%22%20fill-opacity%3D%22${opacity}%22%20d%3D%22M29.42%2029.41c.36-.36.58-.85.58-1.4V0h-4v26H0v4h28c.55%200%201.05-.22%201.41-.58h.01zm0%2029.18c.36.36.58.86.58%201.4V88h-4V62H0v-4h28c.56%200%201.05.22%201.41.58zm29.16%200c-.36.36-.58.85-.58%201.4V88h4V62h26v-4H60c-.55%200-1.05.22-1.41.58h-.01zM62%2026V0h-4v28c0%20.55.22%201.05.58%201.41.37.37.86.59%201.41.59H88v-4H62zM18%2036c0-1.1.9-2%202-2h10a2%202%200%201%201%200%204H20a2%202%200%200%201-2-2zm0%2016c0-1.1.9-2%202-2h10a2%202%200%201%201%200%204H20a2%202%200%200%201-2-2zm16-26a2%202%200%200%201%202-2%202%202%200%200%201%202%202v4a2%202%200%200%201-2%202%202%202%200%200%201-2-2v-4zm16%200a2%202%200%200%201%202-2%202%202%200%200%201%202%202v4a2%202%200%200%201-2%202%202%202%200%200%201-2-2v-4zM34%2058a2%202%200%200%201%202-2%202%202%200%200%201%202%202v4a2%202%200%200%201-2%202%202%202%200%200%201-2-2v-4zm16%200a2%202%200%200%201%202-2%202%202%200%200%201%202%202v4a2%202%200%200%201-2%202%202%202%200%200%201-2-2v-4zM34%2078a2%202%200%200%201%202-2%202%202%200%200%201%202%202v6a2%202%200%200%201-2%202%202%202%200%200%201-2-2v-6zm16%200a2%202%200%200%201%202-2%202%202%200%200%201%202%202v6a2%202%200%200%201-2%202%202%202%200%200%201-2-2v-6zM34%204a2%202%200%200%201%202-2%202%202%200%200%201%202%202v6a2%202%200%200%201-2%202%202%202%200%200%201-2-2V4zm16%200a2%202%200%200%201%202-2%202%202%200%200%201%202%202v6a2%202%200%200%201-2%202%202%202%200%200%201-2-2V4zm-8%2082a2%202%200%201%201%204%200v2h-4v-2zm0-68a2%202%200%201%201%204%200v10a2%202%200%201%201-4%200V18zM66%204a2%202%200%201%201%204%200v8a2%202%200%201%201-4%200V4zm0%2072a2%202%200%201%201%204%200v8a2%202%200%201%201-4%200v-8zm-48%200a2%202%200%201%201%204%200v8a2%202%200%201%201-4%200v-8zm0-72a2%202%200%201%201%204%200v8a2%202%200%201%201-4%200V4zm24-4h4v2a2%202%200%201%201-4%200V0zm0%2060a2%202%200%201%201%204%200v10a2%202%200%201%201-4%200V60zm14-24c0-1.1.9-2%202-2h10a2%202%200%201%201%200%204H58a2%202%200%200%201-2-2zm0%2016c0-1.1.9-2%202-2h10a2%202%200%201%201%200%204H58a2%202%200%200%201-2-2zm-28-6a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm8%2026a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm16%200a2%202%200%201%200%200-4%202%202%200%200%200%200%204zM36%2020a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm16%200a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm-8-8a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm0%2068a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm16-34a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm16-12a2%202%200%201%200%200%204%206%206%200%201%201%200%2012%202%202%200%201%200%200%204%2010%2010%200%201%200%200-20zm-64%200a2%202%200%201%201%200%204%206%206%200%201%200%200%2012%202%202%200%201%201%200%204%2010%2010%200%201%201%200-20zm56-12a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm0%2048a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm-48%200a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm0-48a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm24%2032a10%2010%200%201%201%200-20%2010%2010%200%200%201%200%2020zm0-4a6%206%200%201%200%200-12%206%206%200%200%200%200%2012zm36-36a6%206%200%201%201%200-12%206%206%200%200%201%200%2012zm0-4a2%202%200%201%200%200-4%202%202%200%200%200%200%204zM10%2044c0-1.1.9-2%202-2h8a2%202%200%201%201%200%204h-8a2%202%200%200%201-2-2zm56%200c0-1.1.9-2%202-2h8a2%202%200%201%201%200%204h-8a2%202%200%200%201-2-2zm8%2024c0-1.1.9-2%202-2h8a2%202%200%201%201%200%204h-8a2%202%200%200%201-2-2zM3%2068c0-1.1.9-2%202-2h8a2%202%200%201%201%200%204H5a2%202%200%200%201-2-2zm0-48c0-1.1.9-2%202-2h8a2%202%200%201%201%200%204H5a2%202%200%200%201-2-2zm71%200c0-1.1.9-2%202-2h8a2%202%200%201%201%200%204h-8a2%202%200%200%201-2-2zm6%2066a6%206%200%201%201%200-12%206%206%200%200%201%200%2012zm0-4a2%202%200%201%200%200-4%202%202%200%200%200%200%204zM8%2086a6%206%200%201%201%200-12%206%206%200%200%201%200%2012zm0-4a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm0-68A6%206%200%201%201%208%202a6%206%200%200%201%200%2012zm0-4a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm36%2036a2%202%200%201%200%200-4%202%202%200%200%200%200%204z%22%2F%3E%3C%2Fsvg%3E')`;
11 |
--------------------------------------------------------------------------------
/patterns/heavy-rain.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const heavyRain = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20viewBox%3D%220%200%2012%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2%200h2v12H2V0zm1%2020c1.105%200%202-.895%202-2s-.895-2-2-2-2%20.895-2%202%20.895%202%202%202zM9%208c1.105%200%202-.895%202-2s-.895-2-2-2-2%20.895-2%202%20.895%202%202%202zm-1%204h2v12H8V12z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/hexagons.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const hexagons = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2249%22%20viewBox%3D%220%200%2028%2049%22%3E%3Cpath%20d%3D%22M13.99%209.25l13%207.5v15l-13%207.5L1%2031.75v-15l12.99-7.5zM3%2017.9v12.7l10.99%206.34%2011-6.35V17.9l-11-6.34L3%2017.9zM0%2015l12.98-7.5V0h-2v6.35L0%2012.69v2.3zm0%2018.5L12.98%2041v8h-2v-6.85L0%2035.81v-2.3zM15%200v7.5L27.99%2015H28v-2.31h-.01L17%206.35V0h-2zm0%2049v-8l12.99-7.5H28v2.31h-.01L17%2042.15V49h-2z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/hideout.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const hideout = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%220%200%2040%2040%22%3E%3Cpath%20d%3D%22M0%2038.59l2.83-2.83%201.41%201.41L1.41%2040H0v-1.41zM0%201.4l2.83%202.83%201.41-1.41L1.41%200H0v1.41zM38.59%2040l-2.83-2.83%201.41-1.41L40%2038.59V40h-1.41zM40%201.41l-2.83%202.83-1.41-1.41L38.59%200H40v1.41zM20%2018.6l2.83-2.83%201.41%201.41L21.41%2020l2.83%202.83-1.41%201.41L20%2021.41l-2.83%202.83-1.41-1.41L18.59%2020l-2.83-2.83%201.41-1.41L20%2018.59z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/houndstooth.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const houndstooth = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Ehoundstooth%3C%2Ftitle%3E%3Cg%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M0%2018h6l6-6v6h6l-6%206H0zM24%2018v6h-6zM24%200l-6%206h-6l6-6zM12%200v6L0%2018v-6l6-6H0V0z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/i-like-food.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const iLikeFood = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22260%22%20height%3D%22260%22%20viewBox%3D%220%200%20260%20260%22%3E%3Cg%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M24.37%2016c.2.65.39%201.32.54%202h-3.74l1.17%202.34.45.9-.24.11V28a5%205%200%200%201-2.23%208.94l-.02.06a8%208%200%200%201-7.75%206h-20a8%208%200%200%201-7.74-6l-.02-.06A5%205%200%200%201-17.45%2028v-6.76l-.79-1.58-.44-.9.9-.44.63-.32H-20a23.01%2023.01%200%200%201%2044.37-2zm-36.82%202a1%201%200%200%200-.44.1l-3.1%201.56.89%201.79%201.31-.66a3%203%200%200%201%202.69%200l2.2%201.1a1%201%200%200%200%20.9%200l2.21-1.1a3%203%200%200%201%202.69%200l2.2%201.1a1%201%200%200%200%20.9%200l2.21-1.1a3%203%200%200%201%202.69%200l2.2%201.1a1%201%200%200%200%20.86.02l2.88-1.27a3%203%200%200%201%202.43%200l2.88%201.27a1%201%200%200%200%20.85-.02l3.1-1.55-.89-1.79-1.42.71a3%203%200%200%201-2.56.06l-2.77-1.23a1%201%200%200%200-.4-.09h-.01a1%201%200%200%200-.4.09l-2.78%201.23a3%203%200%200%201-2.56-.06l-2.3-1.15a1%201%200%200%200-.45-.11h-.01a1%201%200%200%200-.44.1L.9%2019.22a3%203%200%200%201-2.69%200l-2.2-1.1a1%201%200%200%200-.45-.11h-.01a1%201%200%200%200-.44.1l-2.21%201.11a3%203%200%200%201-2.69%200l-2.2-1.1a1%201%200%200%200-.45-.11h-.01zm0-2h-4.9a21.01%2021.01%200%200%201%2039.61%200h-2.09l-.06-.13-.26.13h-32.31zm30.35%207.68l1.36-.68h1.3v2h-36v-1.15l.34-.17%201.36-.68h2.59l1.36.68a3%203%200%200%200%202.69%200l1.36-.68h2.59l1.36.68a3%203%200%200%200%202.69%200L2.26%2023h2.59l1.36.68a3%203%200%200%200%202.56.06l1.67-.74h3.23l1.67.74a3%203%200%200%200%202.56-.06zM-13.82%2027l16.37%204.91L18.93%2027h-32.75zm-.63%202h.34l16.66%205%2016.67-5h.33a3%203%200%201%201%200%206h-34a3%203%200%201%201%200-6zm1.35%208a6%206%200%200%200%205.65%204h20a6%206%200%200%200%205.66-4H-13.1zM284.37%2016c.2.65.39%201.32.54%202h-3.74l1.17%202.34.45.9-.24.11V28a5%205%200%200%201-2.23%208.94l-.02.06a8%208%200%200%201-7.75%206h-20a8%208%200%200%201-7.74-6l-.02-.06a5%205%200%200%201-2.24-8.94v-6.76l-.79-1.58-.44-.9.9-.44.63-.32H240a23.01%2023.01%200%200%201%2044.37-2zm-36.82%202a1%201%200%200%200-.44.1l-3.1%201.56.89%201.79%201.31-.66a3%203%200%200%201%202.69%200l2.2%201.1a1%201%200%200%200%20.9%200l2.21-1.1a3%203%200%200%201%202.69%200l2.2%201.1a1%201%200%200%200%20.9%200l2.21-1.1a3%203%200%200%201%202.69%200l2.2%201.1a1%201%200%200%200%20.86.02l2.88-1.27a3%203%200%200%201%202.43%200l2.88%201.27a1%201%200%200%200%20.85-.02l3.1-1.55-.89-1.79-1.42.71a3%203%200%200%201-2.56.06l-2.77-1.23a1%201%200%200%200-.4-.09h-.01a1%201%200%200%200-.4.09l-2.78%201.23a3%203%200%200%201-2.56-.06l-2.3-1.15a1%201%200%200%200-.45-.11h-.01a1%201%200%200%200-.44.1l-2.21%201.11a3%203%200%200%201-2.69%200l-2.2-1.1a1%201%200%200%200-.45-.11h-.01a1%201%200%200%200-.44.1l-2.21%201.11a3%203%200%200%201-2.69%200l-2.2-1.1a1%201%200%200%200-.45-.11h-.01zm0-2h-4.9a21.01%2021.01%200%200%201%2039.61%200h-2.09l-.06-.13-.26.13h-32.31zm30.35%207.68l1.36-.68h1.3v2h-36v-1.15l.34-.17%201.36-.68h2.59l1.36.68a3%203%200%200%200%202.69%200l1.36-.68h2.59l1.36.68a3%203%200%200%200%202.69%200l1.36-.68h2.59l1.36.68a3%203%200%200%200%202.56.06l1.67-.74h3.23l1.67.74a3%203%200%200%200%202.56-.06zM246.18%2027l16.37%204.91L278.93%2027h-32.75zm-.63%202h.34l16.66%205%2016.67-5h.33a3%203%200%201%201%200%206h-34a3%203%200%201%201%200-6zm1.35%208a6%206%200%200%200%205.65%204h20a6%206%200%200%200%205.66-4H246.9zM159.5%2021.02A9%209%200%200%200%20151%2015h-42a9%209%200%200%200-8.5%206.02%206%206%200%200%200%20.02%2011.96A8.99%208.99%200%200%200%20109%2045h42a9%209%200%200%200%208.48-12.02%206%206%200%200%200%20.02-11.96zM151%2017h-42a7%207%200%200%200-6.33%204h54.66a7%207%200%200%200-6.33-4zm-9.34%2026a8.98%208.98%200%200%200%203.34-7h-2a7%207%200%200%201-7%207h-4.34a8.98%208.98%200%200%200%203.34-7h-2a7%207%200%200%201-7%207h-4.34a8.98%208.98%200%200%200%203.34-7h-2a7%207%200%200%201-7%207h-7a7%207%200%201%201%200-14h42a7%207%200%201%201%200%2014h-9.34zM109%2027a9%209%200%200%200-7.48%204H101a4%204%200%201%201%200-8h58a4%204%200%200%201%200%208h-.52a9%209%200%200%200-7.48-4h-42zM39%20115a8%208%200%201%200%200-16%208%208%200%200%200%200%2016zm6-8a6%206%200%201%201-12%200%206%206%200%200%201%2012%200zm-3-29v-2h8v-6H40a4%204%200%200%200-4%204v10H22l-1.33%204-.67%202h2.19L26%20130h26l3.81-40H58l-.67-2L56%2084H42v-6zm-4-4v10h2V74h8v-2h-8a2%202%200%200%200-2%202zm2%2012h14.56l.67%202H22.77l.67-2H40zm13.8%204H24.2l3.62%2038h22.36l3.62-38zM129%2092h-6v4h-6v4h-6v14h-3l.24%202%203.76%2032h36l3.76-32%20.24-2h-3v-14h-6v-4h-6v-4h-8zm18%2022v-12h-4v4h3v8h1zm-3%200v-6h-4v6h4zm-6%206v-16h-4v19.17c1.6-.7%202.97-1.8%204-3.17zm-6%203.8V100h-4v23.8a10.04%2010.04%200%200%200%204%200zm-6-.63V104h-4v16a10.04%2010.04%200%200%200%204%203.17zm-6-9.17v-6h-4v6h4zm-6%200v-8h3v-4h-4v12h1zm27-12v-4h-4v4h3v4h1v-4zm-6%200v-8h-4v4h3v4h1zm-6-4v-4h-4v8h1v-4h3zm-6%204v-4h-4v8h1v-4h3zm7%2024a12%2012%200%200%200%2011.83-10h7.92l-3.53%2030h-32.44l-3.53-30h7.92A12%2012%200%200%200%20130%20126zM212%2086v2h-4v-2h4zm4%200h-2v2h2v-2zm-20%200v.1a5%205%200%200%200-.56%209.65l.06.25%201.12%204.48a2%202%200%200%200%201.94%201.52h.01l7.02%2024.55a2%202%200%200%200%201.92%201.45h4.98a2%202%200%200%200%201.92-1.45l7.02-24.55a2%202%200%200%200%201.95-1.52L224.5%2096l.06-.25a5%205%200%200%200-.56-9.65V86a14%2014%200%200%200-28%200zm4%200h6v2h-9a3%203%200%201%200%200%206h26a3%203%200%201%200%200-6h-3v-2h2a12%2012%200%201%200-24%200h2zm-1.44%2014l-1-4h24.88l-1%204h-22.88zm8.95%2026l-6.86-24h18.7l-6.86%2024h-4.98zM150%20242a22%2022%200%201%200%200-44%2022%2022%200%200%200%200%2044zm24-22a24%2024%200%201%201-48%200%2024%2024%200%200%201%2048%200zm-28.38%2017.73l2.04-.87a6%206%200%200%201%204.68%200l2.04.87a2%202%200%200%200%202.5-.82l1.14-1.9a6%206%200%200%201%203.79-2.75l2.15-.5a2%202%200%200%200%201.54-2.12l-.19-2.2a6%206%200%200%201%201.45-4.46l1.45-1.67a2%202%200%200%200%200-2.62l-1.45-1.67a6%206%200%200%201-1.45-4.46l.2-2.2a2%202%200%200%200-1.55-2.13l-2.15-.5a6%206%200%200%201-3.8-2.75l-1.13-1.9a2%202%200%200%200-2.5-.8l-2.04.86a6%206%200%200%201-4.68%200l-2.04-.87a2%202%200%200%200-2.5.82l-1.14%201.9a6%206%200%200%201-3.79%202.75l-2.15.5a2%202%200%200%200-1.54%202.12l.19%202.2a6%206%200%200%201-1.45%204.46l-1.45%201.67a2%202%200%200%200%200%202.62l1.45%201.67a6%206%200%200%201%201.45%204.46l-.2%202.2a2%202%200%200%200%201.55%202.13l2.15.5a6%206%200%200%201%203.8%202.75l1.13%201.9a2%202%200%200%200%202.5.8zm2.82.97a4%204%200%200%201%203.12%200l2.04.87a4%204%200%200%200%204.99-1.62l1.14-1.9a4%204%200%200%201%202.53-1.84l2.15-.5a4%204%200%200%200%203.09-4.24l-.2-2.2a4%204%200%200%201%20.97-2.98l1.45-1.67a4%204%200%200%200%200-5.24l-1.45-1.67a4%204%200%200%201-.97-2.97l.2-2.2a4%204%200%200%200-3.09-4.25l-2.15-.5a4%204%200%200%201-2.53-1.84l-1.14-1.9a4%204%200%200%200-5-1.62l-2.03.87a4%204%200%200%201-3.12%200l-2.04-.87a4%204%200%200%200-4.99%201.62l-1.14%201.9a4%204%200%200%201-2.53%201.84l-2.15.5a4%204%200%200%200-3.09%204.24l.2%202.2a4%204%200%200%201-.97%202.98l-1.45%201.67a4%204%200%200%200%200%205.24l1.45%201.67a4%204%200%200%201%20.97%202.97l-.2%202.2a4%204%200%200%200%203.09%204.25l2.15.5a4%204%200%200%201%202.53%201.84l1.14%201.9a4%204%200%200%200%205%201.62l2.03-.87zM152%20207a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm6%202a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm-11%201a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm-6%200a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm3-5a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm-8%208a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm3%206a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm0%206a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm4%207a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm5-2a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm5%204a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm4-6a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm6-4a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm-4-3a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm4-3a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm-5-4a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm-24%206a1%201%200%201%201%202%200%201%201%200%200%201-2%200zm16%205a5%205%200%201%200%200-10%205%205%200%200%200%200%2010zm7-5a7%207%200%201%201-14%200%207%207%200%200%201%2014%200zm86-29a1%201%200%200%200%200%202h2a1%201%200%200%200%200-2h-2zm19%209a1%201%200%200%201%201-1h2a1%201%200%200%201%200%202h-2a1%201%200%200%201-1-1zm-14%205a1%201%200%200%200%200%202h2a1%201%200%200%200%200-2h-2zm-25%201a1%201%200%200%200%200%202h2a1%201%200%200%200%200-2h-2zm5%204a1%201%200%200%200%200%202h2a1%201%200%200%200%200-2h-2zm9%200a1%201%200%200%201%201-1h2a1%201%200%200%201%200%202h-2a1%201%200%200%201-1-1zm15%201a1%201%200%200%201%201-1h2a1%201%200%200%201%200%202h-2a1%201%200%200%201-1-1zm12-2a1%201%200%200%200%200%202h2a1%201%200%200%200%200-2h-2zm-11-14a1%201%200%200%201%201-1h2a1%201%200%200%201%200%202h-2a1%201%200%200%201-1-1zm-19%200a1%201%200%200%200%200%202h2a1%201%200%200%200%200-2h-2zm6%205a1%201%200%200%201%201-1h2a1%201%200%200%201%200%202h-2a1%201%200%200%201-1-1zm-25%2015c0-.47.01-.94.03-1.4a5%205%200%200%201-1.7-8%203.99%203.99%200%200%201%201.88-5.18%205%205%200%200%201%203.4-6.22%203%203%200%200%201%201.46-1.05%205%205%200%200%201%207.76-3.27A30.86%2030.86%200%200%201%20246%20184c6.79%200%2013.06%202.18%2018.17%205.88a5%205%200%200%201%207.76%203.27%203%203%200%200%201%201.47%201.05%205%205%200%200%201%203.4%206.22%204%204%200%200%201%201.87%205.18%204.98%204.98%200%200%201-1.7%208c.02.46.03.93.03%201.4v1h-62v-1zm.83-7.17a30.9%2030.9%200%200%200-.62%203.57%203%203%200%200%201-.61-4.2c.37.28.78.49%201.23.63zm1.49-4.61c-.36.87-.68%201.76-.96%202.68a2%202%200%200%201-.21-3.71c.33.4.73.75%201.17%201.03zm2.32-4.54c-.54.86-1.03%201.76-1.49%202.68a3%203%200%200%201-.07-4.67%203%203%200%200%200%201.56%201.99zm1.14-1.7c.35-.5.72-.98%201.1-1.46a1%201%200%201%200-1.1%201.45zm5.34-5.77c-1.03.86-2%201.79-2.9%202.77a3%203%200%200%200-1.11-.77%203%203%200%200%201%204-2zm42.66%202.77c-.9-.98-1.87-1.9-2.9-2.77a3%203%200%200%201%204.01%202%203%203%200%200%200-1.1.77zm1.34%201.54c.38.48.75.96%201.1%201.45a1%201%200%201%200-1.1-1.45zm3.73%205.84c-.46-.92-.95-1.82-1.5-2.68a3%203%200%200%200%201.57-1.99%203%203%200%200%201-.07%204.67zm1.8%204.53c-.29-.9-.6-1.8-.97-2.67.44-.28.84-.63%201.17-1.03a2%202%200%200%201-.2%203.7zm1.14%205.51c-.14-1.21-.35-2.4-.62-3.57.45-.14.86-.35%201.23-.63a2.99%202.99%200%200%201-.6%204.2zM275%20214a29%2029%200%200%200-57.97%200h57.96zM72.33%20198.12c-.21-.32-.34-.7-.34-1.12v-12h-2v12a4.01%204.01%200%200%200%207.09%202.54c.57-.69.91-1.57.91-2.54v-12h-2v12a1.99%201.99%200%200%201-2%202%202%202%200%200%201-1.66-.88zM75%20176c.38%200%20.74-.04%201.1-.12a4%204%200%200%200%206.19%202.4A13.94%2013.94%200%200%201%2084%20185v24a6%206%200%200%201-6%206h-3v9a5%205%200%201%201-10%200v-9h-3a6%206%200%200%201-6-6v-24a14%2014%200%200%201%2014-14%205%205%200%200%200%205%205zm-17%2015v12a1.99%201.99%200%200%200%201.22%201.84%202%202%200%200%200%202.44-.72c.21-.32.34-.7.34-1.12v-12h2v12a3.98%203.98%200%200%201-5.35%203.77%203.98%203.98%200%200%201-.65-.3V209a4%204%200%200%200%204%204h16a4%204%200%200%200%204-4v-24c.01-1.53-.23-2.88-.72-4.17-.43.1-.87.16-1.28.17a6%206%200%200%201-5.2-3%207%207%200%200%201-6.47-4.88A12%2012%200%200%200%2058%20185v6zm9%2024v9a3%203%200%201%200%206%200v-9h-6zM-17%20191a1%201%200%200%200%200%202h2a1%201%200%200%200%200-2h-2zm19%209a1%201%200%200%201%201-1h2a1%201%200%200%201%200%202H3a1%201%200%200%201-1-1zm-14%205a1%201%200%200%200%200%202h2a1%201%200%200%200%200-2h-2zm-25%201a1%201%200%200%200%200%202h2a1%201%200%200%200%200-2h-2zm5%204a1%201%200%200%200%200%202h2a1%201%200%200%200%200-2h-2zm9%200a1%201%200%200%201%201-1h2a1%201%200%200%201%200%202h-2a1%201%200%200%201-1-1zm15%201a1%201%200%200%201%201-1h2a1%201%200%200%201%200%202h-2a1%201%200%200%201-1-1zm12-2a1%201%200%200%200%200%202h2a1%201%200%200%200%200-2H4zm-11-14a1%201%200%200%201%201-1h2a1%201%200%200%201%200%202h-2a1%201%200%200%201-1-1zm-19%200a1%201%200%200%200%200%202h2a1%201%200%200%200%200-2h-2zm6%205a1%201%200%200%201%201-1h2a1%201%200%200%201%200%202h-2a1%201%200%200%201-1-1zm-25%2015c0-.47.01-.94.03-1.4a5%205%200%200%201-1.7-8%203.99%203.99%200%200%201%201.88-5.18%205%205%200%200%201%203.4-6.22%203%203%200%200%201%201.46-1.05%205%205%200%200%201%207.76-3.27A30.86%2030.86%200%200%201-14%20184c6.79%200%2013.06%202.18%2018.17%205.88a5%205%200%200%201%207.76%203.27%203%203%200%200%201%201.47%201.05%205%205%200%200%201%203.4%206.22%204%204%200%200%201%201.87%205.18%204.98%204.98%200%200%201-1.7%208c.02.46.03.93.03%201.4v1h-62v-1zm.83-7.17a30.9%2030.9%200%200%200-.62%203.57%203%203%200%200%201-.61-4.2c.37.28.78.49%201.23.63zm1.49-4.61c-.36.87-.68%201.76-.96%202.68a2%202%200%200%201-.21-3.71c.33.4.73.75%201.17%201.03zm2.32-4.54c-.54.86-1.03%201.76-1.49%202.68a3%203%200%200%201-.07-4.67%203%203%200%200%200%201.56%201.99zm1.14-1.7c.35-.5.72-.98%201.1-1.46a1%201%200%201%200-1.1%201.45zm5.34-5.77c-1.03.86-2%201.79-2.9%202.77a3%203%200%200%200-1.11-.77%203%203%200%200%201%204-2zm42.66%202.77c-.9-.98-1.87-1.9-2.9-2.77a3%203%200%200%201%204.01%202%203%203%200%200%200-1.1.77zm1.34%201.54c.38.48.75.96%201.1%201.45a1%201%200%201%200-1.1-1.45zm3.73%205.84c-.46-.92-.95-1.82-1.5-2.68a3%203%200%200%200%201.57-1.99%203%203%200%200%201-.07%204.67zm1.8%204.53c-.29-.9-.6-1.8-.97-2.67.44-.28.84-.63%201.17-1.03a2%202%200%200%201-.2%203.7zm1.14%205.51c-.14-1.21-.35-2.4-.62-3.57.45-.14.86-.35%201.23-.63a2.99%202.99%200%200%201-.6%204.2zM15%20214a29%2029%200%200%200-57.97%200h57.96z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/intersecting-circles.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const intersectingCircles = (
5 | fill = defaultFill,
6 | opacity = defaultOpacity
7 | ) =>
8 | `url('data:image/svg+xml,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eintersecting-circles%3C%2Ftitle%3E%3Cpath%20d%3D%22M15%200C6.716%200%200%206.716%200%2015c8.284%200%2015-6.716%2015-15zM0%2015c0%208.284%206.716%2015%2015%2015%200-8.284-6.716-15-15-15zm30%200c0-8.284-6.716-15-15-15%200%208.284%206.716%2015%2015%2015zm0%200c0%208.284-6.716%2015-15%2015%200-8.284%206.716-15%2015-15z%22%20fill%3D%22%23${unhex(
9 | fill
10 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
11 |
--------------------------------------------------------------------------------
/patterns/jigsaw.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const jigsaw = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22192%22%20height%3D%22192%22%20viewBox%3D%220%200%20192%20192%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%3E%3Cpath%20d%3D%22M192%2015v2a11%2011%200%200%200-11%2011c0%201.94%201.16%204.75%202.53%206.11l2.36%202.36a6.93%206.93%200%200%201%201.22%207.56l-.43.84a8.08%208.08%200%200%201-6.66%204.13H145v35.02a6.1%206.1%200%200%200%203.03%204.87l.84.43c1.58.79%204%20.4%205.24-.85l2.36-2.36a12.04%2012.04%200%200%201%207.51-3.11%2013%2013%200%201%201%20.02%2026%2012%2012%200%200%201-7.53-3.11l-2.36-2.36a4.93%204.93%200%200%200-5.24-.85l-.84.43a6.1%206.1%200%200%200-3.03%204.87V143h35.02a8.08%208.08%200%200%201%206.66%204.13l.43.84a6.91%206.91%200%200%201-1.22%207.56l-2.36%202.36A10.06%2010.06%200%200%200%20181%20164a11%2011%200%200%200%2011%2011v2a13%2013%200%200%201-13-13%2012%2012%200%200%201%203.11-7.53l2.36-2.36a4.93%204.93%200%200%200%20.85-5.24l-.43-.84a6.1%206.1%200%200%200-4.87-3.03H145v35.02a8.08%208.08%200%200%201-4.13%206.66l-.84.43a6.91%206.91%200%200%201-7.56-1.22l-2.36-2.36A10.06%2010.06%200%200%200%20124%20181a11%2011%200%200%200-11%2011h-2a13%2013%200%200%201%2013-13c2.47%200%205.79%201.37%207.53%203.11l2.36%202.36a4.94%204.94%200%200%200%205.24.85l.84-.43a6.1%206.1%200%200%200%203.03-4.87V145h-35.02a8.08%208.08%200%200%201-6.66-4.13l-.43-.84a6.91%206.91%200%200%201%201.22-7.56l2.36-2.36A10.06%2010.06%200%200%200%20107%20124a11%2011%200%200%200-22%200c0%201.94%201.16%204.75%202.53%206.11l2.36%202.36a6.93%206.93%200%200%201%201.22%207.56l-.43.84a8.08%208.08%200%200%201-6.66%204.13H49v35.02a6.1%206.1%200%200%200%203.03%204.87l.84.43c1.58.79%204%20.4%205.24-.85l2.36-2.36a12.04%2012.04%200%200%201%207.51-3.11A13%2013%200%200%201%2081%20192h-2a11%2011%200%200%200-11-11c-1.94%200-4.75%201.16-6.11%202.53l-2.36%202.36a6.93%206.93%200%200%201-7.56%201.22l-.84-.43a8.08%208.08%200%200%201-4.13-6.66V145H11.98a6.1%206.1%200%200%200-4.87%203.03l-.43.84c-.79%201.58-.4%204%20.85%205.24l2.36%202.36a12.04%2012.04%200%200%201%203.11%207.51A13%2013%200%200%201%200%20177v-2a11%2011%200%200%200%2011-11c0-1.94-1.16-4.75-2.53-6.11l-2.36-2.36a6.93%206.93%200%200%201-1.22-7.56l.43-.84a8.08%208.08%200%200%201%206.66-4.13H47v-35.02a6.1%206.1%200%200%200-3.03-4.87l-.84-.43c-1.59-.8-4-.4-5.24.85l-2.36%202.36A12%2012%200%200%201%2028%20109a13%2013%200%201%201%200-26c2.47%200%205.79%201.37%207.53%203.11l2.36%202.36a4.94%204.94%200%200%200%205.24.85l.84-.43A6.1%206.1%200%200%200%2047%2084.02V49H11.98a8.08%208.08%200%200%201-6.66-4.13l-.43-.84a6.91%206.91%200%200%201%201.22-7.56l2.36-2.36A10.06%2010.06%200%200%200%2011%2028%2011%2011%200%200%200%200%2017v-2a13%2013%200%200%201%2013%2013c0%202.47-1.37%205.79-3.11%207.53l-2.36%202.36a4.94%204.94%200%200%200-.85%205.24l.43.84A6.1%206.1%200%200%200%2011.98%2047H47V11.98a8.08%208.08%200%200%201%204.13-6.66l.84-.43a6.91%206.91%200%200%201%207.56%201.22l2.36%202.36A10.06%2010.06%200%200%200%2068%2011%2011%2011%200%200%200%2079%200h2a13%2013%200%200%201-13%2013%2012%2012%200%200%201-7.53-3.11l-2.36-2.36a4.93%204.93%200%200%200-5.24-.85l-.84.43A6.1%206.1%200%200%200%2049%2011.98V47h35.02a8.08%208.08%200%200%201%206.66%204.13l.43.84a6.91%206.91%200%200%201-1.22%207.56l-2.36%202.36A10.06%2010.06%200%200%200%2085%2068a11%2011%200%200%200%2022%200c0-1.94-1.16-4.75-2.53-6.11l-2.36-2.36a6.93%206.93%200%200%201-1.22-7.56l.43-.84a8.08%208.08%200%200%201%206.66-4.13H143V11.98a6.1%206.1%200%200%200-3.03-4.87l-.84-.43c-1.59-.8-4-.4-5.24.85l-2.36%202.36A12%2012%200%200%201%20124%2013a13%2013%200%200%201-13-13h2a11%2011%200%200%200%2011%2011c1.94%200%204.75-1.16%206.11-2.53l2.36-2.36a6.93%206.93%200%200%201%207.56-1.22l.84.43a8.08%208.08%200%200%201%204.13%206.66V47h35.02a6.1%206.1%200%200%200%204.87-3.03l.43-.84c.8-1.59.4-4-.85-5.24l-2.36-2.36A12%2012%200%200%201%20179%2028a13%2013%200%200%201%2013-13zM84.02%20143a6.1%206.1%200%200%200%204.87-3.03l.43-.84c.8-1.59.4-4-.85-5.24l-2.36-2.36A12%2012%200%200%201%2083%20124a13%2013%200%201%201%2026%200c0%202.47-1.37%205.79-3.11%207.53l-2.36%202.36a4.94%204.94%200%200%200-.85%205.24l.43.84a6.1%206.1%200%200%200%204.87%203.03H143v-35.02a8.08%208.08%200%200%201%204.13-6.66l.84-.43a6.91%206.91%200%200%201%207.56%201.22l2.36%202.36A10.06%2010.06%200%200%200%20164%20107a11%2011%200%200%200%200-22c-1.94%200-4.75%201.16-6.11%202.53l-2.36%202.36a6.93%206.93%200%200%201-7.56%201.22l-.84-.43a8.08%208.08%200%200%201-4.13-6.66V49h-35.02a6.1%206.1%200%200%200-4.87%203.03l-.43.84c-.79%201.58-.4%204%20.85%205.24l2.36%202.36a12.04%2012.04%200%200%201%203.11%207.51A13%2013%200%201%201%2083%2068a12%2012%200%200%201%203.11-7.53l2.36-2.36a4.93%204.93%200%200%200%20.85-5.24l-.43-.84A6.1%206.1%200%200%200%2084.02%2049H49v35.02a8.08%208.08%200%200%201-4.13%206.66l-.84.43a6.91%206.91%200%200%201-7.56-1.22l-2.36-2.36A10.06%2010.06%200%200%200%2028%2085a11%2011%200%200%200%200%2022c1.94%200%204.75-1.16%206.11-2.53l2.36-2.36a6.93%206.93%200%200%201%207.56-1.22l.84.43a8.08%208.08%200%200%201%204.13%206.66V143h35.02z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/jupiter.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const jupiter = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20width%3D%2252%22%20height%3D%2252%22%20viewBox%3D%220%200%2052%2052%22%3E%3Cpath%20d%3D%22M0%2017.83V0h17.83a3%203%200%200%201-5.66%202H5.9A5%205%200%200%201%202%205.9v6.27a3%203%200%200%201-2%205.66zm0%2018.34a3%203%200%200%201%202%205.66v6.27A5%205%200%200%201%205.9%2052h6.27a3%203%200%200%201%205.66%200H0V36.17zM36.17%2052a3%203%200%200%201%205.66%200h6.27a5%205%200%200%201%203.9-3.9v-6.27a3%203%200%200%201%200-5.66V52H36.17zM0%2031.93v-9.78a5%205%200%200%201%203.8.72l4.43-4.43a3%203%200%201%201%201.42%201.41L5.2%2024.28a5%205%200%200%201%200%205.52l4.44%204.43a3%203%200%201%201-1.42%201.42L3.8%2031.2a5%205%200%200%201-3.8.72zm52-14.1a3%203%200%200%201%200-5.66V5.9A5%205%200%200%201%2048.1%202h-6.27a3%203%200%200%201-5.66-2H52v17.83zm0%2014.1a4.97%204.97%200%200%201-1.72-.72l-4.43%204.44a3%203%200%201%201-1.41-1.42l4.43-4.43a5%205%200%200%201%200-5.52l-4.43-4.43a3%203%200%201%201%201.41-1.41l4.43%204.43c.53-.35%201.12-.6%201.72-.72v9.78zM22.15%200h9.78a5%205%200%200%201-.72%203.8l4.44%204.43a3%203%200%201%201-1.42%201.42L29.8%205.2a5%205%200%200%201-5.52%200l-4.43%204.44a3%203%200%201%201-1.41-1.42l4.43-4.43a5%205%200%200%201-.72-3.8zm0%2052c.13-.6.37-1.19.72-1.72l-4.43-4.43a3%203%200%201%201%201.41-1.41l4.43%204.43a5%205%200%200%201%205.52%200l4.43-4.43a3%203%200%201%201%201.42%201.41l-4.44%204.43c.36.53.6%201.12.72%201.72h-9.78zm9.75-24a5%205%200%200%201-3.9%203.9v6.27a3%203%200%201%201-2%200V31.9a5%205%200%200%201-3.9-3.9h-6.27a3%203%200%201%201%200-2h6.27a5%205%200%200%201%203.9-3.9v-6.27a3%203%200%201%201%202%200v6.27a5%205%200%200%201%203.9%203.9h6.27a3%203%200%201%201%200%202H31.9z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/kiwi.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const kiwi = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2244%22%20width%3D%2234%22%20viewBox%3D%220%200%2034%2044%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20d%3D%22M1%206.2C.72%205.55.38%204.94%200%204.36v13.28c.38-.58.72-1.2%201-1.84A12.04%2012.04%200%200%200%207.2%2022%2012.04%2012.04%200%200%200%201%2028.2c-.28-.65-.62-1.26-1-1.84v13.28c.38-.58.72-1.2%201-1.84A12.04%2012.04%200%200%200%207.2%2044h21.6a12.05%2012.05%200%200%200%205.2-4.36V26.36A12.05%2012.05%200%200%200%2028.8%2022a12.05%2012.05%200%200%200%205.2-4.36V4.36A12.05%2012.05%200%200%200%2028.8%200H7.2A12.04%2012.04%200%200%200%201%206.2zM17.36%2023H12a10%2010%200%201%200%200%2020h5.36a11.99%2011.99%200%200%201%200-20zm1.28-2H24a10%2010%200%201%200%200-20h-5.36a11.99%2011.99%200%200%201%200%2020zM12%201a10%2010%200%201%200%200%2020%2010%2010%200%200%200%200-20zm0%2014a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm-3.46-2a2%202%200%201%200-3.47%202%202%202%200%200%200%203.47-2zm0-4a2%202%200%201%200-3.47-2%202%202%200%200%200%203.47%202zM12%207a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm3.46%202a2%202%200%201%200%203.47-2%202%202%200%200%200-3.47%202zm0%204a2%202%200%201%200%203.47%202%202%202%200%200%200-3.47-2zM24%2043a10%2010%200%201%200%200-20%2010%2010%200%200%200%200%2020zm0-14a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm3.46%202a2%202%200%201%200%203.47-2%202%202%200%200%200-3.47%202zm0%204a2%202%200%201%200%203.47%202%202%202%200%200%200-3.47-2zM24%2037a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm-3.46-2a2%202%200%201%200-3.47%202%202%202%200%200%200%203.47-2zm0-4a2%202%200%201%200-3.47-2%202%202%200%200%200%203.47%202z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/leaf.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const leaf = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2280%22%20height%3D%2240%22%20viewBox%3D%220%200%2080%2040%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eleaf%3C%2Ftitle%3E%3Cg%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M2.011%2039.976c.018-4.594%201.785-9.182%205.301-12.687.475-.474.97-.916%201.483-1.326v9.771L4.54%2039.976H2.01zm5.373%200L23.842%2023.57c.687%205.351-1.031%2010.95-5.154%2015.06-.483.483-.987.931-1.508%201.347H7.384zm-7.384%200c.018-5.107%201.982-10.208%205.89-14.104%205.263-5.247%2012.718-6.978%2019.428-5.192%201.783%206.658.07%2014.053-5.137%2019.296H.001zm10.806-15.41c3.537-2.116%207.644-2.921%2011.614-2.415L10.806%2033.73v-9.163zM65.25.75C58.578-1.032%2051.164.694%2045.93%205.929c-5.235%205.235-6.961%2012.649-5.18%2019.321%206.673%201.782%2014.087.056%2019.322-5.179%205.235-5.235%206.961-12.649%205.18-19.321zM43.632%2023.783c5.338.683%2010.925-1.026%2015.025-5.126%204.1-4.1%205.809-9.687%205.126-15.025l-20.151%2020.15zm7.186-19.156c3.518-2.112%207.602-2.915%2011.55-2.41l-11.55%2011.55v-9.14zm-3.475%202.716c-4.1%204.1-5.809%209.687-5.126%2015.025l6.601-6.6V6.02c-.51.41-1.002.85-1.475%201.323zM.071%200C.065%201.766.291%203.533.75%205.25%207.422%207.032%2014.836%205.306%2020.07.071l.07-.071H.072zm17.086%200C13.25%203.125%208.345%204.386%203.632%203.783L7.414%200h9.743zM2.07%200c-.003.791.046%201.582.146%202.368L4.586%200H2.07z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/lines-in-motion.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const linesInMotion = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%22120%22%20height%3D%22120%22%20viewBox%3D%220%200%20120%20120%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eline-in-motion%3C%2Ftitle%3E%3Cpath%20d%3D%22M9%200h2v20H9V0zm25.134.84l1.732%201-10%2017.32-1.732-1%2010-17.32zm-20%2020l1.732%201-10%2017.32-1.732-1%2010-17.32zM58.16%204.134l1%201.732-17.32%2010-1-1.732%2017.32-10zm-40%2040l1%201.732-17.32%2010-1-1.732%2017.32-10zM80%209v2H60V9h20zM20%2069v2H0v-2h20zm79.32-55l-1%201.732-17.32-10L82%204l17.32%2010zm-80%2080l-1%201.732-17.32-10L2%2084l17.32%2010zm96.546-75.84l-1.732%201-10-17.32%201.732-1%2010%2017.32zm-100%20100l-1.732%201-10-17.32%201.732-1%2010%2017.32zM38.16%2024.134l1%201.732-17.32%2010-1-1.732%2017.32-10zM60%2029v2H40v-2h20zm19.32%205l-1%201.732-17.32-10L62%2024l17.32%2010zm16.546%204.16l-1.732%201-10-17.32%201.732-1%2010%2017.32zM111%2040h-2V20h2v20zm3.134.84l1.732%201-10%2017.32-1.732-1%2010-17.32zM40%2049v2H20v-2h20zm19.32%205l-1%201.732-17.32-10L42%2044l17.32%2010zm16.546%204.16l-1.732%201-10-17.32%201.732-1%2010%2017.32zM91%2060h-2V40h2v20zm3.134.84l1.732%201-10%2017.32-1.732-1%2010-17.32zm24.026%203.294l1%201.732-17.32%2010-1-1.732%2017.32-10zM39.32%2074l-1%201.732-17.32-10L22%2064l17.32%2010zm16.546%204.16l-1.732%201-10-17.32%201.732-1%2010%2017.32zM71%2080h-2V60h2v20zm3.134.84l1.732%201-10%2017.32-1.732-1%2010-17.32zm24.026%203.294l1%201.732-17.32%2010-1-1.732%2017.32-10zM120%2089v2h-20v-2h20zm-84.134%209.16l-1.732%201-10-17.32%201.732-1%2010%2017.32zM51%20100h-2V80h2v20zm3.134.84l1.732%201-10%2017.32-1.732-1%2010-17.32zm24.026%203.294l1%201.732-17.32%2010-1-1.732%2017.32-10zM100%20109v2H80v-2h20zm19.32%205l-1%201.732-17.32-10%201-1.732%2017.32%2010zM31%20120h-2v-20h2v20z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/lips.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const lips = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2292%22%20width%3D%22112%22%20viewBox%3D%220%200%20112%2092%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20d%3D%22M72%2010H40L16%2020H0v8h16l24-14h32l24%2014h16v-8H96L72%2010zm0-8H40L16%204H0v8h16l24-6h32l24%206h16V4H96L72%202zm0%2084H40l-24-6H0v8h16l24%202h32l24-2h16v-8H96l-24%206zm0-8H40L16%2064H0v8h16l24%2010h32l24-10h16v-8H96L72%2078zm0-12H40L16%2056H0v4h16l24%2014h32l24-14h16v-4H96L72%2066zm0-16H40l-24-2H0v4h16l24%206h32l24-6h16v-4H96l-24%202zm0-16H40l-24%206H0v4h16l24-2h32l24%202h16v-4H96l-24-6zm0-16H40L16%2032H0v4h16l24-10h32l24%2010h16v-4H96L72%2018z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/lisbon.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const lisbon = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2280%22%20width%3D%2280%22%20viewBox%3D%220%200%2080%2080%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20d%3D%22M41%2037.59V25h-2v12.59l-8.9-8.9-1.41%201.41%208.9%208.9H25v2h12.59l-8.9%208.9%201.41%201.41%208.9-8.9V55h2V42.41l8.9%208.9%201.41-1.41-8.9-8.9H55v-2H42.41l8.9-8.9-1.41-1.41-8.9%208.9zM1%201h2v2H1V1zm0%204h2v2H1V5zm0%204h2v2H1V9zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm0%204h2v2H1v-2zm4%200h2v2H5v-2zm4%200h2v2H9v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zm4%200h2v2h-2v-2zM5%201h2v2H5V1zm4%200h2v2H9V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm4%200h2v2h-2V1zm0%204h2v2h-2V5zm0%204h2v2h-2V9zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zm0%204h2v2h-2v-2zM5%205h70v70H5V5zm2%2068h66V7H7v66zM9%209h62v62H9V9zm2%2060h58V11H11v58zm2-39.6V13h16.4A29.1%2029.1%200%200%200%2013%2029.4zM15%2015v6.67A31.17%2031.17%200%200%201%2021.67%2015H15zm-2%2052V50.6A29.1%2029.1%200%200%200%2029.4%2067H13zm2-8.67V65h6.67A31.17%2031.17%200%200%201%2015%2058.33zM67%2067H50.6A29.1%2029.1%200%200%200%2067%2050.6V67zm-8.67-2H65v-6.67A31.17%2031.17%200%200%201%2058.33%2065zM67%2013v16.4A29.1%2029.1%200%200%200%2050.6%2013H67zm-2%208.67V15h-6.67A31.17%2031.17%200%200%201%2065%2021.67zM39%2013h2v2h-2v-2zm7.02.66l1.93.52-.51%201.93-1.94-.52.52-1.93zm6.61%202.46l1.74%201-1%201.73-1.74-1%201-1.73zm5.75%204.08l1.42%201.42-1.42%201.4-1.4-1.4%201.4-1.42zm4.5%205.43l1%201.74-1.73%201-1-1.74%201.73-1zm2.94%206.42l.52%201.93-1.93.52-.52-1.94%201.93-.51zM67%2039v2h-2v-2h2zm-.66%207.02l-.52%201.93-1.93-.51.52-1.94%201.93.52zm-2.46%206.61l-1%201.74-1.73-1%201-1.74%201.73%201zm-4.08%205.75l-1.42%201.42-1.4-1.42%201.4-1.4%201.42%201.4zm-5.43%204.5l-1.74%201-1-1.73%201.74-1%201%201.73zM41%2067h-2v-2h2v2zm6.95-1.18l-1.93.52-.52-1.93%201.94-.52.51%201.93zm-13.97.52l-1.93-.52.51-1.93%201.94.52-.52%201.93zm-6.61-2.46l-1.74-1%201-1.73%201.74%201-1%201.73zm-5.75-4.08l-1.42-1.42%201.42-1.4%201.4%201.4-1.4%201.42zm-4.5-5.43l-1-1.74%201.73-1%201%201.74-1.73%201zm-2.94-6.42l-.52-1.93%201.93-.52.52%201.94-1.93.51zM13%2041v-2h2v2h-2zm.66-7.02l.52-1.93%201.93.51-.52%201.94-1.93-.52zm2.46-6.61l1-1.74%201.73%201-1%201.74-1.73-1zm4.08-5.75l1.42-1.42%201.4%201.42-1.4%201.4-1.42-1.4zm5.43-4.5l1.74-1%201%201.73-1.74%201-1-1.73zm6.42-2.94l1.93-.52.52%201.93-1.94.52-.51-1.93zM40%2063a23%2023%200%201%201%200-46%2023%2023%200%200%201%200%2046zm0-2a21%2021%200%201%200%200-42%2021%2021%200%200%200%200%2042zm0-2a19%2019%200%201%201%200-38%2019%2019%200%200%201%200%2038zm0-2a17%2017%200%201%200%200-34%2017%2017%200%200%200%200%2034z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/melt.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const melt = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2220%22%20viewBox%3D%220%200%2024%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Emelt%3C%2Ftitle%3E%3Cpath%20d%3D%22M20%2018c0-1.105.887-2%201.998-2%201.104%200%202-.895%202.002-1.994V14v6h-4v-2zM0%2013.998C0%2012.895.888%2012%202%2012c1.105%200%202%20.888%202%202%200%201.105.888%202%202%202%201.105%200%202%20.888%202%202v2H0v-6.002zm16%204.004C16%2019.105%2015.112%2020%2014%2020c-1.105%200-2-.887-2-1.998v-4.004C12%2012.895%2011.112%2012%2010%2012c-1.105%200-2-.888-2-2%200-1.105-.888-2-2-2-1.105%200-2-.887-2-1.998V1.998C4%20.895%203.112%200%202%200%20.895%200%200%20.895%200%202V0h8v2c0%201.105.888%202%202%202%201.105%200%202%20.888%202%202%200%201.105.888%202%202%202%201.105%200%202-.888%202-2%200-1.105.888-2%202-2%201.105%200%202-.888%202-2V0h4v6.002C24%207.105%2023.112%208%2022%208c-1.105%200-2%20.888-2%202%200%201.105-.888%202-2%202-1.105%200-2%20.887-2%201.998v4.004z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/moroccan.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const moroccan = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2280%22%20height%3D%2288%22%20viewBox%3D%220%200%2080%2088%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Emoroccan%3C%2Ftitle%3E%3Cpath%20d%3D%22M22%2021.91V26h-2.001C10.06%2026%202%2034.059%202%2044c0%209.943%208.058%2018%2017.999%2018H22v4.09c8.012.722%2014.785%205.738%2018%2012.73%203.212-6.991%209.983-12.008%2018-12.73V62h2.001C69.94%2062%2078%2053.941%2078%2044c0-9.943-8.058-18-17.999-18H58v-4.09c-8.012-.722-14.785-5.738-18-12.73-3.212%206.991-9.983%2012.008-18%2012.73zM54%2058v4.696c-5.574%201.316-10.455%204.428-14%208.69-3.545-4.262-8.426-7.374-14-8.69V58h-5.993C12.271%2058%206%2051.734%206%2044c0-7.732%206.275-14%2014.007-14H26v-4.696c5.574-1.316%2010.455-4.428%2014-8.69%203.545%204.262%208.426%207.374%2014%208.69V30h5.993C67.729%2030%2074%2036.266%2074%2044c0%207.732-6.275%2014-14.007%2014H54zM42%2088c0-9.941%208.061-18%2017.999-18H62v-4.09c8.016-.722%2014.787-5.738%2018-12.73v7.434c-3.545%204.262-8.426%207.374-14%208.69V74h-5.993C52.275%2074%2046%2080.268%2046%2088h-4zm-4%200c0-9.943-8.058-18-17.999-18H18v-4.09c-8.012-.722-14.785-5.738-18-12.73v7.434c3.545%204.262%208.426%207.374%2014%208.69V74h5.993C27.729%2074%2034%2080.266%2034%2088h4zm4-88c0%209.943%208.058%2018%2017.999%2018H62v4.09c8.012.722%2014.785%205.738%2018%2012.73v-7.434c-3.545-4.262-8.426-7.374-14-8.69V14h-5.993C52.271%2014%2046%207.734%2046%200h-4zM0%2034.82c3.213-6.992%209.984-12.008%2018-12.73V18h2.001C29.94%2018%2038%209.941%2038%200h-4c0%207.732-6.275%2014-14.007%2014H14v4.696c-5.574%201.316-10.455%204.428-14%208.69v7.433z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/morphing-diamonds.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const morphingDiamonds = (
5 | fill = defaultFill,
6 | opacity = defaultOpacity
7 | ) =>
8 | `url('data:image/svg+xml,%3Csvg%20width%3D%2260%22%20height%3D%2260%22%20viewBox%3D%220%200%2060%2060%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Emorphing-diamonds%3C%2Ftitle%3E%3Cpath%20d%3D%22M54.627%200l.829.828-1.414%201.415L51.799%200h2.828zM5.373%200l-.829.828%201.414%201.415L8.201%200H5.373zM48.97%200l3.656%203.657-1.414%201.414L46.143%200h2.828zM11.029%200L7.373%203.657%208.787%205.07%2013.857%200H11.03zm32.285%200l6.485%206.485L48.385%207.9%2040.485%200h2.829zM16.686%200l-6.485%206.485L11.615%207.9%2019.515%200h-2.829zm20.97%200l9.315%209.314-1.415%201.414L34.828%200h2.829zM22.344%200L13.03%209.314l1.415%201.414L25.172%200h-2.829zM32%200l12.142%2012.142-1.414%201.414L30%20.828%2017.272%2013.556l-1.414-1.414L28%200h4zM.284%200l28%2028-1.414%201.414L0%202.544V0h.284zM0%205.373l25.456%2025.455-1.414%201.415L0%208.2V5.373zm0%205.656l22.627%2022.628-1.414%201.414L0%2013.858v-2.829zm0%205.657l19.799%2019.8-1.414%201.413L0%2019.515v-2.829zm0%205.657l16.97%2016.97-1.414%201.415L0%2025.172v-2.829zM0%2028l14.142%2014.142-1.414%201.414L0%2030.828V28zm0%205.657L11.314%2044.97l-1.415%201.414L0%2036.485v-2.828zm0%205.657l8.485%208.485-1.414%201.414L0%2042.143v-2.83zm0%205.657l5.657%205.656-1.414%201.415L0%2047.799v-2.828zm0%205.656l2.828%202.829-1.414%201.414L0%2053.456v-2.829zM54.627%2060L30%2035.373%205.373%2060H8.2L30%2038.201%2051.799%2060h2.828zm-5.656%200L30%2041.03%2011.03%2060h2.828L30%2043.858%2046.142%2060h2.829zm-5.657%200L30%2046.686%2016.686%2060h2.829L30%2049.515%2040.485%2060h2.829zm-5.657%200L30%2052.343%2022.343%2060h2.829L30%2055.172%2034.828%2060h2.829zM32%2060l-2-2-2%202h4zM59.716%200l-28%2028%201.414%201.414L60%202.544V0h-.284zM60%205.373L34.544%2030.828l1.414%201.415L60%208.2V5.373zm0%205.656L37.373%2033.657l1.414%201.414L60%2013.858v-2.829zm0%205.657l-19.799%2019.8%201.414%201.413L60%2019.515v-2.829zm0%205.657l-16.97%2016.97%201.414%201.415L60%2025.172v-2.829zM60%2028L45.858%2042.142l1.414%201.414L60%2030.828V28zm0%205.657L48.686%2044.97l1.415%201.414%209.899-9.9v-2.828zm0%205.657l-8.485%208.485%201.414%201.414L60%2042.143v-2.83zm0%205.657l-5.657%205.656%201.414%201.415L60%2047.799v-2.828zm0%205.656l-2.828%202.829%201.414%201.414L60%2053.456v-2.829zM39.9%2016.385l1.414-1.414L30%203.657%2018.686%2014.97l1.415%201.414L30%206.485l9.9%209.9zm-2.829%202.828l1.414-1.414L30%209.314l-8.485%208.485%201.414%201.414L30%2012.143l7.071%207.07zm-2.828%202.829l1.414-1.415L30%2014.971l-5.657%205.656%201.414%201.415L30%2017.799l4.243%204.243zm-2.829%202.828l1.414-1.414L30%2020.627l-2.828%202.829%201.414%201.414L30%2023.456l1.414%201.414zM56.87%2059.414L58.284%2058%2030%2029.716%201.716%2058l1.414%201.414L30%2032.544l26.87%2026.87z%22%20fill%3D%22%23${unhex(
9 | fill
10 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
11 |
--------------------------------------------------------------------------------
/patterns/overcast.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const overcast = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2080%2080%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20width%3D%2280%22%20height%3D%2280%22%3E%3Cpath%20d%3D%22M0%200h80v80H0V0zm20%2020v40h40V20H20zm20%2035a15%2015%200%201%201%200-30%2015%2015%200%200%201%200%2030z%22%20opacity%3D%22.5%22%2F%3E%3Cpath%20d%3D%22M15%2015h50l-5%205H20v40l-5%205V15zm0%2050h50V15L80%200v80H0l15-15zm32.07-32.07l3.54-3.54A15%2015%200%200%201%2029.4%2050.6l3.53-3.53a10%2010%200%201%200%2014.14-14.14zM32.93%2047.07a10%2010%200%201%201%2014.14-14.14L32.93%2047.07z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/overlapping-circles.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const overlappingCircles = (
5 | fill = defaultFill,
6 | opacity = defaultOpacity
7 | ) =>
8 | `url('data:image/svg+xml,%3Csvg%20width%3D%2280%22%20height%3D%2280%22%20viewBox%3D%220%200%2080%2080%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M50%2050c0-5.523%204.477-10%2010-10s10%204.477%2010%2010-4.477%2010-10%2010c0%205.523-4.477%2010-10%2010s-10-4.477-10-10%204.477-10%2010-10zM10%2010c0-5.523%204.477-10%2010-10s10%204.477%2010%2010-4.477%2010-10%2010c0%205.523-4.477%2010-10%2010S0%2025.523%200%2020s4.477-10%2010-10zm10%208c4.418%200%208-3.582%208-8s-3.582-8-8-8-8%203.582-8%208%203.582%208%208%208zm40%2040c4.418%200%208-3.582%208-8s-3.582-8-8-8-8%203.582-8%208%203.582%208%208%208z%22%20fill%3D%22%23${unhex(
9 | fill
10 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
11 |
--------------------------------------------------------------------------------
/patterns/overlapping-diamonds.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const overlappingDiamonds = (
5 | fill = defaultFill,
6 | opacity = defaultOpacity
7 | ) =>
8 | `url('data:image/svg+xml,%3Csvg%20width%3D%2248%22%20height%3D%2264%22%20viewBox%3D%220%200%2048%2064%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eoverlapping-diamonds%3C%2Ftitle%3E%3Cpath%20d%3D%22M48%2028v-4L36%2012%2024%2024%2012%2012%200%2024v4l4%204-4%204v4l12%2012%2012-12%2012%2012%2012-12v-4l-4-4%204-4zM8%2032l-6-6%2010-10%2010%2010-6%206%206%206-10%2010L2%2038l6-6zm12%200l4-4%204%204-4%204-4-4zm12%200l-6-6%2010-10%2010%2010-6%206%206%206-10%2010-10-10%206-6zM0%2016L10%206%204%200h4l4%204%204-4h4l-6%206%2010%2010L34%206l-6-6h4l4%204%204-4h4l-6%206%2010%2010v4L36%208%2024%2020%2012%208%200%2020v-4zm0%2032l10%2010-6%206h4l4-4%204%204h4l-6-6%2010-10%2010%2010-6%206h4l4-4%204%204h4l-6-6%2010-10v-4L36%2056%2024%2044%2012%2056%200%2044v4z%22%20fill%3D%22%23${unhex(
9 | fill
10 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
11 |
--------------------------------------------------------------------------------
/patterns/overlapping-hexagons.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const overlappingHexagons = (
5 | fill = defaultFill,
6 | opacity = defaultOpacity
7 | ) =>
8 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2250%22%20height%3D%2240%22%20viewBox%3D%220%200%2050%2040%22%3E%3Cpath%20d%3D%22M40%2010L36.67%200h-2.11l3.33%2010H20l-2.28%206.84L12.11%200H10l6.67%2020H10l-2.28%206.84L2.11%2010%205.44%200h-2.1L0%2010l6.67%2020-3.34%2010h2.11l2.28-6.84L10%2040h20l2.28-6.84L34.56%2040h2.1l-3.33-10H40l2.28-6.84L47.89%2040H50l-6.67-20L50%200h-2.1l-5.62%2016.84L40%2010zm1.23%2010l-2.28-6.84L34%2028h4.56l2.67-8zm-10.67%208l-2-6h-9.12l2%206h9.12zm-12.84-4.84L12.77%2038h15.79l2.67-8H20l-2.28-6.84zM18.77%2020H30l2.28%206.84L37.23%2012H21.44l-2.67%208zm-7.33%202H16l-4.95%2014.84L8.77%2030l2.67-8z%22%20fill-rule%3D%22evenodd%22%20fill%3D%22%23${unhex(
9 | fill
10 | )}%22%20fill-opacity%3D%22${opacity}%22%2F%3E%3C%2Fsvg%3E')`;
11 |
--------------------------------------------------------------------------------
/patterns/parkay-floor.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const parkayFloor = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%220%200%2040%2040%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eparkay%3C%2Ftitle%3E%3Cpath%20d%3D%22M20%2020.5V18H0v-2h20v-2H0v-2h20v-2H0V8h20V6H0V4h20V2H0V0h22v20h2V0h2v20h2V0h2v20h2V0h2v20h2V0h2v20h2v2H20v-1.5zM0%2020h2v20H0V20zm4%200h2v20H4V20zm4%200h2v20H8V20zm4%200h2v20h-2V20zm4%200h2v20h-2V20zm4%204h20v2H20v-2zm0%204h20v2H20v-2zm0%204h20v2H20v-2zm0%204h20v2H20v-2z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/piano-man.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const pianoMan = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2270%22%20height%3D%2246%22%20viewBox%3D%220%200%2070%2046%22%3E%3Cpath%20d%3D%22M68%2044h-6v2h-6v-2h-4v2h-6v-2h-6v2h-2v-2h-6v2h-6v-2h-4v2h-6v-2h-4v2H6v-2H0v-2h8V28H6V0h6v28h-2v14h8V28h-2V0h6v28h-2v14h8V28h-2V0h6v28h-2v14h8V0h2v42h8V28h-2V0h6v28h-2v14h8V28h-2V0h6v28h-2v14h8V0h2v46h-2z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/pie-factory.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const pieFactory = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2260%22%20height%3D%2260%22%20viewBox%3D%220%200%2060%2060%22%3E%3Cpath%20d%3D%22M29%2058.58l7.38-7.39A30.95%2030.95%200%200%201%2029%2037.84a30.95%2030.95%200%200%201-7.38%2013.36l7.37%207.38zm1.4%201.41l.01.01h-2.84l-7.37-7.38A30.95%2030.95%200%200%201%206.84%2060H0v-1.02a28.9%2028.9%200%200%200%2018.79-7.78L0%2032.41v-4.84L18.78%208.79A28.9%2028.9%200%200%200%200%201.02V0h6.84a30.95%2030.95%200%200%201%2013.35%207.38L27.57%200h2.84l7.39%207.38A30.95%2030.95%200%200%201%2051.16%200H60v27.58-.01V60h-8.84a30.95%2030.95%200%200%201-13.37-7.4L30.4%2060zM29%201.41l-7.4%207.38A30.95%2030.95%200%200%201%2029%2022.16%2030.95%2030.95%200%200%201%2036.38%208.8L29%201.4zM58%201a28.9%2028.9%200%200%200-18.8%207.8L58%2027.58V1.02zm-20.2%209.2A28.9%2028.9%200%200%200%2030.02%2029h26.56L37.8%2010.21zM30.02%2031a28.9%2028.9%200%200%200%207.77%2018.79L56.58%2031H30.02zm9.18%2020.2A28.9%2028.9%200%200%200%2058%2059V32.4L39.2%2051.19zm-19-1.4A28.9%2028.9%200%200%200%2027.98%2031H1.41l18.8%2018.8zM27.98%2029a28.9%2028.9%200%200%200-7.78-18.8L1.41%2029h26.57z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/pixel-dots.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const pixelDots = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Epixel-dots%3C%2Ftitle%3E%3Cpath%20d%3D%22M0%200h16v2h-6v6h6v8H8v-6H2v6H0V0zm4%204h2v2H4V4zm8%208h2v2h-2v-2zm-8%200h2v2H4v-2zm8-8h2v2h-2V4z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/plus.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const plus = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2260%22%20height%3D%2260%22%20viewBox%3D%220%200%2060%2060%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M36%2034v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6%2034v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6%204V0H4v4H0v2h4v4h2V6h4V4H6z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/polka-dots.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const polkaDots = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Edots%3C%2Ftitle%3E%3Cg%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%3E%3Ccircle%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2213%22%20cy%3D%2213%22%20r%3D%223%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/rails.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const rails = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2220%22%20height%3D%2210%22%20viewBox%3D%220%200%2020%2010%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Erails%3C%2Ftitle%3E%3Cpath%20d%3D%22M16%206H6v4H4V6H2V4h2V0h2v4h10V0h2v4h2v2h-2v4h-2V6z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/rain.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const rain = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2216%22%20viewBox%3D%220%200%2012%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Erain%3C%2Ftitle%3E%3Cpath%20d%3D%22M4%20.99C4%20.445%204.444%200%205%200c.552%200%201%20.451%201%20.99v4.02C6%205.555%205.556%206%205%206c-.552%200-1-.451-1-.99V.99zm6%208c0-.546.444-.99%201-.99.552%200%201%20.451%201%20.99v4.02c0%20.546-.444.99-1%20.99-.552%200-1-.451-1-.99V8.99z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/random-shapes.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const randomShapes = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2280%22%20width%3D%2280%22%20viewBox%3D%220%200%2080%2080%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20d%3D%22M11%200l5%2020H6l5-20zm42%2031a3%203%200%201%200%200-6%203%203%200%200%200%200%206zM0%2072h40v4H0v-4zm0-8h31v4H0v-4zm20-16h20v4H20v-4zM0%2056h40v4H0v-4zm63-25a3%203%200%201%200%200-6%203%203%200%200%200%200%206zm10%200a3%203%200%201%200%200-6%203%203%200%200%200%200%206zM53%2041a3%203%200%201%200%200-6%203%203%200%200%200%200%206zm10%200a3%203%200%201%200%200-6%203%203%200%200%200%200%206zm10%200a3%203%200%201%200%200-6%203%203%200%200%200%200%206zm-30%200a3%203%200%201%200%200-6%203%203%200%200%200%200%206zm-28-8a5%205%200%200%200-10%200h10zm10%200a5%205%200%200%201-10%200h10zM56%205a5%205%200%200%200-10%200h10zm10%200a5%205%200%200%201-10%200h10zm-3%2046a3%203%200%201%200%200-6%203%203%200%200%200%200%206zm10%200a3%203%200%201%200%200-6%203%203%200%200%200%200%206zM21%200l5%2020H16l5-20zm43%2064v-4h-4v4h-4v4h4v4h4v-4h4v-4h-4zM36%2013h4v4h-4v-4zm4%204h4v4h-4v-4zm-4%204h4v4h-4v-4zm8-8h4v4h-4v-4z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/rounded-plus-connected.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const roundedPlusConnected = (
5 | fill = defaultFill,
6 | opacity = defaultOpacity
7 | ) =>
8 | `url('data:image/svg+xml,%3Csvg%20width%3D%2284%22%20height%3D%2284%22%20viewBox%3D%220%200%2084%2084%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M84%2023c-4.417%200-8-3.584-8-7.998V8h-7.002C64.58%208%2061%204.42%2061%200H23c0%204.417-3.584%208-7.998%208H8v7.002C8%2019.42%204.42%2023%200%2023v38c4.417%200%208%203.584%208%207.998V76h7.002C19.42%2076%2023%2079.58%2023%2084h38c0-4.417%203.584-8%207.998-8H76v-7.002C76%2064.58%2079.58%2061%2084%2061V23zM59.05%2083H43V66.95c5.054-.5%209-4.764%209-9.948V52h5.002c5.18%200%209.446-3.947%209.95-9H83v16.05c-5.054.5-9%204.764-9%209.948V74h-5.002c-5.18%200-9.446%203.947-9.95%209zm-34.1%200H41V66.95c-5.053-.502-9-4.768-9-9.948V52h-5.002c-5.184%200-9.447-3.946-9.95-9H1v16.05c5.053.502%209%204.768%209%209.948V74h5.002c5.184%200%209.447%203.946%209.95%209zm0-82H41v16.05c-5.054.5-9%204.764-9%209.948V32h-5.002c-5.18%200-9.446%203.947-9.95%209H1V24.95c5.054-.5%209-4.764%209-9.948V10h5.002c5.18%200%209.446-3.947%209.95-9zm34.1%200H43v16.05c5.053.502%209%204.768%209%209.948V32h5.002c5.184%200%209.447%203.946%209.95%209H83V24.95c-5.053-.502-9-4.768-9-9.948V10h-5.002c-5.184%200-9.447-3.946-9.95-9zM50%2050v7.002C50%2061.42%2046.42%2065%2042%2065c-4.417%200-8-3.584-8-7.998V50h-7.002C22.58%2050%2019%2046.42%2019%2042c0-4.417%203.584-8%207.998-8H34v-7.002C34%2022.58%2037.58%2019%2042%2019c4.417%200%208%203.584%208%207.998V34h7.002C61.42%2034%2065%2037.58%2065%2042c0%204.417-3.584%208-7.998%208H50z%22%20fill%3D%22%23${unhex(
9 | fill
10 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
11 |
--------------------------------------------------------------------------------
/patterns/signal.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const signal = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2284%22%20height%3D%2248%22%20viewBox%3D%220%200%2084%2048%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Esignal%3C%2Ftitle%3E%3Cpath%20d%3D%22M0%200h12v6H0V0zm28%208h12v6H28V8zm14-8h12v6H42V0zm14%200h12v6H56V0zm0%208h12v6H56V8zM42%208h12v6H42V8zm0%2016h12v6H42v-6zm14-8h12v6H56v-6zm14%200h12v6H70v-6zm0-16h12v6H70V0zM28%2032h12v6H28v-6zM14%2016h12v6H14v-6zM0%2024h12v6H0v-6zm0%208h12v6H0v-6zm14%200h12v6H14v-6zm14%208h12v6H28v-6zm-14%200h12v6H14v-6zm28%200h12v6H42v-6zm14-8h12v6H56v-6zm0-8h12v6H56v-6zm14%208h12v6H70v-6zm0%208h12v6H70v-6zM14%2024h12v6H14v-6zm14-8h12v6H28v-6zM14%208h12v6H14V8zM0%208h12v6H0V8z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/skulls.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const skulls = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%22180%22%20height%3D%22180%22%20viewBox%3D%220%200%20180%20180%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eskulls%3C%2Ftitle%3E%3Cpath%20d%3D%22M82.42%20180h-1.415L0%2098.995v-2.828L6.167%2090%200%2083.833v-2.828L81.005%200h2.828L90%206.167%2096.167%200h2.828L180%2081.005v2.828L173.833%2090%20180%2096.167v2.828L98.995%20180h-2.828L90%20173.833%2083.833%20180H82.42zm0-1.414L1.413%2097.58%208.994%2090l-7.58-7.58L82.42%201.413%2090%208.995l7.58-7.58%2081.006%2081.004-7.58%207.581%207.58%207.58-81.005%2081.006-7.581-7.58-7.58%207.58zM175.196%200h-25.832c1.033%202.924%202.616%205.589%204.625%207.868C152.145%209.682%20151%2012.208%20151%2015c0%205.523%204.477%2010%2010%2010%201.657%200%203%201.343%203%203v4h16V0h-4.803c.51.883.803%201.907.803%203%200%203.314-2.686%206-6%206s-6-2.686-6-6c0-1.093.292-2.117.803-3h10.394-13.685C161.18.938%20161%201.948%20161%203v4c-4.418%200-8%203.582-8%208s3.582%208%208%208c2.761%200%205%202.239%205%205v2h4v-4h2v4h4v-4h2v4h2V0h-4.803zm-15.783%200c-.27.954-.414%201.96-.414%203v2.2c-1.25.254-2.414.74-3.447%201.412-1.716-1.93-3.098-4.164-4.054-6.612h7.915zM180%2017h-3l2.143-10H180v10zm-30.635%20163c-.884-2.502-1.365-5.195-1.365-8%200-13.255%2010.748-24%2023.99-24H180v32h-30.635zm12.147%200c.5-1.416%201.345-2.67%202.434-3.66l-1.345-1.48c-1.5%201.364-2.62%203.136-3.187%205.14H151.5c-.968-2.48-1.499-5.177-1.499-8%200-12.15%209.84-22%2022.001-22H180v30h-18.488zm13.685%200c-1.037-1.793-2.976-3-5.197-3-2.22%200-4.16%201.207-5.197%203h10.394zM0%20148h8.01C21.26%20148%2032%20158.742%2032%20172c0%202.805-.481%205.498-1.366%208H0v-32zm0%202h7.999C20.149%20150%2030%20159.847%2030%20172c0%202.822-.531%205.52-1.499%208h-7.915c-.567-2.004-1.688-3.776-3.187-5.14l-1.345%201.48c1.089.99%201.933%202.244%202.434%203.66H0v-30zm15.197%2030c-1.037-1.793-2.976-3-5.197-3-2.22%200-4.16%201.207-5.197%203h10.394zM0%2032h16v-4c0-1.657%201.343-3%203-3%205.523%200%2010-4.477%2010-10%200-2.794-1.145-5.32-2.992-7.134C28.017%205.587%2029.6%202.924%2030.634%200H0v32zm0-2h2v-4h2v4h4v-4h2v4h4v-2c0-2.761%202.239-5%205-5%204.418%200%208-3.582%208-8s-3.582-8-8-8V3c0-1.052-.18-2.062-.512-3H0v30zM28.501%200c-.955%202.448-2.336%204.683-4.052%206.613C23.415%205.941%2022.25%205.453%2021%205.2V3c0-1.04-.144-2.046-.414-3H28.5zM0%2017h3L.857%207H0v10zM15.197%200c.51.883.803%201.907.803%203%200%203.314-2.686%206-6%206S4%206.314%204%203c0-1.093.292-2.117.803-3h10.394zM109%20115c-1.657%200-3%201.343-3%203v4H74v-4c0-1.657-1.343-3-3-3-5.523%200-10-4.477-10-10%200-2.793%201.145-5.318%202.99-7.132C60.262%2093.638%2058%2088.084%2058%2082c0-13.255%2010.748-24%2023.99-24h16.02C111.26%2058%20122%2068.742%20122%2082c0%206.082-2.263%2011.636-5.992%2015.866C117.855%2099.68%20119%20102.206%20119%20105c0%205.523-4.477%2010-10%2010zm0-2c-2.761%200-5%202.239-5%205v2h-4v-4h-2v4h-4v-4h-2v4h-4v-4h-2v4h-4v-4h-2v4h-4v-2c0-2.761-2.239-5-5-5-4.418%200-8-3.582-8-8s3.582-8%208-8v-4c0-2.64%201.136-5.013%202.946-6.66L72.6%2084.86C70.389%2086.874%2069%2089.775%2069%2093v2.2c-1.25.254-2.414.74-3.447%201.412C62.098%2092.727%2060%2087.61%2060%2082c0-12.15%209.84-22%2022.001-22H98C110.149%2060%20120%2069.847%20120%2082c0%205.609-2.097%2010.728-5.551%2014.613-1.034-.672-2.199-1.16-3.449-1.413V93c0-3.226-1.389-6.127-3.6-8.14l-1.346%201.48C107.864%2087.987%20109%2090.36%20109%2093v4c4.418%200%208%203.582%208%208s-3.582%208-8%208zM90.857%2097L93%20107h-6l2.143-10h1.714zM80%2099c3.314%200%206-2.686%206-6s-2.686-6-6-6-6%202.686-6%206%202.686%206%206%206zm20%200c3.314%200%206-2.686%206-6s-2.686-6-6-6-6%202.686-6%206%202.686%206%206%206z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/slanted-stars.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const slantedStars = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Etriangles%3C%2Ftitle%3E%3Cpath%20d%3D%22M0%2015l15%2015H0V15zM15%200l15%2015V0H15z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/squares-in-squares.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const squaresInSquares = (
5 | fill = defaultFill,
6 | opacity = defaultOpacity
7 | ) =>
8 | `url('data:image/svg+xml,%3Csvg%20width%3D%2270%22%20height%3D%2270%22%20viewBox%3D%220%200%2070%2070%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Esquares-in-squares%3C%2Ftitle%3E%3Cg%20fill%3D%22%23${unhex(
9 | fill
10 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M0%200h35v35H0V0zm5%205h25v25H5V5zm5%205h15v15H10V10zm5%205h5v5h-5v-5zM40%205h25v25H40V5zm5%205h15v15H45V10zm5%205h5v5h-5v-5zM70%2035H35v35h35V35zm-5%205H40v25h25V40zm-5%205H45v15h15V45zm-5%205h-5v5h5v-5zM30%2040H5v25h25V40zm-5%205H10v15h15V45zm-5%205h-5v5h5v-5z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E')`;
11 |
--------------------------------------------------------------------------------
/patterns/squares.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const squares = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M6%2018h12V6H6v12zM4%204h16v16H4V4z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/stamp-collection.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const stampCollection = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2277%22%20height%3D%22107%22%20viewBox%3D%220%200%2077%20107%22%3E%3Cpath%20d%3D%22M46%20101a5%205%200%200%201%205%205h5a5%205%200%200%201%2010%200h5a5%205%200%200%201%205-5v-5a5%205%200%200%201%200-10v-5a5%205%200%200%201%200-10v-5a5%205%200%200%201%200-10v-5a5%205%200%200%201%200-10v-5a5%205%200%200%201%200-10v-5a5%205%200%200%201%200-10V6a5%205%200%200%201-5-5h-5a5%205%200%200%201-10%200h-5a5%205%200%200%201-10%200h-5a5%205%200%200%201-10%200h-5a5%205%200%200%201-10%200H6a5%205%200%200%201-5%205v5a5%205%200%200%201%200%2010v5a5%205%200%200%201%200%2010v5a5%205%200%200%201%200%2010v5a5%205%200%200%201%200%2010v5a5%205%200%200%201%200%2010v5a5%205%200%200%201%200%2010v5a5%205%200%200%201%205%205h5a5%205%200%200%201%2010%200h5a5%205%200%200%201%2010%200h5a5%205%200%200%201%205-5zm15-2a7%207%200%200%200-6.71%205h-1.58a7%207%200%200%200-13.42%200h-1.58a7%207%200%200%200-13.42%200h-1.58a7%207%200%200%200-13.42%200H7.71A7.01%207.01%200%200%200%203%2099.29v-1.58a7%207%200%200%200%200-13.42v-1.58a7%207%200%200%200%200-13.42v-1.58a7%207%200%200%200%200-13.42v-1.58a7%207%200%200%200%200-13.42v-1.58a7%207%200%200%200%200-13.42v-1.58A7%207%200%200%200%203%209.29V7.71A7.02%207.02%200%200%200%207.71%203h1.58a7%207%200%200%200%2013.42%200h1.58a7%207%200%200%200%2013.42%200h1.58a7%207%200%200%200%2013.42%200h1.58a7%207%200%200%200%2013.42%200h1.58A7.02%207.02%200%200%200%2074%207.71v1.58a7%207%200%200%200%200%2013.42v1.58a7%207%200%200%200%200%2013.42v1.58a7%207%200%200%200%200%2013.42v1.58a7%207%200%200%200%200%2013.42v1.58a7%207%200%200%200%200%2013.42v1.58a7%207%200%200%200%200%2013.42v1.58a7.01%207.01%200%200%200-4.71%204.71h-1.58A7%207%200%200%200%2061%2099zM12%2012h53v83H12V12zm51%2081H14V14h49v79z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/steel-beams.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const steelBeams = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2258%22%20width%3D%2242%22%20viewBox%3D%220%200%2042%2058%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20d%3D%22M12%2018h12v18h6v4H18V22h-6v-4zm-6-2v-4H0V0h36v6h6v36h-6v4h6v12H6v-6H0V16h6zM34%202H2v8h24v24h8V2zM6%208a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm8%200a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm8%200a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm8%200a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm0%208a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm0%208a2%202%200%201%200%200-4%202%202%200%200%200%200%204zm0%208a2%202%200%201%200%200-4%202%202%200%200%200%200%204zM2%2050h32v-8H10V18H2v32zm28-6a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm-8%200a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm-8%200a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm-8%200a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm0-8a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm0-8a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm0-8a2%202%200%201%200%200%204%202%202%200%200%200%200-4z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/stripes.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const stripes = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2240%22%20height%3D%221%22%20viewBox%3D%220%200%2040%201%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Estripes%3C%2Ftitle%3E%3Cpath%20d%3D%22M0%200h20v1H0z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/temple.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const temple = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22152%22%20height%3D%22152%22%20viewBox%3D%220%200%20152%20152%22%3E%3Cpath%20d%3D%22M152%20150v2H0v-2h28v-8H8v-20H0v-2h8V80h42v20h20v42H30v8h90v-8H80v-42h20V80h42v40h8V30h-8v40h-42V50H80V8h40V0h2v8h20v20h8V0h2v150zm-2%200v-28h-8v20h-20v8h28zM82%2030v18h18V30H82zm20%2018h20v20h18V30h-20V10H82v18h20v20zm0%202v18h18V50h-18zm20-22h18V10h-18v18zm-54%2092v-18H50v18h18zm-20-18H28V82H10v38h20v20h38v-18H48v-20zm0-2V82H30v18h18zm-20%2022H10v18h18v-18zm54%200v18h38v-20h20V82h-18v20h-20v20H82zm18-20H82v18h18v-18zm2-2h18V82h-18v18zm20%2040v-18h18v18h-18zM30%200h-2v8H8v20H0v2h8v40h42V50h20V8H30V0zm20%2048h18V30H50v18zm18-20H48v20H28v20H10V30h20V10h38v18zM30%2050h18v18H30V50zm-2-40H10v18h18V10z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/texture.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const texture = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20width%3D%224%22%20height%3D%224%22%20viewBox%3D%220%200%204%204%22%3E%3Cpath%20d%3D%22M1%203h1v1H1V3zm2-2h1v1H3V1z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/tic-tac-toe.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const ticTacToe = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2264%22%20height%3D%2264%22%20viewBox%3D%220%200%2064%2064%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Etic-tac-toe%3C%2Ftitle%3E%3Cpath%20d%3D%22M8%2016c4.418%200%208-3.582%208-8s-3.582-8-8-8-8%203.582-8%208%203.582%208%208%208zm0-2c3.314%200%206-2.686%206-6s-2.686-6-6-6-6%202.686-6%206%202.686%206%206%206zm33.414-6l5.95-5.95L45.95.636%2040%206.586%2034.05.636%2032.636%202.05%2038.586%208l-5.95%205.95%201.414%201.414L40%209.414l5.95%205.95%201.414-1.414L41.414%208zM40%2048c4.418%200%208-3.582%208-8s-3.582-8-8-8-8%203.582-8%208%203.582%208%208%208zm0-2c3.314%200%206-2.686%206-6s-2.686-6-6-6-6%202.686-6%206%202.686%206%206%206zM9.414%2040l5.95-5.95-1.414-1.414L8%2038.586l-5.95-5.95L.636%2034.05%206.586%2040l-5.95%205.95%201.414%201.414L8%2041.414l5.95%205.95%201.414-1.414L9.414%2040z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/tiny-checkers.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const tinyCheckers = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%228%22%20width%3D%228%22%20viewBox%3D%220%200%208%208%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20d%3D%22M0%200h4v4H0V0zm4%204h4v4H4V4z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/volcano-lamp.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const volcanoLamp = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2248%22%20height%3D%2232%22%20viewBox%3D%220%200%2048%2032%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M27%2032c0-3.314%202.686-6%206-6%205.523%200%2010-4.477%2010-10S38.523%206%2033%206c-3.314%200-6-2.686-6-6h2c0%202.21%201.79%204%204%204%206.627%200%2012%205.373%2012%2012s-5.373%2012-12%2012c-2.21%200-4%201.79-4%204h-2zm-6%200c0-3.314-2.686-6-6-6-5.523%200-10-4.477-10-10S9.477%206%2015%206c3.314%200%206-2.686%206-6h-2c0%202.21-1.79%204-4%204C8.373%204%203%209.373%203%2016s5.373%2012%2012%2012c2.21%200%204%201.79%204%204h2z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/wallpaper.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const wallpaper = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2284%22%20height%3D%2216%22%20viewBox%3D%220%200%2084%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eplus-lines%3C%2Ftitle%3E%3Cpath%20d%3D%22M78%207V4h-2v3h-3v2h3v3h2V9h3V7h-3zM30%207V4h-2v3h-3v2h3v3h2V9h3V7h-3zM10%200h2v16h-2V0zm6%200h4v16h-4V0zM2%200h4v16H2V0zm50%200h2v16h-2V0zM38%200h2v16h-2V0zm28%200h2v16h-2V0zm-8%200h6v16h-6V0zM42%200h6v16h-6V0z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/wiggle.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const wiggle = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2252%22%20height%3D%2226%22%20viewBox%3D%220%200%2052%2026%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%2010c0-2.21-1.79-4-4-4-3.314%200-6-2.686-6-6h2c0%202.21%201.79%204%204%204%203.314%200%206%202.686%206%206%200%202.21%201.79%204%204%204%203.314%200%206%202.686%206%206%200%202.21%201.79%204%204%204v2c-3.314%200-6-2.686-6-6%200-2.21-1.79-4-4-4-3.314%200-6-2.686-6-6zm25.464-1.95l8.486%208.486-1.414%201.414-8.486-8.486%201.414-1.414z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/x-equals.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const xEquals = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2248%22%20width%3D%2248%22%20viewBox%3D%220%200%2048%2048%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20d%3D%22M5%203.59L1.46.05.05%201.46%203.59%205%20.05%208.54l1.41%201.41L5%206.41l3.54%203.54%201.41-1.41L6.41%205l3.54-3.54L8.54.05%205%203.59zM17%202h24v2H17V2zm0%204h24v2H17V6zM2%2017h2v24H2V17zm4%200h2v24H6V17z%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/yyy.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const yyy = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2260%22%20height%3D%2296%22%20viewBox%3D%220%200%2060%2096%22%3E%3Cpath%20d%3D%22M36%2010a6%206%200%200%201%2012%200v12a6%206%200%200%201-6%206%206%206%200%200%200-6%206%206%206%200%200%201-12%200%206%206%200%200%200-6-6%206%206%200%200%201-6-6V10a6%206%200%201%201%2012%200%206%206%200%200%200%2012%200zm24%2078a6%206%200%200%201-6-6%206%206%200%200%200-6-6%206%206%200%200%201-6-6V58a6%206%200%201%201%2012%200%206%206%200%200%200%206%206v24zM0%2088V64a6%206%200%200%200%206-6%206%206%200%200%201%2012%200v12a6%206%200%200%201-6%206%206%206%200%200%200-6%206%206%206%200%200%201-6%206z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/patterns/zig-zag.js:
--------------------------------------------------------------------------------
1 | import { defaultFill, defaultOpacity } from './_defaults';
2 | import { unhex } from './_utils';
3 |
4 | export const zigZag = (fill = defaultFill, opacity = defaultOpacity) =>
5 | `url('data:image/svg+xml,%3Csvg%20width%3D%2240%22%20height%3D%2212%22%20viewBox%3D%220%200%2040%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Ezig-zag%3C%2Ftitle%3E%3Cpath%20d%3D%22M0%206.172L6.172%200h5.656L0%2011.828V6.172zm40%205.656L28.172%200h5.656L40%206.172v5.656zM6.172%2012l12-12h3.656l12%2012h-5.656L20%203.828%2011.828%2012H6.172zm12%200L20%2010.172%2021.828%2012h-3.656z%22%20fill%3D%22%23${unhex(
6 | fill
7 | )}%22%20fill-opacity%3D%22${opacity}%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')`;
8 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/public/android-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/android-icon-144x144.png
--------------------------------------------------------------------------------
/public/android-icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/android-icon-192x192.png
--------------------------------------------------------------------------------
/public/android-icon-36x36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/android-icon-36x36.png
--------------------------------------------------------------------------------
/public/android-icon-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/android-icon-48x48.png
--------------------------------------------------------------------------------
/public/android-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/android-icon-72x72.png
--------------------------------------------------------------------------------
/public/android-icon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/android-icon-96x96.png
--------------------------------------------------------------------------------
/public/apple-icon-114x114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/apple-icon-114x114.png
--------------------------------------------------------------------------------
/public/apple-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/apple-icon-120x120.png
--------------------------------------------------------------------------------
/public/apple-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/apple-icon-144x144.png
--------------------------------------------------------------------------------
/public/apple-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/apple-icon-152x152.png
--------------------------------------------------------------------------------
/public/apple-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/apple-icon-180x180.png
--------------------------------------------------------------------------------
/public/apple-icon-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/apple-icon-57x57.png
--------------------------------------------------------------------------------
/public/apple-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/apple-icon-60x60.png
--------------------------------------------------------------------------------
/public/apple-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/apple-icon-72x72.png
--------------------------------------------------------------------------------
/public/apple-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/apple-icon-76x76.png
--------------------------------------------------------------------------------
/public/apple-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/apple-icon-precomposed.png
--------------------------------------------------------------------------------
/public/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/apple-icon.png
--------------------------------------------------------------------------------
/public/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 | #ffffff
--------------------------------------------------------------------------------
/public/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/favicon-16x16.png
--------------------------------------------------------------------------------
/public/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/favicon-32x32.png
--------------------------------------------------------------------------------
/public/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/favicon-96x96.png
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/favicon.ico
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "App",
3 | "icons": [
4 | {
5 | "src": "/android-icon-36x36.png",
6 | "sizes": "36x36",
7 | "type": "image/png",
8 | "density": "0.75"
9 | },
10 | {
11 | "src": "/android-icon-48x48.png",
12 | "sizes": "48x48",
13 | "type": "image/png",
14 | "density": "1.0"
15 | },
16 | {
17 | "src": "/android-icon-72x72.png",
18 | "sizes": "72x72",
19 | "type": "image/png",
20 | "density": "1.5"
21 | },
22 | {
23 | "src": "/android-icon-96x96.png",
24 | "sizes": "96x96",
25 | "type": "image/png",
26 | "density": "2.0"
27 | },
28 | {
29 | "src": "/android-icon-144x144.png",
30 | "sizes": "144x144",
31 | "type": "image/png",
32 | "density": "3.0"
33 | },
34 | {
35 | "src": "/android-icon-192x192.png",
36 | "sizes": "192x192",
37 | "type": "image/png",
38 | "density": "4.0"
39 | }
40 | ]
41 | }
42 |
--------------------------------------------------------------------------------
/public/ms-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/ms-icon-144x144.png
--------------------------------------------------------------------------------
/public/ms-icon-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/ms-icon-150x150.png
--------------------------------------------------------------------------------
/public/ms-icon-310x310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/ms-icon-310x310.png
--------------------------------------------------------------------------------
/public/ms-icon-70x70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grassper/OpenGrph/7347c0086ff6c911a18a1c7a63aae7ff9b44f045/public/ms-icon-70x70.png
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # *
2 | User-agent: *
3 | Allow: /
4 |
5 | # Host
6 | Host: https://www.opengrph.blockscribers.com
7 |
8 | # Sitemaps
9 | Sitemap: https://www.opengrph.blockscribers.com/sitemap.xml
10 |
--------------------------------------------------------------------------------
/public/sitemap-0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | https://www.opengrph.blockscribers.comdaily0.72022-04-30T12:55:58.772Z
4 |
--------------------------------------------------------------------------------
/public/sitemap.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | https://www.opengrph.blockscribers.com/sitemap-0.xml
4 |
--------------------------------------------------------------------------------
/styles/globals.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --color-primary: #1c5d50;
3 | --color-lightBackground: #f3f3f3;
4 | --color-darkBackground: #1e293b;
5 | }
6 |
7 | body {
8 | background: var(--color-lightBackground);
9 | }
10 |
11 | .dark body {
12 | background: var(--color-darkBackground);
13 | }
14 |
15 | @tailwind base;
16 | @tailwind components;
17 | @tailwind utilities;
18 |
19 | input[type='color'] {
20 | -webkit-appearance: none;
21 | border: none;
22 | width: 100%;
23 | }
24 |
25 | input[type='color']::-webkit-color-swatch-wrapper {
26 | padding: 0;
27 | }
28 |
29 | input[type='color']::-webkit-color-swatch {
30 | border: none;
31 | }
32 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | const settingsScreens = require('./tailwind/tailwind.settings.screens');
2 | const settingsFontSizes = require('./tailwind/tailwind.settings.fontSizes');
3 |
4 | module.exports = {
5 | content: [
6 | './pages/**/*.{js,ts,jsx,tsx}',
7 | './components/**/*.{js,ts,jsx,tsx}',
8 | ],
9 | darkMode: 'class',
10 | theme: {
11 | extend: {
12 | screens: settingsScreens,
13 | fontSize: settingsFontSizes,
14 | fontFamily: {
15 | primary: ['Montserrat Alternates', 'sans-serif'],
16 | secondary: ['Montserrat Alternates', 'sans-serif'],
17 | },
18 | colors: {
19 | lightBackground: 'var(--color-lightBackground)',
20 | darkBackground: 'var(--color-darkBackground)',
21 | primary: 'var(--color-primary)',
22 | },
23 | },
24 | },
25 | plugins: [],
26 | };
27 |
--------------------------------------------------------------------------------
/tailwind/tailwind.settings.fontSizes.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Tailwind Font Size Settings
3 | */
4 |
5 | const settings = require('./tailwind.settings');
6 |
7 | const fsMin = settings.typography.fontSizeMin;
8 | const fsMax = settings.typography.fontSizeMax;
9 | const msFactorMin = settings.typography.msFactorMin;
10 | const msFactorMax = settings.typography.msFactorMax;
11 | const screenMin = settings.screensRem.min;
12 | const screenMax = settings.screensRem['2xl'];
13 |
14 | // Calc Min and Max Fontsize
15 | const calcMulti = (multiMin = 0, multiMax = null) => {
16 | return {
17 | fsMin: fsMin * Math.pow(msFactorMin, multiMin),
18 | fsMax: fsMax * Math.pow(msFactorMax, multiMax || multiMin),
19 | };
20 | };
21 |
22 | // build the clamp property
23 | const clamp = (multiMin = 0, multiMax = null) => {
24 | const _calcMulti = calcMulti(multiMin, multiMax || multiMin);
25 | const _fsMin = _calcMulti.fsMin;
26 | const _fsMax = _calcMulti.fsMax;
27 | return `clamp(${_fsMin}rem, calc(${_fsMin}rem + (${_fsMax} - ${_fsMin}) * ((100vw - ${screenMin}rem) / (${screenMax} - ${screenMin}))), ${_fsMax}rem)`;
28 | };
29 |
30 | module.exports = {
31 | xxs: clamp(-6),
32 | xs: clamp(-2),
33 | sm: clamp(-1),
34 | base: clamp(0),
35 | lg: clamp(1),
36 | xl: clamp(2),
37 | '2xl': clamp(3),
38 | '3xl': clamp(4),
39 | '4xl': clamp(5),
40 | '5xl': clamp(6),
41 | '6xl': clamp(7),
42 | '7xl': clamp(8),
43 | '8xl': clamp(9),
44 | '9xl': clamp(10),
45 | };
46 |
--------------------------------------------------------------------------------
/tailwind/tailwind.settings.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Tailwind Settings
3 | */
4 |
5 | module.exports = {
6 | typography: {
7 | fontSizeMin: 1.125,
8 | fontSizeMax: 1.25,
9 | msFactorMin: 1.125,
10 | msFactorMax: 1.2,
11 | lineHeight: 1.6,
12 | },
13 | screensRem: {
14 | min: 20,
15 | sm: 40,
16 | md: 48,
17 | lg: 64,
18 | xl: 80,
19 | '2xl': 96,
20 | },
21 | grid: {
22 | cols: 24,
23 | },
24 | };
25 |
--------------------------------------------------------------------------------
/tailwind/tailwind.settings.screens.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Tailwind Screens Settings
3 | */
4 |
5 | const settings = require('./tailwind.settings');
6 |
7 | const remToPx = (rem) => {
8 | return `${rem * 16}px`;
9 | };
10 |
11 | module.exports = {
12 | sm: remToPx(settings.screensRem.sm),
13 | md: remToPx(settings.screensRem.md),
14 | lg: remToPx(settings.screensRem.lg),
15 | xl: remToPx(settings.screensRem.xl),
16 | '2xl': remToPx(settings.screensRem['2xl']),
17 | };
18 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "strict": true,
8 | "forceConsistentCasingInFileNames": true,
9 | "noEmit": true,
10 | "esModuleInterop": true,
11 | "module": "esnext",
12 | "moduleResolution": "node",
13 | "resolveJsonModule": true,
14 | "isolatedModules": true,
15 | "jsx": "preserve",
16 | "baseUrl": ".",
17 | "paths": {
18 | "@/root/*": ["./*"]
19 | },
20 | "incremental": true
21 | },
22 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
23 | "exclude": ["node_modules"]
24 | }
25 |
--------------------------------------------------------------------------------
/types/place.txt:
--------------------------------------------------------------------------------
1 | just a place holder
--------------------------------------------------------------------------------
/utils/helpers/place.txt:
--------------------------------------------------------------------------------
1 | just a place holder
--------------------------------------------------------------------------------
/utils/scripts/place.txt:
--------------------------------------------------------------------------------
1 | just a place holder
--------------------------------------------------------------------------------