_______ _
|__ __| |
| | | |__ ___
| | | '_ \ / _ \
| | | | | | __/
|_| |_| |_|\___|
_____ __
/ ____| / _|
| | __ _ __ __ _ _ __ ___ _ __ ___ __ _ _ __ ___ __| |
| | |_ | '__/ _` | '_ ` _ \| '_ ` _ \ / _` | '__| / _ \/ _` |
| |__| | | | (_| | | | | | | | | | | | (_| | | | __/ (_| |
\_____|_| \__,_|_| |_| |_|_| |_| |_|\__,_|_| \___|\__,_|
/\ | |
/ \ _ _| |_
/ /\ \ | '__| __|
/ ____ \| | | |_
/_/ \_\_| \__|
A comprehensive, interactive web application exploring the fundamental vocabulary of visual art. This project is a philosophical exhibition, a technical demonstration of Generative CSS, and a "Curator's Cut" of interactive phenomenology.
Built with Clojure, it features a "Modern Gallery" aesthetic designed for an immersive, non-scrolling desktop experience.
Visit the interactive gallery here: https://mugglebornpadawan.github.io/the-grammar-of-art/
The application covers 24 distinct concepts across six core categories, narrated through a refined, curatorial perspective:
- The Elements: The primal forces of vision (Line, Shape, Form, Color, Texture, Space, Value).
- The Principles: The grammar of relationships (Balance, Contrast, Rhythm, Unity, etc.).
- Perception (Gestalt): The active construction of reality (Closure, Figure-Ground, Proximity).
- Structure: The hidden geometry of composition (Golden Ratio, Rule of Thirds, Hierarchy).
- Spatial Depth: The conquest of the 2D plane (Perspective, Atmospheric Depth, Foreshortening).
- Color Dynamics: The alchemy of feeling (Temperature, Saturation, Simultaneous Contrast).
- Conceptually-Driven Interactions: This is not a simple "Workshop." User input acts as a force (gravity, pressure, order) that influences each artwork, revealing its core principles through emergent behavior rather than direct control.
- e.g., Bend the "Line" like a bowstring, squeeze "Space" like a vise, or align chaotic "Unity" with a wave of order.
- The Synthesis Engine: A multi-layered finale that replaces traditional animation loops with a tunable system. The user must find the "Golden Mean" between Order and Entropy to resolve the composition.
- Refined Curatorial Voice: Content written with the depth and poetic analysis of a veteran art curator, moving beyond simple definitions into visual theory.
- Behavioral CSS Art: Sophisticated, code-driven visualizations that prioritize meaningful, conceptually-relevant responses over simple, looping animations.
- Dual-Mode Architecture: A dynamic Clojure/Ring development server and a high-performance Static Site Generator for GitHub Pages.
Why Code? This project posits that the laws of art are algorithmic. A line is a vector; balance is an equation. By encoding these principles into a rigid syntax (CSS and Clojure), we strip away the romance of the hand to reveal the raw mechanics of the eye.
The code does not merely simulate art; it simulates the conditions under which art becomes inevitable. CSS Custom Properties act as physical constants (Tension, Gravity, Light), while Clojure provides the immutable structure of the curriculum itself. The medium is chosen to prove that even within the deterministic logic of a computer, the human "Sweet Spot" of composition remains a discovery, not a calculation.
- Logic: Clojure — Functional composition of visual concepts.
- Interactivity: Vanilla JavaScript — Bridging input vectors to CSS Physics.
- Visuals: Pure CSS — Behavioral, generative, and responsive.
- Web Server: Ring / Jetty — For dynamic development.
- Templating: Hiccup — Declarative HTML generation.
- Hosting: GitHub Pages — Optimized static delivery.
- Leiningen installed.
- Navigate to the app directory:
cd art-web - Start the server:
lein ring serverThe site will be available athttp://localhost:3000.
To update the docs/ folder for GitHub Pages:
cd art-web
lein run -m art-web.staticThis project is open source and available under the GNU General Public License v3.0.