diff --git a/accessibility.css b/accessibility.css new file mode 100644 index 0000000..6d71394 --- /dev/null +++ b/accessibility.css @@ -0,0 +1,90 @@ +/* --------------------------------- +- choosable accessibility settings - +---------------------------------- */ + +/* - font settings - */ + +/* jetbrains mono */ +:root:has(#font-jbm:checked) { + --font-family: 'JetBrains Mono', 'Segoe UI', Tahoma, Geneva, Verdana, system-ui, sans-serif; + + .navbar .nav-base.nav-right.nav-systray span { + margin: 0px -.1rem; + } +} + +/* atkinson hyperlegible next */ +:root:has(#font-ahn:checked) { + --font-family: 'Atkinson Hyperlegible Next', 'Segoe UI', Tahoma, Geneva, Verdana, system-ui, sans-serif; +} + +/* inter */ +:root:has(#font-inter:checked) { + --font-family: 'Inter', 'Segoe UI', Tahoma, Geneva, Verdana, system-ui, sans-serif; +} + +/* (browser) sans serif */ +:root:has(#font-sans-serif:checked) { + --font-family: sans-serif, 'Segoe UI', Tahoma, Geneva, Verdana, system-ui; +} + +/* (browser) serif */ +:root:has(#font-serif:checked) { + --font-family: serif, 'Segoe UI', Tahoma, Geneva, Verdana, system-ui, sans-serif; +} + +/* (browser) monospace */ +:root:has(#font-monospace:checked) { + --font-family: monospace, 'Segoe UI', Tahoma, Geneva, Verdana, system-ui, sans-serif; +} + +/* - misc - */ + +/* disable forced uncapitalization */ +:root:has(#uncapitalization:checked) { + body { + text-transform: none !important; + } +} + +/* disable background gradient */ +:root:has(#disable-bg:checked) { + body { + background: var(--background) !important; + } +} + +/* disable window animations */ +:root:has(#disable-window-animations:checked) { + .window { + animation: unset !important; + } +} + +/* disable focus animations */ +:root:has(#disable-focus-animations:checked) { + .window { + transition: unset !important; + } + .window:hover { + transition: unset !important; + animation: unset !important; + box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px !important; + } + + .navbar { + transition: unset !important; + } + .navbar:hover { + transition: unset !important; + animation: unset !important; + background-color: color-mix(in srgb, var(--accent) 30%, transparent) !important; + } +} + +/* disable custom alt text popup */ +:root:has(#disable-alttext:checked) { + .alt-popup { + display: none !important; + } +} \ No newline at end of file diff --git a/animations.css b/animations.css new file mode 100644 index 0000000..5591adf --- /dev/null +++ b/animations.css @@ -0,0 +1,17 @@ +/* various reusable animations */ + +@keyframes window-appear { + 0% { opacity: 0; transform: scale(0.5, 0.5); } + 100% { opacity: 1; transform: scale(1, 1); } +} + +@keyframes rainbow { + 0% { filter: hue-rotate(0deg) contrast(150%) saturate(150%); } + 100% { filter: hue-rotate(360deg) contrast(150%) saturate(150%); } +} + +@keyframes bg-gradient { + 0% { background-position: 0% 27% } + 50% { background-position: 100% 74% } + 100% { background-position: 0% 27% } +} \ No newline at end of file diff --git a/at-media.css b/at-media.css new file mode 100644 index 0000000..e519f08 --- /dev/null +++ b/at-media.css @@ -0,0 +1,161 @@ +/* --------------------------------------------------------------- +- the @media section of things and anything else related to that - +--------------------------------------------------------------- */ + +/* disable certain animations if user has animations disabled on their system */ + +@media (prefers-reduced-motion) { + body { + background: var(--background) !important; + animation: unset !important; + -moz-animation: unset !important; + -webkit-animation: unset !important; + } +} + +/* modify widths and spacing depending on the size of the display */ + +@media screen and (max-width: 1083px) { + .navbar { + min-height: 1.8em !important; + max-height: 1.8em !important; + flex-wrap: wrap; + + .nav-base { + padding: .27em .2em !important; + } + .nav-left { + height: 1.9rem; + left: -.4rem; + } + .nav-left::before { + margin-left: -10rem !important; + } + .nav-baselink { + display: none !important; + } + .nav-baselink-mobile { + display: block !important; + position: absolute; + max-width: 40em; + width: max-content; + z-index: 9999; + padding: unset !important; + + a { + display: inline-flex; + align-items: center; + color: var(--foreground); + padding: .6em .7em; + text-decoration: none; + } + + a:hover { + color: var(--accent); + text-decoration: underline; + } + + ul { + background-color: var(--background); + border-bottom-right-radius: 1rem; + border-right: var(--accent) solid .15rem; + border-bottom: var(--accent) solid .15rem; + max-width: 10em; + width: auto; + margin-top: unset !important; + + li { + list-style-type: none; + margin-left: -2em; + padding-bottom: unset !important; + span { + padding-right: .4em; + } + } + } + } + .nav-baselink-mobile::before { + display: none; + } + .nav-baselink-mobile summary { + display: block !important; + margin-top: 0px !important; + background-color: var(--accent); + text-decoration: unset !important; + color: var(--background); + padding: .3em; + border-bottom-right-radius: 1rem; + width: 5.7em; + + i:not(:first-child) { + margin-left: -.5em; + margin-right: -.9em; + opacity: .6; + } + } + .nav-links { + display: none !important; + } + + .nav-right { + height: 1.4rem; + } + .nav-accessibility { + right: 7.6rem; + min-width: 1.6rem; + span { + transform: scale(1.3) translateY(-.05rem) translateX(.2rem); + } + } + .nav-systray { + padding: .27em .5em !important; + } + } + + .window:not(#footer) { + summary { + div:first-child { + padding: .3rem .4rem .3rem .4rem; + } + + div:nth-child(3) { + display: none !important; + } + + div:nth-child(4) { + margin-left: auto !important; + } + } + + animation: unset !important; + + section, article { + padding: .5rem; + } + + border-top: var(--accent) solid .15rem; + border-bottom: var(--accent) solid .15rem; + border-left: unset !important; + border-right: unset !important; + border-radius: unset !important; + + margin-bottom: .8em; + } + + /* window when its the first one on the page */ + .window:nth-child(2) { + margin-top: 4rem; + } +} + +@media screen and (max-width: 540px) { + details#footer.window { + border-top: var(--accent) solid .15rem; + border-bottom: var(--accent) solid .15rem; + border-left: unset !important; + border-right: unset !important; + border-radius: unset !important; + + margin-bottom: .8em; + } +} \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index 00ee4c7..c01aff6 100644 --- a/blog/index.html +++ b/blog/index.html @@ -8,7 +8,7 @@ - + diff --git a/ruben.css b/colors-ruben.css similarity index 100% rename from ruben.css rename to colors-ruben.css diff --git a/donate/index.html b/donate/index.html index 2d00703..1f37dd3 100644 --- a/donate/index.html +++ b/donate/index.html @@ -6,11 +6,16 @@
is set under .terminal */ +/* text formatting and config stuff */ /* headings */ h1, h1 a { @@ -510,8 +127,12 @@ h1 a:hover { min-width: max-content; } -/* summary styling */ +/* audio */ +audio { + border-radius: 3rem; +} +/* summary styling */ summary { display: flex; } @@ -543,7 +164,10 @@ details.styled[open] { } } -/* alt text popup */ +/* --------------- +- alt text popup - +--------------- */ + .alt-popup { position: fixed; text-transform: none !important; @@ -559,347 +183,4 @@ details.styled[open] { pointer-events: none; opacity: 0; transition: opacity 0.4s; -} - -/* audio */ -audio { - border-radius: 3rem; -} - -/* footer/credits */ - -footer { - .fediring { - a { - display: inline-grid; - font-size: 1.5rem; - color: var(--green); - margin-bottom: .5em; - vertical-align: bottom; - } - [href="https://fediring.net"] { - color: var(--foreground); - background: color-mix(in srgb, var(--purple) 25%, transparent); - padding: 0px 10px 0px 10px; - border-radius: 5px; - } - [href="https://keithhacks.cyou/furryring.php"] { - color: var(--foreground); - background: color-mix(in srgb, var(--sapphire) 25%, transparent); - padding: 0px 10px 0px 10px; - border-radius: 5px; - } - [href="https://stellophiliac.github.io/roboring"] { - color: var(--foreground); - background: color-mix(in srgb, var(--comment) 25%, transparent); - padding: 0px 10px 0px 10px; - border-radius: 5px; - } - [href*="prev"] { - background: color-mix(in srgb, var(--orange) 25%, transparent); - padding: 5px 6px; - border-radius: 5px; - span { - background-color: var(--orange) !important; - } - } - [href*="next"] { - background: color-mix(in srgb, var(--green) 25%, transparent); - padding: 5px 6px; - border-radius: 5px; - span { - background-color: var(--green) !important; - } - } - } - p, a { - text-align: center; - font-size: 0.938rem; - margin: .2em 0px .2em; - text-decoration: none; - } - img { - padding-top: 18px; - max-width: 30%; - display: flex; - margin-left: auto; - margin-right: auto; - transition: 1s animation; - } - img:hover { - animation: spin 5s infinite linear; - } - .inner-footer { - text-align: center; - padding-top: 14px; - padding-bottom: 14px; - a { - width: 3rem; - height: 3rem; - display: inline-block; - vertical-align: middle; - align-content: center; - border-radius: .5rem; - - span { - transform: scale(1.58); - } - } - } -} - -/* various reusable animations */ - -@keyframes blink { - 0% { opacity: 0; } - 50% { opacity: 1.0; } - 100% { opacity: 0; } -} - -@keyframes blink-navbar-text { - 0% { opacity: 0; } - 50% { opacity: .8; } - 100% { opacity: 0; } -} - -@keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } -} - -@keyframes spin-y { - /* values: 128px, 256px, 348px, 396px*/ - 0% { transform: perspective(396px) rotateY(0); } - 100% { transform: perspective(396px) rotateY(360deg); } -} - -@keyframes rainbow { - 0% { filter: hue-rotate(0deg) contrast(150%) saturate(150%); } - 100% { filter: hue-rotate(360deg) contrast(150%) saturate(150%); } -} - -@keyframes bg-gradient { - 0% { background-position: 0% 27% } - 50% { background-position: 100% 74% } - 100% { background-position: 0% 27% } -} - -@-moz-keyframes blink { - 0% { opacity: 0; } - 50% { opacity: 1.0; } - 100% { opacity: 0; } -} - -@-moz-keyframes blink-navbar-text { - 0% { opacity: 0; } - 50% { opacity: .8; } - 100% { opacity: 0; } -} - -@-moz-keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } -} - -@-moz-keyframes spin-y { - /* values: 128px, 256px, 348px, 396px*/ - 0% { transform: perspective(396px) rotateY(0); } - 100% { transform: perspective(396px) rotateY(360deg); } -} - -@-moz-keyframes rainbow { - 0% { filter: hue-rotate(0deg) contrast(150%) saturate(150%); } - 100% { filter: hue-rotate(360deg) contrast(150%) saturate(150%); } -} - -@-moz-keyframes bg-gradient { - 0% { background-position: 0% 27% } - 50% { background-position: 100% 74% } - 100% { background-position: 0% 27% } -} - -@-webkit-keyframes blink { - 0% { opacity: 0; } - 50% { opacity: 1.0; } - 100% { opacity: 0; } -} - -@-webkit-keyframes blink-navbar-text { - 0% { opacity: 0; } - 50% { opacity: .8; } - 100% { opacity: 0; } -} - -@-webkit-keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } -} - -@-webkit-keyframes spin-y { - /* values: 128px, 256px, 348px, 396px*/ - 0% { transform: perspective(396px) rotateY(0); } - 100% { transform: perspective(396px) rotateY(360deg); } -} - -@-webkit-keyframes rainbow { - 0% { filter: hue-rotate(0deg) contrast(150%) saturate(150%); } - 100% { filter: hue-rotate(360deg) contrast(150%) saturate(150%); } -} - -@-webkit-keyframes bg-gradient { - 0% { background-position: 0% 27% } - 50% { background-position: 100% 74% } - 100% { background-position: 0% 27% } -} - -/* disable certain animations if user has animations disabled on their system */ - -@media (prefers-reduced-motion) { - body { - background: var(--background) !important; - animation: unset !important; - -moz-animation: unset !important; - -webkit-animation: unset !important; - } -} - -/* modify widths and spacing depending on the size of the display */ - -@media screen and (max-width: 1083px) { - .navbar { - min-height: 1.8em !important; - max-height: 1.8em !important; - flex-wrap: wrap; - - .nav-base { - padding: .27em .2em !important; - } - .nav-left { - height: 1.9rem; - } - .nav-baselink { - display: none !important; - } - .nav-baselink-mobile { - display: block !important; - position: absolute; - max-width: 40em; - width: max-content; - z-index: 9999; - padding: unset !important; - - a { - display: inline-flex; - align-items: center; - color: var(--foreground); - padding: .6em .7em; - text-decoration: none; - } - - a:hover { - color: var(--accent); - text-decoration: underline; - } - - ul { - background-color: var(--background); - border-bottom-right-radius: 1rem; - border-right: var(--accent) solid .15rem; - border-bottom: var(--accent) solid .15rem; - max-width: 10em; - width: auto; - margin-top: unset !important; - - li { - list-style-type: none; - margin-left: -2em; - padding-bottom: unset !important; - span { - padding-right: .4em; - } - } - } - } - .nav-baselink-mobile::before { - display: none; - } - .nav-baselink-mobile summary { - display: block !important; - margin-top: 0px !important; - background-color: var(--accent); - text-decoration: unset !important; - color: var(--background); - padding: .3em; - border-bottom-right-radius: 1rem; - width: 5.7em; - - i:not(:first-child) { - margin-left: -.5em; - margin-right: -.9em; - opacity: .6; - } - } - .nav-links { - display: none !important; - } - - .nav-right { - height: 1.4rem; - } - .nav-accessibility { - right: 7.6rem; - min-width: 1.6rem; - span { - transform: scale(1.3) translateY(-.05rem) translateX(.2rem); - } - } - .nav-systray { - padding: .27em .5em !important; - } - } - - .window:not(#footer) { - summary { - div:first-child { - padding: .3rem .4rem .3rem .4rem; - } - - div:nth-child(3) { - display: none !important; - } - - div:nth-child(4) { - margin-left: auto !important; - } - } - - section, article { - padding: .5rem; - } - - border-top: var(--accent) solid .15rem; - border-bottom: var(--accent) solid .15rem; - border-left: unset !important; - border-right: unset !important; - border-radius: unset !important; - - margin-bottom: .8em; - } - - /* window when its the first one on the page */ - .window:nth-child(2) { - margin-top: 4rem; - } -} - -@media screen and (max-width: 540px) { - details#footer.window { - border-top: var(--accent) solid .15rem; - border-bottom: var(--accent) solid .15rem; - border-left: unset !important; - border-right: unset !important; - border-radius: unset !important; - - margin-bottom: .8em; - } -} +} \ No newline at end of file diff --git a/window.css b/window.css new file mode 100644 index 0000000..2218d2f --- /dev/null +++ b/window.css @@ -0,0 +1,187 @@ +/* --------------- +- window styling - +---------------- */ + +.window { + summary { + display: inline-flex; + min-width: 100%; + background-color: color-mix(in srgb, var(--accent) 20%, var(--background)); + opacity: .8; + text-align: center; + vertical-align: middle; + overflow: clip; + transition: .2s opacity; + + div:first-child { + background: color-mix(in srgb, var(--accent) 40%, transparent); + padding: .4rem .4rem .2rem 1rem; + border-right: .2rem solid var(--accent); + border-bottom-right-radius: 1rem; + + span { + background-color: var(--foreground); + } + } + + a { + padding: .3rem 0rem .3rem .5rem; + text-decoration: none; + color: var(--foreground); + } + + a:hover { + text-decoration: underline; + } + + [class^="tabler--"] { + transform: scale(1.1); + } + + div:nth-child(3) { + margin-left: auto !important; + padding: .2rem .5rem .2rem 0rem; + + span { + text-align: center; + vertical-align: middle; + background-color: var(--foreground); + } + + /* maximize button (which does nothing) */ + span:nth-child(2) { + opacity: .6; + cursor: not-allowed; + } + } + + /* close button */ + div:nth-child(4) { + background: color-mix(in srgb, var(--accent) 40%, transparent); + padding: .4rem .5rem .2rem .6rem; + border-left: .2rem solid var(--accent); + border-bottom-left-radius: 1rem; + color: var(--foreground); + + transition: background .2s; + transition: background-color .2s; + } + + /* close button (animated on hover) */ + div:nth-child(4):hover { + background: var(--red); + + transition: background .2s; + + span { + background-color: var(--background); + transition: background-color .2s; + } + } + } + + section, article { + padding: .8rem; + } + + background-color: var(--background); + color: var(--foreground); + + border: var(--accent) solid .15rem; + border-radius: .6rem; + + max-width: 60em; + overflow: clip; + + margin-left: auto; + margin-right: auto; + margin-bottom: 2em; + + transition: .2s box-shadow; + animation-fill-mode: backwards; + + box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px; +} + +/* window styling when hovered */ +.window:hover { + summary { + opacity: 1; + transition: .2s opacity; + } +} + +/* window styling when open (default state) */ +.window[open] { + summary { + opacity: 1; + border-bottom: .1rem solid var(--accent); + + transition: .2s opacity; + } + + border-radius: 2rem .6rem 2rem .6rem; +} + +.window:hover { + box-shadow: var(--accent) 0px 0px 0px .3rem; + + transition: .2s box-shadow; +} + +/* window when its the first one on the page */ +.window:nth-child(2) { + margin-top: 5rem; + + animation: .3s ease-out .2s 1 window-appear; + animation-fill-mode: backwards; +} + +/* rest of the windows if they exist, to finish the rest of the animations */ +.window:nth-child(3) { + animation: .3s ease-out .4s 1 window-appear; + animation-fill-mode: backwards; +} + +.window:nth-child(4) { + animation: .3s ease-out .6s 1 window-appear; + animation-fill-mode: backwards; +} + +.window:nth-child(5) { + animation: .3s ease-out .8s 1 window-appear; + animation-fill-mode: backwards; +} + +.window:nth-child(6) { + animation: .3s ease-out 1s 1 window-appear; + animation-fill-mode: backwards; +} + +.window:nth-child(7) { + animation: .3s ease-out 1.2s 1 window-appear; + animation-fill-mode: backwards; +} + +.window:nth-child(8) { + animation: .3s ease-out 1.4s 1 window-appear; + animation-fill-mode: backwards; +} + +/* ------------------ +- the footer window - +------------------ */ + +footer { + max-width: 30em; + margin-left: auto; + margin-right: auto; + + details > summary > a { + padding: .3rem 0rem .3rem 1rem !important; + } + + section, article { + padding: 1rem !important; + } +} \ No newline at end of file