Rusty Lake Ghost Epoxy Resin Artisan Keycap

$47.80
(Tax included)
Quantity
Shipping
Description

This Rusty Lake ghost keycap recreates eerie silhouettes with crisp black-white epoxy resin. Hand-polished edges fit Cherry/MX switches, oil-resistant surface—ideal for puzzle fans’ collections or adding supernatural storytelling to keyboards.

Spec

Material: Eproxy resin
Keycap Size: 1u
Weight: 4 g
Dimension: 1.7 *1.7 * 3.3 cm
Profile: Artisan Keycap
Compatibility: MX style switches

 Axonkit

#ECHO

Ghost whispers, keys decrypt—relight rusty lake’s mystery.

#LAKE CLARITY

Black-white gradients mirror game art; resin clarity rivals the lake’s surface.

FAQs

When will I receive my order?

We strive to process and ship all orders within 3 business days of receipt. Than the shipping takes 5-10 days depending on different countries.

Is my keyboard compatible with this keycap?

All keycaps in our store are designed for universal cross-stem compatibility and have undergone compatibility testing to ensure they can be used on various types of switches from multiple brands.

What should I do if it doesn’t fit?
However, the cross-stem size may vary slightly across different manufacturers. If you encounter issues with installation, you can reshape the keycap by softening its base through heating:Soak the keycap in hot water at 60-70°C for 15 seconds, then align and insert it onto the stem.Alternatively, use a hairdryer to heat the base of the keycap for 15 seconds until it softens, then install it.If the problem persists, please contact our customer service for assistance.
What process do you use to make keycaps?

We start by sculpting clay or 3D printing a prototype, then create a silicone mold. Each keycap is filled with resin in multiple layers, often with different colors. More colors and complex designs increase time and cost due to challenges like air bubbles and impurities.

After molding, we manually color and polish each keycap. Machines can’t achieve the desired finish, so every keycap is hand-finished, making flawless results difficult to guarantee.

What is your after-sales policy? I'm not satisfied.

Our keycaps are handmade with epoxy resin layered potting and manual coloring/polishing. Traces of polishing and minor flaws are normal. If you find stubborn stains, indelible substances, or can't accept the flaws, keep the packaging and keycaps intact and contact our customer service. We offer satisfaction service for worry-free after-sales.

  • Free Shipping

    On orders over $45

  • 24/7 Support

    Satisfaction Guaranteed

  • Secure payment

    Ensure safety for every transaction

  • Giveaway

    Subscribe & Win

Customer Reviews
Here are what our customers say.
Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.