fix: update remaining $grey- variables in SCSS files

- Fix themes.scss to use $gray- variables
- Fix tooltip.scss to use $gray- variables
- Resolves build error with undefined variables

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Justin Edmund 2025-06-25 22:03:19 -04:00
parent 599797f727
commit 513b40bbc4
22 changed files with 64 additions and 46 deletions

View file

@ -1,10 +1,10 @@
:root { :root {
--bg-color: #{$grey-80}; --bg-color: #{$gray-80};
--page-color: #{$grey-100}; --page-color: #{$gray-100};
--card-color: #{$grey-90}; --card-color: #{$gray-90};
--mention-bg-color: #{$grey-90}; --mention-bg-color: #{$gray-90};
--text-color: #{$grey-20}; --text-color: #{$gray-20};
} }
[data-theme='dark'] { [data-theme='dark'] {

View file

@ -205,7 +205,7 @@
flex-direction: column; flex-direction: column;
gap: $unit * 1.5; gap: $unit * 1.5;
text-decoration: none; text-decoration: none;
transition: gap 0.125s ease-in-out; transition: gap $transition-fast ease-in-out;
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -243,7 +243,7 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
font-size: 24px; font-size: 24px;
transition: all 0.3s ease; transition: all $transition-medium ease;
backdrop-filter: blur(10px); backdrop-filter: blur(10px);
&.corner { &.corner {

View file

@ -85,7 +85,7 @@
svg { svg {
width: 100%; width: 100%;
height: auto; height: auto;
animation: fadeIn 0.3s ease-out; animation: fadeIn $transition-medium ease-out;
} }
} }

View file

@ -77,7 +77,7 @@
flex-direction: column; flex-direction: column;
gap: $unit * 1.5; gap: $unit * 1.5;
text-decoration: none; text-decoration: none;
transition: gap 0.125s ease-in-out; transition: gap $transition-fast ease-in-out;
img { img {
border: 1px solid rgba(0, 0, 0, 0.1); border: 1px solid rgba(0, 0, 0, 0.1);

View file

@ -60,7 +60,7 @@
padding: calc($unit-5x - ($unit-5x - $unit-2x) * var(--padding-progress)) $unit-2x; padding: calc($unit-5x - ($unit-5x - $unit-2x) * var(--padding-progress)) $unit-2x;
pointer-events: none; pointer-events: none;
// Add a very subtle transition to smooth out any remaining jitter // Add a very subtle transition to smooth out any remaining jitter
transition: padding 0.1s ease-out; transition: padding $transition-instant ease-out;
@include breakpoint('phone') { @include breakpoint('phone') {
padding: calc($unit-3x - ($unit-3x - $unit-2x) * var(--padding-progress)) $unit-2x; padding: calc($unit-3x - ($unit-3x - $unit-2x) * var(--padding-progress)) $unit-2x;
@ -82,7 +82,7 @@
z-index: -1; z-index: -1;
opacity: var(--gradient-opacity); opacity: var(--gradient-opacity);
// Add a very subtle transition to smooth out any remaining jitter // Add a very subtle transition to smooth out any remaining jitter
transition: opacity 0.1s ease-out; transition: opacity $transition-instant ease-out;
} }
} }

View file

@ -2,6 +2,9 @@
import { onMount } from 'svelte' import { onMount } from 'svelte'
import { fade, scale } from 'svelte/transition' import { fade, scale } from 'svelte/transition'
// Convert CSS transition durations to milliseconds for Svelte transitions
const TRANSITION_NORMAL_MS = 200 // $transition-normal: 0.2s
let { let {
images = [], images = [],
selectedIndex = $bindable(0), selectedIndex = $bindable(0),
@ -76,7 +79,7 @@
<div <div
class="lightbox-backdrop" class="lightbox-backdrop"
onclick={handleBackgroundClick} onclick={handleBackgroundClick}
transition:fade={{ duration: 200 }} transition:fade={{ duration: TRANSITION_NORMAL_MS }}
role="button" role="button"
tabindex="-1" tabindex="-1"
> >
@ -85,7 +88,7 @@
<img <img
src={images[selectedIndex]} src={images[selectedIndex]}
alt="{alt} {selectedIndex + 1}" alt="{alt} {selectedIndex + 1}"
transition:scale={{ duration: 200, start: 0.9 }} transition:scale={{ duration: TRANSITION_NORMAL_MS, start: 0.9 }}
/> />
</div> </div>

View file

@ -202,7 +202,7 @@
.skeleton { .skeleton {
background: $gray-80; background: $gray-80;
border-radius: 4px; border-radius: 4px;
animation: pulse 1.5s ease-in-out infinite; animation: pulse $animation-slow ease-in-out infinite;
} }
.skeleton-meta { .skeleton-meta {

View file

@ -185,7 +185,7 @@
font-size: $font-size; font-size: $font-size;
font-weight: 400; font-weight: 400;
cursor: pointer; cursor: pointer;
transition: all 0.2s ease; transition: all $transition-normal ease;
box-shadow: 0 $unit-1px $unit-3px $shadow-light; box-shadow: 0 $unit-1px $unit-3px $shadow-light;
&:hover { &:hover {
@ -209,7 +209,7 @@
height: $unit-2x; height: $unit-2x;
margin-left: auto; margin-left: auto;
flex-shrink: 0; flex-shrink: 0;
transition: transform 0.2s ease; transition: transform $transition-normal ease;
fill: none; fill: none;
stroke: currentColor; stroke: currentColor;
stroke-width: $unit-2px; stroke-width: $unit-2px;
@ -233,7 +233,7 @@
box-shadow: 0 $unit-half $unit-12px $shadow-medium; box-shadow: 0 $unit-half $unit-12px $shadow-medium;
padding: $unit; padding: $unit;
z-index: 10; z-index: 10;
animation: dropdownOpen 0.2s ease; animation: dropdownOpen $transition-normal ease;
} }
.dropdown-section { .dropdown-section {
@ -254,7 +254,7 @@
text-decoration: none; text-decoration: none;
color: $gray-20; color: $gray-20;
font-size: $font-size; font-size: $font-size;
transition: background-color 0.2s ease; transition: background-color $transition-normal ease;
&:hover:not(.section-header) { &:hover:not(.section-header) {
background-color: $gray-97; background-color: $gray-97;

View file

@ -55,7 +55,7 @@
font-size: $font-size-small; font-size: $font-size-small;
backdrop-filter: blur(10px); backdrop-filter: blur(10px);
z-index: $z-index-dropdown; z-index: $z-index-dropdown;
animation: fadeIn 0.3s ease-out; animation: fadeIn $transition-medium ease-out;
width: fit-content; width: fit-content;
} }
@ -80,7 +80,7 @@
.bar { .bar {
width: 3px; width: 3px;
background: $accent-color; background: $accent-color;
animation: dance 0.6s ease-in-out infinite; animation: dance $animation-fast ease-in-out infinite;
transform-origin: bottom; transform-origin: bottom;
} }

View file

@ -224,7 +224,7 @@
height: 100px; height: 100px;
pointer-events: none; pointer-events: none;
z-index: 10; z-index: 10;
transition: opacity 0.3s ease; transition: opacity $transition-medium ease;
} }
&::before { &::before {

View file

@ -146,7 +146,7 @@
left: $unit; left: $unit;
height: calc(100% - #{$unit * 2}); height: calc(100% - #{$unit * 2});
border-radius: 100px; border-radius: 100px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); transition: all $transition-medium cubic-bezier(0.4, 0, 0.2, 1);
z-index: $z-index-base; z-index: $z-index-base;
} }

View file

@ -79,7 +79,7 @@
background: $gray-100; background: $gray-100;
border-radius: $card-corner-radius; border-radius: $card-corner-radius;
border: $unit-1px solid $gray-95; border: $unit-1px solid $gray-95;
transition: all 0.2s ease; transition: all $transition-normal ease;
cursor: pointer; cursor: pointer;
outline: none; outline: none;
@ -111,14 +111,14 @@
color: $gray-40; color: $gray-40;
font-size: $font-size-small; font-size: $font-size-small;
font-weight: 400; font-weight: 400;
transition: color 0.2s ease; transition: color $transition-normal ease;
} }
:global(.card-icon) { :global(.card-icon) {
width: $unit-2x; width: $unit-2x;
height: $unit-2x; height: $unit-2x;
fill: $gray-40; fill: $gray-40;
transition: all 0.2s ease; transition: all $transition-normal ease;
} }
.universe-card--post { .universe-card--post {
@ -140,7 +140,7 @@
:global(.card-title-link) { :global(.card-title-link) {
color: $gray-10; color: $gray-10;
text-decoration: none; text-decoration: none;
transition: all 0.2s ease; transition: all $transition-normal ease;
} }
} }
@ -155,25 +155,25 @@
} }
:global(.card-icon rect:nth-child(1)) { :global(.card-icon rect:nth-child(1)) {
transition: all 0.3s ease; transition: all $transition-medium ease;
height: $unit-6px; height: $unit-6px;
y: $unit-2px; y: $unit-2px;
} }
:global(.card-icon rect:nth-child(2)) { :global(.card-icon rect:nth-child(2)) {
transition: all 0.3s ease; transition: all $transition-medium ease;
height: $unit-10px; height: $unit-10px;
y: $unit-2px; y: $unit-2px;
} }
:global(.card-icon rect:nth-child(3)) { :global(.card-icon rect:nth-child(3)) {
transition: all 0.3s ease; transition: all $transition-medium ease;
height: $unit; height: $unit;
y: $unit-10px; y: $unit-10px;
} }
:global(.card-icon rect:nth-child(4)) { :global(.card-icon rect:nth-child(4)) {
transition: all 0.3s ease; transition: all $transition-medium ease;
height: $unit-half; height: $unit-half;
y: $unit-14px; y: $unit-14px;
} }
@ -191,7 +191,7 @@
:global(.card-title-link) { :global(.card-title-link) {
color: $gray-10; color: $gray-10;
text-decoration: none; text-decoration: none;
transition: all 0.2s ease; transition: all $transition-normal ease;
} }
} }
</style> </style>

View file

@ -174,7 +174,7 @@
font-weight: 400; font-weight: 400;
border: none; border: none;
cursor: pointer; cursor: pointer;
transition: all 0.15s ease; transition: all $transition-fast ease;
outline: none; outline: none;
position: relative; position: relative;
white-space: nowrap; white-space: nowrap;

View file

@ -252,7 +252,7 @@
border: 1px solid rgba(0, 0, 0, 0.1); border: 1px solid rgba(0, 0, 0, 0.1);
z-index: 1; z-index: 1;
cursor: pointer; cursor: pointer;
transition: border-color 0.15s ease; transition: border-color $transition-fast ease;
&:hover { &:hover {
border-color: rgba(0, 0, 0, 0.2); border-color: rgba(0, 0, 0, 0.2);
@ -265,7 +265,7 @@
border: 1px solid transparent; border: 1px solid transparent;
color: $input-text-color; color: $input-text-color;
background-color: $input-background-color; background-color: $input-background-color;
transition: all 0.15s ease; transition: all $transition-fast ease;
&:hover { &:hover {
background-color: $input-background-color-hover; background-color: $input-background-color-hover;

View file

@ -34,7 +34,7 @@
border: 3px solid $gray-80; border: 3px solid $gray-80;
border-top-color: $primary-color; border-top-color: $primary-color;
border-radius: 50%; border-radius: 50%;
animation: spin 0.8s linear infinite; animation: spin $animation-normal linear infinite;
} }
@keyframes spin { @keyframes spin {

View file

@ -3,6 +3,9 @@
import { fade } from 'svelte/transition' import { fade } from 'svelte/transition'
import Button from './Button.svelte' import Button from './Button.svelte'
// Convert CSS transition durations to milliseconds for Svelte transitions
const TRANSITION_FAST_MS = 150 // $transition-fast: 0.15s
interface Props { interface Props {
isOpen: boolean isOpen: boolean
size?: 'small' | 'medium' | 'large' | 'jumbo' | 'full' size?: 'small' | 'medium' | 'large' | 'jumbo' | 'full'
@ -77,8 +80,8 @@
</script> </script>
{#if isOpen} {#if isOpen}
<div class="modal-backdrop" on:click={handleBackdropClick} transition:fade={{ duration: 150 }}> <div class="modal-backdrop" on:click={handleBackdropClick} transition:fade={{ duration: TRANSITION_FAST_MS }}>
<div class="modal {modalClass}" on:click|stopPropagation transition:fade={{ duration: 150 }}> <div class="modal {modalClass}" on:click|stopPropagation transition:fade={{ duration: TRANSITION_FAST_MS }}>
{#if showCloseButton} {#if showCloseButton}
<Button <Button
variant="ghost" variant="ghost"

View file

@ -2,6 +2,9 @@
import { onMount, onDestroy } from 'svelte' import { onMount, onDestroy } from 'svelte'
import { fly } from 'svelte/transition' import { fly } from 'svelte/transition'
// Convert CSS transition durations to milliseconds for Svelte transitions
const TRANSITION_NORMAL_MS = 200 // $transition-normal: 0.2s
interface Props { interface Props {
x: number x: number
y: number y: number
@ -56,7 +59,7 @@
bind:this={dropdown} bind:this={dropdown}
class="embed-context-menu" class="embed-context-menu"
style="left: {x}px; top: {y}px;" style="left: {x}px; top: {y}px;"
transition:fly={{ y: -10, duration: 200 }} transition:fly={{ y: -10, duration: TRANSITION_NORMAL_MS }}
tabindex="-1" tabindex="-1"
> >
<div class="menu-url">{url}</div> <div class="menu-url">{url}</div>

View file

@ -2,6 +2,9 @@
import { onMount, onDestroy } from 'svelte' import { onMount, onDestroy } from 'svelte'
import { fly } from 'svelte/transition' import { fly } from 'svelte/transition'
// Convert CSS transition durations to milliseconds for Svelte transitions
const TRANSITION_NORMAL_MS = 200 // $transition-normal: 0.2s
interface Props { interface Props {
x: number x: number
y: number y: number
@ -56,7 +59,7 @@
bind:this={dropdown} bind:this={dropdown}
class="link-context-menu" class="link-context-menu"
style="left: {x}px; top: {y}px;" style="left: {x}px; top: {y}px;"
transition:fly={{ y: -10, duration: 200 }} transition:fly={{ y: -10, duration: TRANSITION_NORMAL_MS }}
tabindex="-1" tabindex="-1"
> >
<div class="menu-url">{url}</div> <div class="menu-url">{url}</div>

View file

@ -4,6 +4,9 @@
import Check from 'lucide-svelte/icons/check' import Check from 'lucide-svelte/icons/check'
import X from 'lucide-svelte/icons/x' import X from 'lucide-svelte/icons/x'
// Convert CSS transition durations to milliseconds for Svelte transitions
const TRANSITION_NORMAL_MS = 200 // $transition-normal: 0.2s
interface Props { interface Props {
x: number x: number
y: number y: number
@ -66,7 +69,7 @@
bind:this={dialogElement} bind:this={dialogElement}
class="link-edit-dialog" class="link-edit-dialog"
style="left: {x}px; top: {y}px;" style="left: {x}px; top: {y}px;"
transition:fly={{ y: -10, duration: 200 }} transition:fly={{ y: -10, duration: TRANSITION_NORMAL_MS }}
onkeydown={handleKeydown} onkeydown={handleKeydown}
> >
<div class="dialog-content"> <div class="dialog-content">

View file

@ -2,6 +2,9 @@
import { onMount, onDestroy } from 'svelte' import { onMount, onDestroy } from 'svelte'
import { fly } from 'svelte/transition' import { fly } from 'svelte/transition'
// Convert CSS transition durations to milliseconds for Svelte transitions
const TRANSITION_NORMAL_MS = 200 // $transition-normal: 0.2s
interface Props { interface Props {
x: number x: number
y: number y: number
@ -50,7 +53,7 @@
bind:this={dropdown} bind:this={dropdown}
class="url-convert-dropdown" class="url-convert-dropdown"
style="left: {x}px; top: {y}px;" style="left: {x}px; top: {y}px;"
transition:fly={{ y: -10, duration: 200 }} transition:fly={{ y: -10, duration: TRANSITION_NORMAL_MS }}
tabindex="-1" tabindex="-1"
> >
<button class="convert-button" onclick={handleConvert}> Convert to card </button> <button class="convert-button" onclick={handleConvert}> Convert to card </button>

View file

@ -4,8 +4,8 @@
// Link tooltip styles - only apply to tooltips with the link-tooltip theme // Link tooltip styles - only apply to tooltips with the link-tooltip theme
:global(.tippy-box[data-theme~='link-tooltip']) { :global(.tippy-box[data-theme~='link-tooltip']) {
background-color: $grey-00; background-color: $gray-00;
color: $grey-100; color: $gray-100;
font-size: $font-size-extra-small; font-size: $font-size-extra-small;
font-family: $font-stack; font-family: $font-stack;
font-weight: $font-weight; font-weight: $font-weight;
@ -18,7 +18,7 @@
} }
:global(.tippy-box[data-theme~='link-tooltip'] .tippy-arrow) { :global(.tippy-box[data-theme~='link-tooltip'] .tippy-arrow) {
color: $grey-00; color: $gray-00;
} }
// Animation adjustments for link tooltips // Animation adjustments for link tooltips

View file

@ -176,7 +176,7 @@
padding: $unit-half $unit-2x !important; padding: $unit-half $unit-2x !important;
font-size: $font-size-extra-small !important; font-size: $font-size-extra-small !important;
font-weight: $font-weight-med !important; font-weight: $font-weight-med !important;
transition: background-color 0.2s ease !important; transition: background-color $transition-normal ease !important;
&:hover { &:hover {
background: $blue-40 !important; background: $blue-40 !important;
@ -191,7 +191,7 @@
padding: $unit-half $unit-2x !important; padding: $unit-half $unit-2x !important;
font-size: $font-size-extra-small !important; font-size: $font-size-extra-small !important;
font-weight: $font-weight-med !important; font-weight: $font-weight-med !important;
transition: all 0.2s ease !important; transition: all $transition-normal ease !important;
&:hover { &:hover {
background: $gray-95 !important; background: $gray-95 !important;