Looka Theme Documentation
File Structure
After unzipping a theme, you will find a structure like this:
Directorythemes/
DirectorythemeName/ (📌 Main theme folder)
- …
- changelog.html (🔗 Links to online changelog)
- documentation.html (🔗 Links to online documentation)
Main Theme Directory Structure
Our themes follow a modular structure for easy customization and scalability.
DirectorythemeName/
Directorysrc/
- tests / (Unit & integration tests)
Directoryassets/
Directoryimages/
- …
Directoryconfig/ (Site-wide settings)
- config.toml (Global config)
- fonts.json (Font definitions)
- language.json (Language settings)
- menu.en.json (English menu)
- menu.fr.json (French menu)
- social.json (Social links)
Directorycontent/ (Content management)
Directoryabout/ (About page)
Directoryenglish/ (English version)
- …
Directoryfrench/ (French version)
- …
Directoryhomepage/ (Homepage)
Directoryenglish/
- …
Directoryfrench/
- …
Directorypages/ (Static pages: terms, privacy, etc.)
- …
Directorysections/ (Reusable sections)
Directoryenglish/
- …
Directoryfrench/
- …
- _file_format.md (Frontmatter docs)
Directoryi18n/ (Translations)
- en.json (English)
- fr.json (French)
Directorylayouts/ (Page layouts & UI components)
Directorycomponents/ (Reusable UI elements)
Directorycards/
- …
Directoryglobal/
- …
Directorysections/
- …
Directoryseo/
- …
Directorysocial/
- …
Directoryutilities/
- …
Directorywidgets/
- …
- SinglePageLayout.astro
Directoryhelpers/
- …
Directoryshortcodes/ (Custom MDX components)
- …
- Base.astro
Directorylib/ (Shared utilities & hooks)
- …
Directorypages/ (Dynamic & static pages)
Directory[…lang]/ (Multi-language support)
- index.astro (Homepage)
- about.astro
- contact.astro
Directoryblog/
- …
- (other theme-specific routes)
- 404.astro
- robots.txt.ts (Robots.txt generator)
Directoryplugins/
Directoryodometer/ (Number animations)
- …
Directorystyles/
- base.css
- safe.css
- buttons.css
- global.css
- utilities.css
- animation.css
- components.css
- navigation.css
- theme.css
Directorytypes/ (TypeScript definitions)
- …
- content.config.ts (Content settings)
- env.d.ts (Env variable types)
Key Directories & Their Purpose
/public⟶ Static Assets
- Stores images, icons, fonts, and other static files.
- Files inside this folder are accessible via direct URLs (e.g.,
/images/logo.svg).
/src⟶ Main Codebase
- Contains all Astro components, pages, content, and styles.
- Customize layouts, pages, and components here.
/scripts⟶ Automation Scripts
- Optimizes workflows with utilities like:
generate-favicons.mjs→ Generates favicons for all devices.remove-draft-from-sitemap.mjs→ Removes pages withdraft:trueorexclude_from_sitemap:true.remove-multilingual.mjs→ Removes all multilingual content & i18n files.
⚙️ Key Configuration Files
astro.config.mjs- Astro Configuration
- Manages integrations, build settings, and markdown processing.
- For general site settings, modify
config.tomlinstead.
config.toml- Global Settings
- Primary configuration file for theme settings.
- Controls SEO, multilingual options, header navigation button, branding, and content structure.
🔍 SEO & OpenGraph
title,description, andkeywordsfor metadata.seo.robotsTxtandseo.sitemapsettings for search engines.opengraph.imagefor social media previews.
🎨 Theme & Content Settings
- Content folder keys vary by theme. Common ones include:
blogFolderintegrationFoldercareerFolder
stickyHeader,brandName, andpaginationsettings.
🌎 Multilingual Settings
settings.multilingual.enable→ Enables/disables multilingual support.settings.multilingual.defaultLanguage→ Defines the primary language.settings.multilingual.disableLanguages→ Lists languages to disable.settings.multilingual.showDefaultLangInUrl→ Shows default language in URL when true.
Styling & Fonts
- Colors and typography live in
src/styles/theme.css. - Fonts are defined in
src/config/fonts.jsonand loaded automatically.
Other Important Files
package.json→ Manages dependencies & npm scripts (npm run dev).vercel.json/netlify.toml→ Configuration for deployments.
Now that you understand the project structure, it’s time to customize the site’s identity and logo.