design: two-color palette — rename all tokens to --cream / --blue
Replace ochre-clay, carbon-black, burnt-oxide, slate-indigo with clean two-color system: --cream (#f4f0e8) and --blue (#041cf3). Update every component, utility class, and test assertion.
This commit is contained in:
@@ -30,13 +30,13 @@ export function MobileNav({ items }: Props) {
|
||||
}, [pathname]);
|
||||
|
||||
return (
|
||||
<div className="lg:hidden fixed top-0 left-0 right-0 bg-ochre-clay brutal-border-bottom z-50">
|
||||
<div className="lg:hidden fixed top-0 left-0 right-0 bg-cream brutal-border-bottom z-50">
|
||||
<div className="px-6 py-4 flex items-center justify-between">
|
||||
<h4>allmy.work</h4>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setIsOpen((prev) => !prev)}
|
||||
className="brutal-border px-4 py-2 bg-carbon-black text-ochre-clay"
|
||||
className="brutal-border px-4 py-2 bg-blue text-cream"
|
||||
>
|
||||
{isOpen ? 'Close' : 'Menu'}
|
||||
</button>
|
||||
@@ -44,7 +44,7 @@ export function MobileNav({ items }: Props) {
|
||||
{isOpen && (
|
||||
<div className="px-6 py-6 brutal-border-top space-y-2 max-h-[80vh] overflow-y-auto">
|
||||
{items.map((item) => (
|
||||
<Link key={item.id} href={`/${item.id}`} className="block w-full brutal-border bg-ochre-clay px-4 py-3">
|
||||
<Link key={item.id} href={`/${item.id}`} className="block w-full brutal-border bg-cream px-4 py-3">
|
||||
<div className={cn('flex items-baseline gap-3')}>
|
||||
<span className="text-sm opacity-60 font-body">{item.number}</span>
|
||||
<span
|
||||
|
||||
@@ -37,7 +37,7 @@ export function SidebarNav({ items }: Props) {
|
||||
}
|
||||
|
||||
return (
|
||||
<nav className="fixed top-0 left-0 h-screen w-full lg:w-1/3 bg-ochre-clay brutal-border-right hidden lg:block overflow-y-auto z-50">
|
||||
<nav className="fixed top-0 left-0 h-screen w-full lg:w-1/3 bg-cream brutal-border-right hidden lg:block overflow-y-auto z-50">
|
||||
<div className="px-8 py-12 space-y-2">
|
||||
<div className="mb-12">
|
||||
<h2>Index</h2>
|
||||
@@ -51,9 +51,9 @@ export function SidebarNav({ items }: Props) {
|
||||
key={item.id}
|
||||
href={`/${item.id}`}
|
||||
className={cn(
|
||||
'block w-full text-left brutal-border bg-ochre-clay px-6 py-4 transition-all duration-300',
|
||||
'block w-full text-left brutal-border bg-cream px-6 py-4 transition-all duration-300',
|
||||
isActive(item)
|
||||
? 'shadow-[12px_12px_0_var(--carbon-black)] opacity-100 translate-x-0'
|
||||
? 'shadow-[12px_12px_0_var(--blue)] opacity-100 translate-x-0'
|
||||
: 'opacity-40 shadow-none hover:opacity-60',
|
||||
)}
|
||||
>
|
||||
|
||||
@@ -23,7 +23,7 @@ describe('UtilityBar', () => {
|
||||
it('Download CV button has primary variant class', () => {
|
||||
render(<UtilityBar />);
|
||||
const btn = screen.getByRole('button', { name: /download cv/i });
|
||||
expect(btn).toHaveClass('bg-burnt-oxide');
|
||||
expect(btn).toHaveClass('bg-blue');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -15,11 +15,11 @@ export function UtilityBar() {
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="fixed bottom-0 left-0 right-0 bg-ochre-clay brutal-border-top z-40">
|
||||
<div className="fixed bottom-0 left-0 right-0 bg-cream brutal-border-top z-40">
|
||||
<div className="max-w-[2560px] mx-auto px-6 md:px-12 lg:px-16 py-4 flex items-center justify-between">
|
||||
<div className="flex items-center gap-4">
|
||||
<span className="text-sm uppercase tracking-wider">Contact</span>
|
||||
<a href={`mailto:${CONTACT_LINKS.email}`} className="text-base hover:text-burnt-oxide transition-colors">
|
||||
<a href={`mailto:${CONTACT_LINKS.email}`} className="text-base hover:opacity-60 transition-opacity">
|
||||
{CONTACT_LINKS.email}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user