Skip to content

Commit 79b71a9

Browse files
authored
Merge pull request #110 from CloudNativeLinz/feature/new-look
Modernization of look and feel
2 parents e194803 + c8174cd commit 79b71a9

33 files changed

+5497
-2500
lines changed

MODERNIZATION_SUMMARY.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# Website Modernization Summary
2+
3+
## 🎉 Complete Website Transformation
4+
5+
The Cloud Native Computing Linz website has been completely modernized with a cohesive 2025 design system that matches the event card aesthetic throughout the entire site.
6+
7+
## ✅ Completed Updates
8+
9+
### 🎨 Design System
10+
- **Modern Color Palette**: Updated to use gradient-based design (#667eea to #764ba2)
11+
- **Typography**: Implemented Inter font family with modern weight scale
12+
- **Component Library**: Created comprehensive card-based design system
13+
- **Responsive Design**: Mobile-first approach with touch-friendly interactions
14+
15+
### 🏗️ Infrastructure
16+
- **Variables System**: Complete rewrite of `_sass/_variables.scss` with modern design tokens
17+
- **Main Layout**: Modernized `_layouts/default.html` with semantic HTML and accessibility
18+
- **Styling System**: Recreated `assets/style.scss` with 1000+ lines of modern CSS
19+
- **Mobile Navigation**: Implemented hamburger menu with smooth animations
20+
21+
### 📄 Page Modernization
22+
1. **Homepage** (`_pages/about.md`)
23+
- Hero section with overlay design
24+
- Card-based content layout
25+
- Modern call-to-action sections
26+
- Enhanced visual hierarchy
27+
28+
2. **Team Page** (`_pages/team.md`)
29+
- Modern team member cards with hover effects
30+
- Professional photo styling
31+
- Social media integration
32+
- Responsive grid layout
33+
34+
3. **Statistics Page** (`_pages/statistics.md`)
35+
- Interactive chart containers
36+
- Fallback data tables with visual bars
37+
- Community highlights section
38+
- Dynamic data processing with Jekyll
39+
40+
4. **Speaker Info Page** (`_pages/speaker-info.md`)
41+
- Comprehensive speaker guide
42+
- Interactive schedule timeline
43+
- Tips and best practices sections
44+
- Modern form integration
45+
46+
5. **Join Page** (`_pages/join.md`)
47+
- Engaging hero section
48+
- Platform comparison layout
49+
- Benefits grid
50+
- Clear call-to-action flow
51+
52+
6. **Sponsoring Page** (`_pages/sponsoring.md`)
53+
- Professional sponsorship packages
54+
- Visual pricing cards
55+
- Value proposition sections
56+
- Custom partnership options
57+
58+
### 🎯 Key Features
59+
- **Gradient Cards**: Consistent use of modern gradient backgrounds
60+
- **Hover Animations**: Subtle interactive elements throughout
61+
- **Mobile Optimization**: Touch-friendly navigation and responsive design
62+
- **Accessibility**: Semantic HTML and proper contrast ratios
63+
- **Performance**: Optimized CSS and minimal JavaScript
64+
65+
### 🌟 Design Consistency
66+
- All pages now use the same color scheme and design language
67+
- Consistent typography scale and spacing
68+
- Unified card-based layout system
69+
- Cohesive call-to-action styling
70+
71+
## 🚀 Technical Stack
72+
- **Jekyll**: Static site generator
73+
- **SCSS**: Modern CSS preprocessing
74+
- **Responsive Design**: Mobile-first approach
75+
- **Chart.js**: Interactive statistics visualization
76+
- **Modern CSS**: Flexbox, Grid, and custom properties
77+
78+
## 📱 Mobile Experience
79+
- Hamburger navigation menu
80+
- Touch-friendly interface
81+
- Responsive typography
82+
- Optimized card layouts
83+
- Mobile-specific interactions
84+
85+
## 🎨 Visual Improvements
86+
- Modern gradient-based design system
87+
- Professional typography with Inter font
88+
- Enhanced visual hierarchy
89+
- Consistent spacing and alignment
90+
- Modern card-based layouts
91+
- Subtle animations and hover effects
92+
93+
The website now presents a professional, modern appearance that reflects the innovative nature of the cloud-native community while maintaining excellent usability across all devices.

_config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ footer-links:
3636
playconsole:
3737
meetup: Cloud-Native-Linz
3838
cncf: linz
39+
random-number-generator: true
3940

4041

4142
# Enter your Disqus shortname (not your username) to enable commenting on posts

_data/events.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
- title: "Digital Transformation (from on-premises to the cloud)"
1010
speaker: "Donovan Brown"
1111
recording: "https://www.youtube.com/watch?v=xzB5Al18aao"
12+
social: "https://www.linkedin.com/in/darquewarrior/"
1213
- title: "Serverless on the AWS Cloud, Challenges Beyond the Toy Problems"
1314
speaker: "Matthias Steinbauer"
1415
recording: "https://www.youtube.com/watch?v=xzB5Al18aao"
@@ -310,6 +311,7 @@
310311
- title: "Supercharge Your Coding with GitHub Copilot and Actions: The AI-Powered Productivity Duo"
311312
speaker: "Jürgen Etzlstorfer"
312313
image: "/assets/speaker-images/jetzlstorfer.jpg"
314+
social: "https://www.linkedin.com/in/juergenetzlstorfer/"
313315

314316
- id: 23
315317
title: "CertOps and K8sGPT"
@@ -623,6 +625,7 @@
623625
recording: "https://www.youtube.com/watch?v=Bs9ndXt7DZY"
624626
file: "/slides/2025-07/K8s_Adversary_Emulation.pdf"
625627
image: "https://media.licdn.com/dms/image/v2/C4D03AQEAzyUotk44Ug/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1611606832681?e=1757548800&v=beta&t=RAMEEcvpeyoP4n4g19GEIzzOlXHCWvl9YJnqTmL1S2c"
628+
social: "https://www.linkedin.com/in/markus-gierlinger/"
626629

627630
- id: 42
628631
title: "cTENcf Party - celebrating 10 years of CNCF and 5 years of Cloud Native Linz"
@@ -648,6 +651,8 @@
648651
talks:
649652
- title: "Talk title to be announced soon"
650653
speaker: "Matthias Steinbauer"
654+
image: "https://media.licdn.com/dms/image/v2/D4D03AQGeyJ7GQgLw4g/profile-displayphoto-shrink_800_800/B4DZd56zluGYAg-/0/1750097148964?e=1758153600&v=beta&t=b3FnlTwnSZqqDzUzENyPfoMfJHuqtd4v0PGGfpI1mcY"
655+
social: "https://www.linkedin.com/in/matthias-steinbauer/"
651656

652657
- id: 44
653658
title: "November 2025 edition"

_includes/github-icon.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<svg width="{{ include.size | default: 16 }}" height="{{ include.size | default: 16 }}" viewBox="0 0 24 24" fill="currentColor"{% if include.class %} class="{{ include.class }}"{% endif %}>
2+
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
3+
</svg>

_includes/linkedin-icon.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<svg width="{{ include.size | default: '14' }}" height="{{ include.size | default: '14' }}" viewBox="0 0 24 24" fill="currentColor" class="{{ include.class }}">
2+
<path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
3+
</svg>
Lines changed: 200 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,205 @@
11
<script src="{{ site.baseurl }}/assets/scripts/generate-random-numbers.js"></script>
2-
<div style="display: flex; flex-direction: column; align-items: center;">
3-
<div style="display: flex; flex-direction: row; gap: 24px;">
4-
<div class="input__wrapper field">
5-
<input type="number" class="input__field" placeholder="⬇️ Minimum Value" name="min" id='min' required />
6-
<label for="min" class="input__label">⬇️ Minimum Value</label>
7-
</div>
82

9-
<div class="input__wrapper field">
10-
<input type="number" class="input__field" placeholder="⬆️ Maximum Value" name="max" id='max' required />
11-
<label for="max" class="input__label">⬆️ Maximum Value</label>
12-
</div>
3+
<div class="random-generator-container">
4+
<!-- Header Card -->
5+
<div class="card gradient-card">
6+
<div class="card-content">
7+
<h2 class="generator-title">🎲 Random Number Generator</h2>
8+
<p class="generator-subtitle">We love to do raffles and to make it fun, we do it via random numbers so everyone has a fair chance to win!</p>
139
</div>
14-
<div class="input__wrapper field">
15-
<input type="number" class="input__field" placeholder="🔁 Spins" name="spins" id='spins' required />
16-
<label for="spins" class="input__label">🔁 Spins</label>
10+
</div>
11+
12+
<!-- Input Form Card -->
13+
<div class="card">
14+
<div class="card-content">
15+
<div class="generator-form">
16+
<div class="form-row">
17+
<div class="form-group">
18+
<label for="min" class="form-label">⬇️ Minimum Value</label>
19+
<input type="number" id="min" name="min" class="form-input" placeholder="e.g., 1" required />
20+
</div>
21+
22+
<div class="form-group">
23+
<label for="max" class="form-label">⬆️ Maximum Value</label>
24+
<input type="number" id="max" name="max" class="form-input" placeholder="e.g., 100" required />
25+
</div>
26+
27+
<div class="form-group">
28+
<label for="spins" class="form-label">🔁 Number of Results</label>
29+
<input type="number" id="spins" name="spins" class="form-input" placeholder="e.g., 5" required />
30+
</div>
31+
</div>
32+
33+
<button onclick="generateRandomNumbers()" class="btn btn-primary btn-large">
34+
🎲 Generate Random Numbers
35+
</button>
1736
</div>
18-
<button onclick="generateRandomNumbers()">🎲 Generate</button>
19-
<strong id="result-header"></strong>
20-
<p id="result"></p>
37+
</div>
38+
</div>
39+
40+
<!-- Results Card -->
41+
<div class="card result-card" id="result-card" style="display: none;">
42+
<div class="card-content">
43+
<h3 id="result-header" class="result-header"></h3>
44+
<div id="result" class="result-numbers"></div>
45+
</div>
46+
</div>
2147
</div>
48+
49+
<style>
50+
.random-generator-container {
51+
max-width: 600px;
52+
margin: 0 auto;
53+
padding: 2rem 0;
54+
}
55+
56+
.generator-title {
57+
font-size: 2rem;
58+
font-weight: 700;
59+
margin-bottom: 0.5rem;
60+
text-align: center;
61+
}
62+
63+
.generator-subtitle {
64+
font-size: 1.1rem;
65+
opacity: 0.9;
66+
text-align: center;
67+
margin-bottom: 0;
68+
}
69+
70+
.generator-form {
71+
display: flex;
72+
flex-direction: column;
73+
gap: 1.5rem;
74+
}
75+
76+
.form-row {
77+
display: grid;
78+
grid-template-columns: 1fr 1fr;
79+
gap: 1rem;
80+
}
81+
82+
.form-row:last-of-type {
83+
grid-template-columns: 1fr;
84+
max-width: 300px;
85+
margin: 0 auto;
86+
}
87+
88+
.form-group {
89+
display: flex;
90+
flex-direction: column;
91+
gap: 0.5rem;
92+
}
93+
94+
.form-label {
95+
font-weight: 600;
96+
color: #374151;
97+
font-size: 0.9rem;
98+
}
99+
100+
.form-input {
101+
padding: 0.75rem 1rem;
102+
border: 2px solid #e5e7eb;
103+
border-radius: 0.5rem;
104+
font-size: 1rem;
105+
transition: all 0.3s ease;
106+
background: #f9fafb;
107+
}
108+
109+
.form-input:focus {
110+
outline: none;
111+
border-color: #667eea;
112+
background: white;
113+
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
114+
}
115+
116+
.form-input:hover {
117+
border-color: #d1d5db;
118+
background: white;
119+
}
120+
121+
.btn-large {
122+
padding: 1rem 2rem;
123+
font-size: 1.1rem;
124+
font-weight: 700;
125+
width: 100%;
126+
margin-top: 0.5rem;
127+
text-align: center;
128+
}
129+
130+
.result-card {
131+
border: 2px solid #10b981;
132+
background: linear-gradient(135deg, #ecfdf5 0%, #f0fdf4 100%);
133+
}
134+
135+
.result-header {
136+
color: #065f46;
137+
text-align: center;
138+
margin-bottom: 1rem;
139+
font-size: 1.3rem;
140+
font-weight: 600;
141+
}
142+
143+
.result-numbers {
144+
display: flex;
145+
flex-wrap: wrap;
146+
justify-content: center;
147+
gap: 0.75rem;
148+
margin-top: 1rem;
149+
}
150+
151+
.result-numbers::before {
152+
content: attr(data-numbers);
153+
}
154+
155+
.result-number {
156+
display: inline-flex;
157+
align-items: center;
158+
justify-content: center;
159+
min-width: 3rem;
160+
height: 3rem;
161+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
162+
color: white;
163+
font-weight: 700;
164+
font-size: 1.1rem;
165+
border-radius: 50%;
166+
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
167+
transition: all 0.3s ease;
168+
animation: fadeInScale 0.5s ease forwards;
169+
}
170+
171+
.result-number:hover {
172+
transform: scale(1.1);
173+
box-shadow: 0 8px 12px -2px rgba(0, 0, 0, 0.15);
174+
}
175+
176+
@keyframes fadeInScale {
177+
from {
178+
opacity: 0;
179+
transform: scale(0.8);
180+
}
181+
to {
182+
opacity: 1;
183+
transform: scale(1);
184+
}
185+
}
186+
187+
/* Mobile responsive */
188+
@media (max-width: 640px) {
189+
.random-generator-container {
190+
padding: 1rem;
191+
}
192+
193+
.form-row {
194+
grid-template-columns: 1fr;
195+
}
196+
197+
.generator-title {
198+
font-size: 1.75rem;
199+
}
200+
201+
.generator-subtitle {
202+
font-size: 1rem;
203+
}
204+
}
205+
</style>

_includes/svg-icons.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@
1414
{% if site.footer-links.playconsole %}<a href="https://play.google.com/store/apps/dev?id={{ site.footer-links.playconsole }}"><i class="svg-icon playconsole"></i></a>{% endif %}
1515
{% if site.footer-links.cncf %}<a href="https://community.cncf.io/{{ site.footer-links.cncf }}"><i class="svg-icon cncf"></i></a>{% endif %}
1616
{% if site.footer-links.meetup %}<a href="https://meetup.com/{{ site.footer-links.meetup }}"><i class="svg-icon meetup"></i></a>{% endif %}
17+
{% if site.footer-links.random-number-generator %}<a href="{{ site.baseurl }}/random-number-generator/" style="font-size: 1.2em; text-decoration: none;">🎲</a>{% endif %}

0 commit comments

Comments
 (0)