Luxury granite showroom with SRK Granite wall emblem

Premium Indian
Granite & Marble Processor's
and Global Supplier

A Legacy of Excellence Across the Globe

Premium Quality Finest quality stones
with perfect finish
Global Reach Exporting to 10+
countries worldwide
Advanced Technology Modern machinery &
cutting-edge process
Timely Delivery On-time dispatch with
safe & secure packing

Who We Are

SRK Granite is a trusted Manufacturer, Global Supplier, and Stone Solution Provider, transforming natural stones into premium-quality masterpieces with elegance and precision.

Located in Kishangarh, our manufacturing unit is equipped with advanced technology, modern machinery, and skilled craftsmanship to process a wide range of Granite, Marble, and Sandstone products.

We believe in creating more than just stone — we create surfaces that bring luxury, durability, and timeless beauty to every space.

With a strong commitment to quality, flawless finishing, and customer satisfaction, SRK Granite delivers products that perfectly blend strength, style, and excellence.

  • Direct Quarry Sourcing
  • Export Quality Processing
  • Reliable Global Supply
  • Smart & Transparent Operations
Know More About Us
Luxury natural stone interior
10+Exporting Countries
18+Years of Experience
1000+Happy Clients
75+Projects Completed

Our Premium Stones

Our Manufacturing Unit

At SRK Granite, our manufacturing unit combines modern technology with expert craftsmanship to create premium quality Granite & Marble. Every slab is processed with precision, ensuring elegant finishing, durability, and international quality standards for luxury spaces worldwide.

Front look of Shree Radhe Krishna Granite manufacturing unit

Why Choose SRK Granite?

Affordable Price Structure
Well-equipped Warehouse
Timely Delivery
Transparent Dealings
Positive Records
Attractive Product Range
const ensureAdminAddControls = () => { if (!adminAddButton) { adminAddButton = document.createElement("button"); adminAddButton.className = "admin-add-button"; adminAddButton.id = "adminAddButton"; adminAddButton.type = "button"; adminAddButton.setAttribute("aria-label", "Add new element"); adminAddButton.textContent = "+"; document.body.appendChild(adminAddButton); } if (!adminSectionModal) { adminSectionModal = document.createElement("div"); adminSectionModal.className = "admin-section-modal"; adminSectionModal.id = "adminSectionModal"; adminSectionModal.setAttribute("aria-hidden", "true"); adminSectionModal.innerHTML = `
`; document.body.appendChild(adminSectionModal); } adminSectionForm = document.querySelector("#adminSectionForm"); adminSectionCloseButtons = document.querySelectorAll("[data-close-admin-section]"); }; if (isAdmin) { ensureAdminAddControls(); } const createAdminElementId = () => { return window.crypto?.randomUUID?.() || `element-${Date.now()}-${Math.random().toString(16).slice(2)}`; }; const getSavedAdminElements = () => { try { const elements = JSON.parse(localStorage.getItem(adminElementsStorageKey)) || []; return elements.map((element, index) => ({ ...element, id: element.id || `${element.category || "element"}-${index}-${(element.name || "").replace(/[^a-z0-9]/gi, "-")}` })); } catch (error) { return []; } }; const saveAdminElements = (elements) => { try { localStorage.setItem(adminElementsStorageKey, JSON.stringify(elements)); } catch (error) { if (error instanceof DOMException && (error.name === "QuotaExceededError" || error.name === "NS_ERROR_DOM_QUOTA_REACHED" || error.code === 22)) { console.warn("LocalStorage quota exceeded while saving product elements.", error); const trimmed = elements.slice(-10); localStorage.setItem(adminElementsStorageKey, JSON.stringify(trimmed)); } else { throw error; } } }; let firebaseEnabled = false; let firestoreDb = null; let firebaseStorage = null; const initFirebaseIfConfigured = () => { if (!window.FIREBASE_CONFIG) return; try { if (!window.firebase) return console.warn('Firebase SDK not loaded.'); if (!firebase.apps || !firebase.apps.length) { firebase.initializeApp(window.FIREBASE_CONFIG); } firestoreDb = firebase.firestore(); firebaseStorage = firebase.storage(); firebaseEnabled = true; loadRemoteElements().then((elements) => { if (Array.isArray(elements) && elements.length) { saveAdminElements(elements); document.querySelector('.admin-elements-section')?.remove(); elements.forEach(renderProductElement); } }).catch((err) => { console.warn('Failed to load remote elements:', err); }); } catch (error) { console.warn('Firebase initialization failed', error); } }; const loadRemoteElements = async () => { if (!firebaseEnabled) return []; const snapshot = await firestoreDb.collection('srkProductElements').get(); return snapshot.docs.map((doc) => ({ id: doc.id, ...doc.data() })); }; const uploadDataUrlToStorage = async (dataUrl, elementId) => { if (!firebaseEnabled) return null; const ref = firebaseStorage.ref().child(`product-images/${elementId}.jpg`); await ref.putString(dataUrl, 'data_url'); return ref.getDownloadURL(); }; const saveElementRemote = async (element) => { if (!firebaseEnabled) return; const id = element.id; const data = { ...element }; delete data.id; await firestoreDb.collection('srkProductElements').doc(id).set(data); }; const deleteElementRemote = async (id) => { if (!firebaseEnabled) return; try { await firestoreDb.collection('srkProductElements').doc(id).delete(); } catch (err) { console.warn('Failed to delete remote element', err); } }; initFirebaseIfConfigured(); const createResizedImageDataUrl = (file) => new Promise((resolve, reject) => { const reader = new FileReader(); reader.addEventListener("load", () => { const image = new Image(); image.addEventListener("load", () => { const maxDimension = 1200; let width = image.naturalWidth; let height = image.naturalHeight; if (width > maxDimension || height > maxDimension) { const ratio = Math.min(maxDimension / width, maxDimension / height); width = Math.round(width * ratio); height = Math.round(height * ratio); } const canvas = document.createElement("canvas"); canvas.width = width; canvas.height = height; const context = canvas.getContext("2d"); context.drawImage(image, 0, 0, width, height); resolve(canvas.toDataURL("image/jpeg", 0.8)); }); image.addEventListener("error", reject); image.src = reader.result; }); reader.addEventListener("error", reject); reader.readAsDataURL(file); }); const getCurrentProductMain = () => document.querySelector("[data-product-category]"); const getProductCategoryLabel = (category) => { const labels = { "indian-granite": "Indian Granite", sandstone: "Sandstone", "premium-marbles": "Premium Marbles", "luxury-surface-finishing": "Luxury Surface Finishing" }; return labels[category] || "Product"; }; const ensureProductDetailModal = () => { let modal = document.querySelector("#productElementDetailModal"); if (modal) return modal; modal = document.createElement("div"); modal.className = "product-detail-modal"; modal.id = "productElementDetailModal"; modal.setAttribute("aria-hidden", "true"); modal.innerHTML = `
`; document.body.appendChild(modal); modal.querySelectorAll("[data-close-product-detail]").forEach((button) => { button.addEventListener("click", () => { modal.classList.remove("is-open"); modal.setAttribute("aria-hidden", "true"); document.body.style.overflow = ""; }); }); return modal; }; const openProductElementDetails = ({ category, name, application, thickness, quality, photo }) => { const modal = ensureProductDetailModal(); const image = modal.querySelector(".product-detail-image"); image.src = photo; image.alt = name; modal.querySelector(".product-detail-category").textContent = getProductCategoryLabel(category); modal.querySelector("#productDetailTitle").textContent = name; modal.querySelector(".product-detail-application").textContent = application; modal.querySelector(".product-detail-thickness").textContent = thickness || "N/A"; modal.querySelector(".product-detail-quality").textContent = quality || "N/A"; modal.classList.add("is-open"); modal.setAttribute("aria-hidden", "false"); document.body.style.overflow = "hidden"; }; const renderAllProductElements = () => { document.querySelector(".admin-elements-section")?.remove(); if (firebaseEnabled) { loadRemoteElements().then((elements) => { elements.forEach(renderProductElement); }).catch(() => { getSavedAdminElements().forEach(renderProductElement); }); } else { getSavedAdminElements().forEach(renderProductElement); } }; const deleteProductElement = (elementId, card) => { const shouldDelete = window.confirm("Delete this element?"); if (!shouldDelete) return; const updatedElements = getSavedAdminElements().filter((element) => element.id !== elementId); saveAdminElements(updatedElements); card.remove(); if (firebaseEnabled) { deleteElementRemote(elementId).catch((err) => console.warn('Failed to delete remote element', err)); } const grid = document.querySelector(".admin-elements-grid"); if (grid && !grid.children.length) { grid.closest(".admin-elements-section")?.remove(); } }; const updateProductElement = (updatedElement) => { const updatedElements = getSavedAdminElements().map((element) => ( element.id === updatedElement.id ? updatedElement : element )); saveAdminElements(updatedElements); renderAllProductElements(); }; const ensureProductEditModal = () => { let modal = document.querySelector("#productElementEditModal"); if (modal) return modal; modal = document.createElement("div"); modal.className = "product-edit-modal"; modal.id = "productElementEditModal"; modal.setAttribute("aria-hidden", "true"); modal.innerHTML = `
`; document.body.appendChild(modal); modal.querySelectorAll("[data-close-product-edit]").forEach((button) => { button.addEventListener("click", () => { modal.classList.remove("is-open"); modal.setAttribute("aria-hidden", "true"); document.body.style.overflow = ""; }); }); return modal; }; const openProductElementEdit = (elementId) => { const element = getSavedAdminElements().find((item) => item.id === elementId); if (!element) return; const modal = ensureProductEditModal(); const form = modal.querySelector(".product-edit-form"); form.dataset.elementId = element.id; form.dataset.currentPhoto = element.photo; form.category.value = element.category; form.name.value = element.name; form.application.value = element.application; form.thickness.value = element.thickness || ""; form.quality.value = element.quality || ""; form.photo.value = ""; modal.classList.add("is-open"); modal.setAttribute("aria-hidden", "false"); document.body.style.overflow = "hidden"; form.name.focus(); }; document.addEventListener("submit", (event) => { const form = event.target.closest(".product-edit-form"); if (!form) return; event.preventDefault(); const saveEditedElement = (photo) => { const updatedElement = { id: form.dataset.elementId, category: form.category.value, name: form.name.value.trim(), application: form.application.value.trim(), thickness: form.thickness.value, quality: form.quality.value.trim(), photo }; if (!updatedElement.name || !updatedElement.application || !updatedElement.thickness || !updatedElement.quality) return; updateProductElement(updatedElement); form.closest(".product-edit-modal").classList.remove("is-open"); form.closest(".product-edit-modal").setAttribute("aria-hidden", "true"); document.body.style.overflow = ""; if (firebaseEnabled) { (async () => { try { let remoteUrl = updatedElement.photo; if (updatedElement.photo && updatedElement.photo.startsWith('data:')) { remoteUrl = await uploadDataUrlToStorage(updatedElement.photo, updatedElement.id); updatedElement.photo = remoteUrl; const saved = getSavedAdminElements().map((el) => el.id === updatedElement.id ? updatedElement : el); saveAdminElements(saved); } await saveElementRemote(updatedElement); } catch (err) { console.warn('Failed to sync edited element to remote', err); } })(); } }; const photoFile = form.photo.files[0]; if (!photoFile) { saveEditedElement(form.dataset.currentPhoto); return; } createResizedImageDataUrl(photoFile).then((photo) => { saveEditedElement(photo); }).catch((error) => { console.error("Failed to process uploaded image.", error); }); }); const renderProductElement = ({ id, category, name, application, thickness, quality, photo }) => { const main = getCurrentProductMain(); if (!main) return; if (main.dataset.productCategory !== category) return; let grid = main.querySelector(".admin-elements-grid"); if (!grid) { const section = document.createElement("section"); section.className = "admin-elements-section"; const heading = document.createElement("h2"); heading.textContent = "Added Elements"; grid = document.createElement("div"); grid.className = "admin-elements-grid"; section.append(heading, grid); main.appendChild(section); } const card = document.createElement("article"); card.className = "admin-element-card"; card.dataset.adminElementId = id; const imageButton = document.createElement("button"); imageButton.className = "admin-element-image-button"; imageButton.type = "button"; imageButton.setAttribute("aria-label", `View details for ${name}`); imageButton.addEventListener("click", () => { openProductElementDetails({ category, name, application, thickness, quality, photo }); }); const image = document.createElement("img"); image.src = photo; image.alt = name; imageButton.appendChild(image); if (isAdmin) { const menu = document.createElement("div"); menu.className = "admin-element-menu"; const menuButton = document.createElement("button"); menuButton.className = "admin-element-menu-button"; menuButton.type = "button"; menuButton.setAttribute("aria-label", `Open actions for ${name}`); menuButton.textContent = "..."; const menuList = document.createElement("div"); menuList.className = "admin-element-menu-list"; const editButton = document.createElement("button"); editButton.type = "button"; editButton.textContent = "Edit"; editButton.addEventListener("click", () => { menu.classList.remove("is-open"); openProductElementEdit(id); }); const deleteButton = document.createElement("button"); deleteButton.type = "button"; deleteButton.textContent = "Delete"; deleteButton.addEventListener("click", () => { menu.classList.remove("is-open"); deleteProductElement(id, card); }); menuButton.addEventListener("click", (event) => { event.stopPropagation(); document.querySelectorAll(".admin-element-menu.is-open").forEach((openMenu) => { if (openMenu !== menu) openMenu.classList.remove("is-open"); }); menu.classList.toggle("is-open"); }); menuList.append(editButton, deleteButton); menu.append(menuButton, menuList); card.appendChild(menu); } card.appendChild(imageButton); grid.appendChild(card); }; getSavedAdminElements().forEach(renderProductElement); document.addEventListener("click", () => { document.querySelectorAll(".admin-element-menu.is-open").forEach((menu) => { menu.classList.remove("is-open"); }); }); const openAdminSectionModal = () => { if (!adminSectionModal) return; adminSectionModal.classList.add("is-open"); adminSectionModal.setAttribute("aria-hidden", "false"); document.body.style.overflow = "hidden"; adminSectionModal.querySelector("input")?.focus(); }; const closeAdminSectionModal = () => { if (!adminSectionModal) return; adminSectionModal.classList.remove("is-open"); adminSectionModal.setAttribute("aria-hidden", "true"); document.body.style.overflow = ""; }; const addProductElement = (form) => { const category = form.elements.category.value; const name = form.elements.name.value.trim(); const application = form.elements.application.value.trim(); const thickness = form.elements.thickness.value; const quality = form.elements.quality.value.trim(); const photoFile = form.elements.photo.files[0]; if (!category || !name || !application || !thickness || !quality || !photoFile) return; createResizedImageDataUrl(photoFile).then((photo) => { const elements = getSavedAdminElements(); const newElement = { id: createAdminElementId(), category, name, application, thickness, quality, photo }; elements.push(newElement); saveAdminElements(elements); renderProductElement(newElement); form.reset(); closeAdminSectionModal(); if (firebaseEnabled) { uploadDataUrlToStorage(photo, newElement.id).then((url) => { newElement.photo = url; return saveElementRemote(newElement); }).catch((err) => console.warn('Failed to save remote element', err)); } const currentProductMain = getCurrentProductMain(); if (!currentProductMain || currentProductMain.dataset.productCategory !== category) { window.location.href = adminCategoryPages[category]; } }).catch((error) => { console.error("Failed to process uploaded image.", error); }); }; document.addEventListener("click", (event) => { if (event.target.closest("#adminAddButton")) { openAdminSectionModal(); return; } if (event.target.closest("[data-close-admin-section]")) { closeAdminSectionModal(); } }); document.addEventListener("submit", (event) => { const form = event.target.closest("#adminSectionForm"); if (!form) return; event.preventDefault(); addProductElement(form); });