feat: initialize project
This commit is contained in:
+14
@@ -0,0 +1,14 @@
|
||||
## ======== VSCode ========
|
||||
.vscode/
|
||||
|
||||
## ======== Python ========
|
||||
# Python-generated files
|
||||
__pycache__/
|
||||
*.py[oc]
|
||||
build/
|
||||
dist/
|
||||
wheels/
|
||||
*.egg-info
|
||||
|
||||
# Virtual environments
|
||||
.venv
|
||||
@@ -0,0 +1 @@
|
||||
3.13
|
||||
@@ -0,0 +1,28 @@
|
||||
# Assemblicon
|
||||
|
||||
> *"Stop clicking 'Export' 50 times. Write a recipe and let Assemblicon do the assembly."*
|
||||
|
||||
**The Programmatic Icon Assembly Workflow.** Treat your icons like code. Built for designers who think like engineers.
|
||||
|
||||
## Philosophy
|
||||
|
||||
Assemblicon transforms the traditional design workflow into a **compilation-like pipeline**:
|
||||
|
||||
- **Source Code**: Binary `jpg`, `png` image assets & Inkscape `.svg` primitives & Blender `.blend` 3D assets & etc...
|
||||
- **Compiler Flags**: Interactive CLI parameters (color, style, variant)
|
||||
- **Linker**: Python + Pillow (layering & alpha composition)
|
||||
- **Binary Output**: Final `.png` / `.ico` / `.icns` icon sets
|
||||
|
||||
Instead of manually tweaking 100 artboards, you define reusable components once and **compile** them on-demand with different arguments—just like compiling a C program.
|
||||
|
||||
## Features
|
||||
|
||||
- **Reproducible Builds**: Every output is fully deterministic; store only the recipe, not the PNGs.
|
||||
- **Batch Assembly**: Define a recipe to generate entire icon families (light/dark, active/disabled, sizes) in one go.
|
||||
- **Unlimited Customization**: User defined recipe is actually a Python script utilizing Assemblicon. We can achieve any forms of composition which gives our unlimited customization ability.
|
||||
- **Selective Build**: User can only compile some specific icons of the whole defined icon set. This gives the ability of checking the built icon in resource-saving way.
|
||||
- **License Backtrace**: By defining the source and sink for icons, we can trace the license info (if user provide it) and produce the correct license info of final output.
|
||||
|
||||
## License
|
||||
|
||||
This project is under MIT license.
|
||||
@@ -0,0 +1,14 @@
|
||||
[project]
|
||||
name = "assemblicon"
|
||||
version = "0.1.0"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
authors = [
|
||||
{ name = "yyc12345", email = "yyc12321@outlook.com" }
|
||||
]
|
||||
requires-python = ">=3.13"
|
||||
dependencies = []
|
||||
|
||||
[build-system]
|
||||
requires = ["uv_build>=0.8.0,<0.9"]
|
||||
build-backend = "uv_build"
|
||||
@@ -0,0 +1,2 @@
|
||||
def hello() -> str:
|
||||
return "Hello from assemblicon!"
|
||||
Reference in New Issue
Block a user