pages/styles.css
2024-12-17 14:42:17 +01:00

417 lines
8.6 KiB
CSS

/*
interstellar_development website
Copyright (C) 2024 interstellar_development
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
:root {
--background-color: #0b0c1d;
--text-color: #c7d5e0;
--accent-color: #ffdd55;
--accent-hover-color: #ffd700;
--dark-blue: rgba(31, 42, 64, 1);
--dark-blue-translucent: rgba(31, 42, 64, 0.9);
--light-blue: rgba(46, 58, 95, 0.8);
--border-radius: 8px;
--transition-speed: 0.3s;
--box-shadow: 0 2px 15px rgba(0, 0, 0, 0.7);
--font-size-large: 2.5em;
--font-size-medium: 1.8em;
}
/* Reset and normalize */
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
/* Body styling */
body {
background-color: var(--background-color);
color: var(--text-color);
font-family: "Arial", sans-serif;
line-height: 1.6;
padding: 0 20px;
background: url("images/star.jpg") no-repeat center center fixed;
background-size: cover;
}
/* Header Styling */
/* Header Styling */
header {
background-color: var(--dark-blue);
height: 5em;
position: fixed;
width: 100%;
top: 0;
left: 0;
padding: 15px 20px;
box-shadow: var(--box-shadow);
backdrop-filter: blur(5px);
z-index: 100;
margin-bottom: 0px;
}
/* Burger Menu Styling */
.burger-menu {
background: none;
border: none;
color: #ffffff;
font-size: 1.8em;
cursor: pointer;
display: block;
padding: 0;
z-index: 110;
}
/* Dropdown Menu (Hidden by Default) */
.div-menu {
z-index: 1;
background-color: var(--light-blue);
width: 100%;
position: fixed;
top: 0;
left: 0;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
padding: 0;
margin-top: 0px;
height: auto;
}
.div-menu li {
margin: 0;
padding: 1em;
z-index: 1;
}
.div-menu a {
width: 100%;
padding: 8px 0;
text-align: center;
color: #ffffff;
text-decoration: none;
border-radius: 5px;
transition: background-color 0.3s ease;
display: block;
}
.div-menu a:hover {
background-color: #34495e;
}
/* Menu Animation and Styling */
.menu {
display: flex;
flex-direction: column;
background-color: var(--light-blue);
position: absolute;
top: -50vh;
left: 0;
width: 100%;
z-index: 5;
padding: 0;
margin: 0;
list-style: none;
justify-content: center;
text-align: center;
font-weight: bolder;
font-size: large;
transition: top 0.5s ease-in-out;
}
.menu.active {
display: flex;
top: 4em;
z-index: 5;
}
/* Header Content Container */
.header-content {
display: flex;
justify-content: space-between;
align-items: center;
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
z-index: 10;
}
/* Project Name Styling */
.project-name {
font-size: 2em;
color: var(--accent-color);
text-decoration: none;
transition: color var(--transition-speed), text-shadow var(--transition-speed);
}
.project-name:hover {
color: var(--accent-hover-color);
text-shadow: 0 0 10px var(--accent-hover-color);
}
/* Article styling */
article {
max-width: 800px;
margin: 6.25em auto;
padding: 20px;
background-color: var(--dark-blue-translucent);
border-radius: var(--border-radius);
box-shadow: var(--box-shadow);
backdrop-filter: blur(5px);
}
article h1 {
font-size: var(--font-size-large);
margin-bottom: 20px;
color: var(--accent-color);
text-shadow: 0 0 15px var(--accent-color);
}
article p {
color: var(--text-color);
margin-bottom: 20px;
hyphens: auto;
}
/* Download list */
article h2 {
font-size: var(--font-size-medium);
margin: 20px 0 10px;
color: var(--accent-color);
text-shadow: 0 0 10px var(--accent-color);
}
article ul {
list-style-type: none;
padding: 0;
}
article ul a li {
background-color: var(--light-blue);
margin-bottom: 10px;
border-radius: var(--border-radius);
padding: 10px;
transition: background-color var(--transition-speed), box-shadow var(--transition-speed);
}
article ul a li:hover {
background-color: rgba(68, 80, 124, 0.9);
box-shadow: 0 0 10px var(--accent-color);
}
article ul a li{
text-decoration: none;
color: var(--accent-color);
font-weight: bold;
}
/* Footer styling */
footer {
background-color: var(--dark-blue);
padding: 10px 20px;
color: var(--text-color);
width: 100%;
position: fixed;
bottom: 0;
left: 0;
box-shadow: 0 -2px 15px rgba(0, 0, 0, 0.7);
backdrop-filter: blur(5px);
}
.footer-content {
text-align: center;
font-size: 0.9em;
}
/* Card container styles */
.cards {
display: grid;
grid-template-columns: repeat(3, 1fr); /* Display 3 cards per line */
gap: 20px;
margin-top: 50px;
}
/* Ensure the <a> tag covers the entire card */
section .card a {
display: flex; /* Use flex to make <a> fill the card and align content */
flex-direction: column;
justify-content: center; /* Vertically center the content */
align-items: center; /* Horizontally center the content */
text-decoration: none;
color: inherit;
height: 100%;
width: 100%;
padding: 20px;
}
/* Card styles */
section .card {
text-align: center;
list-style: none;
background: linear-gradient(180deg, rgba(0, 0, 50, 0.9), rgba(10, 10, 100, 0.9), rgba(30, 30, 150, 0.9));
border-radius: 12px;
box-shadow: 0 5px 20px rgba(0, 0, 50, 0.8), 0 0 10px rgba(255, 255, 255, 0.1);
border: 1px solid #2e3a60;
position: relative;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: space-between;
transition: background 0.5s ease, transform 0.4s ease, box-shadow 0.5s ease;
}
/* Hover effect */
section .card:hover {
transform: translateY(-8px);
background: linear-gradient(180deg, rgba(30, 30, 150, 0.9), rgba(40, 0, 100, 0.9), rgba(100, 0, 150, 0.9));
box-shadow: 0 10px 30px rgba(0, 0, 100, 0.7), 0 0 20px rgba(255, 221, 85, 0.8);
}
section .card img {
height: 80px;
width: 80px;
object-fit: cover;
border-radius: 50%;
margin: 0 auto 15px;
box-shadow: 0 0 15px rgba(255, 221, 85, 0.5);
}
section .card h3 {
margin: 10px 0;
font-size: 1.4em;
font-weight: bold;
color: rgba(255, 221, 85, 1);
text-shadow: 0 0 15px rgba(255, 221, 85, 0.9);
}
section .card p {
flex-grow: 1;
color: rgba(200, 220, 255, 0.8);
margin-bottom: 10px;
text-shadow: 0 0 8px rgba(255, 255, 255, 0.2);
}
section .card::before {
content: "";
position: absolute;
top: -20px;
right: -20px;
width: 60px;
height: 60px;
border-radius: 50%;
background: radial-gradient(circle, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.02));
box-shadow: 0 0 50px rgba(255, 255, 255, 0.5);
animation: spin 8s linear infinite;
}
section .card .suit-icon {
position: absolute;
bottom: 10px;
right: 10px;
width: 24px;
height: 24px;
opacity: 0.7;
transition: opacity var(--transition-speed);
}
section .card:hover .suit-icon {
opacity: 1;
}
/* Keyframes for spinning element */
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
/* Form styling */
form {
max-width: 600px;
margin: 0 auto;
background: var(--dark-blue-translucent);
padding: 20px;
border-radius: var(--border-radius);
box-shadow: var(--box-shadow);
backdrop-filter: blur(5px);
}
form label,
form input,
form textarea {
color: var(--text-color);
background-color: var(--light-blue);
border: 1px solid #3a4b7f;
border-radius: var(--border-radius);
padding: 10px;
margin: 10px 0;
width: 100%;
}
form input[type="submit"] {
background-color: var(--accent-color);
color: #fff;
border: none;
cursor: pointer;
transition: background-color var(--transition-speed);
}
form input[type="submit"]:hover {
background-color: var(--accent-hover-color);
}
/* Footer Styling */
footer {
background-color: var(--dark-blue);
padding: 10px 20px;
color: var(--text-color);
text-align: center;
font-size: 0.9em;
}
@media (max-width: 768px) {
.cards {
grid-template-columns: 1fr; /* 1 card per line on smaller screens */
}
header ul {
flex-direction: column;
gap: 10px;
}
article {
margin: 12em 10px;
padding: 15px;
}
section .card {
padding: 12px;
}
section .card img {
height: 60px;
width: 60px;
}
.project-name{
font-size: 1.3em;
}
}