const { useState, useEffect, useRef } = React; /* ─── Tweaks ─── */ const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "direction": "light", "accent": "#334bff", "showBlog": true, "cardStyle": "numbered" }/*EDITMODE-END*/; /* ─── useInView ─── */ function useInView(thresh = 0.1) { const ref = useRef(null); const [v, setV] = useState(false); useEffect(() => { const ob = new IntersectionObserver(([e]) => { if (e.isIntersecting) { setV(true); ob.disconnect(); } }, { threshold: thresh }); if (ref.current) ob.observe(ref.current); return () => ob.disconnect(); }, []); return [ref, v]; } /* ─── Data ─── */ const PROJECTS = [ { id:1, n:'01', title:'Aurora Beverages', cat:'Brand Identity', year:'2024', color:'#FF5C35', h:'270px' }, { id:2, n:'02', title:'Mint & Co.', cat:'Social Media Kit', year:'2024', color:'#10B981', h:'350px' }, { id:3, n:'03', title:'Prism Studio', cat:'Logo Design', year:'2023', color:'#8B5CF6', h:'240px' }, { id:4, n:'04', title:'Verse Magazine', cat:'Typography', year:'2024', color:'#F59E0B', h:'320px' }, { id:5, n:'05', title:'Bloom Skincare', cat:'Brand Guide', year:'2023', color:'#EC4899', h:'260px' }, { id:6, n:'06', title:'Orbit App', cat:'UI/UX Design', year:'2024', color:'#3366ff', h:'370px' }, { id:7, n:'07', title:'Terra Foods', cat:'Illustration', year:'2023', color:'#D97706', h:'290px' }, { id:8, n:'08', title:'Neon Festival', cat:'Social Media', year:'2024', color:'#84CC16', h:'255px' }, { id:9, n:'09', title:'Studio Kala', cat:'Brand Identity', year:'2023', color:'#0D9488', h:'335px' }, { id:10, n:'10', title:'Pulse Fitness', cat:'UI/UX Design', year:'2024', color:'#06B6D4', h:'265px' }, { id:11, n:'11', title:'Lumina Jewelry', cat:'Logo Design', year:'2023', color:'#B45309', h:'215px' }, { id:12, n:'12', title:'Echo Agency', cat:'Brand Guide', year:'2024', color:'#7C3AED', h:'295px' }, ]; const TOOLS = [ { name:'Adobe Illustrator', slug:'adobeillustrator', cat:'Vector & Branding', level:5, color:'#FF7C00', iconUrl:'https://upload.wikimedia.org/wikipedia/commons/f/fb/Adobe_Illustrator_CC_icon.svg' }, { name:'Figma', slug:'figma', cat:'UI/UX & Prototyping', level:5, color:'#F24E1E', iconUrl:'https://upload.wikimedia.org/wikipedia/commons/3/33/Figma-logo.svg' }, { name:'Canva', slug:'canva', cat:'Social Media Design', level:5, color:'#00C4CC', iconUrl:'https://upload.wikimedia.org/wikipedia/commons/0/08/Canva_icon_2021.svg' }, { name:'Photoshop', slug:'adobephotoshop', cat:'Photo Editing', level:4, color:'#31A8FF', iconUrl:'https://upload.wikimedia.org/wikipedia/commons/a/af/Adobe_Photoshop_CC_icon.svg' }, { name:'InDesign', slug:'adobeindesign', cat:'Print & Editorial', level:4, color:'#FF3366', iconUrl:'https://upload.wikimedia.org/wikipedia/commons/4/48/Adobe_InDesign_CC_icon.svg' }, { name:'After Effects', slug:'adobeaftereffects', cat:'Motion & Animation', level:3, color:'#9999FF', iconUrl:'https://upload.wikimedia.org/wikipedia/commons/c/cb/Adobe_After_Effects_CC_icon.svg' }, { name:'Procreate', slug:'procreate', cat:'Digital Illustration', level:4, color:'#1A1A1A', iconUrl:'https://www.google.com/s2/favicons?sz=64&domain=procreate.com' }, { name:'Notion', slug:'notion', cat:'Project Management', level:5, color:'#000000', iconUrl:'https://upload.wikimedia.org/wikipedia/commons/4/45/Notion_app_logo.png' }, ]; const TESTIMONIALS = [ { name:'Rahul Verma', role:'Founder, AuraCo', initials:'RV', color:'#FF5C35', text:'"Tanika transformed our brand from scratch. Her creative instinct and attention to detail are unmatched — our identity finally feels like us."' }, { name:'Priya Singh', role:'Marketing Manager, Bloom', initials:'PS', color:'#8B5CF6', text:'"She understood our vision immediately and delivered a brand guide our entire team now swears by. An absolute pleasure to work with."' }, { name:'Arjun Mehta', role:'Creative Director, Studio M', initials:'AM', color:'#10B981', text:'"Her typography work on Verse was exceptional. Tanika brings both technical skill and artistic sensitivity — a rare combination."' }, { name:'Sarah Jenkins',role:'CEO, Nexus Tech', initials:'SJ', color:'#06B6D4', text:'"Working with Tanika was seamless. She captured our tech-forward aesthetic perfectly and delivered a UI that our users absolutely love."' }, ]; const BLOG_POSTS = [ { id:1, num:'01', title:'5 Things Every Brand Identity Needs (But Most Miss)', cat:'Branding', date:'Mar 2024', read:'4 min read', color:'#FF5C35', summary:'A strong brand is more than a logo. Here are the five foundational elements that separate memorable brands from forgettable ones.' }, { id:2, num:'02', title:'Why Typography Is the Soul of Great Design', cat:'Typography', date:'Jan 2024', read:'5 min read', color:'#3366ff', summary:'Fonts communicate personality before a single word is read. Here\'s how I choose type that tells the right story for every brand.' }, { id:3, num:'03', title:'My Workflow: Building a Social Media Kit in 3 Days', cat:'Process', date:'Nov 2023', read:'6 min read', color:'#10B981', summary:'Step-by-step: how I research, concept, design, and deliver cohesive social media systems that clients actually use.' }, { id:4, num:'04', title:'The Psychology of Color in UI/UX Design', cat:'UI/UX', date:'Feb 2024', read:'7 min read', color:'#8B5CF6', summary:'Color choice is rarely arbitrary. Dive into how color theory actively shapes user behaviour, trust, and conversion rates on digital platforms.' }, { id:5, num:'05', title:'Adding Warmth: When to Use Custom Illustrations', cat:'Illustration', date:'Dec 2023', read:'4 min read', color:'#F59E0B', summary:'Stock photos can feel cold. Learn how custom digital illustration injects personality and humanity into B2B and consumer brands alike.' }, { id:6, num:'06', title:'Designing for Marketing vs. Designing for Product', cat:'Marketing', date:'Oct 2023', read:'5 min read', color:'#EC4899', summary:'The goals are fundamentally different. Here is how I shift my mindset when designing an ad campaign versus a dashboard interface.' }, { id:7, num:'07', title:'How to Keep Your Instagram Grid Looking Fresh', cat:'Social Media', date:'Sep 2023', read:'3 min read', color:'#84CC16', summary:'Stop stressing over perfect checkerboards. A modern guide to building a flexible, engaging, and highly visual social media presence.' }, { id:8, num:'08', title:'The Reality of Being a Freelance Designer', cat:'Freelancing', date:'Aug 2023', read:'8 min read', color:'#06B6D4', summary:'Beyond the aesthetic Instagram reels: managing client expectations, dealing with scope creep, and pricing your creative work confidently.' }, { id:9, num:'09', title:'Why Your Business Needs a Design System', cat:'Design Systems', date:'Jul 2023', read:'6 min read', color:'#D97706', summary:'Scaling a business without a design system leads to visual chaos. Here is how creating reusable components saves thousands of dollars.' }, { id:10, num:'10', title:'Case Study Breakdown: The Orbit App Redesign', cat:'Case Studies', date:'Jun 2023', read:'9 min read', color:'#0D9488', summary:'A deep dive into the UX audit, user testing, and visual overhaul that led to a 58% increase in task completion for Orbit.' }, { id:11, num:'11', title:'Client Communication for Creatives', cat:'Process', date:'May 2023', read:'4 min read', color:'#7C3AED', summary:'How to present your designs so clients actually understand the rationale, reducing revisions and building trust.' }, { id:12, num:'12', title:'Top 5 Figma Plugins I Use Daily', cat:'UI/UX', date:'Apr 2023', read:'3 min read', color:'#B45309', summary:'A quick roundup of the essential Figma plugins that speed up my workflow, from accessibility checkers to icon managers.' } ]; const MARQUEE = ['Brand Identity','Logo Design','Typography','Social Media','UI/UX Design','Illustration','Brand Guides','Figma','Adobe Suite','Canva']; const CASE_STUDIES = [ { id:1, n:'CS — 01', title:'Aurora Beverages', cat:'Brand Identity', year:'2024', color:'#FF5C35', challenge:'A new beverage startup needed a bold, shelf-ready identity that could stand out in a saturated market and communicate energy and freshness.', process:'Started with deep competitor research and mood-boarding. Developed 3 distinct directions, each with its own colour story. Iterated through 2 rounds of feedback before landing on the final system.', outcome:'Full brand system — logo, colour palette, typography, packaging guidelines, and social media templates. Launch resulted in a 40% higher-than-expected social engagement in week one.', deliverables:['Logo Suite','Brand Guidelines','Packaging Design','Social Templates'], duration:'3 weeks', }, { id:2, n:'CS — 02', title:'Orbit App', cat:'UI/UX Design', year:'2024', color:'#3366ff', challenge:'A productivity app for freelancers needed a complete UI overhaul — the existing interface was cluttered and users were churning at the onboarding stage.', process:'Audited the existing UI with heuristic analysis, conducted user interviews, and mapped new user flows. Designed wireframes in Figma, tested with 8 users, then delivered polished high-fidelity screens.', outcome:'Redesigned onboarding and dashboard screens. Prototype user testing showed a 58% improvement in task completion rate and strong positive sentiment toward the new visual design.', deliverables:['UX Audit Report','Wireframes','High-Fidelity UI','Figma Prototype'], duration:'5 weeks', }, { id:3, n:'CS — 03', title:'Bloom Skincare', cat:'Brand Guide', year:'2023', color:'#EC4899', challenge:'Bloom had grown organically but lacked a consistent visual language. Different designers were producing assets that felt disconnected and diluted the brand.', process:'Interviewed the founders to extract brand values. Audited all existing materials. Built a comprehensive brand guide from scratch — covering tone of voice, photography style, and every design component.', outcome:'A 42-page brand guide now used by the full marketing team and external agencies. Consistency across social, web, and print improved dramatically within 2 months of launch.', deliverables:['42-Page Brand Guide','Color & Type System','Imagery Guidelines','Component Library'], duration:'4 weeks', }, ]; const SERVICES = [ { icon:'✦', name:'Brand Identity', desc:'Logo, colours, type, and brand guidelines — a complete visual system that tells your story.' }, { icon:'◈', name:'Social Media Design', desc:'Scroll-stopping templates, campaign assets, and visual content kits built for engagement.' }, { icon:'◉', name:'UI/UX Design', desc:'Clean, user-centred digital interfaces — from wireframes to polished high-fidelity screens.' }, { icon:'◇', name:'Illustration', desc:'Custom illustrations that add personality and depth to your brand or digital product.' }, { icon:'▣', name:'Typography & Editorial', desc:'Type-led layouts for magazines, books, reports, and any print or digital publication.' }, { icon:'◐', name:'Brand Guides', desc:'Comprehensive documentation so every designer, printer, or partner stays on-brand.' }, ]; const FAQS = [ { q:'How do we get started?', a:"Simply reach out via LinkedIn or WhatsApp with a brief about your project — what you need, your timeline, and any references you love. I'll respond within 24 hours with a short call invite to discuss further." }, { q:'What information do you need from me before starting?', a:"A simple brief goes a long way: your business name, what you do, who your audience is, what you like/dislike visually, your timeline, and any examples of designs you admire. Don't worry — I'll guide you through this with a short questionnaire." }, { q:'How many revisions are included?', a:"It depends on the package, but typically 2–3 structured revision rounds are included. Revisions are focused feedback sessions — not open-ended do-overs — which keeps the project moving efficiently." }, { q:'Do you work with international clients?', a:"Absolutely. I work with clients across India and internationally. All communication is in English, and I'm comfortable working across time zones. Payments can be processed in INR or USD." }, { q:'What file formats will I receive?', a:"You'll receive all the final files you need — typically PNG, SVG, PDF, and source files (AI or Figma). Everything is organized in a clearly named folder with a handoff document explaining each file." }, { q:'How long does a typical project take?', a:"A logo design takes 1–2 weeks. A full brand identity system takes 3–5 weeks. UI/UX projects vary by scope. Rush timelines can sometimes be accommodated — just ask." }, { q:'Do you sign NDAs?', a:"Yes, absolutely. I take confidentiality seriously and am happy to sign an NDA before any sensitive project details are shared." }, { q:'What if I don\'t like any of the initial concepts?', a:"It rarely happens when the brief is clear, but if none of the initial directions feel right, we'll have a call to re-align. I'm committed to delivering something you're genuinely proud of." }, ]; /* ─── Helper: Section Label ─── */ function SLabel({ num, text, theme }) { return (
{num} {text}
); } /* ─── Helper: Dots ─── */ function Dots({ level, color, total=5 }) { return ( {Array.from({length:total}).map((_,i) => ( ))} ); } /* ─── Placeholder image ─── */ function Placeholder({ color, h, num, numbered }) { const uid = useRef('ph'+Math.random().toString(36).slice(2,7)).current; return (
{numbered && (
{num}
)}
); } /* ─── Nav ─── */ function Nav({ theme, isBlogPage = false }) { const T = theme; const [scrolled, setScrolled] = useState(false); useEffect(() => { const h = () => setScrolled(window.scrollY > 60); window.addEventListener('scroll', h); return () => window.removeEventListener('scroll', h); }, []); return ( ); } /* ─── Hero ─── */ function Hero({ theme }) { const T = theme; const [scrollY, setScrollY] = useState(0); useEffect(() => { const h = () => setScrollY(window.scrollY); window.addEventListener('scroll', h, { passive: true }); return () => window.removeEventListener('scroll', h); }, []); return (
{/* Background shapes */}
{/* Left: Text */}
{/* Available pill */}
Available globally · Based in India
{/* Giant name */}

TANIKA
Sharma.

Graphic designer crafting bold brand identities, expressive typography, and scroll-stopping visuals — 3+ years across India and beyond.
Book a Call WhatsApp Me
{/* Stats */}
{[['3+','Years Experience'],['50+','Projects Delivered'],['30+','Happy Clients']].map(([n,l]) => (
{n}
{l}
))}
{/* Right: Rotating TS circle */}
{/* Rotating text ring */} GRAPHIC DESIGNER · INDIA & WORLDWIDE · 2021 – PRESENT ·  {/* Center monogram */}
TS
); } /* ─── Marquee ─── */ function Marquee({ theme }) { const T = theme; const items = [...MARQUEE,...MARQUEE]; return (
{items.map((it,i) => ( {it} ))}
); } /* ─── Case Studies ─── */ function CaseStudies({ theme }) { const T = theme; const [ref, v] = useInView(); const [active, setActive] = useState(null); const data = typeof window !== 'undefined' && window.WP_CASE_STUDIES && window.WP_CASE_STUDIES.length > 0 ? window.WP_CASE_STUDIES : CASE_STUDIES; return (

Behind the
work.

A deeper look at the projects — the challenge, my process, and what we achieved together.

{data.map((cs, i) => { const isOpen = active === cs.id; return (
{/* Header row */} {/* Expanded content */} {isOpen && (
{[['The Challenge',cs.challenge],['My Process',cs.process],['The Outcome',cs.outcome]].map(([label,text]) => (
{label}

{text}

))}
DELIVERABLES {cs.deliverables.map(d => ( {d} ))} ⏱ {cs.duration}
)}
); })}
); } /* ─── Services / Custom Quote ─── */ function Services({ theme }) { const T = theme; const [ref, v] = useInView(); return (

What I
do best.

Every engagement is custom-scoped. No fixed packages — just the right scope for your project.

{SERVICES.map((svc,i) => (
{e.currentTarget.style.transform='translateY(-5px)';e.currentTarget.style.boxShadow='0 12px 32px rgba(0,0,0,0.08)'}} onMouseLeave={e=>{e.currentTarget.style.transform='';e.currentTarget.style.boxShadow=''}}>
{svc.icon}
{svc.name}

{svc.desc}

))}
{/* CTA strip */}
Every project gets a custom quote.

Tell me about your project — timeline, goals, references — and I'll get back to you within 24 hours.

Book a Free Call Get in Touch
); } /* ─── FAQ ─── */ function FAQ({ theme }) { const T = theme; const [ref, v] = useInView(); const [open, setOpen] = useState(null); const data = typeof window !== 'undefined' && window.WP_FAQS && window.WP_FAQS.length > 0 ? window.WP_FAQS : FAQS; return (

Questions I get
asked a lot.

Everything you need to know before we start working together.

{data.map((faq, i) => { const isOpen = open === i; return (
{isOpen && (

{faq.a}

)}
); })}

Still have questions?

Book a Free Call
); } /* ─── Work ─── */ function Work({ theme, numbered }) { const T = theme; const [ref, v] = useInView(); const rawData = typeof window !== 'undefined' && window.WP_PORTFOLIO && window.WP_PORTFOLIO.length > 0 ? window.WP_PORTFOLIO : PROJECTS; const rawCats = typeof window !== 'undefined' && window.WP_PORTFOLIO_CATS ? window.WP_PORTFOLIO_CATS : ['Brand Identity','UI/UX Design','Social Media','Illustration']; const [filter, setFilter] = useState('All'); const [batch, setBatch] = useState(0); const [isHovered, setIsHovered] = useState(false); const [lb, setLb] = useState(null); const filtered = filter === 'All' ? rawData : rawData.filter(d => (d.all_cats && d.all_cats.includes(filter)) || (d.cat && d.cat.includes(filter))); const BATCH_SIZE = 9; const numBatches = Math.ceil(filtered.length / BATCH_SIZE) || 1; const currentItems = filtered.slice(batch * BATCH_SIZE, (batch + 1) * BATCH_SIZE); useEffect(() => { setBatch(0); }, [filter]); useEffect(() => { // Auto-rotation removed to prevent page height jumping }, [numBatches, isHovered, lb]); const getEmbed = (type, url) => { if (!url) return ''; if (type === 'short' || url.includes('youtube') || url.includes('youtu.be')) { const id = url.split('/').pop().split('?')[0].replace('watch', ''); return `https://www.youtube.com/embed/${id}?autoplay=1`; } if (type === 'reel' || url.includes('instagram.com')) { const clean = url.split('?')[0].replace(/\/$/, ''); return `${clean}/embed`; } if (type === 'vimeo' || url.includes('vimeo.com')) { const id = url.split('/').pop(); return `https://player.vimeo.com/video/${id}?autoplay=1`; } if (type === 'figma' || url.includes('figma.com')) { return `https://www.figma.com/embed?embed_host=portfolio&url=${encodeURIComponent(url)}`; } return url; }; const isPlayable = (type) => ['mp4','reel','short','vimeo','figma','gallery','before_after'].includes(type); return (

Work that
speaks.

A live showcase of recent projects spanning branding, digital design, and interactive media. {numBatches > 1 && " Auto-rotating to show more work."}

{['All', ...rawCats].map(f => ( ))}
{/* Dashboard Grid Container */}
setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} >
{currentItems.map((p,i) => { const playable = isPlayable(p.media_type); return (
playable && setLb(p)} style={{cursor: playable ? 'pointer' : 'default'}}>
{p.thumb ? ( {p.title} ) : ( )} {playable && (
)}
{p.title}
{p.first_cat || p.cat}
{p.year}
); })}
{/* Pagination Dots */} {numBatches > 1 && (
{Array.from({length: numBatches}).map((_, i) => (
)}
{/* Lightbox */} {lb && (
{lb.media_type === 'mp4' && ( )} {['reel','short','vimeo','figma'].includes(lb.media_type) && ( )} {lb.media_type === 'gallery' && lb.gallery && (
{lb.gallery.map((g,i) => )}
)} {lb.media_type === 'before_after' && (
Before
Before
After
After
)}
)}
); } /* ─── Tools ─── */ function Tools({ theme }) { const T = theme; const [ref, v] = useInView(); return (

The toolkit
behind the magic.

{TOOLS.map((tool,i) => (
{tool.name}{e.target.style.display='none';e.target.nextSibling.style.display='flex'}}/> {tool.name.slice(0,2)}
{tool.name}
{tool.cat}
))}
); } /* ─── About ─── */ function About({ theme }) { const T = theme; const [ref, v] = useInView(); const uid = useRef('ab'+Math.random().toString(36).slice(2,6)).current; return (
Photo of Tanika

Designing with
purpose & play

Creative Graphic Designer with 3+ years of experience designing visually engaging digital assets for brands across web and marketing platforms.

Skilled in Adobe Illustrator, Canva, Figma, and modern design principles — with a strong focus on clean, impactful visuals that enhance brand identity and audience engagement.

{[['📍 Location','India & Worldwide'],['💼 Experience','3+ Years'],['🌐 Languages','Hindi, English'],['✉️ Status','Open to work']].map(([k,val]) => (
{k}
{val}
))}
LinkedIn WhatsApp Download CV
); } /* ─── Testimonials ─── */ function Testimonials({ theme }) { const T = theme; const [ref, v] = useInView(); const data = typeof window !== 'undefined' && window.WP_TESTIMONIALS && window.WP_TESTIMONIALS.length > 0 ? window.WP_TESTIMONIALS : TESTIMONIALS; const [currentIndex, setCurrentIndex] = useState(0); const [itemsToShow, setItemsToShow] = useState(3); const [isHovered, setIsHovered] = useState(false); useEffect(() => { const handleResize = () => { if (window.innerWidth < 768) setItemsToShow(1); else if (window.innerWidth < 1024) setItemsToShow(2); else setItemsToShow(3); }; handleResize(); window.addEventListener('resize', handleResize); return () => window.removeEventListener('resize', handleResize); }, []); const canSlide = data.length > itemsToShow; const maxIndex = Math.max(0, data.length - itemsToShow); useEffect(() => { if (!canSlide || isHovered) return; const timer = setInterval(() => { setCurrentIndex((prev) => (prev >= maxIndex ? 0 : prev + 1)); }, 3500); return () => clearInterval(timer); }, [canSlide, maxIndex, isHovered]); // Handle manual navigation const nextSlide = () => setCurrentIndex(prev => (prev >= maxIndex ? 0 : prev + 1)); const prevSlide = () => setCurrentIndex(prev => (prev <= 0 ? maxIndex : prev - 1)); const gap = 18; const reduction = (gap * (itemsToShow - 1)) / itemsToShow; const itemWidthPercent = 100 / itemsToShow; return (
setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} >

What clients say.

{canSlide && (
)}
{data.map((t,i) => (
"

{t.text}

{t.pic ? ( {t.name} ) : (
{t.initials}
)}
{t.name}
{t.role}
))}
); } /* ─── Single Post ─── */ function SinglePost({ theme }) { const T = theme; const post = (typeof window !== 'undefined' && window.WP_POST_DATA) ? window.WP_POST_DATA : null; // Reading progress bar const [progress, setProgress] = useState(0); // TOC: list of { id, text } const [toc, setToc] = useState([]); // Active TOC heading const [activeId, setActiveId] = useState(''); // Mobile TOC open state const [tocOpen, setTocOpen] = useState(false); // Copied state for share const [copied, setCopied] = useState(false); const articleRef = useRef(null); // Reading progress useEffect(() => { const onScroll = () => { const el = document.documentElement; const scrolled = el.scrollTop || document.body.scrollTop; const total = el.scrollHeight - el.clientHeight; setProgress(total > 0 ? Math.min(100, (scrolled / total) * 100) : 0); }; window.addEventListener('scroll', onScroll, { passive: true }); return () => window.removeEventListener('scroll', onScroll); }, []); // Build TOC from rendered H2s useEffect(() => { if (!articleRef.current) return; const headings = articleRef.current.querySelectorAll('h2'); const items = []; headings.forEach((h, i) => { const slug = 'section-' + i + '-' + h.textContent.trim().toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/(^-|-$)/g, ''); h.id = slug; items.push({ id: slug, text: h.textContent.trim() }); }); setToc(items); if (items.length > 0) setActiveId(items[0].id); }, [post]); // IntersectionObserver to track active heading useEffect(() => { if (toc.length === 0) return; const obs = new IntersectionObserver( (entries) => { entries.forEach(e => { if (e.isIntersecting) setActiveId(e.target.id); }); }, { rootMargin: '-20% 0px -70% 0px', threshold: 0 } ); toc.forEach(item => { const el = document.getElementById(item.id); if (el) obs.observe(el); }); return () => obs.disconnect(); }, [toc]); const scrollToSection = (id) => { const el = document.getElementById(id); if (el) { const y = el.getBoundingClientRect().top + window.scrollY - 90; window.scrollTo({ top: y, behavior: 'smooth' }); setTocOpen(false); } }; const copyLink = () => { navigator.clipboard.writeText(window.location.href).then(() => { setCopied(true); setTimeout(() => setCopied(false), 2000); }); }; useEffect(() => { window.scrollTo(0, 0); }, []); if (!post) { return (
404

Post not found.

← Back to Blog
); } const related = post.related || []; return (
{/* Reading Progress Bar */}
{/* ── POST HEADER ── */}
{/* Back + Category */}
← Journal · {post.cat}
{/* Title */}

{post.title}

{/* TLDR — shown only if set via the WP custom field */} {post.tldr && (
TL;DR

{post.tldr}

)} {/* Meta row */}
TS
Tanika Sharma
Graphic Designer
· {post.date} · {post.read}
{/* ── FEATURED IMAGE ── */} {post.thumb && (
{post.title}
)} {/* ── MOBILE TOC ACCORDION ── */} {toc.length > 0 && (
{tocOpen && (
{toc.map(item => ( ))}
)}
)} {/* ── TWO COLUMN: Article + Sticky TOC ── */}
0 ? '1fr 280px' : '1fr',gap:60,alignItems:'start'}}> {/* Article Body */}
{/* Tags */} {post.tags && post.tags.length > 0 && (
Tags: {post.tags.map(tag => ( {tag} ))}
)} {/* Share Row */}
Share: 𝕏 Twitter LinkedIn WhatsApp
{/* Sticky TOC Sidebar */} {toc.length > 0 && ( )}
{/* ── CTA STRIP ── */}
Enjoyed this? Let's work together.

Tell me about your project and I'll get back to you within 24 hours.

Book a Free Call ← More Posts
{/* ── RELATED POSTS ── */} {related.length > 0 && (
More from the Journal.
{related.map((r, i) => ( {r.thumb && {r.title}} {!r.thumb &&
}
{r.cat} {r.date}

{r.title}

Read More →
))}
)}
); } /* ─── Blog Main Page ─── */ function BlogPage({ theme }) { const T = theme; const [filter, setFilter] = useState('All'); // Use data from window or fallback to BLOG_POSTS const data = typeof window !== 'undefined' && window.WP_BLOG_POSTS && window.WP_BLOG_POSTS.length > 0 ? window.WP_BLOG_POSTS : BLOG_POSTS; const cats = ['All', ...new Set(data.map(p => p.cat))]; const filtered = filter === 'All' ? data : data.filter(p => p.cat === filter); useEffect(() => { window.scrollTo(0, 0); }, []); return (

Ideas worth
sharing.

Thoughts, insights, and behind-the-scenes looks into my design process, industry trends, and creative freelance life.

{cats.map(f => ( ))}
{filtered.map((post,i) => (
{post.cat} {post.date}

{post.title}

{post.summary}

{post.read} Read More →
))}
); } /* ─── Blog ─── */ function Blog({ theme }) { const T = theme; const [ref, v] = useInView(); return (

Ideas worth
sharing.

All Posts →
{(typeof window !== 'undefined' && window.WP_BLOG_POSTS && window.WP_BLOG_POSTS.length > 0 ? window.WP_BLOG_POSTS : BLOG_POSTS).slice(0, 3).map((post,i) => ( {/* Color bar */}
{post.cat} {post.date}
{post.num}

{post.title}

{post.summary}

{post.read} Read More →
))}
); } /* ─── Contact ─── */ function Contact({ theme }) { const T = theme; const [ref, v] = useInView(); return (

Let's make
something
great.

Open for freelance projects, brand collaborations, and creative partnerships — working with clients across India and globally.

); } /* ─── Footer ─── */ function Footer({ theme }) { const T = theme; return (
TS
Tanika Sharma
© {new Date().getFullYear()} · Graphic Designer · India & Worldwide LinkedIn ↗
); } /* ─── Hero Variations Test ─── */ function HeroVariationsTest({ theme }) { const T = theme; return (

Current Hero - Polished Variations

Refining the current live layout to be more attractive and minimal.

← Back to Live Site
{/* Variation 1: Ultra-Clean Monochromatic */}
Variation 1: Ultra-Clean Monochromatic
Available globally · Based in India

TANIKA
Sharma.

Graphic designer. Crafting bold brand identities, expressive typography, and scroll-stopping visuals — 3+ years across India and beyond.
{[['3+','Years Experience'],['50+','Projects Delivered'],['30+','Happy Clients']].map(([n,l]) => (
{n}
{l}
))}
TS
{/* Variation 2: Negative Overlap & High Contrast */}
Variation 2: Typography Overlap & Accent Focus
Available for new projects

TANIKA
SHARMA

Graphic designer crafting bold brand identities and expressive typography.
{[['3+','Years'],['50+','Projects'],['30+','Clients']].map(([n,l]) => (
{n}
{l}
))}
TS.
{/* Variation 3: Soft Glassmorphism */}
Variation 3: Soft & Minimal Glass
{/* Soft background glow */}
Based in India

TANIKA
Sharma.

Graphic designer crafting bold brand identities and scroll-stopping visuals.
{[['3+','Years Experience'],['50+','Projects Delivered']].map(([n,l]) => (
{n}
{l}
))}
); } /* ─── App ─── */ function App({ initialPage = 'home' }) { const [tweaks, setTweak] = useTweaks(TWEAK_DEFAULTS); const [route, setRoute] = useState(initialPage); useEffect(() => { // If we are on the home page and there's a hash, let browser scroll natively // We do NOT use hash routing for the blog page anymore, since it's a legit WP page. const handleHash = () => { // no-op for actual page routing }; window.addEventListener('hashchange', handleHash); return () => window.removeEventListener('hashchange', handleHash); }, []); const isDark = tweaks.direction === 'dark'; const accent = tweaks.accent || '#3366ff'; const T = { bg: isDark ? '#0A0A0A' : '#FAFAF8', bgAlt: isDark ? '#131313' : '#F1EDE6', text: isDark ? '#EDEAE4' : '#0D0D0B', muted: isDark ? '#6E6B64' : '#6B6560', border:isDark ? '#222220' : '#E0DBD4', accent, }; const isTest = typeof window !== 'undefined' && new URLSearchParams(window.location.search).get('test') === 'hero'; if (isTest) { return ; } const isBlogPage = route === 'blog'; const isSinglePost = route === 'single-post'; return (