Mi Portfolio uses several configuration files to control styling, build behavior, TypeScript checking, and third-party integrations. This page covers each config file and the options you’re most likely to customize.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/lgomegarc/mi-portfolio/llms.txt
Use this file to discover all available pages before exploring further.
Tailwind CSS (tailwind.config.cjs)
Tailwind is configured via tailwind.config.cjs at the project root:
content array tells Tailwind which files to scan for class names during the build. All three glob patterns are intentionally overlapping to guarantee that every .svelte, .ts, .js, and .html file under src/ is covered — this prevents Tailwind from purging classes that only appear in route or library components.
The primary color (#5a5edc) is registered as a custom design token and is available as text-primary, bg-primary, border-primary, and so on. In practice, the portfolio primarily uses Tailwind’s built-in cyan-400 / cyan-500 palette for interactive accents (form focus rings, button gradients, links), while primary is used for focus-visible outlines in app.css.
SvelteKit (svelte.config.js)
- Adapter —
@sveltejs/adapter-verceltargets Vercel’s serverless and edge infrastructure. When you runnpm run build, the adapter writes the output to.vercel/output/in the format Vercel expects. No extra Vercel configuration is required. - Preprocessor —
svelte-preprocesswithtranspileOnly: trueenables TypeScript inside.sveltefiles. SettingtranspileOnlyskips full type-checking during the build step, which keeps build times fast. Type safety is enforced separately vianpm run check(which callssvelte-check --tsconfig ./tsconfig.json).
Vite (vite.config.ts)
sveltekit() plugin handles everything SvelteKit needs from Vite (routing, SSR, HMR). No custom aliases, proxy rules, or build overrides are needed for this project.
Global Styles (src/app.css)
src/app.css is the single global stylesheet imported by the SvelteKit layout. It handles several concerns:
Google Fonts — Poppins (weights 300, 400, 600, 700) is loaded from Google Fonts via @import at the top of the file and applied to body as the default font family.
Tailwind directives — The three standard directives appear in order immediately after the font import:
app.css:
#111827). The grid-pan animation slowly shifts the background-position, creating the effect of an infinite scrolling grid.
.container utility — Because @apply directives were intentionally avoided in this project, .container is defined with explicit CSS properties: margin: auto, max-width: 1280px (equivalent to Tailwind’s max-w-7xl), and responsive horizontal padding via media queries at 640px and 1024px breakpoints.
:focus-visible accessibility styles — Keyboard-navigable elements receive a 2px solid #5a5edc outline (the primary color) with a 3px offset and rounded corners, meeting WCAG 2.1 focus indicator requirements without affecting mouse users.
:target scroll margin — Anchor links that navigate to in-page sections (e.g. #about, #contact) include scroll-margin-top: 5rem to offset the sticky navbar so the target heading is not hidden beneath it.
scroll-behavior: smooth — Applied to the html element for native smooth scrolling when navigating between sections.
TypeScript (tsconfig.json)
@tsconfig/svelte (from the @tsconfig/svelte package), which provides sensible defaults for Svelte projects — including lib: ["es2017", "dom"] and target: "es2017". Strict mode is enabled for the strongest type safety guarantees.
This tsconfig.json is used exclusively by svelte-check. To run a full type-validation pass over the entire project:
svelte-check --tsconfig ./tsconfig.json, reporting any type errors in .svelte, .ts, and .js files.
EmailJS Credentials
The contact form inContactSection.svelte sends emails via the @emailjs/browser SDK. Three constants control which EmailJS account and template are used:
ContactSection.svelte. If you fork the project and want to use your own EmailJS account, the recommended approach is to move them to Vite environment variables.
Step 1 — Create a .env.local file in the project root:
ContactSection.svelte:
VITE_ to client-side code. Variables without the prefix remain server-side only and will be undefined in the browser.