Spaces:
Runtime error
Runtime error
Merge pull request #3 from Technologic101/dev
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitignore +3 -0
- data_collection/analyze_designs.py +180 -62
- data_collection/notebook.ipynb +0 -0
- data_collection/prompts.py +106 -0
- data_collection/scraper.py +8 -10
- pyproject.toml +2 -0
- src/app.py +25 -36
- {data → src/data}/csszengardenhtml.html +0 -0
- {data → src/data}/csszengardenstyle.css +0 -0
- src/data/designs/001/metadata.json +38 -12
- src/data/designs/001/screenshot_desktop.png +0 -3
- src/data/designs/001/screenshot_mobile.png +0 -3
- src/data/designs/001/style.css +0 -207
- src/data/designs/002/metadata.json +38 -10
- src/data/designs/002/screenshot_desktop.png +0 -3
- src/data/designs/002/screenshot_mobile.png +0 -3
- src/data/designs/002/style.css +0 -225
- src/data/designs/003/metadata.json +38 -12
- src/data/designs/003/screenshot_desktop.png +0 -3
- src/data/designs/003/screenshot_mobile.png +0 -3
- src/data/designs/003/style.css +0 -228
- src/data/designs/004/metadata.json +38 -12
- src/data/designs/004/screenshot_desktop.png +0 -3
- src/data/designs/004/screenshot_mobile.png +0 -3
- src/data/designs/004/style.css +0 -192
- src/data/designs/005/metadata.json +37 -9
- src/data/designs/005/screenshot_desktop.png +0 -3
- src/data/designs/005/screenshot_mobile.png +0 -3
- src/data/designs/005/style.css +0 -220
- src/data/designs/006/metadata.json +38 -12
- src/data/designs/006/screenshot_desktop.png +0 -3
- src/data/designs/006/screenshot_mobile.png +0 -3
- src/data/designs/006/style.css +0 -198
- src/data/designs/007/metadata.json +38 -12
- src/data/designs/007/screenshot_desktop.png +0 -3
- src/data/designs/007/screenshot_mobile.png +0 -3
- src/data/designs/007/style.css +0 -276
- src/data/designs/008/metadata.json +38 -12
- src/data/designs/008/screenshot_desktop.png +0 -3
- src/data/designs/008/screenshot_mobile.png +0 -3
- src/data/designs/008/style.css +0 -113
- src/data/designs/009/metadata.json +38 -12
- src/data/designs/009/screenshot_desktop.png +0 -3
- src/data/designs/009/screenshot_mobile.png +0 -3
- src/data/designs/009/style.css +0 -318
- src/data/designs/010/metadata.json +38 -12
- src/data/designs/010/screenshot_desktop.png +0 -3
- src/data/designs/010/screenshot_mobile.png +0 -3
- src/data/designs/010/style.css +0 -235
- src/data/designs/011/metadata.json +38 -14
.gitignore
CHANGED
@@ -22,3 +22,6 @@ dist/
|
|
22 |
.ipynb_checkpoints
|
23 |
|
24 |
.chainlit/cache
|
|
|
|
|
|
|
|
22 |
.ipynb_checkpoints
|
23 |
|
24 |
.chainlit/cache
|
25 |
+
|
26 |
+
data_collection/scraped_designs
|
27 |
+
data_collection/analyses
|
data_collection/analyze_designs.py
CHANGED
@@ -5,17 +5,36 @@ import asyncio
|
|
5 |
import base64
|
6 |
from openai import AsyncOpenAI
|
7 |
from dotenv import load_dotenv
|
|
|
|
|
8 |
|
9 |
load_dotenv()
|
|
|
10 |
|
11 |
-
VISION_MODEL = "
|
12 |
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
try:
|
18 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
metadata_path = design_path / "metadata.json"
|
20 |
desktop_img = design_path / "screenshot_desktop.png"
|
21 |
mobile_img = design_path / "screenshot_mobile.png"
|
@@ -40,82 +59,79 @@ async def analyze_screenshot(design_id: str, design_path: Path):
|
|
40 |
|
41 |
print(f"Analyzing design {design_id}...")
|
42 |
|
43 |
-
# Get response
|
44 |
-
response = await client.
|
45 |
model=VISION_MODEL,
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
The design should be considered from a visual standpoint. Use chain of thought to consider color palette, visual layout, typography, artistic style, mood, and potential applications.
|
52 |
-
Consider gradients, texture, background effects, and the use of images.
|
53 |
-
|
54 |
-
Treat all text content as placeholder Lorem Ipsum.
|
55 |
-
|
56 |
-
Provide analysis in clean JSON format with these exact keys:
|
57 |
{
|
58 |
-
"
|
59 |
-
"
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
"
|
74 |
-
"
|
75 |
-
"url": f"data:image/png;base64,{desktop_base64}",
|
76 |
-
"detail": "high"
|
77 |
-
}
|
78 |
-
},
|
79 |
-
{
|
80 |
-
"type": "image_url",
|
81 |
-
"image_url": {
|
82 |
-
"url": f"data:image/png;base64,{mobile_base64}",
|
83 |
-
"detail": "high"
|
84 |
-
}
|
85 |
}
|
86 |
-
|
87 |
-
|
88 |
-
]
|
89 |
-
max_tokens=1000
|
90 |
)
|
91 |
|
92 |
-
|
93 |
-
response_content = response.choices[0].message.content.strip()
|
94 |
|
95 |
-
# Ensure the response is not empty
|
96 |
if not response_content:
|
97 |
print(f"Empty response for design {design_id}")
|
98 |
return design_id, None, None, None
|
99 |
|
100 |
# Extract JSON content from markdown code block
|
101 |
if "```json" in response_content:
|
102 |
-
# Remove the ```json prefix and ``` suffix
|
103 |
response_content = response_content.split("```json")[1].split("```")[0].strip()
|
104 |
|
105 |
-
# Parse the JSON response
|
106 |
try:
|
107 |
analysis = json.loads(response_content)
|
108 |
|
109 |
-
#
|
110 |
-
|
|
|
111 |
|
112 |
-
# Save
|
113 |
-
|
114 |
-
|
|
|
|
|
|
|
115 |
|
116 |
print(f"Successfully analyzed design {design_id}")
|
117 |
-
|
118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
|
120 |
except json.JSONDecodeError as e:
|
121 |
print(f"Error parsing JSON response for design {design_id}: {str(e)}")
|
@@ -125,6 +141,108 @@ async def analyze_screenshot(design_id: str, design_path: Path):
|
|
125 |
print(f"Error processing design {design_id}: {str(e)}")
|
126 |
return design_id, None, None, None
|
127 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
async def main():
|
129 |
designs_dir = Path("designs")
|
130 |
|
|
|
5 |
import base64
|
6 |
from openai import AsyncOpenAI
|
7 |
from dotenv import load_dotenv
|
8 |
+
from anthropic import AsyncAnthropic
|
9 |
+
from .prompts import get_prompt
|
10 |
|
11 |
load_dotenv()
|
12 |
+
client = AsyncAnthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
|
13 |
|
14 |
+
VISION_MODEL = "claude-3-7-sonnet-20250219"
|
15 |
|
16 |
+
async def analyze_screenshot(design_id: str, design_path: Path, detailed: bool = True, output_path: Path = None):
|
17 |
+
"""
|
18 |
+
Analyze screenshots and return description, categories, and visual characteristics
|
19 |
+
|
20 |
+
Args:
|
21 |
+
design_id (str): ID of the design to analyze
|
22 |
+
design_path (Path): Path to the design's source files
|
23 |
+
detailed (bool): Whether to use detailed or core analysis prompt
|
24 |
+
output_path (Path): Path to save analysis results. If None, uses analyses/default
|
25 |
+
|
26 |
+
Returns:
|
27 |
+
tuple: (design_id, description, categories, visual_characteristics)
|
28 |
+
"""
|
29 |
try:
|
30 |
+
# Use output_path if provided, otherwise use default analyses path
|
31 |
+
save_path = output_path or Path("analyses/default")
|
32 |
+
|
33 |
+
# Ensure output directory exists
|
34 |
+
if not save_path.exists():
|
35 |
+
save_path.mkdir(parents=True, exist_ok=True)
|
36 |
+
|
37 |
+
# Check source files exist
|
38 |
metadata_path = design_path / "metadata.json"
|
39 |
desktop_img = design_path / "screenshot_desktop.png"
|
40 |
mobile_img = design_path / "screenshot_mobile.png"
|
|
|
59 |
|
60 |
print(f"Analyzing design {design_id}...")
|
61 |
|
62 |
+
# Get response using specified detail level
|
63 |
+
response = await client.messages.create(
|
64 |
model=VISION_MODEL,
|
65 |
+
max_tokens=8000 if detailed else 4000, # More tokens for detailed analysis
|
66 |
+
system=get_prompt(detailed=detailed),
|
67 |
+
messages=[{
|
68 |
+
"role": "user",
|
69 |
+
"content": [
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
{
|
71 |
+
"type": "text",
|
72 |
+
"text": "Analyze this visual design. Output only the JSON object."
|
73 |
+
},
|
74 |
+
{
|
75 |
+
"type": "image",
|
76 |
+
"source": {
|
77 |
+
"type": "base64",
|
78 |
+
"media_type": "image/png",
|
79 |
+
"data": desktop_base64
|
80 |
+
}
|
81 |
+
},
|
82 |
+
{
|
83 |
+
"type": "image",
|
84 |
+
"source": {
|
85 |
+
"type": "base64",
|
86 |
+
"media_type": "image/png",
|
87 |
+
"data": mobile_base64
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
}
|
89 |
+
}
|
90 |
+
]
|
91 |
+
}]
|
|
|
92 |
)
|
93 |
|
94 |
+
response_content = response.content[0].text
|
|
|
95 |
|
|
|
96 |
if not response_content:
|
97 |
print(f"Empty response for design {design_id}")
|
98 |
return design_id, None, None, None
|
99 |
|
100 |
# Extract JSON content from markdown code block
|
101 |
if "```json" in response_content:
|
|
|
102 |
response_content = response_content.split("```json")[1].split("```")[0].strip()
|
103 |
|
|
|
104 |
try:
|
105 |
analysis = json.loads(response_content)
|
106 |
|
107 |
+
# Create design-specific directory in output path
|
108 |
+
design_output_path = save_path / design_id
|
109 |
+
design_output_path.mkdir(parents=True, exist_ok=True)
|
110 |
|
111 |
+
# Save metadata.json inside the design folder
|
112 |
+
output_metadata_path = design_output_path / "metadata.json"
|
113 |
+
|
114 |
+
# Save analysis to output path
|
115 |
+
with open(output_metadata_path, "w") as f:
|
116 |
+
json.dump(analysis, f, indent=2)
|
117 |
|
118 |
print(f"Successfully analyzed design {design_id}")
|
119 |
+
|
120 |
+
# Return appropriate fields based on detail level
|
121 |
+
if detailed:
|
122 |
+
return (
|
123 |
+
design_id,
|
124 |
+
analysis["description"]["summary"],
|
125 |
+
analysis["categories"],
|
126 |
+
analysis["visual_characteristics"]
|
127 |
+
)
|
128 |
+
else:
|
129 |
+
return (
|
130 |
+
design_id,
|
131 |
+
analysis["description"],
|
132 |
+
analysis["categories"],
|
133 |
+
analysis["visual_characteristics"]
|
134 |
+
)
|
135 |
|
136 |
except json.JSONDecodeError as e:
|
137 |
print(f"Error parsing JSON response for design {design_id}: {str(e)}")
|
|
|
141 |
print(f"Error processing design {design_id}: {str(e)}")
|
142 |
return design_id, None, None, None
|
143 |
|
144 |
+
async def attribute_designs():
|
145 |
+
"""
|
146 |
+
Process scraped designs to extract title and author from CSS comments.
|
147 |
+
Adds these attributes to the existing metadata.json files.
|
148 |
+
Skips designs that already have both title and author.
|
149 |
+
"""
|
150 |
+
designs_dir = Path("scraped_designs")
|
151 |
+
|
152 |
+
if not designs_dir.exists():
|
153 |
+
print("Scraped designs directory not found!")
|
154 |
+
return
|
155 |
+
|
156 |
+
# Get all design directories
|
157 |
+
design_dirs = [d for d in designs_dir.iterdir() if d.is_dir()]
|
158 |
+
|
159 |
+
if not design_dirs:
|
160 |
+
print("No design directories found!")
|
161 |
+
return
|
162 |
+
|
163 |
+
print(f"Found {len(design_dirs)} designs to check")
|
164 |
+
|
165 |
+
processed = 0
|
166 |
+
skipped = 0
|
167 |
+
failed = 0
|
168 |
+
|
169 |
+
for design_dir in design_dirs:
|
170 |
+
try:
|
171 |
+
# Check for required files
|
172 |
+
css_path = design_dir / "style.css"
|
173 |
+
metadata_path = design_dir / "metadata.json"
|
174 |
+
|
175 |
+
if not all(f.exists() for f in [css_path, metadata_path]):
|
176 |
+
print(f"Missing required files for design {design_dir.name}")
|
177 |
+
failed += 1
|
178 |
+
continue
|
179 |
+
|
180 |
+
# Check existing metadata
|
181 |
+
with open(metadata_path, "r") as f:
|
182 |
+
metadata = json.load(f)
|
183 |
+
|
184 |
+
# Skip if both title and author already exist and aren't default values
|
185 |
+
if (metadata.get("title") and metadata.get("author") and
|
186 |
+
metadata["title"] != "Untitled" and metadata["author"] != "Unknown"):
|
187 |
+
print(f"Skipping design {design_dir.name} - already attributed")
|
188 |
+
skipped += 1
|
189 |
+
continue
|
190 |
+
|
191 |
+
# Read CSS file
|
192 |
+
with open(css_path, "r", encoding="utf-8") as f:
|
193 |
+
css_content = f.read()
|
194 |
+
|
195 |
+
# Extract title and author using Claude
|
196 |
+
response = await client.messages.create(
|
197 |
+
model="claude-3-haiku-20240307",
|
198 |
+
max_tokens=100,
|
199 |
+
system="You are a helpful assistant that extracts title and author information from CSS comments. Return ONLY a JSON object with 'title' and 'author' fields, nothing else.",
|
200 |
+
messages=[{
|
201 |
+
"role": "user",
|
202 |
+
"content": f"Extract the title and author from these CSS comments. Return only the JSON object, no markdown:\n\n{css_content}"
|
203 |
+
}]
|
204 |
+
)
|
205 |
+
|
206 |
+
# Get response text and clean it up
|
207 |
+
response_text = response.content[0].text.strip()
|
208 |
+
|
209 |
+
# Remove markdown formatting if present
|
210 |
+
if "```json" in response_text:
|
211 |
+
response_text = response_text.split("```json")[1].split("```")[0].strip()
|
212 |
+
elif "```" in response_text:
|
213 |
+
response_text = response_text.split("```")[1].strip()
|
214 |
+
|
215 |
+
try:
|
216 |
+
attribution = json.loads(response_text)
|
217 |
+
except json.JSONDecodeError:
|
218 |
+
print(f"Failed to parse JSON for design {design_dir.name}. Response was:")
|
219 |
+
print(response_text)
|
220 |
+
|
221 |
+
# Update metadata
|
222 |
+
metadata.update({
|
223 |
+
"title": attribution.get("title", "Untitled"),
|
224 |
+
"author": attribution.get("author", "Unknown")
|
225 |
+
})
|
226 |
+
|
227 |
+
# Save updated metadata
|
228 |
+
with open(metadata_path, "w") as f:
|
229 |
+
json.dump(metadata, f, indent=2)
|
230 |
+
|
231 |
+
print(f"Successfully attributed design {design_dir.name}")
|
232 |
+
print(f"Title: {attribution.get('title', 'Untitled')}")
|
233 |
+
print(f"Author: {attribution.get('author', 'Unknown')}\n")
|
234 |
+
processed += 1
|
235 |
+
|
236 |
+
except Exception as e:
|
237 |
+
print(f"Error processing design {design_dir.name}: {str(e)}")
|
238 |
+
failed += 1
|
239 |
+
|
240 |
+
print("\nAttribution complete!")
|
241 |
+
print(f"Processed: {processed}")
|
242 |
+
print(f"Skipped: {skipped}")
|
243 |
+
print(f"Failed: {failed}")
|
244 |
+
print(f"Total: {len(design_dirs)}")
|
245 |
+
|
246 |
async def main():
|
247 |
designs_dir = Path("designs")
|
248 |
|
data_collection/notebook.ipynb
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
data_collection/prompts.py
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""
|
2 |
+
Prompt templates for design analysis using different levels of detail.
|
3 |
+
Each template is optimized for Claude 3.7 Sonnet's visual processing capabilities.
|
4 |
+
"""
|
5 |
+
|
6 |
+
DETAILED_ANALYSIS_PROMPT = """You are an expert design analyst with deep knowledge of visual design, aesthetics, and human perception. Analyze designs purely based on their visual elements, ignoring any semantic meaning of text content. Treat all text as abstract typographic elements.
|
7 |
+
|
8 |
+
IMPORTANT: Base all analysis ONLY on what you can see in the visual design. Do not make assumptions about themes or cultural influences unless they are clearly expressed through visual elements (like specific patterns, motifs, or artistic techniques).
|
9 |
+
|
10 |
+
For each design, perform a detailed visual analysis considering:
|
11 |
+
1. Visual Composition & Hierarchy
|
12 |
+
- Layout structure and flow
|
13 |
+
- Balance and white space
|
14 |
+
- Focal points and emphasis
|
15 |
+
- Visual weight distribution
|
16 |
+
|
17 |
+
2. Color & Atmosphere
|
18 |
+
- Color palette and relationships
|
19 |
+
- Value contrast and harmony
|
20 |
+
- Light and shadow effects
|
21 |
+
- Color temperature and mood
|
22 |
+
|
23 |
+
3. Typography & Text Treatment
|
24 |
+
- Font styles as visual elements
|
25 |
+
- Typographic scale and contrast
|
26 |
+
- Text block shapes and rhythm
|
27 |
+
- Integration with other design elements
|
28 |
+
|
29 |
+
4. Texture & Depth
|
30 |
+
- Surface treatments and patterns
|
31 |
+
- Layering and dimensionality
|
32 |
+
- Material and tactile suggestions
|
33 |
+
- Visual texture relationships
|
34 |
+
|
35 |
+
5. Artistic Elements
|
36 |
+
- Visual style and aesthetic approach
|
37 |
+
- Decorative elements and motifs
|
38 |
+
- Pattern language and repetition
|
39 |
+
- Visual symbolism (based only on visible elements)
|
40 |
+
|
41 |
+
IMPORTANT: Categories should be concise, single-word descriptors or hyphenated pairs that a designer would use to tag or classify the design. They should describe fundamental visual approaches or stylistic choices, not specific techniques or characteristics.
|
42 |
+
|
43 |
+
Provide analysis in the following JSON format:
|
44 |
+
{
|
45 |
+
"description": {
|
46 |
+
"summary": "A compelling overview focusing on distinctive visual features and artistic approach",
|
47 |
+
"visual_style": "Analysis of the design's aesthetic language and artistic execution",
|
48 |
+
"emotional_impact": "Description of the mood and atmosphere created by visual elements",
|
49 |
+
"compositional_elements": "Analysis of how visual elements work together spatially"
|
50 |
+
},
|
51 |
+
"artistic_context": {
|
52 |
+
"style_influences": "Only visual styles clearly evidenced by specific visual elements",
|
53 |
+
"visual_metaphors": "Abstract concepts suggested by the visual treatment alone"
|
54 |
+
},
|
55 |
+
"categories": [
|
56 |
+
"4-6 single-word or hyphenated design classifications",
|
57 |
+
"Examples: artistic, professional, futuristic, geometric, typographic, high-contrast, grid-based"
|
58 |
+
],
|
59 |
+
"visual_characteristics": [
|
60 |
+
"4-6 specific visual techniques or elements",
|
61 |
+
"Concrete, observable visual attributes"
|
62 |
+
],
|
63 |
+
"design_principles": {
|
64 |
+
"primary_principles": ["3-4 key design principles exemplified"],
|
65 |
+
"visual_techniques": ["2-3 specific execution methods"]
|
66 |
+
}
|
67 |
+
}"""
|
68 |
+
|
69 |
+
CORE_ANALYSIS_PROMPT = """You are an expert design analyst. Analyze the visual design purely based on visual elements, ignoring any semantic meaning of text content. Treat all text as abstract typographic elements.
|
70 |
+
|
71 |
+
IMPORTANT: Base all analysis ONLY on what you can see in the visual design. Categories should be concise, single-word descriptors or hyphenated pairs that a designer would use to tag the design. Focus on fundamental visual approaches, not specific techniques.
|
72 |
+
|
73 |
+
Consider:
|
74 |
+
1. Overall composition and visual hierarchy
|
75 |
+
2. Color relationships and atmosphere
|
76 |
+
3. Typography as visual element
|
77 |
+
4. Texture and depth
|
78 |
+
5. Artistic style (based only on visible elements)
|
79 |
+
|
80 |
+
Provide analysis in the following JSON format:
|
81 |
+
{
|
82 |
+
"description": "A concise summary highlighting distinctive visual features",
|
83 |
+
"categories": [
|
84 |
+
"4-5 single-word or hyphenated design classifications"
|
85 |
+
],
|
86 |
+
"visual_characteristics": [
|
87 |
+
"4-5 specific visual techniques or elements"
|
88 |
+
],
|
89 |
+
"artistic_style": {
|
90 |
+
"influences": ["2-3 clearly evident visual style influences"],
|
91 |
+
"techniques": ["2-3 observable visual techniques"]
|
92 |
+
}
|
93 |
+
}"""
|
94 |
+
|
95 |
+
def get_prompt(detailed: bool = True) -> str:
|
96 |
+
"""
|
97 |
+
Returns the appropriate prompt template based on the desired detail level.
|
98 |
+
|
99 |
+
Args:
|
100 |
+
detailed (bool): If True, returns the detailed analysis prompt.
|
101 |
+
If False, returns the core analysis prompt.
|
102 |
+
|
103 |
+
Returns:
|
104 |
+
str: The selected prompt template
|
105 |
+
"""
|
106 |
+
return DETAILED_ANALYSIS_PROMPT if detailed else CORE_ANALYSIS_PROMPT
|
data_collection/scraper.py
CHANGED
@@ -31,27 +31,25 @@ async def take_screenshot(url, directory):
|
|
31 |
browser = await p.chromium.launch()
|
32 |
|
33 |
# Desktop screenshot (1920px width)
|
34 |
-
page = await browser.new_page(viewport={'width':
|
35 |
await page.goto(url)
|
36 |
# Wait for network to be idle (no requests for at least 500ms)
|
37 |
-
await page.wait_for_load_state()
|
38 |
-
|
39 |
-
|
40 |
-
#await page.wait_for_timeout(2000) # 2 second delay
|
41 |
|
42 |
# Get full height
|
43 |
height = await page.evaluate('document.body.scrollHeight')
|
44 |
-
await page.set_viewport_size({'width':
|
45 |
await page.screenshot(path=f"{directory}/screenshot_desktop.png", full_page=True)
|
46 |
|
47 |
# Mobile screenshot (480px width)
|
48 |
page = await browser.new_page(viewport={'width': 480, 'height': 1080})
|
49 |
await page.goto(url)
|
50 |
# Wait for network to be idle (no requests for at least 500ms)
|
51 |
-
await page.wait_for_load_state()
|
52 |
-
|
53 |
-
|
54 |
-
#await page.wait_for_timeout(2000) # 2 second delay
|
55 |
|
56 |
# Get full height
|
57 |
height = await page.evaluate('document.body.scrollHeight')
|
|
|
31 |
browser = await p.chromium.launch()
|
32 |
|
33 |
# Desktop screenshot (1920px width)
|
34 |
+
page = await browser.new_page(viewport={'width': 1600, 'height': 1080})
|
35 |
await page.goto(url)
|
36 |
# Wait for network to be idle (no requests for at least 500ms)
|
37 |
+
await page.wait_for_load_state("networkidle")
|
38 |
+
# Add a significant delay to ensure background images are loaded
|
39 |
+
await page.wait_for_timeout(3000)
|
|
|
40 |
|
41 |
# Get full height
|
42 |
height = await page.evaluate('document.body.scrollHeight')
|
43 |
+
await page.set_viewport_size({'width': 1600, 'height': int(height)})
|
44 |
await page.screenshot(path=f"{directory}/screenshot_desktop.png", full_page=True)
|
45 |
|
46 |
# Mobile screenshot (480px width)
|
47 |
page = await browser.new_page(viewport={'width': 480, 'height': 1080})
|
48 |
await page.goto(url)
|
49 |
# Wait for network to be idle (no requests for at least 500ms)
|
50 |
+
await page.wait_for_load_state("networkidle")
|
51 |
+
# Add a significant delay to ensure background images are loaded
|
52 |
+
await page.wait_for_timeout(2000)
|
|
|
53 |
|
54 |
# Get full height
|
55 |
height = await page.evaluate('document.body.scrollHeight')
|
pyproject.toml
CHANGED
@@ -37,6 +37,8 @@ dependencies = [
|
|
37 |
"matplotlib>=3.10.0",
|
38 |
"accelerate>=0.26.0",
|
39 |
"nest-asyncio>=1.6.0",
|
|
|
|
|
40 |
]
|
41 |
|
42 |
[build-system]
|
|
|
37 |
"matplotlib>=3.10.0",
|
38 |
"accelerate>=0.26.0",
|
39 |
"nest-asyncio>=1.6.0",
|
40 |
+
"anthropic>=0.49.0",
|
41 |
+
"langchain-anthropic>=0.3.10",
|
42 |
]
|
43 |
|
44 |
[build-system]
|
src/app.py
CHANGED
@@ -1,19 +1,6 @@
|
|
1 |
import chainlit as cl
|
2 |
-
from langchain_openai import AsyncChatOpenAI
|
3 |
from langchain_core.messages import HumanMessage, SystemMessage
|
4 |
-
from
|
5 |
-
|
6 |
-
# Initialize components
|
7 |
-
design_rag = DesignRAG()
|
8 |
-
|
9 |
-
llm = AsyncChatOpenAI(
|
10 |
-
model="gpt-4o-mini",
|
11 |
-
temperature=0,
|
12 |
-
streaming=True,
|
13 |
-
callbacks=[cl.LangchainCallbackHandler()]
|
14 |
-
)
|
15 |
-
|
16 |
-
conversation_history = []
|
17 |
|
18 |
# System message focused on design analysis
|
19 |
SYSTEM_MESSAGE = """You are a helpful design assistant that finds and explains design examples.
|
@@ -23,43 +10,45 @@ For every user message, analyze their design preferences and requirements, consi
|
|
23 |
3. Layout and structural needs
|
24 |
4. Key visual elements
|
25 |
5. Intended audience and user experience
|
26 |
-
|
27 |
-
First briefly explain how you understand their requirements, then show the closest match."""
|
28 |
|
29 |
@cl.on_chat_start
|
30 |
async def init():
|
|
|
|
|
31 |
|
32 |
-
#
|
33 |
-
|
34 |
-
SystemMessage(content=SYSTEM_MESSAGE)
|
35 |
-
|
|
|
36 |
|
37 |
# Send welcome message
|
38 |
await cl.Message(content="Welcome to ImagineUI! I'm here to help you design beautiful and functional user interfaces. What kind of design are you looking for?").send()
|
39 |
|
40 |
@cl.on_message
|
41 |
async def main(message: cl.Message):
|
42 |
-
|
43 |
-
|
44 |
-
|
|
|
|
|
45 |
|
46 |
-
#
|
47 |
-
|
48 |
|
49 |
-
#
|
50 |
-
|
51 |
-
|
52 |
-
num_examples=1
|
53 |
-
)
|
54 |
|
55 |
-
#
|
56 |
-
|
57 |
|
58 |
-
#
|
59 |
-
|
60 |
|
61 |
# Send response to user
|
62 |
-
await cl.Message(content=
|
63 |
|
64 |
if __name__ == "__main__":
|
65 |
-
cl.run()
|
|
|
1 |
import chainlit as cl
|
|
|
2 |
from langchain_core.messages import HumanMessage, SystemMessage
|
3 |
+
from graph import graph
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
# System message focused on design analysis
|
6 |
SYSTEM_MESSAGE = """You are a helpful design assistant that finds and explains design examples.
|
|
|
10 |
3. Layout and structural needs
|
11 |
4. Key visual elements
|
12 |
5. Intended audience and user experience
|
13 |
+
"""
|
|
|
14 |
|
15 |
@cl.on_chat_start
|
16 |
async def init():
|
17 |
+
# Store the graph in the user session
|
18 |
+
cl.user_session.set("graph", graph)
|
19 |
|
20 |
+
# Initialize conversation state with system message
|
21 |
+
initial_state = {
|
22 |
+
"messages": [SystemMessage(content=SYSTEM_MESSAGE)]
|
23 |
+
}
|
24 |
+
cl.user_session.set("state", initial_state)
|
25 |
|
26 |
# Send welcome message
|
27 |
await cl.Message(content="Welcome to ImagineUI! I'm here to help you design beautiful and functional user interfaces. What kind of design are you looking for?").send()
|
28 |
|
29 |
@cl.on_message
|
30 |
async def main(message: cl.Message):
|
31 |
+
# Get the graph from the user session
|
32 |
+
graph = cl.user_session.get("graph")
|
33 |
+
|
34 |
+
# Get current state
|
35 |
+
state = cl.user_session.get("state")
|
36 |
|
37 |
+
# Add the new user message to the state
|
38 |
+
state["messages"].append(HumanMessage(content=message.content))
|
39 |
|
40 |
+
# Process message through the graph
|
41 |
+
result = await graph.ainvoke(state)
|
42 |
+
print("Here's the result: ", result)
|
|
|
|
|
43 |
|
44 |
+
# Update state with the result
|
45 |
+
state["messages"].extend(result["messages"])
|
46 |
|
47 |
+
# Extract the last assistant message for display
|
48 |
+
last_message = result["messages"][-1].content
|
49 |
|
50 |
# Send response to user
|
51 |
+
await cl.Message(content=last_message).send()
|
52 |
|
53 |
if __name__ == "__main__":
|
54 |
+
cl.run()
|
{data → src/data}/csszengardenhtml.html
RENAMED
File without changes
|
{data → src/data}/csszengardenstyle.css
RENAMED
File without changes
|
src/data/designs/001/metadata.json
CHANGED
@@ -2,19 +2,45 @@
|
|
2 |
"id": "001",
|
3 |
"url": "https://www.csszengarden.com/001",
|
4 |
"css_url": "https://www.csszengarden.com/001/001.css",
|
5 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
"categories": [
|
7 |
-
"
|
8 |
-
"
|
9 |
-
"
|
10 |
-
"
|
11 |
-
"
|
|
|
12 |
],
|
13 |
"visual_characteristics": [
|
14 |
-
"
|
15 |
-
"
|
16 |
-
"
|
17 |
-
"
|
18 |
-
"
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
|
|
2 |
"id": "001",
|
3 |
"url": "https://www.csszengarden.com/001",
|
4 |
"css_url": "https://www.csszengarden.com/001/001.css",
|
5 |
+
"title": "Tranquille",
|
6 |
+
"author": "Dave Shea",
|
7 |
+
"description": {
|
8 |
+
"summary": "A serene web design that combines Eastern aesthetic elements with minimalist layout principles, featuring soft colors and symbolic imagery like lotus flowers and a traditional torii gate.",
|
9 |
+
"visual_style": "The design employs a calm, light aesthetic with subtle watercolor-like backgrounds and symbolic Eastern elements creating a balanced, harmonious composition.",
|
10 |
+
"emotional_impact": "The visual elements evoke tranquility and contemplation through the use of soft colors, ample white space, and delicate natural imagery.",
|
11 |
+
"compositional_elements": "The layout is structured with a central content area flanked by decorative side elements, creating a framed, balanced composition with clear visual hierarchy."
|
12 |
+
},
|
13 |
+
"artistic_context": {
|
14 |
+
"style_influences": "Japanese minimalism, traditional Eastern art, watercolor painting techniques",
|
15 |
+
"visual_metaphors": "Serenity, balance, enlightenment, natural harmony"
|
16 |
+
},
|
17 |
"categories": [
|
18 |
+
"minimalist",
|
19 |
+
"eastern-inspired",
|
20 |
+
"elegant",
|
21 |
+
"structured",
|
22 |
+
"harmonious",
|
23 |
+
"zen-aesthetic"
|
24 |
],
|
25 |
"visual_characteristics": [
|
26 |
+
"pastel-palette",
|
27 |
+
"symbolic-imagery",
|
28 |
+
"balanced-composition",
|
29 |
+
"negative-space",
|
30 |
+
"typographic-hierarchy",
|
31 |
+
"watercolor-effects"
|
32 |
+
],
|
33 |
+
"design_principles": {
|
34 |
+
"primary_principles": [
|
35 |
+
"balance",
|
36 |
+
"harmony",
|
37 |
+
"contrast",
|
38 |
+
"hierarchy"
|
39 |
+
],
|
40 |
+
"visual_techniques": [
|
41 |
+
"framing",
|
42 |
+
"symbolic imagery",
|
43 |
+
"tonal gradation"
|
44 |
+
]
|
45 |
+
}
|
46 |
}
|
src/data/designs/001/screenshot_desktop.png
DELETED
Git LFS Details
|
src/data/designs/001/screenshot_mobile.png
DELETED
Git LFS Details
|
src/data/designs/001/style.css
DELETED
@@ -1,207 +0,0 @@
|
|
1 |
-
/* css Zen Garden default style - 'Tranquille' by Dave Shea - http://www.mezzoblue.com/ */
|
2 |
-
/* css released under Creative Commons License - http://creativecommons.org/licenses/by-nc-sa/1.0/ */
|
3 |
-
/* All associated graphics copyright 2003, Dave Shea */
|
4 |
-
/* Added: May 7th, 2003 */
|
5 |
-
|
6 |
-
|
7 |
-
/* IMPORTANT */
|
8 |
-
/* This design is not a template. You may not reproduce it elsewhere without the
|
9 |
-
designer's written permission. However, feel free to study the CSS and use
|
10 |
-
techniques you learn from it elsewhere. */
|
11 |
-
|
12 |
-
|
13 |
-
/* The Zen Garden default was the first I put together, and almost didn't make the cut. I briefly flirted with using
|
14 |
-
'Salmon Cream Cheese' as the main style for the Garden, but switched back to this one before launch.
|
15 |
-
|
16 |
-
All graphics in this design were illustrated by me in Photoshop. Google Image Search provided inspiration for
|
17 |
-
some of the elements. I did a bit of research on Kanji to come up with the characters on the top left. Anyone who
|
18 |
-
can read that will most likely tell you it makes no sense, but the best I could do was putting together the
|
19 |
-
characters for 'beginning' 'complete' and 'skill' to roughly say something like 'we're breaking fresh ground.'
|
20 |
-
|
21 |
-
It's a stretch. */
|
22 |
-
|
23 |
-
|
24 |
-
/* basic elements */
|
25 |
-
html {
|
26 |
-
margin: 0;
|
27 |
-
padding: 0;
|
28 |
-
}
|
29 |
-
body {
|
30 |
-
font: 75% georgia, sans-serif;
|
31 |
-
line-height: 1.88889;
|
32 |
-
color: #555753;
|
33 |
-
background: #fff url(blossoms.jpg) no-repeat bottom right;
|
34 |
-
margin: 0;
|
35 |
-
padding: 0;
|
36 |
-
}
|
37 |
-
p {
|
38 |
-
margin-top: 0;
|
39 |
-
text-align: justify;
|
40 |
-
}
|
41 |
-
h3 {
|
42 |
-
font: italic normal 1.4em georgia, sans-serif;
|
43 |
-
letter-spacing: 1px;
|
44 |
-
margin-bottom: 0;
|
45 |
-
color: #7D775C;
|
46 |
-
}
|
47 |
-
a:link {
|
48 |
-
font-weight: bold;
|
49 |
-
text-decoration: none;
|
50 |
-
color: #B7A5DF;
|
51 |
-
}
|
52 |
-
a:visited {
|
53 |
-
font-weight: bold;
|
54 |
-
text-decoration: none;
|
55 |
-
color: #D4CDDC;
|
56 |
-
}
|
57 |
-
a:hover, a:focus, a:active {
|
58 |
-
text-decoration: underline;
|
59 |
-
color: #9685BA;
|
60 |
-
}
|
61 |
-
abbr {
|
62 |
-
border-bottom: none;
|
63 |
-
}
|
64 |
-
|
65 |
-
|
66 |
-
/* specific divs */
|
67 |
-
.page-wrapper {
|
68 |
-
background: url(zen-bg.jpg) no-repeat top left;
|
69 |
-
padding: 0 175px 0 110px;
|
70 |
-
margin: 0;
|
71 |
-
position: relative;
|
72 |
-
}
|
73 |
-
|
74 |
-
.intro {
|
75 |
-
min-width: 470px;
|
76 |
-
width: 100%;
|
77 |
-
}
|
78 |
-
|
79 |
-
header h1 {
|
80 |
-
background: transparent url(h1.gif) no-repeat top left;
|
81 |
-
margin-top: 10px;
|
82 |
-
display: block;
|
83 |
-
width: 219px;
|
84 |
-
height: 87px;
|
85 |
-
float: left;
|
86 |
-
|
87 |
-
text-indent: 100%;
|
88 |
-
white-space: nowrap;
|
89 |
-
overflow: hidden;
|
90 |
-
}
|
91 |
-
header h2 {
|
92 |
-
background: transparent url(h2.gif) no-repeat top left;
|
93 |
-
margin-top: 58px;
|
94 |
-
margin-bottom: 40px;
|
95 |
-
width: 200px;
|
96 |
-
height: 18px;
|
97 |
-
float: right;
|
98 |
-
|
99 |
-
text-indent: 100%;
|
100 |
-
white-space: nowrap;
|
101 |
-
overflow: hidden;
|
102 |
-
}
|
103 |
-
header {
|
104 |
-
padding-top: 20px;
|
105 |
-
height: 87px;
|
106 |
-
}
|
107 |
-
|
108 |
-
.summary {
|
109 |
-
clear: both;
|
110 |
-
margin: 20px 20px 20px 10px;
|
111 |
-
width: 160px;
|
112 |
-
float: left;
|
113 |
-
}
|
114 |
-
.summary p {
|
115 |
-
font: italic 1.1em/2.2 georgia;
|
116 |
-
text-align: center;
|
117 |
-
}
|
118 |
-
|
119 |
-
.preamble {
|
120 |
-
clear: right;
|
121 |
-
padding: 0px 10px 0 10px;
|
122 |
-
}
|
123 |
-
.supporting {
|
124 |
-
padding-left: 10px;
|
125 |
-
margin-bottom: 40px;
|
126 |
-
}
|
127 |
-
|
128 |
-
footer {
|
129 |
-
text-align: center;
|
130 |
-
}
|
131 |
-
footer a:link, footer a:visited {
|
132 |
-
margin-right: 20px;
|
133 |
-
}
|
134 |
-
|
135 |
-
.sidebar {
|
136 |
-
margin-left: 600px;
|
137 |
-
position: absolute;
|
138 |
-
top: 0;
|
139 |
-
right: 0;
|
140 |
-
}
|
141 |
-
.sidebar .wrapper {
|
142 |
-
font: 10px verdana, sans-serif;
|
143 |
-
background: transparent url(paper-bg.jpg) top left repeat-y;
|
144 |
-
padding: 10px;
|
145 |
-
margin-top: 150px;
|
146 |
-
width: 130px;
|
147 |
-
}
|
148 |
-
.sidebar h3.select {
|
149 |
-
background: transparent url(h3.gif) no-repeat top left;
|
150 |
-
margin: 10px 0 5px 0;
|
151 |
-
width: 97px;
|
152 |
-
height: 16px;
|
153 |
-
|
154 |
-
text-indent: 100%;
|
155 |
-
white-space: nowrap;
|
156 |
-
overflow: hidden;
|
157 |
-
}
|
158 |
-
.sidebar h3.archives {
|
159 |
-
background: transparent url(h5.gif) no-repeat top left;
|
160 |
-
margin: 25px 0 5px 0;
|
161 |
-
width:57px;
|
162 |
-
height: 14px;
|
163 |
-
|
164 |
-
text-indent: 100%;
|
165 |
-
white-space: nowrap;
|
166 |
-
overflow: hidden;
|
167 |
-
}
|
168 |
-
.sidebar h3.resources {
|
169 |
-
background: transparent url(h6.gif) no-repeat top left;
|
170 |
-
margin: 25px 0 5px 0;
|
171 |
-
width:63px;
|
172 |
-
height: 10px;
|
173 |
-
|
174 |
-
text-indent: 100%;
|
175 |
-
white-space: nowrap;
|
176 |
-
overflow: hidden;
|
177 |
-
}
|
178 |
-
|
179 |
-
|
180 |
-
.sidebar ul {
|
181 |
-
margin: 0;
|
182 |
-
padding: 0;
|
183 |
-
}
|
184 |
-
.sidebar li {
|
185 |
-
line-height: 1.3em;
|
186 |
-
background: transparent url(cr1.gif) no-repeat top center;
|
187 |
-
display: block;
|
188 |
-
padding-top: 5px;
|
189 |
-
margin-bottom: 5px;
|
190 |
-
list-style-type: none;
|
191 |
-
}
|
192 |
-
.sidebar li a:link {
|
193 |
-
color: #988F5E;
|
194 |
-
}
|
195 |
-
.sidebar li a:visited {
|
196 |
-
color: #B3AE94;
|
197 |
-
}
|
198 |
-
|
199 |
-
|
200 |
-
.extra1 {
|
201 |
-
background: transparent url(cr2.gif) top left no-repeat;
|
202 |
-
position: absolute;
|
203 |
-
top: 40px;
|
204 |
-
right: 0;
|
205 |
-
width: 148px;
|
206 |
-
height: 110px;
|
207 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/data/designs/002/metadata.json
CHANGED
@@ -2,17 +2,45 @@
|
|
2 |
"id": "002",
|
3 |
"url": "https://www.csszengarden.com/002",
|
4 |
"css_url": "https://www.csszengarden.com/002/002.css",
|
5 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
"categories": [
|
7 |
-
"
|
8 |
-
"
|
9 |
-
"
|
10 |
-
"
|
|
|
|
|
11 |
],
|
12 |
"visual_characteristics": [
|
13 |
-
"
|
14 |
-
"
|
15 |
-
"
|
16 |
-
"
|
17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
}
|
|
|
2 |
"id": "002",
|
3 |
"url": "https://www.csszengarden.com/002",
|
4 |
"css_url": "https://www.csszengarden.com/002/002.css",
|
5 |
+
"title": "Salmon Cream Cheese",
|
6 |
+
"author": "Dave Shea",
|
7 |
+
"description": {
|
8 |
+
"summary": "A serene, minimalist web design featuring a soft peach color palette with an Eastern aesthetic influence, centered around a garden photograph that serves as a focal point.",
|
9 |
+
"visual_style": "The design employs a clean, structured layout with a delicate balance between textual content and visual elements, creating a sense of tranquility through organized simplicity.",
|
10 |
+
"emotional_impact": "The warm peachy tones combined with the garden imagery evoke feelings of calm, harmony, and natural beauty, reinforcing the zen philosophy suggested by the design.",
|
11 |
+
"compositional_elements": "A clear vertical hierarchy divides the page into distinct functional zones, with a prominent header, a central showcase area featuring natural imagery, and an organized content section with well-defined typographic rhythm."
|
12 |
+
},
|
13 |
+
"artistic_context": {
|
14 |
+
"style_influences": "Eastern minimalism, Japanese design principles, web-centric modernism",
|
15 |
+
"visual_metaphors": "Garden as structure, simplicity as clarity, natural harmony as design philosophy"
|
16 |
+
},
|
17 |
"categories": [
|
18 |
+
"minimalist",
|
19 |
+
"zen-inspired",
|
20 |
+
"structured",
|
21 |
+
"monochromatic",
|
22 |
+
"educational",
|
23 |
+
"grid-based"
|
24 |
],
|
25 |
"visual_characteristics": [
|
26 |
+
"soft-peach palette",
|
27 |
+
"hierarchical typography",
|
28 |
+
"clean whitespace",
|
29 |
+
"natural photography",
|
30 |
+
"horizontal sectioning",
|
31 |
+
"muted contrast"
|
32 |
+
],
|
33 |
+
"design_principles": {
|
34 |
+
"primary_principles": [
|
35 |
+
"balance",
|
36 |
+
"harmony",
|
37 |
+
"simplicity",
|
38 |
+
"hierarchy"
|
39 |
+
],
|
40 |
+
"visual_techniques": [
|
41 |
+
"color monochrome",
|
42 |
+
"structured layout",
|
43 |
+
"typographic contrast"
|
44 |
+
]
|
45 |
+
}
|
46 |
}
|
src/data/designs/002/screenshot_desktop.png
DELETED
Git LFS Details
|
src/data/designs/002/screenshot_mobile.png
DELETED
Git LFS Details
|
src/data/designs/002/style.css
DELETED
@@ -1,225 +0,0 @@
|
|
1 |
-
/* css Zen Garden submission 002 - 'Salmon Cream Cheese' by Dave Shea - http://www.mezzoblue.com/ */
|
2 |
-
/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
|
3 |
-
/* All associated graphics copyright 2003, Dave Shea */
|
4 |
-
/* Added: May 7th, 2003 */
|
5 |
-
|
6 |
-
|
7 |
-
/* IMPORTANT */
|
8 |
-
/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
|
9 |
-
/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
|
10 |
-
/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
|
11 |
-
|
12 |
-
|
13 |
-
/* If you're familiar with the life cycle of salmon, you'll know that at the end of their lives they fight their way upstream to
|
14 |
-
the rivers where they were born, to spawn and then die. Growing up close to one of these so-called 'salmon runs', I
|
15 |
-
once had a class field trip to the river for the afternoon to learn about the process. The funny thing about a bunch of
|
16 |
-
dead salmon is that they stink. Quite bad. The second worst memory of that day was the smell of the fish.
|
17 |
-
|
18 |
-
The worst memory of the day was opening my lunch to find my considerate mother had packed bagels. With, as you
|
19 |
-
have guessed by now, salmon cream cheese. I rarely hear the word 'salmon' anymore without the 'cream cheese'
|
20 |
-
playing in my head as an afterthought. Hence, this style is Salmon Cream Cheese. */
|
21 |
-
|
22 |
-
|
23 |
-
/* basic elements */
|
24 |
-
body {
|
25 |
-
font: 11px/14px verdana, sans-serif;
|
26 |
-
color: #AD7C77;
|
27 |
-
background: #FFD7C4 url(/002/bg1.gif) top left repeat-x;
|
28 |
-
padding: 65px 0px 0px 224px;
|
29 |
-
margin: 0px;
|
30 |
-
}
|
31 |
-
p {
|
32 |
-
font: 11px/14px verdana, sans-serif;
|
33 |
-
text-align: justify;
|
34 |
-
margin-top: 0px;
|
35 |
-
}
|
36 |
-
h3 {
|
37 |
-
font: bold 16px 'arial narrow', sans-serif;
|
38 |
-
text-transform: lowercase;
|
39 |
-
margin-bottom: 0px;
|
40 |
-
}
|
41 |
-
abbr {
|
42 |
-
border-bottom: dotted 1px #B27F66;
|
43 |
-
}
|
44 |
-
a:link {
|
45 |
-
font-weight: bold;
|
46 |
-
text-decoration: none;
|
47 |
-
color: #E98376;
|
48 |
-
}
|
49 |
-
a:visited {
|
50 |
-
font-weight: bold;
|
51 |
-
text-decoration: none;
|
52 |
-
color: #AD7C77;
|
53 |
-
}
|
54 |
-
a:active, a:hover {
|
55 |
-
text-decoration: underline;
|
56 |
-
}
|
57 |
-
|
58 |
-
|
59 |
-
/* specific divs */
|
60 |
-
|
61 |
-
|
62 |
-
/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
|
63 |
-
header {
|
64 |
-
position: absolute;
|
65 |
-
top: 0px;
|
66 |
-
left: 0px;
|
67 |
-
width: 770px;
|
68 |
-
}
|
69 |
-
header h1 {
|
70 |
-
background: transparent url(/002/h1.gif) no-repeat top left;
|
71 |
-
width: 258px;
|
72 |
-
height: 61px;
|
73 |
-
float: left;
|
74 |
-
margin: 1px 0px 0px 3px;
|
75 |
-
|
76 |
-
text-indent: 100%;
|
77 |
-
white-space: nowrap;
|
78 |
-
overflow: hidden;
|
79 |
-
}
|
80 |
-
header h2 {
|
81 |
-
background: transparent url(/002/h2.gif) no-repeat top left;
|
82 |
-
width: 206px;
|
83 |
-
height: 28px;
|
84 |
-
float: right;
|
85 |
-
margin: 22px 15px 0px 0px;
|
86 |
-
|
87 |
-
text-indent: 100%;
|
88 |
-
white-space: nowrap;
|
89 |
-
overflow: hidden;
|
90 |
-
}
|
91 |
-
|
92 |
-
/* sets up our floating area on the right. Kind of a hack, since there's a physical separation between
|
93 |
-
two divs, filled in by tricky margins and compensated for with tricky padding, but it seems to hold up okay. */
|
94 |
-
.intro {
|
95 |
-
background: #FFC5A9 url(/002/bg2.gif) top left repeat-x;
|
96 |
-
}
|
97 |
-
.preamble {
|
98 |
-
padding: 0px 40px 0px 40px;
|
99 |
-
}
|
100 |
-
.preamble p:nth-child(4) {
|
101 |
-
margin-bottom: 0px;
|
102 |
-
}
|
103 |
-
.supporting {
|
104 |
-
background-color: #FFC5A9;
|
105 |
-
margin: 0px;
|
106 |
-
padding: 0px 40px 0px 40px;
|
107 |
-
}
|
108 |
-
.supporting .explanation h3 {
|
109 |
-
margin-top: 0px;
|
110 |
-
padding-top: 20px;
|
111 |
-
}
|
112 |
-
|
113 |
-
.summary {
|
114 |
-
padding-top: 47px;
|
115 |
-
}
|
116 |
-
|
117 |
-
.summary p:first-child {
|
118 |
-
width: 430px;
|
119 |
-
height: 195px;
|
120 |
-
background: transparent url(/002/splash.jpg) top left no-repeat;
|
121 |
-
padding: 182px 0px 0px 10px;
|
122 |
-
position: absolute;
|
123 |
-
top: 93px;
|
124 |
-
left: 244px;
|
125 |
-
|
126 |
-
text-indent: 100%;
|
127 |
-
white-space: nowrap;
|
128 |
-
overflow: hidden;
|
129 |
-
}
|
130 |
-
.summary p:last-child {
|
131 |
-
font-size: 9px;
|
132 |
-
line-height: 22px;
|
133 |
-
text-align: left;
|
134 |
-
color: #B27F66;
|
135 |
-
background-color: #FFD7C4;
|
136 |
-
display: block;
|
137 |
-
border: solid 1px #FFBEA1;
|
138 |
-
padding: 40px 15px 0px 419px;
|
139 |
-
margin: 0px 10px 0px 40px;
|
140 |
-
height: 140px;
|
141 |
-
}
|
142 |
-
.summary p:last-child a:link {
|
143 |
-
color: #B27F66;
|
144 |
-
}
|
145 |
-
|
146 |
-
footer {
|
147 |
-
text-align: right;
|
148 |
-
border-top: solid 1px #FFCDB5;
|
149 |
-
padding-top: 10px;
|
150 |
-
}
|
151 |
-
footer a:link, footer a:visited {
|
152 |
-
padding: 2px 6px 2px 6px;
|
153 |
-
}
|
154 |
-
footer a:hover {
|
155 |
-
background-color: #FFD7BF;
|
156 |
-
text-decoration: none;
|
157 |
-
}
|
158 |
-
|
159 |
-
|
160 |
-
.sidebar {
|
161 |
-
background: transparent url(/002/cr1.gif) bottom right no-repeat;
|
162 |
-
padding-bottom: 76px;
|
163 |
-
position: absolute;
|
164 |
-
top: 65px;
|
165 |
-
left: 0px;
|
166 |
-
}
|
167 |
-
.sidebar .wrapper {
|
168 |
-
padding: 40px 0px 10px 0px;
|
169 |
-
width: 200px;
|
170 |
-
}
|
171 |
-
.sidebar .wrapper h3.select {
|
172 |
-
background: transparent url(/002/h3.gif) no-repeat top left;
|
173 |
-
width: 195px;
|
174 |
-
height: 21px;
|
175 |
-
|
176 |
-
text-indent: 100%;
|
177 |
-
white-space: nowrap;
|
178 |
-
overflow: hidden;
|
179 |
-
}
|
180 |
-
.sidebar .wrapper h3.favorites{
|
181 |
-
background: transparent url(/002/h4.gif) no-repeat top left;
|
182 |
-
width: 195px;
|
183 |
-
height: 21px;
|
184 |
-
|
185 |
-
text-indent: 100%;
|
186 |
-
white-space: nowrap;
|
187 |
-
overflow: hidden;
|
188 |
-
}
|
189 |
-
.sidebar .wrapper h3.archives{
|
190 |
-
background: transparent url(/002/h5.gif) no-repeat top left;
|
191 |
-
width: 195px;
|
192 |
-
height: 21px;
|
193 |
-
|
194 |
-
text-indent: 100%;
|
195 |
-
white-space: nowrap;
|
196 |
-
overflow: hidden;
|
197 |
-
}
|
198 |
-
.sidebar .wrapper h3.resources{
|
199 |
-
background: transparent url(/002/h6.gif) no-repeat top left;
|
200 |
-
width: 195px;
|
201 |
-
height: 21px;
|
202 |
-
|
203 |
-
text-indent: 100%;
|
204 |
-
white-space: nowrap;
|
205 |
-
overflow: hidden;
|
206 |
-
}
|
207 |
-
.sidebar .iL, .sidebar li {
|
208 |
-
font-size: 10px;
|
209 |
-
line-height: 2.5ex;
|
210 |
-
display: block;
|
211 |
-
padding: 2px 0px 0px 25px;
|
212 |
-
margin-bottom: 5px;
|
213 |
-
}
|
214 |
-
.sidebar .zen-resources li {
|
215 |
-
margin-bottom: 0px;
|
216 |
-
}
|
217 |
-
|
218 |
-
.sidebar ul {
|
219 |
-
margin: 0px;
|
220 |
-
padding: 0px;
|
221 |
-
}
|
222 |
-
|
223 |
-
.sidebar li {
|
224 |
-
list-style-type: none;
|
225 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/data/designs/003/metadata.json
CHANGED
@@ -2,19 +2,45 @@
|
|
2 |
"id": "003",
|
3 |
"url": "https://www.csszengarden.com/003",
|
4 |
"css_url": "https://www.csszengarden.com/003/003.css",
|
5 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
"categories": [
|
7 |
-
"
|
8 |
-
"
|
9 |
-
"
|
10 |
-
"
|
11 |
-
"
|
|
|
12 |
],
|
13 |
"visual_characteristics": [
|
14 |
-
"
|
15 |
-
"
|
16 |
-
"
|
17 |
-
"
|
18 |
-
"
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
|
|
2 |
"id": "003",
|
3 |
"url": "https://www.csszengarden.com/003",
|
4 |
"css_url": "https://www.csszengarden.com/003/003.css",
|
5 |
+
"title": "Stormweather",
|
6 |
+
"author": "Dave Shea",
|
7 |
+
"description": {
|
8 |
+
"summary": "A serene, minimalist web design with a blue-gray color scheme featuring a structured layout with photographic elements and clean typography, creating a sense of calm and order.",
|
9 |
+
"visual_style": "The design employs a zen-inspired aesthetic with ample white space, framed photographic thumbnails, and carefully structured text blocks within a soothing color environment.",
|
10 |
+
"emotional_impact": "The soft color palette, spacious layout, and nature imagery evoke tranquility and contemplation, reinforced by the balanced typography and gentle visual hierarchy.",
|
11 |
+
"compositional_elements": "Three equally-sized photographic thumbnails serve as focal points above neatly organized text columns, all contained within a subtle blue-tinted frame that creates unified visual harmony."
|
12 |
+
},
|
13 |
+
"artistic_context": {
|
14 |
+
"style_influences": "Minimalism, Japanese aesthetic principles, modernist typography, digital photography",
|
15 |
+
"visual_metaphors": "Garden path, mist, water reflections, journey, enlightenment"
|
16 |
+
},
|
17 |
"categories": [
|
18 |
+
"minimalist",
|
19 |
+
"structured",
|
20 |
+
"grid-based",
|
21 |
+
"photographic",
|
22 |
+
"serene",
|
23 |
+
"monochromatic"
|
24 |
],
|
25 |
"visual_characteristics": [
|
26 |
+
"blue-gray palette",
|
27 |
+
"framed imagery",
|
28 |
+
"white space",
|
29 |
+
"photographic elements",
|
30 |
+
"structured columns",
|
31 |
+
"subtle texture"
|
32 |
+
],
|
33 |
+
"design_principles": {
|
34 |
+
"primary_principles": [
|
35 |
+
"balance",
|
36 |
+
"hierarchy",
|
37 |
+
"unity",
|
38 |
+
"contrast"
|
39 |
+
],
|
40 |
+
"visual_techniques": [
|
41 |
+
"framing",
|
42 |
+
"grid layout",
|
43 |
+
"tonal harmony"
|
44 |
+
]
|
45 |
+
}
|
46 |
}
|
src/data/designs/003/screenshot_desktop.png
DELETED
Git LFS Details
|
src/data/designs/003/screenshot_mobile.png
DELETED
Git LFS Details
|
src/data/designs/003/style.css
DELETED
@@ -1,228 +0,0 @@
|
|
1 |
-
/* css Zen Garden submission 003 - 'Stormweather' by Dave Shea - http://www.mezzoblue.com/ */
|
2 |
-
/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
|
3 |
-
/* All associated graphics copyright 2003, Dave Shea */
|
4 |
-
/* Added: May 7th, 2003 */
|
5 |
-
|
6 |
-
|
7 |
-
/* IMPORTANT */
|
8 |
-
/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
|
9 |
-
/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
|
10 |
-
/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
|
11 |
-
|
12 |
-
|
13 |
-
/* Credit to Phillipe Wittenbergh at http://www.l-c-n.com/ for Mac testing */
|
14 |
-
|
15 |
-
/* The photos in this design come from my digital library. All were taken in Vancouver, BC. The car is on the
|
16 |
-
Granville St. Bridge, the leaves are West 6th Ave, and the snow/tree is West 10th Ave. Guess which
|
17 |
-
part of town I live in...
|
18 |
-
|
19 |
-
I'm still rather fond of this design. I'm glad Phillipe was able to iron out the various CSS bugs */
|
20 |
-
|
21 |
-
|
22 |
-
/* basic elements */
|
23 |
-
body {
|
24 |
-
font: 11px/15px georgia, serif;
|
25 |
-
text-align: center;
|
26 |
-
color: #fff;
|
27 |
-
background: #748A9B url(bg2.gif) 0 0 repeat-y;
|
28 |
-
margin: 0px;
|
29 |
-
}
|
30 |
-
p {
|
31 |
-
/*font: 11px/15px georgia, serif;*/
|
32 |
-
text-align: justify;
|
33 |
-
margin-top: 0;
|
34 |
-
}
|
35 |
-
h3 {
|
36 |
-
font: bold 14px georgia, serif;
|
37 |
-
text-transform: lowercase;
|
38 |
-
margin-bottom: 0;
|
39 |
-
}
|
40 |
-
abbr {
|
41 |
-
border-bottom: dotted 1px #fff;
|
42 |
-
}
|
43 |
-
a:link {
|
44 |
-
font-weight: bold;
|
45 |
-
text-decoration: underline;
|
46 |
-
color: #A7D3F6;
|
47 |
-
}
|
48 |
-
a:visited {
|
49 |
-
font-weight: bold;
|
50 |
-
text-decoration: underline;
|
51 |
-
color: #D1E9FC;
|
52 |
-
}
|
53 |
-
a:active, a:hover {
|
54 |
-
text-decoration: underline;
|
55 |
-
color: #fff;
|
56 |
-
}
|
57 |
-
|
58 |
-
|
59 |
-
/* specific divs */
|
60 |
-
|
61 |
-
.page-wrapper {
|
62 |
-
background: #849AA9 url(bg1.gif) top left repeat-y;
|
63 |
-
text-align: left;
|
64 |
-
width: 750px; margin: 0px auto;
|
65 |
-
position: relative;
|
66 |
-
}
|
67 |
-
.supporting {
|
68 |
-
/*position: relative; top: -120px;*/
|
69 |
-
padding: 0px 40px 0px 0;
|
70 |
-
/*clear:right;*/
|
71 |
-
float:right;
|
72 |
-
width:430px;
|
73 |
-
}
|
74 |
-
|
75 |
-
/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
|
76 |
-
header h1 {
|
77 |
-
background: transparent url(h1.jpg) no-repeat top left;
|
78 |
-
width: 750px;
|
79 |
-
height: 142px;
|
80 |
-
margin: 0px;
|
81 |
-
|
82 |
-
text-indent: 100%;
|
83 |
-
white-space: nowrap;
|
84 |
-
overflow: hidden;
|
85 |
-
}
|
86 |
-
header h2 {
|
87 |
-
text-indent: 100%;
|
88 |
-
white-space: nowrap;
|
89 |
-
overflow: hidden;
|
90 |
-
}
|
91 |
-
|
92 |
-
.summary {
|
93 |
-
width: 685px;
|
94 |
-
margin: 0px auto;
|
95 |
-
position: relative;
|
96 |
-
top: -50px;
|
97 |
-
}
|
98 |
-
html>body .summary {
|
99 |
-
margin-top:-50px;
|
100 |
-
top: 0;
|
101 |
-
}
|
102 |
-
.summary p:first-child {
|
103 |
-
font-size: 1px;
|
104 |
-
color: white;
|
105 |
-
background: transparent url(panel1-2.jpg) no-repeat top left;
|
106 |
-
width: 449px;
|
107 |
-
padding: 10px 0px 0px 5px; float: left;
|
108 |
-
height: 268px;
|
109 |
-
voice-family: "\"}\"";
|
110 |
-
voice-family:inherit;
|
111 |
-
height: 258px;
|
112 |
-
|
113 |
-
text-indent: 100%;
|
114 |
-
white-space: nowrap;
|
115 |
-
overflow: hidden;
|
116 |
-
}
|
117 |
-
.summary p:last-child {
|
118 |
-
color: #7593A7;
|
119 |
-
background: transparent url(panel3.jpg) no-repeat 0 0;
|
120 |
-
padding: 90px 45px 0px 45px;
|
121 |
-
float: right;
|
122 |
-
width: 214px;
|
123 |
-
height: 338px;
|
124 |
-
voice-family: "\"}\"";
|
125 |
-
voice-family:inherit;
|
126 |
-
width: 124px;
|
127 |
-
height: 178px;
|
128 |
-
|
129 |
-
text-indent: 100%;
|
130 |
-
white-space: nowrap;
|
131 |
-
overflow: hidden;
|
132 |
-
}
|
133 |
-
.summary p:last-child a:link, .summary p:last-child a:visited {
|
134 |
-
color: #7593A7;
|
135 |
-
}
|
136 |
-
.summary p:last-child a:hover {
|
137 |
-
color: #85ABC5;
|
138 |
-
}
|
139 |
-
|
140 |
-
.preamble {
|
141 |
-
/*position: relative; top: -120px; */
|
142 |
-
padding: 0px 0px 70px 33px;
|
143 |
-
margin: 0px 0 20px 0px;
|
144 |
-
width: 210px;
|
145 |
-
float: left;
|
146 |
-
background: transparent url(tag.gif) 50% 100% no-repeat;
|
147 |
-
}
|
148 |
-
.preamble h2 {
|
149 |
-
font: bold 14px georgia, serif;
|
150 |
-
margin-top: 0px;
|
151 |
-
padding: 0px;
|
152 |
-
}
|
153 |
-
.preamble p {
|
154 |
-
font: italic 12px/20px georgia, serif;
|
155 |
-
}
|
156 |
-
|
157 |
-
footer {
|
158 |
-
text-align: right;
|
159 |
-
clear: both;
|
160 |
-
}
|
161 |
-
footer a {
|
162 |
-
font-weight: normal;
|
163 |
-
text-decoration: none;
|
164 |
-
margin-right: 10px;
|
165 |
-
border: solid 1px #859BAA;
|
166 |
-
padding: 6px;
|
167 |
-
}
|
168 |
-
footer a:hover {
|
169 |
-
color: #7E868D;
|
170 |
-
background-color: #fff;
|
171 |
-
border-right: solid 1px #6F818D;
|
172 |
-
border-bottom: solid 1px #6F818D;
|
173 |
-
}
|
174 |
-
|
175 |
-
.design-selection {
|
176 |
-
position: absolute;
|
177 |
-
top: 15px;
|
178 |
-
left: 0px;
|
179 |
-
padding-left: 350px;
|
180 |
-
margin: 0px auto;
|
181 |
-
width: 730px;
|
182 |
-
voice-family: "\"}\"";
|
183 |
-
voice-family:inherit;
|
184 |
-
width: 380px;
|
185 |
-
}
|
186 |
-
.sidebar h3 {
|
187 |
-
display: inline;
|
188 |
-
margin-right: 5px;
|
189 |
-
}
|
190 |
-
|
191 |
-
.sidebar ul {
|
192 |
-
margin: 0px;
|
193 |
-
padding: 0px;
|
194 |
-
}
|
195 |
-
.sidebar li {
|
196 |
-
font-size: 10px;
|
197 |
-
margin-right: 5px;
|
198 |
-
list-style-type: none;
|
199 |
-
display: inline;
|
200 |
-
}
|
201 |
-
.sidebar li a {
|
202 |
-
font-weight: normal;
|
203 |
-
}
|
204 |
-
|
205 |
-
.design-selection h3 {
|
206 |
-
font: bold 11px georgia;
|
207 |
-
letter-spacing: -1px;
|
208 |
-
}
|
209 |
-
.design-selection li {
|
210 |
-
font: 11px/12px georgia;
|
211 |
-
letter-spacing: -1px;
|
212 |
-
color: #758C9B;
|
213 |
-
}
|
214 |
-
.design-selection li a:link, .design-selection li a:visited {
|
215 |
-
font-weight: normal;
|
216 |
-
color: #fff;
|
217 |
-
text-decoration: none;
|
218 |
-
}
|
219 |
-
.design-selection li a:hover {
|
220 |
-
color: #D1E9FC;
|
221 |
-
text-decoration: underline;
|
222 |
-
}
|
223 |
-
|
224 |
-
.zen-resources, .design-archives, #lfavorites {
|
225 |
-
padding: 0px 40px 0px 266px;
|
226 |
-
clear: both;
|
227 |
-
/*position: relative; top: -20px;*/
|
228 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/data/designs/004/metadata.json
CHANGED
@@ -2,19 +2,45 @@
|
|
2 |
"id": "004",
|
3 |
"url": "https://www.csszengarden.com/004",
|
4 |
"css_url": "https://www.csszengarden.com/004/004.css",
|
5 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
"categories": [
|
7 |
-
"
|
8 |
-
"
|
9 |
-
"
|
10 |
-
"
|
11 |
-
"
|
|
|
12 |
],
|
13 |
"visual_characteristics": [
|
14 |
-
"
|
15 |
-
"
|
16 |
-
"
|
17 |
-
"
|
18 |
-
"
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
|
|
2 |
"id": "004",
|
3 |
"url": "https://www.csszengarden.com/004",
|
4 |
"css_url": "https://www.csszengarden.com/004/004.css",
|
5 |
+
"title": "css Zen Garden submission 004 - 'arch4.20'",
|
6 |
+
"author": "Dave Shea",
|
7 |
+
"description": {
|
8 |
+
"summary": "A structured web design demonstration page showcasing CSS capabilities with a clean, professional layout and architectural imagery header",
|
9 |
+
"visual_style": "The design employs a functional, minimalist approach with clear typographic hierarchy and a deep blue-teal color scheme that creates a professional, academic atmosphere",
|
10 |
+
"emotional_impact": "The design evokes a sense of organized tranquility and technical authority through its structured layout and cool color palette",
|
11 |
+
"compositional_elements": "The page features a horizontal architectural header image, a prominent title area, and a multi-column content structure with clear section divisions and sidebar navigation"
|
12 |
+
},
|
13 |
+
"artistic_context": {
|
14 |
+
"style_influences": "Web standards movement, functional minimalism, academic documentation design",
|
15 |
+
"visual_metaphors": "Architecture as structure, garden as growth and cultivation, path/road as journey"
|
16 |
+
},
|
17 |
"categories": [
|
18 |
+
"functional",
|
19 |
+
"minimalist",
|
20 |
+
"structured",
|
21 |
+
"educational",
|
22 |
+
"grid-based",
|
23 |
+
"technical"
|
24 |
],
|
25 |
"visual_characteristics": [
|
26 |
+
"blue-teal color scheme",
|
27 |
+
"architectural header imagery",
|
28 |
+
"hierarchical typography",
|
29 |
+
"clear section divisions",
|
30 |
+
"sidebar navigation",
|
31 |
+
"multi-column layout"
|
32 |
+
],
|
33 |
+
"design_principles": {
|
34 |
+
"primary_principles": [
|
35 |
+
"hierarchy",
|
36 |
+
"contrast",
|
37 |
+
"readability",
|
38 |
+
"organization"
|
39 |
+
],
|
40 |
+
"visual_techniques": [
|
41 |
+
"color blocking",
|
42 |
+
"typographic scaling",
|
43 |
+
"white space management"
|
44 |
+
]
|
45 |
+
}
|
46 |
}
|
src/data/designs/004/screenshot_desktop.png
DELETED
Git LFS Details
|
src/data/designs/004/screenshot_mobile.png
DELETED
Git LFS Details
|
src/data/designs/004/style.css
DELETED
@@ -1,192 +0,0 @@
|
|
1 |
-
/* css Zen Garden submission 004 - 'arch4.20' by Dave Shea - http://www.mezzoblue.com/ */
|
2 |
-
/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
|
3 |
-
/* All associated graphics copyright 2003, Dave Shea */
|
4 |
-
/* Added: May 7th, 2003 */
|
5 |
-
|
6 |
-
|
7 |
-
/* IMPORTANT */
|
8 |
-
/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
|
9 |
-
/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
|
10 |
-
/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
|
11 |
-
|
12 |
-
|
13 |
-
/* The photo was taken inside the Vancouver Public Library. It has been mentioned the colours have a vaguely
|
14 |
-
MetaFilter-like feel. I suppose they do... Unintentional. */
|
15 |
-
|
16 |
-
|
17 |
-
/* basic elements */
|
18 |
-
body {
|
19 |
-
font: 11px tahoma, verdana, sans-serif;
|
20 |
-
color: #fff;
|
21 |
-
background: #005D87 url(bg1.gif) top left repeat-x;
|
22 |
-
margin: 0px;
|
23 |
-
}
|
24 |
-
p {
|
25 |
-
font: 11px/14px verdana, sans-serif;
|
26 |
-
text-align: justify;
|
27 |
-
margin-top: 0px;
|
28 |
-
}
|
29 |
-
h3 {
|
30 |
-
font: bold 13px verdana, sans-serif;
|
31 |
-
margin-bottom: 0px;
|
32 |
-
}
|
33 |
-
abbr {
|
34 |
-
border-bottom: dotted 1px #fff;
|
35 |
-
}
|
36 |
-
a:link {
|
37 |
-
font-weight: bold;
|
38 |
-
text-decoration: none;
|
39 |
-
color: #8AF44F;
|
40 |
-
}
|
41 |
-
a:visited {
|
42 |
-
font-weight: bold;
|
43 |
-
text-decoration: none;
|
44 |
-
color: #55AB26;
|
45 |
-
}
|
46 |
-
a:active, a:hover {
|
47 |
-
color: #8AF44F;
|
48 |
-
text-decoration: underline;
|
49 |
-
}
|
50 |
-
|
51 |
-
/* specific divs */
|
52 |
-
.preamble {
|
53 |
-
padding: 0px 180px 0px 25px;
|
54 |
-
}
|
55 |
-
.supporting {
|
56 |
-
padding: 0px 180px 0px 25px;
|
57 |
-
}
|
58 |
-
|
59 |
-
header {
|
60 |
-
width: 100%;
|
61 |
-
height: 217px;
|
62 |
-
background: #fff url(cr1.jpg) top left no-repeat;
|
63 |
-
margin-top: 47px;
|
64 |
-
}
|
65 |
-
header h1 {
|
66 |
-
background: transparent url(h1.gif) no-repeat top left;
|
67 |
-
width: 296px;
|
68 |
-
height: 46px;
|
69 |
-
position: absolute;
|
70 |
-
top: 185px;
|
71 |
-
right: 10px;
|
72 |
-
|
73 |
-
text-indent: 100%;
|
74 |
-
white-space: nowrap;
|
75 |
-
overflow: hidden;
|
76 |
-
}
|
77 |
-
header h2 {
|
78 |
-
background: transparent url(h2.gif) no-repeat top left;
|
79 |
-
width: 229px;
|
80 |
-
height: 16px;
|
81 |
-
position: absolute;
|
82 |
-
top: 230px;
|
83 |
-
right: 12px;
|
84 |
-
|
85 |
-
text-indent: 100%;
|
86 |
-
white-space: nowrap;
|
87 |
-
overflow: hidden;
|
88 |
-
}
|
89 |
-
|
90 |
-
.summary p:first-child {
|
91 |
-
font: 11px tahoma, verdana, sans-serif;
|
92 |
-
line-height: 18px;
|
93 |
-
color: #7799AC;
|
94 |
-
background-color: #fff;
|
95 |
-
padding: 2px;
|
96 |
-
position: absolute;
|
97 |
-
top: 65px;
|
98 |
-
right: 10px;
|
99 |
-
width: 150px;
|
100 |
-
}
|
101 |
-
.summary p:last-child {
|
102 |
-
font: 10px tahoma, verdana, sans-serif;
|
103 |
-
color: #7799AC;
|
104 |
-
position: absolute;
|
105 |
-
top: 32px;
|
106 |
-
right: 5px;
|
107 |
-
}
|
108 |
-
.summary p:last-child a:link, .summary p:last-child a:visited {
|
109 |
-
color: #7799AC;
|
110 |
-
text-decoration: underline;
|
111 |
-
}
|
112 |
-
.summary p:last-child a:active, .summary p:last-child a:hover {
|
113 |
-
color: #8AF44F;
|
114 |
-
}
|
115 |
-
|
116 |
-
.sidebar{
|
117 |
-
font: 11px tahoma, verdana, sans-serif;
|
118 |
-
line-height: 18px;
|
119 |
-
color: #7799AC;
|
120 |
-
position: absolute;
|
121 |
-
top: 285px;
|
122 |
-
right: 0px;
|
123 |
-
width: 150px;
|
124 |
-
}
|
125 |
-
.sidebar .wrapper h3.select {
|
126 |
-
background: transparent url(h3.gif) no-repeat top left;
|
127 |
-
width: 157px;
|
128 |
-
height: 14px;
|
129 |
-
|
130 |
-
text-indent: 100%;
|
131 |
-
white-space: nowrap;
|
132 |
-
overflow: hidden;
|
133 |
-
}
|
134 |
-
.sidebar .wrapper h3.favorites{
|
135 |
-
background: transparent url(h5.gif) no-repeat top left;
|
136 |
-
width: 157px;
|
137 |
-
height: 14px;
|
138 |
-
|
139 |
-
text-indent: 100%;
|
140 |
-
white-space: nowrap;
|
141 |
-
overflow: hidden;
|
142 |
-
}
|
143 |
-
.sidebar .wrapper h3.archives{
|
144 |
-
background: transparent url(h6.gif) no-repeat top left;
|
145 |
-
width: 157px;
|
146 |
-
height: 14px;
|
147 |
-
|
148 |
-
text-indent: 100%;
|
149 |
-
white-space: nowrap;
|
150 |
-
overflow: hidden;
|
151 |
-
}
|
152 |
-
.sidebar .wrapper h3.resources{
|
153 |
-
background: transparent url(h4.gif) no-repeat top left;
|
154 |
-
width: 157px;
|
155 |
-
height: 14px;
|
156 |
-
|
157 |
-
text-indent: 100%;
|
158 |
-
white-space: nowrap;
|
159 |
-
overflow: hidden;
|
160 |
-
}
|
161 |
-
.sidebar li {
|
162 |
-
font-size: 10px;
|
163 |
-
line-height: 2.5ex;
|
164 |
-
display: block;
|
165 |
-
padding: 2px 10px 0px 0px;
|
166 |
-
margin-bottom: 5px;
|
167 |
-
}
|
168 |
-
.sidebar .zen-resources li {
|
169 |
-
margin-bottom: 0px;
|
170 |
-
}
|
171 |
-
|
172 |
-
.sidebar ul {
|
173 |
-
margin: 0px;
|
174 |
-
padding: 0px;
|
175 |
-
}
|
176 |
-
|
177 |
-
.sidebar li {
|
178 |
-
list-style-type: none;
|
179 |
-
}
|
180 |
-
|
181 |
-
|
182 |
-
footer {
|
183 |
-
text-align: right; border-top: solid 1px #1E5E82;
|
184 |
-
padding-top: 10px;
|
185 |
-
}
|
186 |
-
footer a:link, footer a:visited {
|
187 |
-
padding: 2px 6px 2px 6px;
|
188 |
-
}
|
189 |
-
footer a:hover {
|
190 |
-
background: transparent url(bg2.gif) top left repeat-x;
|
191 |
-
text-decoration: none;
|
192 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/data/designs/005/metadata.json
CHANGED
@@ -2,17 +2,45 @@
|
|
2 |
"id": "005",
|
3 |
"url": "https://www.csszengarden.com/005",
|
4 |
"css_url": "https://www.csszengarden.com/005/005.css",
|
5 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
"categories": [
|
7 |
-
"abstract",
|
8 |
"experimental",
|
9 |
-
"
|
10 |
-
"
|
|
|
|
|
|
|
11 |
],
|
12 |
"visual_characteristics": [
|
13 |
-
"
|
14 |
-
"
|
15 |
-
"
|
16 |
-
"
|
17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
}
|
|
|
2 |
"id": "005",
|
3 |
"url": "https://www.csszengarden.com/005",
|
4 |
"css_url": "https://www.csszengarden.com/005/005.css",
|
5 |
+
"title": "css Zen Garden submission 005 - 'Blood Lust'",
|
6 |
+
"author": "Dave Shea",
|
7 |
+
"description": {
|
8 |
+
"summary": "A deliberately chaotic yet structured web design featuring an experimental aesthetic with bold red washes against a grid background, integrating calligraphic script with technical typography.",
|
9 |
+
"visual_style": "The design employs a tension between structured technical elements and organic, painterly splashes creating a rebellious yet purposeful aesthetic.",
|
10 |
+
"emotional_impact": "Creates a sense of controlled chaos and artistic rebellion, suggesting both creative freedom and technical discipline.",
|
11 |
+
"compositional_elements": "Navigation elements frame the left side while content flows across the center and right, with dramatic red ink-like splashes overlaying a dotted grid background."
|
12 |
+
},
|
13 |
+
"artistic_context": {
|
14 |
+
"style_influences": "Japanese calligraphy, deconstructivist design, digital grunge aesthetic, modernist typography",
|
15 |
+
"visual_metaphors": "Zen garden as ordered chaos, splashes of ink as creative disruption, grid as structural foundation"
|
16 |
+
},
|
17 |
"categories": [
|
|
|
18 |
"experimental",
|
19 |
+
"deconstructivist",
|
20 |
+
"juxtaposed",
|
21 |
+
"high-contrast",
|
22 |
+
"calligraphic",
|
23 |
+
"grid-based"
|
24 |
],
|
25 |
"visual_characteristics": [
|
26 |
+
"red ink splashes",
|
27 |
+
"dotted background grid",
|
28 |
+
"multi-column layout",
|
29 |
+
"script typography",
|
30 |
+
"layered elements",
|
31 |
+
"monospaced text"
|
32 |
+
],
|
33 |
+
"design_principles": {
|
34 |
+
"primary_principles": [
|
35 |
+
"contrast",
|
36 |
+
"hierarchy",
|
37 |
+
"tension",
|
38 |
+
"asymmetry"
|
39 |
+
],
|
40 |
+
"visual_techniques": [
|
41 |
+
"overlay",
|
42 |
+
"typographic contrast",
|
43 |
+
"negative space"
|
44 |
+
]
|
45 |
+
}
|
46 |
}
|
src/data/designs/005/screenshot_desktop.png
DELETED
Git LFS Details
|
src/data/designs/005/screenshot_mobile.png
DELETED
Git LFS Details
|
src/data/designs/005/style.css
DELETED
@@ -1,220 +0,0 @@
|
|
1 |
-
/* css Zen Garden submission 005 - 'Blood Lust' by Dave Shea - http://www.mezzoblue.com/ */
|
2 |
-
/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
|
3 |
-
/* All associated graphics copyright 2003, Dave Shea */
|
4 |
-
/* Added: May 7th, 2003 */
|
5 |
-
|
6 |
-
|
7 |
-
/* IMPORTANT */
|
8 |
-
/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
|
9 |
-
/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
|
10 |
-
/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
|
11 |
-
|
12 |
-
|
13 |
-
/* love it or hate it. This one is one of my favourites because I don't generally design this way. It reaches into the past
|
14 |
-
for a vaguely Futurist style, complete with duotone for that screenprint feel, combined with modern GIF
|
15 |
-
patterned-dithering to really mess with tradition.
|
16 |
-
|
17 |
-
You may find it challenging, silly, visually stimulating, or a mess. I didn't do it for you, I did it for me. */
|
18 |
-
|
19 |
-
|
20 |
-
/* basic elements */
|
21 |
-
body {
|
22 |
-
font: 12px/13px courier, monospace;
|
23 |
-
color: #000;
|
24 |
-
background-color: #fff;
|
25 |
-
margin: 0px;
|
26 |
-
}
|
27 |
-
p {
|
28 |
-
font: 12px/13px courier, monospace;
|
29 |
-
text-align: justify;
|
30 |
-
}
|
31 |
-
h3 {
|
32 |
-
font:bold 14px courier, monospace;
|
33 |
-
letter-spacing: 1px;
|
34 |
-
margin-bottom: 0px;
|
35 |
-
color: #000;
|
36 |
-
}
|
37 |
-
a:link {
|
38 |
-
font-weight: bold;
|
39 |
-
text-decoration: underline;
|
40 |
-
color: #FF4F3E;
|
41 |
-
}
|
42 |
-
a:visited {
|
43 |
-
font-weight: bold;
|
44 |
-
text-decoration: underline;
|
45 |
-
color: #FF4F3E;
|
46 |
-
}
|
47 |
-
a:hover, a:active {
|
48 |
-
text-decoration: underline;
|
49 |
-
color: #000;
|
50 |
-
}
|
51 |
-
abbr {
|
52 |
-
border-bottom: none;
|
53 |
-
}
|
54 |
-
|
55 |
-
|
56 |
-
/* specific divs */
|
57 |
-
.page-wrapper {
|
58 |
-
background: #fff url(bloodlust.gif) no-repeat top left;
|
59 |
-
margin: 50px 0px 0px 0px;
|
60 |
-
padding: 150px 0px 0px 200px;
|
61 |
-
}
|
62 |
-
|
63 |
-
/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
|
64 |
-
header h1 {
|
65 |
-
background: transparent url(h1.gif) no-repeat top left;
|
66 |
-
margin-top: 10px;
|
67 |
-
width: 461px;
|
68 |
-
height: 116px;
|
69 |
-
position: absolute;
|
70 |
-
top: 20px;
|
71 |
-
left: 305px;
|
72 |
-
|
73 |
-
text-indent: 100%;
|
74 |
-
white-space: nowrap;
|
75 |
-
overflow: hidden;
|
76 |
-
}
|
77 |
-
header h2 {
|
78 |
-
background: transparent url(h2.gif) no-repeat top left;
|
79 |
-
width: 253px;
|
80 |
-
height: 34px;
|
81 |
-
position: absolute;
|
82 |
-
top: 150px;
|
83 |
-
left: 216px;
|
84 |
-
|
85 |
-
text-indent: 100%;
|
86 |
-
white-space: nowrap;
|
87 |
-
overflow: hidden;
|
88 |
-
}
|
89 |
-
|
90 |
-
|
91 |
-
.summary p:first-child {
|
92 |
-
font: 400 18px/16px 'arial black', sans-serif;
|
93 |
-
text-align: right;
|
94 |
-
width: 340px;
|
95 |
-
float: left;
|
96 |
-
margin: 40px 20px 20px 0px;
|
97 |
-
}
|
98 |
-
.summary p:last-child {
|
99 |
-
font: 9px verdana, sans-serif;
|
100 |
-
text-align: left;
|
101 |
-
line-height: 24px;
|
102 |
-
width: 295px;
|
103 |
-
position: absolute;
|
104 |
-
top: 20px;
|
105 |
-
left: 25px;
|
106 |
-
}
|
107 |
-
.preamble {
|
108 |
-
width: 170px;
|
109 |
-
float: right;
|
110 |
-
margin-top: 50px;
|
111 |
-
clear: left;
|
112 |
-
position: relative;
|
113 |
-
top: -270px;
|
114 |
-
}
|
115 |
-
.preamble h3 {
|
116 |
-
font: bold 12pt/10pt 'trebuchet ms', sans-serif;
|
117 |
-
text-align: right;
|
118 |
-
}
|
119 |
-
.preamble p {
|
120 |
-
font: bold 10pt/11pt arial, sans-serif;
|
121 |
-
text-align: right;
|
122 |
-
}
|
123 |
-
.supporting {
|
124 |
-
clear: left;
|
125 |
-
}
|
126 |
-
.explanation h3 {
|
127 |
-
font: bold 18px courier, monospace;
|
128 |
-
}
|
129 |
-
.explanation p:nth-child(2) {
|
130 |
-
font: 18px courier, monospace;
|
131 |
-
line-height: 5ex;
|
132 |
-
}
|
133 |
-
.explanation p:nth-child(3) {
|
134 |
-
font: 11px/16px courier, monospace;
|
135 |
-
width: 220px;
|
136 |
-
float: left;
|
137 |
-
margin-right: 10px;
|
138 |
-
}
|
139 |
-
.explanation p:nth-child(4) {
|
140 |
-
font: 14px/14px courier, monospace;
|
141 |
-
margin-top: 30px;
|
142 |
-
}
|
143 |
-
|
144 |
-
.participation h3 {
|
145 |
-
background: transparent url(h3.gif) no-repeat top left;
|
146 |
-
width: 174px;
|
147 |
-
height: 66px;
|
148 |
-
margin: 0px;
|
149 |
-
float: left;
|
150 |
-
|
151 |
-
text-indent: 100%;
|
152 |
-
white-space: nowrap;
|
153 |
-
overflow: hidden;
|
154 |
-
}
|
155 |
-
.participation p:nth-child(2):first-line {
|
156 |
-
font: 16px 'arial black', sans-serif;
|
157 |
-
}
|
158 |
-
.participation p:nth-child(3) {
|
159 |
-
line-height: 16px;
|
160 |
-
text-align: right;
|
161 |
-
float: left;
|
162 |
-
width: 200px;
|
163 |
-
margin: 0px 5px 15px 0px;
|
164 |
-
}
|
165 |
-
.participation p:nth-child(4) {
|
166 |
-
font-family: arial, sans-serif;
|
167 |
-
}
|
168 |
-
|
169 |
-
.benefits h3 {
|
170 |
-
background: transparent url(h4.gif) no-repeat top left;
|
171 |
-
width: 107px;
|
172 |
-
height: 26px;
|
173 |
-
margin: 0px;
|
174 |
-
float: left;
|
175 |
-
|
176 |
-
text-indent: 100%;
|
177 |
-
white-space: nowrap;
|
178 |
-
overflow: hidden;
|
179 |
-
}
|
180 |
-
|
181 |
-
|
182 |
-
.requirements h3 {
|
183 |
-
font: bold 18px 'arial black', sans-serif;
|
184 |
-
clear: left;
|
185 |
-
float: right;
|
186 |
-
}
|
187 |
-
.requirements p:nth-child(2) {
|
188 |
-
font: bold 11px/16px trebuchet ms, sans-serif;
|
189 |
-
float: left;
|
190 |
-
width: 300px;
|
191 |
-
margin-right: 10px;
|
192 |
-
}
|
193 |
-
.requirements p:nth-child(4) {
|
194 |
-
font: 12px/11px arial, sans-serif;
|
195 |
-
}
|
196 |
-
|
197 |
-
.sidebar {
|
198 |
-
position: absolute;
|
199 |
-
top: 0px;
|
200 |
-
left: 20px;
|
201 |
-
}
|
202 |
-
.sidebar .wrapper {
|
203 |
-
font: 12px courier, monospace;
|
204 |
-
padding: 10px;
|
205 |
-
margin-top: 115px;
|
206 |
-
width: 130px;
|
207 |
-
}
|
208 |
-
|
209 |
-
.sidebar li {
|
210 |
-
line-height: 2.5ex;
|
211 |
-
display: block;
|
212 |
-
padding-top: 5px;
|
213 |
-
margin-bottom: 5px;
|
214 |
-
list-style-type: none;
|
215 |
-
}
|
216 |
-
|
217 |
-
.sidebar ul {
|
218 |
-
margin: 0px;
|
219 |
-
padding: 0px;
|
220 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/data/designs/006/metadata.json
CHANGED
@@ -2,19 +2,45 @@
|
|
2 |
"id": "006",
|
3 |
"url": "https://www.csszengarden.com/006",
|
4 |
"css_url": "https://www.csszengarden.com/006/006.css",
|
5 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
"categories": [
|
7 |
-
"
|
8 |
-
"
|
9 |
-
"
|
10 |
-
"
|
11 |
-
"
|
|
|
12 |
],
|
13 |
"visual_characteristics": [
|
14 |
-
"blue
|
15 |
-
"
|
16 |
-
"
|
17 |
-
"
|
18 |
-
"
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
|
|
2 |
"id": "006",
|
3 |
"url": "https://www.csszengarden.com/006",
|
4 |
"css_url": "https://www.csszengarden.com/006/006.css",
|
5 |
+
"title": "Wicked Grove",
|
6 |
+
"author": "D. Keith Robinson",
|
7 |
+
"description": {
|
8 |
+
"summary": "A serene web design that blends natural imagery with structured content, creating a harmonious balance between organic and digital elements",
|
9 |
+
"visual_style": "The design employs a tranquil blue gradient background paired with a natural green foliage canopy, creating a zen-like digital environment that invites exploration",
|
10 |
+
"emotional_impact": "Evokes a sense of calm contemplation through the combination of natural imagery and orderly content presentation",
|
11 |
+
"compositional_elements": "Three-column layout with natural imagery framing the top, clear content blocks with distinct typographic hierarchy, and accented navigation elements in vibrant red"
|
12 |
+
},
|
13 |
+
"artistic_context": {
|
14 |
+
"style_influences": "Digital minimalism, natural-digital fusion, information architecture",
|
15 |
+
"visual_metaphors": "Garden as knowledge cultivation, natural canopy as shelter for digital content"
|
16 |
+
},
|
17 |
"categories": [
|
18 |
+
"nature-inspired",
|
19 |
+
"columnar",
|
20 |
+
"structured",
|
21 |
+
"educational",
|
22 |
+
"minimalist",
|
23 |
+
"gradient-based"
|
24 |
],
|
25 |
"visual_characteristics": [
|
26 |
+
"blue-gradient background",
|
27 |
+
"green canopy frame",
|
28 |
+
"three-column layout",
|
29 |
+
"high-contrast typography",
|
30 |
+
"color-coded navigation",
|
31 |
+
"bordered content areas"
|
32 |
+
],
|
33 |
+
"design_principles": {
|
34 |
+
"primary_principles": [
|
35 |
+
"contrast",
|
36 |
+
"hierarchy",
|
37 |
+
"balance",
|
38 |
+
"framing"
|
39 |
+
],
|
40 |
+
"visual_techniques": [
|
41 |
+
"natural framing",
|
42 |
+
"color blocking",
|
43 |
+
"typographic contrast"
|
44 |
+
]
|
45 |
+
}
|
46 |
}
|
src/data/designs/006/screenshot_desktop.png
DELETED
Git LFS Details
|
src/data/designs/006/screenshot_mobile.png
DELETED
Git LFS Details
|
src/data/designs/006/style.css
DELETED
@@ -1,198 +0,0 @@
|
|
1 |
-
/* css Zen Garden submission 006 - 'Wicked Grove' by D. Keith Robinson, http://www.7nights.com/asterisk/ */
|
2 |
-
/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
|
3 |
-
/* All associated graphics copyright 2003, D. Keith Robinson */
|
4 |
-
|
5 |
-
|
6 |
-
/* IMPORTANT */
|
7 |
-
/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
|
8 |
-
/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
|
9 |
-
/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
|
10 |
-
|
11 |
-
|
12 |
-
/* basic elements */
|
13 |
-
body {
|
14 |
-
font: 10pt/14pt "Trebuchet MS", sans-serif;
|
15 |
-
color: #000033;
|
16 |
-
background: #69f;
|
17 |
-
margin: 0px;
|
18 |
-
}
|
19 |
-
p {
|
20 |
-
font: 10pt/16pt "Trebuchet MS", sans-serif;
|
21 |
-
margin-top: 0px;
|
22 |
-
text-align: justify;
|
23 |
-
}
|
24 |
-
h3 {
|
25 |
-
font: bold normal 12pt "Trebuchet MS", sans-serif;
|
26 |
-
letter-spacing: 3px;
|
27 |
-
margin-bottom: 2px;
|
28 |
-
color: #333333;
|
29 |
-
text-align: left;
|
30 |
-
}
|
31 |
-
a:link {
|
32 |
-
font-weight: bold;
|
33 |
-
text-decoration: none;
|
34 |
-
color: #FF6600;
|
35 |
-
}
|
36 |
-
a:visited {
|
37 |
-
font-weight: bold;
|
38 |
-
text-decoration: none;
|
39 |
-
color: #CC0000;
|
40 |
-
}
|
41 |
-
a:hover, a:active {
|
42 |
-
text-decoration: underline;
|
43 |
-
color: #FF6600;
|
44 |
-
}
|
45 |
-
|
46 |
-
|
47 |
-
/* specific divs */
|
48 |
-
.page-wrapper {
|
49 |
-
background: #9cf url(trees.jpg) no-repeat left top;
|
50 |
-
padding: 200px 0px 0px 0px;
|
51 |
-
margin: 0px auto;
|
52 |
-
width:800px;
|
53 |
-
border-left: 2px dashed #fff;
|
54 |
-
border-right: 2px dashed #fff;
|
55 |
-
}
|
56 |
-
|
57 |
-
header {
|
58 |
-
margin-bottom: 10px;
|
59 |
-
}
|
60 |
-
|
61 |
-
/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
|
62 |
-
header h1 {
|
63 |
-
background: transparent;
|
64 |
-
margin-top: -180px;
|
65 |
-
width: 500px;
|
66 |
-
height: 87px;
|
67 |
-
float: left;
|
68 |
-
color:#fff;
|
69 |
-
|
70 |
-
text-indent: 100%;
|
71 |
-
white-space: nowrap;
|
72 |
-
overflow: hidden;
|
73 |
-
}
|
74 |
-
header h2 {
|
75 |
-
background: transparent url(tag.gif) no-repeat top left;
|
76 |
-
width: 300px;
|
77 |
-
margin-top:-60px;
|
78 |
-
margin-left:-190px;
|
79 |
-
height: 100px;
|
80 |
-
float: right;
|
81 |
-
|
82 |
-
text-indent: 100%;
|
83 |
-
white-space: nowrap;
|
84 |
-
overflow: hidden;
|
85 |
-
}
|
86 |
-
|
87 |
-
.summary {
|
88 |
-
width: 130px;
|
89 |
-
float: left;
|
90 |
-
padding:5px;
|
91 |
-
margin-right:15px;
|
92 |
-
background:#0099FF;
|
93 |
-
|
94 |
-
}
|
95 |
-
.summary p {
|
96 |
-
font: bold 8pt/12pt verdana, sans-serif;
|
97 |
-
text-align:right;
|
98 |
-
color:#fff;
|
99 |
-
}
|
100 |
-
|
101 |
-
.summary a:link {
|
102 |
-
font-weight: bold;
|
103 |
-
text-decoration: none;
|
104 |
-
color: #003;
|
105 |
-
}
|
106 |
-
.summary a:visited {
|
107 |
-
font-weight: bold;
|
108 |
-
text-decoration: none;
|
109 |
-
color: #006;
|
110 |
-
}
|
111 |
-
.summary a:hover, .summary a:active {
|
112 |
-
text-decoration: underline;
|
113 |
-
color: #FF6600;
|
114 |
-
}
|
115 |
-
|
116 |
-
.preamble, #supporting text, .explanation, .participation, .benefits, .requirements {
|
117 |
-
padding: 0px 170px 0px 30px;
|
118 |
-
}
|
119 |
-
|
120 |
-
footer {
|
121 |
-
text-align: center;
|
122 |
-
}
|
123 |
-
footer a:link, footer a:visited {
|
124 |
-
margin-right: 20px;
|
125 |
-
}
|
126 |
-
|
127 |
-
.sidebar {
|
128 |
-
background: transparent url(menu.gif) top left no-repeat;
|
129 |
-
position: absolute;
|
130 |
-
top: 0px;
|
131 |
-
padding: 15px;
|
132 |
-
margin-top: 200px;
|
133 |
-
margin-left: 650px;
|
134 |
-
width: 130px;
|
135 |
-
}
|
136 |
-
|
137 |
-
.sidebar .wrapper {
|
138 |
-
font: 10px verdana, sans-serif;
|
139 |
-
padding-top:35px;
|
140 |
-
}
|
141 |
-
.sidebar h3.select {
|
142 |
-
background: transparent url(select.gif) top left no-repeat;
|
143 |
-
width: 130px;
|
144 |
-
height: 25px;
|
145 |
-
margin-left:-8px;
|
146 |
-
|
147 |
-
text-indent: 100%;
|
148 |
-
white-space: nowrap;
|
149 |
-
overflow: hidden;
|
150 |
-
}
|
151 |
-
.sidebar h3.archives {
|
152 |
-
background: transparent url(archives.gif) top left no-repeat;
|
153 |
-
width: 130px;
|
154 |
-
height: 25px;
|
155 |
-
margin-left:-8px;
|
156 |
-
|
157 |
-
text-indent: 100%;
|
158 |
-
white-space: nowrap;
|
159 |
-
overflow: hidden;
|
160 |
-
}
|
161 |
-
.sidebar h3.resources {
|
162 |
-
background: transparent url(resources.gif) top left no-repeat;
|
163 |
-
width: 130px;
|
164 |
-
height: 25px;
|
165 |
-
margin-left:-8px;
|
166 |
-
|
167 |
-
text-indent: 100%;
|
168 |
-
white-space: nowrap;
|
169 |
-
overflow: hidden;
|
170 |
-
}
|
171 |
-
|
172 |
-
.sidebar ul {
|
173 |
-
margin: 0px;
|
174 |
-
padding: 0px;
|
175 |
-
}
|
176 |
-
.sidebar li {
|
177 |
-
line-height: 2.5ex;
|
178 |
-
background: transparent;
|
179 |
-
display: block;
|
180 |
-
padding-top: 5px;
|
181 |
-
margin-bottom: 5px;
|
182 |
-
list-style-type: none;
|
183 |
-
}
|
184 |
-
.sidebar li a:link {
|
185 |
-
color: #FF3300;
|
186 |
-
}
|
187 |
-
.sidebar li a:visited {
|
188 |
-
color: #FF0000;
|
189 |
-
}
|
190 |
-
|
191 |
-
.extra1 {
|
192 |
-
background: transparent;
|
193 |
-
position: absolute;
|
194 |
-
top: 40px;
|
195 |
-
right: 0px;
|
196 |
-
width: 148px;
|
197 |
-
height: 110px;
|
198 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/data/designs/007/metadata.json
CHANGED
@@ -2,19 +2,45 @@
|
|
2 |
"id": "007",
|
3 |
"url": "https://www.csszengarden.com/007",
|
4 |
"css_url": "https://www.csszengarden.com/007/007.css",
|
5 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
"categories": [
|
7 |
-
"
|
8 |
-
"
|
9 |
-
"
|
10 |
-
"
|
11 |
-
"
|
|
|
12 |
],
|
13 |
"visual_characteristics": [
|
14 |
-
"
|
15 |
-
"
|
16 |
-
"
|
17 |
-
"
|
18 |
-
"
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
|
|
2 |
"id": "007",
|
3 |
"url": "https://www.csszengarden.com/007",
|
4 |
"css_url": "https://www.csszengarden.com/007/007.css",
|
5 |
+
"title": "deep thought",
|
6 |
+
"author": "Jason Estes",
|
7 |
+
"description": {
|
8 |
+
"summary": "A minimalist, elegant web design that combines Eastern aesthetic influences with a monochromatic color scheme, creating a serene digital space that emphasizes typographic hierarchy and thoughtful negative space.",
|
9 |
+
"visual_style": "The design employs a Zen-inspired aesthetic with calligraphic headings, strategic placement of red accent elements, and a grayscale background featuring subtle water imagery that creates depth and tranquility.",
|
10 |
+
"emotional_impact": "The composition evokes a sense of calm contemplation through its balanced structure, measured spacing, and contrast between dark background and light typography.",
|
11 |
+
"compositional_elements": "Vertical navigation strips frame the content, while decorative Asian-inspired red emblems serve as visual anchors, creating rhythm across the structured layout."
|
12 |
+
},
|
13 |
+
"artistic_context": {
|
14 |
+
"style_influences": "Japanese minimalism, calligraphic traditions, monastic simplicity",
|
15 |
+
"visual_metaphors": "Water ripples as transformation, stone path as journey, emptiness as potential"
|
16 |
+
},
|
17 |
"categories": [
|
18 |
+
"minimalist",
|
19 |
+
"eastern-inspired",
|
20 |
+
"monochromatic",
|
21 |
+
"typographic",
|
22 |
+
"structured",
|
23 |
+
"contemplative"
|
24 |
],
|
25 |
"visual_characteristics": [
|
26 |
+
"vertical-alignment",
|
27 |
+
"high-contrast",
|
28 |
+
"red-accents",
|
29 |
+
"water-imagery",
|
30 |
+
"calligraphic-headings",
|
31 |
+
"grid-based"
|
32 |
+
],
|
33 |
+
"design_principles": {
|
34 |
+
"primary_principles": [
|
35 |
+
"balance",
|
36 |
+
"contrast",
|
37 |
+
"rhythm",
|
38 |
+
"hierarchy"
|
39 |
+
],
|
40 |
+
"visual_techniques": [
|
41 |
+
"negative space",
|
42 |
+
"tonal contrast",
|
43 |
+
"symbolic accents"
|
44 |
+
]
|
45 |
+
}
|
46 |
}
|
src/data/designs/007/screenshot_desktop.png
DELETED
Git LFS Details
|
src/data/designs/007/screenshot_mobile.png
DELETED
Git LFS Details
|
src/data/designs/007/style.css
DELETED
@@ -1,276 +0,0 @@
|
|
1 |
-
/* css Zen Garden submission 007 - 'deep thought' by Jason Estes, http://www.bewb.org/ */
|
2 |
-
/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
|
3 |
-
/* All associated graphics copyright 2003, Jason Estes */
|
4 |
-
|
5 |
-
|
6 |
-
/* IMPORTANT */
|
7 |
-
/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
|
8 |
-
/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
|
9 |
-
/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
|
10 |
-
|
11 |
-
|
12 |
-
/* basic elements */
|
13 |
-
body#css-zen-garden {
|
14 |
-
background-color:#424242;
|
15 |
-
font-size:75%;
|
16 |
-
font-family:arial, verdana, sans-serif;
|
17 |
-
margin:0;
|
18 |
-
padding:0;
|
19 |
-
color:#fff;
|
20 |
-
background-image:url(background.jpg);
|
21 |
-
background-repeat:no-repeat;
|
22 |
-
background-position:150px 50px;
|
23 |
-
}
|
24 |
-
|
25 |
-
a:link {
|
26 |
-
color:#FF9638;
|
27 |
-
background-color:transparent;
|
28 |
-
}
|
29 |
-
a:visited {
|
30 |
-
color:#FF9638;
|
31 |
-
background-color:transparent;
|
32 |
-
}
|
33 |
-
a:hover, a:active {
|
34 |
-
color:#FF9638;
|
35 |
-
background-color:transparent;
|
36 |
-
}
|
37 |
-
/* specific divs */
|
38 |
-
|
39 |
-
|
40 |
-
/* using an image to replace text in an h1. This trick courtesy Douglas Bowman, http://www.stopdesign.com/articles/css/replace-text/ */
|
41 |
-
header h1 {
|
42 |
-
margin:10px 15px;
|
43 |
-
background-image:url(logo.gif);
|
44 |
-
height:83px;
|
45 |
-
background-color:transparent;
|
46 |
-
width:480px;
|
47 |
-
background-repeat:no-repeat;
|
48 |
-
background-position:top right;
|
49 |
-
color:#000;
|
50 |
-
|
51 |
-
text-indent: 100%;
|
52 |
-
white-space: nowrap;
|
53 |
-
overflow: hidden;
|
54 |
-
}
|
55 |
-
header h2 {
|
56 |
-
display:none;
|
57 |
-
|
58 |
-
text-indent: 100%;
|
59 |
-
white-space: nowrap;
|
60 |
-
overflow: hidden;
|
61 |
-
}
|
62 |
-
.summary {
|
63 |
-
display:block;
|
64 |
-
}
|
65 |
-
.summary p:first-child {
|
66 |
-
display:none;
|
67 |
-
}
|
68 |
-
.summary p:last-child {
|
69 |
-
position:absolute;
|
70 |
-
top:0px;
|
71 |
-
left:300px;
|
72 |
-
padding:0;margin:0;
|
73 |
-
}
|
74 |
-
.preamble {
|
75 |
-
border-top:1px solid #fff;
|
76 |
-
background-image:url(halfscreen-gray.gif);
|
77 |
-
width:250px;
|
78 |
-
margin-left:30px;
|
79 |
-
position:absolute;
|
80 |
-
top:18px;
|
81 |
-
right:10px;
|
82 |
-
}
|
83 |
-
.preamble p{
|
84 |
-
margin:10px;
|
85 |
-
}
|
86 |
-
.preamble h3{
|
87 |
-
font-style:oblique;
|
88 |
-
margin:10px;
|
89 |
-
}
|
90 |
-
.supporting {
|
91 |
-
margin:350px auto 0 auto;
|
92 |
-
width:90%;
|
93 |
-
}
|
94 |
-
.supporting div {
|
95 |
-
/*background-image:url(halfscreen-gray.gif);*/
|
96 |
-
border-top:1px solid #fff;
|
97 |
-
clear:both;
|
98 |
-
}
|
99 |
-
|
100 |
-
.supporting p {
|
101 |
-
padding:5px 10px;
|
102 |
-
line-height:150%;
|
103 |
-
}
|
104 |
-
.explanation h3{
|
105 |
-
float:left;
|
106 |
-
background-image:url(about.gif);
|
107 |
-
width:46px;
|
108 |
-
height:234px;
|
109 |
-
padding:0;
|
110 |
-
margin:0 10px 0px 0px;
|
111 |
-
border-right:1px solid white;
|
112 |
-
|
113 |
-
text-indent: 100%;
|
114 |
-
white-space: nowrap;
|
115 |
-
overflow: hidden;
|
116 |
-
}
|
117 |
-
.explanation p{
|
118 |
-
margin:0px 0px 0px 43px;
|
119 |
-
}
|
120 |
-
.supporting div.explanation {
|
121 |
-
margin:20px 10px 0 200px;
|
122 |
-
background:url(about_background.gif) no-repeat 100% 100%;
|
123 |
-
min-height:234px;
|
124 |
-
height:234px;
|
125 |
-
clear:none;
|
126 |
-
}
|
127 |
-
.supporting .explanation[id] {
|
128 |
-
height:auto;
|
129 |
-
}
|
130 |
-
.participation h3{
|
131 |
-
float:right;
|
132 |
-
background-image:url(participation.gif);
|
133 |
-
width:46px;
|
134 |
-
height:234px;
|
135 |
-
padding:0;
|
136 |
-
margin:0 0px 0px 10px;
|
137 |
-
border-left:1px solid white;
|
138 |
-
|
139 |
-
text-indent: 100%;
|
140 |
-
white-space: nowrap;
|
141 |
-
overflow: hidden;
|
142 |
-
}
|
143 |
-
.supporting .participation {
|
144 |
-
margin:20px 200px 0 10px;
|
145 |
-
min-height:234px;
|
146 |
-
height:234px;
|
147 |
-
background:url(participation_back.gif) no-repeat 0 100%;
|
148 |
-
}
|
149 |
-
.participation p{
|
150 |
-
margin:0px 43px 0px 0px;
|
151 |
-
}
|
152 |
-
.supporting .participation[id] {
|
153 |
-
height:auto;
|
154 |
-
}
|
155 |
-
.benefits h3{
|
156 |
-
float:left;
|
157 |
-
background-image:url(benefits.gif);
|
158 |
-
width:46px;
|
159 |
-
height:133px;
|
160 |
-
padding:0;
|
161 |
-
margin:0 10px 0px 0px;
|
162 |
-
border-right:1px solid white;
|
163 |
-
|
164 |
-
text-indent: 100%;
|
165 |
-
white-space: nowrap;
|
166 |
-
overflow: hidden;
|
167 |
-
}
|
168 |
-
.benefits p{
|
169 |
-
margin:0px 0px 0px 43px;
|
170 |
-
}
|
171 |
-
.supporting .benefits {
|
172 |
-
margin:20px 10px 0 200px;
|
173 |
-
min-height:133px;
|
174 |
-
height:133px;
|
175 |
-
background:url(benefits_back.gif) no-repeat 100% 100%;
|
176 |
-
}
|
177 |
-
.supporting .benefits[id] {
|
178 |
-
height:auto;
|
179 |
-
}
|
180 |
-
.requirements h3{
|
181 |
-
float:right;
|
182 |
-
background-image:url(Requirements.gif);
|
183 |
-
width:46px;
|
184 |
-
height:234px;
|
185 |
-
padding:0;
|
186 |
-
margin:0 0px 0px 10px;
|
187 |
-
border-left:1px solid white;
|
188 |
-
|
189 |
-
text-indent: 100%;
|
190 |
-
white-space: nowrap;
|
191 |
-
overflow: hidden;
|
192 |
-
}
|
193 |
-
.requirements p{
|
194 |
-
margin:0px 43px 0px 0px;
|
195 |
-
}
|
196 |
-
.supporting .requirements {
|
197 |
-
margin:20px 200px 30px 10px;
|
198 |
-
min-height:234px;
|
199 |
-
height:234px ;
|
200 |
-
background:url(requirements_back.gif) no-repeat 0 100%;
|
201 |
-
}
|
202 |
-
.supporting .requirements[id] {
|
203 |
-
height:auto;
|
204 |
-
}
|
205 |
-
.supporting footer {
|
206 |
-
text-align:center;
|
207 |
-
padding-top:3px;
|
208 |
-
}
|
209 |
-
footer a:link, footer a:visited {
|
210 |
-
font-weight:bold;
|
211 |
-
text-decoration:none;
|
212 |
-
}
|
213 |
-
.sidebar {
|
214 |
-
position:absolute;
|
215 |
-
top:98px;
|
216 |
-
left:30px;
|
217 |
-
width:198px;
|
218 |
-
}
|
219 |
-
|
220 |
-
.sidebar h3.select {
|
221 |
-
height:53px;
|
222 |
-
background-image:url(select.gif);
|
223 |
-
margin:0px;
|
224 |
-
padding:0px;
|
225 |
-
|
226 |
-
text-indent: 100%;
|
227 |
-
white-space: nowrap;
|
228 |
-
overflow: hidden;
|
229 |
-
}
|
230 |
-
.sidebar h3.archives {
|
231 |
-
height:53px;
|
232 |
-
background-image:url(archives.gif);
|
233 |
-
margin:0px;
|
234 |
-
padding:0px;
|
235 |
-
|
236 |
-
text-indent: 100%;
|
237 |
-
white-space: nowrap;
|
238 |
-
overflow: hidden;
|
239 |
-
}
|
240 |
-
.sidebar h3.resources {
|
241 |
-
height:53px;
|
242 |
-
background-image:url(resources.gif);
|
243 |
-
margin:0px;
|
244 |
-
padding:0px;
|
245 |
-
|
246 |
-
text-indent: 100%;
|
247 |
-
white-space: nowrap;
|
248 |
-
overflow: hidden;
|
249 |
-
}
|
250 |
-
|
251 |
-
|
252 |
-
.sidebar ul {
|
253 |
-
margin: 0px;
|
254 |
-
padding: 0px;
|
255 |
-
}
|
256 |
-
.sidebar li {
|
257 |
-
display:block;
|
258 |
-
background-image:url(halfscreen-gray.gif);
|
259 |
-
padding:3px;
|
260 |
-
margin:1px 0;
|
261 |
-
list-style-type: none;
|
262 |
-
}
|
263 |
-
.sidebar li a:link, .sidebar li a:visited {
|
264 |
-
color:#fff;
|
265 |
-
background-color:transparent;
|
266 |
-
}
|
267 |
-
|
268 |
-
.extra1 {
|
269 |
-
clear:both;
|
270 |
-
}
|
271 |
-
abbr {
|
272 |
-
color:#FF9638;
|
273 |
-
background-color:transparent;
|
274 |
-
border:0;
|
275 |
-
cursor:help;
|
276 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/data/designs/008/metadata.json
CHANGED
@@ -2,19 +2,45 @@
|
|
2 |
"id": "008",
|
3 |
"url": "https://www.csszengarden.com/008",
|
4 |
"css_url": "https://www.csszengarden.com/008/008.css",
|
5 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
"categories": [
|
7 |
-
"
|
8 |
-
"
|
9 |
-
"
|
10 |
-
"
|
11 |
-
"
|
|
|
12 |
],
|
13 |
"visual_characteristics": [
|
14 |
-
"vibrant
|
15 |
-
"
|
16 |
-
"
|
17 |
-
"
|
18 |
-
"
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
|
|
2 |
"id": "008",
|
3 |
"url": "https://www.csszengarden.com/008",
|
4 |
"css_url": "https://www.csszengarden.com/008/008.css",
|
5 |
+
"title": "RPM",
|
6 |
+
"author": "Bruno Cunha",
|
7 |
+
"description": {
|
8 |
+
"summary": "A bold, high-contrast web design featuring dynamic abstract imagery integrated with structured content blocks. The composition juxtaposes organic, flowing visual elements against rigid information architecture.",
|
9 |
+
"visual_style": "The design employs a striking industrial-digital aesthetic with abstract metallic forms and geometric patterns set against a vivid red background, creating a sense of technological energy.",
|
10 |
+
"emotional_impact": "The intense red palette and sharp angular elements evoke excitement, passion, and creative energy, suggesting innovation and avant-garde sensibilities.",
|
11 |
+
"compositional_elements": "A dramatic header with fractured metallic/glass-like objects occupies the upper portion, while structured content blocks below create an organized grid system that contrasts with the fluid header imagery."
|
12 |
+
},
|
13 |
+
"artistic_context": {
|
14 |
+
"style_influences": "Digital abstract art, techno-industrial design, Y2K-era web aesthetics, deconstructivist typography",
|
15 |
+
"visual_metaphors": "Shattering barriers, digital transformation, creative explosion, structured freedom"
|
16 |
+
},
|
17 |
"categories": [
|
18 |
+
"dynamic",
|
19 |
+
"industrial",
|
20 |
+
"high-contrast",
|
21 |
+
"grid-based",
|
22 |
+
"technical",
|
23 |
+
"avant-garde"
|
24 |
],
|
25 |
"visual_characteristics": [
|
26 |
+
"vibrant-red",
|
27 |
+
"metallic-textures",
|
28 |
+
"angular-forms",
|
29 |
+
"fractured-imagery",
|
30 |
+
"hierarchical-layout",
|
31 |
+
"boxed-content"
|
32 |
+
],
|
33 |
+
"design_principles": {
|
34 |
+
"primary_principles": [
|
35 |
+
"contrast",
|
36 |
+
"hierarchy",
|
37 |
+
"rhythm",
|
38 |
+
"emphasis"
|
39 |
+
],
|
40 |
+
"visual_techniques": [
|
41 |
+
"layering",
|
42 |
+
"color blocking",
|
43 |
+
"geometric abstraction"
|
44 |
+
]
|
45 |
+
}
|
46 |
}
|
src/data/designs/008/screenshot_desktop.png
DELETED
Git LFS Details
|
src/data/designs/008/screenshot_mobile.png
DELETED
Git LFS Details
|
src/data/designs/008/style.css
DELETED
@@ -1,113 +0,0 @@
|
|
1 |
-
/* css Zen Garden submission 008 - 'RPM' by Bruno Cunha, http://www.kaosboy.net/ */
|
2 |
-
/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
|
3 |
-
/* Main image from http://www.karborn.com/FinalV6Old/Series/RPM/RPMImages.htm */
|
4 |
-
|
5 |
-
|
6 |
-
/* IMPORTANT */
|
7 |
-
/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
|
8 |
-
/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
|
9 |
-
/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
|
10 |
-
|
11 |
-
|
12 |
-
body {
|
13 |
-
background-image:url(bg.jpg);
|
14 |
-
background-color:#fff;
|
15 |
-
font-family:arial, sans serif;
|
16 |
-
font-size:11px;
|
17 |
-
line-height:15px;
|
18 |
-
color:#fff;
|
19 |
-
margin:0px;
|
20 |
-
}
|
21 |
-
|
22 |
-
.page-wrapper {
|
23 |
-
margin-left:0px;
|
24 |
-
margin-top:0px;
|
25 |
-
padding:0px;
|
26 |
-
width:684px;
|
27 |
-
z-index:1;
|
28 |
-
}
|
29 |
-
|
30 |
-
.intro {
|
31 |
-
width:275px;
|
32 |
-
position:absolute;
|
33 |
-
left:88px;
|
34 |
-
top:902px;
|
35 |
-
z-index:2;
|
36 |
-
}
|
37 |
-
|
38 |
-
.supporting {
|
39 |
-
width:450px;
|
40 |
-
position:absolute;
|
41 |
-
left:411px;
|
42 |
-
top:535px;
|
43 |
-
z-index:2;
|
44 |
-
}
|
45 |
-
.explanation, .participation, .requirements, .benefits, footer, .summary, .preamble, .design-selection, #lfavorites, .zen-resources, .design-archives {
|
46 |
-
padding:7px;
|
47 |
-
margin:5px;
|
48 |
-
border-left:1px solid #aaa;
|
49 |
-
border-top:1px solid #aaa;
|
50 |
-
border-right:1px solid #333;
|
51 |
-
border-bottom:1px solid #333;
|
52 |
-
background-image:url(transparent.gif);
|
53 |
-
}
|
54 |
-
|
55 |
-
.sidebar .wrapper {
|
56 |
-
width:275px;
|
57 |
-
position:absolute;
|
58 |
-
left:88px;
|
59 |
-
top:1244px;
|
60 |
-
z-index:2;
|
61 |
-
}
|
62 |
-
|
63 |
-
.extra1 {
|
64 |
-
background-image:url(tunami2.jpg);
|
65 |
-
position:absolute;
|
66 |
-
left:0px;
|
67 |
-
top:0px;
|
68 |
-
width:684px;
|
69 |
-
height:1515px;
|
70 |
-
z-index:1;
|
71 |
-
}
|
72 |
-
header {
|
73 |
-
display:none;
|
74 |
-
}
|
75 |
-
h3 {
|
76 |
-
font-family:arial, sans serif;
|
77 |
-
color:#fff;
|
78 |
-
font-size:11px;
|
79 |
-
font-weight:bold;
|
80 |
-
margin-top:3px;
|
81 |
-
margin-bottom:0px;
|
82 |
-
}
|
83 |
-
p {
|
84 |
-
margin:6px;
|
85 |
-
}
|
86 |
-
|
87 |
-
a {
|
88 |
-
color:#e2e2e2;
|
89 |
-
text-decoration:underline;
|
90 |
-
}
|
91 |
-
a:link {
|
92 |
-
color:#e2e2e2;
|
93 |
-
text-decoration:underline;
|
94 |
-
}
|
95 |
-
a:hover {
|
96 |
-
color:#fff;
|
97 |
-
font-weight:bold;
|
98 |
-
text-decoration:underline;
|
99 |
-
}
|
100 |
-
a:visited {
|
101 |
-
color:#e2e2e2;
|
102 |
-
text-decoration:underline;
|
103 |
-
}
|
104 |
-
|
105 |
-
|
106 |
-
margin: 0px;
|
107 |
-
padding: 0px;
|
108 |
-
}
|
109 |
-
|
110 |
-
.sidebar li {
|
111 |
-
list-style-type: none;
|
112 |
-
display: inline;
|
113 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/data/designs/009/metadata.json
CHANGED
@@ -2,19 +2,45 @@
|
|
2 |
"id": "009",
|
3 |
"url": "https://www.csszengarden.com/009",
|
4 |
"css_url": "https://www.csszengarden.com/009/009.css",
|
5 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
"categories": [
|
7 |
-
"
|
8 |
-
"
|
9 |
-
"
|
10 |
-
"
|
11 |
-
"
|
|
|
12 |
],
|
13 |
"visual_characteristics": [
|
14 |
-
"
|
15 |
-
"
|
16 |
-
"
|
17 |
-
"
|
18 |
-
"
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
|
|
2 |
"id": "009",
|
3 |
"url": "https://www.csszengarden.com/009",
|
4 |
"css_url": "https://www.csszengarden.com/009/009.css",
|
5 |
+
"title": "Dead or Alive",
|
6 |
+
"author": "Michael Pick",
|
7 |
+
"description": {
|
8 |
+
"summary": "A meticulously structured webpage design that combines elegant minimalism with traditional Eastern aesthetic influences, creating a harmonious balance between ornamental elements and functional typography.",
|
9 |
+
"visual_style": "The design employs a clean, structured layout with decorative borders framing a predominantly black and white content area, creating a sense of classical formality with subtle Eastern-inspired embellishments.",
|
10 |
+
"emotional_impact": "The visual elements evoke a sense of tranquility and contemplative focus, reinforced by the balanced composition and thoughtful spacing between content sections.",
|
11 |
+
"compositional_elements": "A symmetrical layout with a distinct header featuring an emblematic logo, bordered by decorative patterns, and organized content sections separated by horizontal dividers and consistent typographic treatments."
|
12 |
+
},
|
13 |
+
"artistic_context": {
|
14 |
+
"style_influences": "Japanese woodblock printing, Art Deco ornamentation, classical manuscript design, Eastern calligraphic traditions",
|
15 |
+
"visual_metaphors": "Zen garden structure, path of enlightenment, architectural blueprint, sacred scroll"
|
16 |
+
},
|
17 |
"categories": [
|
18 |
+
"minimalist",
|
19 |
+
"traditional",
|
20 |
+
"typographic",
|
21 |
+
"structured",
|
22 |
+
"ornamental",
|
23 |
+
"monochromatic"
|
24 |
],
|
25 |
"visual_characteristics": [
|
26 |
+
"decorative borders",
|
27 |
+
"centered typography",
|
28 |
+
"high contrast",
|
29 |
+
"geometric patterns",
|
30 |
+
"horizontal dividers",
|
31 |
+
"hierarchical spacing"
|
32 |
+
],
|
33 |
+
"design_principles": {
|
34 |
+
"primary_principles": [
|
35 |
+
"balance",
|
36 |
+
"hierarchy",
|
37 |
+
"rhythm",
|
38 |
+
"contrast"
|
39 |
+
],
|
40 |
+
"visual_techniques": [
|
41 |
+
"framing",
|
42 |
+
"typographic scale",
|
43 |
+
"negative space"
|
44 |
+
]
|
45 |
+
}
|
46 |
}
|
src/data/designs/009/screenshot_desktop.png
DELETED
Git LFS Details
|
src/data/designs/009/screenshot_mobile.png
DELETED
Git LFS Details
|
src/data/designs/009/style.css
DELETED
@@ -1,318 +0,0 @@
|
|
1 |
-
/* css Zen Garden submission 009 - 'Dead or Alive' by Michael Pick, http://www.mikepick.com/ */
|
2 |
-
/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
|
3 |
-
/* All associated graphics copyright 2003, Michael Pick */
|
4 |
-
|
5 |
-
|
6 |
-
/* IMPORTANT */
|
7 |
-
/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
|
8 |
-
/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
|
9 |
-
/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
|
10 |
-
|
11 |
-
|
12 |
-
/* basic elements */
|
13 |
-
body {
|
14 |
-
color: #000;
|
15 |
-
background: #fff url(body-bg.png);
|
16 |
-
margin: 0px auto;
|
17 |
-
}
|
18 |
-
|
19 |
-
p {
|
20 |
-
font: 12px/15px georgia, serif;
|
21 |
-
text-align: justify;
|
22 |
-
margin-top: 0;
|
23 |
-
}
|
24 |
-
|
25 |
-
a:link {
|
26 |
-
font-weight: bold;
|
27 |
-
text-decoration: none;
|
28 |
-
color: #000;
|
29 |
-
}
|
30 |
-
|
31 |
-
a:visited {
|
32 |
-
font-weight: bold;
|
33 |
-
text-decoration: none;
|
34 |
-
color: #333;
|
35 |
-
}
|
36 |
-
|
37 |
-
a:hover, a:active {
|
38 |
-
text-decoration: underline;
|
39 |
-
}
|
40 |
-
|
41 |
-
/* specific divs */
|
42 |
-
|
43 |
-
.page-wrapper {
|
44 |
-
background: url(frill-bg.png) repeat-x;
|
45 |
-
border-right: 1px solid #333;
|
46 |
-
width: 800px;
|
47 |
-
margin: 0px;
|
48 |
-
}
|
49 |
-
|
50 |
-
.intro {
|
51 |
-
min-width: 470px;
|
52 |
-
}
|
53 |
-
|
54 |
-
header {
|
55 |
-
width: 280px;
|
56 |
-
float: left;
|
57 |
-
margin-top: 40px;
|
58 |
-
}
|
59 |
-
|
60 |
-
h1 {
|
61 |
-
background: transparent url(pageheader-bg.png) no-repeat;
|
62 |
-
margin-left: 40px;
|
63 |
-
width: 240px;
|
64 |
-
height: 220px;
|
65 |
-
|
66 |
-
text-indent: 100%;
|
67 |
-
white-space: nowrap;
|
68 |
-
overflow: hidden;
|
69 |
-
}
|
70 |
-
|
71 |
-
h2 {
|
72 |
-
display: none;
|
73 |
-
}
|
74 |
-
|
75 |
-
.summary {
|
76 |
-
clear:both;
|
77 |
-
width: 280px;
|
78 |
-
float: left;
|
79 |
-
margin-bottom: 20px;
|
80 |
-
}
|
81 |
-
|
82 |
-
.summary p {
|
83 |
-
font-family: georgia, times, serif;
|
84 |
-
font-size: 10px;
|
85 |
-
text-transform: uppercase;
|
86 |
-
text-align:center;
|
87 |
-
padding-left: 60px;
|
88 |
-
padding-right: 20px;
|
89 |
-
}
|
90 |
-
|
91 |
-
.preamble {
|
92 |
-
margin-left: 280px;
|
93 |
-
width: 460px;
|
94 |
-
padding-top: 90px;
|
95 |
-
}
|
96 |
-
|
97 |
-
.preamble h3 {
|
98 |
-
background: transparent url(preamble.png) no-repeat;
|
99 |
-
width: 460px;
|
100 |
-
height: 70px;
|
101 |
-
|
102 |
-
text-indent: 100%;
|
103 |
-
white-space: nowrap;
|
104 |
-
overflow: hidden;
|
105 |
-
}
|
106 |
-
|
107 |
-
.preamble a:link {
|
108 |
-
color: #600;
|
109 |
-
}
|
110 |
-
|
111 |
-
.preamble p {
|
112 |
-
line-height: 150%;
|
113 |
-
}
|
114 |
-
|
115 |
-
.supporting {
|
116 |
-
margin-left: 0px;
|
117 |
-
}
|
118 |
-
|
119 |
-
.supporting a:link {
|
120 |
-
color: #600;
|
121 |
-
}
|
122 |
-
|
123 |
-
.explanation {
|
124 |
-
margin-left: 280px;
|
125 |
-
width: 460px;
|
126 |
-
}
|
127 |
-
|
128 |
-
.explanation h3 {
|
129 |
-
background: transparent url(sowhat.png) no-repeat;
|
130 |
-
width: 460px;
|
131 |
-
height: 50px;
|
132 |
-
margin-bottom: 20px;
|
133 |
-
|
134 |
-
text-indent: 100%;
|
135 |
-
white-space: nowrap;
|
136 |
-
overflow: hidden;
|
137 |
-
}
|
138 |
-
|
139 |
-
.explanation p {
|
140 |
-
line-height: 150%;
|
141 |
-
}
|
142 |
-
|
143 |
-
.participation {
|
144 |
-
width: 460px;
|
145 |
-
}
|
146 |
-
|
147 |
-
.participation h3 {
|
148 |
-
background: transparent url(participation.png) no-repeat;
|
149 |
-
width: 460px;
|
150 |
-
height: 50px;
|
151 |
-
margin-bottom: 20px;
|
152 |
-
|
153 |
-
text-indent: 100%;
|
154 |
-
white-space: nowrap;
|
155 |
-
overflow: hidden;
|
156 |
-
}
|
157 |
-
|
158 |
-
.participation p {
|
159 |
-
line-height: 150%;
|
160 |
-
}
|
161 |
-
|
162 |
-
.benefits {
|
163 |
-
width: 460px;
|
164 |
-
}
|
165 |
-
|
166 |
-
.benefits h3 {
|
167 |
-
background: transparent url(benefits.png) no-repeat;
|
168 |
-
width: 460px;
|
169 |
-
height: 50px;
|
170 |
-
margin-bottom: 20px;
|
171 |
-
|
172 |
-
text-indent: 100%;
|
173 |
-
white-space: nowrap;
|
174 |
-
overflow: hidden;
|
175 |
-
}
|
176 |
-
|
177 |
-
.benefits p {
|
178 |
-
line-height: 140%;
|
179 |
-
}
|
180 |
-
|
181 |
-
.requirements {
|
182 |
-
width: 460px;
|
183 |
-
}
|
184 |
-
|
185 |
-
.requirements h3 {
|
186 |
-
background: transparent url(requirements.png) no-repeat;
|
187 |
-
width: 460px;
|
188 |
-
height: 50px;
|
189 |
-
margin-bottom: 20px;
|
190 |
-
|
191 |
-
text-indent: 100%;
|
192 |
-
white-space: nowrap;
|
193 |
-
overflow: hidden;
|
194 |
-
}
|
195 |
-
|
196 |
-
.requirements p {
|
197 |
-
line-height: 140%;
|
198 |
-
}
|
199 |
-
|
200 |
-
footer {
|
201 |
-
margin-top: 40px;
|
202 |
-
background: transparent url(footer.png) repeat-x;
|
203 |
-
height: 58px;
|
204 |
-
width: 800px;
|
205 |
-
text-align: center;
|
206 |
-
margin-left: -280px;
|
207 |
-
}
|
208 |
-
|
209 |
-
.sidebar {
|
210 |
-
position: absolute;
|
211 |
-
top: 28em;
|
212 |
-
left: 40px;
|
213 |
-
width: 240px;
|
214 |
-
}
|
215 |
-
|
216 |
-
.sidebar .wrapper {
|
217 |
-
font: 10px georgia, times, serif;
|
218 |
-
text-transform: uppercase;
|
219 |
-
}
|
220 |
-
|
221 |
-
.sidebar h3.select {
|
222 |
-
background: transparent url(select.png) no-repeat top left;
|
223 |
-
margin: 10px 0px 5px 0px;
|
224 |
-
width: 240px;
|
225 |
-
height: 50px;
|
226 |
-
margin-bottom: 10px;
|
227 |
-
}
|
228 |
-
|
229 |
-
.design-selection {
|
230 |
-
padding-bottom: 20px;
|
231 |
-
}
|
232 |
-
|
233 |
-
.sidebar h3.select {
|
234 |
-
text-indent: 200%;
|
235 |
-
white-space: nowrap;
|
236 |
-
overflow: hidden;
|
237 |
-
}
|
238 |
-
|
239 |
-
.sidebar h3.archives {
|
240 |
-
background: transparent url(archives.png) no-repeat top left;
|
241 |
-
width: 240px;
|
242 |
-
height: 50px;
|
243 |
-
margin-bottom: 10px;
|
244 |
-
|
245 |
-
text-indent: 200%;
|
246 |
-
white-space: nowrap;
|
247 |
-
overflow: hidden;
|
248 |
-
}
|
249 |
-
|
250 |
-
.sidebar h3.resources {
|
251 |
-
background: transparent url(resources.png) no-repeat top left;
|
252 |
-
width: 250px;
|
253 |
-
height: 50px;
|
254 |
-
margin-bottom: 10px;
|
255 |
-
|
256 |
-
text-indent: 200%;
|
257 |
-
white-space: nowrap;
|
258 |
-
overflow: hidden;
|
259 |
-
}
|
260 |
-
|
261 |
-
|
262 |
-
.sidebar ul {
|
263 |
-
margin: 0px;
|
264 |
-
padding: 0px;
|
265 |
-
}
|
266 |
-
|
267 |
-
.sidebar li {
|
268 |
-
line-height: 2.5ex;
|
269 |
-
display: block;
|
270 |
-
text-align: center;
|
271 |
-
padding-top: 5px;
|
272 |
-
padding-left: 20px;
|
273 |
-
padding-right: 20px;
|
274 |
-
margin-bottom: 5px;
|
275 |
-
list-style-type: none;
|
276 |
-
}
|
277 |
-
|
278 |
-
.sidebar li a:link {
|
279 |
-
color: #000;
|
280 |
-
}
|
281 |
-
|
282 |
-
.sidebar li a:visited {
|
283 |
-
color: #333;
|
284 |
-
}
|
285 |
-
|
286 |
-
.extra1 {
|
287 |
-
background: transparent url(certified.png) top left no-repeat;
|
288 |
-
position: absolute;
|
289 |
-
top: 160px;
|
290 |
-
left: 0px;
|
291 |
-
width: 100px;
|
292 |
-
height: 110px;
|
293 |
-
z-index: 0;
|
294 |
-
}
|
295 |
-
|
296 |
-
/* hidden from IE 5 mac */
|
297 |
-
|
298 |
-
@media all {
|
299 |
-
.explanation {
|
300 |
-
margin-left: 280px;
|
301 |
-
}
|
302 |
-
|
303 |
-
.participation {
|
304 |
-
margin-left: 280px;
|
305 |
-
}
|
306 |
-
|
307 |
-
.benefits {
|
308 |
-
margin-left: 280px;
|
309 |
-
}
|
310 |
-
|
311 |
-
.requirements {
|
312 |
-
margin-left: 280px;
|
313 |
-
}
|
314 |
-
|
315 |
-
footer {
|
316 |
-
margin-left: 0px;
|
317 |
-
}
|
318 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/data/designs/010/metadata.json
CHANGED
@@ -2,19 +2,45 @@
|
|
2 |
"id": "010",
|
3 |
"url": "https://www.csszengarden.com/010",
|
4 |
"css_url": "https://www.csszengarden.com/010/010.css",
|
5 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
"categories": [
|
7 |
-
"
|
8 |
-
"
|
9 |
-
"
|
10 |
-
"
|
11 |
-
"
|
|
|
12 |
],
|
13 |
"visual_characteristics": [
|
14 |
-
"
|
15 |
-
"
|
16 |
-
"
|
17 |
-
"
|
18 |
-
"
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
|
|
2 |
"id": "010",
|
3 |
"url": "https://www.csszengarden.com/010",
|
4 |
"css_url": "https://www.csszengarden.com/010/010.css",
|
5 |
+
"title": "A Garden Apart",
|
6 |
+
"author": "Dan Cederholm, http://www.simplebits.com/",
|
7 |
+
"description": {
|
8 |
+
"summary": "A serene, structured webpage design featuring a balanced two-column layout with a nature-inspired header and earthy color palette.",
|
9 |
+
"visual_style": "The design employs a minimalist aesthetic with organic zen elements, combining structured content with natural imagery to create visual harmony.",
|
10 |
+
"emotional_impact": "The calm, peaceful atmosphere evokes a sense of tranquility and clarity, reinforced by the subtle use of natural textures and muted colors.",
|
11 |
+
"compositional_elements": "A curving green header defines the top space, while content is organized in a clear left-right structure with consistent typographic hierarchy and ample whitespace."
|
12 |
+
},
|
13 |
+
"artistic_context": {
|
14 |
+
"style_influences": "Japanese zen garden aesthetics, minimalist web design, natural photography",
|
15 |
+
"visual_metaphors": "Stone pathway, bamboo simplicity, organic growth, enlightened clarity"
|
16 |
+
},
|
17 |
"categories": [
|
18 |
+
"minimalist",
|
19 |
+
"nature-inspired",
|
20 |
+
"structured",
|
21 |
+
"educational",
|
22 |
+
"two-column",
|
23 |
+
"zen-aesthetic"
|
24 |
],
|
25 |
"visual_characteristics": [
|
26 |
+
"curved header element",
|
27 |
+
"natural texture photography",
|
28 |
+
"earthy color palette",
|
29 |
+
"hierarchical typography",
|
30 |
+
"organized content blocks",
|
31 |
+
"balanced negative space"
|
32 |
+
],
|
33 |
+
"design_principles": {
|
34 |
+
"primary_principles": [
|
35 |
+
"hierarchy",
|
36 |
+
"balance",
|
37 |
+
"harmony",
|
38 |
+
"simplicity"
|
39 |
+
],
|
40 |
+
"visual_techniques": [
|
41 |
+
"textural contrast",
|
42 |
+
"color zoning",
|
43 |
+
"typographic rhythm"
|
44 |
+
]
|
45 |
+
}
|
46 |
}
|
src/data/designs/010/screenshot_desktop.png
DELETED
Git LFS Details
|
src/data/designs/010/screenshot_mobile.png
DELETED
Git LFS Details
|
src/data/designs/010/style.css
DELETED
@@ -1,235 +0,0 @@
|
|
1 |
-
/* css Zen Garden submission 010 - 'A Garden Apart' by Dan Cederholm, http://www.simplebits.com/ */
|
2 |
-
/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
|
3 |
-
/* All associated graphics copyright 2003, Dan Cederholm */
|
4 |
-
|
5 |
-
|
6 |
-
/* IMPORTANT */
|
7 |
-
/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
|
8 |
-
/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
|
9 |
-
/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
|
10 |
-
|
11 |
-
|
12 |
-
body
|
13 |
-
{
|
14 |
-
font-family: trebuchet ms, verdana, sans-serif;
|
15 |
-
font-size: 12px;
|
16 |
-
line-height: 1.5em;
|
17 |
-
color: #333;
|
18 |
-
background: #cccc99;
|
19 |
-
margin: 0;
|
20 |
-
padding: 0;
|
21 |
-
text-align: center;
|
22 |
-
}
|
23 |
-
|
24 |
-
p
|
25 |
-
{
|
26 |
-
margin-top: 0px;
|
27 |
-
}
|
28 |
-
|
29 |
-
h3
|
30 |
-
{
|
31 |
-
font: bold 140% trebuchet ms;
|
32 |
-
letter-spacing: -1px;
|
33 |
-
margin-bottom: 0;
|
34 |
-
color: #c96;
|
35 |
-
}
|
36 |
-
|
37 |
-
a:link
|
38 |
-
{
|
39 |
-
text-decoration: none;
|
40 |
-
border-bottom: 1px dotted #369;
|
41 |
-
color: #369;
|
42 |
-
}
|
43 |
-
|
44 |
-
a:visited
|
45 |
-
{
|
46 |
-
text-decoration: none;
|
47 |
-
border-bottom: 1px dotted #369;
|
48 |
-
color: #369;
|
49 |
-
}
|
50 |
-
|
51 |
-
a:hover, a:active
|
52 |
-
{
|
53 |
-
text-decoration: none;
|
54 |
-
border-bottom: 1px solid #036;
|
55 |
-
color: #036;
|
56 |
-
}
|
57 |
-
|
58 |
-
/* ---( specific divs )----------------------------- */
|
59 |
-
|
60 |
-
.page-wrapper
|
61 |
-
{
|
62 |
-
position: relative;
|
63 |
-
background: #FFFBDF url(fade.gif) no-repeat 0 92px;
|
64 |
-
margin: 0 auto 10px auto;
|
65 |
-
border-left: 1px solid #000;
|
66 |
-
border-right: 1px solid #000;
|
67 |
-
border-bottom: 1px solid #000;
|
68 |
-
text-align: left;
|
69 |
-
width: 800px;
|
70 |
-
}
|
71 |
-
|
72 |
-
header
|
73 |
-
{
|
74 |
-
height: 92px;
|
75 |
-
background: url(top.gif) no-repeat top left;
|
76 |
-
}
|
77 |
-
|
78 |
-
header h1
|
79 |
-
{
|
80 |
-
display: none;
|
81 |
-
}
|
82 |
-
|
83 |
-
header h2
|
84 |
-
{
|
85 |
-
position: absolute;
|
86 |
-
top: 110px;
|
87 |
-
left: 20px;
|
88 |
-
padding: 0;
|
89 |
-
margin: 0;
|
90 |
-
background: url(tagline.gif) no-repeat top left;
|
91 |
-
width: 528px;
|
92 |
-
height: 74px;
|
93 |
-
|
94 |
-
text-indent: 100%;
|
95 |
-
white-space: nowrap;
|
96 |
-
overflow: hidden;
|
97 |
-
}
|
98 |
-
|
99 |
-
/* ---( quick summary)---------------------------- */
|
100 |
-
|
101 |
-
.summary
|
102 |
-
{
|
103 |
-
position: absolute;
|
104 |
-
top: 92px;
|
105 |
-
right: 0;
|
106 |
-
left: auto;
|
107 |
-
z-index: 2;
|
108 |
-
width: 298px;
|
109 |
-
voice-family: "\"}\"";
|
110 |
-
voice-family:inherit;
|
111 |
-
width: 300px;
|
112 |
-
}
|
113 |
-
|
114 |
-
html>body .summary
|
115 |
-
{
|
116 |
-
width: 300px;
|
117 |
-
}
|
118 |
-
|
119 |
-
.summary p
|
120 |
-
{
|
121 |
-
margin: 15px 15px 15px 15px;
|
122 |
-
font-style: italic;
|
123 |
-
font-size: 140%;
|
124 |
-
font-family: "trebuchet ms";
|
125 |
-
font-weight: bold;
|
126 |
-
line-height: 1.5em;
|
127 |
-
color: #444;
|
128 |
-
}
|
129 |
-
|
130 |
-
.summary p:last-child
|
131 |
-
{
|
132 |
-
font-style: normal;
|
133 |
-
font-weight: normal;
|
134 |
-
font-size: 100%;
|
135 |
-
margin-top: 0;
|
136 |
-
}
|
137 |
-
|
138 |
-
.preamble
|
139 |
-
{
|
140 |
-
margin: 104px 340px 0px 20px;
|
141 |
-
}
|
142 |
-
|
143 |
-
.supporting
|
144 |
-
{
|
145 |
-
padding-left: 20px;
|
146 |
-
margin: 0 350px 40px 0;
|
147 |
-
}
|
148 |
-
|
149 |
-
footer
|
150 |
-
{
|
151 |
-
border-top: 1px dotted #CDC4AC;
|
152 |
-
padding-top: 6px;
|
153 |
-
text-align: center;
|
154 |
-
}
|
155 |
-
|
156 |
-
footer a:link, footer a:visited
|
157 |
-
{
|
158 |
-
margin-right: 6px;
|
159 |
-
}
|
160 |
-
|
161 |
-
/* ---( right side nav)----------------------------- */
|
162 |
-
|
163 |
-
.sidebar
|
164 |
-
{
|
165 |
-
position: absolute;
|
166 |
-
top: 92px;
|
167 |
-
right: 0;
|
168 |
-
left: auto;
|
169 |
-
width: 300px;
|
170 |
-
padding: 0;
|
171 |
-
border-left: 1px solid #CDC4AC;
|
172 |
-
border-bottom: 1px solid #CDC4AC;
|
173 |
-
background: #E5E0D4 url(zen.gif) no-repeat;
|
174 |
-
z-index: 1;
|
175 |
-
}
|
176 |
-
|
177 |
-
.sidebar .wrapper
|
178 |
-
{
|
179 |
-
margin: 190px 15px 15px 15px;
|
180 |
-
}
|
181 |
-
|
182 |
-
.sidebar h3
|
183 |
-
{
|
184 |
-
color: #635F57;
|
185 |
-
font-family: trebuchet ms;
|
186 |
-
font-size: 120%;
|
187 |
-
margin: 0 0 6px 0;
|
188 |
-
padding: 0;
|
189 |
-
}
|
190 |
-
|
191 |
-
.sidebar ul
|
192 |
-
{
|
193 |
-
margin: 0px;
|
194 |
-
padding: 0px;
|
195 |
-
}
|
196 |
-
.sidebar li
|
197 |
-
{
|
198 |
-
display: block;
|
199 |
-
margin-bottom: 2px;
|
200 |
-
padding-left: 14px;
|
201 |
-
background: url(arrow.gif) no-repeat 0 5px;
|
202 |
-
list-style-type: none;
|
203 |
-
}
|
204 |
-
|
205 |
-
.sidebar li a:link
|
206 |
-
{
|
207 |
-
color: #c96;
|
208 |
-
border-bottom: none;
|
209 |
-
}
|
210 |
-
|
211 |
-
.sidebar li a:visited
|
212 |
-
{
|
213 |
-
color: #c96;
|
214 |
-
border-bottom: none;
|
215 |
-
}
|
216 |
-
|
217 |
-
.sidebar li a:hover
|
218 |
-
{
|
219 |
-
color: #963;
|
220 |
-
}
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
.design-selection
|
226 |
-
{
|
227 |
-
padding: 12px 0 12px 0;
|
228 |
-
border-top: 1px dashed #CDC4AC;
|
229 |
-
border-bottom: 1px dashed #CDC4AC;
|
230 |
-
}
|
231 |
-
|
232 |
-
.zen-resources
|
233 |
-
{
|
234 |
-
margin-top: 12px;
|
235 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/data/designs/011/metadata.json
CHANGED
@@ -2,21 +2,45 @@
|
|
2 |
"id": "011",
|
3 |
"url": "https://www.csszengarden.com/011",
|
4 |
"css_url": "https://www.csszengarden.com/011/011.css",
|
5 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
"categories": [
|
7 |
-
"
|
8 |
-
"
|
9 |
-
"
|
10 |
-
"
|
11 |
-
"
|
12 |
-
"
|
13 |
],
|
14 |
"visual_characteristics": [
|
15 |
-
"
|
16 |
-
"
|
17 |
-
"
|
18 |
-
"
|
19 |
-
"
|
20 |
-
"
|
21 |
-
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
}
|
|
|
2 |
"id": "011",
|
3 |
"url": "https://www.csszengarden.com/011",
|
4 |
"css_url": "https://www.csszengarden.com/011/011.css",
|
5 |
+
"title": "css Zen Garden submission 011 - 'meliorism' by Brett J. Gilbert - www.paragraphic.co.uk",
|
6 |
+
"author": "Brett J. Gilbert",
|
7 |
+
"description": {
|
8 |
+
"summary": "A serene, nature-inspired web design showcasing an elegant blue botanical illustration against a soft gradient background, creating harmony between content and artistic elements.",
|
9 |
+
"visual_style": "The design employs a minimalist aesthetic with a prominent decorative illustration of a blue tree or branch as its focal point, balancing structured content columns with organic visual elements.",
|
10 |
+
"emotional_impact": "Evokes tranquility and contemplation through its gentle color palette and flowing botanical imagery, reinforcing the 'zen garden' concept while maintaining clarity of purpose.",
|
11 |
+
"compositional_elements": "Uses a multi-column layout with clear content hierarchy, where the central organic illustration serves as both divider and visual anchor between functional content areas."
|
12 |
+
},
|
13 |
+
"artistic_context": {
|
14 |
+
"style_influences": "Japanese watercolor, minimalist web design, natural illustration",
|
15 |
+
"visual_metaphors": "Growth, organic flow, digital tranquility, enlightenment"
|
16 |
+
},
|
17 |
"categories": [
|
18 |
+
"minimalist",
|
19 |
+
"nature-inspired",
|
20 |
+
"elegant",
|
21 |
+
"grid-based",
|
22 |
+
"monochromatic",
|
23 |
+
"harmonious"
|
24 |
],
|
25 |
"visual_characteristics": [
|
26 |
+
"blue-dominant palette",
|
27 |
+
"botanical illustration",
|
28 |
+
"multi-column layout",
|
29 |
+
"gradient header",
|
30 |
+
"typographic contrast",
|
31 |
+
"balanced white space"
|
32 |
+
],
|
33 |
+
"design_principles": {
|
34 |
+
"primary_principles": [
|
35 |
+
"balance",
|
36 |
+
"harmony",
|
37 |
+
"hierarchy",
|
38 |
+
"contrast"
|
39 |
+
],
|
40 |
+
"visual_techniques": [
|
41 |
+
"color harmony",
|
42 |
+
"negative space",
|
43 |
+
"focal illustration"
|
44 |
+
]
|
45 |
+
}
|
46 |
}
|