forked from phc/website
319 lines
6.7 KiB
CSS
319 lines
6.7 KiB
CSS
/* @import './mixins.scss'; */
|
|
|
|
/*
|
|
Controls - for things like buttons, input, select
|
|
*/
|
|
|
|
@layer base {
|
|
button,
|
|
.button,
|
|
[role='button'] {
|
|
appearance: none;
|
|
|
|
background: #fff;
|
|
|
|
/* @include neo-brutalist-card; */
|
|
border: 3px solid #222;
|
|
border-radius: 6px;
|
|
box-shadow: 4px 4px 0 0 #222;
|
|
|
|
transition: all 64ms linear;
|
|
|
|
display: grid;
|
|
place-content: center;
|
|
grid-auto-flow: column;
|
|
gap: 0.25rem;
|
|
|
|
&:hover {
|
|
transform: translate(-1px, -1px);
|
|
box-shadow: 5px 5px 0 0 #222;
|
|
}
|
|
|
|
&:active {
|
|
transform: translate(2px, 2px);
|
|
box-shadow: 2px 2px 0 0 #222;
|
|
}
|
|
|
|
& {
|
|
padding: 0.25rem 1.5rem;
|
|
|
|
text-decoration: none;
|
|
color: #222;
|
|
|
|
font-family: var(--font-secondary); /* TODO: check if this is a global variable and replace */
|
|
font-weight: 600;
|
|
|
|
cursor: pointer;
|
|
}
|
|
|
|
&.primary {
|
|
background: #1e6733;
|
|
color: #f4fef7;
|
|
|
|
&:hover {
|
|
background: #2b8b47;
|
|
}
|
|
}
|
|
|
|
&.icon {
|
|
padding: 0.25rem;
|
|
margin-right: 0.25rem;
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
&.flat {
|
|
background: transparent;
|
|
color: #222;
|
|
|
|
border: none;
|
|
box-shadow: none;
|
|
|
|
&:hover {
|
|
background: #0002;
|
|
}
|
|
}
|
|
}
|
|
|
|
input[type='text'],
|
|
input[type='password'] {
|
|
width: 100%;
|
|
min-height: 1.75rem;
|
|
|
|
/* @include neo-brutalist-card; */
|
|
border: 3px solid #222;
|
|
border-radius: 6px;
|
|
box-shadow: 4px 4px 0 0 #222;
|
|
|
|
padding: 0 0.25rem;
|
|
|
|
&:hover {
|
|
background: #fdfdfd;
|
|
}
|
|
}
|
|
|
|
input[type='checkbox'] {
|
|
appearance: none;
|
|
-webkit-appearance: none;
|
|
-moz-appearance: none;
|
|
|
|
width: calc(1.5rem + 1px);
|
|
height: calc(1.5rem + 1px);
|
|
|
|
background: #fff;
|
|
border: 3px solid #222;
|
|
border-radius: 4px;
|
|
box-shadow: 3px 3px 0 0 #222;
|
|
|
|
position: relative;
|
|
cursor: pointer;
|
|
|
|
transition: all 64ms linear;
|
|
|
|
&:hover {
|
|
transform: translate(-1px, -1px);
|
|
box-shadow: 4px 4px 0 0 #222;
|
|
}
|
|
|
|
&:active {
|
|
transform: translate(1px, 1px);
|
|
box-shadow: 2px 2px 0 0 #222;
|
|
}
|
|
|
|
&:checked {
|
|
background: #1e6733;
|
|
|
|
&::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
|
|
width: 0.8rem;
|
|
height: 0.8rem;
|
|
background: #1e6733;
|
|
|
|
clip-path: polygon(10% 55%, 35% 75%, 85% 25%, 90% 35%, 40% 95%, 5% 60%);
|
|
}
|
|
|
|
&:hover {
|
|
background: #2b8b47;
|
|
}
|
|
}
|
|
|
|
&:disabled {
|
|
background: #eee;
|
|
border-color: #888;
|
|
box-shadow: 3px 3px 0 0 #888;
|
|
cursor: not-allowed;
|
|
|
|
&:hover {
|
|
transform: none;
|
|
box-shadow: 3px 3px 0 0 #888;
|
|
}
|
|
|
|
&:checked {
|
|
background: #aaa;
|
|
|
|
&::after {
|
|
background: #666;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.star {
|
|
&:checked::after {
|
|
background: rgb(255, 197, 49);
|
|
clip-path: polygon(
|
|
50% 0%,
|
|
61% 35%,
|
|
98% 35%,
|
|
68% 57%,
|
|
79% 91%,
|
|
50% 70%,
|
|
21% 91%,
|
|
32% 57%,
|
|
2% 35%,
|
|
39% 35%
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
form {
|
|
display: grid;
|
|
gap: 1rem;
|
|
padding: 2rem;
|
|
|
|
background: #38adc1;
|
|
|
|
min-width: 40ch;
|
|
|
|
/* @include neo-brutalist-card($size: 3px, $offset: 9px); */
|
|
border: 3px solid #222;
|
|
border-radius: 6px;
|
|
box-shadow: 9px 9px 0 0 #222;
|
|
|
|
button,
|
|
.button,
|
|
[role='button'] {
|
|
padding-left: 3rem;
|
|
padding-right: 3rem;
|
|
|
|
&.primary {
|
|
background: #1c7f90;
|
|
color: #f4fef7;
|
|
|
|
&:hover {
|
|
background: #4ea2b1;
|
|
}
|
|
}
|
|
|
|
&:disabled {
|
|
background: #aaa;
|
|
color: #666;
|
|
cursor: not-allowed;
|
|
|
|
&:active {
|
|
transform: none;
|
|
box-shadow: 4px 4px 0 0 #222;
|
|
}
|
|
|
|
&:hover {
|
|
background: #aaa;
|
|
transform: none;
|
|
box-shadow: 4px 4px 0 0 #222;
|
|
}
|
|
}
|
|
}
|
|
|
|
hr {
|
|
border: none;
|
|
width: 100%;
|
|
height: 2px;
|
|
background: #0003;
|
|
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
> .row {
|
|
display: grid;
|
|
grid-template-columns: auto 1fr;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
|
|
span.material-symbols-outlined {
|
|
font-size: 1.5rem;
|
|
color: #222;
|
|
}
|
|
|
|
input[type='text'],
|
|
input[type='password'] {
|
|
width: 100%;
|
|
min-height: 2.5rem;
|
|
padding-left: 0.5rem;
|
|
}
|
|
}
|
|
|
|
.right {
|
|
justify-self: end;
|
|
}
|
|
.left {
|
|
justify-self: start;
|
|
}
|
|
.center {
|
|
justify-self: center;
|
|
}
|
|
|
|
@media screen and (max-width: 1024px) {
|
|
min-width: 0;
|
|
padding: 1.5rem;
|
|
gap: 1.5rem;
|
|
}
|
|
}
|
|
|
|
details {
|
|
width: 100%;
|
|
|
|
summary {
|
|
display: grid;
|
|
place-content: center;
|
|
place-items: center;
|
|
|
|
list-style: none;
|
|
&::-webkit-details-marker {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.details-openned,
|
|
.details-closed {
|
|
display: contents;
|
|
}
|
|
|
|
&:not([open]) {
|
|
.details-openned {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
&[open] {
|
|
summary {
|
|
padding-bottom: 1rem;
|
|
}
|
|
|
|
.details-closed {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
@media screen and (max-width: 1024px) {
|
|
/* TODO: check if this is a global variable and replace */
|
|
summary {
|
|
place-content: stretch;
|
|
place-items: stretch;
|
|
}
|
|
}
|
|
}
|
|
}
|