Files
genera-tor/src/styles/_global.scss
T

263 lines
3.7 KiB
SCSS

@use 'fonts';
@use 'colors';
@use 'sass:color';
// Global scrollbar style
::-webkit-scrollbar {
width: 15px;
}
::-webkit-scrollbar-track {
background: #333;
}
::-webkit-scrollbar-thumb {
background: #888;
}
::-webkit-scrollbar-thumb:hover {
background: #555;
}
body,
html {
padding: 0;
margin: 0;
min-height: 100vh;
background-color: colors.$bgCol;
font-family: 'Libre Franklin', sans-serif;
font-weight: 500;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
a {
color: white;
text-decoration: none;
&:hover {
color: colors.$accentCol;
}
}
button {
border: none;
outline: none;
background: none;
transition:
color 90ms ease-in,
border 90ms ease-in;
font-family: 'Libre Franklin', sans-serif;
cursor: pointer;
font-weight: bold;
font-size: 1em;
}
button.g-button {
text-align: center;
color: inherit;
transition:
color 100ms ease-in,
background-color 100ms ease-in;
&.action {
background-color: colors.$bgColDarker;
padding: 0.5em;
&:focus-visible {
outline: 2px solid colors.$accentCol;
}
&:hover:not([data-disabled='true']) {
background-color: color.adjust(colors.$bgColDarker, $lightness: 15%);
}
}
&.option {
position: relative;
margin: 0 0.25em;
padding: 0.25em;
&:focus-visible::after {
content: '';
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 2px;
background-color: colors.$accentCol;
}
&[data-active='true'] {
color: colors.$accentCol;
}
}
&.text {
padding: 0;
&:focus-visible {
color: colors.$accentCol;
}
}
&.icon {
display: flex;
justify-content: center;
align-items: center;
&:focus-visible {
outline: 1px solid white;
}
}
}
// Text styles
.text {
&--accent {
color: colors.$accentCol;
}
&--warn {
color: colors.$warnCol;
}
}
// Select style
select {
border: 2px solid black;
background: none;
padding: 0.1em 0;
border-radius: 0.3em;
text-align: center;
border: 2px solid #888;
color: white;
outline: none;
margin: 0;
padding: 0.15em;
&[disabled] {
color: gray;
}
&:focus-visible {
border-color: colors.$accentCol;
}
}
option[disabled] {
color: #ccc;
}
// List style
ul {
padding: 0;
margin: 0;
list-style: none;
text-align: center;
}
// Modal
.g-modal {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 1000;
display: flex;
justify-content: center;
align-items: center;
.modal-bg {
position: fixed;
width: 100vw;
height: 100vh;
cursor: pointer;
background-color: #000000aa;
}
.modal-content {
position: relative;
z-index: 1001;
overflow: auto;
}
}
// Checkbox
label.g-checkbox {
display: inline-block;
margin: 0.25em 0;
cursor: pointer;
color: #aaa;
user-select: none;
-moz-user-select: none;
span {
transition: color 125ms ease;
}
span::before {
content: '\2717';
display: inline-block;
// background-color: #aaa;
border-radius: 50%;
margin-right: 0.25em;
transition: background-color 125ms ease;
}
input {
width: 0;
opacity: 0;
&:focus-visible + span {
text-decoration: underline;
}
&:checked + span {
color: greenyellow;
&::before {
content: '\2713';
// background-color: greenyellow;
}
}
}
}
// Tooltip
[data-tooltip] {
cursor: pointer;
}
[data-tooltip]:hover::after,
[data-tooltip]:focus::after {
position: absolute;
content: attr(data-tooltip);
color: white;
background: black;
padding: 0.5em;
margin: 0.25em;
max-width: 300px;
z-index: 100;
}