diff --git a/src/app/airstrip_one/0/components/BeegText.css.ts b/src/app/airstrip_one/0/components/BeegText.css.ts index 41cfa18..58d2d13 100644 --- a/src/app/airstrip_one/0/components/BeegText.css.ts +++ b/src/app/airstrip_one/0/components/BeegText.css.ts @@ -1,34 +1,34 @@ -import { style } from '@vanilla-extract/css'; - -export const beeg_container = style({ - position: 'relative', - width: 'max-content', - height: 'max-content', -}); - -const beeg = style({ - position: 'absolute', - fontSize: '1.75em', - '@media': { - 'screen and (min-width: 768px)': { - fontSize: '3em', - } - } -}); - -export const beeg_dummy = style([beeg, { - position: 'static', - color: 'transparent', -}]); - -export const beeg_foreground = style([beeg, { - background: 'linear-gradient(90deg, rgba(255,0,0,1) 0%, rgba(255,255,0,1) 16%, rgba(0,255,0,1) 33%, rgba(0,255,255,1) 50%, rgba(0,0,255,1) 66%, rgba(255,0,255,1) 83%, rgba(255,0,0,1) 100%)', - backgroundClip: 'text', - color: 'transparent', -}]); - -export const beeg_background = style([beeg, { - left: '-0.1em', - top: ' 0.1em', - color: 'black', -}]); +import { style } from '@vanilla-extract/css'; + +export const beeg_container = style({ + position: 'relative', + width: 'max-content', + height: 'max-content', +}); + +const beeg = style({ + position: 'absolute', + fontSize: '1.75em', + '@media': { + 'screen and (min-width: 768px)': { + fontSize: '3em', + } + } +}); + +export const beeg_dummy = style([beeg, { + position: 'static', + color: 'transparent', +}]); + +export const beeg_foreground = style([beeg, { + background: 'linear-gradient(90deg, rgba(255,0,0,1) 0%, rgba(255,255,0,1) 16%, rgba(0,255,0,1) 33%, rgba(0,255,255,1) 50%, rgba(0,0,255,1) 66%, rgba(255,0,255,1) 83%, rgba(255,0,0,1) 100%)', + backgroundClip: 'text', + color: 'transparent', +}]); + +export const beeg_background = style([beeg, { + left: '-0.1em', + top: ' 0.1em', + color: 'black', +}]); diff --git a/src/app/airstrip_one/0/components/BeegText.tsx b/src/app/airstrip_one/0/components/BeegText.tsx index 5ed9701..c4c71de 100644 --- a/src/app/airstrip_one/0/components/BeegText.tsx +++ b/src/app/airstrip_one/0/components/BeegText.tsx @@ -1,16 +1,16 @@ -import { - beeg_container, - beeg_dummy, - beeg_foreground, - beeg_background, -} from './BeegText.css'; - -export default function BeegText({ children }: { children: React.ReactNode }) { - return ( -
-

{children}

-

{children}

-

{children}

-
- ); -} +import { + beeg_container, + beeg_dummy, + beeg_foreground, + beeg_background, +} from './BeegText.css'; + +export default function BeegText({ children }: { children: React.ReactNode }) { + return ( +
+

{children}

+

{children}

+

{children}

+
+ ); +} diff --git a/src/app/airstrip_one/0/components/Marquee.css.ts b/src/app/airstrip_one/0/components/Marquee.css.ts index a25eebe..45f9a1e 100644 --- a/src/app/airstrip_one/0/components/Marquee.css.ts +++ b/src/app/airstrip_one/0/components/Marquee.css.ts @@ -1,38 +1,30 @@ -import { style, keyframes } from '@vanilla-extract/css'; - -export const marquee_container = style({ - display: 'flex', - width: '100%', - height: 'max-content', - overflow: 'hidden', - backgroundColor: 'black', - fontSize: '0.75em', - '@media': { - 'screen and (min-width: 768px)': { - fontSize: '1em', - } - } -}); - -export const marquee_sneaky = style({ - position: 'absolute', - visibility: 'hidden', - whiteSpace: 'pre', - width: 'max-content', -}); - -const scroll_marquee = keyframes({ - '0%': { left: ' 0%' }, - '100%': { left: '-100%' }, -}); - -export const marquee_content = style({ - position: 'relative', - color: 'magenta', - whiteSpace: 'pre', - width: 'max-content', - animationName: scroll_marquee, - animationDuration: '2s', - animationTimingFunction: 'linear', - animationIterationCount: 'infinite', -}); +import { style, keyframes } from '@vanilla-extract/css'; + +export const marquee_container = style({ + display: 'flex', + width: '100%', + height: 'max-content', + overflow: 'hidden', + backgroundColor: 'black', +}); + +const scroll_marquee = keyframes({ + '0%': { left: ' 0%' }, + '100%': { left: '-100%' }, +}); + +export const marquee_content = style({ + position: 'relative', + fontSize: '0.75em', + color: 'magenta', + whiteSpace: 'nowrap', + animationName: scroll_marquee, + animationDuration: '8s', + animationTimingFunction: 'linear', + animationIterationCount: 'infinite', + '@media': { + 'screen and (min-width: 768px)': { + fontSize: '1em', + } + } +}); diff --git a/src/app/airstrip_one/0/components/Marquee.tsx b/src/app/airstrip_one/0/components/Marquee.tsx index bf8b931..2c3d1b5 100644 --- a/src/app/airstrip_one/0/components/Marquee.tsx +++ b/src/app/airstrip_one/0/components/Marquee.tsx @@ -1,47 +1,13 @@ -'use client' - -import { useRef, useEffect, useLayoutEffect } from 'react'; - -import * as style from './Marquee.css'; - -export default function Marquee({ children }: { children: React.ReactNode }) { - const target_ref = useRef(null); - const scroll_ref = useRef(null); - const sneaky_ref = useRef(null); - const not_so_sneaky_ref = useRef(null); - - function expand_content() { - function strip_px(px: string) { - return Number(px.substring(0, px.length - 2)); - } - const text = `${children}`; - let content = text; - const sneaky_width = strip_px(window.getComputedStyle(sneaky_ref.current!).getPropertyValue("width")); - let target_width = strip_px(window.getComputedStyle(target_ref.current!).getPropertyValue("width")); - while (target_width > 0) { - content += text; - target_width -= sneaky_width; - } - scroll_ref.current!.style.width = `${sneaky_width}px`; - not_so_sneaky_ref.current!.textContent = content; - } - - useLayoutEffect(expand_content); - - useEffect(() => { - window.addEventListener("resize", expand_content); - - return () => { - window.removeEventListener("resize", expand_content); - } - }); - - return ( -
-

{children}

-
-

-
-
- ); -} +import { + marquee_container, + marquee_content, +} from './Marquee.css'; + +export default function Marquee({ children }: { children: React.ReactNode }) { + return ( +
+

{children}

+

{children}

+
+ ); +} diff --git a/src/app/airstrip_one/0/layout.css.ts b/src/app/airstrip_one/0/layout.css.ts deleted file mode 100644 index 4a8b208..0000000 --- a/src/app/airstrip_one/0/layout.css.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { style } from '@vanilla-extract/css'; - -export const center_vertical = style({ - position: 'relative', - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - margin: 'auto', - width: '100%', - border: '0.3em solid purple', - '@media': { - 'screen and (min-width: 768px)': { - width: '50%', - } - } -}); - diff --git a/src/app/airstrip_one/0/layout.tsx b/src/app/airstrip_one/0/layout.tsx deleted file mode 100644 index 4ed155e..0000000 --- a/src/app/airstrip_one/0/layout.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import Marquee from './components/Marquee'; - -import * as style from './layout.css'; - -export default function ExcellentLayout({ children }: { children: React.ReactNode }) { - return ( -
- THE SNACK IS WATCHING YOU - {children} - THE SNACK IS WATCHING YOU -
- ); -} diff --git a/src/app/airstrip_one/0/ministry_of_truth/components/Input.css.ts b/src/app/airstrip_one/0/ministry_of_truth/components/Input.css.ts index 8f0fde6..6fd02f8 100644 --- a/src/app/airstrip_one/0/ministry_of_truth/components/Input.css.ts +++ b/src/app/airstrip_one/0/ministry_of_truth/components/Input.css.ts @@ -1,4 +1,4 @@ -import { style } from '@vanilla-extract/css'; +import { style } from "@vanilla-extract/css"; export const message_style = style({ boxSizing: 'border-box', @@ -8,12 +8,10 @@ export const message_style = style({ border: 'none', padding: '0.5em', fontSize: '1em', - fontFamily: 'inherit', color: 'magenta', backgroundColor: 'black', overflowWrap: 'break-word', textAlign: 'center', - resize: 'none', ':focus': { outline: 'none', }, diff --git a/src/app/airstrip_one/0/ministry_of_truth/components/Input.tsx b/src/app/airstrip_one/0/ministry_of_truth/components/Input.tsx index 6317a1a..9dc3e08 100644 --- a/src/app/airstrip_one/0/ministry_of_truth/components/Input.tsx +++ b/src/app/airstrip_one/0/ministry_of_truth/components/Input.tsx @@ -1,9 +1,8 @@ 'use client' -import { useRef, useEffect, useLayoutEffect } from 'react'; +import { useEffect, useRef } from 'react'; import { useSearchParams } from 'next/navigation'; -import comic_sans from '../../../../comic.ts'; import { message_style } from '../components/Input.css'; export default function Input() { @@ -14,8 +13,6 @@ export default function Input() { const encoded = btoa(message); const new_url = `${window.location.protocol}//${window.location.host}${window.location.pathname}?e=${encoded}`; window.history.replaceState(null, '', new_url); - input_ref.current!.style.height = ""; - input_ref.current!.style.height = `${input_ref.current!.scrollHeight}px`; } const message = search_params.get('e') ? @@ -26,30 +23,17 @@ export default function Input() { ); useEffect(() => { - function resize_handler() { - input_ref.current!.style.height = ""; - input_ref.current!.style.height = `${input_ref.current!.scrollHeight}px`; - } - - window.addEventListener("resize", resize_handler); - - return () => { - window.removeEventListener("resize", resize_handler); - }; - }); - - useLayoutEffect(() => { set_message(message); }); return ( -