❤️Vintage Steampunk Quill Pen

people are viewing this right now
$29.99
$59.99
-$30.00
Style:  1#
Quantity

Description

 

The most romantic writing tool❤️Rediscover the Joy of Writing 

The body of the quill pen consists of mechanical gears and angel wings, with a unique shape, it is comfortable, there are many different styles of size nibs, you can try different sizes of calligraphy fonts, and the pen's special fluid design can Promotes ink absorption and extends writing time, great for documents, cards, letter practice, signatures

  • PERFECT GIFT FOR ALL AGES--The exquisite feather pen calligraphy set is the right artistic choice whether it is a gift or a gift for yourself, whether it is used for writing or collection.Mechanical Wing Quill Ink Set, 100% Handmade
  • High-grade material - The body of the mechanical wing quill is engraved with copper, which has a strong mechanical sense to prevent rust and wear, can prevent oxidation, and is ergonomically designed

Excellent Writing Experience--It is Made of Natural Feathers. Feathers Are Collected from All over the World and Naturally Shed. They Are Dyed and Degreased to Maintain the Permanent Luster of Silk. 

Each Feather is Unique and Can Be Used with Five Different Size Nibs to Write Different Font Sizes. You Can Also Feel the Friction Between the Nib and the Paper, Which is Very Suitable for Beginners, Enthusiasts and Students of Calligraphy

The quill pen dipped in ink can not only practice more vocabulary, but also can be used to write letters, Write greeting cards, write a diary, write wedding Invitations, etc.

【Luxury Gift Set】Feather pen and ink set is a very popular luxury gift,  it is loved by many Can be given to your family, relatives, children or friends, neighbors, parents, writer, calligrapher.it will be a meaningful gift

product content

  • 1 feather pen
  • 5 replacement nibs
  • brass base
  • Due to logistics and transportation, there is no ink in the ink bottle

  • 🌎 Worldwide Shipping ✈  
    Please do note that shipping is insured. Tracking Numbers will ALWAYS be sent so you can track them every step of the way! Cool things are worth waiting for! 😉
    🔒 100% Risk-Free Purchase 🔥 
    • We truly offer the most stunning, trendy highest-quality products in the world.
    • We will do WHATEVER it takes with outstanding customer service support to assist everyone as we highly value our customer satisfaction with absolute ZERO risks.
    • We make sure that every customer is 100% satisfied in every aspect!
    • If you are not satisfied with receiving the goods, you can apply for a refund.
    • You can pay with PayPal, which will protect your money.

    Our Warehouse

    Priority is given to delivery after payment. We'll arrange the fastest shipping for you. Please consider any holidays that might impact delivery times. Please consider the transportation methods and unexpected situations that may affect the delivery time.

 

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.