From 684f4ccc4cf59eb0d0de6d0656b4aae826abe75c Mon Sep 17 00:00:00 2001
From: Viet281101
Date: Tue, 4 Feb 2025 21:35:55 +0700
Subject: [PATCH] update
---
.editorconfig | 12 +
.eslintrc.js | 16 +
.gitignore | 25 +
.prettierrc | 13 +
CHANGELOG.md | 6 +
LICENSE | 29 +
README.md | 30 +
docs-assets/screenshot.jpg | Bin 0 -> 123762 bytes
docs-assets/thumbnail.jpg | Bin 0 -> 23431 bytes
package-lock.json | 16452 +++++++++++++++++++++++++++++++++++
package.json | 53 +
public/img2css.jpg | Bin 0 -> 189456 bytes
public/index.html | 60 +
src/app.jsx | 290 +
src/index.js | 11 +
src/types/module.d.js | 1 +
16 files changed, 16998 insertions(+)
create mode 100644 .editorconfig
create mode 100644 .eslintrc.js
create mode 100644 .gitignore
create mode 100644 .prettierrc
create mode 100644 CHANGELOG.md
create mode 100644 LICENSE
create mode 100755 README.md
create mode 100644 docs-assets/screenshot.jpg
create mode 100644 docs-assets/thumbnail.jpg
create mode 100644 package-lock.json
create mode 100644 package.json
create mode 100644 public/img2css.jpg
create mode 100644 public/index.html
create mode 100755 src/app.jsx
create mode 100644 src/index.js
create mode 100644 src/types/module.d.js
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..8b86fba
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,12 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+max_line_length = off
+trim_trailing_whitespace = false
\ No newline at end of file
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..32c66fe
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,16 @@
+module.exports = {
+ env: {
+ browser: true,
+ es2021: true,
+ },
+ extends: ['eslint:recommended', 'plugin:react/recommended'],
+ parserOptions: {
+ ecmaFeatures: {
+ jsx: true,
+ },
+ ecmaVersion: 12,
+ sourceType: 'module',
+ },
+ plugins: ['react'],
+ rules: {},
+};
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d08db58
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,25 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/dist
+.vercel
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# production
+/build
+
+# misc
+.DS_Store
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local
+
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..d16f118
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,13 @@
+{
+ "singleQuote": true,
+ "printWidth": 80,
+ "editor.formatOnSave": true,
+ "proseWrap": "always",
+ "tabWidth": 2,
+ "requireConfig": false,
+ "useTabs": false,
+ "trailingComma": "es5",
+ "bracketSpacing": true,
+ "jsxBracketSameLine": false,
+ "semi": true
+}
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..30a6e68
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,6 @@
+# 1.1.0
+
+- Add base64 output option
+- Replace internal components for JBX
+
+# 1.0.0
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..a0e4471
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,29 @@
+BSD 3-Clause License
+
+Copyright (c) 2019, Javier Bórquez
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/README.md b/README.md
new file mode 100755
index 0000000..7dc51c0
--- /dev/null
+++ b/README.md
@@ -0,0 +1,30 @@
+# [img2css](https://javier.xyz/img2css/)
+
+Convert any image to pure CSS.
+
+[](https://javier.xyz/img2css/)
+
+- To use it go to https://javier.xyz/img2css
+- Looking for a programmatic way to do this? See https://github.com/javierbyte/canvas-image-utils
+- I also made a per-pixel animation experiment, see https://github.com/javierbyte/morphin
+
+## How does it work?
+
+It has two different outputs, pure css shadow matrix [1] and base64 embedded image [2].
+
+- **Pure CSS**: This output was created by resizing and setting each pixel as a box-shadow of a single pixel div, so no `img` tag or `background-image` is needed. This can result in huge outputs, and the use of this output is not recommended for production unless there is no other option.
+- **Base64**: The entire image file is embedded inside the `
` tag using base64, so no need external hosting is needed.
+
+### Development
+
+Run development server:
+
+```
+npm run dev
+```
+
+Build
+
+```
+npm run build
+```
diff --git a/docs-assets/screenshot.jpg b/docs-assets/screenshot.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5b2221835cd6f65ac84f80db357c3ccebff01041
GIT binary patch
literal 123762
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 ceSY`aI(Qu+kENsBwEg0sMg}+w087D
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