Skip to content

Commit 136aeea

Browse files
committed
feat: visualizations addon
1 parent 60379d8 commit 136aeea

File tree

15 files changed

+587
-572
lines changed

15 files changed

+587
-572
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.log

assets/static/artist.css

Lines changed: 169 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
font-style: normal;
1919
}
2020

21-
/* --- Background & reset --- */
21+
/* Background & Others */
2222
html, body {
2323
margin: 0;
2424
padding: 0;
@@ -38,53 +38,92 @@ body {
3838
box-sizing: border-box;
3939
}
4040

41-
/* --- Title --- */
41+
/* Header & Title */
4242
.page-header {
43+
position: relative;
4344
width: 100%;
44-
text-align: center;
45-
margin-top: 20px;
45+
height: 150px;
46+
box-sizing: border-box;
47+
padding: 12px 24px;
48+
background: transparent;
4649
}
4750

48-
h1 {
51+
.page-header h1 {
52+
margin: 0;
53+
text-align: center;
4954
font-weight: 900;
5055
color: white;
5156
font-size: 4.5em;
52-
margin: 20px 0 0;
53-
display: inline-block;
54-
position: relative;
5557
text-transform: uppercase;
5658
letter-spacing: 2px;
5759
}
5860

59-
h1::after {
60-
position: absolute;
61-
content: '';
62-
left: 0;
61+
.page-header .underline {
62+
width: 60%;
63+
max-width: 400px;
6364
height: 2px;
64-
bottom: -10px;
6565
background-color: #FF6600;
66-
width: 100%;
66+
margin: 10px auto 0;
6767
}
6868

69-
/* --- Main Layout --- */
69+
/* Return Button */
70+
.return {
71+
position: absolute;
72+
left: 100px;
73+
top: 60%;
74+
transform: translateY(-50%);
75+
display: inline-flex;
76+
align-items: center;
77+
justify-content: center;
78+
padding: 14px 30px 14px 46px;
79+
font-family: 'Agrandir', Arial, sans-serif;
80+
background: rgba(255, 102, 0, 0.95);
81+
color: white;
82+
font-weight: 700;
83+
font-size: clamp(0.85em, 1.8vw, 1.05em);
84+
text-transform: uppercase;
85+
letter-spacing: 1px;
86+
clip-path: polygon(0 50%, 40px 0, 100% 0, 100% 100%, 40px 100%);
87+
cursor: pointer;
88+
transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
89+
border-radius: 6px;
90+
z-index: 3;
91+
text-decoration: none;
92+
border: none;
93+
}
94+
95+
.return .arrow-text {
96+
display: block;
97+
line-height: 1;
98+
text-align: center;
99+
}
100+
101+
.return:hover {
102+
transform: translateY(-50%) scale(1.03);
103+
background: rgba(138, 43, 226, 0.6);
104+
box-shadow: 0 8px 25px rgba(138, 43, 226, 0.35);
105+
}
106+
107+
/* Main Layout */
70108
.main-layout {
71109
display: flex;
72110
justify-content: center;
73111
align-items: flex-start;
74112
max-width: 1200px;
75113
gap: 40px;
76-
margin: 70px auto;
114+
margin: calc(50px + 20px) auto 0;
77115
padding: 0;
78-
flex-wrap: nowrap;
116+
flex-wrap: wrap;
79117
}
80118

81-
/* --- Image Side --- */
119+
/* Image */
82120
.artist-image {
83-
flex: 0 0 400px;
84-
width: 400px;
85-
max-width: 100%px;
86-
aspect-ratio: 1 / 1;
87-
height: 400px;
121+
order: 2;
122+
flex: 1 1 25%;
123+
min-width: 200px;
124+
max-width: 500px;
125+
width: 100%;
126+
aspect-ratio: 1 / 1;
88127
border: 2px solid #FF6600;
89128
border-radius: 10px;
90129
overflow: hidden;
@@ -96,25 +135,27 @@ h1::after {
96135
object-fit: cover;
97136
}
98137

99-
/* --- Middle Side (History/Members) --- */
138+
/* History & Members */
100139
.middle-side {
140+
order: 1;
101141
display: flex;
102142
flex-direction: column;
103143
gap: 30px;
104144
flex: 0 1 400px;
105145
max-width: 600px;
106146
}
107147

108-
/* --- Right Side (Concert Dates) --- */
148+
/* Concert Dates */
109149
.concert-side {
150+
order: 3;
110151
display: flex;
111152
flex-direction: column;
112153
gap: 30px;
113154
flex: 0 1 400px;
114155
max-width: 600px;
115156
}
116157

117-
/* --- Cards --- */
158+
/* Cards */
118159
.info-card,
119160
.member-card,
120161
.concert-card {
@@ -125,7 +166,7 @@ h1::after {
125166
max-width: 100%;
126167
}
127168

128-
/* --- Card Header --- */
169+
/* Card Header */
129170
.card-header,
130171
.member-card-header,
131172
.concert-card-header {
@@ -141,7 +182,7 @@ h1::after {
141182
border-radius: 8px 8px 0 0;
142183
}
143184

144-
/* --- Content History --- */
185+
/* Content History */
145186
.info-card .card-content {
146187
padding: 10px 20px;
147188
display: flex;
@@ -156,7 +197,7 @@ h1::after {
156197
text-align: left;
157198
}
158199

159-
/* --- Content Members --- */
200+
/* Content Members */
160201
.member-card .member-card-content {
161202
padding: 10px 20px;
162203
display: grid;
@@ -171,12 +212,12 @@ h1::after {
171212
text-align: left;
172213
}
173214

174-
/* --- Content Concert Dates --- */
215+
/* Content Concert Dates */
175216
.concert-card .concert-card-content {
176217
padding: 10px 20px;
177-
display: grid;
178-
grid-template-columns: 1fr 1fr;
179-
gap: 5px 60px;
218+
display: flex;
219+
flex-direction: column;
220+
gap: 20px;
180221
}
181222

182223
.concert-card .concert-field {
@@ -186,41 +227,85 @@ h1::after {
186227
text-align: left;
187228
}
188229

189-
/* --- Return Button --- */
190-
.return {
191-
display: block;
192-
margin: 0 auto 0 auto;
193-
background: rgba(255, 102, 0, 0.6);
194-
border: 2px solid #FF6600;
195-
border-radius: 15px;
196-
color: white;
197-
padding: 10px 30px;
198-
font-family: 'Agrandir', Arial, sans-serif;
199-
font-weight: 600;
200-
font-size: 1em;
201-
text-transform: uppercase;
202-
letter-spacing: 1px;
203-
cursor: pointer;
204-
transition: all 0.3s ease;
205-
text-align: center;
230+
.concert-card .concert-location {
231+
font-weight: 700;
232+
margin-bottom: 5px;
233+
text-transform: capitalize;
206234
}
207235

208-
.return:hover {
209-
transform: scale(1.05);
210-
background: rgba(138, 43, 226, 0.6);
211-
border: 2px solid #8A2BE2;
212-
box-shadow: 0 8px 25px rgba(138, 43, 226, 0.4);
236+
.concert-card .concert-dates {
237+
display: grid;
238+
grid-template-columns: repeat(3, auto);
239+
gap: 5px 15px;
213240
}
214241

215-
/* --- Responsive --- */
216-
@media (max-width: 1500px) {
242+
.concert-card .concert-date {
243+
font-weight: 400;
244+
}
245+
246+
/* RESPONSIVE */
247+
@media (max-width: 1680px) {
248+
.page-header {
249+
display: flex;
250+
flex-direction: column;
251+
align-items: center;
252+
margin-top: 40px;
253+
padding: 12px 24px;
254+
height: auto;
255+
background: transparent;
256+
}
257+
258+
.page-header h1 {
259+
position: static;
260+
transform: none;
261+
margin: 0;
262+
font-size: 4.5em;
263+
font-weight: 900;
264+
color: white;
265+
text-transform: uppercase;
266+
letter-spacing: 2px;
267+
text-align: center;
268+
}
269+
270+
.page-header .underline {
271+
width: 60%;
272+
height: 2px;
273+
background-color: #FF6600;
274+
margin: 10px 0 0;
275+
}
276+
277+
.return {
278+
position: static;
279+
transform: none;
280+
margin-top: 40px;
281+
display: inline-flex;
282+
align-items: center;
283+
justify-content: center;
284+
padding: 14px 30px;
285+
background: rgba(255, 102, 0, 0.95);
286+
color: white;
287+
font-weight: 700;
288+
font-size: clamp(0.85em, 1.8vw, 1.05em);
289+
text-transform: uppercase;
290+
letter-spacing: 1px;
291+
border-radius: 6px;
292+
cursor: pointer;
293+
text-decoration: none;
294+
border: none;
295+
}
296+
217297
.main-layout {
218298
flex-direction: column;
219299
align-items: center;
220300
gap: 40px;
221-
margin: 70px 10%;
301+
margin: 20px auto 50px;
302+
max-width: 100%;
222303
}
223304

305+
.artist-image { order: 1; }
306+
.middle-side { order: 2; }
307+
.concert-side { order: 3; }
308+
224309
.artist-image,
225310
.middle-side,
226311
.concert-side {
@@ -235,27 +320,46 @@ h1::after {
235320
}
236321
}
237322

323+
@media (max-width: 768px) {
324+
.page-header {
325+
height: auto;
326+
padding: 12px;
327+
}
328+
.page-header h1 {
329+
font-size: 2.2em;
330+
}
331+
.return {
332+
padding: 8px 18px;
333+
margin-top: 12px;
334+
clip-path: polygon(0 50%, 20px 0, 100% 0, 100% 100%, 20px 100%);
335+
}
336+
.main-layout {
337+
margin-top: 20px;
338+
}
339+
}
340+
238341
@media (min-width: 425px) {
239342
.main-layout {
240343
gap: 60px;
344+
flex-wrap: nowrap;
345+
}
346+
347+
.artist-image {
348+
width: 500px;
349+
height: 500px;
350+
flex: 0 0 500px;
241351
}
242352

243353
.middle-side,
244354
.concert-side {
245-
min-width: 510px;
246355
gap: 50px;
356+
min-width: 510px;
247357
}
248358

249359
.concert-card {
250360
min-width: 510px;
251361
}
252362

253-
.artist-image {
254-
width: 500px;
255-
height: 500px;
256-
flex: 0 0 500px;
257-
}
258-
259363
h1 {
260364
font-size: 5em;
261365
}

0 commit comments

Comments
 (0)