diff --git a/images/bg-classroom.jpg b/images/bg-classroom.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3f633c268b97f934a98859dabc611ba9a571fc67 Binary files /dev/null and b/images/bg-classroom.jpg differ diff --git a/index.html b/index.html new file mode 100644 index 0000000000000000000000000000000000000000..81c2c0aaafff89b7d6fcb3fa375d5b4ddebbb4df --- /dev/null +++ b/index.html @@ -0,0 +1,56 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>UFHOUR</title> + + <!-- Meta --> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + + <!-- Styles --> + <link rel="stylesheet" href="styles/main.css" /> + <link rel="stylesheet" href="styles/navbar.css" /> + + <!-- Fonts --> + <link rel="preconnect" href="https://fonts.googleapis.com" /> + <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> + + <!-- Roboto --> + <link + rel="stylesheet" + href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" + /> + <!-- Material Icons --> + <link + rel="stylesheet" + href="https://fonts.googleapis.com/icon?family=Material+Icons" + /> + + <!-- Scripts --> + <script defer src="scripts/behaviours.js"></script> + </head> + <body> + <div id="menu-area"> + <ul> + <li><a>FR</a></li> + <li><a>EN</a></li> + <li><a>CZ</a></li> + </ul> + <button> + <i class="material-icons">translate</i> + </button> + + <nav> + <ul> + <li><a>À propos</a></li> + <li><a>Suggestions</a></li> + <li><a>Admin</a></li> + </ul> + <button> + <i class="material-icons">menu</i> + <span>Menu</span> + </button> + </nav> + </div> + </body> +</html> diff --git a/scripts/behaviours.js b/scripts/behaviours.js new file mode 100644 index 0000000000000000000000000000000000000000..d2e1ae2560f0bbcd285c0df7db3797cd4a21b8cf --- /dev/null +++ b/scripts/behaviours.js @@ -0,0 +1,14 @@ + +const nav_button = document.querySelector("nav > button") +const nav_menu = document.querySelector("nav > ul"); + +const lang_button = document.querySelector("#menu-area > button"); +const lang_menu = document.querySelector("#menu-area > ul"); + +nav_button.onclick = (e) => { + nav_menu.classList.toggle("shown"); +} + +lang_button.onclick = (e) => { + lang_menu.classList.toggle("shown"); +} \ No newline at end of file diff --git a/styles/main.css b/styles/main.css new file mode 100644 index 0000000000000000000000000000000000000000..44a7f1cc2a7de1cb531d7ab158ba54f07c2fce77 --- /dev/null +++ b/styles/main.css @@ -0,0 +1,43 @@ +* { + font-family: "Roboto", sans-serif; + margin: 0; +} + +body { + background: url("../images/bg-classroom.jpg"); + background-size: cover 100vh; + background-repeat: no-repeat; +} + +button { + /* Style */ + color: white; + background: #3763ff; + border: none; + border-radius: 5px; + font-weight: 500; + font-size: 0.9rem; + + /* Sizing */ + height: 3rem; + width: 100%; + padding-left: auto; + padding-right: auto; + + /* Transition */ + transition: background 0.2s; +} + +button > span, +button > i { + vertical-align: middle; +} + +button > i { + margin-right: 0.5rem; +} + +button:hover { + filter: brightness(115%); + cursor: pointer; +} diff --git a/styles/navbar.css b/styles/navbar.css new file mode 100644 index 0000000000000000000000000000000000000000..22e60d00ca0fdf4b73010483b011c86a9a3509da --- /dev/null +++ b/styles/navbar.css @@ -0,0 +1,106 @@ + +#menu-area { + position: fixed; + bottom: 1rem; + right: 1rem; + display: flex; + align-items: flex-end; + gap: 0.5em; +} + +nav { + perspective: 200px; + perspective-origin: bottom; +} + +#menu-area ul { + /* Style */ + list-style-type: none; + color: white; + background: rgba(34, 34, 34, 0.8); + border-radius: 10px; +} + +nav > ul { + /* Sizing */ + width: 9rem; + padding: 1rem 0 1rem 0; + margin-bottom: 0.5rem; + + /* Display */ + visibility: hidden; + opacity: 0; + transform: rotateX(15deg) translateZ(-2rem) translateY(-1rem); + + /* Transition */ + transition-duration: .3s; + transition-property: visibility transform opacity max-height; + transition-delay: 0.3s 0s 0s 0s; +} + +nav > ul.shown { + transform: none; + opacity: 1; + visibility: visible; +} + +nav > ul > li { + font-size: 0.9rem; + text-align: center; + font-weight: 300; +} + +nav > ul > li:not(:last-child) { + margin-bottom: 0.8rem; +} + +nav > button, #menu-area > button { + border-radius: 10px; + background: #4d4d4d85; +} + +nav > button:hover, #menu-area > button:hover { + background: #3763ff; +} + +#menu-area > button { + width: 3rem; +} + +#menu-area > button > i { + margin-right: 0; +} + +#menu-area { + perspective: 200px; + perspective-origin: bottom; +} + +#menu-area > ul { + /* Sizing */ + padding-left: 1em; + padding-right: 1em; + height: 3rem; + + /* Layout */ + display: flex; + align-items: center; + align-content: center; + gap: 0.5rem; + + /* Display */ + visibility: hidden; + opacity: 0; + transform: rotateY(-15deg) translateZ(-2rem) translateX(-1rem); + + /* Transition */ + transition-duration: .3s; + transition-property: visibility transform opacity max-height; + transition-delay: 0.3s 0s 0s 0s; +} + +#menu-area > ul.shown { + transform: none; + opacity: 1; + visibility: visible; +} \ No newline at end of file diff --git a/tables.sql b/tables.sql new file mode 100644 index 0000000000000000000000000000000000000000..c4dc0cab44d410e78f26922527c3361ed7db1689 --- /dev/null +++ b/tables.sql @@ -0,0 +1,19 @@ +CREATE TABLE `Rooms`( + `id` VARCHAR(255) NOT NULL, + `type` INT NOT NULL, + `location` INT NOT NULL +); +ALTER TABLE + `Rooms` ADD PRIMARY KEY `rooms_id_primary`(`id`); +CREATE TABLE `Calendar`( + `date` DATE NOT NULL, + `id` VARCHAR(255) NOT NULL, + `start_time` TIME NOT NULL, + `end_time` TIME NOT NULL +); +ALTER TABLE + `Calendar` ADD PRIMARY KEY `calendar_date_primary`(`date`); +ALTER TABLE + `Calendar` ADD PRIMARY KEY `calendar_id_primary`(`id`); +ALTER TABLE + `Calendar` ADD PRIMARY KEY `calendar_start_time_primary`(`start_time`); \ No newline at end of file