🚚 Same Day Delivery Available in Chennai! 🎉
Home
Kolams Book | English Edition/ by Mis Lalitha Kalyax/ Kolam Designs Book
Kolams Book | English Edition/ by Mis Lalitha Kalyax/ Kolam Designs Book
Availability:
696 in stock, ready to be shipped
Availability:
Out of stock
Availability:
348 in stock, ready to be shipped
Availability:
360 in stock, ready to be shipped
Original price
Rs. 50.00
-
Original price
Rs. 50.00
Original price
Rs. 50.00
Rs. 50.00
-
Rs. 50.00
Current price
Rs. 50.00
| /
• Discover the vibrant and intricate world of traditional art with "Kolams Book - Rangoli" is presented by Giri Publications and crafted by Mrs. Lalitha Kalyan. • This rangoli book offers an extensive collection of mesmerizing kolam designs, providing a delightful exploration into the realm of rangoli. • The Rangoli book caters to enthusiasts, beginners, and art lovers who wish to explore the world of rangoli. • Immerse yourself in a rich collection of diverse kolam designs. Mrs. Lalitha Kalyan, the creator of the Muggulu Designs Book, presents an array of patterns ranging from traditional to contemporary, ensuring there's something for every occasion and skill level. • Benefit from the artistic guidance provided by Mrs. Lalitha Kalyan. The Muggulu Designs Book include step-by-step instructions, tips, and techniques to help readers create beautiful and intricate kolams, enhancing their skills in the art of rangoli. • Rangoli book: Explore the artistic prowess of Mrs. Lalitha Kalyan, who bring her unique perspective and expertise to the world of kolams. Her contribution adds authenticity and creativity to the collection, making it an engaging and valuable resource. • Whether you are a seasoned artist, a beginner, or someone simply seeking creative inspiration, Muggulu Designs Book offers a delightful journey into the world of kolams, providing a canvas for artistic expression. • Unleash your creativity and adorn your surroundings with the enchanting designs from "Kolams Book - Rangoli" by Giri Publications, curated by Mrs. Lalitha Kalyan. Let the vibrant patterns inspire and elevate your appreciation for the traditional art of kolams.
(function () {
function blockQeTextInstant() {
const styleId = 'qetext-kill-style';
if (!document.getElementById(styleId)) {
const style = document.createElement('style');
style.id = styleId;
style.innerHTML = `
#qetext{
display:none !important;
visibility:hidden !important;
opacity:0 !important;
pointer-events:none !important;
position:absolute !important;
left:-9999px !important;
top:-9999px !important;
z-index:-9999 !important;
}
.audio-btn-row button {
transition: opacity 0.2s ease;
}
/* State: Stopped - Only Play allowed */
.audio-btn-row.st-stopped #pause,
.audio-btn-row.st-stopped #stop,
.audio-btn-row.st-stopped #resume,
/* State: Playing - Only Pause and Stop allowed */
.audio-btn-row.st-playing #play,
.audio-btn-row.st-playing #resume,
/* State: Paused - Only Resume allowed */
.audio-btn-row.st-paused #play,
.audio-btn-row.st-paused #pause,
.audio-btn-row.st-paused #stop {
opacity: 0.3 !important;
filter: grayscale(1);
cursor: not-allowed !important;
pointer-events: none !important;
}
`;
document.head.appendChild(style);
}
if (!window.qeObserver) {
window.qeObserver = new MutationObserver(() => {
const qe = document.querySelector('#qetext');
if (qe) {
qe.style.setProperty('display', 'none', 'important');
qe.style.visibility = "hidden";
qe.style.opacity = "0";
}
});
window.qeObserver.observe(document.body, {
childList: true,
subtree: true
});
}
}
function applyFix() {
if (!document.body.classList.contains('template-product')) return;
const container = document.querySelector('.buttons');
const target = document.querySelector('.product-main .product-details .single-product-meta');
if (!container || !target) return;
blockQeTextInstant();
const hide = container.querySelector('.hide_text');
const show = container.querySelector('.showtext');
if (hide) hide.remove();
if (show) show.remove();
if (target.nextElementSibling !== container) {
target.parentNode.insertBefore(container, target.nextSibling);
}
container.style.cssText = `
display:flex !important;
flex-direction:column !important;
align-items:flex-start !important;
gap:8px !important;
margin-top:12px !important;
padding:10px 14px !important;
background:#2e7d32 !important;
border-radius:6px !important;
width:fit-content !important;
`;
if (!container.querySelector('.audio-instruction')) {
const text = document.createElement('div');
text.className = "audio-instruction";
text.textContent = "Please click to listen to the audio of the description.";
text.style.cssText = `
color:#fff;
font-size:14px;
font-weight:500;
`;
container.prepend(text);
}
let btnWrapper = container.querySelector('.audio-btn-row');
if (!btnWrapper) {
btnWrapper = document.createElement('div');
btnWrapper.className = "audio-btn-row st-stopped";
btnWrapper.style.cssText = `
display:flex;
align-items:center;
gap:10px;
`;
container.querySelectorAll('button').forEach(btn => {
btn.style.cssText = `
display:flex;
align-items:center;
justify-content:center;
background:transparent;
border:none;
cursor:pointer;
padding:5px;
color:#fff;
`;
btnWrapper.appendChild(btn);
});
container.appendChild(btnWrapper);
}
container.querySelectorAll('svg').forEach(svg => {
svg.style.width = "16px";
svg.style.height = "16px";
});
const close = container.querySelector('.close_sbutton');
if (close && !close.dataset.done) {
close.onclick = () => container.style.display = "none";
close.dataset.done = "1";
}
// --- Button State Management ---
const play = document.getElementById('play');
const pause = document.getElementById('pause');
const stop = document.getElementById('stop');
const resume = document.getElementById('resume');
if (play && pause && stop && resume && btnWrapper) {
const setPlaying = () => {
btnWrapper.classList.remove('st-stopped', 'st-paused');
btnWrapper.classList.add('st-playing');
};
const setPaused = () => {
btnWrapper.classList.remove('st-stopped', 'st-playing');
btnWrapper.classList.add('st-paused');
};
const setStopped = () => {
btnWrapper.classList.remove('st-playing', 'st-paused');
btnWrapper.classList.add('st-stopped');
};
if (!play.dataset.listenersDone) {
// We change classes synchronously to avoid flicker
play.addEventListener('click', setPlaying);
resume.addEventListener('click', setPlaying);
pause.addEventListener('click', setPaused);
stop.addEventListener('click', setStopped);
// Interval to detect when audio ends naturally
// Original script calls handleEnd() which enables Play.
// We should sync our class when that happens.
setInterval(() => {
if (!play.disabled && btnWrapper.classList.contains('st-playing')) {
setStopped();
}
}, 1000);
play.dataset.listenersDone = "1";
}
}
}
let count = 0;
const interval = setInterval(() => {
applyFix();
if (++count > 40) clearInterval(interval);
}, 250);
const observer = new MutationObserver(() => applyFix());
observer.observe(document.body, {
childList: true,
subtree: true
});
})();
.template-index #start_button,
.template-collection #start_button,
.template-product #start_button,
body.template-index .buttons {
display: none !important;
}
.template-collection .buttons,
.template-product .buttons {
display: none !important;
}