|
| 1 | +# CLAUDE.md |
| 2 | + |
| 3 | +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. |
| 4 | + |
| 5 | +## Project Overview |
| 6 | + |
| 7 | +SkyWork Borivali is a static website for a premium co-working space in Mumbai. This is a traditional multi-page single-file HTML site using jQuery and Bootstrap 5, with no build process or modern framework. |
| 8 | + |
| 9 | +## Technology Stack |
| 10 | + |
| 11 | +- **Frontend**: Vanilla HTML5, CSS3, JavaScript (ES5 syntax) |
| 12 | +- **Libraries**: |
| 13 | + - jQuery 3.x (DOM manipulation, AJAX) |
| 14 | + - Bootstrap 5 (layout, components, responsive grid) |
| 15 | + - Swiper.js (carousel for gallery) |
| 16 | + - Magnific Popup (image lightbox) |
| 17 | + - Filterizr (portfolio filtering, currently unused) |
| 18 | + - Line Awesome (icon font) |
| 19 | +- **No build tools**: Direct file serving, no transpilation or bundling |
| 20 | + |
| 21 | +## Development Workflow |
| 22 | + |
| 23 | +### Running Locally |
| 24 | +Simply open `index.html` in a browser. For a development server: |
| 25 | +```bash |
| 26 | +python3 -m http.server 8000 |
| 27 | +# or |
| 28 | +npx serve |
| 29 | +``` |
| 30 | + |
| 31 | +### File Structure |
| 32 | +``` |
| 33 | +skywork/ |
| 34 | +├── index.html # Single-page application (all sections in one file) |
| 35 | +├── css/ |
| 36 | +│ ├── style.css # Custom styles (editable) |
| 37 | +│ └── *.min.css # Third-party libraries (DO NOT edit) |
| 38 | +├── js/ |
| 39 | +│ ├── main.js # Custom JavaScript (editable) |
| 40 | +│ └── *.min.js # Third-party libraries (DO NOT edit) |
| 41 | +├── img/ # Images for workspace, pricing, gallery |
| 42 | +├── reviews.json # Customer reviews data |
| 43 | +└── fonts/ # Line Awesome icon fonts |
| 44 | +``` |
| 45 | + |
| 46 | +## Key Architectural Patterns |
| 47 | + |
| 48 | +### Single-Page Scroll Architecture |
| 49 | +All sections (home, about, space, gallery, reviews, contact) are in `index.html` with anchor-based navigation (`#home`, `#about`, etc.). The navbar uses smooth scrolling via jQuery to navigate between sections (see `js/main.js:11-26`). |
| 50 | + |
| 51 | +### Anti-Spam Contact Protection |
| 52 | +Phone number is obfuscated using simple character rotation in `js/main.js:165-174`. The `decryptPhone()` function displays the contact when users click "Call Us Now" buttons. Similarly, email uses ROT13 encoding (`js/main.js:148-162`). |
| 53 | + |
| 54 | +### Dynamic Reviews System |
| 55 | +Reviews are loaded from `reviews.json` via AJAX (`js/main.js:75-126`) and displayed in three horizontally scrolling rows with infinite scroll animation. Reviews are duplicated in the DOM to create seamless looping. Each row scrolls in alternating directions (left-right-left) defined by `data-direction` attributes. |
| 56 | + |
| 57 | +### Responsive Navbar Behavior |
| 58 | +- Sticky navbar appears after 50px scroll (`js/main.js:61-72`) |
| 59 | +- Mobile hamburger menu auto-closes after link click (`js/main.js:56-58`) |
| 60 | +- Mobile-only floating call button positioned bottom-right (hidden on desktop via Bootstrap `d-md-none`) |
| 61 | + |
| 62 | +## Common Development Tasks |
| 63 | + |
| 64 | +### Updating Pricing |
| 65 | +Edit the pricing cards in `index.html` around lines 100-156. Update the timestamp on line 105 when prices change. |
| 66 | + |
| 67 | +### Adding/Removing Reviews |
| 68 | +Edit `reviews.json`. The reviews array is automatically split into three rows (0-3, 4-7, 8+) by `js/main.js:79-81`. Each review requires: `reviewer_name`, `rating`, `review_date`, `reviewer_stats`, `review_text`, `customer_type`. |
| 69 | + |
| 70 | +### Modifying Gallery Images |
| 71 | +Update the Bootstrap carousel in `index.html:173-199`. Each slide needs a `carousel-item` div with an `<img>` tag. Update carousel indicators count to match number of slides. |
| 72 | + |
| 73 | +### Changing Contact Information |
| 74 | +- Address: `index.html:303` |
| 75 | +- Hours: `index.html:310-311` |
| 76 | +- Phone: Update the decoded number in `js/main.js:172` (NOT the encoded version on line 166) |
| 77 | +- Google Maps: Replace iframe src on `index.html:292` |
| 78 | + |
| 79 | +### Styling Changes |
| 80 | +Edit `css/style.css`. Key sections include: |
| 81 | +- Navbar styles (`.navbar`) |
| 82 | +- Section-specific styles (`.intro`, `.about`, `.space`, `.gallery`, `.reviews`, `.contact`) |
| 83 | +- Review cards (`.review-card`, `.reviews-row`, `.reviews-track`) |
| 84 | +- Mobile-specific styles in media queries |
| 85 | + |
| 86 | +## Important Notes |
| 87 | + |
| 88 | +- **jQuery Usage**: This project uses jQuery 3.x. All DOM manipulation should use jQuery syntax (`$()`) to maintain consistency |
| 89 | +- **ES5 JavaScript**: Uses IIFE pattern, `var` declarations, and function declarations (no arrow functions, const/let, or ES6+ features) |
| 90 | +- **Minified Libraries**: Never edit files ending in `.min.js` or `.min.css` - these are third-party dependencies |
| 91 | +- **Responsive Images**: All images in `img/` are high-resolution JPGs/PNGs. Consider optimizing large files before adding new images |
| 92 | +- **Bootstrap Grid**: Layout uses Bootstrap 5 grid system (`container`, `row`, `col-*` classes) |
| 93 | +- **Icon Usage**: Line Awesome icons via `<i class="la la-icon-name"></i>` (similar to Font Awesome syntax) |
| 94 | + |
| 95 | +## Deployment |
| 96 | + |
| 97 | +This is a static site that can be deployed to: |
| 98 | +- GitHub Pages |
| 99 | +- Netlify |
| 100 | +- Vercel |
| 101 | +- Any static file hosting |
| 102 | + |
| 103 | +No build step required - upload all files maintaining directory structure. |
| 104 | + |
| 105 | +## Domain Configuration |
| 106 | +The `CNAME` file contains the custom domain configuration for deployment. |
0 commit comments