el.xwx.moe/styles/globals.css
2023-11-20 12:48:41 -05:00

284 lines
4.5 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
html,
body {
scroll-behavior: smooth;
}
/* Hide scrollbar */
.hide-scrollbar::-webkit-scrollbar {
display: none;
}
.hide-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}
::selection {
background-color: #0ea4e93c;
color: white;
}
.hyphens {
hyphens: auto;
}
.rotate {
transition: transform 0.1s ease;
transform: rotate(-90deg);
}
.rotate-reverse {
transition: transform 0.1s ease;
transform: rotate(0deg);
}
.fade-in {
animation: fade-in-animation 100ms;
}
@keyframes fade-in-animation {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.slide-up {
animation: slide-up-animation 70ms;
}
.slide-down {
animation: slide-down-animation 70ms;
}
@keyframes slide-down-animation {
0% {
transform: translateY(-15%);
opacity: 0;
}
100% {
transform: translateY(0);
opacity: 1;
}
}
@keyframes slide-up-animation {
0% {
transform: translateY(15%);
opacity: 0;
}
100% {
transform: translateY(0);
opacity: 1;
}
}
.slide-right {
animation: slide-right-animation 200ms;
}
@keyframes slide-right-animation {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(0);
}
}
.slide-right-with-fade {
animation: slide-right-animation 150ms;
}
@keyframes slide-right-animation {
0% {
transform: translateX(-50%);
opacity: 0;
}
100% {
transform: translateX(0);
opacity: 1;
}
}
.spin {
animation: spin 2s linear infinite;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
/* For react-colorful */
.color-picker .react-colorful {
width: 100%;
height: 7.5rem;
}
.color-picker .react-colorful__hue {
height: 1rem;
}
.color-picker .react-colorful__pointer {
width: 1.3rem;
height: 1.3rem;
}
/* For the Link banner */
.link-banner {
z-index: 0;
border-radius: 1rem;
height: fit-content;
}
/* Theme */
@layer base {
body {
@apply dark:bg-neutral-900 bg-white text-black dark:text-white;
}
}
/* react-select */
@layer components {
.react-select-container .react-select__control {
@apply dark:bg-neutral-950 bg-gray-50 dark:border-neutral-700 dark:hover:border-neutral-500;
}
.react-select-container {
@apply dark:border-neutral-700;
}
.react-select-container .react-select__menu {
@apply dark:bg-neutral-900 dark:border-neutral-700 border;
}
.react-select-container .react-select__option {
@apply dark:hover:bg-neutral-800;
}
.react-select-container .react-select__input-container,
.react-select-container .react-select__single-value {
@apply dark:text-white;
}
}
.react-select__clear-indicator * {
display: none;
width: 0;
margin: 0;
padding: 0;
}
.primary-btn-gradient {
box-shadow: inset 0px -10px 10px #0071b7;
}
.primary-btn-gradient:hover {
box-shadow: inset 0px -15px 10px #059bf8;
}
.line-break * {
overflow-y: hidden;
}
/* Reader view custom stylings */
.reader-view {
line-height: 2.8rem;
}
.reader-view p {
font-size: 1.15rem;
line-height: 2.5rem;
}
.reader-view h1 {
font-size: 2.2rem;
}
.reader-view h2 {
line-height: 4rem;
font-size: 1.9rem;
}
.reader-view h3 {
line-height: 3.5rem;
font-size: 1.6rem;
}
.reader-view h4 {
font-size: 1.3rem;
}
.reader-view h5 {
font-size: 1.1rem;
}
.reader-view li {
list-style: inside;
margin-left: 2rem;
}
.reader-view a {
text-decoration: underline;
}
.reader-view b {
font-weight: bolder;
}
.reader-view pre,
.reader-view code {
font-family: "Courier New", Courier, monospace;
}
.reader-view blockquote {
opacity: 50%;
padding-left: 1.5rem;
border-left: solid 3px;
}
.reader-view img {
margin: auto;
margin-top: 2rem;
margin-bottom: 2rem;
border-radius: 10px;
}
.reader-view pre {
padding: 1rem;
line-height: normal;
}
.reader-view code {
padding: 0.15rem 0.4rem 0.15rem 0.4rem;
}
[class="dark"] .reader-view code,
[class="dark"] .reader-view pre {
background-color: rgb(49, 49, 49);
border-radius: 8px;
}
[class="light"] .reader-view code,
[class="light"] .reader-view pre {
background-color: rgb(230, 230, 230);
border-radius: 8px;
}
.rainbow {
background: linear-gradient(
45deg,
#ff00004b,
#ff99004b,
#33cc334b,
#0099cc4b,
#9900cc4b,
#ff33cc4b
);
background-size: 400% 400%;
animation: rainbow 30s linear infinite;
}
@keyframes rainbow {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}