Files
pepperplus-ui/src/App.css
2026-01-29 16:31:21 +01:00

291 lines
4.5 KiB
CSS

/*
This program has been developed by students from the bachelor Computer Science at Utrecht
University within the Software Project course.
© Copyright Utrecht University (Department of Information and Computing Sciences)
*/
.logopepper {
height: 8em;
padding: 1.5em;
will-change: filter;
transition: filter 300ms;
}
.logopepper:hover {
filter: drop-shadow(0 0 10em #ff0707);
}
.logopepper.react:hover {
filter: drop-shadow(0 0 10em #4eff14aa);
}
@keyframes logo-pepper-spin {
0% {
transform: rotate(0);
}
25% {
transform: rotate(20deg);
}
75% {
transform: rotate(-20deg);
}
100% {
transform: rotate(0);
}
}
@keyframes logo-pepper-scale {
from {
transform: scale(1,1);
}
to {
transform: scale(1.5,1.5);
}
}
@media (prefers-reduced-motion: no-preference) {
.logopepper:hover {
animation: logo-pepper-spin infinite 1s linear;
}
}
@media (prefers-reduced-motion: no-preference) {
.logoPepperScaling:hover {
animation: logo-pepper-scale infinite 1s linear alternate;
}
}
button.reset {
background-color: crimson;
color: white;
}
button.reset:hover {
background-color: darkred;
}
button.movePage {
position: fixed; /* Position the button relative to the viewport (screen),
not inside its parent. It stays in place even when you scroll. */
top: 50%; /* Place the button halfway down from the top of the screen. */
/* Stick the button to the left edge of the screen. */
border: 3px solid black;
outline: 1px solid white;
transform: translateY(-50%);
background-color: aquamarine;
color: white;
}
button.movePage.left{
left: 5%;
}
button.movePage.right{
right: 5%;
}
button.movePage:hover{
background-color: rgb(0, 176, 176);
}
#root {
display: flex;
flex-direction: column;
}
header {
position: sticky;
top: 0;
left: 0;
right: 0;
padding: 1rem;
display: flex;
gap: 1rem;
align-items: center;
justify-content: center;
background-color: var(--accent-color);
backdrop-filter: blur(10px);
z-index: 1; /* Otherwise any translated elements render above the blur?? */
}
main {
padding: 1rem 0;
}
input[type="checkbox"] {
cursor: pointer;
}
.flex-row {
display: flex;
flex-direction: row;
}
.flex-col {
display: flex;
flex-direction: column;
}
.flex-1 {
flex: 1;
}
.flex-wrap {
flex-wrap: wrap;
}
.min-height-0 {
min-height: 0;
}
.scroll-y {
overflow-y: scroll;
}
.align-center {
align-items: center;
}
.justify-center {
justify-content: center;
}
.justify-between {
justify-content: space-between;
}
.gap-sm {
gap: .25rem;
}
.gap-md {
gap: .5rem;
}
.gap-lg {
gap: 1rem;
}
.margin-0 {
margin: 0;
}
.margin-lg {
margin: 1rem;
}
.padding-0 {
padding: 0;
}
.padding-sm {
padding: .25rem;
}
.padding-md {
padding: .5rem;
}
.padding-lg {
padding: 1rem;
}
.padding-h-lg {
padding-left: 1rem;
padding-right: 1rem;
}
.padding-b-lg {
padding-bottom: 1rem;
}
.round-sm, .round-md, .round-lg {
overflow: hidden;
}
.round-sm {
border-radius: .25rem;
}
.round-md {
border-radius: .5rem;
}
.round-lg {
border-radius: 1rem;
}
.border-sm {
border: 1px solid canvastext;
}
.border-md {
border: 2px solid canvastext;
}
.border-lg {
border: 3px solid canvastext;
}
.shadow-sm {
box-shadow: 0 0 0.25rem rgba(0, 0, 0, 0.25);
}
.shadow-md {
box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.25);
}
.shadow-lg {
box-shadow: 0 0 1rem rgba(0, 0, 0, 0.25);
}
@media (prefers-color-scheme: dark) {
.shadow-sm {
box-shadow: 0 0 0.25rem rgba(0, 0, 0, 0.5);
}
.shadow-md {
box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.5);
}
.shadow-lg {
box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);
}
}
.font-small {
font-size: .75rem;
}
.font-medium {
font-size: 1rem;
}
.font-large {
font-size: 1.25rem;
}
.mono {
font-family: ui-monospace, monospace;
}
.bold {
font-weight: bold;
}
.relative {
position: relative;
}
.clickable {
cursor: pointer;
&:hover {
text-decoration: underline;
}
}
.user-select-all {
-webkit-user-select: all;
user-select: all;
}
.user-select-none {
-webkit-user-select: none;
user-select: none;
}
button.no-button {
background: none;
border: none;
padding: 0;
cursor: pointer;
color: inherit;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
.flex-center-x {
display: flex;
justify-content: center; /* horizontal centering */
text-align: center; /* center multi-line text */
width: 100%; /* allow it to stretch */
flex-wrap: wrap; /* optional: let text wrap naturally */
}