aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pydis_site/static/css/events/base.css65
-rw-r--r--pydis_site/templates/events/index.html84
2 files changed, 98 insertions, 51 deletions
diff --git a/pydis_site/static/css/events/base.css b/pydis_site/static/css/events/base.css
index 3708bd57..b5cd69a3 100644
--- a/pydis_site/static/css/events/base.css
+++ b/pydis_site/static/css/events/base.css
@@ -23,3 +23,68 @@ pre {
border-radius: 10px;
max-width: 50%;
}
+
+/* CSS-only Masonry layout:
+ * https://tobiasahlin.com/blog/masonry-with-css/
+ *
+ * Adapted for responsiveness:
+ * - Mobile (<=700px) No columns at all
+ * - Tablets (700~900px) Two columns Masonry
+ * - Desktop+ (>=900px) Three columns Masonry
+ */
+@media (min-width: 700px) {
+ .event-gallery {
+ display: flex;
+ flex-flow: column wrap;
+ align-content: space-between;
+ }
+
+ @media (min-width: 900px) {
+ /* 3 columns */
+ .event-gallery {
+ /* Required. Must be only slightly taller than the tallest column */
+ height: 60rem;
+ }
+
+ .event-gallery .box {
+ width: calc(33% - 1rem);
+ margin-bottom: 1rem;
+ }
+
+ /* Reorder vertically */
+ .event-gallery .box:nth-child(3n+1) { order: 1; }
+ .event-gallery .box:nth-child(3n+2) { order: 2; }
+ .event-gallery .box:nth-child(3n) { order: 3; }
+
+ /* 2 line breaks to force new columns, for each gap between the three columns. */
+ .event-gallery::before, .event-gallery::after {
+ content: "";
+ flex-basis: 100%;
+ width: 0;
+ order: 2;
+ }
+ }
+
+ @media (max-width: 900px) {
+ /* 2 columns */
+ .event-gallery {
+ height: 80rem;
+ }
+
+ .event-gallery .box {
+ width: calc(50% - 1rem);
+ margin-bottom: 1rem;
+ }
+
+ .event-gallery .box:nth-child(2n+1) { order: 1; }
+ .event-gallery .box:nth-child(2n) { order: 2; }
+
+ /* 1 line break to force a new column, for the gap between the two columns. */
+ .event-gallery::before {
+ content: "";
+ flex-basis: 100%;
+ width: 0;
+ order: 1;
+ }
+ }
+}
diff --git a/pydis_site/templates/events/index.html b/pydis_site/templates/events/index.html
index 85278499..5ed3c61c 100644
--- a/pydis_site/templates/events/index.html
+++ b/pydis_site/templates/events/index.html
@@ -45,66 +45,48 @@
<h2 class="title is-4">All events</h2>
-<div class="columns is-multiline event-gallery">
-
- <div class="column is-one-third-desktop is-half-tablet">
- <div class="box">
- <h2 class="title is-4"><a href="{% url "events:page" path="code-jams" %}">Code Jams</a></h2>
- <p>Once a year we host a code jam for members of our server to participate in. The code jam is an event where we place you in a team with 5 other random server members. You then have 11 days to code some sort of application or program in Python. Your program must use the specified technology/framework and incorporate the theme chosen by the server.</p>
- </div>
+<div class="event-gallery">
+ <div class="box">
+ <h2 class="title is-4"><a href="{% url "events:page" path="code-jams" %}">Code Jams</a></h2>
+ <p>Once a year we host a code jam for members of our server to participate in. The code jam is an event where we place you in a team with 5 other random server members. You then have 11 days to code some sort of application or program in Python. Your program must use the specified technology/framework and incorporate the theme chosen by the server.</p>
</div>
-
- <div class="column is-one-third-desktop is-half-tablet">
- <div class="box">
- <h2 class="title is-4"><a href="{% url "events:page" path="pyweek" %}">PyWeek</a></h2>
- <p>For the past 15 years, PyWeek has been running a bi-annual game jam for the Python language. As of 2020, we are excited to say we are officially partnered with PyWeek to co-run these events.</p>
- <div class="has-text-centered">
- <img src="https://pyweek.readthedocs.io/en/latest/_static/pyweek.svg" style="max-width: 100%;" alt="PyWeek logo">
- </div>
+ <div class="box">
+ <h2 class="title is-4"><a href="{% url "events:page" path="pyweek" %}">PyWeek</a></h2>
+ <p>For the past 15 years, PyWeek has been running a bi-annual game jam for the Python language. As of 2020, we are excited to say we are officially partnered with PyWeek to co-run these events.</p>
+ <div class="has-text-centered">
+ <img src="https://pyweek.readthedocs.io/en/latest/_static/pyweek.svg" style="max-width: 100%;" alt="PyWeek logo">
</div>
</div>
-
- <div class="column is-one-third-desktop is-half-tablet">
- <div class="box">
- <h2 class="title is-4"><a href="{% url "events:page" path="pixels" %}">Pixels</a></h2>
- <p>A collaborative canvas where users paint pixel by pixel, by POSTing co-ordinates and a color code to an API.</p>
- <div class="has-text-centered">
- <img src="/static/images/events/pixels_logo_transparent.gif" alt="Logo for pixels">
- </div>
+ <div class="box">
+ <h2 class="title is-4"><a href="{% url "events:page" path="pixels" %}">Pixels</a></h2>
+ <p>A collaborative canvas where users paint pixel by pixel, by POSTing co-ordinates and a color code to an API.</p>
+ <div class="has-text-centered">
+ <img src="/static/images/events/pixels_logo_transparent.gif" alt="Logo for pixels">
</div>
</div>
-
- <div class="column is-one-third-desktop is-half-tablet">
- <div class="box">
- <h2 class="title is-4"><a href="{% url "events:page" path="adventofcode" %}">Advent of code</a></h2>
- <p>An advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like, including Python.</p>
- <div class="has-text-centered">
- <img src="https://raw.githubusercontent.com/python-discord/branding/main/events/christmas/server_icons/festive_256.gif" alt="Server icon for AoC">
- </div>
+ <div class="box">
+ <h2 class="title is-4"><a href="{% url "events:page" path="adventofcode" %}">Advent of code</a></h2>
+ <p>An advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like, including Python.</p>
+ <div class="has-text-centered">
+ <img src="https://raw.githubusercontent.com/python-discord/branding/main/events/christmas/server_icons/festive_256.gif" alt="Server icon for AoC">
</div>
</div>
-
- <div class="column is-one-third-desktop is-half-tablet">
- <div class="box">
- <h2 class="title is-4"><a href="{% url "events:page" path="revivalofcode" %}">Revival of Code</a></h2>
- <p>
- Revival of Code is a Python Discord hosted event where we release old Advent of Code puzzles from a previous year. The puzzles start off easy and gradually get more difficult, all while revealing a fun little story that is appropriate for some seasons more than others. Questions will be posted every other day, and you'll be able to discuss your solutions in dedicated threads.
- </p>
- <div class="has-text-centered">
- <img src="https://raw.githubusercontent.com/python-discord/branding/main/events/christmas/server_icons/festive_256.gif" alt="Server icon for AoC">
- </div>
+ <div class="box">
+ <h2 class="title is-4"><a href="{% url "events:page" path="revivalofcode" %}">Revival of Code</a></h2>
+ <p>
+ Revival of Code is a Python Discord hosted event where we release old Advent of Code puzzles from a previous year. The puzzles start off easy and gradually get more difficult, all while revealing a fun little story that is appropriate for some seasons more than others. Questions will be posted every other day, and you'll be able to discuss your solutions in dedicated threads.
+ </p>
+ <div class="has-text-centered">
+ <img src="https://raw.githubusercontent.com/python-discord/branding/main/events/christmas/server_icons/festive_256.gif" alt="Server icon for AoC">
</div>
</div>
-
- <div class="column is-one-third-desktop is-half-tablet">
- <div class="box">
- <h2 class="title is-4"><a href="{% url "events:page" path="game-jams" %}">Game Jams</a></h2>
- <p>The Game Jam is similar to our Code Jams, but smaller in scope. Instead of having to complete a qualifier
- and being teamed up with random strangers, members of our community can just sign-up individually or pair up
- with whoever they like.</p>
- <div class="has-text-centered">
- <img src="https://user-images.githubusercontent.com/33516116/77593036-5fb09780-6eeb-11ea-9feb-336b2e5e23de.png" alt="Game Jam 2020">
- </div>
+ <div class="box">
+ <h2 class="title is-4"><a href="{% url "events:page" path="game-jams" %}">Game Jams</a></h2>
+ <p>The Game Jam is similar to our Code Jams, but smaller in scope. Instead of having to complete a qualifier
+ and being teamed up with random strangers, members of our community can just sign-up individually or pair up
+ with whoever they like.</p>
+ <div class="has-text-centered">
+ <img src="https://user-images.githubusercontent.com/33516116/77593036-5fb09780-6eeb-11ea-9feb-336b2e5e23de.png" alt="Game Jam 2020">
</div>
</div>
</div>