Sessions 5-7a: 955 tests, deployment ready
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import type { CSSProperties } from 'react';
|
||||
|
||||
type WordmarkProps = {
|
||||
size?: number;
|
||||
cursor?: boolean;
|
||||
animated?: boolean;
|
||||
ariaLabel?: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* VYNDR wordmark. IBM Plex Mono 800, RGB-split letters, glowing R, blinking cursor.
|
||||
* The R is the brand — always green (#00D4A0), always intercepted-looking.
|
||||
* `aria-label` exposes the readable brand to screen readers; per-letter spans are aria-hidden.
|
||||
*/
|
||||
export default function Wordmark({
|
||||
size = 22,
|
||||
cursor = true,
|
||||
animated = true,
|
||||
ariaLabel = 'VYNDR',
|
||||
}: WordmarkProps) {
|
||||
const style: CSSProperties & { '--wm-size'?: string } = {
|
||||
fontSize: size,
|
||||
'--wm-size': `${size}px`,
|
||||
};
|
||||
return (
|
||||
<span
|
||||
className={`wordmark${animated ? ' wm-anim' : ''}`}
|
||||
style={style}
|
||||
role="img"
|
||||
aria-label={ariaLabel}
|
||||
>
|
||||
<span className="vynd" aria-hidden>
|
||||
<span className="wm-letter" data-text="V">V</span>
|
||||
<span className="wm-letter" data-text="Y">Y</span>
|
||||
<span className="wm-letter" data-text="N">N</span>
|
||||
<span className="wm-letter" data-text="D">D</span>
|
||||
</span>
|
||||
<span className="r wm-letter" data-text="R" aria-hidden>R</span>
|
||||
{cursor ? <span className="wm-cursor" aria-hidden /> : null}
|
||||
</span>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user