Skip to content

Commit 1953b29

Browse files
marioDamnjclaude
andauthored
style: align site colors with design system (#197)
* style: align site colors with design system Replace emerald accent colors with violet/neutral across the site. Nav hover states, interactive elements, spinners, and link styles all updated. Typography unchanged from main. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: use neutral border hover on secondary pricing buttons Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: align pricing page title typography with rest of site Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 584534d commit 1953b29

30 files changed

Lines changed: 166 additions & 149 deletions

src/components/BlogCard.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ export function BlogCard({ post, featured = false }: BlogCardProps) {
2424
<div className="p-6">
2525
<div className="flex flex-wrap gap-2 mb-3">
2626
{post.tags?.map((tag) => (
27-
<span key={tag} className="text-xs px-2 py-1 rounded-full bg-emerald-900/30 text-emerald-400">
27+
<span key={tag} className="text-xs px-2 py-1 rounded-full bg-violet-900/30 text-violet-400">
2828
{tagLabels[tag] || tag}
2929
</span>
3030
))}
3131
</div>
3232
<h3
33-
className={`font-semibold mb-2 transition-colors group-hover:text-emerald-400 text-balance ${
33+
className={`font-semibold mb-2 transition-colors group-hover:text-violet-400 text-balance ${
3434
featured ? 'text-2xl' : 'text-xl'
3535
}`}
3636
>
@@ -61,7 +61,7 @@ export function BlogCard({ post, featured = false }: BlogCardProps) {
6161
/>
6262
))}
6363
</div>
64-
<span className="text-emerald-400 text-sm font-medium group-hover:translate-x-1 transition-transform">
64+
<span className="text-muted-foreground text-sm font-medium group-hover:translate-x-1 transition-transform">
6565
Read more →
6666
</span>
6767
</div>

src/components/FeatureListItem.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ export const FeatureListItem: React.FC<FeatureListItemProps> = ({
1717
}) => (
1818
<div className="border-t border-neutral-700 py-6">
1919
<div className="flex items-start gap-4">
20-
<Icon className="w-5 h-5 mt-1 text-emerald-700 shrink-0" />
20+
<Icon className="w-5 h-5 mt-1 text-violet-500 shrink-0" />
2121
<div>
22-
<h4 className="font-semibold text-white">{title}</h4>
22+
<h4 className="font-semibold text-neutral-100">{title}</h4>
2323
<p className="text-neutral-400 text-sm mt-1">{description}</p>
2424
</div>
2525
{diagramQuery && (

src/components/IntercomButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export const IntercomButton: React.FC = () => {
1010
<button
1111
id="intercom-launcher"
1212
onClick={() => boot(INTERCOM_BOOT_PROPS)}
13-
className="fixed bottom-6 right-6 z-50 bg-emerald-600 hover:bg-emerald-700 text-white rounded-full p-4 shadow-lg transition-colors duration-200 flex items-center justify-center group"
13+
className="fixed bottom-6 right-6 z-50 bg-violet-600 hover:bg-violet-500 text-white rounded-full p-4 shadow-lg transition-colors duration-200 flex items-center justify-center group"
1414
aria-label="Open chat support"
1515
>
1616
<MessageCircle size={24} className="group-hover:scale-110 transition-transform duration-200" />

src/components/SignupForm.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,10 @@ export function SignupForm() {
7777
: isError
7878
? 'border-red-400/60 bg-red-950/20'
7979
: focused
80-
? 'border-[#008CFF] bg-black/50'
80+
? 'border-violet-500 bg-black/50'
8181
: 'border-white/20 bg-black/50'
8282
} ${shaking ? 'animate-shake' : ''}`}
83-
style={focused && !isError && !isSuccess ? { boxShadow: '0px 0px 4px rgba(0, 166, 255, 0.45)' } : undefined}
83+
style={focused && !isError && !isSuccess ? { boxShadow: '0px 0px 4px rgba(124, 58, 237, 0.45)' } : undefined}
8484
>
8585
<div className="relative h-4 w-4 shrink-0">
8686
<svg
@@ -118,11 +118,11 @@ export function SignupForm() {
118118
disabled={state === 'submitting'}
119119
className={`h-9 shrink-0 whitespace-nowrap rounded-full px-3.5 py-2 text-xs font-semibold text-white transition-all duration-500 sm:px-4 sm:text-[13px] ${isSuccess ? 'pointer-events-none opacity-0' : 'opacity-100'} ${state === 'submitting' ? 'opacity-70' : ''}`}
120120
style={{
121-
background: `linear-gradient(177.57deg, rgba(255,255,255,0.48) 2.04%, rgba(255,255,255,0) 68.68%), ${hovered ? '#0084FF' : '#006AFF'}`,
121+
background: `linear-gradient(177.57deg, rgba(255,255,255,0.48) 2.04%, rgba(255,255,255,0) 68.68%), ${hovered ? '#8b5cf6' : '#7c3aed'}`,
122122
backgroundBlendMode: 'overlay, normal',
123123
boxShadow: isSuccess
124124
? 'none'
125-
: '0px 2px 4px -1.5px rgba(9,9,11,0.16), 0px 0px 0px 1px rgba(32,0,60,0.6), inset 0px -2px 3px rgba(46,220,255,0.35), inset 0px 1px 0px rgba(255,255,255,0.2)',
125+
: '0px 2px 4px -1.5px rgba(9,9,11,0.16), 0px 0px 0px 1px rgba(32,0,60,0.6), inset 0px -2px 3px rgba(124,58,237,0.35), inset 0px 1px 0px rgba(255,255,255,0.2)',
126126
}}
127127
>
128128
{state === 'submitting' ? 'Signing up...' : 'Sign up'}

src/components/sections/BlogSection.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,22 @@ export const BlogSection: React.FC = () => {
2727
href="https://x.com/ZephyrCloudIO"
2828
target="_blank"
2929
rel="noopener"
30-
className="text-emerald-700 hover:underline"
30+
className="text-neutral-400 underline underline-offset-2 decoration-neutral-600 hover:text-neutral-200 transition-colors"
3131
>
3232
X
3333
</a>
3434
.
3535
</p>
3636
{loading ? (
3737
<div className="flex justify-center py-12">
38-
<div className="animate-spin rounded-full h-8 w-8 border-b-2 border-emerald-400"></div>
38+
<div className="animate-spin rounded-full h-8 w-8 border-b-2 border-violet-400"></div>
3939
</div>
4040
) : posts.length > 0 ? (
4141
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
4242
{posts.map((post) => (
4343
<Card key={post.slug} className="bg-neutral-900 border-neutral-400 text-neutral-300 flex flex-col">
4444
<CardHeader>
45-
<CardTitle className="text-lg text-white hover:text-emerald-700 transition-colors">
45+
<CardTitle className="text-lg text-neutral-100 hover:text-violet-400 transition-colors">
4646
<Link to={`/blog/${post.slug}`}>{post.title}</Link>
4747
</CardTitle>
4848
<CardDescription className="text-neutral-400 text-sm line-clamp-2">
@@ -58,7 +58,7 @@ export const BlogSection: React.FC = () => {
5858
<AvatarFallback>{post.authors[0].displayName.substring(0, 1)}</AvatarFallback>
5959
</Avatar>
6060
<div>
61-
<span className="text-white block">{post.authors[0].displayName}</span>
61+
<span className="text-neutral-200 block">{post.authors[0].displayName}</span>
6262
<span className="text-neutral-500">
6363
{post.date.toLocaleDateString('en-US', {
6464
month: 'short',

src/components/sections/CloudProvidersSection.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ const statusConfig = {
5656
available: {
5757
label: 'Available',
5858
icon: CheckCircle2,
59-
className: 'text-emerald-500',
60-
bgClassName: 'bg-emerald-500/10',
61-
borderClassName: 'border-emerald-500/20',
59+
className: 'text-violet-500',
60+
bgClassName: 'bg-violet-500/10',
61+
borderClassName: 'border-violet-500/20',
6262
},
6363
eap: {
6464
label: 'Early Access',
@@ -82,7 +82,7 @@ export const CloudProvidersSection: React.FC = () => {
8282
<div className="container mx-auto px-4 sm:px-6 lg:px-8">
8383
<div className="text-center mb-12">
8484
<h2 className="text-3xl font-medium leading-tighter text-white mb-4">Deploy Anywhere</h2>
85-
<p className="text-neutral-400 max-w-2xl mx-auto">
85+
<p className="text-muted-foreground max-w-2xl mx-auto">
8686
Zephyr Cloud integrates seamlessly with leading cloud providers, enabling instant deployments and runtime
8787
updates across your preferred infrastructure.
8888
</p>
@@ -128,7 +128,7 @@ export const CloudProvidersSection: React.FC = () => {
128128
</div>
129129

130130
{/* Hover Effect Gradient */}
131-
<div className="absolute inset-0 rounded-lg bg-gradient-to-t from-emerald-500/5 to-transparent opacity-0 transition-opacity group-hover:opacity-100 pointer-events-none" />
131+
<div className="absolute inset-0 rounded-lg bg-gradient-to-t from-violet-500/5 to-transparent opacity-0 transition-opacity group-hover:opacity-100 pointer-events-none" />
132132

133133
{/* Docs Link Indicator */}
134134
{provider.docsLink && (
@@ -141,7 +141,7 @@ export const CloudProvidersSection: React.FC = () => {
141141

142142
const cardClasses = cn(
143143
'relative group rounded-lg p-6 border transition-all duration-300',
144-
'hover:border-neutral-700 hover:shadow-lg hover:shadow-emerald-500/5',
144+
'hover:border-neutral-700 hover:shadow-lg hover:shadow-violet-500/5',
145145
provider.status === 'coming-soon' ? 'border-neutral-800/50' : 'border-neutral-800',
146146
provider.docsLink && 'cursor-pointer',
147147
);
@@ -167,7 +167,7 @@ export const CloudProvidersSection: React.FC = () => {
167167
Need support for a different cloud provider?{' '}
168168
<a
169169
href="mailto:inbound@zephyr-cloud.io"
170-
className="text-emerald-400 hover:text-emerald-300 transition-colors"
170+
className="text-neutral-400 underline underline-offset-2 decoration-neutral-600 hover:text-neutral-200 transition-colors"
171171
>
172172
Let us know
173173
</a>

src/components/sections/DeploymentSection.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export const DeploymentSection: React.FC = () => {
6868
href="https://docs.zephyr-cloud.io/recipes"
6969
target="_blank"
7070
rel="noopener noreferrer"
71-
className="text-neutral-400 hover:text-emerald-700 transition-colors text-sm font-semibold"
71+
className="text-neutral-400 hover:text-violet-500 transition-colors text-sm font-semibold"
7272
>
7373
See all examples
7474
</a>

src/components/sections/FeatureSection.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ interface FeatureDescriptionProps {
4646
}
4747

4848
export const FeatureDescription: React.FC<FeatureDescriptionProps> = ({ children, className }) => {
49-
return <p className={cn('mt-4 text-lg text-neutral-400 max-w-2xl mx-auto', className)}>{children}</p>;
49+
return <p className={cn('mt-4 text-lg text-muted-foreground max-w-2xl mx-auto', className)}>{children}</p>;
5050
};
5151

5252
interface FeatureContentProps {

src/components/sections/HeroSection.tsx

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,17 @@ export const HeroSection: React.FC = () => {
6464
href={featuredEvent.link}
6565
target="_blank"
6666
rel="noopener"
67-
className="group inline-flex items-center gap-2 px-4 py-2 rounded-full bg-gradient-to-r from-emerald-900/20 to-emerald-800/20 border border-emerald-700/30 hover:border-emerald-600/50 transition-all duration-300 hover:shadow-lg hover:shadow-emerald-500/10"
67+
className="group inline-flex items-center gap-2 px-4 py-2 rounded-full bg-gradient-to-r from-violet-900/20 to-violet-800/20 border border-violet-700/30 hover:border-violet-600/50 transition-all duration-300 hover:shadow-lg hover:shadow-violet-500/10"
6868
>
69-
<CalendarDays size={16} className="text-emerald-400" />
69+
<CalendarDays size={16} className="text-violet-400" />
7070
<span className="text-sm text-neutral-300">
71-
<span className="font-medium text-emerald-400">{featuredEvent.title}</span>
71+
<span className="font-medium text-violet-400">{featuredEvent.title}</span>
7272
<span className="mx-2 text-neutral-500"></span>
7373
<span>{featuredEvent.date}</span>
7474
<span className="mx-2 text-neutral-500"></span>
7575
<span>{featuredEvent.location}</span>
7676
</span>
77-
<ArrowRight size={14} className="text-emerald-400 transition-transform group-hover:translate-x-0.5" />
77+
<ArrowRight size={14} className="text-violet-400 transition-transform group-hover:translate-x-0.5" />
7878
</a>
7979
</div>
8080
)}
@@ -84,9 +84,13 @@ export const HeroSection: React.FC = () => {
8484
<br />
8585
<span>Idea to Production</span>
8686
</h1>
87-
<p className="mt-6 text-lg md:text-xl max-w-2xl mx-auto">
87+
<p className="mt-6 text-lg md:text-xl text-muted-foreground max-w-2xl mx-auto">
8888
From the team that brought you{' '}
89-
<a href="https://module-federation.io/" target="_blank" className="text-emerald-700 hover:underline">
89+
<a
90+
href="https://module-federation.io/"
91+
target="_blank"
92+
className="text-neutral-400 underline underline-offset-2 decoration-neutral-600 hover:text-neutral-200 transition-colors"
93+
>
9094
Module Federation
9195
</a>
9296
;
@@ -95,11 +99,14 @@ export const HeroSection: React.FC = () => {
9599
</p>
96100

97101
<div className="mt-10 relative max-w-xl mx-auto">
98-
<div className="relative group cursor-pointer" onClick={handleCopy}>
99-
<CodeBlock className="text-left !bg-neutral-900/70 !border-neutral-700/70 backdrop-blur-sm transition-all group-hover:!bg-neutral-900/80">
100-
<span className="text-emerald-700">$</span> npx create-zephyr-apps@latest
102+
<div
103+
className="relative group cursor-pointer transition-all duration-300 hover:shadow-lg hover:shadow-violet-500/15 rounded-md"
104+
onClick={handleCopy}
105+
>
106+
<CodeBlock className="text-left !bg-neutral-900/70 !border-neutral-700/70 backdrop-blur-sm transition-all group-hover:!bg-neutral-900/80 group-hover:!border-violet-600">
107+
<span className="text-violet-500">$</span> npx create-zephyr-apps@latest
101108
<br />
102-
<span className="text-neutral-500 text-xs flex items-center gap-1 mt-1">
109+
<span className="text-neutral-500 group-hover:text-white text-xs font-mono uppercase tracking-wider flex items-center gap-1 mt-1 transition-colors duration-200">
103110
{copied ? (
104111
<>
105112
<Check className="w-3 h-3" />

src/components/sections/TestimonialsSection.tsx

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export const TestimonialsSection: React.FC = () => {
3838
<AvatarFallback>{testimonial.name.substring(0, 2).toUpperCase()}</AvatarFallback>
3939
</Avatar>
4040
<div>
41-
<div className="font-semibold text-white text-sm">{testimonial.name}</div>
41+
<div className="font-semibold text-foreground text-sm">{testimonial.name}</div>
4242
<div className="text-xs text-neutral-400">
4343
{testimonial.role}, {testimonial.company}
4444
</div>
@@ -67,12 +67,9 @@ export const TestimonialsSection: React.FC = () => {
6767

6868
return (
6969
<>
70-
<section
71-
className="justShip relative py-16 overflow-hidden"
72-
style={{ background: 'radial-gradient(ellipse 80% 60% at 50% 50%, #0d2d1f 0%, #0a0a0a 70%)' }}
73-
>
70+
<section className="justShip relative py-16 overflow-hidden bg-neutral-950/50">
7471
<div className="container mx-auto px-4 sm:px-6 lg:px-8 mb-12">
75-
<h2 className="text-center text-2xl font-medium leading-tighter text-white">You can just ship</h2>
72+
<p className="text-center text-xs font-mono text-neutral-500 tracking-widest uppercase">You can just ship</p>
7673
</div>
7774

7875
{/* Scrolling testimonials container */}
@@ -108,7 +105,7 @@ export const TestimonialsSection: React.FC = () => {
108105
<AvatarFallback>{testimonial.name.substring(0, 2).toUpperCase()}</AvatarFallback>
109106
</Avatar>
110107
<div>
111-
<div className="font-semibold text-white text-sm">{testimonial.name}</div>
108+
<div className="font-semibold text-foreground text-sm">{testimonial.name}</div>
112109
<div className="text-xs text-neutral-400">
113110
{testimonial.role}, {testimonial.company}
114111
</div>
@@ -150,7 +147,7 @@ export const TestimonialsSection: React.FC = () => {
150147
<AvatarFallback>{testimonial.name.substring(0, 2).toUpperCase()}</AvatarFallback>
151148
</Avatar>
152149
<div>
153-
<div className="font-semibold text-white text-sm">{testimonial.name}</div>
150+
<div className="font-semibold text-foreground text-sm">{testimonial.name}</div>
154151
<div className="text-xs text-neutral-400">
155152
{testimonial.role}, {testimonial.company}
156153
</div>

0 commit comments

Comments
 (0)