Technologic101 commited on
Commit
1c12a94
·
unverified ·
2 Parent(s): 4271476 8c57a85

Merge pull request #3 from Technologic101/dev

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitignore +3 -0
  2. data_collection/analyze_designs.py +180 -62
  3. data_collection/notebook.ipynb +0 -0
  4. data_collection/prompts.py +106 -0
  5. data_collection/scraper.py +8 -10
  6. pyproject.toml +2 -0
  7. src/app.py +25 -36
  8. {data → src/data}/csszengardenhtml.html +0 -0
  9. {data → src/data}/csszengardenstyle.css +0 -0
  10. src/data/designs/001/metadata.json +38 -12
  11. src/data/designs/001/screenshot_desktop.png +0 -3
  12. src/data/designs/001/screenshot_mobile.png +0 -3
  13. src/data/designs/001/style.css +0 -207
  14. src/data/designs/002/metadata.json +38 -10
  15. src/data/designs/002/screenshot_desktop.png +0 -3
  16. src/data/designs/002/screenshot_mobile.png +0 -3
  17. src/data/designs/002/style.css +0 -225
  18. src/data/designs/003/metadata.json +38 -12
  19. src/data/designs/003/screenshot_desktop.png +0 -3
  20. src/data/designs/003/screenshot_mobile.png +0 -3
  21. src/data/designs/003/style.css +0 -228
  22. src/data/designs/004/metadata.json +38 -12
  23. src/data/designs/004/screenshot_desktop.png +0 -3
  24. src/data/designs/004/screenshot_mobile.png +0 -3
  25. src/data/designs/004/style.css +0 -192
  26. src/data/designs/005/metadata.json +37 -9
  27. src/data/designs/005/screenshot_desktop.png +0 -3
  28. src/data/designs/005/screenshot_mobile.png +0 -3
  29. src/data/designs/005/style.css +0 -220
  30. src/data/designs/006/metadata.json +38 -12
  31. src/data/designs/006/screenshot_desktop.png +0 -3
  32. src/data/designs/006/screenshot_mobile.png +0 -3
  33. src/data/designs/006/style.css +0 -198
  34. src/data/designs/007/metadata.json +38 -12
  35. src/data/designs/007/screenshot_desktop.png +0 -3
  36. src/data/designs/007/screenshot_mobile.png +0 -3
  37. src/data/designs/007/style.css +0 -276
  38. src/data/designs/008/metadata.json +38 -12
  39. src/data/designs/008/screenshot_desktop.png +0 -3
  40. src/data/designs/008/screenshot_mobile.png +0 -3
  41. src/data/designs/008/style.css +0 -113
  42. src/data/designs/009/metadata.json +38 -12
  43. src/data/designs/009/screenshot_desktop.png +0 -3
  44. src/data/designs/009/screenshot_mobile.png +0 -3
  45. src/data/designs/009/style.css +0 -318
  46. src/data/designs/010/metadata.json +38 -12
  47. src/data/designs/010/screenshot_desktop.png +0 -3
  48. src/data/designs/010/screenshot_mobile.png +0 -3
  49. src/data/designs/010/style.css +0 -235
  50. 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 = "gpt-4o-2024-08-06"
12
 
13
- client = AsyncOpenAI()
14
-
15
- async def analyze_screenshot(design_id: str, design_path: Path):
16
- """Analyze screenshots and return description, categories, and visual characteristics"""
 
 
 
 
 
 
 
 
 
17
  try:
18
- # Check files exist
 
 
 
 
 
 
 
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 first
44
- response = await client.chat.completions.create(
45
  model=VISION_MODEL,
46
- messages=[
47
- {
48
- "role": "system",
49
- "content": """You are an expert graphic designer analyzing print and web designs for aesthetics, functionality, audience appeal, and potential applications.
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
- "description": "A one-paragraph summary highlighting exceptional features of the design",
59
- "categories": ["category1", "category2"],
60
- "visual_characteristics": ["characteristic1", "characteristic2"]
61
- }
62
- Provide 4-6 categories and 4-6 visual characteristics most relevant to the style and feel of the design. Do not reference css or web design directly because this analysis is primarily about design. These lists should describe the design to another LLM that will use this data to generate a UI.
63
- """
64
- },
65
- {
66
- "role": "user",
67
- "content": [
68
- {
69
- "type": "text",
70
- "text": "Analyze this visual design. Output only the JSON object."
71
- },
72
- {
73
- "type": "image_url",
74
- "image_url": {
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
- # Then get the content
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
- # Update metadata with all fields
110
- metadata.update(analysis)
 
111
 
112
- # Save updated metadata
113
- with open(metadata_path, "w") as f:
114
- json.dump(metadata, f, indent=2)
 
 
 
115
 
116
  print(f"Successfully analyzed design {design_id}")
117
- # Return visual_characteristics as fourth element
118
- return design_id, analysis["description"], analysis["categories"], analysis["visual_characteristics"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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': 1920, '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()
38
-
39
- # Additional wait to ensure any animations/transitions complete
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': 1920, 'height': int(height)})
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
- # Additional wait to ensure any animations/transitions complete
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 chains.design_rag import DesignRAG
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
- # init conversation history for each user
33
- cl.user_session.set("conversation_history", [
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
- conversation_history = cl.user_session.get("conversation_history")
43
- # Add user message to history
44
- conversation_history.append(HumanMessage(content=message.content))
 
 
45
 
46
- # Get LLM's analysis of requirements
47
- analysis = await llm.ainvoke(conversation_history)
48
 
49
- # Get best design example based on full conversation
50
- designs = await design_rag.query_similar_designs(
51
- [msg.content for msg in conversation_history],
52
- num_examples=1
53
- )
54
 
55
- # Combine analysis with designs
56
- response = f"{analysis.content}\n\nHere is the best match from the zen garden:\n\n{designs}"
57
 
58
- # Add assistant's response to history
59
- conversation_history.append(SystemMessage(content=response))
60
 
61
  # Send response to user
62
- await cl.Message(content=response).send()
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
- "description": "The Zen Garden design exemplifies a serene and elegant layout featuring muted color tones and delicate floral watermark accents, reflecting a harmonious balance between text and design. The asymmetrical placement and soft gradients complement the main content, while a clean and sophisticated typeface enhances readability, setting a contemplative mood.",
 
 
 
 
 
 
 
 
 
 
 
6
  "categories": [
7
- "web aesthetics",
8
- "minimalist design",
9
- "zen aesthetics",
10
- "typography focus",
11
- "serene theme"
 
12
  ],
13
  "visual_characteristics": [
14
- "muted color palette",
15
- "asymmetrical layout",
16
- "floral accents",
17
- "elegant typography",
18
- "soft gradients"
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

  • SHA256: fddb7b18ebd0b874d02682b1a8b1d38f0da01ed1fe143a1f85223182a9527e8a
  • Pointer size: 131 Bytes
  • Size of remote file: 505 kB
src/data/designs/001/screenshot_mobile.png DELETED

Git LFS Details

  • SHA256: f12bd70b2aa9e536455d6152ece7aa321025bc5afc6ed1574ecf6fccdf374eca
  • Pointer size: 131 Bytes
  • Size of remote file: 588 kB
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
- "description": "The design embodies a serene and focused aesthetic with a soft, warm color scheme and straightforward typography. A prominent header creates an inviting entry point, while the balanced layout effectively organizes the content. Subtle shadows and borders provide depth, enhancing visual appeal without overwhelming the viewer.",
 
 
 
 
 
 
 
 
 
 
 
6
  "categories": [
7
- "Web Design",
8
- "Minimalism",
9
- "Typography",
10
- "Navigation"
 
 
11
  ],
12
  "visual_characteristics": [
13
- "Warm color palette",
14
- "Minimalistic layout",
15
- "Simplicity",
16
- "Balanced whitespace"
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

  • SHA256: 7f176aa172a455bad9c3676042583b13cb0523b1f063eb3ebaf6ba85b63869b7
  • Pointer size: 131 Bytes
  • Size of remote file: 432 kB
src/data/designs/002/screenshot_mobile.png DELETED

Git LFS Details

  • SHA256: 50f6641e3b8e134302a78c83c4b791bd77c4655f6edb727c9bdb601862d35c79
  • Pointer size: 131 Bytes
  • Size of remote file: 507 kB
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
- "description": "This design features a serene and calming aesthetic, employing a monochromatic blue-gray color palette that evokes a sense of tranquility. The layout is structured and organized, with a notable emphasis on clean typography and spaciousness. Each section is clearly delineated, contributing to an overall coherent and harmonious visual experience, while the soft textures in the background enhance the serene mood.",
 
 
 
 
 
 
 
 
 
 
 
6
  "categories": [
7
- "minimalism",
8
- "typography",
9
- "print design",
10
- "web interface",
11
- "aesthetic design"
 
12
  ],
13
  "visual_characteristics": [
14
- "monochromatic palette",
15
- "serene mood",
16
- "structured layout",
17
- "clean typography",
18
- "spaciousness"
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

  • SHA256: 9b85310d0d91f756b026ba2372cbe3b3bb782cabd7c7aa4fb891622d711af866
  • Pointer size: 132 Bytes
  • Size of remote file: 1.32 MB
src/data/designs/003/screenshot_mobile.png DELETED

Git LFS Details

  • SHA256: c5c5c647d836854817193276a89bd7925073dede5dac03e255774e707012fa64
  • Pointer size: 132 Bytes
  • Size of remote file: 1.08 MB
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
- "description": "The design features a structured layout with a calming blue and white color scheme that conveys clarity and modernity. The large, fluid background image adds a touch of elegance, while the clear typography and organized sections contribute to the aesthetic appeal. Highlighted text links in green and orange draw attention, creating a dynamic yet harmonious look.",
 
 
 
 
 
 
 
 
 
 
 
6
  "categories": [
7
- "Modern",
8
- "Web Design",
9
- "Instructional",
10
- "Clean",
11
- "Professional"
 
12
  ],
13
  "visual_characteristics": [
14
- "Blue and White Palette",
15
- "Fluid Background Image",
16
- "Clear Typography",
17
- "Highlighted Text Links",
18
- "Structured Layout"
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

  • SHA256: f4820102deb38d785f15a105c0b17ff47fc68217c3af7ab6a8e77e7ad8d65d18
  • Pointer size: 131 Bytes
  • Size of remote file: 402 kB
src/data/designs/004/screenshot_mobile.png DELETED

Git LFS Details

  • SHA256: 59a990f8aaff36487583918a011eb7ff9131792608ad024fa8cc160c9fc4c5ed
  • Pointer size: 131 Bytes
  • Size of remote file: 383 kB
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
- "description": "This design features a creative and eclectic layout with an abstract artistic background showcasing vintage red and black tones. The main heading is presented in a graceful cursive font, adding a touch of elegance. The layout uses a mix of serif and sans-serif fonts, creating a dynamic textual experience. The asymmetrical composition and overlapping elements demonstrate a bold, experimental design approach.",
 
 
 
 
 
 
 
 
 
 
 
6
  "categories": [
7
- "abstract",
8
  "experimental",
9
- "vintage",
10
- "typography-focused"
 
 
 
11
  ],
12
  "visual_characteristics": [
13
- "asymmetrical layout",
14
- "cursive typography",
15
- "red and black color palette",
16
- "textured background"
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

  • SHA256: 223b7e9ce6e9795b90d78ce3afaa71379a69b281ef2febe2a464ad55d2b116bc
  • Pointer size: 131 Bytes
  • Size of remote file: 514 kB
src/data/designs/005/screenshot_mobile.png DELETED

Git LFS Details

  • SHA256: ce0d142bf917b1372a84029dcd90101ba97785f3b80b9f7c8d42b0a9ff3e3ce1
  • Pointer size: 131 Bytes
  • Size of remote file: 433 kB
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
- "description": "The design employs a minimalist and structured layout with a focus on typographic hierarchy and a cohesive color scheme of blue and orange accents. The simple background and strategic use of whitespace enhance readability while guiding the viewer\u2019s attention effectively.",
 
 
 
 
 
 
 
 
 
 
 
6
  "categories": [
7
- "minimalism",
8
- "typography",
9
- "color contrast",
10
- "web design inspiration",
11
- "clean layout"
 
12
  ],
13
  "visual_characteristics": [
14
- "blue color palette",
15
- "structured typography",
16
- "use of whitespace",
17
- "orange accent highlights",
18
- "simple background"
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

  • SHA256: 3416dd95eeffb379e74398926634044d76318ea57f1ea4682a72f68656cb0e0e
  • Pointer size: 131 Bytes
  • Size of remote file: 622 kB
src/data/designs/006/screenshot_mobile.png DELETED

Git LFS Details

  • SHA256: 8c4bcd170280361f5f870df5f245ebe6758cc7ae3e7834fbf904deb70b99b20e
  • Pointer size: 131 Bytes
  • Size of remote file: 598 kB
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
- "description": "This zen-themed design artfully combines minimalist visuals with grayscale imagery and bold typography, evoking a calm, introspective mood. The subtle overlay of an elegant black-and-white nature image with flowing lines adds depth, while the use of orange accents in the text enhances readability and attention. The overall layout is spacious and neatly sectioned, contributing to an organized and serene visual experience.",
 
 
 
 
 
 
 
 
 
 
 
6
  "categories": [
7
- "Zen",
8
- "Minimalist",
9
- "Typography",
10
- "Nature",
11
- "Grayscale"
 
12
  ],
13
  "visual_characteristics": [
14
- "Minimalist layout",
15
- "Grayscale theme",
16
- "Highlight color accents",
17
- "Nature-inspired imagery",
18
- "Bold typography"
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

  • SHA256: 9153167f7d8abaab0db785bef25e7b22b2e62d29a8a8635cf3581a76cb99aa46
  • Pointer size: 131 Bytes
  • Size of remote file: 529 kB
src/data/designs/007/screenshot_mobile.png DELETED

Git LFS Details

  • SHA256: 6c34e546ceea75865ff6b8f9123c80bbe34b702b7eb1d6f61ebad8038d260f15
  • Pointer size: 131 Bytes
  • Size of remote file: 489 kB
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
- "description": "This design features a striking use of vibrant red gradients complemented by an abstract, fiery artwork that creates a dynamic and futuristic aesthetic. The layout is well-structured, showcasing a clear hierarchy with text aligned within well-defined boxes, ensuring readability against the intense background. The typography is bold and modern, enhancing the overall edgy and creative theme of the design.",
 
 
 
 
 
 
 
 
 
 
 
6
  "categories": [
7
- "abstract design",
8
- "futuristic",
9
- "vibrant",
10
- "creative layout",
11
- "typography"
 
12
  ],
13
  "visual_characteristics": [
14
- "vibrant red gradients",
15
- "abstract artwork",
16
- "clear text hierarchy",
17
- "bold typography",
18
- "dynamic aesthetic"
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

  • SHA256: 684222b3b6b16bf990c10ed7b130c2fd0fbd4a4a64d24854aee0a2880872c1c5
  • Pointer size: 132 Bytes
  • Size of remote file: 1.15 MB
src/data/designs/008/screenshot_mobile.png DELETED

Git LFS Details

  • SHA256: 29564f5b25f205adb206922921399ae7fddc2d229906972304023fbee8729512
  • Pointer size: 131 Bytes
  • Size of remote file: 865 kB
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
- "description": "This design features a clean and organized layout with a classic monochrome color palette, emphasizing the elegance of CSS design. It uses serif typography for a traditional feel, with strong visual separation of sections, enhancing readability. The design incorporates ornamental graphics at the top and bottom, adding a touch of sophistication. The ample use of whitespace contributes to a serene and uncluttered experience, inviting users to engage with the content.",
 
 
 
 
 
 
 
 
 
 
 
6
  "categories": [
7
- "Web Design",
8
- "Typography",
9
- "Minimalism",
10
- "Ornamental Design",
11
- "Monochrome"
 
12
  ],
13
  "visual_characteristics": [
14
- "Serif Typography",
15
- "Monochromatic Palette",
16
- "Ornamental Graphics",
17
- "Whitespace Usage",
18
- "Classic Layout"
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

  • SHA256: 2b11c7833d1f43e01fcd9092dd83a6b733908b82aceb7634d7944ebedfa30cec
  • Pointer size: 131 Bytes
  • Size of remote file: 849 kB
src/data/designs/009/screenshot_mobile.png DELETED

Git LFS Details

  • SHA256: 271ee3e903c6f2794542b7a3f26beab9999cfbe970800924c3fd26d11ed072d8
  • Pointer size: 131 Bytes
  • Size of remote file: 746 kB
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
- "description": "The design utilizes a clean and structured layout with a neutral color palette, employing a sidebar for navigation and a main content area for information. The typography is clear and well-organized, enhancing readability, while subtle background textures add depth without distraction.",
 
 
 
 
 
 
 
 
 
 
 
6
  "categories": [
7
- "Web Design",
8
- "Typography",
9
- "Minimalist Design",
10
- "Navigation Layout",
11
- "Informational"
 
12
  ],
13
  "visual_characteristics": [
14
- "Neutral Colors",
15
- "Structured Layout",
16
- "Clear Typography",
17
- "Sidebar Navigation",
18
- "Subtle Textures"
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

  • SHA256: 28c6fd944f87fcb17e9cb0f9659f312e8a44cee0731d837e0bd953d85276cf65
  • Pointer size: 131 Bytes
  • Size of remote file: 476 kB
src/data/designs/010/screenshot_mobile.png DELETED

Git LFS Details

  • SHA256: a1da9a8b9d1006ade6ab6eacb79b206f42b21d6324327a1f42f6ea1a024e2a59
  • Pointer size: 131 Bytes
  • Size of remote file: 429 kB
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
- "description": "The design features a harmonious blend of text and imagery, utilizing a soft color palette with blue and orange highlights. The layout is structured yet fluid, encouraging readability and engagement. Elegant typography and an artistic illustration enhance the page's aesthetics, appealing to a design-conscious audience.",
 
 
 
 
 
 
 
 
 
 
 
6
  "categories": [
7
- "Web Design",
8
- "Typography",
9
- "Graphic Design",
10
- "Artistic Design",
11
- "Minimalism",
12
- "Usability"
13
  ],
14
  "visual_characteristics": [
15
- "Soft Color Palette",
16
- "Elegant Typography",
17
- "Fluid Layout",
18
- "Artistic Illustration",
19
- "Text-Centric",
20
- "Readability Focus"
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
  }