https://www.coralolsonphotography.com/index.html
A clean, modern portfolio website showcasing Coral Olson’s photography, built as static HTML/CSS (Bootstrap-based), hosted at coralolsonphotography.com.
/
├── index.html ← Home / hero landing page
├── projects.html ← Portfolio overview (grid or vertical layout)
├── marinashoot.html ← Portrait session gallery
├── vincentengagment.html ← Wedding & Engagement gallery
├── resume.html ← About Me / bio section (image-led layout)
├── contact.html ← Contact form (SB Forms)
├── assets/ ← Images (hero, sessions, icons, etc.)
├── css/
│ └── styles.css ← Shared global styles and Bootstrap overrides
└── js/
└── scripts.js ← Shared JavaScript (carousel autoplay, page enhancements)
- Homepage: Full-screen hero carousel with overlay text and “Book” and “Portfolio” calls to action.
- Font styling: ‘Playfair Display’ used for headings and navigation; ‘Plus Jakarta Sans’ for body text.
- Portfolio layout: Mix of horizontal grid and vertical card layouts for portfolio sections.
- About page: Displays a single full-width image of your biography without any grid cards.
- Image galleries: Clean display of images in vertical flows with a “Back to Portfolio” button.
- Footer: Consistent Instagram call-to-action banner and copyright text.
- Form page: Contact form built with Bootstrap and integrated via SB Forms (inactive until configured).
Ensure that all pages use the same navbar font (Playfair Display
) and link styles—this helps maintain cohesive branding.
To restrict users from downloading or copying images, include the following snippet at the end of every page (before closing </body>
):
<script>
document.addEventListener('DOMContentLoaded', () => {
document.body.addEventListener('cut', e => e.preventDefault());
document.body.addEventListener('copy', e => e.preventDefault());
document.body.addEventListener('paste', e => e.preventDefault());
document.querySelectorAll('img').forEach(img => {
img.addEventListener('contextmenu', e => e.preventDefault());
img.setAttribute('draggable', 'false');
});
});
</script>
- Use CSS media queries to adjust font sizes, padding, and image widths.
- Ensure navigation collapse works smoothly on small screens.
- The layout should adapt vertically for narrow viewports.
Sites appear on GitHub Pages
(e.g., JarrettNobles.github.io
) or custom domain coralolsonphotography.com
. Steps:
- Push updated HTML, CSS, JS, and assets to GitHub repo's
main
branch. - Ensure correct domain is set under repo settings (CNAME for custom domain).
- Verify SSL certificate and redirects are active.
- Test all pages via real device and browser dev tools in mobile mode.
Task | Recommended Frequency |
---|---|
Add new images/sessions | As needed |
Validate contact form API | Quarterly |
Update copyright year | Annually |
Optimize image size/etc. | Bi-annually |
Test mobile responsiveness | After major layout changes |
- Keep font imports consistent and remove redundant
link
tags if fonts repeat. - Use semantic HTML like
<h1 class="page-heading">
to maintain structure. - Leverage shared styles in
styles.css
and minimize inline overrides. - Use common footer/Instagram section as a reusable
<footer>
template—or better still, switch to a templating engine if maintaining many pages.