diff options
-rw-r--r-- | pydis_site/static/css/events/base.css | 65 | ||||
-rw-r--r-- | pydis_site/templates/events/index.html | 84 |
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> |