-
Notifications
You must be signed in to change notification settings - Fork 44
Ball 2026 #871
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
MattyTheHacker
wants to merge
12
commits into
main
Choose a base branch
from
balls26
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Ball 2026 #871
Changes from all commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
905ccb2
Begin work on ball 26 pages
MattyTheHacker 1b183da
Merge branch 'main' into balls26
MattyTheHacker bf71f9f
Apply suggestions from code review
MattyTheHacker 21a9895
Merge main into balls26
automatic-pr-updater[bot] b5344ba
Add new image
MattyTheHacker 94f7a51
Update FAQ
MattyTheHacker 6a7a9a9
More updates
MattyTheHacker 8ad8b6c
Bump dependencies
MattyTheHacker 080241b
Merge main into balls26
automatic-pr-updater[bot] 52943b6
Merge main into balls26
automatic-pr-updater[bot] 518de33
Improve link
MattyTheHacker fd88f49
Update dependencies
MattyTheHacker File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -90,4 +90,4 @@ DEPENDENCIES | |
| webrick | ||
|
|
||
| BUNDLED WITH | ||
| 4.0.3 | ||
| 4.0.4 | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,81 @@ | ||
| name: CSS BALL | ||
| year: 2026 | ||
| location: Macdonald Burlington Hotel | ||
| date: 27th March | ||
|
|
||
| tickets: | ||
| - type: 3 Course | ||
| member-price: £35 | ||
| non-member-price: £45 | ||
| - type: Non-Food | ||
| member-price: £22 | ||
| non-member-price: £28 | ||
|
|
||
| links: | ||
| - text: Menu | ||
| url: '/ball/2026/menu' | ||
| - text: Tickets | ||
| url: '#tickets' | ||
| - text: FAQs | ||
| url: '#faq' | ||
|
|
||
| menu-links: | ||
| - text: Home | ||
| url: '/ball/2026' | ||
| - text: Tickets | ||
| url: '/ball/2026#tickets' | ||
| - text: FAQs | ||
| url: '/ball/2026#faq' | ||
|
|
||
| menu: | ||
| starters: | ||
| - dish: Ham hock & pea terrine, wholegrain honey mustard & parsley | ||
| type: | ||
| - dish: Tomato & basil soup | ||
| type: vegetarian, vegan, gluten free | ||
| mains: | ||
| - dish: Honey glazed pork belly, mustard mash, seasonal vegetables, apple cider jus | ||
| type: gluten free | ||
| - dish: Pumpkin & sage ravioli, creamy mushroom sauce, parmesan | ||
| type: vegetarian, vegan on request | ||
| dessert: | ||
| - dish: Chocolate brownie, chocolate sauce, vanilla ice cream | ||
| type: vegan on request, gluten free on request | ||
| - dish: Raspberry cheesecake, chantilly cream, berries glaze | ||
| type: | ||
|
|
||
| faq: | ||
| - question: What is a Ball? | ||
| answer: A ball is a solid or hollow spherical or egg-shaped object that is kicked, thrown, or hit in a game. <br><br> Ok but seriously, a Ball is an opportunity to come together and celebrate the year. Many societies hold them for their members and we're no different. Our annual Ball is the biggest night of the year so if you're not attending you're really missing out. | ||
| - question: What will be there? | ||
| answer: The ball will have a 3 course meal, a bar, and a dancefloor. We will also have some bangin' tunes, a photobooth, and a photographer. | ||
| - question: Is the venue accessible? | ||
| answer: Yes! There is step free access and accessible toilets on the same floor. Full details can be found on the <a href="https://www.accessable.co.uk/birmingham-city-council/access-guides/macdonald-burlington-hotel">AccessAble website</a>. | ||
| - question: When can I buy tickets? | ||
| answer: Soon! We'll be opening ticket sales in early February. Keep an eye on our social media and website for updates. | ||
| - question: How much do tickets cost? | ||
| answer: We have a number of different ticket options available and all of our member tickets are cheaper than the last 2 years! The Guild will also add on a £1 booking fee - There's nothing we can do about that sadly. Take a look at the <a href=/ball/2026/#tickets> tickets page </a> for more details. | ||
| - question: Can I bring a guest? | ||
| answer: Absolutely! Non-Member tickets will be available alongside member tickets. If your guest is not a student they will need to create a guest account on the Guild website. If they're a member of staff or current student resitting externally or on a leave of absence they can still get membership prices, but will need to follow the steps on the <a href=/membership>membership page</a>. | ||
| - question: Will I need to show my ticket when I arrive? | ||
| answer: No, but we will ask to see your student ID or any other form of ID to confirm your identity. You'll then be given a wristband so you can come and go as you wish. | ||
| - question: What time should I arrive? | ||
| answer: You are welcome to arrive any time from 7pm onwards, but we ask you to arrive no later than 7:45 as we expect to begin dinner service at 8pm. | ||
| - question: How do I get there? | ||
| answer: The Burlington is in the city centre - right across the street from New Street Station. <br><br>If you're coming from campus or Selly Oak, the 61 / 63 bus will get you to the otherside of New Street, from which it's a 5 minute walk. <br>From the Vale, you'll want the X22 or X21 and for Harborne you'll want the 23 / 24 all of which drop you just the other side of New Street. <br><br>There's also a tram stop right in front of the hotel if you're coming from the Jewellery Quarter or Wolverhampton. | ||
| - question: What will happen when I get there? | ||
| answer: When you arrive, come either up the stairs, or the lift, to the 1st floor. From there you'll come to the reception desk and will be asked for either your student ID or some other ID. We'll then tick your name off on the list and give you a wristband and optionally your physical ticket if you hadn't picked this up already. You'll then be able to sit down and wait for food service or hang out and get some pictures in the photobooth! <br><br>Food service will start around 8pm and expect to last approximately 2 hours. It'll then be up to you to sit and chat, boogy on the dance-floor, head over to the bar for another drink, or pop round to the photobooth to capture some great memories! | ||
| - question: Who will I sit next to for dinner? | ||
| answer: We'll ask you for the names of up to 2 people who you would like to sit near. We'll try our best to sit people near their friends, but we can't make promises you'll be next to both.<br><br> If you bring a +1 we will make sure you're sat with them, but we can only do this if you say so in the seating preference or contact us separately.<br><br> We can also only fit 10 people per table, so if you can please organise within your friend group who you would like to sit next to who and we will do our best to factor this in. | ||
| - question: What about my dietary requirements? | ||
| answer: The venue can handle catering for most dietary requirements, and there are vegan and gluten free options. Make sure to let us know any dietary requirements when you purchase your ticket. For more info on the menu please check the <a href=/ball/2026/menu>menu page</a>. | ||
| - question: Can I bring my own alcohol? | ||
| answer: No outside alcohol is permitted at the venue. There will be a fully stocked bar available for you to purchase drinks from throughout the night. | ||
| - question: Is any of the meat halal? | ||
| answer: No, unfortunately none of the meat options on the menu are halal. There are vegetarian, vegan and gluten free options available though. | ||
| - question: What should I wear? | ||
| answer: Dress to impress! <br>Don your fanciest frocks, smartest suits or whatever you feel fabulous in. It's going to be the big night of the year so feel free to go all out! | ||
| - question: Will I be photographed? | ||
| answer: Yes. We'll have a photographer taking photos all night so we can share them all with you afterwards. If you don't want to be in photos, please speak to our lovely photographer on the night or email us in advance. | ||
| - question: I bought a ticket but can't attend anymore. | ||
| answer: Oh no! That's okay though. You're welcome to sell your ticket to someone else, though we will not be able to offer a refund, nor are we able to change the meal options or dietary requirements once a ticket has been purchased. Please also contact committee to let us know who you've sold your ticket to. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,121 @@ | ||
| --- | ||
| layout: page | ||
| styles: | ||
| - /css/main.css | ||
| - /css/ball/2026/main.css | ||
| - "https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" | ||
| title: CSS Ball | ||
| favicon: /ball/favicon.ico | ||
| --- | ||
|
|
||
| {% assign ball = site.data.ball['2026'] %} | ||
|
|
||
| <div class="text-center-div margin-top margin-bottom section-details"> | ||
| <h1 class="title"> | ||
| {{ball.name}} {{ball.year}} | ||
| </h1> | ||
| <h2> | ||
| <span class="avoidwrap">{{ball.location}}</span> • <span class="avoidwrap">{{ball.date}}</span> | ||
| </h2> | ||
|
|
||
| <h3 id="count"><br></h3> | ||
|
|
||
| {% for link in ball.links %} | ||
| <a href='{{link.url}}' class="button {% if link.url == '' %}empty"{% else %}" href='{{link.url}}' {% endif %}> | ||
| {{link.text}}{% if link.url == '' %} (Coming Soon){% endif %}</a> | ||
| {% endfor %} | ||
| </div> | ||
| <hr class="bleed-bottom"> | ||
| <div class="text-center-div margin-top margin-bottom section-info" id="venue"> | ||
| <h2 class="subtitle mobile-only">The Venue</h2> | ||
| <img class="image" src="/assets/images/ball-26/CSS Ball 2025 Group Photo.jpg" alt="Image of the Horton Suite, where the CSS Ball is being held."> | ||
| <div class="description-left text-center-div"> | ||
| <h2 class="subtitle">The Venue</h2> | ||
| <p class="text-block">Macdonald Burlington Hotel<br><br> | ||
| We'll have exclusive access to several rooms and facilities including a dedicated bar area, gorgeous dining room, and of course the dancefloor!<br><br> | ||
| We'll also have a cloakroom available to store coats and bags. | ||
| </p> | ||
| </div> | ||
| </div> | ||
| <hr class="bleed-top"> | ||
| <div class="section-tickets" id="tickets"> | ||
| <div class="icon"> | ||
| <img class="icon" src="/assets/images/ball-2025-ticket-icon.png", alt="A cartoon image of a ticket with the text 'CSS Ball, Fazeley Studios, 26 April, Admit One'"/> | ||
MattyTheHacker marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| </div> | ||
| <div class="text text-center-div"> | ||
| <h2 class="subtitle">Tickets</h2> | ||
| <p class="text-block">We have several different ticket types, designed to give you the most options possible! <br><br> Ticket prices for members are heavily discounted so be sure to pick up a membership if you haven't already! | ||
| <br> | ||
| <table class="ticket-table"> | ||
| <tr> | ||
| <th><p class="text-block">Ticket Type</p></th> | ||
| <th><p class="text-block">Members' Price</p></th> | ||
| <th><p class="text-block">Non-Members' Price</p></th> | ||
| </tr> | ||
| {% for ticket in ball.tickets %} | ||
| <tr> | ||
| <td><p class="text-block">{{ ticket.type }}</p></td> | ||
| <td><p class="text-block"><span class="highlight">{{ ticket.member-price }}</span></p></td> | ||
| <td><p class="text-block"><span class="highlight">{{ ticket.non-member-price }}</span></p></td> | ||
| </tr> | ||
| {% endfor %} | ||
|
|
||
| </table> | ||
| <br> | ||
| <div class="ticket-buttons"> | ||
| <a class="button" href="https://www.guildofstudents.com/events/6531/12923/">Buy Tickets</a> | ||
| <a class="button" href="https://cssbham.com/join">Buy Membership</a> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| <hr> | ||
| <div class="text-center-div margin-bottom section-faq" id="faq"> | ||
| <h2 class="subtitle">FAQs</h2> | ||
| {% for qanda in ball.faq %} | ||
| <div class="faq"> | ||
| <h3 class="subsubtitle question">{{ qanda.question }}</h3> | ||
| <p class="text-block answer">{{ qanda.answer }}</p> | ||
| </div> | ||
| {% endfor %} | ||
| </div> | ||
| <hr> | ||
| <div class="margin-top margin-bottom section-info"> | ||
| <div id="map" style="width: 100%; height: 300px;"></div> | ||
| </div> | ||
| <hr> | ||
|
|
||
| <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script> | ||
| <script> | ||
| const pos = [52.47881, -1.89882]; | ||
|
|
||
| let L = window.L; | ||
| let map = L.map('map').setView(pos, 17); | ||
|
|
||
| L.marker(pos).addTo(map); | ||
| L.tooltip(pos, {content: 'Burlington Hotel', permanent: true, offset: [5, 0]}).addTo(map); | ||
|
|
||
| L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { | ||
| maxZoom: 19, | ||
| attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>' | ||
| }).addTo(map); | ||
|
|
||
| const countDownDate = new Date("Mar 27, 2026 19:00:00").getTime(); | ||
|
|
||
| (function updateTimer() { | ||
| let now = new Date().getTime(); | ||
| let distance = countDownDate - now; | ||
| let days = Math.floor(distance / (1000 * 60 * 60 * 24)); | ||
| let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); | ||
| let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); | ||
| let seconds = Math.floor((distance % (1000 * 60)) / 1000); | ||
|
|
||
| document.getElementById("count").innerHTML = days + " <span>days</span> " + hours + " <span>hours</span> " | ||
| + minutes + " <span>minutes</span> " + seconds + " <span>seconds</span>"; | ||
|
|
||
| if (distance < 0) { | ||
| document.getElementById("count").innerHTML = "<a href='https://cssbham.com/join'>cssbham.com/join</a>"; | ||
| } else { | ||
| setTimeout(updateTimer, 1000) | ||
| } | ||
| })(); | ||
| </script> | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| --- | ||
| layout: page | ||
| styles: | ||
| - /css/main.css | ||
| - /css/ball/2026/main.css | ||
| title: CSS Ball | ||
| favicon: /ball/favicon.ico | ||
| --- | ||
|
|
||
| {% assign ball = site.data.ball['2026'] %} | ||
|
|
||
| <div class="text-center-div margin-top margin-bottom section-details"> | ||
| <h1 class="title"> | ||
| {{ ball.name }} {{ ball.year }} | ||
| </h1> | ||
|
|
||
| <h2> | ||
| <span class="avoidwrap">{{ball.location}}</span> • <span class="avoidwrap">{{ball.date}}</span> | ||
| </h2> | ||
|
|
||
| {% for link in ball.menu-links %} | ||
| <a href='{{link.url}}' class="button {% if link.url == '' %}empty"{% else %}" href='{{link.url}}' {% endif %}> | ||
MattyTheHacker marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| {{link.text}}{% if link.url == '' %} (Coming Soon){% endif %}</a> | ||
| {% endfor %} | ||
| </div> | ||
| <hr> | ||
| <div class="text-center-div menu margin-bottom"> | ||
| <h2 class="subtitle">Menu</h2> | ||
| <div class="text-center-div margin-bottom menu-footer"> | ||
| <p class="text-block"> | ||
| The venue will alter your chosen dish to account for any dietary requirements. Please ensure to enter any allergy or dietary information when you purchase your ticket. | ||
| If a dietary requirement means that the dish cannot be altered to meet your requirements the venue will provide an alternative. | ||
| </p> | ||
| </div> | ||
| {% for section in ball.menu %} | ||
| <hr class="small"> | ||
| <h3 class="menu-section-title">{{ section[0] | capitalize }}</h3> | ||
| {% assign first = false %} | ||
| {% for item in section[1] %} | ||
| {% if first != false %}<div class="menu-item-separator">- OR -</div>{% endif %} | ||
| <div class="menu-item-container"> | ||
| <h2 class="menu-item">{{ item.dish }}</h2> | ||
| <br> | ||
| {% if item.type %} | ||
| <h3 class="menu-type">{{ item.type }}</h3> | ||
| {% endif %} | ||
| </div> | ||
| {% assign first = true %} | ||
| {% endfor %} | ||
| {% endfor %} | ||
| </div> | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.