feat: initialize project

This commit is contained in:
2026-08-18 13:01:45 +08:00
commit 9d0540ae65
6 changed files with 59 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
## ======== VSCode ========
.vscode/
## ======== Python ========
# Python-generated files
__pycache__/
*.py[oc]
build/
dist/
wheels/
*.egg-info
# Virtual environments
.venv
+1
View File
@@ -0,0 +1 @@
3.13
+28
View File
@@ -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.
+14
View File
@@ -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"
+2
View File
@@ -0,0 +1,2 @@
def hello() -> str:
return "Hello from assemblicon!"
View File